diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/Kconfig 350-qlogic/drivers/scsi/Kconfig
--- 340-numa_mem_equals/drivers/scsi/Kconfig	2003-10-27 10:41:11.000000000 -0800
+++ 350-qlogic/drivers/scsi/Kconfig	2003-10-29 13:58:53.000000000 -0800
@@ -1212,6 +1212,8 @@ config SCSI_QLOGICPTI
 	  To compile this driver as a module, choose M here: the
 	  module will be called qlogicpti.
 
+source "drivers/scsi/qla2xxx/Kconfig"
+
 config SCSI_SEAGATE
 	tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support"
 	depends on X86 && ISA && SCSI && BROKEN
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/Makefile 350-qlogic/drivers/scsi/Makefile
--- 340-numa_mem_equals/drivers/scsi/Makefile	2003-10-27 10:41:11.000000000 -0800
+++ 350-qlogic/drivers/scsi/Makefile	2003-10-29 13:58:53.000000000 -0800
@@ -73,6 +73,7 @@ obj-$(CONFIG_SCSI_SYM53C416)	+= sym53c41
 obj-$(CONFIG_SCSI_QLOGIC_FAS)	+= qlogicfas.o
 obj-$(CONFIG_SCSI_QLOGIC_ISP)	+= qlogicisp.o 
 obj-$(CONFIG_SCSI_QLOGIC_FC)	+= qlogicfc.o 
+obj-$(CONFIG_SCSI_QLA2XXX)	+= qla2xxx/
 obj-$(CONFIG_SCSI_QLOGIC_1280)	+= qla1280.o 
 obj-$(CONFIG_SCSI_PAS16)	+= pas16.o
 obj-$(CONFIG_SCSI_SEAGATE)	+= seagate.o
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/Kconfig 350-qlogic/drivers/scsi/qla2xxx/Kconfig
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/Kconfig	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/Kconfig	2003-10-29 13:58:53.000000000 -0800
@@ -0,0 +1,39 @@
+config SCSI_QLA2XXX
+	bool "QLogic QLA2XXX FC-SCSI support (v8)"
+	depends on PCI
+	---help---
+	These drivers support the QLogic 2xxx host adapter family of SCSI
+	FCP HBAs.
+          
+config SCSI_QLA2XXX_QLA21XX
+	tristate "QLogic QLA21xx FC-SCSI support (v8)"
+	depends on SCSI_QLA2XXX
+	---help---
+	This driver supports the QLogic 21xx host adapter family.
+
+	If you want to compile the driver as a module ( = code which can be
+	inserted in and removed from the running kernel whenever you want),
+	say M here and read <file:Documentation/modules.txt>.  The module
+	will be called qla2100.
+
+config SCSI_QLA2XXX_QLA22XX
+	tristate "QLogic QLA22xx FC-SCSI support (v8)"
+	depends on SCSI_QLA2XXX
+	---help---
+	This driver supports the QLogic 22xx host adapter family.
+
+	If you want to compile the driver as a module ( = code which can be
+	inserted in and removed from the running kernel whenever you want),
+	say M here and read <file:Documentation/modules.txt>.  The module
+	will be called qla2200.
+
+config SCSI_QLA2XXX_QLA23XX
+	tristate "QLogic QLA23xx FC-SCSI support (v8)"
+	depends on SCSI_QLA2XXX
+	---help---
+	This driver supports the QLogic 23xx host adapter family.
+
+	If you want to compile the driver as a module ( = code which can be
+	inserted in and removed from the running kernel whenever you want),
+	say M here and read <file:Documentation/modules.txt>.  The module
+	will be called qla2300.
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/Makefile 350-qlogic/drivers/scsi/qla2xxx/Makefile
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/Makefile	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/Makefile	2003-10-29 13:58:53.000000000 -0800
@@ -0,0 +1,66 @@
+# Kernel makefile for 8.x series QLogic Fibre Channel driver.
+#
+EXTRA_CFLAGS += -Idrivers/scsi -I$(obj) -DUNIQUE_FW_NAME
+
+ISPTYPES := qla2100 qla2200 qla2300
+ISPDIRS := $(foreach dir, $(ISPTYPES), $(addsuffix /, $(addprefix .,$(dir))))
+
+COMMON_SRCS := qla_os.c qla_init.c qla_mbx.c qla_iocb.c qla_isr.c qla_gs.c \
+	qla_xioct.c qla_inioct.c qla_fo.c qla_cfg.c qla_cfgln.c qla_vendor.c \
+	qla_dbg.c qla_sup.c 
+ISP2100_SRCS := $(COMMON_SRCS) ql2100tp_fw.c
+ISP2200_SRCS := $(COMMON_SRCS) qla_ip.c ql2200ip_fw.c
+ISP2300_SRCS := $(COMMON_SRCS) qla_ip.c ql2300ipx_fw.c #ql2322tpx_fw.c
+ISP2100_OBJS := $(foreach file, $(ISP2100_SRCS), $(patsubst %.c, %.o, $(file)))
+ISP2200_OBJS := $(foreach file, $(ISP2200_SRCS), $(patsubst %.c, %.o, $(file)))
+ISP2300_OBJS := $(foreach file, $(ISP2300_SRCS), $(patsubst %.c, %.o, $(file)))
+
+ISP2100_DIR_SRCS := $(foreach file, $(ISP2100_SRCS), $(addprefix .qla2100/,$(file)))
+ISP2200_DIR_SRCS := $(foreach file, $(ISP2200_SRCS), $(addprefix .qla2200/,$(file)))
+ISP2300_DIR_SRCS := $(foreach file, $(ISP2300_SRCS), $(addprefix .qla2300/,$(file)))
+ISP2100_DIR_OBJS := $(foreach file, $(ISP2100_OBJS), $(addprefix .qla2100/,$(file)))
+ISP2200_DIR_OBJS := $(foreach file, $(ISP2200_OBJS), $(addprefix .qla2200/,$(file)))
+ISP2300_DIR_OBJS := $(foreach file, $(ISP2300_OBJS), $(addprefix .qla2300/,$(file)))
+
+PREPALL := $(shell for dir in $(ISPDIRS) ; \
+	do \
+		if [ ! -d $(obj)/$${dir} ] ; then \
+			mkdir $(obj)/$${dir} ; \
+		fi ; \
+	done ; \
+	for link in $(ISP2100_SRCS) ; \
+	do \
+		if [ ! -h $(obj)/.qla2100/$${link} ] ; then \
+			ln -sf ../$${link} $(obj)/.qla2100/$${link} ; \
+		fi ; \
+	done ; \
+	for link in $(ISP2200_SRCS) ; \
+	do \
+		if [ ! -h $(obj)/.qla2200/$${link} ] ; then \
+			ln -sf ../$${link} $(obj)/.qla2200/$${link} ; \
+		fi ; \
+	done ; \
+	for link in $(ISP2300_SRCS) ; \
+	do \
+		if [ ! -h $(obj)/.qla2300/$${link} ] ; then \
+			ln -sf ../$${link} $(obj)/.qla2300/$${link} ; \
+		fi ; \
+	done)
+
+obj-$(CONFIG_SCSI_QLA2XXX_QLA21XX) += qla2100.o
+obj-$(CONFIG_SCSI_QLA2XXX_QLA22XX) += qla2200.o
+obj-$(CONFIG_SCSI_QLA2XXX_QLA23XX) += qla2300.o
+
+$(obj)/qla2100.o: $(PREPALL)
+$(obj)/qla2200.o: $(PREPALL)
+$(obj)/qla2300.o: $(PREPALL)
+
+$(src)/.qla2100/%: EXTRA_CFLAGS += -Dqla21xx
+$(src)/.qla2200/%: EXTRA_CFLAGS += -Dqla22xx
+$(src)/.qla2300/%: EXTRA_CFLAGS += -Dqla23xx -DEXTENDED_IDS 
+
+qla2100-objs := $(ISP2100_DIR_OBJS)
+qla2200-objs := $(ISP2200_DIR_OBJS)
+qla2300-objs := $(ISP2300_DIR_OBJS)
+
+clean-files := $(ISP2100_DIR_SRCS) $(ISP2200_DIR_SRCS) $(ISP2300_DIR_SRCS)
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/exioct.h 350-qlogic/drivers/scsi/qla2xxx/exioct.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/exioct.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/exioct.h	2003-10-29 13:58:53.000000000 -0800
@@ -0,0 +1,965 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * File Name: exioct.h
+ *
+ * San/Device Management Ioctl Header
+ * File is created to adhere to Solaris requirement using 8-space tabs.
+ *
+ * !!!!! PLEASE DO NOT REMOVE THE TABS !!!!!
+ * !!!!! PLEASE NO SINGLE LINE COMMENTS: // !!!!!
+ * !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!!
+ *
+ * Revision History:
+ *
+ * Rev. 0	March 1, 2000
+ * YPL	- Created.
+ *
+ * Rev. 1	March 2, 2000
+ * RLU	- Updated with latest definitions.  Added more comments.
+ *
+ * Rev. 2	May 16, 2000		    
+ * SP	- Updated definitions and changed structures (March 27, 2000)
+ * SP   - Addded structures 
+ *
+ * Rev. 3	June 1, 2000		     
+ * THL	- Made major changes to include all changes talked in our meeting.
+ *
+ * Rev. 4	June 5, 2000
+ * RLU	- Added new definitions/structures for SDM_GET_AEN and SDM_REG_AEN 
+ *	  functions.
+ *	- Major definition/structure name changes as discussed in meetings.
+ *	- Deleted duplicated command code and structure definitions.
+ *
+ * Rev. 4.1	June 14, 2000
+ * WTR  - Moved Solaris specific defines to exioctso.h. This makes it
+ *	  possible for application developers to include only exioct.h
+ *	  in their Solaris application development.
+ *
+ * Rev. 4.2	June 15, 2000
+ * THL  - Changed UINT16 and UINT32 back to WORD and DWORD for NT; otherwise,
+ *	  NT will get a compilation error for redefining UINT16 and UINT32.
+ *	  Added RISC_CODE/FLASH_RAM macros.
+ *
+ * Rev. 4.3	June 22, 2000
+ * THL  - Changed SDM_FC_ADDR according to External Ioctls document.
+ *	  Added SDM_DEF_TYPE macros.
+ *
+ * Rev. 4.4	June 22, 2000
+ * THL  - Moved NT specific defines to exioctnt.h.
+ *
+ * Rev. 4.5     August 15, 2000
+ * SP   - Rolled back some changes made by Todd R.
+ *	  Kept new status code SDM_STATUS_NO_MEMORY
+ *	  Port types fabric and tape device 
+ *
+ * Rev. 4.7     Sep 6, 2000
+ * YPL  - Replace SDM_ with EXT_, _ISP with _CHIP.
+ *	  Add vendor specific statuses, device update, config defines.
+ *
+ * Rev. 5.0     Sep 13, 2000
+ * YPL  - Update version to 5, remove max defines, make port type bit.
+ *	  Change HBA_PORT_PROPERTY to have bus/target/lun defined as UINT16
+ *
+ * Rev. 5.1     Sep 22, 2000
+ * THL  - Add destination address for specify scsi address or FC address.
+ *	  Remove "not support" comment and add more macros.
+ *
+ * Rev. 5.2     Sep 27, 2000
+ * THL  - Add new macros and structure for add and swap target device.
+ *	  Create new data structure for get port database.
+ * TLE  - Merge changes needed for FailOver
+ *
+ * Rev. 5.3     Sep 29, 2000
+ * THL  - Add access mode for NVRAM.
+ * 
+ * Rev. 5.4     Oct 03, 2000
+ * THL  - Add EXT_SC_GET_FC_STATISTICS.
+ *
+ * Rev. 5.5	Oct 18, 2000
+ * THL  - Remove duplicated EXT_DEF_ADDR_MODE_32 and EXT_DEF_ADDR_MODE_16.
+ *	  Reformat new data structures and defines.
+ *
+ * Rev. 5.6	Oct 19, 2000
+ * RLU	- Changed file name from ExIoct.h to exioct.h.
+ *	- Added definition of EXT_RNID_DATA for API implementation.
+ *	- Reformat some lines to conform to the format agreed
+ *	  upon in IOCTL meeting (and mentioned at beginning of
+ *	  this file).
+ *
+ * Rev. 5.7 Oct 25, 2000
+ * BN   - Added LUN bitmask structure and macros
+ *
+ * Rev. 5.8 Oct 25, 2000
+ * BN   - Added EXT_CC_DRIVER_PROP define
+ * 
+ * Rev. 5.9 Oct 26, 2000
+ * BN   - Sync with UnixApi project
+ * 
+ * Rev. 5.10 Oct 30, 2000
+ * BN   - Remove not needed #define for EXT_CC_DRIVER_PROP
+ *	- Add EXT_ to IS_LUN_BIT_SET, SET_LUN_BIT, CLR_LUN_BIT
+ * 
+ * Rev. 5.11 Nov 1, 2000
+ * BN   - Increased [1] of EXT_DEVICEDATA to [EXT_MAX_TARGET]
+ * TLE  - Decreased [EXT_MAX_TARGET] of EXT_DEVICEDATA to [1]
+ * 
+ * Rev. 5.12	Nov 7, 2000
+ * RLU	- Deleted EXT_DEF_MAX_LUNS define and changed all references
+ *	  to it to use EXT_MAX_LUN.
+ *	- Changed the revision numbers for the last 2 revisions down
+ *	  to use 5.x.
+ * 
+ * Rev. 5.13	Nov 14, 2000
+ * WTR	- Fixed pointer referencing problem in the LUN_BIT_MASK macros.
+ *	  Updated comment at bit mask definition.
+ *
+ * Rev. 5.14	Dec 6, 2000
+ * THL	- Added Local and LoopID to discovered port/target property.
+ * 
+ * Rev. 5.15	Dec 24, 2000
+ * YPL	- Enhance port connection modes and driver attrib
+ * 
+ * Rev. 5.16	Dec 27, 2000
+ * TLE  - Add BufferHandle member to _EXT_ASYNC_EVENT data structure for
+ *	  SCTP support
+ * 
+ * Rev. 5.17	Jan 10, 2001
+ * YPL  - Add edtov, ratov & fabric name in port property
+ * 
+ * Rev. 5.18	Feb 28, 2001
+ * YPL  - Remove SCTP fields and add fabric parameter flags in port property
+ * 
+ * Rev. 5.19	Mar 08, 2001
+ * YPL  - Remove SCTP fields from hba port prop
+ * 
+ * Rev. 5.20	June 11, 2001
+ * YPL  - Change to reserved fields and add fabric name field in port property
+ * 
+ * Rev. 5.21	June 29, 2001
+ * YPL  - Merge in changes decided long time ago (use _DEF_ for defines) &
+ *	  reserved some EXT_CC for legacy ioctls, plus add RNID dataformat
+ *	  values definition
+ * 
+ * Rev. 5.21    Sep 18, 2001
+ * SP   - Added New return status codes
+ *
+ * Rev.	5.22	Oct 23, 2001
+ * SP	- Change reserve fields to add fields to EXT_HBA_PORT
+ *	  Added port speeds and FC4Types fields  and related definitions
+ *
+ * Rev.	5.23	Dec 04, 2001
+ * RL	- Added port speed value definition.
+ *
+ * Rev. 5.24	Jan 20, 2002
+ * JJ	- Added PCI device function bits field in EXT_CHIP structure.
+ *
+ * Rev. 5.25	Feb 04, 2002
+ * JJ	- Added 16 bytes CDB support.  Also added SenseLength field
+ *	  in SCSI_PASSTHRU structure.
+ *
+ * Rev. 5.26	Feb 12, 2002
+ * AV	- Changed type size used in SCSI_PASSTHRU structure definitions
+ *	  to re-enable gcc's automatic structure padding for backward
+ *	  compatibility.
+ *
+ * Rev. 5.27	Mar 01, 2002
+ * RL	- Added new SC value for SCSI3 command passthru.
+ *
+ * Rev. 5.28	Dec 09, 2002
+ * Sync up with NT version of exioct.h:
+ * TLE	- Modify EXT_RNID_REQ data structure for IBM SendRNID workaround
+ * YPL	- Add firmware state (online diagnostics)
+ * YPL	- Add ELS PS
+ * YPL	- Add els event, # of els buffers & size
+ *
+ * Rev. 5.29     April 21, 2003
+ * RA   - Defined the structure EXT_BEACON_CONTROL and subcommand code:
+ *        EXT_SC_GET_BEACON_STATE,EXT_SC_SET_BEACON_STATE for the
+ *        led blinking feature.
+ *
+ */
+
+#ifndef	_EXIOCT_H
+#define	_EXIOCT_H
+
+/*
+ * NOTE: the following version defines must be updated each time the
+ *	 changes made may affect the backward compatibility of the
+ *	 input/output relations of the SDM IOCTL functions.
+ */
+#define	EXT_VERSION					5
+
+
+/*
+ * OS independent General definitions
+ */
+#define	EXT_DEF_SIGNATURE_SIZE				8
+#define	EXT_DEF_WWN_NAME_SIZE				8
+#define	EXT_DEF_WWP_NAME_SIZE				8
+#define	EXT_DEF_SERIAL_NUM_SIZE				4
+#define	EXT_DEF_PORTID_SIZE				4
+#define	EXT_DEF_PORTID_SIZE_ACTUAL			3
+#define	EXT_DEF_MAX_STR_SIZE				128
+#define	EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH		16
+
+#define	EXT_DEF_ADDR_MODE_32				1
+#define	EXT_DEF_ADDR_MODE_64				2
+
+/*
+ * ***********************************************************************
+ * X OS type definitions
+ * ***********************************************************************
+ */
+#ifdef _MSC_VER						/* NT */
+
+#pragma pack(1)
+#include "ExIoctNT.h"
+
+#elif defined(linux)					/* Linux */
+
+#include "exioctln.h"
+
+#elif defined(sun) || defined(__sun)			/* Solaris */
+
+#include "exioctso.h"
+
+#endif
+
+/*
+ * ***********************************************************************
+ * OS dependent General configuration defines
+ * ***********************************************************************
+ */
+#define	EXT_DEF_MAX_HBA                 EXT_DEF_MAX_HBA_OS
+#define	EXT_DEF_MAX_BUS                 EXT_DEF_MAX_BUS_OS
+#define	EXT_DEF_MAX_TARGET              EXT_DEF_MAX_TARGET_OS
+#define	EXT_DEF_MAX_LUN                 EXT_DEF_MAX_LUN_OS
+
+/*
+ * ***********************************************************************
+ * Common header struct definitions for San/Device Mgmt
+ * ***********************************************************************
+ */
+typedef struct {
+	UINT64    Signature;			/* 8 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 */
+	UINT64    RequestAdr;			/* 8 */
+	UINT64    ResponseAdr;			/* 8 */
+	UINT16    HbaSelect;			/* 2 */
+	UINT16    VendorSpecificStatus[11];	/* 22 */
+	UINT64    VendorSpecificData;		/* 8 chars string */
+} EXT_IOCTL, *PEXT_IOCTL;			/* 84 / 0x54 */
+
+/*
+ * Addressing mode used by the user application
+ */
+#define	EXT_ADDR_MODE			EXT_ADDR_MODE_OS
+
+/*
+ * Status.  These macros are being used for setting Status field in
+ * EXT_IOCTL structure.
+ */
+#define	EXT_STATUS_OK				0
+#define	EXT_STATUS_ERR				1
+#define	EXT_STATUS_BUSY				2
+#define	EXT_STATUS_PENDING			3
+#define	EXT_STATUS_SUSPENDED			4
+#define	EXT_STATUS_RETRY_PENDING		5
+#define	EXT_STATUS_INVALID_PARAM		6
+#define	EXT_STATUS_DATA_OVERRUN			7
+#define	EXT_STATUS_DATA_UNDERRUN		8
+#define	EXT_STATUS_DEV_NOT_FOUND		9
+#define	EXT_STATUS_COPY_ERR			10
+#define	EXT_STATUS_MAILBOX			11
+#define	EXT_STATUS_UNSUPPORTED_SUBCODE		12
+#define	EXT_STATUS_UNSUPPORTED_VERSION		13
+#define	EXT_STATUS_MS_NO_RESPONSE		14
+#define	EXT_STATUS_SCSI_STATUS			15
+#define	EXT_STATUS_BUFFER_TOO_SMALL		16
+#define	EXT_STATUS_NO_MEMORY			17
+#define	EXT_STATUS_UNKNOWN			18
+#define	EXT_STATUS_UNKNOWN_DSTATUS		19
+#define	EXT_STATUS_INVALID_REQUEST		20
+
+#define EXT_STATUS_DEVICE_NOT_READY		21
+#define EXT_STATUS_DEVICE_OFFLINE		22
+#define EXT_STATUS_HBA_NOT_READY		23
+#define EXT_STATUS_HBA_QUEUE_FULL		24
+
+/*
+ * Detail Status contains the SCSI bus status codes.
+ */
+
+#define	EXT_DSTATUS_GOOD			0x00
+#define	EXT_DSTATUS_CHECK_CONDITION		0x02
+#define	EXT_DSTATUS_CONDITION_MET		0x04
+#define	EXT_DSTATUS_BUSY			0x08
+#define	EXT_DSTATUS_INTERMEDIATE		0x10
+#define	EXT_DSTATUS_INTERMEDIATE_COND_MET	0x14
+#define	EXT_DSTATUS_RESERVATION_CONFLICT	0x18
+#define	EXT_DSTATUS_COMMAND_TERMINATED		0x22
+#define	EXT_DSTATUS_QUEUE_FULL			0x28
+
+/*
+ * Detail Status contains the needed Response buffer space(bytes)
+ * when Status = EXT_STATUS_BUFFER_TOO_SMALL
+ */
+
+
+/*
+ * Detail Status contains one of the following codes
+ * when Status = EXT_STATUS_INVALID_PARAM or
+ *             = EXT_STATUS_DEV_NOT_FOUND
+ */
+#define EXT_DSTATUS_NOADNL_INFO			0x00
+#define EXT_DSTATUS_HBA_INST			0x01
+#define EXT_DSTATUS_TARGET			0x02
+#define EXT_DSTATUS_LUN				0x03
+#define EXT_DSTATUS_REQUEST_LEN			0x04
+#define EXT_DSTATUS_PATH_INDEX			0x05
+
+/*
+ * Currently supported DeviceControl / ioctl command codes
+ */
+#define	EXT_CC_QUERY			EXT_CC_QUERY_OS
+#define	EXT_CC_SEND_FCCT_PASSTHRU	EXT_CC_SEND_FCCT_PASSTHRU_OS
+#define	EXT_CC_REG_AEN			EXT_CC_REG_AEN_OS
+#define	EXT_CC_GET_AEN			EXT_CC_GET_AEN_OS
+#define	EXT_CC_SEND_ELS_RNID		EXT_CC_SEND_ELS_RNID_OS
+#define	EXT_CC_SEND_SCSI_PASSTHRU	EXT_CC_SCSI_PASSTHRU_OS
+#define	EXT_CC_SEND_ELS_PASSTHRU	EXT_CC_SEND_ELS_PASSTHRU_OS
+
+/*
+ * HBA port operations
+ */
+#define	EXT_CC_GET_DATA			EXT_CC_GET_DATA_OS
+#define	EXT_CC_SET_DATA			EXT_CC_SET_DATA_OS
+
+
+/* Reserved command codes. */
+#define	EXT_CC_RESERVED0A		EXT_CC_RESERVED0A_OS    
+#define	EXT_CC_RESERVED0B		EXT_CC_RESERVED0B_OS    
+#define	EXT_CC_RESERVED0C		EXT_CC_RESERVED0C_OS    
+#define	EXT_CC_RESERVED0D		EXT_CC_RESERVED0D_OS    
+#define	EXT_CC_RESERVED0E		EXT_CC_RESERVED0E_OS    
+#define	EXT_CC_RESERVED0F		EXT_CC_RESERVED0F_OS    
+#define	EXT_CC_RESERVED0G		EXT_CC_RESERVED0G_OS    
+#define	EXT_CC_RESERVED0H		EXT_CC_RESERVED0H_OS    
+#define	EXT_CC_RESERVED0I		EXT_CC_RESERVED0I_OS
+#define	EXT_CC_RESERVED0J		EXT_CC_RESERVED0J_OS
+#define	EXT_CC_RESERVED0Z		EXT_CC_RESERVED0Z_OS
+
+
+/*
+ * ***********************************************************************
+ * EXT_IOCTL SubCode definition.
+ * These macros are being used for setting SubCode field in EXT_IOCTL
+ * structure.
+ * ***********************************************************************
+ */
+
+/*
+ * Query.
+ * Uses with EXT_QUERY as the ioctl code.
+ */
+#define	EXT_SC_QUERY_HBA_NODE		1
+#define	EXT_SC_QUERY_HBA_PORT		2
+#define	EXT_SC_QUERY_DISC_PORT		3
+#define	EXT_SC_QUERY_DISC_TGT		4
+#define	EXT_SC_QUERY_DISC_LUN		5	/* Currently Not Supported */
+#define	EXT_SC_QUERY_DRIVER		6
+#define	EXT_SC_QUERY_FW			7
+#define	EXT_SC_QUERY_CHIP		8
+
+/*
+ * Sub codes for Get Data.
+ * Use in combination with EXT_GET_DATA as the ioctl code
+ */
+/* 1 - 99 Common */
+#define	EXT_SC_GET_SCSI_ADDR		1	/* Currently Not Supported */
+#define	EXT_SC_GET_ERR_DETECTIONS	2	/* Currently Not Supported */
+#define	EXT_SC_GET_STATISTICS		3
+#define	EXT_SC_GET_BUS_MODE		4	/* Currently Not Supported */
+#define	EXT_SC_GET_DR_DUMP_BUF		5	/* Currently Not Supported */
+#define	EXT_SC_GET_RISC_CODE		6	/* Currently Not Supported */
+#define	EXT_SC_GET_FLASH_RAM		7	/* for backward compatible */
+#define	EXT_SC_GET_BEACON_STATE		8	 
+
+/* 100 - 199 FC_INTF_TYPE */
+#define	EXT_SC_GET_LINK_STATUS		101	/* Currently Not Supported */
+#define	EXT_SC_GET_LOOP_ID		102	/* Currently Not Supported */
+#define	EXT_SC_GET_LUN_BITMASK		103
+#define	EXT_SC_GET_PORT_DATABASE	104	/* Currently Not Supported */
+#define	EXT_SC_GET_PORT_DATABASE_MEM	105	/* Currently Not Supported */
+#define	EXT_SC_GET_PORT_SUMMARY		106
+#define	EXT_SC_GET_POSITION_MAP		107
+#define	EXT_SC_GET_RETRY_CNT		108	/* Currently Not Supported */
+#define	EXT_SC_GET_RNID			109	
+#define	EXT_SC_GET_RTIN			110	/* Currently Not Supported */
+#define	EXT_SC_GET_FC_LUN_BITMASK	111
+#define	EXT_SC_GET_FC_STATISTICS	112	/* for backward compatible */
+
+/* 200 - 299 SCSI_INTF_TYPE */
+#define	EXT_SC_GET_SEL_TIMEOUT		201	/* Currently Not Supported */
+
+
+/* 
+ * Sub codes for Set Data.
+ * Use in combination with EXT_SET_DATA as the ioctl code
+ */
+/* 1 - 99 Common */
+#define	EXT_SC_RST_STATISTICS		3
+#define	EXT_SC_RESERVED_BC7		7
+#define	EXT_SC_SET_BEACON_STATE		8
+
+/* 100 - 199 FC_INTF_TYPE */
+#define	EXT_SC_SET_LUN_BITMASK		103
+#define	EXT_SC_SET_RNID			109	
+#define	EXT_SC_SET_FC_LUN_BITMASK	111
+#define	EXT_SC_RESERVED_BC112	112
+#define	EXT_SC_RESERVED_BC113	113
+
+/* 200 - 299 SCSI_INTF_TYPE */
+
+/* SCSI passthrough */
+#define	EXT_SC_SEND_SCSI_PASSTHRU	0
+#define	EXT_SC_SEND_FC_SCSI_PASSTHRU	1
+#define	EXT_SC_SCSI3_PASSTHRU		2
+
+/* Read */
+
+/* Write */
+
+/* Reset */
+
+/* Request struct */
+
+
+/*
+ * Response struct
+ */
+typedef struct _EXT_HBA_NODE {
+	UINT8     WWNN         [EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     Manufacturer [EXT_DEF_MAX_STR_SIZE];	/* 128; "QLOGIC" */
+	UINT8     Model        [EXT_DEF_MAX_STR_SIZE];	/* 128; "QLA2200" */
+	UINT8     SerialNum    [EXT_DEF_SERIAL_NUM_SIZE];/* 4;  123  */
+	UINT8     DriverVersion[EXT_DEF_MAX_STR_SIZE];	/* 128; "7.4.3" */
+	UINT8     FWVersion    [EXT_DEF_MAX_STR_SIZE];	/* 128; "2.1.6" */
+
+	/* The following field is currently not supported */
+	UINT8     OptRomVersion[EXT_DEF_MAX_STR_SIZE];	/* 128; "1.44" */
+
+	UINT16    PortCount;				/* 2; 1 */
+	UINT16    InterfaceType;			/* 2; FC/SCSI */
+
+	/* The following two fields are not yet supported */
+	UINT32    DriverAttr;				/* 4 */
+	UINT32    FWAttr;				/* 4 */
+
+	UINT32    Reserved[8];				/* 32 */
+} EXT_HBA_NODE, *PEXT_HBA_NODE;				/* 696 */
+
+/* HBA node query interface type */
+#define	EXT_DEF_FC_INTF_TYPE			1
+#define	EXT_DEF_SCSI_INTF_TYPE			2
+
+typedef struct _EXT_HBA_PORT {
+	UINT8     WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     Id  [EXT_DEF_PORTID_SIZE];	/* 4; 3 bytes valid Port Id. */
+	UINT16    Type;				/* 2; Port Type */
+	UINT16    State;			/* 2; Port State */
+	UINT16    Mode;				/* 2 */
+	UINT16    DiscPortCount;		/* 2 */
+	UINT16    DiscPortNameType;		/* 2; USE_NODE_NAME or */
+						/* USE_PORT_NAME */
+	UINT16    DiscTargetCount;		/* 2 */
+	UINT16    Bus;				/* 2 */
+	UINT16    Target;			/* 2 */
+	UINT16    Lun;				/* 2 */
+						/* 2 */
+	UINT8     PortSupportedFC4Types;
+	UINT8     PortActiveFC4Types;
+	UINT8     FabricName[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+
+						/* 2*/
+	UINT8     PortSupportedSpeed;
+	UINT8     PortSpeed;
+	UINT16    Unused;			/* 2 */
+	UINT32    Reserved[3];			/* 12 */
+} EXT_HBA_PORT, *PEXT_HBA_PORT;			/* 56 */
+
+/* port type */
+#define	EXT_DEF_INITIATOR_DEV		1
+#define	EXT_DEF_TARGET_DEV		2
+#define	EXT_DEF_TAPE_DEV		4
+#define	EXT_DEF_FABRIC_DEV		8
+
+
+/* HBA port state */
+#define	EXT_DEF_HBA_OK			0
+#define	EXT_DEF_HBA_SUSPENDED		1
+#define	EXT_DEF_HBA_LOOP_DOWN		2
+
+/* Connection mode */
+#define	EXT_DEF_UNKNOWN_MODE		0
+#define	EXT_DEF_P2P_MODE		1
+#define	EXT_DEF_LOOP_MODE		2
+#define	EXT_DEF_FL_MODE			3
+#define	EXT_DEF_N_MODE			4
+
+/* Valid name type for Disc. port/target */
+#define	EXT_DEF_USE_NODE_NAME		1
+#define	EXT_DEF_USE_PORT_NAME		2
+
+/* FC4 type values */
+#define EXT_DEF_FC4_TYPE_SCSI		0x1
+#define EXT_DEF_FC4_TYPE_IP		0x2
+#define EXT_DEF_FC4_TYPE_SCTP		0x4
+#define EXT_DEF_FC4_TYPE_VI		0x8
+
+/* Port Speed values */
+#define EXT_DEF_PORTSPEED_1GBIT		1
+#define EXT_DEF_PORTSPEED_2GBIT		2
+#define EXT_DEF_PORTSPEED_10GBIT	4
+
+typedef struct _EXT_DISC_PORT {
+	UINT8     WWNN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     Id  [EXT_DEF_PORTID_SIZE];
+					/* 4; last 3 bytes used. big endian */
+
+	/* The following fields currently are not supported */
+	UINT16    Type;				/* 2; Port Type */
+	UINT16    Status;			/* 2; Port Status */
+	UINT16    Bus;				/* 2; n/a for Solaris */
+
+	UINT16    TargetId;			/* 2 */
+	UINT8     Local;			/* 1; Local or Remote */
+	UINT8     ReservedByte[1];		/* 1 */
+	
+	UINT16    LoopID;			/* 2; Loop ID */
+	
+	UINT32    Reserved[7];			/* 28 */
+} EXT_DISC_PORT, *PEXT_DISC_PORT;		/* 60 */
+
+typedef struct _EXT_DISC_TARGET {
+	UINT8     WWNN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     Id  [EXT_DEF_PORTID_SIZE];
+					/* 4; last 3 bytes used. big endian */
+
+	/* The following fields currently are not supported */
+	UINT16    Type;				/* 2; Target Type */
+	UINT16    Status;			/* 2; Target Status*/
+	UINT16    Bus;				/* 2; n/a for Solaris */
+
+	UINT16    TargetId;			/* 2 */
+
+	/* The following field is currently not supported */
+	UINT16    LunCount;			/* 2; n/a for nt */
+
+	UINT8     Local;			/* 1; Local or Remote */
+	UINT8     ReservedByte[1];		/* 1 */
+	
+	UINT16    LoopID;			/* 2; Loop ID */
+	
+	UINT16    Reserved[13];			/* 26 */
+} EXT_DISC_TARGET, *PEXT_DISC_TARGET;		/* 60 */
+
+/* The following command is not supported */
+typedef struct _EXT_DISC_LUN {			/* n/a for nt */
+	UINT16    Id;				/* 2 */
+	UINT16    State;			/* 2 */
+	UINT16    IoCount;			/* 2 */
+	UINT16    Reserved[15];			/* 30 */
+} EXT_DISC_LUN, *PEXT_DISC_LUN;			/* 36 */
+
+
+/* SCSI address */
+typedef struct _EXT_SCSI_ADDR {
+	UINT16    Bus;				/* 2 */
+	UINT16    Target;			/* 2 */
+	UINT16    Lun;				/* 2 */
+	UINT16    Padding[5];			/* 10 */
+} EXT_SCSI_ADDR, *PEXT_SCSI_ADDR;		/* 16 */
+
+
+/* Fibre Channel address */
+typedef struct _EXT_FC_ADDR {
+	union {
+		UINT8    WWNN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+		UINT8    WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+		UINT8    Id[EXT_DEF_PORTID_SIZE];	/* 4 */
+	} FcAddr;
+	UINT16    Type;					/* 2 */
+	UINT16    Padding[2];				/* 2 */
+} EXT_FC_ADDR, *PEXT_FC_ADDR;				/* 24 */
+
+#define	EXT_DEF_TYPE_WWNN                   1
+#define	EXT_DEF_TYPE_WWPN                   2
+#define	EXT_DEF_TYPE_PORTID                 3
+#define	EXT_DEF_TYPE_FABRIC                 4
+
+
+/* Destination address */
+typedef struct _EXT_DEST_ADDR {
+	union {
+		UINT8    WWNN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+		UINT8    WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+		UINT8    Id[EXT_DEF_PORTID_SIZE];	/* 4 */
+		struct {
+			UINT16    Bus;			/* 2 */
+			UINT16    Target;		/* 2 */
+		} ScsiAddr;
+	} DestAddr;
+	UINT16    DestType;				/* 2 */
+	UINT16    Lun;					/* 2 */
+	UINT16    Padding[2];				/* 4 */
+} EXT_DEST_ADDR, *PEXT_DEST_ADDR;			/* 16 */
+
+
+#define	EXT_DEF_DESTTYPE_WWNN			1
+#define	EXT_DEF_DESTTYPE_WWPN			2
+#define	EXT_DEF_DESTTYPE_PORTID			3
+#define	EXT_DEF_DESTTYPE_FABRIC			4
+#define	EXT_DEF_DESTTYPE_SCSI			5
+
+/* Statistic */
+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 */
+	UINT32    Reserved[16];			/* 64 */
+} EXT_HBA_PORT_STAT, *PEXT_HBA_PORT_STAT;	/* 112 */
+
+
+/* Driver property */
+typedef struct _EXT_DRIVER {
+	UINT8     Version[EXT_DEF_MAX_STR_SIZE];/* 128 */
+	UINT16    NumOfBus;			/* 2; Port Type */
+	UINT16    TargetsPerBus;		/* 2; Port Status */
+	UINT16    LunsPerTarget;		/* 2 */
+	UINT32    MaxTransferLen;		/* 4 */
+	UINT32    MaxDataSegments;		/* 4 */
+	UINT16    DmaBitAddresses;		/* 2 */
+	UINT16    IoMapType;			/* 2 */
+	UINT32    Attrib;			/* 4 */
+	UINT32    InternalFlags[4];		/* 16 */
+	UINT32    Reserved[8];			/* 32 */
+} EXT_DRIVER, *PEXT_DRIVER;			/* 198 */
+
+
+/* Firmware property */
+typedef struct _EXT_FW {
+	UINT8     Version[EXT_DEF_MAX_STR_SIZE];/* 128 */
+	UINT32    Attrib;			/* 4 */
+	UINT16    Reserved[33];			/* 66 */
+} EXT_FW, *PEXT_FW;				/* 198 */
+
+
+/* ISP/Chip property */
+typedef struct _EXT_CHIP {
+	UINT16    VendorId;			/* 2 */
+	UINT16    DeviceId;			/* 2 */
+	UINT16    SubVendorId;			/* 2 */
+	UINT16    SubSystemId;			/* 2 */
+	UINT16    PciBusNumber;			/* 2 */
+	UINT16    PciSlotNumber;		/* 2 */
+	UINT32    IoAddr;			/* 4 */
+	UINT32    IoAddrLen;			/* 4 */
+	UINT32    MemAddr;			/* 4 */
+	UINT32    MemAddrLen;			/* 4 */
+	UINT16    ChipType;			/* 2 */
+	UINT16    InterruptLevel;		/* 2 */
+	UINT16    OutMbx[8];			/* 16 */
+	UINT16    PciDevFunc;	                /* 2 */
+	UINT16    Reserved[15];			/* 30 */
+} EXT_CHIP, *PEXT_CHIP;				/* 80 */
+
+
+/* Request Buffer for RNID */
+typedef struct _EXT_RNID_REQ {
+	EXT_FC_ADDR Addr;			/* 14 */
+	UINT8     DataFormat;			/* 1 */
+	UINT8     Pad;				/* 1 */
+	UINT8     OptWWN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     OptPortId[EXT_DEF_PORTID_SIZE];	/* 4 */
+	UINT32    Reserved[12];			/* 48 */
+	UINT8     Pad1[3];			/* 3 */
+} EXT_RNID_REQ, *PEXT_RNID_REQ;			/* 79 */
+
+#define EXT_DEF_RNID_DFORMAT_NONE		0
+#define EXT_DEF_RNID_DFORMAT_TOPO_DISC		0xDF
+
+/* Request Buffer for Set RNID */
+typedef struct _EXT_SET_RNID_REQ {
+	UINT8     IPVersion[2];
+	UINT8     UDPPortNumber[2];
+	UINT8     IPAddress[16];
+	UINT32    Reserved[16];
+} EXT_SET_RNID_REQ, *PEXT_SET_RNID_REQ;
+
+/* RNID definition and data struct */
+#define	SEND_RNID_RSP_SIZE  72
+
+typedef struct _RNID_DATA
+{
+	UINT8     WWN[16];			/* 16 */
+	UINT32    UnitType;			/* 4 */
+	UINT8     PortId[4];			/* 4 */
+	UINT32    NumOfAttachedNodes;		/* 4 */
+	UINT8     IPVersion[2];			/* 2 */
+	UINT8     UDPPortNumber[2];		/* 2 */
+	UINT8     IPAddress[16];		/* 16 */
+	UINT16    Reserved;			/* 2 */
+	UINT16    TopoDiscFlags;		/* 2 */
+} EXT_RNID_DATA, *PEXT_RNID_DATA;		/* 52 */
+
+
+/* SCSI pass-through */
+typedef struct _EXT_SCSI_PASSTHRU {
+	EXT_SCSI_ADDR   TargetAddr;
+	UINT8           Direction;
+	UINT8           CdbLength;
+	UINT8           Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH];
+        UINT32          Reserved[14];
+        UINT16          Reserved2;
+        UINT16          SenseLength;
+	UINT8           SenseData[256];
+} EXT_SCSI_PASSTHRU, *PEXT_SCSI_PASSTHRU;
+
+/* FC SCSI pass-through */
+typedef struct _EXT_FC_SCSI_PASSTHRU {
+	EXT_DEST_ADDR   FCScsiAddr;
+	UINT8           Direction;
+	UINT8           CdbLength;
+	UINT8           Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH];
+        UINT32          Reserved[14];
+        UINT16          Reserved2;
+        UINT16          SenseLength;
+	UINT8           SenseData[256];
+} EXT_FC_SCSI_PASSTHRU, *PEXT_FC_SCSI_PASSTHRU;
+
+/* SCSI pass-through direction */
+#define	EXT_DEF_SCSI_PASSTHRU_DATA_IN		1
+#define	EXT_DEF_SCSI_PASSTHRU_DATA_OUT		2
+
+
+/* EXT_REG_AEN Request struct */
+typedef struct _EXT_REG_AEN {
+	UINT32    Enable;	/* 4; non-0 to enable, 0 to disable. */
+	UINT32    Reserved;	/* 4 */
+} EXT_REG_AEN, *PEXT_REG_AEN;	/* 8 */
+
+/* EXT_GET_AEN Response struct */
+typedef struct _EXT_ASYNC_EVENT {
+	UINT32	AsyncEventCode;		/* 4 */
+	union {
+		struct {
+			UINT8   RSCNInfo[EXT_DEF_PORTID_SIZE_ACTUAL];/* 3, BE */
+			UINT8   AddrFormat;			/* 1 */
+			UINT32  Rsvd_1[2];			/* 8 */
+		} RSCN;
+
+		UINT32  Reserved[3];	/* 12 */
+	} Payload;
+} EXT_ASYNC_EVENT, *PEXT_ASYNC_EVENT;	/* 16 */
+
+
+/* Asynchronous Event Codes */
+#define	EXT_DEF_LIP_OCCURRED		0x8010
+#define	EXT_DEF_LINK_UP			0x8011
+#define	EXT_DEF_LINK_DOWN		0x8012
+#define	EXT_DEF_LIP_RESET		0x8013
+#define	EXT_DEF_RSCN			0x8015
+#define	EXT_DEF_DEVICE_UPDATE		0x8014
+#define	EXT_DEF_ELS          		0x8200
+
+/* Required # of entries in the queue buffer allocated. */
+#define	EXT_DEF_MAX_AEN_QUEUE		EXT_DEF_MAX_AEN_QUEUE_OS
+#define	EXT_DEF_MAX_ELS_BUFS		EXT_DEF_MAX_ELS_BUFS_OS
+#define	EXT_DEF_SIZE_ELS_BUF		EXT_DEF_SIZE_ELS_BUF_OS
+
+/* Device type to get for EXT_SC_GET_PORT_SUMMARY */
+#define	EXT_DEF_GET_KNOWN_DEVICE	0x1
+#define	EXT_DEF_GET_VISIBLE_DEVICE	0x2
+#define	EXT_DEF_GET_HIDDEN_DEVICE	0x4
+#define	EXT_DEF_GET_FABRIC_DEVICE	0x8
+#define	EXT_DEF_GET_LOOP_DEVICE		0x10
+
+/* Each entry in device database */
+typedef struct _EXT_DEVICEDATAENTRY
+{
+	UINT8		NodeWWN[8];	/* Node World Wide Name for device */
+	UINT8		PortWWN[8];	/* Port World Wide Name for device */
+	UINT8		PortID[3];	/* Current PortId for device */
+	UINT8		ControlFlags;	/* Control flag */
+	EXT_SCSI_ADDR	TargetAddress;	/* scsi address */
+	UINT32		DeviceFlags;	/* Flags for device */
+	UINT16		LoopID;		/* Loop ID */
+	UINT16		BaseLunNumber;  
+	UINT32		Reserved[32];
+} EXT_DEVICEDATAENTRY, *PEXT_DEVICEDATAENTRY;
+
+/* Device database information */
+typedef struct _EXT_DEVICEDATA
+{
+	UINT32	TotalDevices;          /* Set to total number of device. */
+	UINT32	ReturnListEntryCount;  /* Set to number of device entries */
+		                       /* returned in list. */
+
+	EXT_DEVICEDATAENTRY  EntryList[1]; /* Variable length */
+} EXT_DEVICEDATA, *PEXT_DEVICEDATA;
+
+
+/* Swap Target Device Data structure */
+typedef struct _EXT_SWAPTARGETDEVICE
+{
+	EXT_DEVICEDATAENTRY CurrentExistDevice;
+	EXT_DEVICEDATAENTRY NewDevice;
+} EXT_SWAPTARGETDEVICE, *PEXT_SWAPTARGETDEVICE;
+
+/* LUN BitMask structure definition, array of 8bit bytes,
+ * 1 bit per lun.  When bit == 1, the lun is masked.
+ * Most significant bit of mask[0] is lun 0.
+ * Least significant bit of mask[0] is lun 7.
+ */
+typedef struct _EXT_LUN_BIT_MASK {
+#if ((EXT_DEF_MAX_LUN & 0x7) == 0)
+	UINT8	mask[EXT_DEF_MAX_LUN >> 3];
+#else
+	UINT8	mask[(EXT_DEF_MAX_LUN + 8) >> 3 ];
+#endif
+} EXT_LUN_BIT_MASK, *PEXT_LUN_BIT_MASK;
+
+/*
+ * LUN mask bit manipulation macros
+ *
+ *   P = Pointer to an EXT_LUN_BIT_MASK union.
+ *   L = LUN number.
+ */
+#define EXT_IS_LUN_BIT_SET(P,L) \
+    (((P)->mask[L/8] & (0x80 >> (L%8)))?1:0)
+
+#define EXT_SET_LUN_BIT(P,L) \
+    ((P)->mask[L/8] |= (0x80 >> (L%8)))
+
+#define EXT_CLR_LUN_BIT(P,L) \
+    ((P)->mask[L/8] &= ~(0x80 >> (L%8)))
+
+#define	EXT_DEF_LUN_BITMASK_LIST_MIN_ENTRIES	1
+#define	EXT_DEF_LUN_BITMASK_LIST_MAX_ENTRIES	256
+
+#ifdef _WIN64
+#define	EXT_DEF_LUN_BITMASK_LIST_HEADER_SIZE	32
+#else
+#define	EXT_DEF_LUN_BITMASK_LIST_HEADER_SIZE \
+    offsetof(LUN_BITMASK_LIST_BUFFER, asBitmaskEntry)
+#endif
+
+#define	EXT_DEF_LUN_COUNT          2048
+#define	EXT_DEF_LUN_BITMASK_BYTES  (EXT_DEF_LUN_COUNT / 8)
+
+typedef struct _EXT_LUN_BITMASK_ENTRY
+{
+	UINT8	NodeName[EXT_DEF_WWN_NAME_SIZE];
+	UINT8	PortName[EXT_DEF_WWN_NAME_SIZE];
+
+	UINT32	Reserved2;
+	UINT32	Reserved3;
+	UINT32	Reserved4;
+	UINT32	Reserved5;     /* Pad to 32-byte header.*/
+
+	UINT8	Bitmask[EXT_DEF_LUN_BITMASK_BYTES];
+} EXT_LUN_BITMASK_ENTRY, *PEXT_LUN_BITMASK_ENTRY;
+
+/* Structure as it is stored in the config file.*/
+typedef struct _LUN_BITMASK_LIST
+{
+	UINT16	Version;       /* Should be LUN_BITMASK_REGISTRY_VERSION */
+	UINT16	EntryCount;    /* Count of variable entries following.*/
+	UINT32	Reserved1;
+	UINT32	Reserved2;
+	UINT32	Reserved3;
+	UINT32	Reserved4;
+	UINT32	Reserved5;
+	UINT32	Reserved6;
+	UINT32	Reserved7;     /* Pad to 32-byte header.*/
+
+	EXT_LUN_BITMASK_ENTRY BitmaskEntry[1]; /* Variable-length data.*/
+
+} EXT_LUN_BITMASK_LIST, *PEXT_LUN_BITMASK_LIST;
+
+
+#define	EXT_DEF_LUN_BITMASK_LIST_MIN_SIZE   \
+    (EXT_DEF_LUN_BITMASK_LIST_HEADER_SIZE + \
+    (sizeof(EXT_DEF_LUN_BITMASK_ENTRY) * EXT_DEF_LUN_BITMASK_LIST_MIN_ENTRIES))
+#define	EXT_DEF_LUN_BITMASK_LIST_MAX_SIZE   \
+    (EXT_DEF_LUN_BITMASK_LIST_HEADER_SIZE + \
+    (sizeof(EXT_DEF_LUN_BITMASK_ENTRY) * EXT_DEF_LUN_BITMASK_LIST_MAX_ENTRIES))
+
+/* Request Buffer for ELS PT*/
+#define EXT_DEF_WWPN_VALID  1
+#define EXT_DEF_WWNN_VALID  2
+#define EXT_DEF_PID_VALID   4
+typedef struct _EXT_ELS_PT_REQ {
+	UINT8     WWNN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     WWPN[EXT_DEF_WWN_NAME_SIZE];	/* 8 */
+	UINT8     Id[EXT_DEF_PORTID_SIZE];  	/* 4 */
+	UINT16    ValidMask;			/* 2 */
+	UINT16    Lid;				/* 2 */
+	UINT16    Rxid;				/* 2 */
+	UINT16    AccRjt;			/* 2 */
+	UINT32    Reserved;			/* 4 */
+} EXT_ELS_PT_REQ, *PEXT_ELS_PT_REQ;		/* 32 */
+
+/* LED state information */
+
+#define	EXT_DEF_GRN_BLINK_ON	0x01ED0017
+#define	EXT_DEF_GRN_BLINK_OFF	0x01ED00FF
+
+typedef struct _EXT_BEACON_CONTROL {
+	UINT32	State;				/* 4  */
+	UINT32	Reserved[3];			/* 12 */	
+} EXT_BEACON_CONTROL , *PEXT_BEACON_CONTROL ;	/* 16 */
+
+#ifdef _MSC_VER
+#pragma pack()
+#endif
+
+#endif /* _EXIOCT_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/exioctln.h 350-qlogic/drivers/scsi/qla2xxx/exioctln.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/exioctln.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/exioctln.h	2003-10-29 13:58:53.000000000 -0800
@@ -0,0 +1,255 @@
+/*****************************************************************************
+*                  QLOGIC LINUX SOFTWARE
+*
+* QLogic ISP2x00 device driver for Linux 2.5.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.
+****************************************************************************/
+
+/*
+ * File Name: exioctln.h
+
+   Rev 14    February 25, 2003	RL
+             - Added EXT_CC_DRIVER_SPECIFIC ioctl command to return
+	       some driver specific data that can be used by API library
+	       to determine how to maintain backward compatibility
+	       of certain features.
+
+   Rev 13    January 31, 2003	RL
+             - Changed the value of EXT_DEF_USE_HBASELECT to avoid
+               conflicting with older implementation of FO API lib.
+
+   Rev 12    January 20, 2003	RL
+             - Added EXT_DEF_USE_HBASELECT definition for use by
+               the SETINSTANCE command.
+ 
+   Rev 11    December 10, 2002	RL
+             - Added EXT_CC_SEND_ELS_PASSTHRU_OS definition.
+ 
+   Rev 10    October 26, 2001	RL
+             - Corrected MAX_HBA, MAX_TARGET and MAX_LUN values to 255.
+ 
+   Rev 9     July 26, 2001	RL
+             - Added definition of signed types.
+ 
+   Rev 8     July 05, 2001	RL
+             - Redefined ioctl command values.
+ 
+   Rev 7     Nov 06, 2000   BN
+             - Added EXT_DEF_MAX_AEN_QUEUE_OS define
+             - Added define for handle_hba_t
+ 
+   Rev 6     Oct 25, 2000   BN
+             - Added EXT_CC_DRIVER_PROP_OS define
+ 
+   Rev 5     Oct 25, 2000   BN
+             - Redo the copyright header and add AEN details
+ 
+   Rev 4     Oct 23, 2000   BN
+             - Added definition for BOOLEAN
+ 
+   Rev 3     Oct 23, 2000   BN
+             - Added definitions for EXT_ADDR_MODE_OS
+               and also include of <linux/ioctl.h>
+ 
+   Rev 2     Oct 18, 2000   BN
+             - Enable API Exention support
+ 
+   Rev 1     Original version Sep 7, 2000   BN
+ 
+*/
+
+
+#ifndef _EXIOCT_LN_H_
+#define _EXIOCT_LN_H_
+
+#include <linux/ioctl.h>
+
+#ifdef APILIB
+#include <stdint.h>
+#endif
+
+
+#define	INT8	int8_t
+#define	INT16	int16_t
+#define	INT32	int32_t
+#define	UINT8	uint8_t
+#define	UINT16	uint16_t
+#define	UINT32	uint32_t
+#define	UINT64	void *
+#define BOOLEAN uint8_t
+
+typedef struct  track_instance {
+	int   handle;
+} track_instance_t;
+
+
+#if BITS_PER_LONG <= 32
+#define EXT_ADDR_MODE_OS  EXT_DEF_ADDR_MODE_32
+#else
+#define EXT_ADDR_MODE_OS  EXT_DEF_ADDR_MODE_64
+#endif
+
+
+#define QLMULTIPATH_MAGIC 'y'
+
+#define _QLBUILD   /* for exioct.h to enable include of qinsdmgt.h */
+
+
+
+#define	EXT_DEF_MAX_HBA_OS		255	/* 0 - 0xFE */
+#define	EXT_DEF_MAX_BUS_OS		1
+#define	EXT_DEF_MAX_TARGET_OS		255	/* 0 - 0xFE */
+#define	EXT_DEF_MAX_LUN_OS		255	/* 0 - 0xFE */
+
+#define EXT_DEF_MAX_AEN_QUEUE_OS        64
+
+#define EXT_DEF_FC_HEADER_LEN		24
+#define EXT_DEF_ELS_RJT_LENGTH		0x08	/* 8  */
+#define EXT_DEF_ELS_RPS_ACC_LENGTH	0x40	/* 64 */
+#define EXT_DEF_ELS_RLS_ACC_LENGTH	0x1C	/* 28 */
+
+#define EXT_DEF_USE_HBASELECT		0x02	/* bit 1: HbaSelect field now
+						 * used to specify destination
+						 * HBA of each command.
+						 * SetInstance cmd is now
+						 * issued only once during
+						 * API initialization.
+						 */
+
+
+/*****************/
+/* Command codes */
+/*****************/
+
+/*************************************************************/
+/* These are regular/external command codes, starting from 0 */
+/*************************************************************/
+#define EXT_CC_QUERY_OS					/* QUERY */	\
+    _IOWR(QLMULTIPATH_MAGIC, 0x00, EXT_IOCTL)
+#define EXT_CC_SEND_FCCT_PASSTHRU_OS			/* FCCT_PASSTHRU */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0x01, EXT_IOCTL)
+#define	EXT_CC_REG_AEN_OS				/* REG_AEN */	\
+    _IOWR(QLMULTIPATH_MAGIC, 0x02, EXT_IOCTL)
+#define	EXT_CC_GET_AEN_OS				/* GET_AEN */	\
+    _IOWR(QLMULTIPATH_MAGIC, 0x03, EXT_IOCTL)
+#define	EXT_CC_SEND_ELS_RNID_OS				/* SEND_ELS_RNID */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0x04, EXT_IOCTL)
+#define	EXT_CC_SCSI_PASSTHRU_OS				/* SCSI_PASSTHRU */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0x05, EXT_IOCTL)
+
+#define EXT_CC_GET_DATA_OS				/* GET_DATA */	\
+    _IOWR(QLMULTIPATH_MAGIC, 0x06, EXT_IOCTL)
+#define EXT_CC_SET_DATA_OS				/* SET_DATA */	\
+    _IOWR(QLMULTIPATH_MAGIC, 0x07, EXT_IOCTL)
+
+/*****************************************/
+/* following are internal command codes. */
+/*****************************************/
+#define EXT_CC_RESERVED0A_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x08, EXT_IOCTL)
+#define EXT_CC_RESERVED0B_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x09, EXT_IOCTL)
+
+#define EXT_CC_RESERVED0C_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0a, EXT_IOCTL)
+#define EXT_CC_RESERVED0D_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0b, EXT_IOCTL)
+
+#define EXT_CC_RESERVED0E_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0c, EXT_IOCTL)
+#define EXT_CC_RESERVED0F_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0d, EXT_IOCTL)
+
+#define EXT_CC_RESERVED0G_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0e, EXT_IOCTL)
+#define EXT_CC_RESERVED0H_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x0f, EXT_IOCTL)
+
+#define EXT_CC_RESERVED0I_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x10, EXT_IOCTL)
+#define EXT_CC_RESERVED0J_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x11, EXT_IOCTL)
+
+#define EXT_CC_RESERVED0Z_OS						\
+    _IOWR(QLMULTIPATH_MAGIC, 0x21, EXT_IOCTL)
+
+/********************************************************/
+/* These are additional regular/external command codes. */
+/********************************************************/
+#define EXT_CC_SEND_ELS_PASSTHRU_OS					\
+    _IOWR(QLMULTIPATH_MAGIC, 0x30, EXT_IOCTL)
+
+
+/********************************************************/
+/* Failover ioctl command codes range from 0xc0 to 0xdf */
+/********************************************************/
+
+
+/*******************************************************************/
+/* These are Linux driver implementation specific commands. Values */
+/* start from highest possible value and in decreasing order.      */
+/*******************************************************************/
+
+#define EXT_CC_STARTIOCTL				/* STARTIOCTL */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0xff, EXT_IOCTL)
+#define EXT_CC_SETINSTANCE				/* SETINSTANCE */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0xfe, EXT_IOCTL)
+#define	EXT_CC_WWPN_TO_SCSIADDR				/* WWPN_TO_SCSIADDR */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0xfd, EXT_IOCTL)
+#define	EXT_CC_DRIVER_SPECIFIC				/* DRIVER_SPECIFIC */ \
+    _IOWR(QLMULTIPATH_MAGIC, 0xfc, EXT_IOCTL)
+
+
+/*
+ * Response struct definition
+ */
+typedef struct _EXT_LN_DRV_VERSION {
+	UINT8	Major;
+	UINT8	Minor;
+	UINT8	Patch;
+	UINT8	Beta;
+	UINT8	Reserved[4];
+} EXT_LN_DRV_VERSION;				/* 8 */
+
+typedef struct _EXT_LN_DRIVER_DATA {
+	EXT_LN_DRV_VERSION  	DrvVer;		/* 8 */
+	UINT32    Reserved[14];			/* 56 */
+} EXT_LN_DRIVER_DATA, *PEXT_LN_DRIVER_DATA;	/* 64 */
+
+
+
+
+
+
+/*
+ * Overrides for Emacs so that we almost 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-indent-level: 2
+ * c-brace-imaginary-offset: 0
+ * c-brace-offset: -2
+ * c-argdecl-indent: 2
+ * c-label-offset: -2
+ * c-continued-statement-offset: 4
+ * c-continued-brace-offset: 0
+ * indent-tabs-mode: nil
+ * tab-width: 8
+ * End:
+ */
+
+#endif /* _EXIOCT_LN_H_ */
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/inioct.h 350-qlogic/drivers/scsi/qla2xxx/inioct.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/inioct.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/inioct.h	2003-10-29 13:58:54.000000000 -0800
@@ -0,0 +1,137 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * File Name: inioct.h
+ *
+ * San/Device Management Ioctl Header
+ * File is created to adhere to Solaris requirement using 8-space tabs.
+ *
+ * !!!!! PLEASE DO NOT REMOVE THE TABS !!!!!
+ * !!!!! PLEASE NO SINGLE LINE COMMENTS: // !!!!!
+ * !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!!
+ *
+ *
+ * Revision History:
+ *
+ * Rev. 0	June 15, 2001
+ * YPL	- Created.
+ *
+ * Rev. 1	June 26, 2001
+ * YPL	- Change the loop back structure and delete cc that is not used.
+ *
+ * Rev. 2	June 29, 2001
+ * YPL	- Use new EXT_CC defines from exioct.h
+ *
+ * Rev. 3	July 12, 2001
+ * RL	- Added definitions for loopback mbx command completion codes.
+ *
+ * Rev. 4	July 12, 2001
+ * RL	- Added definitions for loopback mbx command completion codes.
+ *
+ * Rev. 5	October 9, 2002
+ * AV	- Added definition for Read Option ROM IOCTL.
+ *
+ * Rev. 6	May 27, 2003
+ * RL	- Modified loopback rsp buffer structure definition to add
+ *        diagnostic Echo command support.
+ *
+ */
+
+#ifndef	_INIOCT_H
+#define	_INIOCT_H
+
+/*
+ * ***********************************************************************
+ * X OS type definitions
+ * ***********************************************************************
+ */
+#ifdef _MSC_VER						/* NT */
+#pragma pack(1)
+#endif
+
+/*
+ * ***********************************************************************
+ * INT_IOCTL SubCode definition.
+ * These macros are being used for setting SubCode field in EXT_IOCTL
+ * structure.
+ * ***********************************************************************
+ */
+
+/*
+ * Currently supported DeviceControl / ioctl command codes
+ */
+#define	INT_CC_GET_PORT_STAT_FC		EXT_CC_RESERVED0A_OS
+#define	INT_CC_LOOPBACK			EXT_CC_RESERVED0B_OS
+#define	INT_CC_UPDATE_OPTION_ROM	EXT_CC_RESERVED0C_OS
+#define	INT_CC_ADD_TARGET_DEVICE	EXT_CC_RESERVED0D_OS
+#define	INT_CC_READ_NVRAM		EXT_CC_RESERVED0E_OS
+#define	INT_CC_UPDATE_NVRAM		EXT_CC_RESERVED0F_OS
+#define	INT_CC_SWAP_TARGET_DEVICE	EXT_CC_RESERVED0G_OS
+#define	INT_CC_READ_OPTION_ROM		EXT_CC_RESERVED0H_OS
+#define	INT_CC_LEGACY_LOOPBACK		EXT_CC_RESERVED0Z_OS
+
+
+
+/* NVRAM */
+#define	INT_SC_NVRAM_HARDWARE		0	/* Save */
+#define	INT_SC_NVRAM_DRIVER		1	/* Driver (Apply) */
+#define	INT_SC_NVRAM_ALL		2	/* NVRAM/Driver (Save+Apply) */
+
+/* Loopback */
+typedef struct _INT_LOOPBACK_REQ
+{
+	UINT16 Options;				/* 2   */
+	UINT32 TransferCount;			/* 4   */
+	UINT32 IterationCount;			/* 4   */
+	UINT64 BufferAddress;			/* 8  */
+	UINT32 BufferLength;			/* 4  */
+	UINT16 Reserved[9];			/* 18  */
+} INT_LOOPBACK_REQ, *PINT_LOOPBACK_REQ;		/* 408 */
+
+typedef struct _INT_LOOPBACK_RSP
+{
+	UINT64 BufferAddress;			/* 8  */
+	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];			/* 16 */
+} INT_LOOPBACK_RSP, *PINT_LOOPBACK_RSP;		/* 40 */
+
+/* definition for interpreting CompletionStatus values */
+#define	INT_DEF_LB_COMPLETE	0x4000
+#define INT_DEF_LB_ECHO_CMD_ERR 0x4005
+#define	INT_DEF_LB_PARAM_ERR	0x4006
+#define	INT_DEF_LB_LOOP_DOWN	0x400b
+#define	INT_DEF_LB_CMD_ERROR	0x400c
+
+/* definition for interpreting CommandSent field */
+#define INT_DEF_LB_LOOPBACK_CMD 	0
+#define INT_DEF_LB_ECHO_CMD		1
+
+#ifdef _MSC_VER
+#pragma pack()
+#endif
+
+#endif /* _INIOCT_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2100tp_fw.c 350-qlogic/drivers/scsi/qla2xxx/ql2100tp_fw.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2100tp_fw.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/ql2100tp_fw.c	2003-10-29 13:58:54.000000000 -0800
@@ -0,0 +1,4866 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ *************************************************************************/
+
+/************************************************************************
+ *									*
+ * 	 --- ISP2100 Fabric Initiator/Target Firmware ---               *
+ *                   with expanded LUN addressing                       *
+ *                   and FcTape (FCP-2) support                         *
+ *									*
+ *									*
+ ************************************************************************/
+/*
+ *	Firmware Version 1.19.24 (14:02 Jul 16, 2002)
+ */
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2100tp_version = 1*1024+19;
+#else
+unsigned short risc_code_version = 1*1024+19;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned char fw2100tp_version_str[] = {1,19,24};
+#else
+unsigned char firmware_version[] = {1,19,24};
+#endif
+
+#ifdef UNIQUE_FW_NAME
+#define fw2100tp_VERSION_STRING "1.19.24"
+#else
+#define FW_VERSION_STRING "1.19.24"
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2100tp_addr01 = 0x1000 ;
+#else
+unsigned short risc_code_addr01 = 0x1000 ;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2100tp_code01[] = { 
+#else
+unsigned short risc_code01[] = { 
+#endif
+	0x0078, 0x102d, 0x0000, 0x95f1, 0x0000, 0x0001, 0x0013, 0x0018,
+	0x0017, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,
+	0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,
+	0x5449, 0x4f4e, 0x2049, 0x5350, 0x3231, 0x3030, 0x2046, 0x6972,
+	0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,
+	0x312e, 0x3139, 0x2020, 0x2020, 0x2400, 0x2091, 0x2000, 0x20c1,
+	0x0021, 0x2039, 0xffff, 0x2019, 0xaaaa, 0x2760, 0x2069, 0x7fff,
+	0x20c1, 0x0020, 0x2c2c, 0x2d34, 0x2762, 0x236a, 0x2c24, 0x2d04,
+	0x266a, 0x2562, 0xa406, 0x00c0, 0x1052, 0x20c1, 0x0021, 0x2c2c,
+	0x2362, 0x2c04, 0x2562, 0xa306, 0x0040, 0x1052, 0x20c1, 0x0020,
+	0x2039, 0x8fff, 0x20a1, 0xad00, 0x2708, 0x810d, 0x810d, 0x810d,
+	0x810d, 0xa18c, 0x000f, 0x2001, 0x000a, 0xa112, 0xa00e, 0x21a8,
+	0x41a4, 0x3400, 0x8211, 0x00c0, 0x105f, 0x2708, 0x3400, 0xa102,
+	0x0040, 0x106f, 0x0048, 0x106f, 0x20a8, 0xa00e, 0x41a4, 0x20a1,
+	0xa5f1, 0x2009, 0x0000, 0x20a9, 0x070f, 0x41a4, 0x3400, 0x20c9,
+	0xaaff, 0x2059, 0x0000, 0x2b78, 0x7823, 0x0004, 0x2089, 0x25c7,
+	0x2051, 0xa600, 0x2a70, 0x7762, 0xa786, 0x8fff, 0x0040, 0x1092,
+	0x705f, 0xcd00, 0x705b, 0xccf1, 0x7067, 0x0200, 0x706b, 0x0200,
+	0x0078, 0x109a, 0x705b, 0xbd01, 0x7067, 0x0100, 0x706b, 0x0100,
+	0x705f, 0xbd00, 0x1078, 0x12df, 0x1078, 0x13ca, 0x1078, 0x1577,
+	0x1078, 0x1ce9, 0x1078, 0x42ec, 0x1078, 0x76bf, 0x1078, 0x1355,
+	0x1078, 0x2ac0, 0x1078, 0x4e93, 0x1078, 0x49a3, 0x1078, 0x594a,
+	0x1078, 0x2263, 0x1078, 0x5c43, 0x1078, 0x5485, 0x1078, 0x2162,
+	0x1078, 0x2240, 0x2091, 0x3009, 0x7823, 0x0000, 0x0090, 0x10cf,
+	0x7820, 0xa086, 0x0002, 0x00c0, 0x10cf, 0x7823, 0x4000, 0x0068,
+	0x10c7, 0x781b, 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x2a70,
+	0x7003, 0x0000, 0x2001, 0x017f, 0x2003, 0x0000, 0x2a70, 0x7000,
+	0xa08e, 0x0003, 0x00c0, 0x10ef, 0x1078, 0x365e, 0x1078, 0x2ae8,
+	0x1078, 0x4ee3, 0x1078, 0x4b66, 0x2009, 0x0100, 0x2104, 0xa082,
+	0x0002, 0x0048, 0x10f3, 0x1078, 0x5966, 0x0078, 0x10d6, 0x1079,
+	0x10f7, 0x0078, 0x10dc, 0x1078, 0x7197, 0x0078, 0x10eb, 0x1101,
+	0x1102, 0x11be, 0x10ff, 0x1246, 0x12dc, 0x12dd, 0x12de, 0x1078,
+	0x1332, 0x007c, 0x127e, 0x0f7e, 0x2091, 0x8000, 0x7000, 0xa086,
+	0x0001, 0x00c0, 0x1198, 0x1078, 0x3aec, 0x2079, 0x0100, 0x7844,
+	0xa005, 0x00c0, 0x1198, 0x2011, 0x41dc, 0x1078, 0x5a45, 0x1078,
+	0x1adf, 0x780f, 0x00ff, 0x7840, 0xa084, 0xfffb, 0x7842, 0x2011,
+	0x8010, 0x73c4, 0x1078, 0x361b, 0x2001, 0xffff, 0x1078, 0x5ae6,
+	0x723c, 0xc284, 0x723e, 0x2001, 0xa60c, 0x2014, 0xc2ac, 0x2202,
+	0x1078, 0x6f9f, 0x2011, 0x0004, 0x1078, 0x8d1b, 0x1078, 0x489e,
+	0x1078, 0x42d4, 0x0040, 0x1144, 0x7087, 0x0001, 0x70bf, 0x0000,
+	0x1078, 0x3c9e, 0x0078, 0x1198, 0x1078, 0x4967, 0x0040, 0x114d,
+	0x7a0c, 0xc2b4, 0x7a0e, 0x0078, 0x1159, 0x1078, 0x90a6, 0x70cc,
+	0xd09c, 0x00c0, 0x1159, 0x7098, 0xa005, 0x0040, 0x1159, 0x1078,
+	0x42b8, 0x70d7, 0x0000, 0x70d3, 0x0000, 0x72cc, 0x2079, 0xa652,
+	0x7804, 0xd0ac, 0x0040, 0x1165, 0xc295, 0x72ce, 0xa296, 0x0004,
+	0x0040, 0x1186, 0x2011, 0x0001, 0x1078, 0x8d1b, 0x7093, 0x0000,
+	0x7097, 0xffff, 0x7003, 0x0002, 0x0f7f, 0x1078, 0x2677, 0x2011,
+	0x0005, 0x1078, 0x70e0, 0x1078, 0x62d1, 0x0c7e, 0x2061, 0x0100,
+	0x60e3, 0x0008, 0x0c7f, 0x127f, 0x0078, 0x119a, 0x7093, 0x0000,
+	0x7097, 0xffff, 0x7003, 0x0002, 0x2011, 0x0005, 0x1078, 0x70e0,
+	0x1078, 0x62d1, 0x0c7e, 0x2061, 0x0100, 0x60e3, 0x0008, 0x0c7f,
+	0x0f7f, 0x127f, 0x007c, 0x0c7e, 0x20a9, 0x0082, 0x2009, 0x007e,
+	0x017e, 0x027e, 0x037e, 0x2110, 0x027e, 0x2019, 0x0029, 0x1078,
+	0x73d0, 0x027f, 0x1078, 0xa4f1, 0x037f, 0x027f, 0x017f, 0x1078,
+	0x298e, 0x8108, 0x00f0, 0x11a0, 0x0c7f, 0x706f, 0x0000, 0x7070,
+	0xa084, 0x00ff, 0x7072, 0x709b, 0x0000, 0x007c, 0x127e, 0x2091,
+	0x8000, 0x7000, 0xa086, 0x0002, 0x00c0, 0x1244, 0x7094, 0xa086,
+	0xffff, 0x0040, 0x11d1, 0x1078, 0x2677, 0x1078, 0x62d1, 0x0078,
+	0x1244, 0x70cc, 0xd09c, 0x0040, 0x11fd, 0xd084, 0x0040, 0x11fd,
+	0x0f7e, 0x2079, 0x0100, 0x790c, 0xc1b5, 0x790e, 0x0f7f, 0xd08c,
+	0x0040, 0x11fd, 0x70d0, 0xa086, 0xffff, 0x0040, 0x11f9, 0x1078,
+	0x27f7, 0x1078, 0x62d1, 0x70cc, 0xd094, 0x00c0, 0x1244, 0x2011,
+	0x0001, 0x2019, 0x0000, 0x1078, 0x282f, 0x1078, 0x62d1, 0x0078,
+	0x1244, 0x70d4, 0xa005, 0x00c0, 0x1244, 0x7090, 0xa005, 0x00c0,
+	0x1244, 0x1078, 0x4967, 0x00c0, 0x1244, 0x2001, 0xa653, 0x2004,
+	0xd0ac, 0x0040, 0x1227, 0x157e, 0x0c7e, 0x20a9, 0x007f, 0x2009,
+	0x0000, 0x017e, 0x1078, 0x45c4, 0x00c0, 0x121a, 0x6000, 0xd0ec,
+	0x00c0, 0x1222, 0x017f, 0x8108, 0x00f0, 0x1211, 0x0c7f, 0x157f,
+	0x0078, 0x1227, 0x017f, 0x0c7f, 0x157f, 0x0078, 0x1244, 0x7003,
+	0x0003, 0x7097, 0xffff, 0x2001, 0x0000, 0x1078, 0x24e8, 0x1078,
+	0x3699, 0x2001, 0xa8b2, 0x2004, 0xa086, 0x0005, 0x00c0, 0x123c,
+	0x2011, 0x0000, 0x1078, 0x70e0, 0x2011, 0x0000, 0x1078, 0x70ea,
+	0x1078, 0x62d1, 0x1078, 0x639b, 0x127f, 0x007c, 0x017e, 0x0f7e,
+	0x127e, 0x2091, 0x8000, 0x2079, 0x0100, 0x2009, 0x00f7, 0x1078,
+	0x42a1, 0x7940, 0xa18c, 0x0010, 0x7942, 0x7924, 0xd1b4, 0x0040,
+	0x125b, 0x7827, 0x0040, 0xd19c, 0x0040, 0x1260, 0x7827, 0x0008,
+	0x007e, 0x037e, 0x157e, 0xa006, 0x1078, 0x5ae6, 0x7900, 0xa18a,
+	0x0003, 0x0050, 0x1289, 0x7954, 0xd1ac, 0x00c0, 0x1289, 0x2009,
+	0x00f8, 0x1078, 0x42a1, 0x7843, 0x0090, 0x7843, 0x0010, 0x20a9,
+	0x09c4, 0x7820, 0xd09c, 0x00c0, 0x1281, 0x7824, 0xd0ac, 0x00c0,
+	0x12ca, 0x00f0, 0x1279, 0x2001, 0x0001, 0x1078, 0x24e8, 0x0078,
+	0x12d5, 0x7853, 0x0000, 0x782f, 0x0020, 0x20a9, 0x0050, 0x00e0,
+	0x128f, 0x2091, 0x6000, 0x00f0, 0x128f, 0x7853, 0x0400, 0x782f,
+	0x0000, 0x2009, 0x00f8, 0x1078, 0x42a1, 0x20a9, 0x000e, 0x0005,
+	0x00f0, 0x129f, 0x7853, 0x1400, 0x7843, 0x0090, 0x7843, 0x0010,
+	0x2019, 0x61a8, 0x7854, 0x0005, 0x0005, 0xd08c, 0x0040, 0x12b4,
+	0x7824, 0xd0ac, 0x00c0, 0x12ca, 0x8319, 0x00c0, 0x12aa, 0x2009,
+	0xa632, 0x2104, 0x8000, 0x200a, 0xa084, 0xfff0, 0x0040, 0x12c4,
+	0x200b, 0x0000, 0x1078, 0x2588, 0x2001, 0x0001, 0x1078, 0x24e8,
+	0x0078, 0x12d3, 0x2001, 0xa632, 0x2003, 0x0000, 0x7828, 0xc09d,
+	0x782a, 0x7827, 0x0048, 0x7853, 0x0400, 0x157f, 0x037f, 0x007f,
+	0x127f, 0x0f7f, 0x017f, 0x007c, 0x007c, 0x007c, 0x007c, 0x2a70,
+	0x2061, 0xa8ad, 0x2063, 0x0001, 0x6007, 0x0013, 0x600b, 0x0018,
+	0x600f, 0x0017, 0x2009, 0x0100, 0x2104, 0xa082, 0x0002, 0x0048,
+	0x12f5, 0x7053, 0xffff, 0x0078, 0x12f7, 0x7053, 0x0000, 0x7057,
+	0xffff, 0x706f, 0x0000, 0x7073, 0x0000, 0x1078, 0x90a6, 0x2061,
+	0xa88d, 0x6003, 0x0909, 0x6007, 0x0000, 0x600b, 0x8800, 0x600f,
+	0x0200, 0x6013, 0x00ff, 0x6017, 0x0003, 0x601b, 0x0000, 0x601f,
+	0x07d0, 0x2061, 0xa895, 0x6003, 0x8000, 0x6007, 0x0000, 0x600b,
+	0x0000, 0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x0000, 0x601b,
+	0x0001, 0x601f, 0x0000, 0x2061, 0xa8a5, 0x6003, 0x514c, 0x6007,
+	0x4f47, 0x600b, 0x4943, 0x600f, 0x2020, 0x2001, 0xa626, 0x2003,
+	0x0000, 0x007c, 0x2091, 0x8000, 0x0068, 0x1334, 0x007e, 0x017e,
+	0x2079, 0x0000, 0x7818, 0xd084, 0x00c0, 0x133a, 0x017f, 0x792e,
+	0x007f, 0x782a, 0x007f, 0x7826, 0x3900, 0x783a, 0x7823, 0x8002,
+	0x781b, 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x2079, 0xa600,
+	0x7803, 0x0005, 0x0078, 0x1352, 0x007c, 0x2071, 0xa600, 0x715c,
+	0x712e, 0x2021, 0x0001, 0xa190, 0x002d, 0xa298, 0x002d, 0x0048,
+	0x136b, 0x7060, 0xa302, 0x00c8, 0x136b, 0x220a, 0x2208, 0x2310,
+	0x8420, 0x0078, 0x135d, 0x200b, 0x0000, 0x74aa, 0x74ae, 0x007c,
+	0x0e7e, 0x127e, 0x2091, 0x8000, 0x2071, 0xa600, 0x70ac, 0xa0ea,
+	0x0010, 0x00c8, 0x137e, 0xa06e, 0x0078, 0x1388, 0x8001, 0x70ae,
+	0x702c, 0x2068, 0x2d04, 0x702e, 0x206b, 0x0000, 0x6807, 0x0000,
+	0x127f, 0x0e7f, 0x007c, 0x0e7e, 0x2071, 0xa600, 0x127e, 0x2091,
+	0x8000, 0x70ac, 0x8001, 0x00c8, 0x1398, 0xa06e, 0x0078, 0x13a1,
+	0x70ae, 0x702c, 0x2068, 0x2d04, 0x702e, 0x206b, 0x0000, 0x6807,
+	0x0000, 0x127f, 0x0e7f, 0x007c, 0x0e7e, 0x127e, 0x2091, 0x8000,
+	0x2071, 0xa600, 0x702c, 0x206a, 0x2d00, 0x702e, 0x70ac, 0x8000,
+	0x70ae, 0x127f, 0x0e7f, 0x007c, 0x8dff, 0x0040, 0x13c0, 0x6804,
+	0x6807, 0x0000, 0x007e, 0x1078, 0x13a4, 0x0d7f, 0x0078, 0x13b4,
+	0x007c, 0x0e7e, 0x2071, 0xa600, 0x70ac, 0xa08a, 0x0010, 0xa00d,
+	0x0e7f, 0x007c, 0x0e7e, 0x2071, 0xa8d6, 0x7007, 0x0000, 0x701b,
+	0x0000, 0x701f, 0x0000, 0x2071, 0x0000, 0x7010, 0xa085, 0x8004,
+	0x7012, 0x0e7f, 0x007c, 0x127e, 0x2091, 0x8000, 0x0e7e, 0x2270,
+	0x700b, 0x0000, 0x2071, 0xa8d6, 0x7018, 0xa088, 0xa8df, 0x220a,
+	0x8000, 0xa084, 0x0007, 0x701a, 0x7004, 0xa005, 0x00c0, 0x13f6,
+	0x0f7e, 0x2079, 0x0010, 0x1078, 0x1408, 0x0f7f, 0x0e7f, 0x127f,
+	0x007c, 0x0e7e, 0x2071, 0xa8d6, 0x7004, 0xa005, 0x00c0, 0x1406,
+	0x0f7e, 0x2079, 0x0010, 0x1078, 0x1408, 0x0f7f, 0x0e7f, 0x007c,
+	0x7000, 0x0079, 0x140b, 0x140f, 0x1479, 0x1496, 0x1496, 0x7018,
+	0x711c, 0xa106, 0x00c0, 0x1417, 0x7007, 0x0000, 0x007c, 0x0d7e,
+	0xa180, 0xa8df, 0x2004, 0x700a, 0x2068, 0x8108, 0xa18c, 0x0007,
+	0x711e, 0x7803, 0x0026, 0x6824, 0x7832, 0x6828, 0x7836, 0x682c,
+	0x783a, 0x6830, 0x783e, 0x6810, 0x700e, 0x680c, 0x7016, 0x6804,
+	0x0d7f, 0xd084, 0x0040, 0x1439, 0x7007, 0x0001, 0x1078, 0x143e,
+	0x007c, 0x7007, 0x0002, 0x1078, 0x1454, 0x007c, 0x017e, 0x027e,
+	0x710c, 0x2011, 0x0040, 0xa182, 0x0040, 0x00c8, 0x1449, 0x2110,
+	0xa006, 0x700e, 0x7212, 0x8203, 0x7822, 0x7803, 0x0020, 0x7803,
+	0x0041, 0x027f, 0x017f, 0x007c, 0x017e, 0x027e, 0x137e, 0x147e,
+	0x157e, 0x7014, 0x2098, 0x20a1, 0x0014, 0x7803, 0x0026, 0x710c,
+	0x2011, 0x0040, 0xa182, 0x0040, 0x00c8, 0x1468, 0x2110, 0xa006,
+	0x700e, 0x22a8, 0x53a6, 0x8203, 0x7822, 0x7803, 0x0020, 0x3300,
+	0x7016, 0x7803, 0x0001, 0x157f, 0x147f, 0x137f, 0x027f, 0x017f,
+	0x007c, 0x137e, 0x147e, 0x157e, 0x2099, 0xa6fa, 0x20a1, 0x0018,
+	0x20a9, 0x0008, 0x53a3, 0x7803, 0x0020, 0x127e, 0x2091, 0x8000,
+	0x7803, 0x0041, 0x7007, 0x0003, 0x7000, 0xc084, 0x7002, 0x700b,
+	0xa6f5, 0x127f, 0x157f, 0x147f, 0x137f, 0x007c, 0x137e, 0x147e,
+	0x157e, 0x2001, 0xa729, 0x209c, 0x20a1, 0x0014, 0x7803, 0x0026,
+	0x2001, 0xa72a, 0x20ac, 0x53a6, 0x2099, 0xa72b, 0x20a1, 0x0018,
+	0x20a9, 0x0008, 0x53a3, 0x7803, 0x0020, 0x127e, 0x2091, 0x8000,
+	0x7803, 0x0001, 0x7007, 0x0004, 0x7000, 0xc08c, 0x7002, 0x700b,
+	0xa726, 0x127f, 0x157f, 0x147f, 0x137f, 0x007c, 0x017e, 0x0e7e,
+	0x2071, 0xa8d6, 0x0f7e, 0x2079, 0x0010, 0x7904, 0x7803, 0x0002,
+	0xd1fc, 0x0040, 0x14d0, 0xa18c, 0x0700, 0x7004, 0x1079, 0x14d4,
+	0x0f7f, 0x0e7f, 0x017f, 0x007c, 0x1408, 0x14dc, 0x1509, 0x1531,
+	0x1564, 0x14da, 0x0078, 0x14da, 0xa18c, 0x0700, 0x00c0, 0x1502,
+	0x137e, 0x147e, 0x157e, 0x7014, 0x20a0, 0x2099, 0x0014, 0x7803,
+	0x0040, 0x7010, 0x20a8, 0x53a5, 0x3400, 0x7016, 0x157f, 0x147f,
+	0x137f, 0x700c, 0xa005, 0x0040, 0x151e, 0x1078, 0x143e, 0x007c,
+	0x7008, 0xa080, 0x0002, 0x2003, 0x0100, 0x7007, 0x0000, 0x1078,
+	0x1408, 0x007c, 0x7008, 0xa080, 0x0002, 0x2003, 0x0200, 0x0078,
+	0x14fd, 0xa18c, 0x0700, 0x00c0, 0x1514, 0x700c, 0xa005, 0x0040,
+	0x151e, 0x1078, 0x1454, 0x007c, 0x7008, 0xa080, 0x0002, 0x2003,
+	0x0200, 0x7007, 0x0000, 0x1078, 0x1408, 0x007c, 0x0d7e, 0x7008,
+	0x2068, 0x7830, 0x6826, 0x7834, 0x682a, 0x7838, 0x682e, 0x783c,
+	0x6832, 0x680b, 0x0100, 0x0d7f, 0x7007, 0x0000, 0x1078, 0x1408,
+	0x007c, 0xa18c, 0x0700, 0x00c0, 0x155e, 0x137e, 0x147e, 0x157e,
+	0x2001, 0xa6f8, 0x2004, 0xa080, 0x000d, 0x20a0, 0x2099, 0x0014,
+	0x7803, 0x0040, 0x20a9, 0x0020, 0x53a5, 0x2001, 0xa6fa, 0x2004,
+	0xd0bc, 0x0040, 0x1554, 0x2001, 0xa703, 0x2004, 0xa080, 0x000d,
+	0x20a0, 0x20a9, 0x0020, 0x53a5, 0x157f, 0x147f, 0x137f, 0x7007,
+	0x0000, 0x1078, 0x4f8c, 0x1078, 0x1408, 0x007c, 0x2011, 0x8003,
+	0x1078, 0x361b, 0x0078, 0x1562, 0xa18c, 0x0700, 0x00c0, 0x1571,
+	0x2001, 0xa728, 0x2003, 0x0100, 0x7007, 0x0000, 0x1078, 0x1408,
+	0x007c, 0x2011, 0x8004, 0x1078, 0x361b, 0x0078, 0x1575, 0x127e,
+	0x2091, 0x2100, 0x2079, 0x0030, 0x2071, 0xa8e7, 0x7803, 0x0004,
+	0x7003, 0x0000, 0x700f, 0xa8ed, 0x7013, 0xa8ed, 0x780f, 0x0076,
+	0x7803, 0x0004, 0x127f, 0x007c, 0x6934, 0xa184, 0x0007, 0x0079,
+	0x1591, 0x1599, 0x15df, 0x1599, 0x1599, 0x1599, 0x15c4, 0x15a8,
+	0x159d, 0xa085, 0x0001, 0x0078, 0x15f9, 0x684c, 0xd0bc, 0x0040,
+	0x1599, 0x6860, 0x682e, 0x685c, 0x682a, 0x6858, 0x0078, 0x15e7,
+	0xa18c, 0x00ff, 0xa186, 0x001e, 0x00c0, 0x1599, 0x684c, 0xd0bc,
+	0x0040, 0x1599, 0x6860, 0x682e, 0x685c, 0x682a, 0x6804, 0x681a,
+	0xa080, 0x000d, 0x2004, 0xa084, 0x000f, 0xa080, 0x206a, 0x2004,
+	0x6832, 0x6858, 0x0078, 0x15ef, 0xa18c, 0x00ff, 0xa186, 0x0015,
+	0x00c0, 0x1599, 0x684c, 0xd0ac, 0x0040, 0x1599, 0x6804, 0x681a,
+	0xa080, 0x000d, 0x2004, 0xa084, 0x000f, 0xa080, 0x206a, 0x2004,
+	0x6832, 0xa006, 0x682e, 0x682a, 0x6858, 0x0078, 0x15ef, 0x684c,
+	0xd0ac, 0x0040, 0x1599, 0xa006, 0x682e, 0x682a, 0x6858, 0xa18c,
+	0x000f, 0xa188, 0x206a, 0x210c, 0x6932, 0x2d08, 0x691a, 0x6826,
+	0x684c, 0xc0dd, 0x684e, 0xa006, 0x680a, 0x697c, 0x6912, 0x6980,
+	0x6916, 0x007c, 0x20e1, 0x0007, 0x20e1, 0x2000, 0x2001, 0x020a,
+	0x2004, 0x82ff, 0x0040, 0x161c, 0xa280, 0x0004, 0x0d7e, 0x206c,
+	0x684c, 0xd0dc, 0x00c0, 0x1618, 0x1078, 0x158c, 0x0040, 0x1618,
+	0x0d7f, 0xa280, 0x0000, 0x2003, 0x0002, 0xa016, 0x0078, 0x161c,
+	0x6808, 0x8000, 0x680a, 0x0d7f, 0x127e, 0x047e, 0x037e, 0x027e,
+	0x2091, 0x2100, 0x027f, 0x037f, 0x047f, 0x7000, 0xa005, 0x00c0,
+	0x1630, 0x7206, 0x2001, 0x1651, 0x007e, 0x2260, 0x0078, 0x17e0,
+	0x710c, 0x220a, 0x8108, 0x230a, 0x8108, 0x240a, 0x8108, 0xa182,
+	0xa908, 0x0048, 0x163d, 0x2009, 0xa8ed, 0x710e, 0x7010, 0xa102,
+	0xa082, 0x0009, 0x0040, 0x1648, 0xa080, 0x001b, 0x00c0, 0x164b,
+	0x2009, 0x0138, 0x200a, 0x7000, 0xa005, 0x00c0, 0x1651, 0x1078,
+	0x17c1, 0x127f, 0x007c, 0x127e, 0x027e, 0x037e, 0x0c7e, 0x007e,
+	0x2091, 0x2100, 0x007f, 0x047f, 0x037f, 0x027f, 0x0d7e, 0x0c7e,
+	0x2460, 0x6110, 0x2168, 0x6a62, 0x6b5e, 0xa005, 0x0040, 0x16dd,
+	0x6808, 0xa005, 0x0040, 0x174a, 0x7000, 0xa005, 0x00c0, 0x1672,
+	0x0078, 0x16d2, 0x700c, 0x7110, 0xa106, 0x00c0, 0x1753, 0x7004,
+	0xa406, 0x00c0, 0x16d2, 0x2001, 0x0005, 0x2004, 0xd08c, 0x0040,
+	0x168f, 0x047e, 0x1078, 0x1913, 0x047f, 0x2460, 0x6010, 0xa080,
+	0x0002, 0x2004, 0xa005, 0x0040, 0x174a, 0x0078, 0x166c, 0x2001,
+	0x0207, 0x2004, 0xd09c, 0x00c0, 0x167b, 0x7804, 0xa084, 0x6000,
+	0x0040, 0x16a0, 0xa086, 0x6000, 0x0040, 0x16a0, 0x0078, 0x167b,
+	0x7100, 0xa186, 0x0002, 0x00c0, 0x16c0, 0x0e7e, 0x2b68, 0x6818,
+	0x2060, 0x1078, 0x203f, 0x2804, 0xac70, 0x6034, 0xd09c, 0x00c0,
+	0x16b5, 0x7108, 0x720c, 0x0078, 0x16b7, 0x7110, 0x7214, 0x6810,
+	0xa100, 0x6812, 0x6814, 0xa201, 0x6816, 0x0e7f, 0x0078, 0x16c4,
+	0xa186, 0x0001, 0x00c0, 0x16cc, 0x7820, 0x6910, 0xa100, 0x6812,
+	0x7824, 0x6914, 0xa101, 0x6816, 0x7803, 0x0004, 0x7003, 0x0000,
+	0x7004, 0x2060, 0x6100, 0xa18e, 0x0004, 0x00c0, 0x1753, 0x2009,
+	0x0048, 0x1078, 0x775c, 0x0078, 0x1753, 0x6808, 0xa005, 0x0040,
+	0x174a, 0x7000, 0xa005, 0x00c0, 0x16e7, 0x0078, 0x174a, 0x700c,
+	0x7110, 0xa106, 0x00c0, 0x16f0, 0x7004, 0xa406, 0x00c0, 0x174a,
+	0x2001, 0x0005, 0x2004, 0xd08c, 0x0040, 0x1704, 0x047e, 0x1078,
+	0x1913, 0x047f, 0x2460, 0x6010, 0xa080, 0x0002, 0x2004, 0xa005,
+	0x0040, 0x174a, 0x0078, 0x16e1, 0x2001, 0x0207, 0x2004, 0xd09c,
+	0x00c0, 0x16f0, 0x2001, 0x0005, 0x2004, 0xd08c, 0x00c0, 0x16f6,
+	0x7804, 0xa084, 0x6000, 0x0040, 0x171b, 0xa086, 0x6000, 0x0040,
+	0x171b, 0x0078, 0x16f0, 0x7007, 0x0000, 0xa016, 0x2218, 0x7000,
+	0xa08e, 0x0001, 0x0040, 0x173c, 0xa08e, 0x0002, 0x00c0, 0x174a,
+	0x0c7e, 0x0e7e, 0x6818, 0x2060, 0x1078, 0x203f, 0x2804, 0xac70,
+	0x6034, 0xd09c, 0x00c0, 0x1738, 0x7308, 0x720c, 0x0078, 0x173a,
+	0x7310, 0x7214, 0x0e7f, 0x0c7f, 0x7820, 0xa318, 0x7824, 0xa211,
+	0x6810, 0xa300, 0x6812, 0x6814, 0xa201, 0x6816, 0x7803, 0x0004,
+	0x7003, 0x0000, 0x6100, 0xa18e, 0x0004, 0x00c0, 0x1753, 0x2009,
+	0x0048, 0x1078, 0x775c, 0x0c7f, 0x0d7f, 0x127f, 0x007c, 0x0f7e,
+	0x0e7e, 0x027e, 0x037e, 0x047e, 0x057e, 0x2071, 0xa8e7, 0x7000,
+	0xa086, 0x0000, 0x0040, 0x17ba, 0x7004, 0xac06, 0x00c0, 0x17ab,
+	0x2079, 0x0030, 0x7000, 0xa086, 0x0003, 0x0040, 0x17ab, 0x7804,
+	0xd0fc, 0x00c0, 0x17a7, 0x20e1, 0x6000, 0x2011, 0x0032, 0x2001,
+	0x0208, 0x200c, 0x2001, 0x0209, 0x2004, 0xa106, 0x00c0, 0x176f,
+	0x8211, 0x00c0, 0x1777, 0x7804, 0xd0fc, 0x00c0, 0x17a7, 0x1078,
+	0x1b22, 0x027e, 0x057e, 0x7803, 0x0004, 0x7804, 0xd0ac, 0x00c0,
+	0x178d, 0x7803, 0x0002, 0x7803, 0x0009, 0x7003, 0x0003, 0x7007,
+	0x0000, 0x057f, 0x027f, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001,
+	0x0160, 0x2502, 0x2001, 0x0138, 0x2202, 0x0078, 0x17ab, 0x1078,
+	0x1913, 0x0078, 0x175f, 0x157e, 0x20a9, 0x0009, 0x2009, 0xa8ed,
+	0x2104, 0xac06, 0x00c0, 0x17b5, 0x200a, 0xa188, 0x0003, 0x00f0,
+	0x17b0, 0x157f, 0x057f, 0x047f, 0x037f, 0x027f, 0x0e7f, 0x0f7f,
+	0x007c, 0x700c, 0x7110, 0xa106, 0x00c0, 0x17c9, 0x7003, 0x0000,
+	0x007c, 0x2104, 0x7006, 0x2060, 0x8108, 0x211c, 0x8108, 0x2124,
+	0x8108, 0xa182, 0xa908, 0x0048, 0x17d7, 0x2009, 0xa8ed, 0x7112,
+	0x700c, 0xa106, 0x00c0, 0x17e0, 0x2001, 0x0138, 0x2003, 0x0008,
+	0x8cff, 0x00c0, 0x17e7, 0x1078, 0x1b4d, 0x0078, 0x1854, 0x6010,
+	0x2068, 0x2d58, 0x6828, 0xa406, 0x00c0, 0x17f2, 0x682c, 0xa306,
+	0x0040, 0x182f, 0x601c, 0xa086, 0x0008, 0x0040, 0x182f, 0x6024,
+	0xd0f4, 0x00c0, 0x181c, 0xd0d4, 0x0040, 0x1818, 0x6038, 0xa402,
+	0x6034, 0xa303, 0x0040, 0x1806, 0x00c8, 0x1818, 0x643a, 0x6336,
+	0x6c2a, 0x6b2e, 0x047e, 0x037e, 0x2400, 0x6c7c, 0xa402, 0x6812,
+	0x2300, 0x6b80, 0xa303, 0x6816, 0x037f, 0x047f, 0x0078, 0x181c,
+	0x1078, 0x9053, 0x0040, 0x17e3, 0x2001, 0xa674, 0x2004, 0xd0b4,
+	0x00c0, 0x182b, 0x6018, 0x2004, 0xd0bc, 0x00c0, 0x182b, 0x6817,
+	0x7fff, 0x6813, 0xffff, 0x1078, 0x208a, 0x00c0, 0x17e3, 0x0c7e,
+	0x7004, 0x2060, 0x6024, 0xc0d4, 0x6026, 0x0c7f, 0x684c, 0xd0f4,
+	0x0040, 0x1840, 0x6817, 0xffff, 0x6813, 0xffff, 0x0078, 0x17e3,
+	0x6824, 0x2050, 0x6818, 0x2060, 0x6830, 0x2040, 0x6034, 0xa0cc,
+	0x000f, 0x2009, 0x0011, 0x1078, 0x1855, 0x0040, 0x1853, 0x2009,
+	0x0001, 0x1078, 0x1855, 0x2d58, 0x007c, 0x8aff, 0x0040, 0x18ec,
+	0xa03e, 0x2730, 0x6850, 0xd0fc, 0x00c0, 0x1877, 0xd0f4, 0x00c0,
+	0x1887, 0x0d7e, 0x2804, 0xac68, 0x2900, 0x0079, 0x1867, 0x18ce,
+	0x188e, 0x188e, 0x18ce, 0x18ce, 0x18c6, 0x18ce, 0x188e, 0x18ce,
+	0x1894, 0x1894, 0x18ce, 0x18ce, 0x18ce, 0x18bd, 0x1894, 0xc0fc,
+	0x6852, 0x6b6c, 0x6a70, 0x6d1c, 0x6c20, 0x0d7e, 0xd99c, 0x0040,
+	0x18d1, 0x2804, 0xac68, 0x6f08, 0x6e0c, 0x0078, 0x18d1, 0xc0f4,
+	0x6852, 0x6b6c, 0x6a70, 0x0d7e, 0x0078, 0x18d8, 0x6b08, 0x6a0c,
+	0x6d00, 0x6c04, 0x0078, 0x18d1, 0x7b0c, 0xd3bc, 0x0040, 0x18b5,
+	0x7004, 0x0e7e, 0x2070, 0x701c, 0x0e7f, 0xa086, 0x0008, 0x00c0,
+	0x18b5, 0x7b08, 0xa39c, 0x0fff, 0x2d20, 0x0d7f, 0x0d7e, 0x6a14,
+	0x82ff, 0x00c0, 0x18b0, 0x6810, 0xa302, 0x0048, 0x18b0, 0x6b10,
+	0x2011, 0x0000, 0x2468, 0x0078, 0x18b7, 0x6b10, 0x6a14, 0x6d00,
+	0x6c04, 0x6f08, 0x6e0c, 0x0078, 0x18d1, 0x0d7f, 0x0d7e, 0x6834,
+	0xa084, 0x00ff, 0xa086, 0x001e, 0x00c0, 0x18ce, 0x0d7f, 0x1078,
+	0x2026, 0x00c0, 0x1855, 0xa00e, 0x0078, 0x18ec, 0x0d7f, 0x1078,
+	0x1332, 0x7b22, 0x7a26, 0x7d32, 0x7c36, 0x7f3a, 0x7e3e, 0x7902,
+	0x7000, 0x8000, 0x7002, 0x0d7f, 0x6828, 0xa300, 0x682a, 0x682c,
+	0xa201, 0x682e, 0x2300, 0x6b10, 0xa302, 0x6812, 0x2200, 0x6a14,
+	0xa203, 0x6816, 0x1078, 0x2026, 0x007c, 0x1078, 0x1332, 0x1078,
+	0x1c97, 0x7004, 0x2060, 0x0d7e, 0x6010, 0x2068, 0x7003, 0x0000,
+	0x1078, 0x1af4, 0x1078, 0x8d06, 0x0040, 0x190c, 0x6808, 0x8001,
+	0x680a, 0x697c, 0x6912, 0x6980, 0x6916, 0x682b, 0xffff, 0x682f,
+	0xffff, 0x6850, 0xc0bd, 0x6852, 0x0d7f, 0x1078, 0x8a01, 0x0078,
+	0x1adb, 0x1078, 0x1332, 0x127e, 0x2091, 0x2100, 0x007e, 0x017e,
+	0x2b68, 0x6818, 0x2060, 0x7904, 0x7803, 0x0002, 0xa184, 0x0700,
+	0x00c0, 0x18ef, 0xa184, 0x0003, 0xa086, 0x0003, 0x0040, 0x1911,
+	0x7000, 0x0079, 0x192b, 0x1933, 0x1935, 0x1a34, 0x1ab2, 0x1ac9,
+	0x1933, 0x1933, 0x1933, 0x1078, 0x1332, 0x8001, 0x7002, 0xa184,
+	0x0880, 0x00c0, 0x194a, 0x8aff, 0x0040, 0x19d4, 0x2009, 0x0001,
+	0x1078, 0x1855, 0x0040, 0x1adb, 0x2009, 0x0001, 0x1078, 0x1855,
+	0x0078, 0x1adb, 0x7803, 0x0004, 0x7003, 0x0000, 0xd1bc, 0x00c0,
+	0x19b2, 0x027e, 0x037e, 0x017e, 0x7808, 0xd0ec, 0x00c0, 0x1962,
+	0x7c20, 0x7d24, 0x7e30, 0x7f34, 0x7803, 0x0009, 0x7003, 0x0004,
+	0x0078, 0x1964, 0x1078, 0x1bd7, 0x017f, 0xd194, 0x0040, 0x196b,
+	0x8aff, 0x0040, 0x19a1, 0x6b28, 0x6a2c, 0x2400, 0x686e, 0xa31a,
+	0x2500, 0x6872, 0xa213, 0x6b2a, 0x6a2e, 0x0c7e, 0x7004, 0x2060,
+	0x6024, 0xd0f4, 0x00c0, 0x197e, 0x633a, 0x6236, 0x0c7f, 0x2400,
+	0x6910, 0xa100, 0x6812, 0x2500, 0x6914, 0xa101, 0x6816, 0x037f,
+	0x027f, 0x2600, 0x681e, 0x2700, 0x6822, 0x1078, 0x203f, 0x2a00,
+	0x6826, 0x2c00, 0x681a, 0x2800, 0x6832, 0x6850, 0xc0fd, 0x6852,
+	0x6808, 0x8001, 0x680a, 0x00c0, 0x19a7, 0x684c, 0xd0e4, 0x0040,
+	0x19a7, 0x7004, 0x2060, 0x2009, 0x0048, 0x1078, 0x775c, 0x7000,
+	0xa086, 0x0004, 0x0040, 0x1adb, 0x7003, 0x0000, 0x1078, 0x17c1,
+	0x0078, 0x1adb, 0x057e, 0x7d0c, 0xd5bc, 0x00c0, 0x19b9, 0x1078,
+	0xa57e, 0x057f, 0x1078, 0x1af4, 0x0f7e, 0x7004, 0x2078, 0x1078,
+	0x4963, 0x0040, 0x19c6, 0x7824, 0xc0f5, 0x7826, 0x0f7f, 0x682b,
+	0xffff, 0x682f, 0xffff, 0x6808, 0x8001, 0x680a, 0x697c, 0x6912,
+	0x6980, 0x6916, 0x0078, 0x1adb, 0x7004, 0x0c7e, 0x2060, 0x6024,
+	0x0c7f, 0xd0f4, 0x0040, 0x19e1, 0x6808, 0x8001, 0x680a, 0x0078,
+	0x19f5, 0x684c, 0xc0f5, 0x684e, 0x7814, 0xa005, 0x00c0, 0x19f9,
+	0x7003, 0x0000, 0x6808, 0x8001, 0x680a, 0x00c0, 0x19f5, 0x7004,
+	0x2060, 0x2009, 0x0048, 0x1078, 0x775c, 0x1078, 0x17c1, 0x0078,
+	0x1adb, 0x7814, 0x6910, 0xa102, 0x6812, 0x6914, 0xa183, 0x0000,
+	0x6816, 0x7814, 0x7908, 0xa18c, 0x0fff, 0xa192, 0x0841, 0x00c8,
+	0x18ef, 0xa188, 0x0007, 0x8114, 0x8214, 0x8214, 0xa10a, 0x8104,
+	0x8004, 0x8004, 0xa20a, 0x810b, 0x810b, 0x810b, 0x1078, 0x1b5e,
+	0x7803, 0x0004, 0x780f, 0xffff, 0x7803, 0x0001, 0x7804, 0xd0fc,
+	0x0040, 0x1a1e, 0x7803, 0x0002, 0x7803, 0x0004, 0x780f, 0x0076,
+	0x7004, 0x7007, 0x0000, 0x2060, 0x2009, 0x0048, 0x1078, 0x775c,
+	0x1078, 0x1b92, 0x0040, 0x19f5, 0x8001, 0x7002, 0xd194, 0x0040,
+	0x1a46, 0x7804, 0xd0fc, 0x00c0, 0x191b, 0x8aff, 0x0040, 0x1adb,
+	0x2009, 0x0001, 0x1078, 0x1855, 0x0078, 0x1adb, 0xa184, 0x0880,
+	0x00c0, 0x1a53, 0x8aff, 0x0040, 0x1adb, 0x2009, 0x0001, 0x1078,
+	0x1855, 0x0078, 0x1adb, 0x7803, 0x0004, 0x7003, 0x0000, 0xd1bc,
+	0x00c0, 0x1a93, 0x027e, 0x037e, 0x7808, 0xd0ec, 0x00c0, 0x1a66,
+	0x7803, 0x0009, 0x7003, 0x0004, 0x0078, 0x1a68, 0x1078, 0x1bd7,
+	0x6b28, 0x6a2c, 0x1078, 0x203f, 0x0d7e, 0x0f7e, 0x2d78, 0x2804,
+	0xac68, 0x6034, 0xd09c, 0x00c0, 0x1a83, 0x6808, 0x2008, 0xa31a,
+	0x680c, 0xa213, 0x7810, 0xa100, 0x7812, 0x690c, 0x7814, 0xa101,
+	0x7816, 0x0078, 0x1a8f, 0x6810, 0x2008, 0xa31a, 0x6814, 0xa213,
+	0x7810, 0xa100, 0x7812, 0x6914, 0x7814, 0xa101, 0x7816, 0x0f7f,
+	0x0d7f, 0x0078, 0x196d, 0x057e, 0x7d0c, 0x1078, 0xa57e, 0x057f,
+	0x1078, 0x1af4, 0x0f7e, 0x7004, 0x2078, 0x1078, 0x4963, 0x0040,
+	0x1aa4, 0x7824, 0xc0f5, 0x7826, 0x0f7f, 0x682b, 0xffff, 0x682f,
+	0xffff, 0x6808, 0x8001, 0x680a, 0x697c, 0x6912, 0x6980, 0x6916,
+	0x0078, 0x1adb, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0xa00d,
+	0x0040, 0x1ac5, 0x6808, 0x8001, 0x680a, 0x00c0, 0x1ac5, 0x7004,
+	0x2060, 0x2009, 0x0048, 0x1078, 0x775c, 0x1078, 0x17c1, 0x0078,
+	0x1adb, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x6010,
+	0xa005, 0x0040, 0x1ac5, 0x2068, 0x6808, 0x8000, 0x680a, 0x6c28,
+	0x6b2c, 0x1078, 0x17e0, 0x017f, 0x007f, 0x127f, 0x007c, 0x127e,
+	0x2091, 0x2100, 0x7000, 0xa086, 0x0003, 0x00c0, 0x1af2, 0x700c,
+	0x7110, 0xa106, 0x0040, 0x1af2, 0x20e1, 0x9028, 0x700f, 0xa8ed,
+	0x7013, 0xa8ed, 0x127f, 0x007c, 0x0c7e, 0x1078, 0x1b22, 0x20e1,
+	0x9028, 0x700c, 0x7110, 0xa106, 0x0040, 0x1b19, 0x2104, 0xa005,
+	0x0040, 0x1b08, 0x2060, 0x6010, 0x2060, 0x6008, 0x8001, 0x600a,
+	0xa188, 0x0003, 0xa182, 0xa908, 0x0048, 0x1b10, 0x2009, 0xa8ed,
+	0x7112, 0x700c, 0xa106, 0x00c0, 0x1af9, 0x2011, 0x0008, 0x0078,
+	0x1af9, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001, 0x0138, 0x2202,
+	0x0c7f, 0x007c, 0x2001, 0x0138, 0x2014, 0x2003, 0x0000, 0x2021,
+	0xb015, 0x2001, 0x0141, 0x201c, 0xd3dc, 0x00c0, 0x1b3f, 0x2001,
+	0x0109, 0x201c, 0xa39c, 0x0048, 0x00c0, 0x1b3f, 0x2001, 0x0111,
+	0x201c, 0x83ff, 0x00c0, 0x1b3f, 0x8421, 0x00c0, 0x1b29, 0x007c,
+	0x2011, 0x0201, 0x2009, 0x003c, 0x2204, 0xa005, 0x00c0, 0x1b4c,
+	0x8109, 0x00c0, 0x1b44, 0x007c, 0x007c, 0x1078, 0x1b40, 0x0040,
+	0x1b55, 0x780c, 0xd0a4, 0x0040, 0x1b5b, 0x1078, 0x1af4, 0xa085,
+	0x0001, 0x0078, 0x1b5d, 0x1078, 0x1b92, 0x007c, 0x0e7e, 0x2071,
+	0x0200, 0x7808, 0xa084, 0xf000, 0xa10d, 0x1078, 0x1b22, 0x2019,
+	0x5000, 0x8319, 0x0040, 0x1b7c, 0x2001, 0xa908, 0x2004, 0xa086,
+	0x0000, 0x0040, 0x1b7c, 0x2001, 0x0021, 0xd0fc, 0x0040, 0x1b69,
+	0x1078, 0x1eaa, 0x0078, 0x1b67, 0x20e1, 0x7000, 0x7324, 0x7420,
+	0x7028, 0x7028, 0x7426, 0x7037, 0x0001, 0x810f, 0x712e, 0x702f,
+	0x0100, 0x7037, 0x0008, 0x7326, 0x7422, 0x2001, 0x0138, 0x2202,
+	0x0e7f, 0x007c, 0x027e, 0x2001, 0x015d, 0x2001, 0x0000, 0x7908,
+	0xa18c, 0x0fff, 0xa182, 0x0ffd, 0x0048, 0x1ba0, 0x2009, 0x0000,
+	0xa190, 0x0007, 0xa294, 0x1ff8, 0x8214, 0x8214, 0x8214, 0x2001,
+	0x020a, 0x82ff, 0x0040, 0x1bb5, 0x20e1, 0x6000, 0x200c, 0x200c,
+	0x200c, 0x200c, 0x8211, 0x00c0, 0x1bae, 0x20e1, 0x7000, 0x200c,
+	0x200c, 0x7003, 0x0000, 0x20e1, 0x6000, 0x2001, 0x0208, 0x200c,
+	0x2001, 0x0209, 0x2004, 0xa106, 0x0040, 0x1bd4, 0x1078, 0x1b40,
+	0x0040, 0x1bd2, 0x7908, 0xd1ec, 0x00c0, 0x1bd4, 0x790c, 0xd1a4,
+	0x0040, 0x1b97, 0x1078, 0x1af4, 0xa006, 0x027f, 0x007c, 0x7c20,
+	0x7d24, 0x7e30, 0x7f34, 0x700c, 0x7110, 0xa106, 0x0040, 0x1c69,
+	0x7004, 0x017e, 0x210c, 0xa106, 0x017f, 0x0040, 0x1c69, 0x0d7e,
+	0x0c7e, 0x216c, 0x2d00, 0xa005, 0x0040, 0x1c67, 0x681c, 0xa086,
+	0x0008, 0x0040, 0x1c67, 0x6824, 0xd0d4, 0x00c0, 0x1c67, 0x6810,
+	0x2068, 0x6850, 0xd0fc, 0x0040, 0x1c29, 0x8108, 0x2104, 0x6b2c,
+	0xa306, 0x00c0, 0x1c67, 0x8108, 0x2104, 0x6a28, 0xa206, 0x00c0,
+	0x1c67, 0x6850, 0xc0fc, 0xc0f5, 0x6852, 0x686c, 0x7822, 0x6870,
+	0x7826, 0x681c, 0x7832, 0x6820, 0x7836, 0x6818, 0x2060, 0x6034,
+	0xd09c, 0x0040, 0x1c24, 0x6830, 0x2004, 0xac68, 0x6808, 0x783a,
+	0x680c, 0x783e, 0x0078, 0x1c65, 0xa006, 0x783a, 0x783e, 0x0078,
+	0x1c65, 0x8108, 0x2104, 0xa005, 0x00c0, 0x1c67, 0x6b2c, 0xa306,
+	0x00c0, 0x1c67, 0x8108, 0x2104, 0xa005, 0x00c0, 0x1c67, 0x6a28,
+	0xa206, 0x00c0, 0x1c67, 0x6850, 0xc0f5, 0x6852, 0x6830, 0x2004,
+	0x6918, 0xa160, 0xa180, 0x000d, 0x2004, 0xd09c, 0x00c0, 0x1c57,
+	0x6008, 0x7822, 0x686e, 0x600c, 0x7826, 0x6872, 0x6000, 0x7832,
+	0x6004, 0x7836, 0xa006, 0x783a, 0x783e, 0x0078, 0x1c65, 0x6010,
+	0x7822, 0x686e, 0x6014, 0x7826, 0x6872, 0x6000, 0x7832, 0x6004,
+	0x7836, 0x6008, 0x783a, 0x600c, 0x783e, 0x7803, 0x0011, 0x0c7f,
+	0x0d7f, 0x007c, 0x0f7e, 0x0e7e, 0x017e, 0x027e, 0x2071, 0xa8e7,
+	0x2079, 0x0030, 0x2011, 0x0050, 0x7000, 0xa086, 0x0000, 0x0040,
+	0x1c92, 0x8211, 0x0040, 0x1c90, 0x2001, 0x0005, 0x2004, 0xd08c,
+	0x0040, 0x1c79, 0x7904, 0xa18c, 0x0780, 0x017e, 0x1078, 0x1913,
+	0x017f, 0x81ff, 0x00c0, 0x1c90, 0x2011, 0x0050, 0x0078, 0x1c74,
+	0xa085, 0x0001, 0x027f, 0x017f, 0x0e7f, 0x0f7f, 0x007c, 0x7803,
+	0x0004, 0x2009, 0x0064, 0x7804, 0xd0ac, 0x0040, 0x1ce8, 0x8109,
+	0x00c0, 0x1c9b, 0x2009, 0x0100, 0x210c, 0xa18a, 0x0003, 0x1048,
+	0x1332, 0x1078, 0x1fca, 0x0e7e, 0x0f7e, 0x2071, 0xa8d6, 0x2079,
+	0x0010, 0x7004, 0xa086, 0x0000, 0x0040, 0x1ce0, 0x7800, 0x007e,
+	0x7820, 0x007e, 0x7830, 0x007e, 0x7834, 0x007e, 0x7838, 0x007e,
+	0x783c, 0x007e, 0x7803, 0x0004, 0x7823, 0x0000, 0x0005, 0x0005,
+	0x2079, 0x0030, 0x7804, 0xd0ac, 0x10c0, 0x1332, 0x2079, 0x0010,
+	0x007f, 0x783e, 0x007f, 0x783a, 0x007f, 0x7836, 0x007f, 0x7832,
+	0x007f, 0x7822, 0x007f, 0x7802, 0x0f7f, 0x0e7f, 0x0078, 0x1ce6,
+	0x0f7f, 0x0e7f, 0x7804, 0xd0ac, 0x10c0, 0x1332, 0x1078, 0x639b,
+	0x007c, 0x0e7e, 0x2071, 0xa908, 0x7003, 0x0000, 0x0e7f, 0x007c,
+	0x0d7e, 0xa280, 0x0004, 0x206c, 0x694c, 0xd1dc, 0x00c0, 0x1d6b,
+	0x6934, 0xa184, 0x0007, 0x0079, 0x1cfd, 0x1d05, 0x1d56, 0x1d05,
+	0x1d05, 0x1d05, 0x1d3b, 0x1d18, 0x1d07, 0x1078, 0x1332, 0x684c,
+	0xd0b4, 0x0040, 0x1e79, 0x6860, 0x682e, 0x6816, 0x685c, 0x682a,
+	0x6812, 0x687c, 0x680a, 0x6880, 0x680e, 0x6958, 0x0078, 0x1d5e,
+	0x6834, 0xa084, 0x00ff, 0xa086, 0x001e, 0x00c0, 0x1d05, 0x684c,
+	0xd0b4, 0x0040, 0x1e79, 0x6860, 0x682e, 0x6816, 0x685c, 0x682a,
+	0x6812, 0x687c, 0x680a, 0x6880, 0x680e, 0x6804, 0x681a, 0xa080,
+	0x000d, 0x2004, 0xa084, 0x000f, 0xa080, 0x206a, 0x2004, 0x6832,
+	0x6958, 0x0078, 0x1d67, 0xa18c, 0x00ff, 0xa186, 0x0015, 0x00c0,
+	0x1d6b, 0x684c, 0xd0b4, 0x0040, 0x1e79, 0x6804, 0x681a, 0xa080,
+	0x000d, 0x2004, 0xa084, 0x000f, 0xa080, 0x206a, 0x2004, 0x6832,
+	0x6958, 0xa006, 0x682e, 0x682a, 0x0078, 0x1d67, 0x684c, 0xd0b4,
+	0x0040, 0x18ed, 0x6958, 0xa006, 0x682e, 0x682a, 0x2d00, 0x681a,
+	0x6834, 0xa084, 0x000f, 0xa080, 0x206a, 0x2004, 0x6832, 0x6926,
+	0x684c, 0xc0dd, 0x684e, 0x0d7f, 0x007c, 0x0f7e, 0x2079, 0x0020,
+	0x7804, 0xd0fc, 0x10c0, 0x1eaa, 0x0e7e, 0x0d7e, 0x2071, 0xa908,
+	0x7000, 0xa005, 0x00c0, 0x1df0, 0x0c7e, 0x7206, 0xa280, 0x0004,
+	0x205c, 0x7004, 0x2068, 0x7803, 0x0004, 0x6818, 0x0d7e, 0x2068,
+	0x686c, 0x7812, 0x6890, 0x0f7e, 0x20e1, 0x9040, 0x2079, 0x0200,
+	0x781a, 0x2079, 0x0100, 0x8004, 0x78d6, 0x0f7f, 0x0d7f, 0x2b68,
+	0x6824, 0x2050, 0x6818, 0x2060, 0x6830, 0x2040, 0x6034, 0xa0cc,
+	0x000f, 0x6908, 0x2001, 0x04fd, 0x2004, 0xa086, 0x0007, 0x0040,
+	0x1db2, 0xa184, 0x0007, 0x0040, 0x1db2, 0x017e, 0x2009, 0x0008,
+	0xa102, 0x017f, 0xa108, 0x791a, 0x7116, 0x701e, 0x680c, 0xa081,
+	0x0000, 0x781e, 0x701a, 0xa006, 0x700e, 0x7012, 0x7004, 0x692c,
+	0x6814, 0xa106, 0x00c0, 0x1dc9, 0x6928, 0x6810, 0xa106, 0x0040,
+	0x1dd6, 0x037e, 0x047e, 0x6b14, 0x6c10, 0x1078, 0x208a, 0x047f,
+	0x037f, 0x0040, 0x1dd6, 0x0c7f, 0x0078, 0x1df0, 0x8aff, 0x00c0,
+	0x1dde, 0x0c7f, 0xa085, 0x0001, 0x0078, 0x1df0, 0x127e, 0x2091,
+	0x8000, 0x2079, 0x0020, 0x2009, 0x0001, 0x1078, 0x1df4, 0x0040,
+	0x1ded, 0x2009, 0x0001, 0x1078, 0x1df4, 0x127f, 0x0c7f, 0xa006,
+	0x0d7f, 0x0e7f, 0x0f7f, 0x007c, 0x077e, 0x067e, 0x057e, 0x047e,
+	0x037e, 0x027e, 0x8aff, 0x0040, 0x1e72, 0x700c, 0x7214, 0xa23a,
+	0x7010, 0x7218, 0xa203, 0x0048, 0x1e71, 0xa705, 0x0040, 0x1e71,
+	0xa03e, 0x2730, 0x6850, 0xd0fc, 0x00c0, 0x1e24, 0x0d7e, 0x2804,
+	0xac68, 0x2900, 0x0079, 0x1e14, 0x1e53, 0x1e34, 0x1e34, 0x1e53,
+	0x1e53, 0x1e4b, 0x1e53, 0x1e34, 0x1e53, 0x1e3a, 0x1e3a, 0x1e53,
+	0x1e53, 0x1e53, 0x1e42, 0x1e3a, 0xc0fc, 0x6852, 0x6b6c, 0x6a70,
+	0x6d1c, 0x6c20, 0xd99c, 0x0040, 0x1e57, 0x0d7e, 0x2804, 0xac68,
+	0x6f08, 0x6e0c, 0x0078, 0x1e56, 0x6b08, 0x6a0c, 0x6d00, 0x6c04,
+	0x0078, 0x1e56, 0x6b10, 0x6a14, 0x6d00, 0x6c04, 0x6f08, 0x6e0c,
+	0x0078, 0x1e56, 0x0d7f, 0x0d7e, 0x6834, 0xa084, 0x00ff, 0xa086,
+	0x001e, 0x00c0, 0x1e53, 0x0d7f, 0x1078, 0x2026, 0x00c0, 0x1dfa,
+	0xa00e, 0x0078, 0x1e72, 0x0d7f, 0x1078, 0x1332, 0x0d7f, 0x7b22,
+	0x7a26, 0x7d32, 0x7c36, 0x7f3a, 0x7e3e, 0x7902, 0x7000, 0x8000,
+	0x7002, 0x6828, 0xa300, 0x682a, 0x682c, 0xa201, 0x682e, 0x700c,
+	0xa300, 0x700e, 0x7010, 0xa201, 0x7012, 0x1078, 0x2026, 0x0078,
+	0x1e72, 0xa006, 0x027f, 0x037f, 0x047f, 0x057f, 0x067f, 0x077f,
+	0x007c, 0x1078, 0x1332, 0x027e, 0x2001, 0x0105, 0x2003, 0x0010,
+	0x20e1, 0x9040, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060,
+	0x0d7e, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x1e92, 0x6850,
+	0xc0bd, 0x6852, 0x0d7f, 0x0c7e, 0x1078, 0x8a01, 0x0c7f, 0x2001,
+	0xa8c0, 0x2004, 0xac06, 0x00c0, 0x1ea7, 0x20e1, 0x9040, 0x1078,
+	0x738a, 0x2011, 0x0000, 0x1078, 0x70ea, 0x1078, 0x639b, 0x027f,
+	0x0078, 0x1f76, 0x127e, 0x2091, 0x2200, 0x007e, 0x017e, 0x0f7e,
+	0x0e7e, 0x0d7e, 0x0c7e, 0x2079, 0x0020, 0x2071, 0xa908, 0x2b68,
+	0x6818, 0x2060, 0x7904, 0x7803, 0x0002, 0xa184, 0x0700, 0x00c0,
+	0x1e7b, 0x7000, 0x0079, 0x1ec4, 0x1f76, 0x1ec8, 0x1f43, 0x1f74,
+	0x8001, 0x7002, 0xd19c, 0x00c0, 0x1edc, 0x8aff, 0x0040, 0x1efb,
+	0x2009, 0x0001, 0x1078, 0x1df4, 0x0040, 0x1f76, 0x2009, 0x0001,
+	0x1078, 0x1df4, 0x0078, 0x1f76, 0x7803, 0x0004, 0xd194, 0x0040,
+	0x1eec, 0x6850, 0xc0fc, 0x6852, 0x8aff, 0x00c0, 0x1ef1, 0x684c,
+	0xc0f5, 0x684e, 0x0078, 0x1ef1, 0x1078, 0x203f, 0x6850, 0xc0fd,
+	0x6852, 0x2a00, 0x6826, 0x2c00, 0x681a, 0x2800, 0x6832, 0x7003,
+	0x0000, 0x0078, 0x1f76, 0x711c, 0x81ff, 0x0040, 0x1f11, 0x7918,
+	0x7922, 0x7827, 0x0000, 0x7803, 0x0001, 0x7000, 0x8000, 0x7002,
+	0x700c, 0xa100, 0x700e, 0x7010, 0xa081, 0x0000, 0x7012, 0x0078,
+	0x1f76, 0x0f7e, 0x027e, 0x781c, 0x007e, 0x7818, 0x007e, 0x2079,
+	0x0100, 0x7a14, 0xa284, 0x0004, 0xa085, 0x0012, 0x7816, 0x037e,
+	0x2019, 0x1000, 0x8319, 0x1040, 0x1332, 0x7820, 0xd0bc, 0x00c0,
+	0x1f22, 0x037f, 0x79c8, 0x007f, 0xa102, 0x017f, 0x007e, 0x017e,
+	0x79c4, 0x007f, 0xa103, 0x78c6, 0x007f, 0x78ca, 0xa284, 0x0004,
+	0xa085, 0x0012, 0x7816, 0x027f, 0x0f7f, 0x7803, 0x0008, 0x7003,
+	0x0000, 0x0078, 0x1f76, 0x8001, 0x7002, 0xd194, 0x0040, 0x1f58,
+	0x7804, 0xd0fc, 0x00c0, 0x1eba, 0xd19c, 0x00c0, 0x1f72, 0x8aff,
+	0x0040, 0x1f76, 0x2009, 0x0001, 0x1078, 0x1df4, 0x0078, 0x1f76,
+	0x027e, 0x037e, 0x6b28, 0x6a2c, 0x1078, 0x203f, 0x0d7e, 0x2804,
+	0xac68, 0x6034, 0xd09c, 0x00c0, 0x1f6b, 0x6808, 0xa31a, 0x680c,
+	0xa213, 0x0078, 0x1f6f, 0x6810, 0xa31a, 0x6814, 0xa213, 0x0d7f,
+	0x0078, 0x1eec, 0x0078, 0x1eec, 0x1078, 0x1332, 0x0c7f, 0x0d7f,
+	0x0e7f, 0x0f7f, 0x017f, 0x007f, 0x127f, 0x007c, 0x0f7e, 0x0e7e,
+	0x2071, 0xa908, 0x7000, 0xa086, 0x0000, 0x0040, 0x1fc7, 0x2079,
+	0x0020, 0x017e, 0x2009, 0x0207, 0x210c, 0xd194, 0x0040, 0x1fa4,
+	0x2009, 0x020c, 0x210c, 0xa184, 0x0003, 0x0040, 0x1fa4, 0x1078,
+	0xa5d2, 0x2001, 0x0133, 0x2004, 0xa005, 0x1040, 0x1332, 0x20e1,
+	0x9040, 0x2001, 0x020c, 0x2102, 0x2009, 0x0206, 0x2104, 0x2009,
+	0x0203, 0x210c, 0xa106, 0x00c0, 0x1faf, 0x20e1, 0x9040, 0x7804,
+	0xd0fc, 0x0040, 0x1f8a, 0x1078, 0x1eaa, 0x7000, 0xa086, 0x0000,
+	0x00c0, 0x1f8a, 0x017f, 0x7803, 0x0004, 0x7804, 0xd0ac, 0x00c0,
+	0x1fbd, 0x20e1, 0x9040, 0x7803, 0x0002, 0x7003, 0x0000, 0x0e7f,
+	0x0f7f, 0x007c, 0x027e, 0x0c7e, 0x0d7e, 0x0e7e, 0x0f7e, 0x2071,
+	0xa908, 0x2079, 0x0020, 0x7000, 0xa086, 0x0000, 0x0040, 0x2003,
+	0x7004, 0x2060, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x1fed,
+	0x6850, 0xc0b5, 0x6852, 0x680c, 0x7a1c, 0xa206, 0x00c0, 0x1fed,
+	0x6808, 0x7a18, 0xa206, 0x0040, 0x2009, 0x2001, 0x0105, 0x2003,
+	0x0010, 0x20e1, 0x9040, 0x7803, 0x0004, 0x7003, 0x0000, 0x7004,
+	0x2060, 0x1078, 0x8a01, 0x20e1, 0x9040, 0x1078, 0x738a, 0x2011,
+	0x0000, 0x1078, 0x70ea, 0x0f7f, 0x0e7f, 0x0d7f, 0x0c7f, 0x027f,
+	0x007c, 0x6810, 0x6a14, 0xa205, 0x00c0, 0x1fed, 0x684c, 0xc0dc,
+	0x684e, 0x2c10, 0x1078, 0x1cf0, 0x2001, 0x0105, 0x2003, 0x0010,
+	0x20e1, 0x9040, 0x7803, 0x0004, 0x7003, 0x0000, 0x2069, 0xa8b1,
+	0x6833, 0x0000, 0x683f, 0x0000, 0x0078, 0x2003, 0x8840, 0x2804,
+	0xa005, 0x00c0, 0x203a, 0x6004, 0xa005, 0x0040, 0x203c, 0x681a,
+	0x2060, 0x6034, 0xa084, 0x000f, 0xa080, 0x206a, 0x2044, 0x88ff,
+	0x1040, 0x1332, 0x8a51, 0x007c, 0x2051, 0x0000, 0x007c, 0x8a50,
+	0x8841, 0x2804, 0xa005, 0x00c0, 0x2059, 0x2c00, 0xad06, 0x0040,
+	0x204e, 0x6000, 0xa005, 0x00c0, 0x204e, 0x2d00, 0x2060, 0x681a,
+	0x6034, 0xa084, 0x000f, 0xa080, 0x207a, 0x2044, 0x88ff, 0x1040,
+	0x1332, 0x007c, 0x0000, 0x0011, 0x0015, 0x0019, 0x001d, 0x0021,
+	0x0025, 0x0029, 0x0000, 0x000f, 0x0015, 0x001b, 0x0021, 0x0027,
+	0x0000, 0x0000, 0x0000, 0x205f, 0x205b, 0x0000, 0x0000, 0x2069,
+	0x0000, 0x205f, 0x0000, 0x2066, 0x2063, 0x0000, 0x0000, 0x0000,
+	0x2069, 0x2066, 0x0000, 0x2061, 0x2061, 0x0000, 0x0000, 0x2069,
+	0x0000, 0x2061, 0x0000, 0x2067, 0x2067, 0x0000, 0x0000, 0x0000,
+	0x2069, 0x2067, 0x0a7e, 0x097e, 0x087e, 0x6b2e, 0x6c2a, 0x6858,
+	0xa055, 0x0040, 0x212d, 0x2d60, 0x6034, 0xa0cc, 0x000f, 0xa9c0,
+	0x206a, 0xa986, 0x0007, 0x0040, 0x20a5, 0xa986, 0x000e, 0x0040,
+	0x20a5, 0xa986, 0x000f, 0x00c0, 0x20a9, 0x605c, 0xa422, 0x6060,
+	0xa31a, 0x2804, 0xa045, 0x00c0, 0x20b7, 0x0050, 0x20b1, 0x0078,
+	0x212d, 0x6004, 0xa065, 0x0040, 0x212d, 0x0078, 0x2094, 0x2804,
+	0xa005, 0x0040, 0x20d5, 0xac68, 0xd99c, 0x00c0, 0x20c5, 0x6808,
+	0xa422, 0x680c, 0xa31b, 0x0078, 0x20c9, 0x6810, 0xa422, 0x6814,
+	0xa31b, 0x0048, 0x20f4, 0x2300, 0xa405, 0x0040, 0x20db, 0x8a51,
+	0x0040, 0x212d, 0x8840, 0x0078, 0x20b7, 0x6004, 0xa065, 0x0040,
+	0x212d, 0x0078, 0x2094, 0x8a51, 0x0040, 0x212d, 0x8840, 0x2804,
+	0xa005, 0x00c0, 0x20ee, 0x6004, 0xa065, 0x0040, 0x212d, 0x6034,
+	0xa0cc, 0x000f, 0xa9c0, 0x206a, 0x2804, 0x2040, 0x2b68, 0x6850,
+	0xc0fc, 0x6852, 0x0078, 0x2121, 0x8422, 0x8420, 0x831a, 0xa399,
+	0x0000, 0x0d7e, 0x2b68, 0x6c6e, 0x6b72, 0x0d7f, 0xd99c, 0x00c0,
+	0x210f, 0x6908, 0x2400, 0xa122, 0x690c, 0x2300, 0xa11b, 0x1048,
+	0x1332, 0x6800, 0xa420, 0x6804, 0xa319, 0x0078, 0x211b, 0x6910,
+	0x2400, 0xa122, 0x6914, 0x2300, 0xa11b, 0x1048, 0x1332, 0x6800,
+	0xa420, 0x6804, 0xa319, 0x2b68, 0x6c1e, 0x6b22, 0x6850, 0xc0fd,
+	0x6852, 0x2c00, 0x681a, 0x2800, 0x6832, 0x2a00, 0x6826, 0x007f,
+	0x007f, 0x007f, 0xa006, 0x0078, 0x2132, 0x087f, 0x097f, 0x0a7f,
+	0xa085, 0x0001, 0x007c, 0x2001, 0x0005, 0x2004, 0xa084, 0x0007,
+	0x0079, 0x213a, 0x2142, 0x2143, 0x2146, 0x2149, 0x214e, 0x2151,
+	0x2156, 0x215b, 0x007c, 0x1078, 0x1eaa, 0x007c, 0x1078, 0x1913,
+	0x007c, 0x1078, 0x1913, 0x1078, 0x1eaa, 0x007c, 0x1078, 0x14be,
+	0x007c, 0x1078, 0x1eaa, 0x1078, 0x14be, 0x007c, 0x1078, 0x1913,
+	0x1078, 0x14be, 0x007c, 0x1078, 0x1913, 0x1078, 0x1eaa, 0x1078,
+	0x14be, 0x007c, 0x127e, 0x2091, 0x2300, 0x2079, 0x0200, 0x2071,
+	0xab80, 0x2069, 0xa600, 0x2009, 0x0004, 0x7912, 0x7817, 0x0004,
+	0x1078, 0x251f, 0x781b, 0x0002, 0x20e1, 0x8700, 0x127f, 0x007c,
+	0x127e, 0x2091, 0x2300, 0x781c, 0xa084, 0x0007, 0x0079, 0x2180,
+	0x21a4, 0x2188, 0x218c, 0x2190, 0x2196, 0x219a, 0x219e, 0x21a2,
+	0x1078, 0x548e, 0x0078, 0x21a4, 0x1078, 0x54da, 0x0078, 0x21a4,
+	0x1078, 0x548e, 0x1078, 0x54da, 0x0078, 0x21a4, 0x1078, 0x21a6,
+	0x0078, 0x21a4, 0x1078, 0x21a6, 0x0078, 0x21a4, 0x1078, 0x21a6,
+	0x0078, 0x21a4, 0x1078, 0x21a6, 0x127f, 0x007c, 0x007e, 0x017e,
+	0x027e, 0x1078, 0xa5d2, 0x7930, 0xa184, 0x0003, 0x0040, 0x21c9,
+	0x2001, 0xa8c0, 0x2004, 0xa005, 0x0040, 0x21c5, 0x2001, 0x0133,
+	0x2004, 0xa005, 0x1040, 0x1332, 0x0c7e, 0x2001, 0xa8c0, 0x2064,
+	0x1078, 0x8a01, 0x0c7f, 0x0078, 0x21f2, 0x20e1, 0x9040, 0x0078,
+	0x21f2, 0xa184, 0x0030, 0x0040, 0x21da, 0x6a00, 0xa286, 0x0003,
+	0x00c0, 0x21d4, 0x0078, 0x21d6, 0x1078, 0x4224, 0x20e1, 0x9010,
+	0x0078, 0x21f2, 0xa184, 0x00c0, 0x0040, 0x21ec, 0x0e7e, 0x037e,
+	0x047e, 0x057e, 0x2071, 0xa8e7, 0x1078, 0x1af4, 0x057f, 0x047f,
+	0x037f, 0x0e7f, 0x0078, 0x21f2, 0xa184, 0x0300, 0x0040, 0x21f2,
+	0x20e1, 0x9020, 0x7932, 0x027f, 0x017f, 0x007f, 0x007c, 0x017e,
+	0x0e7e, 0x0f7e, 0x2071, 0xa600, 0x7128, 0x2001, 0xa890, 0x2102,
+	0x2001, 0xa898, 0x2102, 0xa182, 0x0211, 0x00c8, 0x220b, 0x2009,
+	0x0008, 0x0078, 0x2235, 0xa182, 0x0259, 0x00c8, 0x2213, 0x2009,
+	0x0007, 0x0078, 0x2235, 0xa182, 0x02c1, 0x00c8, 0x221b, 0x2009,
+	0x0006, 0x0078, 0x2235, 0xa182, 0x0349, 0x00c8, 0x2223, 0x2009,
+	0x0005, 0x0078, 0x2235, 0xa182, 0x0421, 0x00c8, 0x222b, 0x2009,
+	0x0004, 0x0078, 0x2235, 0xa182, 0x0581, 0x00c8, 0x2233, 0x2009,
+	0x0003, 0x0078, 0x2235, 0x2009, 0x0002, 0x2079, 0x0200, 0x7912,
+	0x7817, 0x0004, 0x1078, 0x251f, 0x0f7f, 0x0e7f, 0x017f, 0x007c,
+	0x127e, 0x2091, 0x2200, 0x2061, 0x0100, 0x2071, 0xa600, 0x6024,
+	0x6026, 0x6053, 0x0030, 0x6033, 0x00ef, 0x60e7, 0x0000, 0x60eb,
+	0x00ef, 0x60e3, 0x0008, 0x604b, 0xf7f7, 0x6043, 0x0000, 0x602f,
+	0x0080, 0x602f, 0x0000, 0x6007, 0x0eaf, 0x600f, 0x00ff, 0x602b,
+	0x002f, 0x127f, 0x007c, 0x2001, 0xa630, 0x2003, 0x0000, 0x2001,
+	0xa62f, 0x2003, 0x0001, 0x007c, 0x127e, 0x2091, 0x2200, 0x007e,
+	0x017e, 0x027e, 0x6124, 0xa184, 0x002c, 0x00c0, 0x227b, 0xa184,
+	0x0007, 0x0079, 0x2281, 0xa195, 0x0004, 0xa284, 0x0007, 0x0079,
+	0x2281, 0x22ad, 0x2289, 0x228d, 0x2291, 0x2297, 0x229b, 0x22a1,
+	0x22a7, 0x1078, 0x5c56, 0x0078, 0x22ad, 0x1078, 0x5d45, 0x0078,
+	0x22ad, 0x1078, 0x5d45, 0x1078, 0x5c56, 0x0078, 0x22ad, 0x1078,
+	0x22b2, 0x0078, 0x22ad, 0x1078, 0x5c56, 0x1078, 0x22b2, 0x0078,
+	0x22ad, 0x1078, 0x5d45, 0x1078, 0x22b2, 0x0078, 0x22ad, 0x1078,
+	0x5d45, 0x1078, 0x5c56, 0x1078, 0x22b2, 0x027f, 0x017f, 0x007f,
+	0x127f, 0x007c, 0x6124, 0xd1ac, 0x0040, 0x23ac, 0x017e, 0x047e,
+	0x0c7e, 0x644c, 0xa486, 0xf0f0, 0x00c0, 0x22c5, 0x2061, 0x0100,
+	0x644a, 0x6043, 0x0090, 0x6043, 0x0010, 0x74c6, 0xa48c, 0xff00,
+	0x7034, 0xd084, 0x0040, 0x22dd, 0xa186, 0xf800, 0x00c0, 0x22dd,
+	0x703c, 0xd084, 0x00c0, 0x22dd, 0xc085, 0x703e, 0x037e, 0x2418,
+	0x2011, 0x8016, 0x1078, 0x361b, 0x037f, 0xa196, 0xff00, 0x0040,
+	0x231f, 0x6030, 0xa084, 0x00ff, 0x810f, 0xa116, 0x0040, 0x231f,
+	0x7130, 0xd184, 0x00c0, 0x231f, 0x2011, 0xa653, 0x2214, 0xd2ec,
+	0x0040, 0x22fa, 0xc18d, 0x7132, 0x2011, 0xa653, 0x2214, 0xd2ac,
+	0x00c0, 0x231f, 0x6240, 0xa294, 0x0010, 0x0040, 0x2306, 0x6248,
+	0xa294, 0xff00, 0xa296, 0xff00, 0x0040, 0x231f, 0x7030, 0xd08c,
+	0x0040, 0x2371, 0x7034, 0xd08c, 0x00c0, 0x2316, 0x2001, 0xa60c,
+	0x200c, 0xd1ac, 0x00c0, 0x2371, 0xc1ad, 0x2102, 0x037e, 0x73c4,
+	0x2011, 0x8013, 0x1078, 0x361b, 0x037f, 0x0078, 0x2371, 0x7034,
+	0xd08c, 0x00c0, 0x232b, 0x2001, 0xa60c, 0x200c, 0xd1ac, 0x00c0,
+	0x2371, 0xc1ad, 0x2102, 0x037e, 0x73c4, 0x2011, 0x8013, 0x1078,
+	0x361b, 0x037f, 0x7130, 0xc185, 0x7132, 0x2011, 0xa653, 0x220c,
+	0xd1a4, 0x0040, 0x2355, 0x017e, 0x2009, 0x0001, 0x2011, 0x0100,
+	0x1078, 0x5bf1, 0x2019, 0x000e, 0x1078, 0xa195, 0xa484, 0x00ff,
+	0xa080, 0x29c0, 0x200c, 0xa18c, 0xff00, 0x810f, 0x8127, 0xa006,
+	0x2009, 0x000e, 0x1078, 0xa21d, 0x017f, 0xd1ac, 0x00c0, 0x2362,
+	0x017e, 0x2009, 0x0000, 0x2019, 0x0004, 0x1078, 0x284f, 0x017f,
+	0x0078, 0x2371, 0x157e, 0x20a9, 0x007f, 0x2009, 0x0000, 0x1078,
+	0x45c4, 0x00c0, 0x236d, 0x1078, 0x42f8, 0x8108, 0x00f0, 0x2367,
+	0x157f, 0x0c7f, 0x047f, 0x0f7e, 0x2079, 0xa8c4, 0x783c, 0xa086,
+	0x0000, 0x0040, 0x2383, 0x6027, 0x0004, 0x783f, 0x0000, 0x2079,
+	0x0140, 0x7803, 0x0000, 0x0f7f, 0x2011, 0x0003, 0x1078, 0x70e0,
+	0x2011, 0x0002, 0x1078, 0x70ea, 0x1078, 0x6fc4, 0x037e, 0x2019,
+	0x0000, 0x1078, 0x7058, 0x037f, 0x60e3, 0x0000, 0x017f, 0x2001,
+	0xa600, 0x2014, 0xa296, 0x0004, 0x00c0, 0x23a4, 0xd19c, 0x00c0,
+	0x23ac, 0x6228, 0xc29d, 0x622a, 0x2003, 0x0001, 0x2001, 0xa622,
+	0x2003, 0x0000, 0x6027, 0x0020, 0xd194, 0x0040, 0x2490, 0x0f7e,
+	0x2079, 0xa8c4, 0x783c, 0xa086, 0x0001, 0x00c0, 0x23d0, 0x017e,
+	0x6027, 0x0004, 0x783f, 0x0000, 0x2079, 0x0140, 0x7803, 0x1000,
+	0x7803, 0x0000, 0x2079, 0xa8b1, 0x7807, 0x0000, 0x7833, 0x0000,
+	0x1078, 0x62d1, 0x1078, 0x639b, 0x017f, 0x0f7f, 0x0078, 0x2490,
+	0x0f7f, 0x017e, 0x3900, 0xa082, 0xa9e3, 0x00c8, 0x23db, 0x017e,
+	0x1078, 0x747a, 0x017f, 0x6220, 0xd2b4, 0x0040, 0x2446, 0x1078,
+	0x5acb, 0x1078, 0x6e0f, 0x6027, 0x0004, 0x0f7e, 0x2019, 0xa8ba,
+	0x2304, 0xa07d, 0x0040, 0x241c, 0x7804, 0xa086, 0x0032, 0x00c0,
+	0x241c, 0x0d7e, 0x0c7e, 0x0e7e, 0x2069, 0x0140, 0x618c, 0x6288,
+	0x7818, 0x608e, 0x7808, 0x608a, 0x6043, 0x0002, 0x2001, 0x0003,
+	0x8001, 0x00c0, 0x2400, 0x6043, 0x0000, 0x6803, 0x1000, 0x6803,
+	0x0000, 0x618e, 0x628a, 0x1078, 0x61cd, 0x1078, 0x62d1, 0x7810,
+	0x2070, 0x7037, 0x0103, 0x2f60, 0x1078, 0x772d, 0x0e7f, 0x0c7f,
+	0x0d7f, 0x0f7f, 0x017f, 0x007c, 0x0f7f, 0x0d7e, 0x2069, 0x0140,
+	0x6804, 0xa084, 0x4000, 0x0040, 0x2429, 0x6803, 0x1000, 0x6803,
+	0x0000, 0x0d7f, 0x0c7e, 0x2061, 0xa8b1, 0x6028, 0xa09a, 0x00c8,
+	0x00c8, 0x2439, 0x8000, 0x602a, 0x0c7f, 0x1078, 0x6e01, 0x0078,
+	0x248f, 0x2019, 0xa8ba, 0x2304, 0xa065, 0x0040, 0x2443, 0x2009,
+	0x0027, 0x1078, 0x775c, 0x0c7f, 0x0078, 0x248f, 0xd2bc, 0x0040,
+	0x248f, 0x1078, 0x5ad8, 0x6017, 0x0010, 0x6027, 0x0004, 0x0d7e,
+	0x2069, 0x0140, 0x6804, 0xa084, 0x4000, 0x0040, 0x245b, 0x6803,
+	0x1000, 0x6803, 0x0000, 0x0d7f, 0x0c7e, 0x2061, 0xa8b1, 0x6044,
+	0xa09a, 0x00c8, 0x00c8, 0x247e, 0x8000, 0x6046, 0x603c, 0x0c7f,
+	0xa005, 0x0040, 0x248f, 0x2009, 0x07d0, 0x1078, 0x5ad0, 0xa080,
+	0x0007, 0x2004, 0xa086, 0x0006, 0x00c0, 0x247a, 0x6017, 0x0012,
+	0x0078, 0x248f, 0x6017, 0x0016, 0x0078, 0x248f, 0x037e, 0x2019,
+	0x0001, 0x1078, 0x7058, 0x037f, 0x2019, 0xa8c0, 0x2304, 0xa065,
+	0x0040, 0x248e, 0x2009, 0x004f, 0x1078, 0x775c, 0x0c7f, 0x017f,
+	0xd19c, 0x0040, 0x24e4, 0x7034, 0xd0ac, 0x00c0, 0x24c1, 0x017e,
+	0x157e, 0x6027, 0x0008, 0x602f, 0x0020, 0x20a9, 0x000a, 0x00f0,
+	0x249f, 0x602f, 0x0000, 0x6150, 0xa185, 0x1400, 0x6052, 0x20a9,
+	0x0320, 0x00e0, 0x24a9, 0x2091, 0x6000, 0x6020, 0xd09c, 0x00c0,
+	0x24b8, 0x157f, 0x6152, 0x017f, 0x6027, 0x0008, 0x0078, 0x24e4,
+	0x1078, 0x2577, 0x00f0, 0x24a9, 0x157f, 0x6152, 0x017f, 0x6027,
+	0x0008, 0x017e, 0x6028, 0xc09c, 0x602a, 0x2011, 0x0003, 0x1078,
+	0x70e0, 0x2011, 0x0002, 0x1078, 0x70ea, 0x1078, 0x6fc4, 0x037e,
+	0x2019, 0x0000, 0x1078, 0x7058, 0x037f, 0x60e3, 0x0000, 0x1078,
+	0xa5ad, 0x1078, 0xa5cb, 0x2001, 0xa600, 0x2003, 0x0004, 0x6027,
+	0x0008, 0x1078, 0x1246, 0x017f, 0xa18c, 0xffd0, 0x6126, 0x007c,
+	0x007e, 0x017e, 0x027e, 0x0e7e, 0x0f7e, 0x127e, 0x2091, 0x8000,
+	0x2071, 0xa600, 0x71bc, 0x70be, 0xa116, 0x0040, 0x2518, 0x81ff,
+	0x0040, 0x2500, 0x2011, 0x8011, 0x1078, 0x361b, 0x0078, 0x2518,
+	0x2011, 0x8012, 0x1078, 0x361b, 0x2001, 0xa672, 0x2004, 0xd0fc,
+	0x00c0, 0x2518, 0x037e, 0x0c7e, 0x1078, 0x6f9f, 0x2061, 0x0100,
+	0x2019, 0x0028, 0x2009, 0x0000, 0x1078, 0x284f, 0x0c7f, 0x037f,
+	0x127f, 0x0f7f, 0x0e7f, 0x027f, 0x017f, 0x007f, 0x007c, 0x0c7e,
+	0x0f7e, 0x007e, 0x027e, 0x2061, 0x0100, 0xa190, 0x253b, 0x2204,
+	0x60f2, 0x2011, 0x2548, 0x6000, 0xa082, 0x0003, 0x00c8, 0x2534,
+	0x2001, 0x00ff, 0x0078, 0x2535, 0x2204, 0x60ee, 0x027f, 0x007f,
+	0x0f7f, 0x0c7f, 0x007c, 0x0840, 0x0840, 0x0840, 0x0580, 0x0420,
+	0x0348, 0x02c0, 0x0258, 0x0210, 0x01a8, 0x01a8, 0x01a8, 0x01a8,
+	0x0140, 0x00f8, 0x00d0, 0x00b0, 0x00a0, 0x2028, 0xa18c, 0x00ff,
+	0x2130, 0xa094, 0xff00, 0x00c0, 0x2558, 0x81ff, 0x0040, 0x255c,
+	0x1078, 0x5761, 0x0078, 0x2563, 0xa080, 0x29c0, 0x200c, 0xa18c,
+	0xff00, 0x810f, 0xa006, 0x007c, 0xa080, 0x29c0, 0x200c, 0xa18c,
+	0x00ff, 0x007c, 0x0c7e, 0x2061, 0xa600, 0x6030, 0x0040, 0x2573,
+	0xc09d, 0x0078, 0x2574, 0xc09c, 0x6032, 0x0c7f, 0x007c, 0x007e,
+	0x157e, 0x0f7e, 0x2079, 0x0100, 0x20a9, 0x000a, 0x7854, 0xd08c,
+	0x00c0, 0x2584, 0x00f0, 0x257e, 0x0f7f, 0x157f, 0x007f, 0x007c,
+	0x0c7e, 0x007e, 0x2061, 0x0100, 0x6030, 0x007e, 0x6048, 0x007e,
+	0x60e4, 0x007e, 0x60e8, 0x007e, 0x6050, 0x007e, 0x60f0, 0x007e,
+	0x60ec, 0x007e, 0x600c, 0x007e, 0x6004, 0x007e, 0x6028, 0x007e,
+	0x60e0, 0x007e, 0x602f, 0x0100, 0x602f, 0x0000, 0x0005, 0x0005,
+	0x0005, 0x0005, 0x602f, 0x0040, 0x602f, 0x0000, 0x007f, 0x60e2,
+	0x007f, 0x602a, 0x007f, 0x6006, 0x007f, 0x600e, 0x007f, 0x60ee,
+	0x007f, 0x60f2, 0x007f, 0x6052, 0x007f, 0x60ea, 0x007f, 0x60e6,
+	0x007f, 0x604a, 0x007f, 0x6032, 0x007f, 0x0c7f, 0x007c, 0x25e7,
+	0x25eb, 0x25ef, 0x25f5, 0x25fb, 0x2601, 0x2607, 0x260f, 0x2617,
+	0x261d, 0x2623, 0x262b, 0x2633, 0x263b, 0x2643, 0x264d, 0x2657,
+	0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x2657,
+	0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x2657, 0x107e,
+	0x007e, 0x0078, 0x2670, 0x107e, 0x007e, 0x0078, 0x2670, 0x107e,
+	0x007e, 0x1078, 0x226c, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078,
+	0x226c, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x2133, 0x0078,
+	0x2670, 0x107e, 0x007e, 0x1078, 0x2133, 0x0078, 0x2670, 0x107e,
+	0x007e, 0x1078, 0x226c, 0x1078, 0x2133, 0x0078, 0x2670, 0x107e,
+	0x007e, 0x1078, 0x226c, 0x1078, 0x2133, 0x0078, 0x2670, 0x107e,
+	0x007e, 0x1078, 0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078,
+	0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x226c, 0x1078,
+	0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x226c, 0x1078,
+	0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x2133, 0x1078,
+	0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x2133, 0x1078,
+	0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078, 0x226c, 0x1078,
+	0x2133, 0x1078, 0x2178, 0x0078, 0x2670, 0x107e, 0x007e, 0x1078,
+	0x226c, 0x1078, 0x2133, 0x1078, 0x2178, 0x0078, 0x2670, 0x0005,
+	0x0078, 0x2657, 0xb084, 0x003c, 0x8004, 0x8004, 0x0079, 0x2660,
+	0x2670, 0x25ed, 0x25f1, 0x25f7, 0x25fd, 0x2603, 0x2609, 0x2611,
+	0x2619, 0x261f, 0x2625, 0x262d, 0x2635, 0x263d, 0x2645, 0x264f,
+	0x0008, 0x265a, 0x007f, 0x107f, 0x2091, 0x8001, 0x007c, 0x0c7e,
+	0x027e, 0x047e, 0x2021, 0x0000, 0x1078, 0x4967, 0x00c0, 0x2772,
+	0x70cc, 0xd09c, 0x0040, 0x268e, 0xd084, 0x00c0, 0x268e, 0xd0bc,
+	0x00c0, 0x2772, 0x1078, 0x2776, 0x0078, 0x2772, 0xd0cc, 0x00c0,
+	0x2772, 0xd094, 0x0040, 0x2698, 0x7097, 0xffff, 0x0078, 0x2772,
+	0x2001, 0x010c, 0x203c, 0x7284, 0xd284, 0x0040, 0x2701, 0xd28c,
+	0x00c0, 0x2701, 0x037e, 0x7394, 0xa38e, 0xffff, 0x0040, 0x26ab,
+	0x83ff, 0x00c0, 0x26ad, 0x2019, 0x0001, 0x8314, 0xa2e0, 0xacc0,
+	0x2c04, 0xa38c, 0x0001, 0x0040, 0x26ba, 0xa084, 0xff00, 0x8007,
+	0x0078, 0x26bc, 0xa084, 0x00ff, 0xa70e, 0x0040, 0x26f6, 0xa08e,
+	0x0000, 0x0040, 0x26f6, 0xa08e, 0x00ff, 0x00c0, 0x26d3, 0x7230,
+	0xd284, 0x00c0, 0x26fc, 0x7284, 0xc28d, 0x7286, 0x7097, 0xffff,
+	0x037f, 0x0078, 0x2701, 0x2009, 0x0000, 0x1078, 0x254d, 0x1078,
+	0x455c, 0x00c0, 0x26f9, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+	0x00c0, 0x26f0, 0x7030, 0xd08c, 0x0040, 0x26ea, 0x6000, 0xd0bc,
+	0x0040, 0x26f0, 0x1078, 0x278c, 0x0040, 0x26f9, 0x0078, 0x26f6,
+	0x1078, 0x28c4, 0x1078, 0x27b9, 0x0040, 0x26f9, 0x8318, 0x0078,
+	0x26ad, 0x7396, 0x0078, 0x26fe, 0x7097, 0xffff, 0x037f, 0x0078,
+	0x2772, 0xa780, 0x29c0, 0x203c, 0xa7bc, 0xff00, 0x873f, 0x2041,
+	0x007e, 0x7094, 0xa096, 0xffff, 0x00c0, 0x2713, 0x2009, 0x0000,
+	0x28a8, 0x0078, 0x271f, 0xa812, 0x0048, 0x271b, 0x2008, 0xa802,
+	0x20a8, 0x0078, 0x271f, 0x7097, 0xffff, 0x0078, 0x2772, 0x2700,
+	0x157e, 0x017e, 0xa106, 0x0040, 0x2766, 0xc484, 0x1078, 0x45c4,
+	0x0040, 0x2730, 0x1078, 0x455c, 0x00c0, 0x276f, 0x0078, 0x2731,
+	0xc485, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x2740,
+	0x7030, 0xd08c, 0x0040, 0x275e, 0x6000, 0xd0bc, 0x00c0, 0x275e,
+	0x7284, 0xd28c, 0x0040, 0x2756, 0x6004, 0xa084, 0x00ff, 0xa082,
+	0x0006, 0x0048, 0x2766, 0xd484, 0x00c0, 0x2752, 0x1078, 0x457f,
+	0x0078, 0x2754, 0x1078, 0x298e, 0x0078, 0x2766, 0x1078, 0x28c4,
+	0x1078, 0x27b9, 0x0040, 0x276f, 0x0078, 0x2766, 0x1078, 0x2959,
+	0x0040, 0x2766, 0x1078, 0x278c, 0x0040, 0x276f, 0x017f, 0x8108,
+	0x157f, 0x00f0, 0x271f, 0x7097, 0xffff, 0x0078, 0x2772, 0x017f,
+	0x157f, 0x7196, 0x047f, 0x027f, 0x0c7f, 0x007c, 0x0c7e, 0x017e,
+	0x7097, 0x0001, 0x2009, 0x007e, 0x1078, 0x455c, 0x00c0, 0x2789,
+	0x1078, 0x28c4, 0x1078, 0x27b9, 0x0040, 0x2789, 0x70cc, 0xc0bd,
+	0x70ce, 0x017f, 0x0c7f, 0x007c, 0x017e, 0x077e, 0x0d7e, 0x0c7e,
+	0x2c68, 0x2001, 0xa657, 0x2004, 0xa084, 0x00ff, 0x6842, 0x1078,
+	0x76c7, 0x0040, 0x27b4, 0x2d00, 0x601a, 0x601f, 0x0001, 0x2001,
+	0x0000, 0x1078, 0x44ee, 0x2001, 0x0000, 0x1078, 0x4502, 0x127e,
+	0x2091, 0x8000, 0x7090, 0x8000, 0x7092, 0x127f, 0x2009, 0x0004,
+	0x1078, 0x775c, 0xa085, 0x0001, 0x0c7f, 0x0d7f, 0x077f, 0x017f,
+	0x007c, 0x017e, 0x077e, 0x0d7e, 0x0c7e, 0x2c68, 0x2001, 0xa657,
+	0x2004, 0xa084, 0x00ff, 0x6842, 0x1078, 0x9187, 0x0040, 0x27f2,
+	0x2d00, 0x601a, 0x6800, 0xc0c4, 0x6802, 0x68a0, 0xa086, 0x007e,
+	0x0040, 0x27db, 0x6804, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0,
+	0x27db, 0x1078, 0x2880, 0x601f, 0x0001, 0x2001, 0x0000, 0x1078,
+	0x44ee, 0x2001, 0x0002, 0x1078, 0x4502, 0x127e, 0x2091, 0x8000,
+	0x7090, 0x8000, 0x7092, 0x127f, 0x2009, 0x0002, 0x1078, 0x775c,
+	0xa085, 0x0001, 0x0c7f, 0x0d7f, 0x077f, 0x017f, 0x007c, 0x0c7e,
+	0x027e, 0x2009, 0x0080, 0x1078, 0x455c, 0x00c0, 0x2805, 0x1078,
+	0x2808, 0x0040, 0x2805, 0x70d3, 0xffff, 0x027f, 0x0c7f, 0x007c,
+	0x017e, 0x077e, 0x0d7e, 0x0c7e, 0x2c68, 0x1078, 0x76c7, 0x0040,
+	0x282a, 0x2d00, 0x601a, 0x601f, 0x0001, 0x2001, 0x0000, 0x1078,
+	0x44ee, 0x2001, 0x0002, 0x1078, 0x4502, 0x127e, 0x2091, 0x8000,
+	0x70d4, 0x8000, 0x70d6, 0x127f, 0x2009, 0x0002, 0x1078, 0x775c,
+	0xa085, 0x0001, 0x0c7f, 0x0d7f, 0x077f, 0x017f, 0x007c, 0x0c7e,
+	0x0d7e, 0x127e, 0x2091, 0x8000, 0x2009, 0x007f, 0x1078, 0x455c,
+	0x00c0, 0x284b, 0x2c68, 0x1078, 0x76c7, 0x0040, 0x284b, 0x2d00,
+	0x601a, 0x6312, 0x601f, 0x0001, 0x620a, 0x2009, 0x0022, 0x1078,
+	0x775c, 0xa085, 0x0001, 0x127f, 0x0d7f, 0x0c7f, 0x007c, 0x0e7e,
+	0x0c7e, 0x067e, 0x037e, 0x027e, 0x1078, 0x5f0e, 0x1078, 0x5eae,
+	0x1078, 0x8068, 0x2130, 0x81ff, 0x0040, 0x2864, 0x20a9, 0x007e,
+	0x2009, 0x0000, 0x0078, 0x2868, 0x20a9, 0x007f, 0x2009, 0x0000,
+	0x017e, 0x1078, 0x45c4, 0x00c0, 0x2871, 0x1078, 0x47e9, 0x1078,
+	0x42f8, 0x017f, 0x8108, 0x00f0, 0x2868, 0x86ff, 0x00c0, 0x287a,
+	0x1078, 0x119b, 0x027f, 0x037f, 0x067f, 0x0c7f, 0x0e7f, 0x007c,
+	0x0e7e, 0x0c7e, 0x037e, 0x027e, 0x017e, 0x6218, 0x2270, 0x72a0,
+	0x027e, 0x2019, 0x0029, 0x1078, 0x5f01, 0x077e, 0x2039, 0x0000,
+	0x1078, 0x5e0a, 0x2c08, 0x1078, 0x9f8b, 0x077f, 0x017f, 0x2e60,
+	0x1078, 0x47e9, 0x6210, 0x6314, 0x1078, 0x42f8, 0x6212, 0x6316,
+	0x017f, 0x027f, 0x037f, 0x0c7f, 0x0e7f, 0x007c, 0x0e7e, 0x007e,
+	0x6018, 0xa080, 0x0028, 0x2004, 0xd0bc, 0x00c0, 0x28ba, 0x2071,
+	0xa600, 0x7090, 0xa005, 0x0040, 0x28b7, 0x8001, 0x7092, 0x007f,
+	0x0e7f, 0x007c, 0x2071, 0xa600, 0x70d4, 0xa005, 0x0040, 0x28b7,
+	0x8001, 0x70d6, 0x0078, 0x28b7, 0x6000, 0xc08c, 0x6002, 0x007c,
+	0x0f7e, 0x0e7e, 0x0c7e, 0x037e, 0x027e, 0x017e, 0x157e, 0x2178,
+	0x81ff, 0x00c0, 0x28d7, 0x20a9, 0x0001, 0x0078, 0x28f2, 0x2001,
+	0xa653, 0x2004, 0xd0c4, 0x0040, 0x28ee, 0xd0a4, 0x0040, 0x28ee,
+	0x047e, 0x6018, 0xa080, 0x0028, 0x2024, 0xa4a4, 0x00ff, 0x8427,
+	0xa006, 0x2009, 0x002d, 0x1078, 0xa21d, 0x047f, 0x20a9, 0x00ff,
+	0x2011, 0x0000, 0x027e, 0xa28e, 0x007e, 0x0040, 0x2936, 0xa28e,
+	0x007f, 0x0040, 0x2936, 0xa28e, 0x0080, 0x0040, 0x2936, 0xa288,
+	0xa735, 0x210c, 0x81ff, 0x0040, 0x2936, 0x8fff, 0x1040, 0x2942,
+	0x0c7e, 0x2160, 0x2001, 0x0001, 0x1078, 0x4972, 0x0c7f, 0x2019,
+	0x0029, 0x1078, 0x5f01, 0x077e, 0x2039, 0x0000, 0x1078, 0x5e0a,
+	0x0c7e, 0x027e, 0x2160, 0x6204, 0xa294, 0x00ff, 0xa286, 0x0006,
+	0x00c0, 0x2926, 0x6007, 0x0404, 0x0078, 0x292b, 0x2001, 0x0004,
+	0x8007, 0xa215, 0x6206, 0x027f, 0x0c7f, 0x017e, 0x2c08, 0x1078,
+	0x9f8b, 0x017f, 0x077f, 0x2160, 0x1078, 0x47e9, 0x027f, 0x8210,
+	0x00f0, 0x28f2, 0x157f, 0x017f, 0x027f, 0x037f, 0x0c7f, 0x0e7f,
+	0x0f7f, 0x007c, 0x047e, 0x027e, 0x017e, 0x2001, 0xa653, 0x2004,
+	0xd0c4, 0x0040, 0x2955, 0xd0a4, 0x0040, 0x2955, 0xa006, 0x2220,
+	0x8427, 0x2009, 0x0029, 0x1078, 0xa21d, 0x017f, 0x027f, 0x047f,
+	0x007c, 0x017e, 0x027e, 0x037e, 0x0c7e, 0x7284, 0x82ff, 0x0040,
+	0x2987, 0xa290, 0xa653, 0x2214, 0xd2ac, 0x00c0, 0x2987, 0x2100,
+	0x1078, 0x2564, 0x81ff, 0x0040, 0x2989, 0x2019, 0x0001, 0x8314,
+	0xa2e0, 0xacc0, 0x2c04, 0xd384, 0x0040, 0x297b, 0xa084, 0xff00,
+	0x8007, 0x0078, 0x297d, 0xa084, 0x00ff, 0xa116, 0x0040, 0x2989,
+	0xa096, 0x00ff, 0x0040, 0x2987, 0x8318, 0x0078, 0x296f, 0xa085,
+	0x0001, 0x0c7f, 0x037f, 0x027f, 0x017f, 0x007c, 0x017e, 0x0c7e,
+	0x127e, 0x2091, 0x8000, 0x017e, 0x027e, 0x037e, 0x2110, 0x027e,
+	0x2019, 0x0029, 0x1078, 0x73d0, 0x027f, 0x1078, 0xa4f1, 0x037f,
+	0x027f, 0x017f, 0xa180, 0xa735, 0x2004, 0xa065, 0x0040, 0x29b7,
+	0x017e, 0x0c7e, 0x1078, 0x9187, 0x017f, 0x1040, 0x1332, 0x611a,
+	0x1078, 0x2880, 0x1078, 0x772d, 0x017f, 0x1078, 0x457f, 0x127f,
+	0x0c7f, 0x017f, 0x007c, 0x2001, 0xa633, 0x2004, 0xd0cc, 0x007c,
+	0x7eef, 0x7de8, 0x7ce4, 0x80e2, 0x7be1, 0x80e0, 0x80dc, 0x80da,
+	0x7ad9, 0x80d6, 0x80d5, 0x80d4, 0x80d3, 0x80d2, 0x80d1, 0x79ce,
+	0x78cd, 0x80cc, 0x80cb, 0x80ca, 0x80c9, 0x80c7, 0x80c6, 0x77c5,
+	0x76c3, 0x80bc, 0x80ba, 0x75b9, 0x80b6, 0x74b5, 0x73b4, 0x72b3,
+	0x80b2, 0x80b1, 0x80ae, 0x71ad, 0x80ac, 0x70ab, 0x6faa, 0x6ea9,
+	0x80a7, 0x6da6, 0x6ca5, 0x6ba3, 0x6a9f, 0x699e, 0x689d, 0x809b,
+	0x8098, 0x6797, 0x6690, 0x658f, 0x6488, 0x6384, 0x6282, 0x8081,
+	0x8080, 0x617c, 0x607a, 0x8079, 0x5f76, 0x8075, 0x8074, 0x8073,
+	0x8072, 0x8071, 0x806e, 0x5e6d, 0x806c, 0x5d6b, 0x5c6a, 0x5b69,
+	0x8067, 0x5a66, 0x5965, 0x5863, 0x575c, 0x565a, 0x5559, 0x8056,
+	0x8055, 0x5454, 0x5353, 0x5252, 0x5151, 0x504e, 0x4f4d, 0x804c,
+	0x804b, 0x4e4a, 0x4d49, 0x8047, 0x4c46, 0x8045, 0x8043, 0x803c,
+	0x803a, 0x8039, 0x8036, 0x4b35, 0x8034, 0x4a33, 0x4932, 0x4831,
+	0x802e, 0x472d, 0x462c, 0x452b, 0x442a, 0x4329, 0x4227, 0x8026,
+	0x8025, 0x4123, 0x401f, 0x3f1e, 0x3e1d, 0x3d1b, 0x3c18, 0x8017,
+	0x8010, 0x3b0f, 0x3a08, 0x8004, 0x3902, 0x8001, 0x8000, 0x8000,
+	0x3800, 0x3700, 0x3600, 0x8000, 0x3500, 0x8000, 0x8000, 0x8000,
+	0x3400, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3300,
+	0x3200, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3100,
+	0x3000, 0x8000, 0x8000, 0x2f00, 0x8000, 0x2e00, 0x2d00, 0x2c00,
+	0x8000, 0x8000, 0x8000, 0x2b00, 0x8000, 0x2a00, 0x2900, 0x2800,
+	0x8000, 0x2700, 0x2600, 0x2500, 0x2400, 0x2300, 0x2200, 0x8000,
+	0x8000, 0x2100, 0x2000, 0x1f00, 0x1e00, 0x1d00, 0x1c00, 0x8000,
+	0x8000, 0x1b00, 0x1a00, 0x8000, 0x1900, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x1800, 0x8000, 0x1700, 0x1600, 0x1500,
+	0x8000, 0x1400, 0x1300, 0x1200, 0x1100, 0x1000, 0x0f00, 0x8000,
+	0x8000, 0x0e00, 0x0d00, 0x0c00, 0x0b00, 0x0a00, 0x0900, 0x8000,
+	0x8000, 0x0800, 0x0700, 0x8000, 0x0600, 0x8000, 0x8000, 0x8000,
+	0x0500, 0x0400, 0x0300, 0x8000, 0x0200, 0x8000, 0x8000, 0x8000,
+	0x0100, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x2071, 0xa682, 0x7003, 0x0002, 0xa006, 0x7012, 0x7016, 0x703a,
+	0x703e, 0x7033, 0xa692, 0x7037, 0xa692, 0x7007, 0x0001, 0x2061,
+	0xa6d2, 0x6003, 0x0002, 0x007c, 0x0090, 0x2ae7, 0x0068, 0x2ae7,
+	0x2071, 0xa682, 0x2b78, 0x7818, 0xd084, 0x00c0, 0x2ae7, 0x2a60,
+	0x7820, 0xa08e, 0x0069, 0x00c0, 0x2bd7, 0x0079, 0x2b6b, 0x007c,
+	0x2071, 0xa682, 0x7004, 0x0079, 0x2aed, 0x2af1, 0x2af2, 0x2afc,
+	0x2b0e, 0x007c, 0x0090, 0x2afb, 0x0068, 0x2afb, 0x2b78, 0x7818,
+	0xd084, 0x0040, 0x2b1a, 0x007c, 0x2b78, 0x2061, 0xa6d2, 0x6008,
+	0xa08e, 0x0100, 0x0040, 0x2b09, 0xa086, 0x0200, 0x0040, 0x2bcf,
+	0x007c, 0x7014, 0x2068, 0x2a60, 0x7018, 0x007a, 0x7010, 0x2068,
+	0x6834, 0xa086, 0x0103, 0x0040, 0x2b16, 0x007c, 0x2a60, 0x2b78,
+	0x7018, 0x007a, 0x2a60, 0x7820, 0xa08a, 0x0040, 0x00c8, 0x2b23,
+	0x61bc, 0x0079, 0x2b2b, 0x2100, 0xa08a, 0x003f, 0x00c8, 0x2bcb,
+	0x61bc, 0x0079, 0x2b6b, 0x2bad, 0x2bdf, 0x2be7, 0x2beb, 0x2bf3,
+	0x2bf9, 0x2bfd, 0x2c09, 0x2c0d, 0x2c17, 0x2c1b, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2c1f, 0x2bcb, 0x2c2f, 0x2c46, 0x2c5d, 0x2cdd, 0x2ce2,
+	0x2d0f, 0x2d69, 0x2d7a, 0x2d98, 0x2dd9, 0x2de3, 0x2df0, 0x2e03,
+	0x2e22, 0x2e2b, 0x2e68, 0x2e6e, 0x2bcb, 0x2e8a, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x2e91, 0x2e9b, 0x2bcb, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x2ea3, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x2eb5, 0x2ece, 0x2bcb, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x2ee0, 0x2f37, 0x2f95, 0x2fa9, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x398e, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x2c17, 0x2c1b, 0x2fc0, 0x2bcb, 0x2fcd,
+	0x3a26, 0x3a83, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb,
+	0x2bcb, 0x2bcb, 0x2bcb, 0x301a, 0x314f, 0x316b, 0x3177, 0x31da,
+	0x3233, 0x323e, 0x327d, 0x328c, 0x329b, 0x329e, 0x2fd1, 0x32c2,
+	0x331e, 0x332b, 0x343c, 0x356f, 0x3599, 0x36a6, 0x2bcb, 0x36b6,
+	0x36f0, 0x37bf, 0x2bcb, 0x2bcb, 0x2bcb, 0x2bcb, 0x3827, 0x3843,
+	0x38bd, 0x3977, 0x713c, 0x0078, 0x2bad, 0x2021, 0x4000, 0x1078,
+	0x35f5, 0x127e, 0x2091, 0x8000, 0x0068, 0x2bba, 0x7818, 0xd084,
+	0x0040, 0x2bbd, 0x127f, 0x0078, 0x2bb1, 0x7c22, 0x7926, 0x7a2a,
+	0x7b2e, 0x781b, 0x0001, 0x2091, 0x4080, 0x7007, 0x0001, 0x2091,
+	0x5000, 0x127f, 0x007c, 0x2021, 0x4001, 0x0078, 0x2baf, 0x2021,
+	0x4002, 0x0078, 0x2baf, 0x2021, 0x4003, 0x0078, 0x2baf, 0x2021,
+	0x4005, 0x0078, 0x2baf, 0x2021, 0x4006, 0x0078, 0x2baf, 0xa02e,
+	0x2520, 0x7b28, 0x7a2c, 0x7824, 0x7930, 0x0078, 0x3604, 0x7823,
+	0x0004, 0x7824, 0x007a, 0xa02e, 0x2520, 0x7b28, 0x7a2c, 0x7824,
+	0x7930, 0x0078, 0x3608, 0x7924, 0x7828, 0x2114, 0x200a, 0x0078,
+	0x2bad, 0x7924, 0x2114, 0x0078, 0x2bad, 0x2099, 0x0009, 0x20a1,
+	0x0009, 0x20a9, 0x0007, 0x53a3, 0x7924, 0x7a28, 0x7b2c, 0x0078,
+	0x2bad, 0x7824, 0x2060, 0x0078, 0x2c21, 0x2009, 0x0001, 0x2011,
+	0x0013, 0x2019, 0x0018, 0x783b, 0x0017, 0x0078, 0x2bad, 0x7d38,
+	0x7c3c, 0x0078, 0x2be1, 0x7d38, 0x7c3c, 0x0078, 0x2bed, 0x2061,
+	0x1000, 0x610c, 0xa006, 0x2c14, 0xa200, 0x8c60, 0x8109, 0x00c0,
+	0x2c23, 0x2010, 0xa005, 0x0040, 0x2bad, 0x0078, 0x2bd3, 0x2069,
+	0xa652, 0x7824, 0x7930, 0xa11a, 0x00c8, 0x2bdb, 0x8019, 0x0040,
+	0x2bdb, 0x684a, 0x6942, 0x782c, 0x6852, 0x7828, 0x6856, 0xa006,
+	0x685a, 0x685e, 0x1078, 0x4eae, 0x0078, 0x2bad, 0x2069, 0xa652,
+	0x7824, 0x7934, 0xa11a, 0x00c8, 0x2bdb, 0x8019, 0x0040, 0x2bdb,
+	0x684e, 0x6946, 0x782c, 0x6862, 0x7828, 0x6866, 0xa006, 0x686a,
+	0x686e, 0x1078, 0x4a3e, 0x0078, 0x2bad, 0xa02e, 0x2520, 0x81ff,
+	0x00c0, 0x2bd7, 0x7924, 0x7b28, 0x7a2c, 0x20a9, 0x0005, 0x20a1,
+	0xa689, 0x41a1, 0x1078, 0x35ba, 0x0040, 0x2bd7, 0x2009, 0x0020,
+	0x1078, 0x3604, 0x701b, 0x2c75, 0x007c, 0x6834, 0x2008, 0xa084,
+	0x00ff, 0xa096, 0x0011, 0x0040, 0x2c85, 0xa096, 0x0019, 0x0040,
+	0x2c85, 0xa096, 0x0015, 0x00c0, 0x2bd7, 0x810f, 0xa18c, 0x00ff,
+	0x0040, 0x2bd7, 0x710e, 0x700c, 0x8001, 0x0040, 0x2cb6, 0x700e,
+	0x1078, 0x35ba, 0x0040, 0x2bd7, 0x2009, 0x0020, 0x2061, 0xa6d2,
+	0x6224, 0x6328, 0x642c, 0x6530, 0xa290, 0x0040, 0xa399, 0x0000,
+	0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x1078, 0x3604, 0x701b, 0x2ca9,
+	0x007c, 0x6834, 0xa084, 0x00ff, 0xa096, 0x0002, 0x0040, 0x2cb4,
+	0xa096, 0x000a, 0x00c0, 0x2bd7, 0x0078, 0x2c8b, 0x7010, 0x2068,
+	0x6838, 0xc0fd, 0x683a, 0x1078, 0x4431, 0x00c0, 0x2cc4, 0x7007,
+	0x0003, 0x701b, 0x2cc6, 0x007c, 0x1078, 0x4b51, 0x127e, 0x2091,
+	0x8000, 0x20a9, 0x0005, 0x2099, 0xa689, 0x530a, 0x2100, 0xa210,
+	0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0xad80, 0x000d,
+	0x2009, 0x0020, 0x127f, 0x0078, 0x3608, 0x61a4, 0x7824, 0x60a6,
+	0x0078, 0x2bad, 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, 0xa08a, 0x0003, 0x00c8, 0x0427, 0x0078, 0x0423, 0x81ff,
+	0x00c0, 0x2bd7, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x1078, 0x45c4,
+	0x00c0, 0x2bdb, 0x7e38, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0048,
+	0x2d23, 0x0078, 0x2bdb, 0x7c28, 0x7d2c, 0x1078, 0x47a4, 0xd28c,
+	0x00c0, 0x2d2e, 0x1078, 0x4736, 0x0078, 0x2d30, 0x1078, 0x4772,
+	0x00c0, 0x2d5a, 0x2061, 0xad00, 0x127e, 0x2091, 0x8000, 0x6000,
+	0xa086, 0x0000, 0x0040, 0x2d48, 0x6010, 0xa06d, 0x0040, 0x2d48,
+	0x683c, 0xa406, 0x00c0, 0x2d48, 0x6840, 0xa506, 0x0040, 0x2d53,
+	0x127f, 0xace0, 0x0010, 0x2001, 0xa616, 0x2004, 0xac02, 0x00c8,
+	0x2bd7, 0x0078, 0x2d34, 0x1078, 0x8a01, 0x127f, 0x0040, 0x2bd7,
+	0x0078, 0x2bad, 0xa00e, 0x2001, 0x0005, 0x1078, 0x4b51, 0x127e,
+	0x2091, 0x8000, 0x1078, 0x8f85, 0x1078, 0x4a73, 0x127f, 0x0078,
+	0x2bad, 0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35d2, 0x0040, 0x2bdb,
+	0x1078, 0x4673, 0x0040, 0x2bd7, 0x1078, 0x47b2, 0x0040, 0x2bd7,
+	0x0078, 0x2bad, 0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35e4, 0x0040,
+	0x2bdb, 0x1078, 0x482f, 0x0040, 0x2bd7, 0x2019, 0x0005, 0x1078,
+	0x47d3, 0x0040, 0x2bd7, 0x7828, 0xa08a, 0x1000, 0x00c8, 0x2bdb,
+	0x8003, 0x800b, 0x810b, 0xa108, 0x1078, 0x5a52, 0x0078, 0x2bad,
+	0x127e, 0x2091, 0x8000, 0x81ff, 0x0040, 0x2da2, 0x2009, 0x0001,
+	0x0078, 0x2dd3, 0x2029, 0x00ff, 0x6450, 0x2400, 0xa506, 0x0040,
+	0x2dcd, 0x2508, 0x1078, 0x45c4, 0x00c0, 0x2dcd, 0x1078, 0x482f,
+	0x00c0, 0x2db8, 0x2009, 0x0002, 0x62ac, 0x2518, 0x0078, 0x2dd3,
+	0x2019, 0x0004, 0x1078, 0x47d3, 0x00c0, 0x2dc2, 0x2009, 0x0006,
+	0x0078, 0x2dd3, 0x7824, 0xa08a, 0x1000, 0x00c8, 0x2dd6, 0x8003,
+	0x800b, 0x810b, 0xa108, 0x1078, 0x5a52, 0x8529, 0x00c8, 0x2da5,
+	0x127f, 0x0078, 0x2bad, 0x127f, 0x0078, 0x2bd7, 0x127f, 0x0078,
+	0x2bdb, 0x1078, 0x35d2, 0x0040, 0x2bdb, 0x1078, 0x46e7, 0x1078,
+	0x47a4, 0x0078, 0x2bad, 0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35d2,
+	0x0040, 0x2bdb, 0x1078, 0x46d6, 0x1078, 0x47a4, 0x0078, 0x2bad,
+	0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35d2, 0x0040, 0x2bdb, 0x1078,
+	0x4775, 0x0040, 0x2bd7, 0x1078, 0x4484, 0x1078, 0x472f, 0x1078,
+	0x47a4, 0x0078, 0x2bad, 0x1078, 0x35d2, 0x0040, 0x2bdb, 0x1078,
+	0x4673, 0x0040, 0x2bd7, 0x62a0, 0x2019, 0x0005, 0x0c7e, 0x1078,
+	0x47e9, 0x0c7f, 0x1078, 0x5f01, 0x077e, 0x2039, 0x0000, 0x1078,
+	0x5e0a, 0x2009, 0x0000, 0x1078, 0x9f8b, 0x077f, 0x1078, 0x47a4,
+	0x0078, 0x2bad, 0x1078, 0x35d2, 0x0040, 0x2bdb, 0x1078, 0x47a4,
+	0x2208, 0x0078, 0x2bad, 0x157e, 0x0d7e, 0x0e7e, 0x2069, 0xa714,
+	0x6810, 0x6914, 0xa10a, 0x00c8, 0x2e37, 0x2009, 0x0000, 0x6816,
+	0x2011, 0x0000, 0x2019, 0x0000, 0x20a9, 0x00ff, 0x2069, 0xa735,
+	0x2d04, 0xa075, 0x0040, 0x2e4c, 0x704c, 0x1078, 0x2e56, 0xa210,
+	0x7080, 0x1078, 0x2e56, 0xa318, 0x8d68, 0x00f0, 0x2e40, 0x2300,
+	0xa218, 0x0e7f, 0x0d7f, 0x157f, 0x0078, 0x2bad, 0x0f7e, 0x017e,
+	0xa07d, 0x0040, 0x2e65, 0x2001, 0x0000, 0x8000, 0x2f0c, 0x81ff,
+	0x0040, 0x2e65, 0x2178, 0x0078, 0x2e5d, 0x017f, 0x0f7f, 0x007c,
+	0x2069, 0xa714, 0x6910, 0x62a8, 0x0078, 0x2bad, 0x81ff, 0x00c0,
+	0x2bd7, 0x6150, 0xa190, 0x29c0, 0x2214, 0xa294, 0x00ff, 0x6070,
+	0xa084, 0xff00, 0xa215, 0x636c, 0x67cc, 0xd79c, 0x0040, 0x2e84,
+	0x2031, 0x0001, 0x0078, 0x2e86, 0x2031, 0x0000, 0x7e3a, 0x7f3e,
+	0x0078, 0x2bad, 0x6140, 0x6244, 0x2019, 0xa8a2, 0x231c, 0x0078,
+	0x2bad, 0x127e, 0x2091, 0x8000, 0x6134, 0x6338, 0xa006, 0x2010,
+	0x127f, 0x0078, 0x2bad, 0x1078, 0x35e4, 0x0040, 0x2bdb, 0x6244,
+	0x6338, 0x0078, 0x2bad, 0x6140, 0x6244, 0x7824, 0x6042, 0x7b28,
+	0x6346, 0x2069, 0xa652, 0x831f, 0xa305, 0x6816, 0x782c, 0x2069,
+	0xa8a2, 0x2d1c, 0x206a, 0x0078, 0x2bad, 0x017e, 0x127e, 0x2091,
+	0x8000, 0x7824, 0x6036, 0xd094, 0x0040, 0x2ec8, 0x7828, 0xa085,
+	0x0001, 0x2009, 0xa8ab, 0x200a, 0x2001, 0xffff, 0x1078, 0x5ae6,
+	0x782c, 0x603a, 0x127f, 0x017f, 0x0078, 0x2bad, 0x1078, 0x35e4,
+	0x0040, 0x2bdb, 0x7828, 0xa00d, 0x0040, 0x2bdb, 0x782c, 0xa005,
+	0x0040, 0x2bdb, 0x6244, 0x6146, 0x6338, 0x603a, 0x0078, 0x2bad,
+	0x2001, 0xa600, 0x2004, 0xa086, 0x0003, 0x00c0, 0x2bd7, 0x0c7e,
+	0x2061, 0x0100, 0x7924, 0x810f, 0xa18c, 0x00ff, 0xa196, 0x00ff,
+	0x00c0, 0x2ef7, 0x6030, 0xa085, 0xff00, 0x0078, 0x2f06, 0xa182,
+	0x007f, 0x00c8, 0x2f30, 0xa188, 0x29c0, 0x210c, 0xa18c, 0x00ff,
+	0x6030, 0xa116, 0x0040, 0x2f30, 0x810f, 0xa105, 0x127e, 0x2091,
+	0x8000, 0x007e, 0x1078, 0x76c7, 0x007f, 0x0040, 0x2f2c, 0x601a,
+	0x600b, 0xbc09, 0x601f, 0x0001, 0x1078, 0x35ba, 0x0040, 0x2f33,
+	0x6837, 0x0000, 0x7007, 0x0003, 0x6833, 0x0000, 0x6838, 0xc0fd,
+	0x683a, 0x701b, 0x2f8e, 0x2d00, 0x6012, 0x2009, 0x0032, 0x1078,
+	0x775c, 0x127f, 0x0c7f, 0x007c, 0x127f, 0x0c7f, 0x0078, 0x2bd7,
+	0x0c7f, 0x0078, 0x2bdb, 0x1078, 0x772d, 0x0078, 0x2f2c, 0x2001,
+	0xa600, 0x2004, 0xa086, 0x0003, 0x00c0, 0x2bd7, 0x0c7e, 0x2061,
+	0x0100, 0x7924, 0x810f, 0xa18c, 0x00ff, 0xa196, 0x00ff, 0x00c0,
+	0x2f4e, 0x6030, 0xa085, 0xff00, 0x0078, 0x2f5d, 0xa182, 0x007f,
+	0x00c8, 0x2f87, 0xa188, 0x29c0, 0x210c, 0xa18c, 0x00ff, 0x6030,
+	0xa116, 0x0040, 0x2f87, 0x810f, 0xa105, 0x127e, 0x2091, 0x8000,
+	0x007e, 0x1078, 0x76c7, 0x007f, 0x0040, 0x2f83, 0x601a, 0x600b,
+	0xbc05, 0x601f, 0x0001, 0x1078, 0x35ba, 0x0040, 0x2f8a, 0x6837,
+	0x0000, 0x7007, 0x0003, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a,
+	0x701b, 0x2f8e, 0x2d00, 0x6012, 0x2009, 0x0032, 0x1078, 0x775c,
+	0x127f, 0x0c7f, 0x007c, 0x127f, 0x0c7f, 0x0078, 0x2bd7, 0x0c7f,
+	0x0078, 0x2bdb, 0x1078, 0x772d, 0x0078, 0x2f83, 0x6830, 0xa086,
+	0x0100, 0x0040, 0x2bd7, 0x0078, 0x2bad, 0x2061, 0xa933, 0x127e,
+	0x2091, 0x8000, 0x6000, 0xd084, 0x0040, 0x2fa6, 0x6104, 0x6208,
+	0x2019, 0xa612, 0x231c, 0x127f, 0x0078, 0x2bad, 0x127f, 0x0078,
+	0x2bdb, 0x81ff, 0x00c0, 0x2bd7, 0x127e, 0x2091, 0x8000, 0x6248,
+	0x6064, 0xa202, 0x0048, 0x2fbd, 0xa085, 0x0001, 0x1078, 0x256a,
+	0x1078, 0x3c9e, 0x127f, 0x0078, 0x2bad, 0x127f, 0x0078, 0x2bdb,
+	0x127e, 0x2091, 0x8000, 0x20a9, 0x0012, 0x2001, 0xa640, 0x20a0,
+	0xa006, 0x40a4, 0x127f, 0x0078, 0x2bad, 0x7d38, 0x7c3c, 0x0078,
+	0x2c5f, 0x7824, 0xa09c, 0x00ff, 0xa39a, 0x0003, 0x00c8, 0x2bd7,
+	0x6250, 0xa084, 0xff00, 0x8007, 0xa206, 0x00c0, 0x2fe9, 0x2001,
+	0xa640, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x0078,
+	0x3608, 0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35e4, 0x0040, 0x2bdb,
+	0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x2bd7, 0x0c7e,
+	0x1078, 0x35ba, 0x0c7f, 0x0040, 0x2bd7, 0x6837, 0x0000, 0x6838,
+	0xc0fd, 0x683a, 0x1078, 0x8e4a, 0x0040, 0x2bd7, 0x7007, 0x0003,
+	0x701b, 0x300b, 0x007c, 0x6830, 0xa086, 0x0100, 0x0040, 0x2bd7,
+	0xad80, 0x000e, 0x2009, 0x000c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
+	0x0078, 0x3608, 0x1078, 0x35ba, 0x0040, 0x2bd7, 0x1078, 0x42dd,
+	0x2009, 0x001c, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x1078, 0x3604,
+	0x701b, 0x302b, 0x007c, 0xade8, 0x000d, 0x6800, 0xa005, 0x0040,
+	0x2bdb, 0x6804, 0xd0ac, 0x0040, 0x3038, 0xd0a4, 0x0040, 0x2bdb,
+	0xd094, 0x0040, 0x3043, 0x0c7e, 0x2061, 0x0100, 0x6104, 0xa18c,
+	0xffdf, 0x6106, 0x0c7f, 0xd08c, 0x0040, 0x304e, 0x0c7e, 0x2061,
+	0x0100, 0x6104, 0xa18d, 0x0010, 0x6106, 0x0c7f, 0x2009, 0x0100,
+	0x210c, 0xa18a, 0x0002, 0x0048, 0x3063, 0xd084, 0x0040, 0x3063,
+	0x6a28, 0xa28a, 0x007f, 0x00c8, 0x2bdb, 0xa288, 0x29c0, 0x210c,
+	0xa18c, 0x00ff, 0x6156, 0xd0dc, 0x0040, 0x306c, 0x6828, 0xa08a,
+	0x007f, 0x00c8, 0x2bdb, 0x6052, 0x6808, 0xa08a, 0x0100, 0x0048,
+	0x2bdb, 0xa08a, 0x0841, 0x00c8, 0x2bdb, 0xa084, 0x0007, 0x00c0,
+	0x2bdb, 0x680c, 0xa005, 0x0040, 0x2bdb, 0x6810, 0xa005, 0x0040,
+	0x2bdb, 0x6848, 0x6940, 0xa10a, 0x00c8, 0x2bdb, 0x8001, 0x0040,
+	0x2bdb, 0x684c, 0x6944, 0xa10a, 0x00c8, 0x2bdb, 0x8001, 0x0040,
+	0x2bdb, 0x6804, 0xd0fc, 0x0040, 0x30c2, 0x1078, 0x35ba, 0x0040,
+	0x2bd7, 0x2009, 0x0014, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0xa290,
+	0x0038, 0xa399, 0x0000, 0x1078, 0x3604, 0x701b, 0x30a8, 0x007c,
+	0xade8, 0x000d, 0x20a9, 0x0014, 0x2d98, 0x2069, 0xa66e, 0x2da0,
+	0x53a3, 0x7010, 0xa0e8, 0x000d, 0x2001, 0xa672, 0x200c, 0xd1e4,
+	0x0040, 0x30c2, 0x0c7e, 0x2061, 0x0100, 0x6004, 0xa085, 0x0b00,
+	0x6006, 0x0c7f, 0x20a9, 0x001c, 0x2d98, 0x2069, 0xa652, 0x2da0,
+	0x53a3, 0x6814, 0xa08c, 0x00ff, 0x6142, 0x8007, 0xa084, 0x00ff,
+	0x6046, 0x1078, 0x4eae, 0x1078, 0x49ce, 0x1078, 0x4a3e, 0x6000,
+	0xa086, 0x0000, 0x00c0, 0x314d, 0x6808, 0x602a, 0x1078, 0x21f7,
+	0x6818, 0x691c, 0x6a20, 0x6b24, 0x8007, 0x810f, 0x8217, 0x831f,
+	0x6016, 0x611a, 0x621e, 0x6322, 0x6c04, 0xd4f4, 0x0040, 0x30fa,
+	0x6830, 0x6934, 0x6a38, 0x6b3c, 0x8007, 0x810f, 0x8217, 0x831f,
+	0x0078, 0x30fc, 0xa084, 0xf0ff, 0x6006, 0x610a, 0x620e, 0x6312,
+	0x1078, 0x5b19, 0x6904, 0xd1fc, 0x0040, 0x312f, 0x0c7e, 0x2009,
+	0x0000, 0x20a9, 0x0001, 0x6b70, 0xd384, 0x0040, 0x312c, 0x0078,
+	0x3116, 0x839d, 0x00c8, 0x312c, 0x3508, 0x8109, 0x1078, 0x5480,
+	0x6878, 0x6016, 0x6874, 0x2008, 0xa084, 0xff00, 0x8007, 0x600a,
+	0xa184, 0x00ff, 0x6006, 0x8108, 0x00c0, 0x312a, 0x6003, 0x0003,
+	0x0078, 0x312c, 0x6003, 0x0001, 0x00f0, 0x3111, 0x0c7f, 0x0c7e,
+	0x2061, 0x0100, 0x602f, 0x0040, 0x602f, 0x0000, 0x0c7f, 0x1078,
+	0x3819, 0x0040, 0x313d, 0x1078, 0x256a, 0x60c0, 0xa005, 0x0040,
+	0x3149, 0x6003, 0x0001, 0x2091, 0x301d, 0x1078, 0x4224, 0x0078,
+	0x314d, 0x6003, 0x0004, 0x2091, 0x301d, 0x0078, 0x2bad, 0x6000,
+	0xa086, 0x0000, 0x0040, 0x2bd7, 0x2069, 0xa652, 0x7830, 0x6842,
+	0x7834, 0x6846, 0x6804, 0xd0fc, 0x0040, 0x3162, 0x2009, 0x0030,
+	0x0078, 0x3164, 0x2009, 0x001c, 0x2d00, 0x7a2c, 0x7b28, 0x7c3c,
+	0x7d38, 0x0078, 0x3608, 0xa006, 0x1078, 0x256a, 0x81ff, 0x00c0,
+	0x2bd7, 0x1078, 0x42dd, 0x1078, 0x4224, 0x0078, 0x2bad, 0x81ff,
+	0x00c0, 0x2bd7, 0x6184, 0x81ff, 0x0040, 0x3191, 0x703f, 0x0000,
+	0x2001, 0xacc0, 0x2009, 0x0040, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38,
+	0x127e, 0x2091, 0x8000, 0x1078, 0x3608, 0x701b, 0x2baa, 0x127f,
+	0x007c, 0x703f, 0x0001, 0x0d7e, 0x2069, 0xacc0, 0x20a9, 0x0040,
+	0x20a1, 0xacc0, 0x2019, 0xffff, 0x43a4, 0x6550, 0xa588, 0x29c0,
+	0x210c, 0xa18c, 0x00ff, 0x216a, 0xa00e, 0x2011, 0x0002, 0x2100,
+	0xa506, 0x0040, 0x31c3, 0x1078, 0x45c4, 0x00c0, 0x31c3, 0x6014,
+	0x821c, 0x0048, 0x31bb, 0xa398, 0xacc0, 0xa085, 0xff00, 0x8007,
+	0x201a, 0x0078, 0x31c2, 0xa398, 0xacc0, 0x2324, 0xa4a4, 0xff00,
+	0xa405, 0x201a, 0x8210, 0x8108, 0xa182, 0x0080, 0x00c8, 0x31ca,
+	0x0078, 0x31a7, 0x8201, 0x8007, 0x2d0c, 0xa105, 0x206a, 0x0d7f,
+	0x20a9, 0x0040, 0x20a1, 0xacc0, 0x2099, 0xacc0, 0x1078, 0x4281,
+	0x0078, 0x3180, 0x1078, 0x35e4, 0x0040, 0x2bdb, 0x0c7e, 0x1078,
+	0x35ba, 0x0c7f, 0x00c0, 0x31e8, 0x2009, 0x0002, 0x0078, 0x2bd7,
+	0x2001, 0xa653, 0x2004, 0xd0b4, 0x0040, 0x320f, 0x6000, 0xd08c,
+	0x00c0, 0x320f, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0,
+	0x320f, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x1078, 0x8e9e,
+	0x00c0, 0x3206, 0x2009, 0x0003, 0x0078, 0x2bd7, 0x7007, 0x0003,
+	0x701b, 0x320b, 0x007c, 0x1078, 0x35e4, 0x0040, 0x2bdb, 0x20a9,
+	0x002b, 0x2c98, 0xade8, 0x0002, 0x2da0, 0x53a3, 0x20a9, 0x0004,
+	0xac80, 0x0006, 0x2098, 0xad80, 0x0006, 0x20a0, 0x1078, 0x4281,
+	0x20a9, 0x0004, 0xac80, 0x000a, 0x2098, 0xad80, 0x000a, 0x20a0,
+	0x1078, 0x4281, 0x2d00, 0x2009, 0x002b, 0x7a2c, 0x7b28, 0x7c3c,
+	0x7d38, 0x0078, 0x3608, 0x81ff, 0x00c0, 0x2bd7, 0x1078, 0x35d2,
+	0x0040, 0x2bdb, 0x1078, 0x47bd, 0x0078, 0x2bad, 0x81ff, 0x00c0,
+	0x2bd7, 0x7828, 0xa08a, 0x1000, 0x00c8, 0x2bdb, 0x1078, 0x35e4,
+	0x0040, 0x2bdb, 0x1078, 0x482f, 0x0040, 0x2bd7, 0x2019, 0x0004,
+	0x1078, 0x47d3, 0x7924, 0x810f, 0x7a28, 0x1078, 0x3259, 0x0078,
+	0x2bad, 0xa186, 0x00ff, 0x0040, 0x3261, 0x1078, 0x3271, 0x0078,
+	0x3270, 0x2029, 0x007e, 0x2061, 0xa600, 0x6450, 0x2400, 0xa506,
+	0x0040, 0x326d, 0x2508, 0x1078, 0x3271, 0x8529, 0x00c8, 0x3266,
+	0x007c, 0x1078, 0x45c4, 0x00c0, 0x327c, 0x2200, 0x8003, 0x800b,
+	0x810b, 0xa108, 0x1078, 0x5a52, 0x007c, 0x81ff, 0x00c0, 0x2bd7,
+	0x1078, 0x35d2, 0x0040, 0x2bdb, 0x1078, 0x4673, 0x0040, 0x2bd7,
+	0x1078, 0x47c8, 0x0078, 0x2bad, 0x81ff, 0x00c0, 0x2bd7, 0x1078,
+	0x35d2, 0x0040, 0x2bdb, 0x1078, 0x4673, 0x0040, 0x2bd7, 0x1078,
+	0x47b2, 0x0078, 0x2bad, 0x6100, 0x0078, 0x2bad, 0x1078, 0x35e4,
+	0x0040, 0x2bdb, 0x2001, 0xa600, 0x2004, 0xa086, 0x0003, 0x00c0,
+	0x2bd7, 0x0d7e, 0xace8, 0x000a, 0x7924, 0xd184, 0x0040, 0x32b2,
+	0xace8, 0x0006, 0x680c, 0x8007, 0x783e, 0x6808, 0x8007, 0x783a,
+	0x6b04, 0x831f, 0x6a00, 0x8217, 0x0d7f, 0x6100, 0xa18c, 0x0200,
+	0x0078, 0x2bad, 0xa006, 0x1078, 0x256a, 0x7824, 0xa084, 0x00ff,
+	0xa086, 0x00ff, 0x0040, 0x32cf, 0x81ff, 0x00c0, 0x2bd7, 0x1078,
+	0x42dd, 0x7828, 0xa08a, 0x1000, 0x00c8, 0x2bdb, 0x7924, 0xa18c,
+	0xff00, 0x810f, 0xa186, 0x00ff, 0x0040, 0x32e5, 0xa182, 0x007f,
+	0x00c8, 0x2bdb, 0x2100, 0x1078, 0x2564, 0x027e, 0x0c7e, 0x127e,
+	0x2091, 0x8000, 0x2061, 0xa8c4, 0x601b, 0x0000, 0x601f, 0x0000,
+	0x2011, 0x0003, 0x1078, 0x70e0, 0x2011, 0x0002, 0x1078, 0x70ea,
+	0x1078, 0x6fc4, 0x037e, 0x2019, 0x0000, 0x1078, 0x7058, 0x037f,
+	0x2061, 0x0100, 0x6030, 0xa084, 0x00ff, 0x810f, 0xa105, 0x604a,
+	0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x002d, 0x2011, 0x4259,
+	0x1078, 0x5add, 0x7924, 0xa18c, 0xff00, 0x810f, 0x7a28, 0x1078,
+	0x3259, 0x127f, 0x0c7f, 0x027f, 0x0078, 0x2bad, 0x7924, 0xa18c,
+	0xff00, 0x810f, 0x0c7e, 0x1078, 0x455c, 0x2c08, 0x0c7f, 0x00c0,
+	0x2bdb, 0x0078, 0x2bad, 0x81ff, 0x0040, 0x3332, 0x2009, 0x0001,
+	0x0078, 0x2bd7, 0x60cc, 0xd09c, 0x00c0, 0x333a, 0x2009, 0x0005,
+	0x0078, 0x2bd7, 0x1078, 0x35ba, 0x00c0, 0x3342, 0x2009, 0x0002,
+	0x0078, 0x2bd7, 0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x1078,
+	0x3604, 0x701b, 0x334c, 0x007c, 0x2009, 0x0080, 0x1078, 0x45c4,
+	0x00c0, 0x3359, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x0040,
+	0x335d, 0x2021, 0x400a, 0x0078, 0x2baf, 0x0d7e, 0xade8, 0x000d,
+	0x6900, 0x6a08, 0x6b0c, 0x6c10, 0x6d14, 0x6e18, 0x6820, 0xa0be,
+	0x0100, 0x0040, 0x33d0, 0xa0be, 0x0112, 0x0040, 0x33d0, 0xa0be,
+	0x0113, 0x0040, 0x33d0, 0xa0be, 0x0114, 0x0040, 0x33d0, 0xa0be,
+	0x0117, 0x0040, 0x33d0, 0xa0be, 0x011a, 0x0040, 0x33d0, 0xa0be,
+	0x0121, 0x0040, 0x33c6, 0xa0be, 0x0131, 0x0040, 0x33c6, 0xa0be,
+	0x0171, 0x0040, 0x33d0, 0xa0be, 0x0173, 0x0040, 0x33d0, 0xa0be,
+	0x01a1, 0x00c0, 0x3398, 0x6830, 0x8007, 0x6832, 0x0078, 0x33d6,
+	0xa0be, 0x0212, 0x0040, 0x33cc, 0xa0be, 0x0213, 0x0040, 0x33cc,
+	0xa0be, 0x0214, 0x0040, 0x33be, 0xa0be, 0x0217, 0x0040, 0x33b8,
+	0xa0be, 0x021a, 0x00c0, 0x33b1, 0x6838, 0x8007, 0x683a, 0x0078,
+	0x33d0, 0xa0be, 0x0300, 0x0040, 0x33d0, 0x0d7f, 0x0078, 0x2bdb,
+	0xad80, 0x0010, 0x20a9, 0x0007, 0x1078, 0x3418, 0xad80, 0x000e,
+	0x20a9, 0x0001, 0x1078, 0x3418, 0x0078, 0x33d0, 0xad80, 0x000c,
+	0x1078, 0x3426, 0x0078, 0x33d6, 0xad80, 0x000e, 0x1078, 0x3426,
+	0xad80, 0x000c, 0x20a9, 0x0001, 0x1078, 0x3418, 0x0c7e, 0x1078,
+	0x35ba, 0x0040, 0x3409, 0x6838, 0xc0fd, 0x683a, 0x6837, 0x0119,
+	0x6853, 0x0000, 0x684f, 0x0020, 0x685b, 0x0001, 0x810b, 0x697e,
+	0x6883, 0x0000, 0x6a86, 0x6b8a, 0x6c8e, 0x6d92, 0x6996, 0x689b,
+	0x0000, 0x0c7f, 0x0d7f, 0x6837, 0x0000, 0x6838, 0xc0fd, 0x683a,
+	0x6823, 0x0000, 0x6804, 0x2068, 0x1078, 0x8e66, 0x00c0, 0x3404,
+	0x2009, 0x0003, 0x0078, 0x2bd7, 0x7007, 0x0003, 0x701b, 0x340f,
+	0x007c, 0x0c7f, 0x0d7f, 0x2009, 0x0002, 0x0078, 0x2bd7, 0x6820,
+	0xa086, 0x8001, 0x00c0, 0x2bad, 0x2009, 0x0004, 0x0078, 0x2bd7,
+	0x017e, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x290a, 0x8108,
+	0x280a, 0x8108, 0x00f0, 0x341a, 0x017f, 0x007c, 0x017e, 0x0a7e,
+	0x0b7e, 0x2008, 0x2044, 0x8000, 0x204c, 0x8000, 0x2054, 0x8000,
+	0x205c, 0x2b0a, 0x8108, 0x2a0a, 0x8108, 0x290a, 0x8108, 0x280a,
+	0x0b7f, 0x0a7f, 0x017f, 0x007c, 0x81ff, 0x0040, 0x3443, 0x2009,
+	0x0001, 0x0078, 0x2bd7, 0x60cc, 0xd09c, 0x00c0, 0x344b, 0x2009,
+	0x0005, 0x0078, 0x2bd7, 0x7924, 0x2140, 0xa18c, 0xff00, 0x810f,
+	0xa182, 0x0080, 0x0048, 0x2bdb, 0xa182, 0x00ff, 0x00c8, 0x2bdb,
+	0x7a2c, 0x7b28, 0x606c, 0xa306, 0x00c0, 0x3466, 0x6070, 0xa24e,
+	0x0040, 0x2bdb, 0xa9cc, 0xff00, 0x0040, 0x2bdb, 0x0c7e, 0x1078,
+	0x350f, 0x2c68, 0x0c7f, 0x0040, 0x349e, 0xa0c6, 0x4000, 0x00c0,
+	0x3484, 0x0c7e, 0x007e, 0x2d60, 0x2009, 0x0000, 0x1078, 0x489b,
+	0x00c0, 0x347b, 0xc185, 0x6000, 0xd0bc, 0x0040, 0x3480, 0xc18d,
+	0x007f, 0x0c7f, 0x0078, 0x349b, 0xa0c6, 0x4007, 0x00c0, 0x348b,
+	0x2408, 0x0078, 0x349b, 0xa0c6, 0x4008, 0x00c0, 0x3493, 0x2708,
+	0x2610, 0x0078, 0x349b, 0xa0c6, 0x4009, 0x00c0, 0x3499, 0x0078,
+	0x349b, 0x2001, 0x4006, 0x2020, 0x0078, 0x2baf, 0x2d00, 0x7022,
+	0x017e, 0x0b7e, 0x0c7e, 0x0e7e, 0x2c70, 0x1078, 0x76c7, 0x0040,
+	0x34e4, 0x2d00, 0x601a, 0x2001, 0xa657, 0x2004, 0xa084, 0x00ff,
+	0x6842, 0x2e58, 0x0e7f, 0x0e7e, 0x0c7e, 0x1078, 0x35ba, 0x0c7f,
+	0x2b70, 0x00c0, 0x34c5, 0x1078, 0x772d, 0x0e7f, 0x0c7f, 0x0b7f,
+	0x017f, 0x2009, 0x0002, 0x0078, 0x2bd7, 0x6837, 0x0000, 0x2d00,
+	0x6012, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x127e, 0x2091,
+	0x8000, 0x1078, 0x2880, 0x127f, 0x601f, 0x0001, 0x2001, 0x0000,
+	0x1078, 0x44ee, 0x2001, 0x0002, 0x1078, 0x4502, 0x2009, 0x0002,
+	0x1078, 0x775c, 0xa085, 0x0001, 0x0e7f, 0x0c7f, 0x0b7f, 0x017f,
+	0x00c0, 0x34ee, 0x2009, 0x0003, 0x0078, 0x2bd7, 0x7007, 0x0003,
+	0x701b, 0x34f3, 0x007c, 0x6830, 0xa086, 0x0100, 0x7020, 0x2060,
+	0x00c0, 0x3501, 0x2009, 0x0004, 0x6204, 0xa294, 0x00ff, 0x0078,
+	0x2bd7, 0x2009, 0x0000, 0x1078, 0x489b, 0x00c0, 0x3508, 0xc185,
+	0x6000, 0xd0bc, 0x0040, 0x350d, 0xc18d, 0x0078, 0x2bad, 0x0e7e,
+	0x0d7e, 0x2029, 0x0000, 0x2021, 0x0080, 0x20a9, 0x007f, 0x2071,
+	0xa7b5, 0x2e04, 0xa005, 0x00c0, 0x3524, 0x2100, 0xa406, 0x00c0,
+	0x3555, 0x2428, 0x0078, 0x3555, 0x2068, 0x6f10, 0x2700, 0xa306,
+	0x00c0, 0x3546, 0x6e14, 0x2600, 0xa206, 0x00c0, 0x3546, 0x2400,
+	0xa106, 0x00c0, 0x3542, 0x2d60, 0xd884, 0x0040, 0x356a, 0x6004,
+	0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x356a, 0x2001, 0x4000,
+	0x0078, 0x356b, 0x2001, 0x4007, 0x0078, 0x356b, 0x2400, 0xa106,
+	0x00c0, 0x3555, 0x6e14, 0x87ff, 0x00c0, 0x3551, 0x86ff, 0x0040,
+	0x3521, 0x2001, 0x4008, 0x0078, 0x356b, 0x8420, 0x8e70, 0x00f0,
+	0x3519, 0x85ff, 0x00c0, 0x3564, 0x2001, 0x4009, 0x0078, 0x356b,
+	0x2001, 0x0001, 0x0078, 0x356b, 0x1078, 0x455c, 0x00c0, 0x3560,
+	0x6312, 0x6216, 0xa006, 0xa005, 0x0d7f, 0x0e7f, 0x007c, 0x81ff,
+	0x00c0, 0x2bd7, 0x1078, 0x35ba, 0x0040, 0x2bd7, 0x6837, 0x0000,
+	0x6838, 0xc0fd, 0x683a, 0x7824, 0xa005, 0x0040, 0x2bdb, 0xa096,
+	0x00ff, 0x0040, 0x3587, 0xa092, 0x0004, 0x00c8, 0x2bdb, 0x2010,
+	0x2d18, 0x1078, 0x282f, 0x0040, 0x2bd7, 0x7007, 0x0003, 0x701b,
+	0x3592, 0x007c, 0x6830, 0xa086, 0x0100, 0x0040, 0x2bd7, 0x0078,
+	0x2bad, 0x7924, 0xa18c, 0xff00, 0x810f, 0xa182, 0x0080, 0x0048,
+	0x2bdb, 0xa182, 0x00ff, 0x00c8, 0x2bdb, 0x127e, 0x2091, 0x8000,
+	0x1078, 0x8d4b, 0x00c0, 0x35b7, 0xa190, 0xa735, 0x2204, 0xa065,
+	0x0040, 0x35b7, 0x1078, 0x42f8, 0x127f, 0x0078, 0x2bad, 0x127f,
+	0x0078, 0x2bd7, 0x1078, 0x138b, 0x0040, 0x35d1, 0xa006, 0x6802,
+	0x7010, 0xa005, 0x00c0, 0x35c9, 0x2d00, 0x7012, 0x7016, 0x0078,
+	0x35cf, 0x7014, 0x6802, 0x2060, 0x2d00, 0x6006, 0x7016, 0xad80,
+	0x000d, 0x007c, 0x7924, 0x810f, 0xa18c, 0x00ff, 0x1078, 0x45c4,
+	0x00c0, 0x35e1, 0x7e28, 0xa684, 0x3fff, 0xa082, 0x4000, 0x0048,
+	0x35e2, 0xa066, 0x8cff, 0x007c, 0x7e24, 0x860f, 0xa18c, 0x00ff,
+	0x1078, 0x45c4, 0x00c0, 0x35f2, 0xa6b4, 0x00ff, 0xa682, 0x4000,
+	0x0048, 0x35f3, 0xa066, 0x8cff, 0x007c, 0x017e, 0x7110, 0x81ff,
+	0x0040, 0x3600, 0x2168, 0x6904, 0x1078, 0x13a4, 0x0078, 0x35f7,
+	0x7112, 0x7116, 0x017f, 0x007c, 0x2031, 0x0001, 0x0078, 0x360a,
+	0x2031, 0x0000, 0x2061, 0xa6d2, 0x6606, 0x6112, 0x600e, 0x6226,
+	0x632a, 0x642e, 0x6532, 0x2c10, 0x1078, 0x13db, 0x7007, 0x0002,
+	0x701b, 0x2bad, 0x007c, 0x0f7e, 0x127e, 0x2091, 0x8000, 0x2079,
+	0x0000, 0x2001, 0xa690, 0x2004, 0xa005, 0x00c0, 0x3636, 0x0068,
+	0x3636, 0x7818, 0xd084, 0x00c0, 0x3636, 0x7a22, 0x7b26, 0x7c2a,
+	0x781b, 0x0001, 0x2091, 0x4080, 0x0078, 0x365b, 0x017e, 0x0c7e,
+	0x0e7e, 0x2071, 0xa682, 0x7138, 0xa182, 0x0008, 0x0048, 0x3644,
+	0x7030, 0x2060, 0x0078, 0x3655, 0x7030, 0xa0e0, 0x0008, 0xac82,
+	0xa6d2, 0x0048, 0x364d, 0x2061, 0xa692, 0x2c00, 0x7032, 0x81ff,
+	0x00c0, 0x3653, 0x7036, 0x8108, 0x713a, 0x2262, 0x6306, 0x640a,
+	0x0e7f, 0x0c7f, 0x017f, 0x127f, 0x0f7f, 0x007c, 0x0e7e, 0x2071,
+	0xa682, 0x7038, 0xa005, 0x0040, 0x3697, 0x127e, 0x2091, 0x8000,
+	0x0068, 0x3696, 0x0f7e, 0x2079, 0x0000, 0x7818, 0xd084, 0x00c0,
+	0x3695, 0x0c7e, 0x7034, 0x2060, 0x2c04, 0x7822, 0x6004, 0x7826,
+	0x6008, 0x782a, 0x781b, 0x0001, 0x2091, 0x4080, 0x7038, 0x8001,
+	0x703a, 0xa005, 0x00c0, 0x368b, 0x7033, 0xa692, 0x7037, 0xa692,
+	0x0c7f, 0x0078, 0x3695, 0xac80, 0x0008, 0xa0fa, 0xa6d2, 0x0048,
+	0x3693, 0x2001, 0xa692, 0x7036, 0x0c7f, 0x0f7f, 0x127f, 0x0e7f,
+	0x007c, 0x027e, 0x2001, 0xa653, 0x2004, 0xd0c4, 0x0040, 0x36a4,
+	0x2011, 0x8014, 0x1078, 0x361b, 0x027f, 0x007c, 0x81ff, 0x00c0,
+	0x2bd7, 0x127e, 0x2091, 0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac,
+	0x6032, 0x1078, 0x4224, 0x127f, 0x0078, 0x2bad, 0x81ff, 0x00c0,
+	0x2bd7, 0x6000, 0xa086, 0x0003, 0x00c0, 0x2bd7, 0x2001, 0xa653,
+	0x2004, 0xd0ac, 0x00c0, 0x2bd7, 0x1078, 0x35e4, 0x0040, 0x2bdb,
+	0x6004, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x36d3, 0x7828,
+	0xa005, 0x0040, 0x2bad, 0x0c7e, 0x1078, 0x35ba, 0x0c7f, 0x0040,
+	0x2bd7, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a,
+	0x1078, 0x8f12, 0x0040, 0x2bd7, 0x7007, 0x0003, 0x701b, 0x36e9,
+	0x007c, 0x6830, 0xa086, 0x0100, 0x0040, 0x2bd7, 0x0078, 0x2bad,
+	0x2001, 0xa600, 0x2004, 0xa086, 0x0003, 0x00c0, 0x2bd7, 0x7f24,
+	0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x1078, 0x35ba, 0x0040, 0x2bd7,
+	0x2009, 0x0000, 0x2031, 0x0000, 0x7023, 0x0000, 0x702f, 0x0000,
+	0xad80, 0x0005, 0x7026, 0x20a0, 0x1078, 0x45c4, 0x00c0, 0x376d,
+	0x6004, 0xa0c4, 0x00ff, 0xa8c6, 0x0006, 0x0040, 0x371d, 0xa0c4,
+	0xff00, 0xa8c6, 0x0600, 0x00c0, 0x376d, 0x2001, 0xa653, 0x2004,
+	0xd0ac, 0x00c0, 0x372a, 0x1078, 0x489b, 0x00c0, 0x372a, 0xd79c,
+	0x0040, 0x376d, 0xd794, 0x00c0, 0x3730, 0xd784, 0x0040, 0x373c,
+	0xac80, 0x0006, 0x2098, 0x3400, 0x20a9, 0x0004, 0x53a3, 0x1078,
+	0x3426, 0xd794, 0x0040, 0x3745, 0xac80, 0x000a, 0x2098, 0x3400,
+	0x20a9, 0x0004, 0x53a3, 0x1078, 0x3426, 0x21a2, 0xd794, 0x0040,
+	0x3765, 0xac80, 0x0000, 0x2098, 0x94a0, 0x20a9, 0x0002, 0x53a3,
+	0xac80, 0x0003, 0x20a6, 0x94a0, 0xac80, 0x0004, 0x2098, 0x3400,
+	0x20a9, 0x0002, 0x53a3, 0x1078, 0x3418, 0xac80, 0x0026, 0x2098,
+	0x20a9, 0x0002, 0x53a3, 0x0078, 0x3766, 0x94a0, 0xd794, 0x0040,
+	0x376b, 0xa6b0, 0x000b, 0xa6b0, 0x0005, 0x8108, 0xd78c, 0x0040,
+	0x3777, 0xa186, 0x0100, 0x0040, 0x3788, 0x0078, 0x377b, 0xa186,
+	0x007e, 0x0040, 0x3788, 0xd794, 0x0040, 0x3782, 0xa686, 0x0020,
+	0x0078, 0x3784, 0xa686, 0x0028, 0x0040, 0x3791, 0x0078, 0x370c,
+	0x86ff, 0x00c0, 0x378f, 0x7120, 0x810b, 0x0078, 0x2bad, 0x702f,
+	0x0001, 0x711e, 0x7020, 0xa600, 0x7022, 0x772a, 0x2061, 0xa6d2,
+	0x6007, 0x0000, 0x6612, 0x7024, 0x600e, 0x6226, 0x632a, 0x642e,
+	0x6532, 0x2c10, 0x1078, 0x13db, 0x7007, 0x0002, 0x701b, 0x37a9,
+	0x007c, 0x702c, 0xa005, 0x00c0, 0x37bb, 0x711c, 0x7024, 0x20a0,
+	0x7728, 0x2031, 0x0000, 0x2061, 0xa6d2, 0x6224, 0x6328, 0x642c,
+	0x6530, 0x0078, 0x370c, 0x7120, 0x810b, 0x0078, 0x2bad, 0x2029,
+	0x007e, 0x7924, 0x7a28, 0x7b2c, 0x7c38, 0xa184, 0xff00, 0x8007,
+	0xa0e2, 0x0020, 0x0048, 0x2bdb, 0xa502, 0x0048, 0x2bdb, 0xa184,
+	0x00ff, 0xa0e2, 0x0020, 0x0048, 0x2bdb, 0xa502, 0x0048, 0x2bdb,
+	0xa284, 0xff00, 0x8007, 0xa0e2, 0x0020, 0x0048, 0x2bdb, 0xa502,
+	0x0048, 0x2bdb, 0xa284, 0x00ff, 0xa0e2, 0x0020, 0x0048, 0x2bdb,
+	0xa502, 0x0048, 0x2bdb, 0xa384, 0xff00, 0x8007, 0xa0e2, 0x0020,
+	0x0048, 0x2bdb, 0xa502, 0x0048, 0x2bdb, 0xa384, 0x00ff, 0xa0e2,
+	0x0020, 0x0048, 0x2bdb, 0xa502, 0x0048, 0x2bdb, 0xa484, 0xff00,
+	0x8007, 0xa0e2, 0x0020, 0x0048, 0x2bdb, 0xa502, 0x0048, 0x2bdb,
+	0xa484, 0x00ff, 0xa0e2, 0x0020, 0x0048, 0x2bdb, 0xa502, 0x0048,
+	0x2bdb, 0x2061, 0xa8a5, 0x6102, 0x6206, 0x630a, 0x640e, 0x0078,
+	0x2bad, 0x007e, 0x2001, 0xa653, 0x2004, 0xd0cc, 0x007f, 0x007c,
+	0x007e, 0x2001, 0xa672, 0x2004, 0xd0bc, 0x007f, 0x007c, 0x6164,
+	0x7a24, 0x6300, 0x82ff, 0x00c0, 0x3830, 0x7926, 0x0078, 0x2bad,
+	0x83ff, 0x00c0, 0x2bdb, 0x2001, 0xfff0, 0xa200, 0x00c8, 0x2bdb,
+	0x2019, 0xffff, 0x6068, 0xa302, 0xa200, 0x0048, 0x2bdb, 0x7926,
+	0x6266, 0x0078, 0x2bad, 0x2001, 0xa600, 0x2004, 0xa086, 0x0003,
+	0x00c0, 0x2bd7, 0x7c28, 0x7d24, 0x7e38, 0x7f2c, 0x1078, 0x35ba,
+	0x0040, 0x2bd7, 0x2009, 0x0000, 0x2019, 0x0000, 0x7023, 0x0000,
+	0x702f, 0x0000, 0xad80, 0x0003, 0x7026, 0x20a0, 0xa1e0, 0xa735,
+	0x2c64, 0x8cff, 0x0040, 0x387d, 0x6004, 0xa084, 0x00ff, 0xa086,
+	0x0006, 0x0040, 0x3872, 0x6004, 0xa084, 0xff00, 0xa086, 0x0600,
+	0x00c0, 0x387d, 0x6014, 0x20a2, 0x94a0, 0x6010, 0x8007, 0xa105,
+	0x8007, 0x20a2, 0x94a0, 0xa398, 0x0002, 0x8108, 0xa182, 0x00ff,
+	0x0040, 0x3888, 0xa386, 0x002a, 0x0040, 0x3891, 0x0078, 0x385e,
+	0x83ff, 0x00c0, 0x388f, 0x7120, 0x810c, 0x0078, 0x2bad, 0x702f,
+	0x0001, 0x711e, 0x7020, 0xa300, 0x7022, 0x2061, 0xa6d2, 0x6007,
+	0x0000, 0x6312, 0x7024, 0x600e, 0x6426, 0x652a, 0x662e, 0x6732,
+	0x2c10, 0x1078, 0x13db, 0x7007, 0x0002, 0x701b, 0x38a8, 0x007c,
+	0x702c, 0xa005, 0x00c0, 0x38b9, 0x711c, 0x7024, 0x20a0, 0x2019,
+	0x0000, 0x2061, 0xa6d2, 0x6424, 0x6528, 0x662c, 0x6730, 0x0078,
+	0x385e, 0x7120, 0x810c, 0x0078, 0x2bad, 0x81ff, 0x00c0, 0x2bd7,
+	0x60cc, 0xd09c, 0x0040, 0x2bd7, 0x1078, 0x35ba, 0x0040, 0x2bd7,
+	0x7924, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x1078, 0x3604, 0x701b,
+	0x38d2, 0x007c, 0x0d7e, 0xade8, 0x000d, 0x6828, 0xa0be, 0x7000,
+	0x0040, 0x38e5, 0xa0be, 0x7100, 0x0040, 0x38e5, 0xa0be, 0x7200,
+	0x0040, 0x38e5, 0x0d7f, 0x0078, 0x2bdb, 0x6820, 0x6924, 0x1078,
+	0x254d, 0x00c0, 0x3910, 0x1078, 0x455c, 0x00c0, 0x3910, 0x7122,
+	0x6612, 0x6516, 0x6e18, 0x0c7e, 0x1078, 0x35ba, 0x0040, 0x3910,
+	0x1078, 0x35ba, 0x0040, 0x3910, 0x0c7f, 0x0d7f, 0x6837, 0x0000,
+	0x6838, 0xc0fd, 0x683a, 0x6823, 0x0000, 0x6804, 0x2068, 0x1078,
+	0x8e82, 0x0040, 0x2bd7, 0x7007, 0x0003, 0x701b, 0x3913, 0x007c,
+	0x0d7f, 0x0078, 0x2bd7, 0x7120, 0x1078, 0x298e, 0x6820, 0xa086,
+	0x8001, 0x0040, 0x2bd7, 0x2d00, 0x701e, 0x6804, 0xa080, 0x0002,
+	0x007e, 0x20a9, 0x002a, 0x2098, 0x20a0, 0x1078, 0x4281, 0x007f,
+	0xade8, 0x000d, 0x6a08, 0x6b0c, 0x6c10, 0x6d14, 0x2061, 0xa6d2,
+	0x6007, 0x0000, 0x6e00, 0x6f28, 0xa7c6, 0x7000, 0x00c0, 0x393a,
+	0x0078, 0x393e, 0xa7c6, 0x7100, 0x00c0, 0x3946, 0xa6c2, 0x0004,
+	0x0048, 0x2bdb, 0x2009, 0x0004, 0x0078, 0x3608, 0xa7c6, 0x7200,
+	0x00c0, 0x2bdb, 0xa6c2, 0x0054, 0x0048, 0x2bdb, 0x600e, 0x6013,
+	0x002a, 0x6226, 0x632a, 0x642e, 0x6532, 0x2c10, 0x1078, 0x13db,
+	0x7007, 0x0002, 0x701b, 0x395d, 0x007c, 0x701c, 0x2068, 0x6804,
+	0xa080, 0x0001, 0x2004, 0xa080, 0x0002, 0x007e, 0x20a9, 0x002a,
+	0x2098, 0x20a0, 0x1078, 0x4281, 0x007f, 0x2009, 0x002a, 0x2061,
+	0xa6d2, 0x6224, 0x6328, 0x642c, 0x6530, 0x0078, 0x3608, 0x81ff,
+	0x00c0, 0x2bd7, 0x792c, 0x2001, 0xa89d, 0x2102, 0x1078, 0x35d2,
+	0x0040, 0x2bdb, 0x1078, 0x4673, 0x0040, 0x2bd7, 0x127e, 0x2091,
+	0x8000, 0x1078, 0x47de, 0x127f, 0x0078, 0x2bad, 0x7824, 0xd08c,
+	0x00c0, 0x3995, 0xd084, 0x0040, 0x31da, 0x1078, 0x35e4, 0x0040,
+	0x2bdb, 0x0c7e, 0x1078, 0x35ba, 0x0c7f, 0x00c0, 0x39a3, 0x2009,
+	0x0002, 0x0078, 0x2bd7, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+	0x0040, 0x39b0, 0xa08e, 0x0004, 0x0040, 0x39b0, 0xa08e, 0x0005,
+	0x00c0, 0x39dd, 0x7824, 0xd08c, 0x0040, 0x39bb, 0x6000, 0xc08c,
+	0x6002, 0x0078, 0x39c5, 0x2001, 0xa653, 0x2004, 0xd0b4, 0x0040,
+	0x320f, 0x6000, 0xd08c, 0x00c0, 0x320f, 0x6837, 0x0000, 0x6838,
+	0xc0fd, 0x683a, 0x1078, 0x8e9e, 0x00c0, 0x39d2, 0x2009, 0x0003,
+	0x0078, 0x2bd7, 0x7007, 0x0003, 0x701b, 0x39d7, 0x007c, 0x1078,
+	0x35e4, 0x0040, 0x2bdb, 0x0078, 0x320f, 0x2009, 0xa62f, 0x210c,
+	0x81ff, 0x0040, 0x39e7, 0x2009, 0x0001, 0x0078, 0x2bd7, 0x2001,
+	0xa600, 0x2004, 0xa086, 0x0003, 0x0040, 0x39f2, 0x2009, 0x0007,
+	0x0078, 0x2bd7, 0x2001, 0xa653, 0x2004, 0xd0ac, 0x0040, 0x39fc,
+	0x2009, 0x0008, 0x0078, 0x2bd7, 0x609c, 0xd0a4, 0x00c0, 0x3a03,
+	0xd0ac, 0x00c0, 0x320f, 0x6837, 0x0000, 0x6833, 0x0000, 0x6838,
+	0xc0fd, 0x683a, 0x1078, 0x8f12, 0x00c0, 0x3a12, 0x2009, 0x0003,
+	0x0078, 0x2bd7, 0x7007, 0x0003, 0x701b, 0x3a17, 0x007c, 0x6830,
+	0xa086, 0x0100, 0x00c0, 0x3a20, 0x2009, 0x0004, 0x0078, 0x2bd7,
+	0x1078, 0x35e4, 0x0040, 0x2bdb, 0x0078, 0x39b2, 0x81ff, 0x2009,
+	0x0001, 0x00c0, 0x2bd7, 0x6000, 0xa086, 0x0003, 0x2009, 0x0007,
+	0x00c0, 0x2bd7, 0x2001, 0xa653, 0x2004, 0xd0ac, 0x2009, 0x0008,
+	0x00c0, 0x2bd7, 0x1078, 0x35e4, 0x0040, 0x2bdb, 0x6004, 0xa084,
+	0x00ff, 0xa086, 0x0006, 0x2009, 0x0009, 0x00c0, 0x2bd7, 0x0c7e,
+	0x1078, 0x35ba, 0x0c7f, 0x2009, 0x0002, 0x0040, 0x2bd7, 0x6837,
+	0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x7928, 0xa194,
+	0xff00, 0xa18c, 0x00ff, 0xa006, 0x82ff, 0x00c0, 0x3a65, 0xc0ed,
+	0x6952, 0x792c, 0x6956, 0x0078, 0x3a6e, 0xa28e, 0x0100, 0x00c0,
+	0x2bdb, 0xc0e5, 0x6853, 0x0000, 0x6857, 0x0000, 0x683e, 0x1078,
+	0x90bd, 0x2009, 0x0003, 0x0040, 0x2bd7, 0x7007, 0x0003, 0x701b,
+	0x3a7a, 0x007c, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004, 0x0040,
+	0x2bd7, 0x0078, 0x2bad, 0x81ff, 0x2009, 0x0001, 0x00c0, 0x2bd7,
+	0x6000, 0xa086, 0x0003, 0x2009, 0x0007, 0x00c0, 0x2bd7, 0x1078,
+	0x35e4, 0x0040, 0x2bdb, 0x6004, 0xa084, 0x00ff, 0xa086, 0x0006,
+	0x2009, 0x0009, 0x00c0, 0x2bd7, 0x0c7e, 0x1078, 0x35ba, 0x0c7f,
+	0x2009, 0x0002, 0x0040, 0x2bd7, 0xad80, 0x000f, 0x2009, 0x0008,
+	0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0x1078, 0x3604, 0x701b, 0x3ab1,
+	0x007c, 0x0d7e, 0xade8, 0x000f, 0x6800, 0xa086, 0x0500, 0x00c0,
+	0x3ac4, 0x6804, 0xa005, 0x00c0, 0x3ac4, 0x6808, 0xa084, 0xff00,
+	0x00c0, 0x3ac4, 0x0078, 0x3ac7, 0x0d7f, 0x00c0, 0x2bdb, 0x0d7f,
+	0x6837, 0x0000, 0x6833, 0x0000, 0x6838, 0xc0fd, 0x683a, 0x0c7e,
+	0x1078, 0x35e4, 0x00c0, 0x3ad7, 0x0c7f, 0x0078, 0x2bdb, 0x1078,
+	0x9119, 0x2009, 0x0003, 0x0c7f, 0x0040, 0x2bd7, 0x7007, 0x0003,
+	0x701b, 0x3ae3, 0x007c, 0x6830, 0xa086, 0x0100, 0x2009, 0x0004,
+	0x0040, 0x2bd7, 0x0078, 0x2bad, 0x127e, 0x0c7e, 0x0e7e, 0x2061,
+	0x0100, 0x2071, 0xa600, 0x6044, 0xd0a4, 0x00c0, 0x3b15, 0xd084,
+	0x0040, 0x3afe, 0x1078, 0x3c75, 0x0078, 0x3b11, 0xd08c, 0x0040,
+	0x3b05, 0x1078, 0x3b8c, 0x0078, 0x3b11, 0xd094, 0x0040, 0x3b0c,
+	0x1078, 0x3b60, 0x0078, 0x3b11, 0xd09c, 0x0040, 0x3b11, 0x1078,
+	0x3b1f, 0x0e7f, 0x0c7f, 0x127f, 0x007c, 0x017e, 0x6128, 0xd19c,
+	0x00c0, 0x3b1c, 0xc19d, 0x612a, 0x017f, 0x0078, 0x3b11, 0x624c,
+	0xa286, 0xf0f0, 0x00c0, 0x3b30, 0x6048, 0xa086, 0xf0f0, 0x0040,
+	0x3b30, 0x624a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0078, 0x3b5f,
+	0xa294, 0xff00, 0xa296, 0xf700, 0x0040, 0x3b45, 0x7134, 0xd1a4,
+	0x00c0, 0x3b45, 0x6240, 0xa294, 0x0010, 0x0040, 0x3b45, 0x2009,
+	0x00f7, 0x1078, 0x42a1, 0x0078, 0x3b5f, 0x6043, 0x0040, 0x6043,
+	0x0000, 0x7077, 0x0000, 0x708f, 0x0001, 0x70b3, 0x0000, 0x70cf,
+	0x0000, 0x2009, 0xacc0, 0x200b, 0x0000, 0x7087, 0x0000, 0x707b,
+	0x000f, 0x2009, 0x000f, 0x2011, 0x41d5, 0x1078, 0x5add, 0x007c,
+	0x157e, 0x7078, 0xa005, 0x00c0, 0x3b8a, 0x2011, 0x41d5, 0x1078,
+	0x5a45, 0x6040, 0xa094, 0x0010, 0xa285, 0x0020, 0x6042, 0x20a9,
+	0x00c8, 0x6044, 0xd08c, 0x00c0, 0x3b83, 0x00f0, 0x3b71, 0x6242,
+	0x708b, 0x0000, 0x6040, 0xa094, 0x0010, 0xa285, 0x0080, 0x6042,
+	0x6242, 0x0078, 0x3b8a, 0x6242, 0x708b, 0x0000, 0x707f, 0x0000,
+	0x0078, 0x3b8a, 0x157f, 0x007c, 0x707c, 0xa08a, 0x0003, 0x00c8,
+	0x3b95, 0x1079, 0x3b98, 0x0078, 0x3b97, 0x1078, 0x1332, 0x007c,
+	0x3b9b, 0x3bea, 0x3c74, 0x0f7e, 0x707f, 0x0001, 0x20e1, 0xa000,
+	0x20e1, 0x8700, 0x1078, 0x21f7, 0x20e1, 0x9080, 0x20e1, 0x4000,
+	0x2079, 0xab00, 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, 0xab0c, 0x207b, 0x1101, 0x7807, 0x0000,
+	0x2099, 0xa605, 0x20a1, 0xab0e, 0x20a9, 0x0004, 0x53a3, 0x2079,
+	0xab12, 0x207b, 0x0000, 0x7807, 0x0000, 0x2099, 0xab00, 0x20a1,
+	0x020b, 0x20a9, 0x0014, 0x53a6, 0x60c3, 0x000c, 0x600f, 0x0000,
+	0x1078, 0x420b, 0x0f7f, 0x7083, 0x0000, 0x6043, 0x0008, 0x6043,
+	0x0000, 0x007c, 0x0d7e, 0x7080, 0x7083, 0x0000, 0xa025, 0x0040,
+	0x3c5e, 0x6020, 0xd0b4, 0x00c0, 0x3c5c, 0x718c, 0x81ff, 0x0040,
+	0x3c4b, 0xa486, 0x000c, 0x00c0, 0x3c56, 0xa480, 0x0018, 0x8004,
+	0x20a8, 0x2011, 0xab80, 0x2019, 0xab00, 0x220c, 0x2304, 0xa106,
+	0x00c0, 0x3c22, 0x8210, 0x8318, 0x00f0, 0x3c05, 0x6043, 0x0004,
+	0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043, 0x0006, 0x707f, 0x0002,
+	0x708b, 0x0002, 0x2009, 0x07d0, 0x2011, 0x41dc, 0x1078, 0x5add,
+	0x0078, 0x3c5c, 0x2069, 0xab80, 0x6930, 0xa18e, 0x1101, 0x00c0,
+	0x3c56, 0x6834, 0xa005, 0x00c0, 0x3c56, 0x6900, 0xa18c, 0x00ff,
+	0x00c0, 0x3c36, 0x6804, 0xa005, 0x0040, 0x3c4b, 0x2011, 0xab8e,
+	0x2019, 0xa605, 0x20a9, 0x0004, 0x220c, 0x2304, 0xa102, 0x0048,
+	0x3c49, 0x00c0, 0x3c56, 0x8210, 0x8318, 0x00f0, 0x3c3c, 0x0078,
+	0x3c56, 0x708f, 0x0000, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
+	0xab80, 0x20a1, 0x020b, 0x20a9, 0x0014, 0x53a6, 0x6043, 0x0008,
+	0x6043, 0x0000, 0x0078, 0x3c5e, 0x0d7f, 0x007c, 0x6020, 0xd0b4,
+	0x00c0, 0x3c5c, 0x60c3, 0x000c, 0x2011, 0xa8bb, 0x2013, 0x0000,
+	0x7083, 0x0000, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7, 0x9575,
+	0x1078, 0x6e06, 0x0078, 0x3c5c, 0x007c, 0x7088, 0xa08a, 0x001d,
+	0x00c8, 0x3c7e, 0x1079, 0x3c81, 0x0078, 0x3c80, 0x1078, 0x1332,
+	0x007c, 0x3cab, 0x3cba, 0x3ce9, 0x3d02, 0x3d2e, 0x3d5a, 0x3d86,
+	0x3dbc, 0x3de8, 0x3e10, 0x3e53, 0x3e7d, 0x3e9f, 0x3eb5, 0x3edb,
+	0x3eee, 0x3ef7, 0x3f2b, 0x3f57, 0x3f83, 0x3faf, 0x3fe5, 0x4030,
+	0x405f, 0x4081, 0x40c3, 0x40e9, 0x4102, 0x4103, 0x0c7e, 0x2061,
+	0xa600, 0x6003, 0x0007, 0x2061, 0x0100, 0x6004, 0xa084, 0xfff9,
+	0x6006, 0x0c7f, 0x007c, 0x608b, 0xbc94, 0x608f, 0xf0f0, 0x6043,
+	0x0002, 0x708b, 0x0001, 0x2009, 0x07d0, 0x2011, 0x41dc, 0x1078,
+	0x5add, 0x007c, 0x0f7e, 0x7080, 0xa086, 0x0014, 0x00c0, 0x3ce7,
+	0x6043, 0x0000, 0x6020, 0xd0b4, 0x00c0, 0x3ce7, 0x2079, 0xab80,
+	0x7a30, 0xa296, 0x1102, 0x00c0, 0x3ce5, 0x7834, 0xa005, 0x00c0,
+	0x3ce5, 0x7a38, 0xd2fc, 0x0040, 0x3cdb, 0x70b0, 0xa005, 0x00c0,
+	0x3cdb, 0x70b3, 0x0001, 0x2011, 0x41dc, 0x1078, 0x5a45, 0x708b,
+	0x0010, 0x1078, 0x3ef7, 0x0078, 0x3ce7, 0x1078, 0x4224, 0x0f7f,
+	0x007c, 0x708b, 0x0003, 0x6043, 0x0004, 0x2011, 0x41dc, 0x1078,
+	0x5a45, 0x1078, 0x4289, 0x20a3, 0x1102, 0x20a3, 0x0000, 0x20a9,
+	0x000a, 0x20a3, 0x0000, 0x00f0, 0x3cf9, 0x60c3, 0x0014, 0x1078,
+	0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040, 0x3d2c, 0x2011,
+	0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014, 0x00c0, 0x3d2a, 0x2079,
+	0xab80, 0x7a30, 0xa296, 0x1102, 0x00c0, 0x3d2a, 0x7834, 0xa005,
+	0x00c0, 0x3d2a, 0x7a38, 0xd2fc, 0x0040, 0x3d24, 0x70b0, 0xa005,
+	0x00c0, 0x3d24, 0x70b3, 0x0001, 0x708b, 0x0004, 0x1078, 0x3d2e,
+	0x0078, 0x3d2c, 0x1078, 0x4224, 0x0f7f, 0x007c, 0x708b, 0x0005,
+	0x1078, 0x4289, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430, 0x2011,
+	0xab8e, 0x1078, 0x42d4, 0x00c0, 0x3d4c, 0x7074, 0xa005, 0x00c0,
+	0x3d4c, 0x7150, 0xa186, 0xffff, 0x0040, 0x3d4c, 0x1078, 0x419d,
+	0x0040, 0x3d4c, 0x1078, 0x42b8, 0x20a9, 0x0008, 0x2298, 0x26a0,
+	0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x1078,
+	0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040, 0x3d84, 0x2011,
+	0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014, 0x00c0, 0x3d82, 0x2079,
+	0xab80, 0x7a30, 0xa296, 0x1103, 0x00c0, 0x3d82, 0x7834, 0xa005,
+	0x00c0, 0x3d82, 0x7a38, 0xd2fc, 0x0040, 0x3d7c, 0x70b0, 0xa005,
+	0x00c0, 0x3d7c, 0x70b3, 0x0001, 0x708b, 0x0006, 0x1078, 0x3d86,
+	0x0078, 0x3d84, 0x1078, 0x4224, 0x0f7f, 0x007c, 0x708b, 0x0007,
+	0x1078, 0x4289, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430, 0x2011,
+	0xab8e, 0x1078, 0x42d4, 0x00c0, 0x3dae, 0x7074, 0xa005, 0x00c0,
+	0x3dae, 0x7154, 0xa186, 0xffff, 0x0040, 0x3dae, 0xa180, 0x29c0,
+	0x200c, 0xa18c, 0xff00, 0x810f, 0x1078, 0x419d, 0x0040, 0x3dae,
+	0x1078, 0x3820, 0x0040, 0x3dae, 0x1078, 0x256a, 0x20a9, 0x0008,
+	0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3,
+	0x0014, 0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040,
+	0x3de6, 0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014, 0x00c0,
+	0x3de4, 0x2079, 0xab80, 0x7a30, 0xa296, 0x1104, 0x00c0, 0x3de4,
+	0x7834, 0xa005, 0x00c0, 0x3de4, 0x7a38, 0xd2fc, 0x0040, 0x3dde,
+	0x70b0, 0xa005, 0x00c0, 0x3dde, 0x70b3, 0x0001, 0x708b, 0x0008,
+	0x1078, 0x3de8, 0x0078, 0x3de6, 0x1078, 0x4224, 0x0f7f, 0x007c,
+	0x708b, 0x0009, 0x1078, 0x4289, 0x20a3, 0x1105, 0x20a3, 0x0100,
+	0x3430, 0x1078, 0x42d4, 0x00c0, 0x3e01, 0x7074, 0xa005, 0x00c0,
+	0x3e01, 0x1078, 0x4104, 0x00c0, 0x3e0b, 0xa085, 0x0001, 0x1078,
+	0x256a, 0x20a9, 0x0008, 0x2099, 0xab8e, 0x26a0, 0x53a6, 0x20a3,
+	0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014, 0x1078, 0x420b, 0x007c,
+	0x0f7e, 0x7080, 0xa005, 0x0040, 0x3e51, 0x2011, 0x41dc, 0x1078,
+	0x5a45, 0xa086, 0x0014, 0x00c0, 0x3e4f, 0x2079, 0xab80, 0x7a30,
+	0xa296, 0x1105, 0x00c0, 0x3e4f, 0x7834, 0x2011, 0x0100, 0xa21e,
+	0x00c0, 0x3e3a, 0x7a38, 0xd2fc, 0x0040, 0x3e34, 0x70b0, 0xa005,
+	0x00c0, 0x3e34, 0x70b3, 0x0001, 0x708b, 0x000a, 0x1078, 0x3e53,
+	0x0078, 0x3e51, 0xa005, 0x00c0, 0x3e4f, 0x7a38, 0xd2fc, 0x0040,
+	0x3e47, 0x70b0, 0xa005, 0x00c0, 0x3e47, 0x70b3, 0x0001, 0x7087,
+	0x0000, 0x708b, 0x000e, 0x1078, 0x3edb, 0x0078, 0x3e51, 0x1078,
+	0x4224, 0x0f7f, 0x007c, 0x708b, 0x000b, 0x2011, 0xab0e, 0x22a0,
+	0x20a9, 0x0040, 0x2019, 0xffff, 0x43a4, 0x20a9, 0x0002, 0x2009,
+	0x0000, 0x41a4, 0x1078, 0x4289, 0x20a3, 0x1106, 0x20a3, 0x0000,
+	0x1078, 0x42d4, 0x0040, 0x3e70, 0x2013, 0x0000, 0x0078, 0x3e74,
+	0x6030, 0xa085, 0x0100, 0x2012, 0x2298, 0x20a9, 0x0042, 0x53a6,
+	0x60c3, 0x0084, 0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005,
+	0x0040, 0x3e9d, 0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0084,
+	0x00c0, 0x3e9b, 0x2079, 0xab80, 0x7a30, 0xa296, 0x1106, 0x00c0,
+	0x3e9b, 0x7834, 0xa005, 0x00c0, 0x3e9b, 0x708b, 0x000c, 0x1078,
+	0x3e9f, 0x0078, 0x3e9d, 0x1078, 0x4224, 0x0f7f, 0x007c, 0x708b,
+	0x000d, 0x1078, 0x4289, 0x20a3, 0x1107, 0x20a3, 0x0000, 0x2099,
+	0xab8e, 0x20a9, 0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x60c3, 0x0084, 0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005,
+	0x0040, 0x3ed9, 0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0084,
+	0x00c0, 0x3ed7, 0x2079, 0xab80, 0x7a30, 0xa296, 0x1107, 0x00c0,
+	0x3ed7, 0x7834, 0xa005, 0x00c0, 0x3ed7, 0x7087, 0x0001, 0x1078,
+	0x427b, 0x708b, 0x000e, 0x1078, 0x3edb, 0x0078, 0x3ed9, 0x1078,
+	0x4224, 0x0f7f, 0x007c, 0x708b, 0x000f, 0x7083, 0x0000, 0x608b,
+	0xbc85, 0x608f, 0xb5b5, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009,
+	0x07d0, 0x2011, 0x41dc, 0x1078, 0x5a38, 0x007c, 0x7080, 0xa005,
+	0x0040, 0x3ef6, 0x2011, 0x41dc, 0x1078, 0x5a45, 0x007c, 0x708b,
+	0x0011, 0x1078, 0x42d4, 0x00c0, 0x3f14, 0x716c, 0x81ff, 0x0040,
+	0x3f14, 0x2009, 0x0000, 0x7070, 0xa084, 0x00ff, 0x1078, 0x254d,
+	0xa186, 0x007e, 0x0040, 0x3f14, 0xa186, 0x0080, 0x0040, 0x3f14,
+	0x2011, 0xab8e, 0x1078, 0x419d, 0x20e1, 0x9080, 0x20e1, 0x4000,
+	0x2099, 0xab80, 0x20a1, 0x020b, 0x7480, 0xa480, 0x0018, 0xa080,
+	0x0007, 0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0014,
+	0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040, 0x3f55,
+	0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014, 0x00c0, 0x3f53,
+	0x2079, 0xab80, 0x7a30, 0xa296, 0x1103, 0x00c0, 0x3f53, 0x7834,
+	0xa005, 0x00c0, 0x3f53, 0x7a38, 0xd2fc, 0x0040, 0x3f4d, 0x70b0,
+	0xa005, 0x00c0, 0x3f4d, 0x70b3, 0x0001, 0x708b, 0x0012, 0x1078,
+	0x3f57, 0x0078, 0x3f55, 0x1078, 0x4224, 0x0f7f, 0x007c, 0x708b,
+	0x0013, 0x1078, 0x4295, 0x20a3, 0x1103, 0x20a3, 0x0000, 0x3430,
+	0x2011, 0xab8e, 0x1078, 0x42d4, 0x00c0, 0x3f75, 0x7074, 0xa005,
+	0x00c0, 0x3f75, 0x7150, 0xa186, 0xffff, 0x0040, 0x3f75, 0x1078,
+	0x419d, 0x0040, 0x3f75, 0x1078, 0x42b8, 0x20a9, 0x0008, 0x2298,
+	0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0014,
+	0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040, 0x3fad,
+	0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014, 0x00c0, 0x3fab,
+	0x2079, 0xab80, 0x7a30, 0xa296, 0x1104, 0x00c0, 0x3fab, 0x7834,
+	0xa005, 0x00c0, 0x3fab, 0x7a38, 0xd2fc, 0x0040, 0x3fa5, 0x70b0,
+	0xa005, 0x00c0, 0x3fa5, 0x70b3, 0x0001, 0x708b, 0x0014, 0x1078,
+	0x3faf, 0x0078, 0x3fad, 0x1078, 0x4224, 0x0f7f, 0x007c, 0x708b,
+	0x0015, 0x1078, 0x4295, 0x20a3, 0x1104, 0x20a3, 0x0000, 0x3430,
+	0x2011, 0xab8e, 0x1078, 0x42d4, 0x00c0, 0x3fd7, 0x7074, 0xa005,
+	0x00c0, 0x3fd7, 0x7154, 0xa186, 0xffff, 0x0040, 0x3fd7, 0xa180,
+	0x29c0, 0x200c, 0xa18c, 0xff00, 0x810f, 0x1078, 0x419d, 0x0040,
+	0x3fd7, 0x1078, 0x3820, 0x0040, 0x3fd7, 0x1078, 0x256a, 0x20a9,
+	0x0008, 0x2298, 0x26a0, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x60c3, 0x0014, 0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005,
+	0x0040, 0x402e, 0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0014,
+	0x00c0, 0x402c, 0x2079, 0xab80, 0x7a30, 0xa296, 0x1105, 0x00c0,
+	0x402c, 0x7834, 0x2011, 0x0100, 0xa21e, 0x00c0, 0x400b, 0x7a38,
+	0xd2fc, 0x0040, 0x4009, 0x70b0, 0xa005, 0x00c0, 0x4009, 0x70b3,
+	0x0001, 0x0078, 0x401a, 0xa005, 0x00c0, 0x402c, 0x7a38, 0xd2fc,
+	0x0040, 0x4018, 0x70b0, 0xa005, 0x00c0, 0x4018, 0x70b3, 0x0001,
+	0x7087, 0x0000, 0x7a38, 0xd2f4, 0x0040, 0x4026, 0x2001, 0xa674,
+	0x2004, 0xd0a4, 0x00c0, 0x4026, 0x70cf, 0x0008, 0x708b, 0x0016,
+	0x1078, 0x4030, 0x0078, 0x402e, 0x1078, 0x4224, 0x0f7f, 0x007c,
+	0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xab80, 0x20a1, 0x020b,
+	0x20a9, 0x000e, 0x53a6, 0x3430, 0x2011, 0xab8e, 0x708b, 0x0017,
+	0x1078, 0x42d4, 0x00c0, 0x4050, 0x7074, 0xa005, 0x00c0, 0x4050,
+	0x1078, 0x4104, 0x00c0, 0x405a, 0xa085, 0x0001, 0x1078, 0x256a,
+	0x20a9, 0x0008, 0x2099, 0xab8e, 0x26a0, 0x53a6, 0x20a3, 0x0000,
+	0x20a3, 0x0000, 0x60c3, 0x0014, 0x1078, 0x420b, 0x007c, 0x0f7e,
+	0x7080, 0xa005, 0x0040, 0x407f, 0x2011, 0x41dc, 0x1078, 0x5a45,
+	0xa086, 0x0084, 0x00c0, 0x407d, 0x2079, 0xab80, 0x7a30, 0xa296,
+	0x1106, 0x00c0, 0x407d, 0x7834, 0xa005, 0x00c0, 0x407d, 0x708b,
+	0x0018, 0x1078, 0x4081, 0x0078, 0x407f, 0x1078, 0x4224, 0x0f7f,
+	0x007c, 0x708b, 0x0019, 0x1078, 0x4295, 0x20a3, 0x1106, 0x20a3,
+	0x0000, 0x3430, 0x2099, 0xab8e, 0x2039, 0xab0e, 0x27a0, 0x20a9,
+	0x0040, 0x53a3, 0x1078, 0x42d4, 0x00c0, 0x40b5, 0x2728, 0x2514,
+	0x8207, 0xa084, 0x00ff, 0x8000, 0x2018, 0xa294, 0x00ff, 0x8007,
+	0xa205, 0x202a, 0x6030, 0x2310, 0x8214, 0xa2a0, 0xab0e, 0x2414,
+	0xa38c, 0x0001, 0x0040, 0x40b0, 0xa294, 0xff00, 0x0078, 0x40b3,
+	0xa294, 0x00ff, 0x8007, 0xa215, 0x2222, 0x2798, 0x26a0, 0x20a9,
+	0x0040, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x0084,
+	0x1078, 0x420b, 0x007c, 0x0f7e, 0x7080, 0xa005, 0x0040, 0x40e7,
+	0x2011, 0x41dc, 0x1078, 0x5a45, 0xa086, 0x0084, 0x00c0, 0x40e5,
+	0x2079, 0xab80, 0x7a30, 0xa296, 0x1107, 0x00c0, 0x40e5, 0x7834,
+	0xa005, 0x00c0, 0x40e5, 0x7087, 0x0001, 0x1078, 0x427b, 0x708b,
+	0x001a, 0x1078, 0x40e9, 0x0078, 0x40e7, 0x1078, 0x4224, 0x0f7f,
+	0x007c, 0x708b, 0x001b, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099,
+	0xab80, 0x20a1, 0x020b, 0x7480, 0xa480, 0x0018, 0xa080, 0x0007,
+	0xa084, 0x03f8, 0x8004, 0x20a8, 0x53a6, 0x60c3, 0x0084, 0x1078,
+	0x420b, 0x007c, 0x007c, 0x007c, 0x087e, 0x097e, 0x2029, 0xa653,
+	0x252c, 0x20a9, 0x0008, 0x2041, 0xab0e, 0x28a0, 0x2099, 0xab8e,
+	0x53a3, 0x20a9, 0x0008, 0x2011, 0x0007, 0xd5d4, 0x0040, 0x411a,
+	0x2011, 0x0000, 0x2800, 0xa200, 0x200c, 0xa1a6, 0xffff, 0x00c0,
+	0x412c, 0xd5d4, 0x0040, 0x4127, 0x8210, 0x0078, 0x4128, 0x8211,
+	0x00f0, 0x411a, 0x0078, 0x4194, 0x82ff, 0x00c0, 0x413e, 0xd5d4,
+	0x0040, 0x4138, 0xa1a6, 0x3fff, 0x0040, 0x4124, 0x0078, 0x413c,
+	0xa1a6, 0x3fff, 0x0040, 0x4194, 0xa18d, 0xc000, 0x20a9, 0x0010,
+	0x2019, 0x0001, 0xd5d4, 0x0040, 0x4147, 0x2019, 0x0010, 0x2120,
+	0xd5d4, 0x0040, 0x414e, 0x8423, 0x0078, 0x414f, 0x8424, 0x00c8,
+	0x415c, 0xd5d4, 0x0040, 0x4157, 0x8319, 0x0078, 0x4158, 0x8318,
+	0x00f0, 0x4148, 0x0078, 0x4194, 0x23a8, 0x2021, 0x0001, 0x8426,
+	0x8425, 0x00f0, 0x4160, 0x2328, 0x8529, 0xa2be, 0x0007, 0x0040,
+	0x4174, 0x007e, 0x2039, 0x0007, 0x2200, 0xa73a, 0x007f, 0x27a8,
+	0xa5a8, 0x0010, 0x00f0, 0x4170, 0x7552, 0xa5c8, 0x29c0, 0x292c,
+	0xa5ac, 0x00ff, 0x6532, 0x60e7, 0x0000, 0x65ea, 0x706f, 0x0000,
+	0x7572, 0x2018, 0x2304, 0xa405, 0x201a, 0x7077, 0x0001, 0x26a0,
+	0x2898, 0x20a9, 0x0008, 0x53a6, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0xa085, 0x0001, 0x0078, 0x419a, 0xa006, 0x0078, 0x419a, 0xa006,
+	0x1078, 0x1332, 0x097f, 0x087f, 0x007c, 0x2118, 0x2021, 0x0000,
+	0x2001, 0x0007, 0xa39a, 0x0010, 0x0048, 0x41aa, 0x8420, 0x8001,
+	0x0078, 0x41a2, 0x2118, 0x84ff, 0x0040, 0x41b3, 0xa39a, 0x0010,
+	0x8421, 0x00c0, 0x41ae, 0x2021, 0x0001, 0x83ff, 0x0040, 0x41bc,
+	0x8423, 0x8319, 0x00c0, 0x41b8, 0xa238, 0x2704, 0xa42c, 0x00c0,
+	0x41d4, 0xa405, 0x203a, 0x7152, 0xa1a0, 0x29c0, 0x242c, 0xa5ac,
+	0x00ff, 0x6532, 0x60e7, 0x0000, 0x65ea, 0x706f, 0x0000, 0x7572,
+	0x7077, 0x0001, 0xa084, 0x0000, 0x007c, 0x0e7e, 0x2071, 0xa600,
+	0x707b, 0x0000, 0x0e7f, 0x007c, 0x0e7e, 0x0f7e, 0x2001, 0x0002,
+	0x1078, 0x5ae6, 0x2079, 0x0100, 0x2071, 0x0140, 0x1078, 0x6e0f,
+	0x7004, 0xa084, 0x4000, 0x0040, 0x41f1, 0x7003, 0x1000, 0x7003,
+	0x0000, 0x127e, 0x2091, 0x8000, 0x2071, 0xa622, 0x2073, 0x0000,
+	0x7840, 0x027e, 0x017e, 0x2009, 0x00f7, 0x1078, 0x42a1, 0x017f,
+	0xa094, 0x0010, 0xa285, 0x0080, 0x7842, 0x7a42, 0x027f, 0x127f,
+	0x0f7f, 0x0e7f, 0x007c, 0x127e, 0x2091, 0x8000, 0x2011, 0xa8bb,
+	0x2013, 0x0000, 0x7083, 0x0000, 0x127f, 0x20e1, 0x9080, 0x60a3,
+	0x0056, 0x60a7, 0x9575, 0x1078, 0x6e06, 0x2009, 0x07d0, 0x2011,
+	0x41dc, 0x1078, 0x5add, 0x007c, 0x017e, 0x027e, 0x0c7e, 0x127e,
+	0x2091, 0x8000, 0x2011, 0x0003, 0x1078, 0x70e0, 0x2011, 0x0002,
+	0x1078, 0x70ea, 0x1078, 0x6fc4, 0x037e, 0x2019, 0x0000, 0x1078,
+	0x7058, 0x037f, 0x2009, 0x00f7, 0x1078, 0x42a1, 0x2061, 0xa8c4,
+	0x601b, 0x0000, 0x601f, 0x0000, 0x2061, 0xa600, 0x6003, 0x0001,
+	0x2061, 0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x002d,
+	0x2011, 0x4259, 0x1078, 0x5a38, 0x127f, 0x0c7f, 0x027f, 0x017f,
+	0x007c, 0x0e7e, 0x007e, 0x127e, 0x2091, 0x8000, 0x2001, 0x0001,
+	0x1078, 0x5ae6, 0x2071, 0x0100, 0x1078, 0x6e0f, 0x2071, 0x0140,
+	0x7004, 0xa084, 0x4000, 0x0040, 0x4271, 0x7003, 0x1000, 0x7003,
+	0x0000, 0x2001, 0x0001, 0x1078, 0x24e8, 0x1078, 0x4224, 0x127f,
+	0x007f, 0x0e7f, 0x007c, 0x20a9, 0x0040, 0x20a1, 0xacc0, 0x2099,
+	0xab8e, 0x3304, 0x8007, 0x20a2, 0x9398, 0x94a0, 0x00f0, 0x4281,
+	0x007c, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x2099, 0xab00, 0x20a1,
+	0x020b, 0x20a9, 0x000c, 0x53a6, 0x007c, 0x20e1, 0x9080, 0x20e1,
+	0x4000, 0x2099, 0xab80, 0x20a1, 0x020b, 0x20a9, 0x000c, 0x53a6,
+	0x007c, 0x0c7e, 0x007e, 0x2061, 0x0100, 0x810f, 0x2001, 0xa62f,
+	0x2004, 0xa005, 0x00c0, 0x42b2, 0x6030, 0xa084, 0x00ff, 0xa105,
+	0x0078, 0x42b4, 0xa185, 0x00f7, 0x604a, 0x007f, 0x0c7f, 0x007c,
+	0x017e, 0x047e, 0x2001, 0xa653, 0x2004, 0xd0a4, 0x0040, 0x42cb,
+	0xa006, 0x2020, 0x2009, 0x002a, 0x1078, 0xa21d, 0x2001, 0xa60c,
+	0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x2009, 0x0000, 0x1078,
+	0x284f, 0x047f, 0x017f, 0x007c, 0x007e, 0x2001, 0xa60c, 0x2004,
+	0xd09c, 0x0040, 0x42db, 0x007f, 0x007c, 0x007e, 0x017e, 0x127e,
+	0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0xa18d, 0x0006, 0x2102,
+	0x127f, 0x017f, 0x007f, 0x007c, 0x157e, 0x20a9, 0x00ff, 0x2009,
+	0xa735, 0xa006, 0x200a, 0x8108, 0x00f0, 0x42f2, 0x157f, 0x007c,
+	0x0d7e, 0x037e, 0x157e, 0x137e, 0x147e, 0x2069, 0xa652, 0xa006,
+	0x6002, 0x6007, 0x0707, 0x600a, 0x600e, 0x6012, 0xa198, 0x29c0,
+	0x231c, 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, 0x0d7e, 0x60a4, 0xa06d, 0x0040, 0x4338, 0x1078, 0x13a4,
+	0x60a7, 0x0000, 0x60a8, 0xa06d, 0x0040, 0x4340, 0x1078, 0x13a4,
+	0x60ab, 0x0000, 0x0d7f, 0xa006, 0x604a, 0x6810, 0x603a, 0x680c,
+	0x6046, 0x6814, 0xa084, 0x00ff, 0x6042, 0x147f, 0x137f, 0x157f,
+	0x037f, 0x0d7f, 0x007c, 0x127e, 0x2091, 0x8000, 0x6944, 0x6e48,
+	0xa684, 0x3fff, 0xa082, 0x4000, 0x00c8, 0x4424, 0xa18c, 0xff00,
+	0x810f, 0xa182, 0x00ff, 0x00c8, 0x442a, 0x2001, 0xa60c, 0x2004,
+	0xa084, 0x0003, 0x0040, 0x4385, 0x2001, 0xa60c, 0x2004, 0xd084,
+	0x00c0, 0x4405, 0xa188, 0xa735, 0x2104, 0xa065, 0x0040, 0x4405,
+	0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006, 0x00c0, 0x4405, 0x6000,
+	0xd0c4, 0x0040, 0x4405, 0x0078, 0x4392, 0xa188, 0xa735, 0x2104,
+	0xa065, 0x0040, 0x43e9, 0x6004, 0xa084, 0x00ff, 0xa08e, 0x0006,
+	0x00c0, 0x43ef, 0x60a4, 0xa00d, 0x0040, 0x439a, 0x1078, 0x4817,
+	0x0040, 0x43e3, 0x60a8, 0xa00d, 0x0040, 0x43b4, 0x1078, 0x486a,
+	0x00c0, 0x43b4, 0x694c, 0xd1fc, 0x00c0, 0x43aa, 0x1078, 0x44df,
+	0x0078, 0x43de, 0x1078, 0x4484, 0x694c, 0xd1ec, 0x00c0, 0x43de,
+	0x1078, 0x46d6, 0x0078, 0x43de, 0x694c, 0xa184, 0xa000, 0x0040,
+	0x43ce, 0xd1ec, 0x0040, 0x43c7, 0xd1fc, 0x0040, 0x43c3, 0x1078,
+	0x46e7, 0x0078, 0x43ca, 0x1078, 0x46e7, 0x0078, 0x43ce, 0xd1fc,
+	0x0040, 0x43ce, 0x1078, 0x4484, 0x0078, 0x43de, 0x6050, 0xa00d,
+	0x0040, 0x43d9, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052, 0x0078,
+	0x43de, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x1078, 0x5da9,
+	0xa006, 0x127f, 0x007c, 0x2001, 0x0005, 0x2009, 0x0000, 0x0078,
+	0x442e, 0x2001, 0x0028, 0x2009, 0x0000, 0x0078, 0x442e, 0xa082,
+	0x0006, 0x00c8, 0x4405, 0x60a0, 0xd0bc, 0x00c0, 0x4401, 0x6100,
+	0xd1fc, 0x0040, 0x4392, 0x2001, 0x0029, 0x2009, 0x1000, 0x0078,
+	0x442e, 0x2001, 0x0028, 0x0078, 0x4420, 0x2009, 0xa60c, 0x210c,
+	0xd18c, 0x0040, 0x440f, 0x2001, 0x0004, 0x0078, 0x4420, 0xd184,
+	0x0040, 0x4416, 0x2001, 0x0004, 0x0078, 0x4420, 0x2001, 0x0029,
+	0x6100, 0xd1fc, 0x0040, 0x4420, 0x2009, 0x1000, 0x0078, 0x442e,
+	0x2009, 0x0000, 0x0078, 0x442e, 0x2001, 0x0029, 0x2009, 0x0000,
+	0x0078, 0x442e, 0x2001, 0x0029, 0x2009, 0x0000, 0xa005, 0x127f,
+	0x007c, 0x6944, 0x6e48, 0xa684, 0x3fff, 0xa082, 0x4000, 0x00c8,
+	0x447e, 0xa18c, 0xff00, 0x810f, 0xa182, 0x00ff, 0x00c8, 0x4464,
+	0xa188, 0xa735, 0x2104, 0xa065, 0x0040, 0x4464, 0x6004, 0xa084,
+	0x00ff, 0xa08e, 0x0006, 0x00c0, 0x446a, 0x684c, 0xd0ec, 0x0040,
+	0x4457, 0x1078, 0x46e7, 0x1078, 0x4484, 0x0078, 0x445f, 0x1078,
+	0x4484, 0x684c, 0xd0fc, 0x0040, 0x445f, 0x1078, 0x46d6, 0x1078,
+	0x472f, 0xa006, 0x0078, 0x4482, 0x2001, 0x0028, 0x2009, 0x0000,
+	0x0078, 0x4482, 0xa082, 0x0006, 0x00c8, 0x4478, 0x6100, 0xd1fc,
+	0x0040, 0x444d, 0x2001, 0x0029, 0x2009, 0x1000, 0x0078, 0x4482,
+	0x2001, 0x0029, 0x2009, 0x0000, 0x0078, 0x4482, 0x2001, 0x0029,
+	0x2009, 0x0000, 0xa005, 0x007c, 0x127e, 0x2091, 0x8000, 0x6050,
+	0xa00d, 0x0040, 0x4492, 0x2d00, 0x200a, 0x6803, 0x0000, 0x6052,
+	0x127f, 0x007c, 0x2d00, 0x6052, 0x604e, 0x6803, 0x0000, 0x0078,
+	0x4490, 0x127e, 0x2091, 0x8000, 0x604c, 0xa005, 0x0040, 0x44af,
+	0x0e7e, 0x2071, 0xa8b1, 0x7004, 0xa086, 0x0002, 0x0040, 0x44b6,
+	0x0e7f, 0x604c, 0x6802, 0x2d00, 0x604e, 0x127f, 0x007c, 0x2d00,
+	0x6052, 0x604e, 0x6803, 0x0000, 0x0078, 0x44ad, 0x701c, 0xac06,
+	0x00c0, 0x44a8, 0x604c, 0x2070, 0x7000, 0x6802, 0x2d00, 0x7002,
+	0x0e7f, 0x127f, 0x007c, 0x127e, 0x2091, 0x8000, 0x604c, 0xa06d,
+	0x0040, 0x44d1, 0x6800, 0xa005, 0x00c0, 0x44cf, 0x6052, 0x604e,
+	0xad05, 0x127f, 0x007c, 0x604c, 0xa06d, 0x0040, 0x44de, 0x6800,
+	0xa005, 0x00c0, 0x44dc, 0x6052, 0x604e, 0xad05, 0x007c, 0x6803,
+	0x0000, 0x6084, 0xa00d, 0x0040, 0x44e9, 0x2d00, 0x200a, 0x6086,
+	0x007c, 0x2d00, 0x6086, 0x6082, 0x0078, 0x44e8, 0x127e, 0x0c7e,
+	0x027e, 0x2091, 0x8000, 0x6218, 0x2260, 0x6200, 0xa005, 0x0040,
+	0x44fc, 0xc285, 0x0078, 0x44fd, 0xc284, 0x6202, 0x027f, 0x0c7f,
+	0x127f, 0x007c, 0x127e, 0x0c7e, 0x2091, 0x8000, 0x6218, 0x2260,
+	0x6204, 0x007e, 0xa086, 0x0006, 0x00c0, 0x4521, 0x609c, 0xd0ac,
+	0x0040, 0x4521, 0x2001, 0xa653, 0x2004, 0xd0a4, 0x0040, 0x4521,
+	0xa284, 0xff00, 0x8007, 0xa086, 0x0007, 0x00c0, 0x4521, 0x2011,
+	0x0600, 0x007f, 0xa294, 0xff00, 0xa215, 0x6206, 0x007e, 0xa086,
+	0x0006, 0x00c0, 0x4531, 0x6290, 0x82ff, 0x00c0, 0x4531, 0x1078,
+	0x1332, 0x007f, 0x0c7f, 0x127f, 0x007c, 0x127e, 0x0c7e, 0x2091,
+	0x8000, 0x6218, 0x2260, 0x6204, 0x007e, 0xa086, 0x0006, 0x00c0,
+	0x4553, 0x609c, 0xd0a4, 0x0040, 0x4553, 0x2001, 0xa653, 0x2004,
+	0xd0ac, 0x00c0, 0x4553, 0xa284, 0x00ff, 0xa086, 0x0007, 0x00c0,
+	0x4553, 0x2011, 0x0006, 0x007f, 0xa294, 0x00ff, 0x8007, 0xa215,
+	0x6206, 0x0c7f, 0x127f, 0x007c, 0x027e, 0xa182, 0x00ff, 0x0048,
+	0x4565, 0xa085, 0x0001, 0x0078, 0x457d, 0xa190, 0xa735, 0x2204,
+	0xa065, 0x00c0, 0x457c, 0x017e, 0x0d7e, 0x1078, 0x1370, 0x2d60,
+	0x0d7f, 0x017f, 0x0040, 0x4561, 0x2c00, 0x2012, 0x60a7, 0x0000,
+	0x60ab, 0x0000, 0x1078, 0x42f8, 0xa006, 0x027f, 0x007c, 0x127e,
+	0x2091, 0x8000, 0x027e, 0xa182, 0x00ff, 0x0048, 0x458b, 0xa085,
+	0x0001, 0x0078, 0x45c1, 0x0d7e, 0xa190, 0xa735, 0x2204, 0xa06d,
+	0x0040, 0x45bf, 0x2013, 0x0000, 0x0d7e, 0x0c7e, 0x2d60, 0x60a4,
+	0xa06d, 0x0040, 0x459d, 0x1078, 0x13a4, 0x60a8, 0xa06d, 0x0040,
+	0x45a3, 0x1078, 0x13a4, 0x0c7f, 0x0d7f, 0x0d7e, 0x0c7e, 0x68ac,
+	0x2060, 0x8cff, 0x0040, 0x45bb, 0x600c, 0x007e, 0x6010, 0x2068,
+	0x1078, 0x8d06, 0x0040, 0x45b6, 0x1078, 0x13b4, 0x1078, 0x772d,
+	0x0c7f, 0x0078, 0x45a9, 0x0c7f, 0x0d7f, 0x1078, 0x13a4, 0x0d7f,
+	0xa006, 0x027f, 0x127f, 0x007c, 0x017e, 0xa182, 0x00ff, 0x0048,
+	0x45cd, 0xa085, 0x0001, 0x0078, 0x45d4, 0xa188, 0xa735, 0x2104,
+	0xa065, 0x0040, 0x45c9, 0xa006, 0x017f, 0x007c, 0x0d7e, 0x157e,
+	0x137e, 0x147e, 0x600b, 0x0000, 0x600f, 0x0000, 0x6000, 0xc08c,
+	0x6002, 0x2069, 0xab8e, 0x6808, 0x605e, 0x6810, 0x6062, 0x6138,
+	0xa10a, 0x0048, 0x45ec, 0x603a, 0x6814, 0x6066, 0x2099, 0xab96,
+	0xac88, 0x000a, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2099, 0xab9a,
+	0xac88, 0x0006, 0x21a0, 0x20a9, 0x0004, 0x53a3, 0x2069, 0xabae,
+	0x6808, 0x606a, 0x690c, 0x616e, 0x6810, 0x6072, 0x6818, 0x6076,
+	0x60a0, 0xa086, 0x007e, 0x00c0, 0x4611, 0x2069, 0xab8e, 0x690c,
+	0x616e, 0xa182, 0x0211, 0x00c8, 0x4619, 0x2009, 0x0008, 0x0078,
+	0x4643, 0xa182, 0x0259, 0x00c8, 0x4621, 0x2009, 0x0007, 0x0078,
+	0x4643, 0xa182, 0x02c1, 0x00c8, 0x4629, 0x2009, 0x0006, 0x0078,
+	0x4643, 0xa182, 0x0349, 0x00c8, 0x4631, 0x2009, 0x0005, 0x0078,
+	0x4643, 0xa182, 0x0421, 0x00c8, 0x4639, 0x2009, 0x0004, 0x0078,
+	0x4643, 0xa182, 0x0581, 0x00c8, 0x4641, 0x2009, 0x0003, 0x0078,
+	0x4643, 0x2009, 0x0002, 0x6192, 0x147f, 0x137f, 0x157f, 0x0d7f,
+	0x007c, 0x017e, 0x027e, 0x0e7e, 0x2071, 0xab8d, 0x2e04, 0x6896,
+	0x2071, 0xab8e, 0x7004, 0x689a, 0x701c, 0x689e, 0x6a00, 0x2009,
+	0xa672, 0x210c, 0xd0bc, 0x0040, 0x4663, 0xd1ec, 0x0040, 0x4663,
+	0xc2ad, 0x0078, 0x4664, 0xc2ac, 0xd0c4, 0x0040, 0x466d, 0xd1e4,
+	0x0040, 0x466d, 0xc2bd, 0x0078, 0x466e, 0xc2bc, 0x6a02, 0x0e7f,
+	0x027f, 0x017f, 0x007c, 0x0d7e, 0x127e, 0x2091, 0x8000, 0x60a4,
+	0xa06d, 0x0040, 0x4697, 0x6900, 0x81ff, 0x00c0, 0x46ab, 0x6a04,
+	0xa282, 0x0010, 0x00c8, 0x46b0, 0xad88, 0x0004, 0x20a9, 0x0010,
+	0x2104, 0xa086, 0xffff, 0x0040, 0x4692, 0x8108, 0x00f0, 0x4688,
+	0x1078, 0x1332, 0x260a, 0x8210, 0x6a06, 0x0078, 0x46ab, 0x1078,
+	0x138b, 0x0040, 0x46b0, 0x2d00, 0x60a6, 0x6803, 0x0000, 0xad88,
+	0x0004, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108, 0x00f0, 0x46a3,
+	0x6807, 0x0001, 0x6e12, 0xa085, 0x0001, 0x127f, 0x0d7f, 0x007c,
+	0xa006, 0x0078, 0x46ad, 0x127e, 0x2091, 0x8000, 0x0d7e, 0x60a4,
+	0xa00d, 0x0040, 0x46d3, 0x2168, 0x6800, 0xa005, 0x00c0, 0x46cf,
+	0x1078, 0x4817, 0x00c0, 0x46d3, 0x200b, 0xffff, 0x6804, 0xa08a,
+	0x0002, 0x0048, 0x46cf, 0x8001, 0x6806, 0x0078, 0x46d3, 0x1078,
+	0x13a4, 0x60a7, 0x0000, 0x0d7f, 0x127f, 0x007c, 0x127e, 0x2091,
+	0x8000, 0x1078, 0x487f, 0x0078, 0x46df, 0x1078, 0x4484, 0x1078,
+	0x4775, 0x00c0, 0x46dd, 0x1078, 0x472f, 0x127f, 0x007c, 0x0d7e,
+	0x127e, 0x2091, 0x8000, 0x60a8, 0xa06d, 0x0040, 0x470b, 0x6950,
+	0x81ff, 0x00c0, 0x471f, 0x6a54, 0xa282, 0x0010, 0x00c8, 0x472c,
+	0xad88, 0x0018, 0x20a9, 0x0010, 0x2104, 0xa086, 0xffff, 0x0040,
+	0x4706, 0x8108, 0x00f0, 0x46fc, 0x1078, 0x1332, 0x260a, 0x8210,
+	0x6a56, 0x0078, 0x471f, 0x1078, 0x138b, 0x0040, 0x472c, 0x2d00,
+	0x60aa, 0x6853, 0x0000, 0xad88, 0x0018, 0x20a9, 0x0010, 0x200b,
+	0xffff, 0x8108, 0x00f0, 0x4717, 0x6857, 0x0001, 0x6e62, 0x0078,
+	0x4723, 0x1078, 0x44df, 0x1078, 0x4739, 0x00c0, 0x4721, 0xa085,
+	0x0001, 0x127f, 0x0d7f, 0x007c, 0xa006, 0x0078, 0x4729, 0x127e,
+	0x2091, 0x8000, 0x1078, 0x5da9, 0x127f, 0x007c, 0xa01e, 0x0078,
+	0x473b, 0x2019, 0x0001, 0xa00e, 0x127e, 0x2091, 0x8000, 0x604c,
+	0x2068, 0x6000, 0xd0dc, 0x00c0, 0x4759, 0x8dff, 0x0040, 0x4770,
+	0x83ff, 0x0040, 0x4751, 0x6848, 0xa606, 0x0040, 0x475e, 0x0078,
+	0x4759, 0x683c, 0xa406, 0x00c0, 0x4759, 0x6840, 0xa506, 0x0040,
+	0x475e, 0x2d08, 0x6800, 0x2068, 0x0078, 0x4745, 0x1078, 0x7233,
+	0x6a00, 0x604c, 0xad06, 0x00c0, 0x4768, 0x624e, 0x0078, 0x476b,
+	0xa180, 0x0000, 0x2202, 0x82ff, 0x00c0, 0x4770, 0x6152, 0x8dff,
+	0x127f, 0x007c, 0xa01e, 0x0078, 0x4777, 0x2019, 0x0001, 0xa00e,
+	0x6080, 0x2068, 0x8dff, 0x0040, 0x47a3, 0x83ff, 0x0040, 0x4786,
+	0x6848, 0xa606, 0x0040, 0x4793, 0x0078, 0x478e, 0x683c, 0xa406,
+	0x00c0, 0x478e, 0x6840, 0xa506, 0x0040, 0x4793, 0x2d08, 0x6800,
+	0x2068, 0x0078, 0x477a, 0x6a00, 0x6080, 0xad06, 0x00c0, 0x479b,
+	0x6282, 0x0078, 0x479e, 0xa180, 0x0000, 0x2202, 0x82ff, 0x00c0,
+	0x47a3, 0x6186, 0x8dff, 0x007c, 0xa016, 0x1078, 0x4810, 0x00c0,
+	0x47ab, 0x2011, 0x0001, 0x1078, 0x4863, 0x00c0, 0x47b1, 0xa295,
+	0x0002, 0x007c, 0x1078, 0x489b, 0x0040, 0x47ba, 0x1078, 0x8dca,
+	0x0078, 0x47bc, 0xa085, 0x0001, 0x007c, 0x1078, 0x489b, 0x0040,
+	0x47c5, 0x1078, 0x8d62, 0x0078, 0x47c7, 0xa085, 0x0001, 0x007c,
+	0x1078, 0x489b, 0x0040, 0x47d0, 0x1078, 0x8dac, 0x0078, 0x47d2,
+	0xa085, 0x0001, 0x007c, 0x1078, 0x489b, 0x0040, 0x47db, 0x1078,
+	0x8d7e, 0x0078, 0x47dd, 0xa085, 0x0001, 0x007c, 0x1078, 0x489b,
+	0x0040, 0x47e6, 0x1078, 0x8de8, 0x0078, 0x47e8, 0xa085, 0x0001,
+	0x007c, 0x127e, 0x007e, 0x0d7e, 0x2091, 0x8000, 0x6080, 0xa06d,
+	0x0040, 0x4808, 0x6800, 0x007e, 0x6837, 0x0103, 0x6b4a, 0x6847,
+	0x0000, 0x1078, 0x8f7d, 0x007e, 0x6000, 0xd0fc, 0x0040, 0x4802,
+	0x1078, 0xa4ed, 0x007f, 0x1078, 0x4a73, 0x007f, 0x0078, 0x47ef,
+	0x6083, 0x0000, 0x6087, 0x0000, 0x0d7f, 0x007f, 0x127f, 0x007c,
+	0x60a4, 0xa00d, 0x00c0, 0x4817, 0xa085, 0x0001, 0x007c, 0x0e7e,
+	0x2170, 0x7000, 0xa005, 0x00c0, 0x482c, 0x20a9, 0x0010, 0xae88,
+	0x0004, 0x2104, 0xa606, 0x0040, 0x482c, 0x8108, 0x00f0, 0x4821,
+	0xa085, 0x0001, 0x0078, 0x482d, 0xa006, 0x0e7f, 0x007c, 0x0d7e,
+	0x127e, 0x2091, 0x8000, 0x60a4, 0xa06d, 0x00c0, 0x483d, 0x1078,
+	0x138b, 0x0040, 0x484f, 0x2d00, 0x60a6, 0x6803, 0x0001, 0x6807,
+	0x0000, 0xad88, 0x0004, 0x20a9, 0x0010, 0x200b, 0xffff, 0x8108,
+	0x00f0, 0x4845, 0xa085, 0x0001, 0x127f, 0x0d7f, 0x007c, 0xa006,
+	0x0078, 0x484c, 0x0d7e, 0x127e, 0x2091, 0x8000, 0x60a4, 0xa06d,
+	0x0040, 0x4860, 0x60a7, 0x0000, 0x1078, 0x13a4, 0xa085, 0x0001,
+	0x127f, 0x0d7f, 0x007c, 0x60a8, 0xa00d, 0x00c0, 0x486a, 0xa085,
+	0x0001, 0x007c, 0x0e7e, 0x2170, 0x7050, 0xa005, 0x00c0, 0x487d,
+	0x20a9, 0x0010, 0xae88, 0x0018, 0x2104, 0xa606, 0x0040, 0x487d,
+	0x8108, 0x00f0, 0x4874, 0xa085, 0x0001, 0x0e7f, 0x007c, 0x127e,
+	0x2091, 0x8000, 0x1078, 0x4863, 0x00c0, 0x4899, 0x200b, 0xffff,
+	0x0d7e, 0x60a8, 0x2068, 0x6854, 0xa08a, 0x0002, 0x0048, 0x4894,
+	0x8001, 0x6856, 0x0078, 0x4898, 0x1078, 0x13a4, 0x60ab, 0x0000,
+	0x0d7f, 0x127f, 0x007c, 0x609c, 0xd0a4, 0x007c, 0x0f7e, 0x71b0,
+	0x81ff, 0x00c0, 0x48b9, 0x71cc, 0xd19c, 0x0040, 0x48b9, 0x2001,
+	0x007e, 0xa080, 0xa735, 0x2004, 0xa07d, 0x0040, 0x48b9, 0x7804,
+	0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x48b9, 0x7800, 0xc0ed,
+	0x7802, 0x2079, 0xa652, 0x7804, 0xd0a4, 0x0040, 0x48df, 0x157e,
+	0x0c7e, 0x20a9, 0x007f, 0x2009, 0x0000, 0x017e, 0x1078, 0x45c4,
+	0x00c0, 0x48d9, 0x6004, 0xa084, 0xff00, 0x8007, 0xa096, 0x0004,
+	0x0040, 0x48d6, 0xa086, 0x0006, 0x00c0, 0x48d9, 0x6000, 0xc0ed,
+	0x6002, 0x017f, 0x8108, 0x00f0, 0x48c5, 0x0c7f, 0x157f, 0x1078,
+	0x4967, 0x0040, 0x48e8, 0x2001, 0xa8a1, 0x200c, 0x0078, 0x48f0,
+	0x2079, 0xa652, 0x7804, 0xd0a4, 0x0040, 0x48f4, 0x2009, 0x07d0,
+	0x2011, 0x48f6, 0x1078, 0x5add, 0x0f7f, 0x007c, 0x2011, 0x48f6,
+	0x1078, 0x5a45, 0x1078, 0x4967, 0x0040, 0x491e, 0x2001, 0xa7b3,
+	0x2004, 0xa080, 0x0000, 0x200c, 0xc1ec, 0x2102, 0x2001, 0xa653,
+	0x2004, 0xd0a4, 0x0040, 0x4912, 0x2009, 0x07d0, 0x2011, 0x48f6,
+	0x1078, 0x5add, 0x0e7e, 0x2071, 0xa600, 0x706f, 0x0000, 0x7073,
+	0x0000, 0x1078, 0x2677, 0x0e7f, 0x0078, 0x4956, 0x157e, 0x0c7e,
+	0x20a9, 0x007f, 0x2009, 0x0000, 0x017e, 0x1078, 0x45c4, 0x00c0,
+	0x4950, 0x6000, 0xd0ec, 0x0040, 0x4950, 0x047e, 0x62a0, 0xa294,
+	0x00ff, 0x8227, 0xa006, 0x2009, 0x0029, 0x1078, 0xa21d, 0x6000,
+	0xc0e5, 0xc0ec, 0x6002, 0x6004, 0xa084, 0x00ff, 0xa085, 0x0700,
+	0x6006, 0x2019, 0x0029, 0x1078, 0x5f01, 0x077e, 0x2039, 0x0000,
+	0x1078, 0x5e0a, 0x2009, 0x0000, 0x1078, 0x9f8b, 0x077f, 0x047f,
+	0x017f, 0x8108, 0x00f0, 0x4924, 0x0c7f, 0x157f, 0x007c, 0x0c7e,
+	0x6018, 0x2060, 0x6000, 0xc0ec, 0x6002, 0x0c7f, 0x007c, 0x7818,
+	0x2004, 0xd0ac, 0x007c, 0x7818, 0x2004, 0xd0bc, 0x007c, 0x0f7e,
+	0x2001, 0xa7b3, 0x2004, 0xa07d, 0x0040, 0x4970, 0x7800, 0xd0ec,
+	0x0f7f, 0x007c, 0x127e, 0x027e, 0x2091, 0x8000, 0x007e, 0x62a0,
+	0xa290, 0xa735, 0x2204, 0xac06, 0x10c0, 0x1332, 0x007f, 0x6200,
+	0xa005, 0x0040, 0x4986, 0xc2fd, 0x0078, 0x4987, 0xc2fc, 0x6202,
+	0x027f, 0x127f, 0x007c, 0x2011, 0xa633, 0x2204, 0xd0cc, 0x0040,
+	0x4998, 0x2001, 0xa89f, 0x200c, 0x2011, 0x4999, 0x1078, 0x5add,
+	0x007c, 0x2011, 0x4999, 0x1078, 0x5a45, 0x2011, 0xa633, 0x2204,
+	0xc0cc, 0x2012, 0x007c, 0x2071, 0xa714, 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, 0xa87d, 0x7003,
+	0xa714, 0x7007, 0x0000, 0x700b, 0x0000, 0x700f, 0xa85d, 0x7013,
+	0x0020, 0x7017, 0x0040, 0x7037, 0x0000, 0x007c, 0x017e, 0x0e7e,
+	0x2071, 0xa835, 0xa00e, 0x7186, 0x718a, 0x7097, 0x0001, 0x2001,
+	0xa653, 0x2004, 0xd0fc, 0x00c0, 0x49e8, 0x2001, 0xa653, 0x2004,
+	0xa00e, 0xd09c, 0x0040, 0x49e5, 0x8108, 0x7102, 0x0078, 0x4a3b,
+	0x2001, 0xa672, 0x200c, 0xa184, 0x000f, 0x2009, 0xa673, 0x210c,
+	0x0079, 0x49f2, 0x49dd, 0x4a13, 0x4a1b, 0x4a26, 0x4a2c, 0x49dd,
+	0x49dd, 0x49dd, 0x4a02, 0x49dd, 0x49dd, 0x49dd, 0x49dd, 0x49dd,
+	0x49dd, 0x49dd, 0x7003, 0x0004, 0x137e, 0x147e, 0x157e, 0x2099,
+	0xa676, 0x20a1, 0xa886, 0x20a9, 0x0004, 0x53a3, 0x157f, 0x147f,
+	0x137f, 0x0078, 0x4a3b, 0x708f, 0x0005, 0x7007, 0x0122, 0x2001,
+	0x0002, 0x0078, 0x4a21, 0x708f, 0x0002, 0x7007, 0x0121, 0x2001,
+	0x0003, 0x7002, 0x7097, 0x0001, 0x0078, 0x4a38, 0x7007, 0x0122,
+	0x2001, 0x0002, 0x0078, 0x4a30, 0x7007, 0x0121, 0x2001, 0x0003,
+	0x7002, 0xa006, 0x7096, 0x708e, 0xa184, 0xff00, 0x8007, 0x709a,
+	0xa184, 0x00ff, 0x7092, 0x0e7f, 0x017f, 0x007c, 0x0e7e, 0x2071,
+	0xa714, 0x684c, 0xa005, 0x00c0, 0x4a4c, 0x7028, 0xc085, 0x702a,
+	0xa085, 0x0001, 0x0078, 0x4a71, 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, 0x0e7f, 0x007c, 0x0e7e, 0x027e, 0x6838, 0xd0fc, 0x00c0,
+	0x4ac9, 0x6804, 0xa00d, 0x0040, 0x4a8f, 0x0d7e, 0x2071, 0xa600,
+	0xa016, 0x702c, 0x2168, 0x6904, 0x206a, 0x8210, 0x2d00, 0x81ff,
+	0x00c0, 0x4a82, 0x702e, 0x70ac, 0xa200, 0x70ae, 0x0d7f, 0x2071,
+	0xa714, 0x701c, 0xa005, 0x00c0, 0x4adb, 0x0068, 0x4ad9, 0x2071,
+	0xa835, 0x7200, 0x82ff, 0x0040, 0x4ad9, 0x6934, 0xa186, 0x0103,
+	0x00c0, 0x4aec, 0x6948, 0x6844, 0xa105, 0x00c0, 0x4acc, 0x2009,
+	0x8020, 0x2200, 0x0079, 0x4aac, 0x4ad9, 0x4ab1, 0x4b09, 0x4b17,
+	0x4ad9, 0x2071, 0x0000, 0x7018, 0xd084, 0x00c0, 0x4ad9, 0x7122,
+	0x683c, 0x7026, 0x6840, 0x702a, 0x701b, 0x0001, 0x2091, 0x4080,
+	0x2071, 0xa600, 0x702c, 0x206a, 0x2d00, 0x702e, 0x70ac, 0x8000,
+	0x70ae, 0x027f, 0x0e7f, 0x007c, 0x6844, 0xa086, 0x0100, 0x00c0,
+	0x4ad9, 0x6868, 0xa005, 0x00c0, 0x4ad9, 0x2009, 0x8020, 0x0078,
+	0x4aa9, 0x2071, 0xa714, 0x2d08, 0x206b, 0x0000, 0x7010, 0x8000,
+	0x7012, 0x7018, 0xa06d, 0x711a, 0x0040, 0x4ae9, 0x6902, 0x0078,
+	0x4aea, 0x711e, 0x0078, 0x4ac9, 0xa18c, 0x00ff, 0xa186, 0x0017,
+	0x0040, 0x4afa, 0xa186, 0x001e, 0x0040, 0x4afa, 0xa18e, 0x001f,
+	0x00c0, 0x4ad9, 0x684c, 0xd0cc, 0x0040, 0x4ad9, 0x6850, 0xa084,
+	0x00ff, 0xa086, 0x0001, 0x00c0, 0x4ad9, 0x2009, 0x8021, 0x0078,
+	0x4aa9, 0x7084, 0x8008, 0xa092, 0x001e, 0x00c8, 0x4ad9, 0x7186,
+	0xae90, 0x0003, 0xa210, 0x683c, 0x2012, 0x0078, 0x4b27, 0x7084,
+	0x8008, 0xa092, 0x000f, 0x00c8, 0x4ad9, 0x7186, 0xae90, 0x0003,
+	0x8003, 0xa210, 0x683c, 0x2012, 0x8210, 0x6840, 0x2012, 0x7088,
+	0xa10a, 0x0048, 0x4ac0, 0x718c, 0x7084, 0xa10a, 0x0048, 0x4ac0,
+	0x2071, 0x0000, 0x7018, 0xd084, 0x00c0, 0x4ac0, 0x2071, 0xa835,
+	0x7000, 0xa086, 0x0002, 0x00c0, 0x4b47, 0x1078, 0x4dc3, 0x2071,
+	0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0078, 0x4ac0, 0x1078,
+	0x4dee, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0078,
+	0x4ac0, 0x007e, 0x684c, 0x007e, 0x6837, 0x0103, 0x20a9, 0x001c,
+	0xad80, 0x0011, 0x20a0, 0x2001, 0x0000, 0x40a4, 0x007f, 0xa084,
+	0x00ff, 0x684e, 0x007f, 0x684a, 0x6952, 0x007c, 0x2071, 0xa714,
+	0x7004, 0x0079, 0x4b6b, 0x4b75, 0x4b86, 0x4d94, 0x4d95, 0x4dbc,
+	0x4dc2, 0x4b76, 0x4d82, 0x4d23, 0x4da5, 0x007c, 0x127e, 0x2091,
+	0x8000, 0x0068, 0x4b85, 0x2009, 0x000d, 0x7030, 0x200a, 0x2091,
+	0x4080, 0x7007, 0x0001, 0x700b, 0x0000, 0x127f, 0x2069, 0xa8c4,
+	0x6844, 0xa005, 0x0050, 0x4bae, 0x00c0, 0x4bae, 0x127e, 0x2091,
+	0x8000, 0x2069, 0x0000, 0x6934, 0x2001, 0xa720, 0x2004, 0xa10a,
+	0x0040, 0x4ba9, 0x0068, 0x4bad, 0x2069, 0x0000, 0x6818, 0xd084,
+	0x00c0, 0x4bad, 0x2009, 0x8040, 0x6922, 0x681b, 0x0001, 0x2091,
+	0x4080, 0x2069, 0xa8c4, 0x6847, 0xffff, 0x127f, 0x2069, 0xa600,
+	0x6848, 0x6964, 0xa102, 0x2069, 0xa835, 0x688a, 0x6984, 0x701c,
+	0xa06d, 0x0040, 0x4bc0, 0x81ff, 0x0040, 0x4c08, 0x0078, 0x4bd6,
+	0x81ff, 0x0040, 0x4cda, 0x2071, 0xa835, 0x7184, 0x7088, 0xa10a,
+	0x00c8, 0x4bd6, 0x7190, 0x2071, 0xa8c4, 0x7040, 0xa005, 0x0040,
+	0x4bd6, 0x00d0, 0x4cda, 0x7142, 0x0078, 0x4cda, 0x2071, 0xa835,
+	0x718c, 0x127e, 0x2091, 0x8000, 0x7084, 0xa10a, 0x0048, 0x4cf7,
+	0x0068, 0x4c8c, 0x2071, 0x0000, 0x7018, 0xd084, 0x00c0, 0x4c8c,
+	0x2001, 0xffff, 0x2071, 0xa8c4, 0x7042, 0x2071, 0xa835, 0x7000,
+	0xa086, 0x0002, 0x00c0, 0x4bfe, 0x1078, 0x4dc3, 0x2071, 0x0000,
+	0x701b, 0x0001, 0x2091, 0x4080, 0x0078, 0x4c8c, 0x1078, 0x4dee,
+	0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0078, 0x4c8c,
+	0x2071, 0xa835, 0x7000, 0xa005, 0x0040, 0x4cb9, 0x6934, 0xa186,
+	0x0103, 0x00c0, 0x4c8f, 0x684c, 0xd0bc, 0x00c0, 0x4cb9, 0x6948,
+	0x6844, 0xa105, 0x00c0, 0x4cac, 0x2009, 0x8020, 0x2071, 0xa835,
+	0x7000, 0x0079, 0x4c23, 0x4cb9, 0x4c71, 0x4c49, 0x4c5b, 0x4c28,
+	0x137e, 0x147e, 0x157e, 0x2099, 0xa676, 0x20a1, 0xa886, 0x20a9,
+	0x0004, 0x53a3, 0x157f, 0x147f, 0x137f, 0x2071, 0xa87d, 0xad80,
+	0x000f, 0x700e, 0x7013, 0x0002, 0x7007, 0x0002, 0x700b, 0x0000,
+	0x2e10, 0x1078, 0x13db, 0x2071, 0xa714, 0x7007, 0x0009, 0x0078,
+	0x4cda, 0x7084, 0x8008, 0xa092, 0x001e, 0x00c8, 0x4cda, 0xae90,
+	0x0003, 0xa210, 0x683c, 0x2012, 0x7186, 0x2071, 0xa714, 0x1078,
+	0x4e4c, 0x0078, 0x4cda, 0x7084, 0x8008, 0xa092, 0x000f, 0x00c8,
+	0x4cda, 0xae90, 0x0003, 0x8003, 0xa210, 0x683c, 0x2012, 0x8210,
+	0x6840, 0x2012, 0x7186, 0x2071, 0xa714, 0x1078, 0x4e4c, 0x0078,
+	0x4cda, 0x127e, 0x2091, 0x8000, 0x0068, 0x4c8c, 0x2071, 0x0000,
+	0x7018, 0xd084, 0x00c0, 0x4c8c, 0x7122, 0x683c, 0x7026, 0x6840,
+	0x702a, 0x701b, 0x0001, 0x2091, 0x4080, 0x127f, 0x2071, 0xa714,
+	0x1078, 0x4e4c, 0x0078, 0x4cda, 0x127f, 0x0078, 0x4cda, 0xa18c,
+	0x00ff, 0xa186, 0x0017, 0x0040, 0x4c9d, 0xa186, 0x001e, 0x0040,
+	0x4c9d, 0xa18e, 0x001f, 0x00c0, 0x4cb9, 0x684c, 0xd0cc, 0x0040,
+	0x4cb9, 0x6850, 0xa084, 0x00ff, 0xa086, 0x0001, 0x00c0, 0x4cb9,
+	0x2009, 0x8021, 0x0078, 0x4c1e, 0x6844, 0xa086, 0x0100, 0x00c0,
+	0x4cb9, 0x6868, 0xa005, 0x00c0, 0x4cb9, 0x2009, 0x8020, 0x0078,
+	0x4c1e, 0x2071, 0xa714, 0x1078, 0x4e60, 0x0040, 0x4cda, 0x2071,
+	0xa714, 0x700f, 0x0001, 0x6934, 0xa184, 0x00ff, 0xa086, 0x0003,
+	0x00c0, 0x4cd1, 0x810f, 0xa18c, 0x00ff, 0x8101, 0x0040, 0x4cd1,
+	0x710e, 0x7007, 0x0003, 0x1078, 0x4e80, 0x7050, 0xa086, 0x0100,
+	0x0040, 0x4d95, 0x127e, 0x2091, 0x8000, 0x2071, 0xa714, 0x7008,
+	0xa086, 0x0001, 0x00c0, 0x4cf5, 0x0068, 0x4cf5, 0x2009, 0x000d,
+	0x7030, 0x200a, 0x2091, 0x4080, 0x700b, 0x0000, 0x7004, 0xa086,
+	0x0006, 0x00c0, 0x4cf5, 0x7007, 0x0001, 0x127f, 0x007c, 0x2071,
+	0xa714, 0x1078, 0x4e60, 0x0040, 0x4d20, 0x2071, 0xa835, 0x7084,
+	0x700a, 0x20a9, 0x0020, 0x2099, 0xa836, 0x20a1, 0xa85d, 0x53a3,
+	0x7087, 0x0000, 0x2071, 0xa714, 0x2069, 0xa87d, 0x706c, 0x6826,
+	0x7070, 0x682a, 0x7074, 0x682e, 0x7078, 0x6832, 0x2d10, 0x1078,
+	0x13db, 0x7007, 0x0008, 0x2001, 0xffff, 0x2071, 0xa8c4, 0x7042,
+	0x127f, 0x0078, 0x4cda, 0x2069, 0xa87d, 0x6808, 0xa08e, 0x0000,
+	0x0040, 0x4d81, 0xa08e, 0x0200, 0x0040, 0x4d7f, 0xa08e, 0x0100,
+	0x00c0, 0x4d81, 0x127e, 0x2091, 0x8000, 0x0068, 0x4d7c, 0x2069,
+	0x0000, 0x6818, 0xd084, 0x00c0, 0x4d7c, 0x702c, 0x7130, 0x8108,
+	0xa102, 0x0048, 0x4d4a, 0xa00e, 0x7034, 0x706e, 0x7038, 0x7072,
+	0x0078, 0x4d54, 0x706c, 0xa080, 0x0040, 0x706e, 0x00c8, 0x4d54,
+	0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x6936, 0x700b, 0x0000,
+	0x2001, 0xa85a, 0x2004, 0xa005, 0x00c0, 0x4d73, 0x6934, 0x2069,
+	0xa835, 0x689c, 0x699e, 0x2069, 0xa8c4, 0xa102, 0x00c0, 0x4d6c,
+	0x6844, 0xa005, 0x00d0, 0x4d7a, 0x2001, 0xa85b, 0x200c, 0x810d,
+	0x6946, 0x0078, 0x4d7a, 0x2009, 0x8040, 0x6922, 0x681b, 0x0001,
+	0x2091, 0x4080, 0x7007, 0x0001, 0x127f, 0x0078, 0x4d81, 0x7007,
+	0x0005, 0x007c, 0x701c, 0xa06d, 0x0040, 0x4d93, 0x1078, 0x4e60,
+	0x0040, 0x4d93, 0x7007, 0x0003, 0x1078, 0x4e80, 0x7050, 0xa086,
+	0x0100, 0x0040, 0x4d95, 0x007c, 0x007c, 0x7050, 0xa09e, 0x0100,
+	0x00c0, 0x4d9e, 0x7007, 0x0004, 0x0078, 0x4dbc, 0xa086, 0x0200,
+	0x00c0, 0x4da4, 0x7007, 0x0005, 0x007c, 0x2001, 0xa87f, 0x2004,
+	0xa08e, 0x0100, 0x00c0, 0x4db1, 0x7007, 0x0001, 0x1078, 0x4e4c,
+	0x007c, 0xa08e, 0x0000, 0x0040, 0x4db0, 0xa08e, 0x0200, 0x00c0,
+	0x4db0, 0x7007, 0x0005, 0x007c, 0x1078, 0x4e16, 0x7006, 0x1078,
+	0x4e4c, 0x007c, 0x007c, 0x0e7e, 0x157e, 0x2071, 0xa835, 0x7184,
+	0x81ff, 0x0040, 0x4deb, 0xa006, 0x7086, 0xae80, 0x0003, 0x2071,
+	0x0000, 0x21a8, 0x2014, 0x7226, 0x8000, 0x0070, 0x4de8, 0x2014,
+	0x722a, 0x8000, 0x0070, 0x4de8, 0x2014, 0x722e, 0x8000, 0x0070,
+	0x4de8, 0x2014, 0x723a, 0x8000, 0x0070, 0x4de8, 0x2014, 0x723e,
+	0xa180, 0x8030, 0x7022, 0x157f, 0x0e7f, 0x007c, 0x0e7e, 0x157e,
+	0x2071, 0xa835, 0x7184, 0x81ff, 0x0040, 0x4e13, 0xa006, 0x7086,
+	0xae80, 0x0003, 0x2071, 0x0000, 0x21a8, 0x2014, 0x7226, 0x8000,
+	0x2014, 0x722a, 0x8000, 0x0070, 0x4e0c, 0x2014, 0x723a, 0x8000,
+	0x2014, 0x723e, 0x0078, 0x4e10, 0x2001, 0x8020, 0x0078, 0x4e12,
+	0x2001, 0x8042, 0x7022, 0x157f, 0x0e7f, 0x007c, 0x702c, 0x7130,
+	0x8108, 0xa102, 0x0048, 0x4e23, 0xa00e, 0x7034, 0x706e, 0x7038,
+	0x7072, 0x0078, 0x4e2d, 0x706c, 0xa080, 0x0040, 0x706e, 0x00c8,
+	0x4e2d, 0x7070, 0xa081, 0x0000, 0x7072, 0x7132, 0x700c, 0x8001,
+	0x700e, 0x00c0, 0x4e43, 0x127e, 0x2091, 0x8000, 0x0068, 0x4e46,
+	0x2001, 0x000d, 0x2102, 0x2091, 0x4080, 0x2001, 0x0001, 0x700b,
+	0x0000, 0x127f, 0x007c, 0x2001, 0x0007, 0x007c, 0x2001, 0x0006,
+	0x700b, 0x0001, 0x127f, 0x007c, 0x701c, 0xa06d, 0x0040, 0x4e5f,
+	0x127e, 0x2091, 0x8000, 0x7010, 0x8001, 0x7012, 0x2d04, 0x701e,
+	0xa005, 0x00c0, 0x4e5c, 0x701a, 0x127f, 0x1078, 0x13a4, 0x007c,
+	0x2019, 0x000d, 0x2304, 0x230c, 0xa10e, 0x0040, 0x4e6f, 0x2304,
+	0x230c, 0xa10e, 0x0040, 0x4e6f, 0xa006, 0x0078, 0x4e7f, 0x732c,
+	0x8319, 0x7130, 0xa102, 0x00c0, 0x4e79, 0x2300, 0xa005, 0x0078,
+	0x4e7f, 0x0048, 0x4e7e, 0xa302, 0x0078, 0x4e7f, 0x8002, 0x007c,
+	0x2d00, 0x7026, 0xa080, 0x000d, 0x7056, 0x7053, 0x0000, 0x127e,
+	0x2091, 0x8000, 0x2009, 0xa8d6, 0x2104, 0xc08d, 0x200a, 0x127f,
+	0x1078, 0x13f9, 0x007c, 0x2071, 0xa6e2, 0x7003, 0x0000, 0x7007,
+	0x0000, 0x700f, 0x0000, 0x702b, 0x0001, 0x704f, 0x0000, 0x7053,
+	0x0001, 0x705f, 0x0020, 0x7063, 0x0040, 0x7083, 0x0000, 0x708b,
+	0x0000, 0x708f, 0x0001, 0x70bf, 0x0000, 0x007c, 0x0e7e, 0x2071,
+	0xa6e2, 0x6848, 0xa005, 0x00c0, 0x4ebc, 0x7028, 0xc085, 0x702a,
+	0xa085, 0x0001, 0x0078, 0x4ee1, 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, 0x0e7f, 0x007c, 0x2b78, 0x2071, 0xa6e2, 0x7004, 0x1079,
+	0x4f41, 0x700c, 0x0079, 0x4eec, 0x4ef1, 0x4ee6, 0x4ee6, 0x4ee6,
+	0x4ee6, 0x007c, 0x700c, 0x0079, 0x4ef5, 0x4efa, 0x4f3f, 0x4f3f,
+	0x4f40, 0x4f40, 0x7830, 0x7930, 0xa106, 0x0040, 0x4f04, 0x7830,
+	0x7930, 0xa106, 0x00c0, 0x4f2a, 0x7030, 0xa10a, 0x0040, 0x4f2a,
+	0x00c8, 0x4f0c, 0x712c, 0xa10a, 0xa18a, 0x0002, 0x00c8, 0x4f2b,
+	0x1078, 0x1370, 0x0040, 0x4f2a, 0x2d00, 0x705a, 0x7063, 0x0040,
+	0x2001, 0x0003, 0x7057, 0x0000, 0x127e, 0x007e, 0x2091, 0x8000,
+	0x2009, 0xa8d6, 0x2104, 0xc085, 0x200a, 0x007f, 0x700e, 0x127f,
+	0x1078, 0x13f9, 0x007c, 0x1078, 0x1370, 0x0040, 0x4f2a, 0x2d00,
+	0x705a, 0x1078, 0x1370, 0x00c0, 0x4f37, 0x0078, 0x4f16, 0x2d00,
+	0x7086, 0x7063, 0x0080, 0x2001, 0x0004, 0x0078, 0x4f1a, 0x007c,
+	0x007c, 0x4f52, 0x4f53, 0x4f8a, 0x4f8b, 0x4f3f, 0x4fc1, 0x4fc6,
+	0x4ffd, 0x4ffe, 0x5019, 0x501a, 0x501b, 0x501c, 0x501d, 0x501e,
+	0x509e, 0x50c8, 0x007c, 0x700c, 0x0079, 0x4f56, 0x4f5b, 0x4f5e,
+	0x4f6e, 0x4f89, 0x4f89, 0x1078, 0x4ef2, 0x007c, 0x127e, 0x8001,
+	0x700e, 0x7058, 0x007e, 0x1078, 0x5464, 0x0040, 0x4f6b, 0x2091,
+	0x8000, 0x1078, 0x4ef2, 0x0d7f, 0x0078, 0x4f77, 0x127e, 0x8001,
+	0x700e, 0x1078, 0x5464, 0x7058, 0x2068, 0x7084, 0x705a, 0x6803,
+	0x0000, 0x6807, 0x0000, 0x6834, 0xa084, 0x00ff, 0xa08a, 0x0020,
+	0x00c8, 0x4f86, 0x1079, 0x4fa1, 0x127f, 0x007c, 0x127f, 0x1078,
+	0x501f, 0x007c, 0x007c, 0x007c, 0x0e7e, 0x2071, 0xa6e2, 0x700c,
+	0x0079, 0x4f92, 0x4f97, 0x4f97, 0x4f97, 0x4f99, 0x4f9d, 0x0e7f,
+	0x007c, 0x700f, 0x0001, 0x0078, 0x4f9f, 0x700f, 0x0002, 0x0e7f,
+	0x007c, 0x501f, 0x501f, 0x503b, 0x501f, 0x5171, 0x501f, 0x501f,
+	0x501f, 0x501f, 0x501f, 0x503b, 0x51bb, 0x5208, 0x5261, 0x5277,
+	0x501f, 0x501f, 0x5057, 0x503b, 0x501f, 0x501f, 0x5078, 0x5338,
+	0x5356, 0x501f, 0x5057, 0x501f, 0x501f, 0x501f, 0x501f, 0x506d,
+	0x5356, 0x7020, 0x2068, 0x1078, 0x13a4, 0x007c, 0x700c, 0x0079,
+	0x4fc9, 0x4fce, 0x4fd1, 0x4fe1, 0x4ffc, 0x4ffc, 0x1078, 0x4ef2,
+	0x007c, 0x127e, 0x8001, 0x700e, 0x7058, 0x007e, 0x1078, 0x5464,
+	0x0040, 0x4fde, 0x2091, 0x8000, 0x1078, 0x4ef2, 0x0d7f, 0x0078,
+	0x4fea, 0x127e, 0x8001, 0x700e, 0x1078, 0x5464, 0x7058, 0x2068,
+	0x7084, 0x705a, 0x6803, 0x0000, 0x6807, 0x0000, 0x6834, 0xa084,
+	0x00ff, 0xa08a, 0x001a, 0x00c8, 0x4ff9, 0x1079, 0x4fff, 0x127f,
+	0x007c, 0x127f, 0x1078, 0x501f, 0x007c, 0x007c, 0x007c, 0x501f,
+	0x503b, 0x515b, 0x501f, 0x503b, 0x501f, 0x503b, 0x503b, 0x501f,
+	0x503b, 0x515b, 0x503b, 0x503b, 0x503b, 0x503b, 0x503b, 0x501f,
+	0x503b, 0x515b, 0x501f, 0x501f, 0x503b, 0x501f, 0x501f, 0x501f,
+	0x503b, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x007c, 0x7007,
+	0x0001, 0x6838, 0xa084, 0x00ff, 0xc0d5, 0x683a, 0x127e, 0x2091,
+	0x8000, 0x1078, 0x4a73, 0x127f, 0x007c, 0x7007, 0x0001, 0x6838,
+	0xa084, 0x00ff, 0xc0e5, 0x683a, 0x127e, 0x2091, 0x8000, 0x1078,
+	0x4a73, 0x127f, 0x007c, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff,
+	0xc0ed, 0x683a, 0x127e, 0x2091, 0x8000, 0x1078, 0x4a73, 0x127f,
+	0x007c, 0x7007, 0x0001, 0x6838, 0xa084, 0x00ff, 0xc0dd, 0x683a,
+	0x127e, 0x2091, 0x8000, 0x1078, 0x4a73, 0x127f, 0x007c, 0x6834,
+	0x8007, 0xa084, 0x00ff, 0x0040, 0x502d, 0x8001, 0x00c0, 0x5064,
+	0x7007, 0x0001, 0x0078, 0x513a, 0x7007, 0x0006, 0x7012, 0x2d00,
+	0x7016, 0x701a, 0x704b, 0x513a, 0x007c, 0x684c, 0xa084, 0x00c0,
+	0xa086, 0x00c0, 0x00c0, 0x5078, 0x7007, 0x0001, 0x0078, 0x5373,
+	0x2d00, 0x7016, 0x701a, 0x20a9, 0x0004, 0xa080, 0x0024, 0x2098,
+	0x20a1, 0xa70d, 0x53a3, 0x6858, 0x7012, 0xa082, 0x0401, 0x00c8,
+	0x5049, 0x6884, 0xa08a, 0x0002, 0x00c8, 0x5049, 0x82ff, 0x00c0,
+	0x509a, 0x6888, 0x698c, 0xa105, 0x0040, 0x509a, 0x2001, 0x510a,
+	0x0078, 0x509d, 0xa280, 0x5100, 0x2004, 0x70c6, 0x7010, 0xa015,
+	0x0040, 0x50e8, 0x1078, 0x1370, 0x00c0, 0x50a9, 0x7007, 0x000f,
+	0x007c, 0x2d00, 0x7022, 0x70c4, 0x2060, 0x6000, 0x6836, 0x6004,
+	0xad00, 0x7096, 0x6008, 0xa20a, 0x00c8, 0x50b8, 0xa00e, 0x2200,
+	0x7112, 0x620c, 0x8003, 0x800b, 0xa296, 0x0004, 0x0040, 0x50c1,
+	0xa108, 0x719a, 0x810b, 0x719e, 0xae90, 0x0022, 0x1078, 0x13db,
+	0x7090, 0xa08e, 0x0100, 0x0040, 0x50dc, 0xa086, 0x0200, 0x0040,
+	0x50d4, 0x7007, 0x0010, 0x007c, 0x7020, 0x2068, 0x1078, 0x13a4,
+	0x7014, 0x2068, 0x0078, 0x5049, 0x7020, 0x2068, 0x7018, 0x6802,
+	0x6807, 0x0000, 0x2d08, 0x2068, 0x6906, 0x711a, 0x0078, 0x509e,
+	0x7014, 0x2068, 0x7007, 0x0001, 0x6884, 0xa005, 0x00c0, 0x50f7,
+	0x6888, 0x698c, 0xa105, 0x0040, 0x50f7, 0x1078, 0x510e, 0x6834,
+	0xa084, 0x00ff, 0xa086, 0x001e, 0x0040, 0x5373, 0x0078, 0x513a,
+	0x5102, 0x5106, 0x0002, 0x0011, 0x0007, 0x0004, 0x000a, 0x000f,
+	0x0005, 0x0006, 0x000a, 0x0011, 0x0005, 0x0004, 0x0f7e, 0x0e7e,
+	0x0c7e, 0x077e, 0x067e, 0x6f88, 0x6e8c, 0x6804, 0x2060, 0xacf0,
+	0x0021, 0xacf8, 0x0027, 0x2009, 0x0005, 0x700c, 0x7816, 0x7008,
+	0x7812, 0x7004, 0x7806, 0x7000, 0x7802, 0x7e0e, 0x7f0a, 0x8109,
+	0x0040, 0x5130, 0xaef2, 0x0004, 0xaffa, 0x0006, 0x0078, 0x511d,
+	0x6004, 0xa065, 0x00c0, 0x5117, 0x067f, 0x077f, 0x0c7f, 0x0e7f,
+	0x0f7f, 0x007c, 0x2009, 0xa62f, 0x210c, 0x81ff, 0x00c0, 0x5155,
+	0x6838, 0xa084, 0x00ff, 0x683a, 0x1078, 0x4353, 0x00c0, 0x5149,
+	0x007c, 0x1078, 0x4b51, 0x127e, 0x2091, 0x8000, 0x1078, 0x8f7d,
+	0x1078, 0x4a73, 0x127f, 0x0078, 0x5148, 0x2001, 0x0028, 0x2009,
+	0x0000, 0x0078, 0x5149, 0x7018, 0x6802, 0x2d08, 0x2068, 0x6906,
+	0x711a, 0x7010, 0x8001, 0x7012, 0x0040, 0x516a, 0x7007, 0x0006,
+	0x0078, 0x5170, 0x7014, 0x2068, 0x7007, 0x0001, 0x7048, 0x107a,
+	0x007c, 0x7007, 0x0001, 0x6944, 0x810f, 0xa18c, 0x00ff, 0x6848,
+	0xa084, 0x00ff, 0x20a9, 0x0001, 0xa096, 0x0001, 0x0040, 0x519a,
+	0x2009, 0x0000, 0x20a9, 0x00ff, 0xa096, 0x0002, 0x0040, 0x519a,
+	0xa005, 0x00c0, 0x51ad, 0x6944, 0x810f, 0xa18c, 0x00ff, 0x1078,
+	0x45c4, 0x00c0, 0x51ad, 0x067e, 0x6e50, 0x1078, 0x46b3, 0x067f,
+	0x0078, 0x51ad, 0x047e, 0x2011, 0xa60c, 0x2224, 0xc484, 0xc48c,
+	0x2412, 0x047f, 0x0c7e, 0x1078, 0x45c4, 0x00c0, 0x51a9, 0x1078,
+	0x4852, 0x8108, 0x00f0, 0x51a3, 0x0c7f, 0x684c, 0xd084, 0x00c0,
+	0x51b4, 0x1078, 0x13a4, 0x007c, 0x127e, 0x2091, 0x8000, 0x1078,
+	0x4a73, 0x127f, 0x007c, 0x127e, 0x2091, 0x8000, 0x7007, 0x0001,
+	0x2001, 0xa653, 0x2004, 0xd0a4, 0x0040, 0x51ff, 0x2061, 0xa933,
+	0x6100, 0xd184, 0x0040, 0x51df, 0x6858, 0xa084, 0x00ff, 0x00c0,
+	0x5202, 0x6000, 0xd084, 0x0040, 0x51ff, 0x6004, 0xa005, 0x00c0,
+	0x5205, 0x6003, 0x0000, 0x600b, 0x0000, 0x0078, 0x51fc, 0x2011,
+	0x0001, 0x6860, 0xa005, 0x00c0, 0x51e7, 0x2001, 0x001e, 0x8000,
+	0x6016, 0x6858, 0xa084, 0x00ff, 0x0040, 0x51ff, 0x6006, 0x6858,
+	0x8007, 0xa084, 0x00ff, 0x0040, 0x51ff, 0x600a, 0x6858, 0x8000,
+	0x00c0, 0x51fb, 0xc28d, 0x6202, 0x127f, 0x0078, 0x5453, 0x127f,
+	0x0078, 0x544b, 0x127f, 0x0078, 0x5443, 0x127f, 0x0078, 0x5447,
+	0x127e, 0x2091, 0x8000, 0x7007, 0x0001, 0x2001, 0xa653, 0x2004,
+	0xd0a4, 0x0040, 0x525e, 0x2061, 0xa933, 0x6000, 0xd084, 0x0040,
+	0x525e, 0x6204, 0x6308, 0xd08c, 0x00c0, 0x5250, 0x6c48, 0xa484,
+	0x0003, 0x0040, 0x5236, 0x6958, 0xa18c, 0x00ff, 0x8001, 0x00c0,
+	0x522f, 0x2100, 0xa210, 0x0048, 0x525b, 0x0078, 0x5236, 0x8001,
+	0x00c0, 0x525b, 0x2100, 0xa212, 0x0048, 0x525b, 0xa484, 0x000c,
+	0x0040, 0x5250, 0x6958, 0x810f, 0xa18c, 0x00ff, 0xa082, 0x0004,
+	0x00c0, 0x5248, 0x2100, 0xa318, 0x0048, 0x525b, 0x0078, 0x5250,
+	0xa082, 0x0004, 0x00c0, 0x525b, 0x2100, 0xa31a, 0x0048, 0x525b,
+	0x6860, 0xa005, 0x0040, 0x5256, 0x8000, 0x6016, 0x6206, 0x630a,
+	0x127f, 0x0078, 0x5453, 0x127f, 0x0078, 0x544f, 0x127f, 0x0078,
+	0x544b, 0x127e, 0x2091, 0x8000, 0x7007, 0x0001, 0x2061, 0xa933,
+	0x6300, 0xd38c, 0x00c0, 0x5271, 0x6308, 0x8318, 0x0048, 0x5274,
+	0x630a, 0x127f, 0x0078, 0x5461, 0x127f, 0x0078, 0x544f, 0x127e,
+	0x0c7e, 0x2091, 0x8000, 0x7007, 0x0001, 0x684c, 0xd0ac, 0x0040,
+	0x528b, 0x0c7e, 0x2061, 0xa933, 0x6000, 0xa084, 0xfcff, 0x6002,
+	0x0c7f, 0x0078, 0x52ba, 0x6858, 0xa005, 0x0040, 0x52d1, 0x685c,
+	0xa065, 0x0040, 0x52cd, 0x2001, 0xa62f, 0x2004, 0xa005, 0x0040,
+	0x529d, 0x1078, 0x8ec6, 0x0078, 0x52ab, 0x6013, 0x0400, 0x6037,
+	0x0000, 0x694c, 0xd1a4, 0x0040, 0x52a7, 0x6950, 0x6136, 0x2009,
+	0x0041, 0x1078, 0x775c, 0x6958, 0xa18c, 0xff00, 0xa186, 0x2000,
+	0x00c0, 0x52ba, 0x027e, 0x2009, 0x0000, 0x2011, 0xfdff, 0x1078,
+	0x5bf1, 0x027f, 0x684c, 0xd0c4, 0x0040, 0x52c9, 0x2061, 0xa933,
+	0x6000, 0xd08c, 0x00c0, 0x52c9, 0x6008, 0x8000, 0x0048, 0x52cd,
+	0x600a, 0x0c7f, 0x127f, 0x0078, 0x5453, 0x0c7f, 0x127f, 0x0078,
+	0x544b, 0x6954, 0xa186, 0x0045, 0x0040, 0x5306, 0xa186, 0x002a,
+	0x00c0, 0x52e1, 0x2001, 0xa60c, 0x200c, 0xc194, 0x2102, 0x0078,
+	0x52ba, 0xa186, 0x0020, 0x0040, 0x52fa, 0xa186, 0x0029, 0x0040,
+	0x52ed, 0xa186, 0x002d, 0x00c0, 0x52cd, 0x6944, 0xa18c, 0xff00,
+	0x810f, 0x1078, 0x45c4, 0x00c0, 0x52ba, 0x6000, 0xc0e4, 0x6002,
+	0x0078, 0x52ba, 0x685c, 0xa065, 0x0040, 0x52cd, 0x6007, 0x0024,
+	0x2001, 0xa8a3, 0x2004, 0x6016, 0x0078, 0x52ba, 0x685c, 0xa065,
+	0x0040, 0x52cd, 0x0e7e, 0x6860, 0xa075, 0x2001, 0xa62f, 0x2004,
+	0xa005, 0x0040, 0x531e, 0x1078, 0x8ec6, 0x8eff, 0x0040, 0x531b,
+	0x2e60, 0x1078, 0x8ec6, 0x0e7f, 0x0078, 0x52ba, 0x6024, 0xc0dc,
+	0xc0d5, 0x6026, 0x2e60, 0x6007, 0x003a, 0x6870, 0xa005, 0x0040,
+	0x532f, 0x6007, 0x003b, 0x6874, 0x602a, 0x6878, 0x6012, 0x6003,
+	0x0001, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0e7f, 0x0078, 0x52ba,
+	0x2061, 0xa933, 0x6000, 0xd084, 0x0040, 0x5352, 0xd08c, 0x00c0,
+	0x5461, 0x2091, 0x8000, 0x6204, 0x8210, 0x0048, 0x534c, 0x6206,
+	0x2091, 0x8001, 0x0078, 0x5461, 0x2091, 0x8001, 0x6853, 0x0016,
+	0x0078, 0x545a, 0x6853, 0x0007, 0x0078, 0x545a, 0x6834, 0x8007,
+	0xa084, 0x00ff, 0x00c0, 0x5360, 0x1078, 0x502d, 0x0078, 0x5372,
+	0x2030, 0x8001, 0x00c0, 0x536a, 0x7007, 0x0001, 0x1078, 0x5373,
+	0x0078, 0x5372, 0x7007, 0x0006, 0x7012, 0x2d00, 0x7016, 0x701a,
+	0x704b, 0x5373, 0x007c, 0x0e7e, 0x127e, 0x2091, 0x8000, 0xa03e,
+	0x2009, 0xa62f, 0x210c, 0x81ff, 0x00c0, 0x53ff, 0x2009, 0xa60c,
+	0x210c, 0xd194, 0x00c0, 0x5431, 0x6848, 0x2070, 0xae82, 0xad00,
+	0x0048, 0x53ef, 0x2001, 0xa616, 0x2004, 0xae02, 0x00c8, 0x53ef,
+	0x2061, 0xa933, 0x6100, 0xa184, 0x0301, 0xa086, 0x0001, 0x00c0,
+	0x53d2, 0x711c, 0xa186, 0x0006, 0x00c0, 0x53da, 0x7018, 0xa005,
+	0x0040, 0x53ff, 0x2004, 0xd0e4, 0x00c0, 0x542b, 0x7024, 0xd0dc,
+	0x00c0, 0x5435, 0x6853, 0x0000, 0x6803, 0x0000, 0x2d08, 0x7010,
+	0xa005, 0x00c0, 0x53be, 0x7112, 0x684c, 0xd0f4, 0x00c0, 0x5439,
+	0x2e60, 0x1078, 0x5b27, 0x127f, 0x0e7f, 0x007c, 0x2068, 0x6800,
+	0xa005, 0x00c0, 0x53be, 0x6902, 0x2168, 0x684c, 0xd0f4, 0x00c0,
+	0x5439, 0x127f, 0x0e7f, 0x007c, 0x127f, 0x0e7f, 0x6853, 0x0006,
+	0x0078, 0x545a, 0xd184, 0x0040, 0x53cc, 0xd1c4, 0x00c0, 0x53f3,
+	0x0078, 0x53f7, 0x6944, 0xa18c, 0xff00, 0x810f, 0x1078, 0x45c4,
+	0x00c0, 0x542b, 0x6000, 0xd0e4, 0x00c0, 0x542b, 0x711c, 0xa186,
+	0x0007, 0x00c0, 0x53ef, 0x6853, 0x0002, 0x0078, 0x542d, 0x6853,
+	0x0008, 0x0078, 0x542d, 0x6853, 0x000e, 0x0078, 0x542d, 0x6853,
+	0x0017, 0x0078, 0x542d, 0x6853, 0x0035, 0x0078, 0x542d, 0x2001,
+	0xa672, 0x2004, 0xd0fc, 0x0040, 0x5427, 0x6848, 0x2070, 0xae82,
+	0xad00, 0x0048, 0x5427, 0x6058, 0xae02, 0x00c8, 0x5427, 0x711c,
+	0xa186, 0x0006, 0x00c0, 0x5427, 0x7018, 0xa005, 0x0040, 0x5427,
+	0x2004, 0xd0bc, 0x0040, 0x5427, 0x2039, 0x0001, 0x7000, 0xa086,
+	0x0007, 0x00c0, 0x537e, 0x7003, 0x0002, 0x0078, 0x537e, 0x6853,
+	0x0028, 0x0078, 0x542d, 0x6853, 0x0029, 0x127f, 0x0e7f, 0x0078,
+	0x545a, 0x6853, 0x002a, 0x0078, 0x542d, 0x6853, 0x0045, 0x0078,
+	0x542d, 0x2e60, 0x2019, 0x0002, 0x6017, 0x0014, 0x1078, 0x9dc7,
+	0x127f, 0x0e7f, 0x007c, 0x2009, 0x003e, 0x0078, 0x5455, 0x2009,
+	0x0004, 0x0078, 0x5455, 0x2009, 0x0006, 0x0078, 0x5455, 0x2009,
+	0x0016, 0x0078, 0x5455, 0x2009, 0x0001, 0x6854, 0xa084, 0xff00,
+	0xa105, 0x6856, 0x2091, 0x8000, 0x1078, 0x4a73, 0x2091, 0x8001,
+	0x007c, 0x1078, 0x13a4, 0x007c, 0x702c, 0x7130, 0x8108, 0xa102,
+	0x0048, 0x5471, 0xa00e, 0x7034, 0x7072, 0x7038, 0x7076, 0x0078,
+	0x547d, 0x7070, 0xa080, 0x0040, 0x7072, 0x00c8, 0x547d, 0x7074,
+	0xa081, 0x0000, 0x7076, 0xa085, 0x0001, 0x7932, 0x7132, 0x007c,
+	0x0d7e, 0x1078, 0x5b1e, 0x0d7f, 0x007c, 0x0d7e, 0x2011, 0x0004,
+	0x2204, 0xa085, 0x8002, 0x2012, 0x0d7f, 0x007c, 0x20e1, 0x0002,
+	0x3d08, 0x20e1, 0x2000, 0x3d00, 0xa084, 0x7000, 0x0040, 0x549c,
+	0xa086, 0x1000, 0x00c0, 0x54d3, 0x20e1, 0x0000, 0x3d00, 0xa094,
+	0xff00, 0x8217, 0xa084, 0xf000, 0xa086, 0x3000, 0x00c0, 0x54b7,
+	0xa184, 0xff00, 0x8007, 0xa086, 0x0008, 0x00c0, 0x54d3, 0x1078,
+	0x29bb, 0x00c0, 0x54d3, 0x1078, 0x56b2, 0x0078, 0x54ce, 0x20e1,
+	0x0004, 0x3d60, 0xd1bc, 0x00c0, 0x54be, 0x3e60, 0xac84, 0x000f,
+	0x00c0, 0x54d3, 0xac82, 0xad00, 0x0048, 0x54d3, 0x6858, 0xac02,
+	0x00c8, 0x54d3, 0x2009, 0x0047, 0x1078, 0x775c, 0x7a1c, 0xd284,
+	0x00c0, 0x548e, 0x007c, 0xa016, 0x1078, 0x15fa, 0x0078, 0x54ce,
+	0x0078, 0x54d3, 0x781c, 0xd08c, 0x0040, 0x5502, 0x157e, 0x137e,
+	0x147e, 0x20e1, 0x3000, 0x3d20, 0x3e28, 0xa584, 0x0076, 0x00c0,
+	0x5518, 0xa484, 0x7000, 0xa086, 0x1000, 0x00c0, 0x5507, 0x1078,
+	0x554e, 0x0040, 0x5518, 0x20e1, 0x3000, 0x7828, 0x7828, 0x1078,
+	0x556c, 0x147f, 0x137f, 0x157f, 0x2009, 0xa8b9, 0x2104, 0xa005,
+	0x00c0, 0x5503, 0x007c, 0x1078, 0x62d1, 0x0078, 0x5502, 0xa484,
+	0x7000, 0x00c0, 0x5518, 0x1078, 0x554e, 0x0040, 0x552c, 0x7000,
+	0xa084, 0xff00, 0xa086, 0x8100, 0x0040, 0x54f3, 0x0078, 0x552c,
+	0x1078, 0xa54f, 0xd5a4, 0x0040, 0x5528, 0x047e, 0x1078, 0x1b22,
+	0x047f, 0x20e1, 0x9010, 0x2001, 0x0138, 0x2202, 0x0078, 0x5530,
+	0x1078, 0x554e, 0x6883, 0x0000, 0x20e1, 0x3000, 0x7828, 0x7828,
+	0x1078, 0x5537, 0x147f, 0x137f, 0x157f, 0x0078, 0x5502, 0x2001,
+	0xa60e, 0x2004, 0xd08c, 0x0040, 0x554d, 0x2001, 0xa600, 0x2004,
+	0xa086, 0x0003, 0x00c0, 0x554d, 0x027e, 0x037e, 0x2011, 0x8048,
+	0x2518, 0x1078, 0x361b, 0x037f, 0x027f, 0x007c, 0xa484, 0x01ff,
+	0x6882, 0xa005, 0x0040, 0x5560, 0xa080, 0x001f, 0xa084, 0x03f8,
+	0x80ac, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5, 0x007c,
+	0x20a9, 0x000c, 0x20e1, 0x1000, 0x2ea0, 0x2099, 0x020a, 0x53a5,
+	0xa085, 0x0001, 0x0078, 0x555f, 0x7000, 0xa084, 0xff00, 0xa08c,
+	0xf000, 0x8007, 0xa196, 0x0000, 0x00c0, 0x5579, 0x0078, 0x57ba,
+	0x007c, 0xa196, 0x2000, 0x00c0, 0x558a, 0x6900, 0xa18e, 0x0001,
+	0x00c0, 0x5586, 0x1078, 0x3aec, 0x0078, 0x5578, 0x1078, 0x5592,
+	0x0078, 0x5578, 0xa196, 0x8000, 0x00c0, 0x5578, 0x1078, 0x5871,
+	0x0078, 0x5578, 0x0c7e, 0x7110, 0xa18c, 0xff00, 0x810f, 0xa196,
+	0x0001, 0x0040, 0x559f, 0xa196, 0x0023, 0x00c0, 0x56aa, 0xa08e,
+	0x0023, 0x00c0, 0x55d4, 0x1078, 0x591d, 0x0040, 0x56aa, 0x7124,
+	0x610a, 0x7030, 0xa08e, 0x0200, 0x00c0, 0x55b8, 0x7034, 0xa005,
+	0x00c0, 0x56aa, 0x2009, 0x0015, 0x1078, 0x775c, 0x0078, 0x56aa,
+	0xa08e, 0x0214, 0x0040, 0x55c0, 0xa08e, 0x0210, 0x00c0, 0x55c6,
+	0x2009, 0x0015, 0x1078, 0x775c, 0x0078, 0x56aa, 0xa08e, 0x0100,
+	0x00c0, 0x56aa, 0x7034, 0xa005, 0x00c0, 0x56aa, 0x2009, 0x0016,
+	0x1078, 0x775c, 0x0078, 0x56aa, 0xa08e, 0x0022, 0x00c0, 0x56aa,
+	0x7030, 0xa08e, 0x0300, 0x00c0, 0x55e5, 0x7034, 0xa005, 0x00c0,
+	0x56aa, 0x2009, 0x0017, 0x0078, 0x5676, 0xa08e, 0x0500, 0x00c0,
+	0x55f1, 0x7034, 0xa005, 0x00c0, 0x56aa, 0x2009, 0x0018, 0x0078,
+	0x5676, 0xa08e, 0x2010, 0x00c0, 0x55f9, 0x2009, 0x0019, 0x0078,
+	0x5676, 0xa08e, 0x2110, 0x00c0, 0x5601, 0x2009, 0x001a, 0x0078,
+	0x5676, 0xa08e, 0x5200, 0x00c0, 0x560d, 0x7034, 0xa005, 0x00c0,
+	0x56aa, 0x2009, 0x001b, 0x0078, 0x5676, 0xa08e, 0x5000, 0x00c0,
+	0x5619, 0x7034, 0xa005, 0x00c0, 0x56aa, 0x2009, 0x001c, 0x0078,
+	0x5676, 0xa08e, 0x1300, 0x00c0, 0x5621, 0x2009, 0x0034, 0x0078,
+	0x5676, 0xa08e, 0x1200, 0x00c0, 0x562d, 0x7034, 0xa005, 0x00c0,
+	0x56aa, 0x2009, 0x0024, 0x0078, 0x5676, 0xa08c, 0xff00, 0xa18e,
+	0x2400, 0x00c0, 0x5637, 0x2009, 0x002d, 0x0078, 0x5676, 0xa08c,
+	0xff00, 0xa18e, 0x5300, 0x00c0, 0x5641, 0x2009, 0x002a, 0x0078,
+	0x5676, 0xa08e, 0x0f00, 0x00c0, 0x5649, 0x2009, 0x0020, 0x0078,
+	0x5676, 0xa08e, 0x5300, 0x00c0, 0x564f, 0x0078, 0x566c, 0xa08e,
+	0x6104, 0x00c0, 0x566c, 0x2011, 0xab8d, 0x8208, 0x2204, 0xa082,
+	0x0004, 0x20a8, 0x95ac, 0x95ac, 0x2011, 0x8015, 0x211c, 0x8108,
+	0x047e, 0x2124, 0x1078, 0x361b, 0x047f, 0x8108, 0x00f0, 0x565c,
+	0x2009, 0x0023, 0x0078, 0x5676, 0xa08e, 0x6000, 0x00c0, 0x5674,
+	0x2009, 0x003f, 0x0078, 0x5676, 0x2009, 0x001d, 0x017e, 0x2011,
+	0xab83, 0x2204, 0x8211, 0x220c, 0x1078, 0x254d, 0x00c0, 0x56ac,
+	0x1078, 0x455c, 0x00c0, 0x56ac, 0x6612, 0x6516, 0x86ff, 0x0040,
+	0x569c, 0x017f, 0x017e, 0xa186, 0x0017, 0x00c0, 0x569c, 0x686c,
+	0xa606, 0x00c0, 0x569c, 0x6870, 0xa506, 0xa084, 0xff00, 0x00c0,
+	0x569c, 0x6000, 0xc0f5, 0x6002, 0x0c7e, 0x1078, 0x76c7, 0x0040,
+	0x56af, 0x017f, 0x611a, 0x601f, 0x0004, 0x7120, 0x610a, 0x017f,
+	0x1078, 0x775c, 0x0c7f, 0x007c, 0x017f, 0x0078, 0x56aa, 0x0c7f,
+	0x0078, 0x56ac, 0x0c7e, 0x1078, 0x570f, 0x00c0, 0x570d, 0xa28e,
+	0x0033, 0x00c0, 0x56de, 0x1078, 0x591d, 0x0040, 0x570d, 0x7124,
+	0x610a, 0x7030, 0xa08e, 0x0200, 0x00c0, 0x56d0, 0x7034, 0xa005,
+	0x00c0, 0x570d, 0x2009, 0x0015, 0x1078, 0x775c, 0x0078, 0x570d,
+	0xa08e, 0x0100, 0x00c0, 0x570d, 0x7034, 0xa005, 0x00c0, 0x570d,
+	0x2009, 0x0016, 0x1078, 0x775c, 0x0078, 0x570d, 0xa28e, 0x0032,
+	0x00c0, 0x570d, 0x7030, 0xa08e, 0x1400, 0x00c0, 0x570d, 0x2009,
+	0x0038, 0x017e, 0x2011, 0xab83, 0x2204, 0x8211, 0x220c, 0x1078,
+	0x254d, 0x00c0, 0x570c, 0x1078, 0x455c, 0x00c0, 0x570c, 0x6612,
+	0x6516, 0x0c7e, 0x1078, 0x76c7, 0x0040, 0x570b, 0x017f, 0x611a,
+	0x601f, 0x0004, 0x7120, 0x610a, 0x017f, 0x1078, 0x775c, 0x1078,
+	0x62d1, 0x0078, 0x570d, 0x0c7f, 0x017f, 0x0c7f, 0x007c, 0x0f7e,
+	0x0d7e, 0x027e, 0x017e, 0x137e, 0x147e, 0x157e, 0x3c00, 0x007e,
+	0x2079, 0x0030, 0x2069, 0x0200, 0x1078, 0x1c6a, 0x00c0, 0x5750,
+	0x1078, 0x1b40, 0x0040, 0x575d, 0x7908, 0xa18c, 0x1fff, 0xa182,
+	0x0011, 0x00c8, 0x575a, 0x20a9, 0x000c, 0x20e1, 0x0000, 0x2ea0,
+	0x2099, 0x020a, 0x53a5, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004,
+	0x7a0c, 0x7808, 0xa080, 0x0007, 0xa084, 0x1ff8, 0xa08a, 0x0140,
+	0x10c8, 0x1332, 0x80ac, 0x20e1, 0x6000, 0x2099, 0x020a, 0x53a5,
+	0x20e1, 0x7000, 0x6828, 0x6828, 0x7803, 0x0004, 0xa294, 0x0070,
+	0x007f, 0x20e0, 0x157f, 0x147f, 0x137f, 0x017f, 0x027f, 0x0d7f,
+	0x0f7f, 0x007c, 0xa016, 0x1078, 0x15fa, 0xa085, 0x0001, 0x0078,
+	0x5750, 0x047e, 0x0e7e, 0x0d7e, 0x2028, 0x2130, 0xa696, 0x00ff,
+	0x00c0, 0x5782, 0xa596, 0xfffd, 0x00c0, 0x5772, 0x2009, 0x007f,
+	0x0078, 0x57b5, 0xa596, 0xfffe, 0x00c0, 0x577a, 0x2009, 0x007e,
+	0x0078, 0x57b5, 0xa596, 0xfffc, 0x00c0, 0x5782, 0x2009, 0x0080,
+	0x0078, 0x57b5, 0x2011, 0x0000, 0x2021, 0x0081, 0x20a9, 0x007e,
+	0x2071, 0xa7b6, 0x2e1c, 0x83ff, 0x00c0, 0x5794, 0x82ff, 0x00c0,
+	0x57a9, 0x2410, 0x0078, 0x57a9, 0x2368, 0x6f10, 0x007e, 0x2100,
+	0xa706, 0x007f, 0x6b14, 0x00c0, 0x57a3, 0xa346, 0x00c0, 0x57a3,
+	0x2408, 0x0078, 0x57b5, 0x87ff, 0x00c0, 0x57a9, 0x83ff, 0x0040,
+	0x578e, 0x8420, 0x8e70, 0x00f0, 0x578a, 0x82ff, 0x00c0, 0x57b4,
+	0xa085, 0x0001, 0x0078, 0x57b6, 0x2208, 0xa006, 0x0d7f, 0x0e7f,
+	0x047f, 0x007c, 0xa084, 0x0007, 0x0079, 0x57bf, 0x007c, 0x57c7,
+	0x57c7, 0x57c7, 0x5933, 0x57c7, 0x57c8, 0x57e1, 0x5858, 0x007c,
+	0x7110, 0xd1bc, 0x0040, 0x57e0, 0x7120, 0x2160, 0xac8c, 0x000f,
+	0x00c0, 0x57e0, 0xac8a, 0xad00, 0x0048, 0x57e0, 0x6858, 0xac02,
+	0x00c8, 0x57e0, 0x7124, 0x610a, 0x2009, 0x0046, 0x1078, 0x775c,
+	0x007c, 0x0c7e, 0xa484, 0x01ff, 0x0040, 0x5833, 0x7110, 0xd1bc,
+	0x00c0, 0x5833, 0x2011, 0xab83, 0x2204, 0x8211, 0x220c, 0x1078,
+	0x254d, 0x00c0, 0x5833, 0x1078, 0x455c, 0x00c0, 0x5833, 0x6612,
+	0x6516, 0x6000, 0xd0ec, 0x00c0, 0x5833, 0x6204, 0xa294, 0xff00,
+	0x8217, 0xa286, 0x0006, 0x00c0, 0x5818, 0x0c7e, 0x1078, 0x76c7,
+	0x017f, 0x0040, 0x5835, 0x611a, 0x601f, 0x0006, 0x7120, 0x610a,
+	0x7130, 0x6122, 0x2009, 0x0044, 0x1078, 0x775c, 0x0078, 0x5833,
+	0x0c7e, 0x1078, 0x76c7, 0x017f, 0x0040, 0x5833, 0x611a, 0x601f,
+	0x0004, 0x7120, 0x610a, 0xa286, 0x0004, 0x00c0, 0x582b, 0x6007,
+	0x0005, 0x0078, 0x582d, 0x6007, 0x0001, 0x6003, 0x0001, 0x1078,
+	0x5dd7, 0x1078, 0x62d1, 0x0c7f, 0x007c, 0x2001, 0xa60d, 0x2004,
+	0xd0ec, 0x0040, 0x583f, 0x2011, 0x8049, 0x1078, 0x361b, 0x0c7e,
+	0x1078, 0x9187, 0x017f, 0x0040, 0x5833, 0x611a, 0x601f, 0x0006,
+	0x7120, 0x610a, 0x7130, 0x6122, 0x6013, 0x0300, 0x6003, 0x0001,
+	0x6007, 0x0041, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0078, 0x5833,
+	0x7110, 0xd1bc, 0x0040, 0x5870, 0x7020, 0x2060, 0xac84, 0x000f,
+	0x00c0, 0x5870, 0xac82, 0xad00, 0x0048, 0x5870, 0x6858, 0xac02,
+	0x00c8, 0x5870, 0x7124, 0x610a, 0x2009, 0x0045, 0x1078, 0x775c,
+	0x007c, 0x007e, 0x1078, 0x29bb, 0x007f, 0x00c0, 0x5887, 0x7110,
+	0xa18c, 0xff00, 0x810f, 0xa18e, 0x0000, 0x00c0, 0x5887, 0xa084,
+	0x000f, 0xa08a, 0x0006, 0x00c8, 0x5887, 0x1079, 0x5888, 0x007c,
+	0x588e, 0x588f, 0x588e, 0x588e, 0x58ff, 0x590e, 0x007c, 0x7110,
+	0xd1bc, 0x0040, 0x5897, 0x702c, 0xd084, 0x0040, 0x58fe, 0x700c,
+	0x7108, 0x1078, 0x254d, 0x00c0, 0x58fe, 0x1078, 0x455c, 0x00c0,
+	0x58fe, 0x6612, 0x6516, 0x6204, 0x7110, 0xd1bc, 0x0040, 0x58c9,
+	0xa28c, 0x00ff, 0xa186, 0x0004, 0x0040, 0x58b2, 0xa186, 0x0006,
+	0x00c0, 0x58ef, 0x0c7e, 0x1078, 0x591d, 0x0c7f, 0x0040, 0x58fe,
+	0x0c7e, 0x1078, 0x76c7, 0x017f, 0x0040, 0x58fe, 0x611a, 0x601f,
+	0x0002, 0x7120, 0x610a, 0x2009, 0x0088, 0x1078, 0x775c, 0x0078,
+	0x58fe, 0xa28c, 0x00ff, 0xa186, 0x0006, 0x0040, 0x58de, 0xa186,
+	0x0004, 0x0040, 0x58de, 0xa294, 0xff00, 0x8217, 0xa286, 0x0004,
+	0x0040, 0x58de, 0xa286, 0x0006, 0x00c0, 0x58ef, 0x0c7e, 0x1078,
+	0x76c7, 0x017f, 0x0040, 0x58fe, 0x611a, 0x601f, 0x0005, 0x7120,
+	0x610a, 0x2009, 0x0088, 0x1078, 0x775c, 0x0078, 0x58fe, 0x0c7e,
+	0x1078, 0x76c7, 0x017f, 0x0040, 0x58fe, 0x611a, 0x601f, 0x0004,
+	0x7120, 0x610a, 0x2009, 0x0001, 0x1078, 0x775c, 0x007c, 0x7110,
+	0xd1bc, 0x0040, 0x590d, 0x1078, 0x591d, 0x0040, 0x590d, 0x7124,
+	0x610a, 0x2009, 0x0089, 0x1078, 0x775c, 0x007c, 0x7110, 0xd1bc,
+	0x0040, 0x591c, 0x1078, 0x591d, 0x0040, 0x591c, 0x7124, 0x610a,
+	0x2009, 0x008a, 0x1078, 0x775c, 0x007c, 0x7020, 0x2060, 0xac84,
+	0x000f, 0x00c0, 0x5930, 0xac82, 0xad00, 0x0048, 0x5930, 0x2001,
+	0xa616, 0x2004, 0xac02, 0x00c8, 0x5930, 0xa085, 0x0001, 0x007c,
+	0xa006, 0x0078, 0x592f, 0x7110, 0xd1bc, 0x00c0, 0x5949, 0x7024,
+	0x2060, 0xac84, 0x000f, 0x00c0, 0x5949, 0xac82, 0xad00, 0x0048,
+	0x5949, 0x6858, 0xac02, 0x00c8, 0x5949, 0x2009, 0x0051, 0x1078,
+	0x775c, 0x007c, 0x2071, 0xa8c4, 0x7003, 0x0003, 0x700f, 0x0361,
+	0xa006, 0x701a, 0x7012, 0x7017, 0xad00, 0x7007, 0x0000, 0x7026,
+	0x702b, 0x6e1c, 0x7032, 0x7037, 0x6e70, 0x703b, 0x0002, 0x703f,
+	0x0000, 0x7043, 0xffff, 0x7047, 0xffff, 0x007c, 0x2071, 0xa8c4,
+	0x00e0, 0x5a32, 0x2091, 0x6000, 0x700c, 0x8001, 0x700e, 0x00c0,
+	0x59de, 0x700f, 0x0361, 0x7007, 0x0001, 0x127e, 0x2091, 0x8000,
+	0x7138, 0x8109, 0x713a, 0x00c0, 0x59dc, 0x703b, 0x0002, 0x2009,
+	0x0100, 0x2104, 0xa082, 0x0003, 0x00c8, 0x59dc, 0x703c, 0xa086,
+	0x0001, 0x00c0, 0x59b9, 0x0d7e, 0x2069, 0x0140, 0x6804, 0xa084,
+	0x4000, 0x0040, 0x5997, 0x6803, 0x1000, 0x0078, 0x599e, 0x6804,
+	0xa084, 0x1000, 0x0040, 0x599e, 0x6803, 0x0100, 0x6803, 0x0000,
+	0x703f, 0x0000, 0x2069, 0xa8b1, 0x6804, 0xa082, 0x0006, 0x00c0,
+	0x59ab, 0x6807, 0x0000, 0x6830, 0xa082, 0x0003, 0x00c0, 0x59b2,
+	0x6833, 0x0000, 0x1078, 0x62d1, 0x1078, 0x639b, 0x0d7f, 0x0078,
+	0x59dc, 0x0d7e, 0x2069, 0xa600, 0x6948, 0x6864, 0xa102, 0x00c8,
+	0x59db, 0x2069, 0xa8b1, 0x6804, 0xa086, 0x0000, 0x00c0, 0x59db,
+	0x6830, 0xa086, 0x0000, 0x00c0, 0x59db, 0x703f, 0x0001, 0x6807,
+	0x0006, 0x6833, 0x0003, 0x2069, 0x0100, 0x6830, 0x689e, 0x2069,
+	0x0140, 0x6803, 0x0600, 0x0d7f, 0x0078, 0x59e1, 0x127e, 0x2091,
+	0x8000, 0x7024, 0xa00d, 0x0040, 0x59f9, 0x7020, 0x8001, 0x7022,
+	0x00c0, 0x59f9, 0x7023, 0x0009, 0x8109, 0x7126, 0xa186, 0x03e8,
+	0x00c0, 0x59f4, 0x7028, 0x107a, 0x81ff, 0x00c0, 0x59f9, 0x7028,
+	0x107a, 0x7030, 0xa00d, 0x0040, 0x5a10, 0x702c, 0x8001, 0x702e,
+	0x00c0, 0x5a10, 0x702f, 0x0009, 0x8109, 0x7132, 0x0040, 0x5a0e,
+	0xa184, 0x007f, 0x1040, 0x6ea2, 0x0078, 0x5a10, 0x7034, 0x107a,
+	0x7040, 0xa005, 0x0040, 0x5a18, 0x0050, 0x5a18, 0x8001, 0x7042,
+	0x7044, 0xa005, 0x0040, 0x5a20, 0x0050, 0x5a20, 0x8001, 0x7046,
+	0x7018, 0xa00d, 0x0040, 0x5a31, 0x7008, 0x8001, 0x700a, 0x00c0,
+	0x5a31, 0x700b, 0x0009, 0x8109, 0x711a, 0x00c0, 0x5a31, 0x701c,
+	0x107a, 0x127f, 0x7004, 0x0079, 0x5a35, 0x5a5c, 0x5a5d, 0x5a79,
+	0x0e7e, 0x2071, 0xa8c4, 0x7018, 0xa005, 0x00c0, 0x5a43, 0x711a,
+	0x721e, 0x700b, 0x0009, 0x0e7f, 0x007c, 0x0e7e, 0x007e, 0x2071,
+	0xa8c4, 0x701c, 0xa206, 0x00c0, 0x5a4f, 0x701a, 0x701e, 0x007f,
+	0x0e7f, 0x007c, 0x0e7e, 0x2071, 0xa8c4, 0x6088, 0xa102, 0x0048,
+	0x5a5a, 0x618a, 0x0e7f, 0x007c, 0x007c, 0x7110, 0x1078, 0x45c4,
+	0x00c0, 0x5a6f, 0x6088, 0x8001, 0x0048, 0x5a6f, 0x608a, 0x00c0,
+	0x5a6f, 0x127e, 0x2091, 0x8000, 0x1078, 0x62d1, 0x127f, 0x8108,
+	0xa182, 0x00ff, 0x0048, 0x5a77, 0xa00e, 0x7007, 0x0002, 0x7112,
+	0x007c, 0x7014, 0x2060, 0x127e, 0x2091, 0x8000, 0x603c, 0xa005,
+	0x0040, 0x5a88, 0x8001, 0x603e, 0x00c0, 0x5a88, 0x1078, 0x8f9c,
+	0x6014, 0xa005, 0x0040, 0x5ab2, 0x8001, 0x6016, 0x00c0, 0x5ab2,
+	0x611c, 0xa186, 0x0003, 0x0040, 0x5a99, 0xa186, 0x0006, 0x00c0,
+	0x5ab0, 0x6010, 0x2068, 0x6854, 0xa08a, 0x199a, 0x0048, 0x5ab0,
+	0xa082, 0x1999, 0x6856, 0xa08a, 0x199a, 0x0048, 0x5aa9, 0x2001,
+	0x1999, 0x8003, 0x800b, 0x810b, 0xa108, 0x6116, 0x0078, 0x5ab2,
+	0x1078, 0x8abe, 0x127f, 0xac88, 0x0010, 0x7116, 0x2001, 0xcd00,
+	0xa102, 0x0048, 0x5abf, 0x7017, 0xad00, 0x7007, 0x0000, 0x007c,
+	0x0e7e, 0x2071, 0xa8c4, 0x7027, 0x07d0, 0x7023, 0x0009, 0x703b,
+	0x0002, 0x0e7f, 0x007c, 0x2001, 0xa8cd, 0x2003, 0x0000, 0x007c,
+	0x0e7e, 0x2071, 0xa8c4, 0x7132, 0x702f, 0x0009, 0x0e7f, 0x007c,
+	0x2011, 0xa8d0, 0x2013, 0x0000, 0x007c, 0x0e7e, 0x2071, 0xa8c4,
+	0x711a, 0x721e, 0x700b, 0x0009, 0x0e7f, 0x007c, 0x027e, 0x0e7e,
+	0x0f7e, 0x2079, 0xa600, 0x7a34, 0xd294, 0x0040, 0x5b15, 0x2071,
+	0xa8ac, 0x2e14, 0xa0fe, 0x0000, 0x0040, 0x5b02, 0xa0fe, 0x0001,
+	0x0040, 0x5b06, 0xa0fe, 0x0002, 0x00c0, 0x5b11, 0xa292, 0x0085,
+	0x0078, 0x5b08, 0xa292, 0x0005, 0x0078, 0x5b08, 0xa292, 0x0002,
+	0x2272, 0x0040, 0x5b0d, 0x00c8, 0x5b15, 0x2011, 0x8037, 0x1078,
+	0x361b, 0x2011, 0xa8ab, 0x2204, 0x2072, 0x0f7f, 0x0e7f, 0x027f,
+	0x007c, 0x0c7e, 0x2061, 0xa933, 0x0c7f, 0x007c, 0xa184, 0x000f,
+	0x8003, 0x8003, 0x8003, 0xa080, 0xa933, 0x2060, 0x007c, 0x6854,
+	0xa08a, 0x199a, 0x0048, 0x5b2e, 0x2001, 0x1999, 0xa005, 0x00c0,
+	0x5b3d, 0x0c7e, 0x2061, 0xa933, 0x6014, 0x0c7f, 0xa005, 0x00c0,
+	0x5b42, 0x2001, 0x001e, 0x0078, 0x5b42, 0xa08e, 0xffff, 0x00c0,
+	0x5b42, 0xa006, 0x8003, 0x800b, 0x810b, 0xa108, 0x6116, 0x684c,
+	0xa08c, 0x00c0, 0xa18e, 0x00c0, 0x0040, 0x5b9e, 0xd0b4, 0x00c0,
+	0x5b59, 0xd0bc, 0x00c0, 0x5b8b, 0x2009, 0x0006, 0x1078, 0x5bc3,
+	0x007c, 0xd0fc, 0x0040, 0x5b64, 0xa084, 0x0003, 0x0040, 0x5b64,
+	0xa086, 0x0003, 0x00c0, 0x5bbc, 0x6024, 0xd0d4, 0x0040, 0x5b6e,
+	0xc0d4, 0x6026, 0x6860, 0x602a, 0x685c, 0x602e, 0x2009, 0xa674,
+	0x2104, 0xd084, 0x0040, 0x5b83, 0x6118, 0xa188, 0x0027, 0x2104,
+	0xd08c, 0x00c0, 0x5b83, 0x87ff, 0x00c0, 0x5b82, 0x2009, 0x0042,
+	0x1078, 0x775c, 0x007c, 0x87ff, 0x00c0, 0x5b8a, 0x2009, 0x0043,
+	0x1078, 0x775c, 0x007c, 0xd0fc, 0x0040, 0x5b96, 0xa084, 0x0003,
+	0x0040, 0x5b96, 0xa086, 0x0003, 0x00c0, 0x5bbc, 0x87ff, 0x00c0,
+	0x5b9d, 0x2009, 0x0042, 0x1078, 0x775c, 0x007c, 0xd0fc, 0x0040,
+	0x5baf, 0xa084, 0x0003, 0xa08e, 0x0002, 0x0040, 0x5bb3, 0x87ff,
+	0x00c0, 0x5bae, 0x2009, 0x0041, 0x1078, 0x775c, 0x007c, 0x1078,
+	0x5bc1, 0x0078, 0x5bae, 0x87ff, 0x00c0, 0x5bae, 0x2009, 0x0043,
+	0x1078, 0x775c, 0x0078, 0x5bae, 0x2009, 0x0004, 0x1078, 0x5bc3,
+	0x007c, 0x2009, 0x0001, 0x0d7e, 0x6010, 0xa0ec, 0xf000, 0x0040,
+	0x5bef, 0x2068, 0x6952, 0x6800, 0x6012, 0xa186, 0x0001, 0x00c0,
+	0x5be5, 0x694c, 0xa18c, 0x8100, 0xa18e, 0x8100, 0x00c0, 0x5be5,
+	0x0c7e, 0x2061, 0xa933, 0x6200, 0xd28c, 0x00c0, 0x5be4, 0x6204,
+	0x8210, 0x0048, 0x5be4, 0x6206, 0x0c7f, 0x1078, 0x4a73, 0x6010,
+	0xa06d, 0x077e, 0x2039, 0x0000, 0x10c0, 0x5b27, 0x077f, 0x0d7f,
+	0x007c, 0x157e, 0x0c7e, 0x2061, 0xa933, 0x6000, 0x81ff, 0x0040,
+	0x5bfc, 0xa205, 0x0078, 0x5bfd, 0xa204, 0x6002, 0x0c7f, 0x157f,
+	0x007c, 0x6800, 0xd08c, 0x00c0, 0x5c0d, 0x6808, 0xa005, 0x0040,
+	0x5c0d, 0x8001, 0x680a, 0xa085, 0x0001, 0x007c, 0x20a9, 0x0010,
+	0xa006, 0x8004, 0x8086, 0x818e, 0x00c8, 0x5c17, 0xa200, 0x00f0,
+	0x5c12, 0x8086, 0x818e, 0x007c, 0x157e, 0x20a9, 0x0010, 0xa005,
+	0x0040, 0x5c3d, 0xa11a, 0x00c8, 0x5c3d, 0x8213, 0x818d, 0x0048,
+	0x5c30, 0xa11a, 0x00c8, 0x5c31, 0x00f0, 0x5c25, 0x0078, 0x5c35,
+	0xa11a, 0x2308, 0x8210, 0x00f0, 0x5c25, 0x007e, 0x3200, 0xa084,
+	0xf7ff, 0x2080, 0x007f, 0x157f, 0x007c, 0x007e, 0x3200, 0xa085,
+	0x0800, 0x0078, 0x5c39, 0x127e, 0x2091, 0x2200, 0x2079, 0xa8b1,
+	0x127f, 0x0d7e, 0x2069, 0xa8b1, 0x6803, 0x0005, 0x2069, 0x0004,
+	0x2d04, 0xa085, 0x8001, 0x206a, 0x0d7f, 0x007c, 0x0c7e, 0x6027,
+	0x0001, 0x7804, 0xa084, 0x0007, 0x0079, 0x5c5e, 0x5c68, 0x5c8d,
+	0x5ce8, 0x5c6e, 0x5c8d, 0x5c68, 0x5c66, 0x5c66, 0x1078, 0x1332,
+	0x1078, 0x5acb, 0x1078, 0x62d1, 0x0c7f, 0x007c, 0x62c0, 0x82ff,
+	0x00c0, 0x5c74, 0x0c7f, 0x007c, 0x2011, 0x41dc, 0x1078, 0x5a45,
+	0x7828, 0xa092, 0x00c8, 0x00c8, 0x5c83, 0x8000, 0x782a, 0x1078,
+	0x421b, 0x0078, 0x5c72, 0x1078, 0x41dc, 0x7807, 0x0003, 0x7827,
+	0x0000, 0x782b, 0x0000, 0x0078, 0x5c72, 0x1078, 0x5acb, 0x3c00,
+	0x007e, 0x2011, 0x0209, 0x20e1, 0x4000, 0x2214, 0x007f, 0x20e0,
+	0x82ff, 0x0040, 0x5cab, 0x62c0, 0x82ff, 0x00c0, 0x5cab, 0x782b,
+	0x0000, 0x7824, 0xa065, 0x1040, 0x1332, 0x2009, 0x0013, 0x1078,
+	0x775c, 0x0c7f, 0x007c, 0x3900, 0xa082, 0xa9e3, 0x00c8, 0x5cb2,
+	0x1078, 0x747a, 0x0c7e, 0x7824, 0xa065, 0x1040, 0x1332, 0x7804,
+	0xa086, 0x0004, 0x0040, 0x5d2d, 0x7828, 0xa092, 0x2710, 0x00c8,
+	0x5cc8, 0x8000, 0x782a, 0x0c7f, 0x1078, 0x6e01, 0x0078, 0x5ca9,
+	0x6104, 0xa186, 0x0003, 0x00c0, 0x5cdf, 0x0e7e, 0x2071, 0xa600,
+	0x70d8, 0x0e7f, 0xd08c, 0x0040, 0x5cdf, 0x0c7e, 0x0e7e, 0x2061,
+	0x0100, 0x2071, 0xa600, 0x1078, 0x4224, 0x0e7f, 0x0c7f, 0x1078,
+	0xa5c4, 0x2009, 0x0014, 0x1078, 0x775c, 0x0c7f, 0x0078, 0x5ca9,
+	0x2001, 0xa8cd, 0x2003, 0x0000, 0x62c0, 0x82ff, 0x00c0, 0x5cfc,
+	0x782b, 0x0000, 0x7824, 0xa065, 0x1040, 0x1332, 0x2009, 0x0013,
+	0x1078, 0x77b3, 0x0c7f, 0x007c, 0x0c7e, 0x0d7e, 0x3900, 0xa082,
+	0xa9e3, 0x00c8, 0x5d05, 0x1078, 0x747a, 0x7824, 0xa005, 0x1040,
+	0x1332, 0x781c, 0xa06d, 0x1040, 0x1332, 0x6800, 0xc0dc, 0x6802,
+	0x7924, 0x2160, 0x1078, 0x772d, 0x693c, 0x81ff, 0x1040, 0x1332,
+	0x8109, 0x693e, 0x6854, 0xa015, 0x0040, 0x5d21, 0x7a1e, 0x0078,
+	0x5d23, 0x7918, 0x791e, 0x7807, 0x0000, 0x7827, 0x0000, 0x0d7f,
+	0x0c7f, 0x1078, 0x62d1, 0x0078, 0x5cfa, 0x6104, 0xa186, 0x0002,
+	0x0040, 0x5d38, 0xa186, 0x0004, 0x0040, 0x5d38, 0x0078, 0x5cbc,
+	0x7808, 0xac06, 0x0040, 0x5cbc, 0x1078, 0x61cd, 0x1078, 0x5dd7,
+	0x0c7f, 0x1078, 0x62d1, 0x0078, 0x5ca9, 0x0c7e, 0x6027, 0x0002,
+	0x62c8, 0x82ff, 0x00c0, 0x5d61, 0x62c4, 0x82ff, 0x00c0, 0x5d61,
+	0x793c, 0xa1e5, 0x0000, 0x0040, 0x5d5b, 0x2009, 0x0049, 0x1078,
+	0x775c, 0x0c7f, 0x007c, 0x2011, 0xa8d0, 0x2013, 0x0000, 0x0078,
+	0x5d59, 0x3908, 0xa192, 0xa9e3, 0x00c8, 0x5d68, 0x1078, 0x747a,
+	0x6017, 0x0010, 0x793c, 0x81ff, 0x0040, 0x5d5b, 0x7944, 0xa192,
+	0x7530, 0x00c8, 0x5d85, 0x8108, 0x7946, 0x793c, 0xa188, 0x0007,
+	0x210c, 0xa18e, 0x0006, 0x00c0, 0x5d81, 0x6017, 0x0012, 0x0078,
+	0x5d59, 0x6017, 0x0016, 0x0078, 0x5d59, 0x7848, 0xc085, 0x784a,
+	0x0078, 0x5d59, 0x007e, 0x017e, 0x0c7e, 0x127e, 0x2091, 0x8000,
+	0x600f, 0x0000, 0x2c08, 0x2061, 0xa8b1, 0x6020, 0x8000, 0x6022,
+	0x6010, 0xa005, 0x0040, 0x5da5, 0xa080, 0x0003, 0x2102, 0x6112,
+	0x127f, 0x0c7f, 0x017f, 0x007f, 0x007c, 0x6116, 0x6112, 0x0078,
+	0x5da0, 0x0d7e, 0x2069, 0xa8b1, 0x6000, 0xd0d4, 0x0040, 0x5dbe,
+	0x6820, 0x8000, 0x6822, 0xa086, 0x0001, 0x00c0, 0x5db9, 0x2c00,
+	0x681e, 0x6804, 0xa084, 0x0007, 0x0079, 0x62d9, 0xc0d5, 0x6002,
+	0x6818, 0xa005, 0x0040, 0x5dd0, 0x6056, 0x605b, 0x0000, 0x007e,
+	0x2c00, 0x681a, 0x0d7f, 0x685a, 0x2069, 0xa8b1, 0x0078, 0x5db0,
+	0x6056, 0x605a, 0x2c00, 0x681a, 0x681e, 0x0078, 0x5db0, 0x007e,
+	0x017e, 0x0c7e, 0x127e, 0x2091, 0x8000, 0x600f, 0x0000, 0x2c08,
+	0x2061, 0xa8b1, 0x6020, 0x8000, 0x6022, 0x6008, 0xa005, 0x0040,
+	0x5df2, 0xa080, 0x0003, 0x2102, 0x610a, 0x127f, 0x0c7f, 0x017f,
+	0x007f, 0x007c, 0x610e, 0x610a, 0x0078, 0x5ded, 0x0c7e, 0x600f,
+	0x0000, 0x2c08, 0x2061, 0xa8b1, 0x6034, 0xa005, 0x0040, 0x5e06,
+	0xa080, 0x0003, 0x2102, 0x6136, 0x0c7f, 0x007c, 0x613a, 0x6136,
+	0x0078, 0x5e04, 0x0f7e, 0x0e7e, 0x0d7e, 0x0c7e, 0x067e, 0x057e,
+	0x037e, 0x027e, 0x017e, 0x007e, 0x127e, 0xa02e, 0x2071, 0xa8b1,
+	0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff, 0x0040, 0x5e8c,
+	0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x00c0, 0x5e87, 0x87ff,
+	0x0040, 0x5e2e, 0x6020, 0xa106, 0x00c0, 0x5e87, 0x703c, 0xac06,
+	0x00c0, 0x5e44, 0x037e, 0x2019, 0x0001, 0x1078, 0x7058, 0x7033,
+	0x0000, 0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b,
+	0x0000, 0x037f, 0x2029, 0x0001, 0x7038, 0xac36, 0x00c0, 0x5e4a,
+	0x660c, 0x763a, 0x7034, 0xac36, 0x00c0, 0x5e58, 0x2c00, 0xaf36,
+	0x0040, 0x5e56, 0x2f00, 0x7036, 0x0078, 0x5e58, 0x7037, 0x0000,
+	0x660c, 0x067e, 0x2c00, 0xaf06, 0x0040, 0x5e61, 0x7e0e, 0x0078,
+	0x5e62, 0x2678, 0x600f, 0x0000, 0x1078, 0x8d06, 0x0040, 0x5e82,
+	0x6010, 0x2068, 0x601c, 0xa086, 0x0003, 0x00c0, 0x5e9d, 0x6837,
+	0x0103, 0x6b4a, 0x6847, 0x0000, 0x017e, 0x037e, 0x077e, 0x1078,
+	0x8f7d, 0x1078, 0xa4e2, 0x1078, 0x4a73, 0x077f, 0x037f, 0x017f,
+	0x1078, 0x8eb9, 0x1078, 0x8ec6, 0x0c7f, 0x0078, 0x5e1d, 0x2c78,
+	0x600c, 0x2060, 0x0078, 0x5e1d, 0x85ff, 0x0040, 0x5e91, 0x1078,
+	0x639b, 0x127f, 0x007f, 0x017f, 0x027f, 0x037f, 0x057f, 0x067f,
+	0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f, 0x007c, 0x601c, 0xa086, 0x0006,
+	0x00c0, 0x5e6f, 0x017e, 0x037e, 0x077e, 0x1078, 0xa4e2, 0x1078,
+	0xa1ca, 0x077f, 0x037f, 0x017f, 0x0078, 0x5e82, 0x007e, 0x067e,
+	0x0c7e, 0x0d7e, 0x0f7e, 0x2031, 0x0000, 0x127e, 0x2091, 0x8000,
+	0x2079, 0xa8b1, 0x7838, 0xa065, 0x0040, 0x5eef, 0x600c, 0x007e,
+	0x600f, 0x0000, 0x783c, 0xac06, 0x00c0, 0x5ed6, 0x037e, 0x2019,
+	0x0001, 0x1078, 0x7058, 0x7833, 0x0000, 0x783f, 0x0000, 0x7843,
+	0x0000, 0x7847, 0x0000, 0x784b, 0x0000, 0x037f, 0x1078, 0x8d06,
+	0x0040, 0x5eea, 0x6010, 0x2068, 0x601c, 0xa086, 0x0003, 0x00c0,
+	0x5ef8, 0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0x4a73,
+	0x1078, 0x8eb9, 0x1078, 0x8ec6, 0x007f, 0x0078, 0x5ebb, 0x7e3a,
+	0x7e36, 0x127f, 0x0f7f, 0x0d7f, 0x0c7f, 0x067f, 0x007f, 0x007c,
+	0x601c, 0xa086, 0x0006, 0x00c0, 0x5ee1, 0x1078, 0xa1ca, 0x0078,
+	0x5eea, 0x017e, 0x027e, 0x087e, 0x2041, 0x0000, 0x1078, 0x5f1b,
+	0x1078, 0x5fdb, 0x087f, 0x027f, 0x017f, 0x007c, 0x0f7e, 0x127e,
+	0x2079, 0xa8b1, 0x2091, 0x8000, 0x1078, 0x6076, 0x1078, 0x60ec,
+	0x127f, 0x0f7f, 0x007c, 0x0f7e, 0x0e7e, 0x0d7e, 0x0c7e, 0x067e,
+	0x017e, 0x007e, 0x127e, 0x2091, 0x8000, 0x2071, 0xa8b1, 0x7614,
+	0x2660, 0x2678, 0x8cff, 0x0040, 0x5fb5, 0x6018, 0xa080, 0x0028,
+	0x2004, 0xa206, 0x00c0, 0x5fb0, 0x88ff, 0x0040, 0x5f3b, 0x6020,
+	0xa106, 0x00c0, 0x5fb0, 0x7024, 0xac06, 0x00c0, 0x5f6b, 0x2069,
+	0x0100, 0x68c0, 0xa005, 0x0040, 0x5f66, 0x1078, 0x5acb, 0x1078,
+	0x6e0f, 0x68c3, 0x0000, 0x1078, 0x7378, 0x7027, 0x0000, 0x037e,
+	0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0040, 0x5f5b, 0x6803,
+	0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0040,
+	0x5f63, 0x6827, 0x0001, 0x037f, 0x0078, 0x5f6b, 0x6003, 0x0009,
+	0x630a, 0x0078, 0x5fb0, 0x7014, 0xac36, 0x00c0, 0x5f71, 0x660c,
+	0x7616, 0x7010, 0xac36, 0x00c0, 0x5f7f, 0x2c00, 0xaf36, 0x0040,
+	0x5f7d, 0x2f00, 0x7012, 0x0078, 0x5f7f, 0x7013, 0x0000, 0x660c,
+	0x067e, 0x2c00, 0xaf06, 0x0040, 0x5f88, 0x7e0e, 0x0078, 0x5f89,
+	0x2678, 0x600f, 0x0000, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040,
+	0x5fa9, 0x601c, 0xa086, 0x0003, 0x00c0, 0x5fbe, 0x6837, 0x0103,
+	0x6b4a, 0x6847, 0x0000, 0x017e, 0x037e, 0x087e, 0x1078, 0x8f7d,
+	0x1078, 0xa4e2, 0x1078, 0x4a73, 0x087f, 0x037f, 0x017f, 0x1078,
+	0x8eb9, 0x1078, 0x8ec6, 0x1078, 0x7233, 0x0c7f, 0x0078, 0x5f2a,
+	0x2c78, 0x600c, 0x2060, 0x0078, 0x5f2a, 0x127f, 0x007f, 0x017f,
+	0x067f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f, 0x007c, 0x601c, 0xa086,
+	0x0006, 0x00c0, 0x5fcf, 0x017e, 0x037e, 0x087e, 0x1078, 0xa4e2,
+	0x1078, 0xa1ca, 0x087f, 0x037f, 0x017f, 0x0078, 0x5fa9, 0x601c,
+	0xa086, 0x0002, 0x00c0, 0x5fa9, 0x6004, 0xa086, 0x0085, 0x0040,
+	0x5f96, 0x0078, 0x5fa9, 0x0c7e, 0x007e, 0x127e, 0x2091, 0x8000,
+	0xa280, 0xa735, 0x2004, 0xa065, 0x0040, 0x6072, 0x0f7e, 0x0e7e,
+	0x0d7e, 0x067e, 0x2071, 0xa8b1, 0x6654, 0x7018, 0xac06, 0x00c0,
+	0x5ff2, 0x761a, 0x701c, 0xac06, 0x00c0, 0x5ffe, 0x86ff, 0x00c0,
+	0x5ffd, 0x7018, 0x701e, 0x0078, 0x5ffe, 0x761e, 0x6058, 0xa07d,
+	0x0040, 0x6003, 0x7e56, 0xa6ed, 0x0000, 0x0040, 0x6009, 0x2f00,
+	0x685a, 0x6057, 0x0000, 0x605b, 0x0000, 0x6000, 0xc0d4, 0xc0dc,
+	0x6002, 0x1078, 0x44d3, 0x0040, 0x606e, 0x7624, 0x86ff, 0x0040,
+	0x605c, 0xa680, 0x0004, 0x2004, 0xad06, 0x00c0, 0x605c, 0x0d7e,
+	0x2069, 0x0100, 0x68c0, 0xa005, 0x0040, 0x6053, 0x1078, 0x5acb,
+	0x1078, 0x6e0f, 0x68c3, 0x0000, 0x1078, 0x7378, 0x7027, 0x0000,
+	0x037e, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0040, 0x603c,
+	0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+	0x0040, 0x6044, 0x6827, 0x0001, 0x037f, 0x0d7f, 0x0c7e, 0x603c,
+	0xa005, 0x0040, 0x604d, 0x8001, 0x603e, 0x2660, 0x1078, 0x8ec6,
+	0x0c7f, 0x0078, 0x605c, 0x0d7f, 0x0c7e, 0x2660, 0x6003, 0x0009,
+	0x630a, 0x0c7f, 0x0078, 0x6011, 0x8dff, 0x0040, 0x606a, 0x6837,
+	0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0x8f7d, 0x1078, 0xa4e2,
+	0x1078, 0x4a73, 0x1078, 0x7233, 0x0078, 0x6011, 0x067f, 0x0d7f,
+	0x0e7f, 0x0f7f, 0x127f, 0x007f, 0x0c7f, 0x007c, 0x007e, 0x067e,
+	0x0c7e, 0x0d7e, 0x2031, 0x0000, 0x7814, 0xa065, 0x0040, 0x60d0,
+	0x600c, 0x007e, 0x600f, 0x0000, 0x7824, 0xac06, 0x00c0, 0x60b5,
+	0x2069, 0x0100, 0x68c0, 0xa005, 0x0040, 0x60af, 0x1078, 0x5acb,
+	0x1078, 0x6e0f, 0x68c3, 0x0000, 0x1078, 0x7378, 0x7827, 0x0000,
+	0x037e, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000, 0x0040, 0x60a4,
+	0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100, 0x6824, 0xd084,
+	0x0040, 0x60ac, 0x6827, 0x0001, 0x037f, 0x0078, 0x60b5, 0x6003,
+	0x0009, 0x630a, 0x2c30, 0x0078, 0x60cd, 0x6010, 0x2068, 0x1078,
+	0x8d06, 0x0040, 0x60c9, 0x601c, 0xa086, 0x0003, 0x00c0, 0x60d7,
+	0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0x4a73, 0x1078,
+	0x8eb9, 0x1078, 0x8ec6, 0x1078, 0x7233, 0x007f, 0x0078, 0x607d,
+	0x7e16, 0x7e12, 0x0d7f, 0x0c7f, 0x067f, 0x007f, 0x007c, 0x601c,
+	0xa086, 0x0006, 0x00c0, 0x60e0, 0x1078, 0xa1ca, 0x0078, 0x60c9,
+	0x601c, 0xa086, 0x0002, 0x00c0, 0x60c9, 0x6004, 0xa086, 0x0085,
+	0x0040, 0x60c0, 0x0078, 0x60c9, 0x007e, 0x067e, 0x0c7e, 0x0d7e,
+	0x7818, 0xa065, 0x0040, 0x615a, 0x6054, 0x007e, 0x6057, 0x0000,
+	0x605b, 0x0000, 0x6000, 0xc0d4, 0xc0dc, 0x6002, 0x1078, 0x44d3,
+	0x0040, 0x6157, 0x7e24, 0x86ff, 0x0040, 0x6149, 0xa680, 0x0004,
+	0x2004, 0xad06, 0x00c0, 0x6149, 0x0d7e, 0x2069, 0x0100, 0x68c0,
+	0xa005, 0x0040, 0x6140, 0x1078, 0x5acb, 0x1078, 0x6e0f, 0x68c3,
+	0x0000, 0x1078, 0x7378, 0x7827, 0x0000, 0x037e, 0x2069, 0x0140,
+	0x6b04, 0xa384, 0x1000, 0x0040, 0x6129, 0x6803, 0x0100, 0x6803,
+	0x0000, 0x2069, 0x0100, 0x6824, 0xd084, 0x0040, 0x6131, 0x6827,
+	0x0001, 0x037f, 0x0d7f, 0x0c7e, 0x603c, 0xa005, 0x0040, 0x613a,
+	0x8001, 0x603e, 0x2660, 0x1078, 0x8ec6, 0x0c7f, 0x0078, 0x6149,
+	0x0d7f, 0x0c7e, 0x2660, 0x6003, 0x0009, 0x630a, 0x0c7f, 0x0078,
+	0x60fe, 0x8dff, 0x0040, 0x6153, 0x6837, 0x0103, 0x6b4a, 0x6847,
+	0x0000, 0x1078, 0x4a73, 0x1078, 0x7233, 0x0078, 0x60fe, 0x007f,
+	0x0078, 0x60f1, 0x781e, 0x781a, 0x0d7f, 0x0c7f, 0x067f, 0x007f,
+	0x007c, 0x0e7e, 0x0d7e, 0x067e, 0x6000, 0xd0dc, 0x0040, 0x6181,
+	0x604c, 0xa06d, 0x0040, 0x6181, 0x6848, 0xa606, 0x00c0, 0x6181,
+	0x2071, 0xa8b1, 0x7024, 0xa035, 0x0040, 0x6181, 0xa080, 0x0004,
+	0x2004, 0xad06, 0x00c0, 0x6181, 0x6000, 0xc0dc, 0x6002, 0x1078,
+	0x6185, 0x067f, 0x0d7f, 0x0e7f, 0x007c, 0x0f7e, 0x2079, 0x0100,
+	0x78c0, 0xa005, 0x00c0, 0x6194, 0x0c7e, 0x2660, 0x6003, 0x0009,
+	0x630a, 0x0c7f, 0x0078, 0x61cb, 0x1078, 0x6e0f, 0x78c3, 0x0000,
+	0x1078, 0x7378, 0x7027, 0x0000, 0x037e, 0x2079, 0x0140, 0x7b04,
+	0xa384, 0x1000, 0x0040, 0x61a8, 0x7803, 0x0100, 0x7803, 0x0000,
+	0x2079, 0x0100, 0x7824, 0xd084, 0x0040, 0x61b0, 0x7827, 0x0001,
+	0x1078, 0x7378, 0x037f, 0x1078, 0x44d3, 0x0c7e, 0x603c, 0xa005,
+	0x0040, 0x61bc, 0x8001, 0x603e, 0x2660, 0x1078, 0x772d, 0x0c7f,
+	0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0x8f7d, 0x1078,
+	0x4a73, 0x1078, 0x7233, 0x0f7f, 0x007c, 0x0e7e, 0x0c7e, 0x2071,
+	0xa8b1, 0x7004, 0xa084, 0x0007, 0x0079, 0x61d6, 0x61e0, 0x61e3,
+	0x61fc, 0x6218, 0x6262, 0x61e0, 0x61e0, 0x61de, 0x1078, 0x1332,
+	0x0c7f, 0x0e7f, 0x007c, 0x7024, 0xa065, 0x0040, 0x61f1, 0x7020,
+	0x8001, 0x7022, 0x600c, 0xa015, 0x0040, 0x61f8, 0x7216, 0x600f,
+	0x0000, 0x7007, 0x0000, 0x7027, 0x0000, 0x0c7f, 0x0e7f, 0x007c,
+	0x7216, 0x7212, 0x0078, 0x61f1, 0x6018, 0x2060, 0x1078, 0x44d3,
+	0x6000, 0xc0dc, 0x6002, 0x7020, 0x8001, 0x7022, 0x0040, 0x620d,
+	0x6054, 0xa015, 0x0040, 0x6214, 0x721e, 0x7007, 0x0000, 0x7027,
+	0x0000, 0x0c7f, 0x0e7f, 0x007c, 0x7218, 0x721e, 0x0078, 0x620d,
+	0x7024, 0xa065, 0x0040, 0x625f, 0x700c, 0xac06, 0x00c0, 0x622f,
+	0x1078, 0x7233, 0x600c, 0xa015, 0x0040, 0x622b, 0x720e, 0x600f,
+	0x0000, 0x0078, 0x625d, 0x720e, 0x720a, 0x0078, 0x625d, 0x7014,
+	0xac06, 0x00c0, 0x6242, 0x1078, 0x7233, 0x600c, 0xa015, 0x0040,
+	0x623e, 0x7216, 0x600f, 0x0000, 0x0078, 0x625d, 0x7216, 0x7212,
+	0x0078, 0x625d, 0x601c, 0xa086, 0x0003, 0x00c0, 0x625d, 0x6018,
+	0x2060, 0x1078, 0x44d3, 0x6000, 0xc0dc, 0x6002, 0x1078, 0x7233,
+	0x701c, 0xa065, 0x0040, 0x625d, 0x6054, 0xa015, 0x0040, 0x625b,
+	0x721e, 0x0078, 0x625d, 0x7218, 0x721e, 0x7027, 0x0000, 0x0c7f,
+	0x0e7f, 0x007c, 0x7024, 0xa065, 0x0040, 0x626f, 0x1078, 0x7233,
+	0x600c, 0xa015, 0x0040, 0x6276, 0x720e, 0x600f, 0x0000, 0x1078,
+	0x7378, 0x7027, 0x0000, 0x0c7f, 0x0e7f, 0x007c, 0x720e, 0x720a,
+	0x0078, 0x626f, 0x0d7e, 0x2069, 0xa8b1, 0x6830, 0xa084, 0x0003,
+	0x0079, 0x6282, 0x6288, 0x628a, 0x62b4, 0x6288, 0x1078, 0x1332,
+	0x0d7f, 0x007c, 0x0c7e, 0x6840, 0xa086, 0x0001, 0x0040, 0x62aa,
+	0x683c, 0xa065, 0x0040, 0x629b, 0x600c, 0xa015, 0x0040, 0x62a6,
+	0x6a3a, 0x600f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x2011,
+	0xa8d0, 0x2013, 0x0000, 0x0c7f, 0x0d7f, 0x007c, 0x683a, 0x6836,
+	0x0078, 0x629b, 0x6843, 0x0000, 0x6838, 0xa065, 0x0040, 0x629b,
+	0x6003, 0x0003, 0x0078, 0x629b, 0x0c7e, 0x6843, 0x0000, 0x6847,
+	0x0000, 0x684b, 0x0000, 0x683c, 0xa065, 0x0040, 0x62ce, 0x600c,
+	0xa015, 0x0040, 0x62ca, 0x6a3a, 0x600f, 0x0000, 0x683f, 0x0000,
+	0x0078, 0x62ce, 0x683f, 0x0000, 0x683a, 0x6836, 0x0c7f, 0x0d7f,
+	0x007c, 0x0d7e, 0x2069, 0xa8b1, 0x6804, 0xa084, 0x0007, 0x0079,
+	0x62d9, 0x62e3, 0x638a, 0x638a, 0x638a, 0x638a, 0x638c, 0x638a,
+	0x62e1, 0x1078, 0x1332, 0x6820, 0xa005, 0x00c0, 0x62e9, 0x0d7f,
+	0x007c, 0x0c7e, 0x680c, 0xa065, 0x0040, 0x62f8, 0x6807, 0x0004,
+	0x6826, 0x682b, 0x0000, 0x1078, 0x63d4, 0x0c7f, 0x0d7f, 0x007c,
+	0x6814, 0xa065, 0x0040, 0x6306, 0x6807, 0x0001, 0x6826, 0x682b,
+	0x0000, 0x1078, 0x63d4, 0x0c7f, 0x0d7f, 0x007c, 0x0e7e, 0x037e,
+	0x6a1c, 0xa2f5, 0x0000, 0x0040, 0x6385, 0x704c, 0xa00d, 0x0040,
+	0x6315, 0x7088, 0xa005, 0x0040, 0x632d, 0x7054, 0xa075, 0x0040,
+	0x631e, 0xa20e, 0x0040, 0x6385, 0x0078, 0x6323, 0x6818, 0xa20e,
+	0x0040, 0x6385, 0x2070, 0x704c, 0xa00d, 0x0040, 0x6315, 0x7088,
+	0xa005, 0x00c0, 0x6315, 0x2e00, 0x681e, 0x733c, 0x7038, 0xa302,
+	0x00c8, 0x6315, 0x1078, 0x76fc, 0x0040, 0x6385, 0x8318, 0x733e,
+	0x6112, 0x2e10, 0x621a, 0xa180, 0x0014, 0x2004, 0xa084, 0x00ff,
+	0x6032, 0xa180, 0x0014, 0x2003, 0x0000, 0xa180, 0x0015, 0x2004,
+	0xa08a, 0x199a, 0x0048, 0x634e, 0x2001, 0x1999, 0x8003, 0x801b,
+	0x831b, 0xa318, 0x6316, 0x037f, 0x0f7e, 0x2c78, 0x71a0, 0xd1bc,
+	0x0040, 0x6367, 0x7100, 0xd1f4, 0x0040, 0x6363, 0x7114, 0xa18c,
+	0x00ff, 0x0078, 0x636c, 0x2009, 0x0000, 0x0078, 0x636c, 0xa1e0,
+	0x29c0, 0x2c0c, 0xa18c, 0x00ff, 0x2061, 0x0100, 0x619a, 0x1078,
+	0x6965, 0x7300, 0xc3dd, 0x7302, 0x6807, 0x0002, 0x2f18, 0x6b26,
+	0x682b, 0x0000, 0x781f, 0x0003, 0x7803, 0x0001, 0x7807, 0x0040,
+	0x0f7f, 0x0e7f, 0x0c7f, 0x0d7f, 0x007c, 0x037f, 0x0e7f, 0x0c7f,
+	0x0078, 0x6383, 0x0d7f, 0x007c, 0x0c7e, 0x680c, 0xa065, 0x0040,
+	0x6398, 0x6807, 0x0004, 0x6826, 0x682b, 0x0000, 0x1078, 0x63d4,
+	0x0c7f, 0x0d7f, 0x007c, 0x0f7e, 0x0d7e, 0x2069, 0xa8b1, 0x6830,
+	0xa086, 0x0000, 0x00c0, 0x63bb, 0x6838, 0xa07d, 0x0040, 0x63bb,
+	0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000, 0x127e,
+	0x0f7e, 0x2091, 0x2200, 0x027f, 0x1078, 0x1d6d, 0x00c0, 0x63be,
+	0x127f, 0x1078, 0x6cb3, 0x0d7f, 0x0f7f, 0x007c, 0x127f, 0x6843,
+	0x0000, 0x7803, 0x0002, 0x780c, 0xa015, 0x0040, 0x63d0, 0x6a3a,
+	0x780f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x0078, 0x63bb,
+	0x683a, 0x6836, 0x0078, 0x63ca, 0x601c, 0xa084, 0x000f, 0x1079,
+	0x63da, 0x007c, 0x63e3, 0x63e8, 0x6809, 0x6922, 0x63e8, 0x6809,
+	0x6922, 0x63e3, 0x63e8, 0x1078, 0x61cd, 0x1078, 0x62d1, 0x007c,
+	0x157e, 0x137e, 0x147e, 0x0c7e, 0x0f7e, 0x6004, 0xa08a, 0x0044,
+	0x10c8, 0x1332, 0x6118, 0x2178, 0x79a0, 0xd1bc, 0x0040, 0x6405,
+	0x7900, 0xd1f4, 0x0040, 0x6401, 0x7914, 0xa18c, 0x00ff, 0x0078,
+	0x640a, 0x2009, 0x0000, 0x0078, 0x640a, 0xa1f8, 0x29c0, 0x2f0c,
+	0xa18c, 0x00ff, 0x2c78, 0x2061, 0x0100, 0x619a, 0xa08a, 0x0040,
+	0x00c8, 0x645c, 0x1079, 0x641a, 0x0f7f, 0x0c7f, 0x147f, 0x137f,
+	0x157f, 0x007c, 0x64c2, 0x650a, 0x6532, 0x65cd, 0x65fd, 0x6605,
+	0x662c, 0x663d, 0x664e, 0x6656, 0x666e, 0x6656, 0x66d9, 0x663d,
+	0x66fa, 0x6702, 0x664e, 0x6702, 0x6713, 0x645a, 0x645a, 0x645a,
+	0x645a, 0x645a, 0x645a, 0x645a, 0x645a, 0x645a, 0x645a, 0x645a,
+	0x6eef, 0x6f14, 0x6f29, 0x6f4c, 0x6f6d, 0x662c, 0x645a, 0x662c,
+	0x6656, 0x645a, 0x6532, 0x65cd, 0x645a, 0x749c, 0x6656, 0x645a,
+	0x74bc, 0x6656, 0x645a, 0x645a, 0x64bd, 0x646b, 0x645a, 0x74e1,
+	0x7558, 0x7640, 0x645a, 0x7651, 0x6626, 0x766d, 0x645a, 0x6f82,
+	0x645a, 0x645a, 0x1078, 0x1332, 0x2100, 0x1079, 0x6465, 0x0f7f,
+	0x0c7f, 0x147f, 0x137f, 0x157f, 0x007c, 0x6469, 0x6469, 0x6469,
+	0x649f, 0x1078, 0x1332, 0x0d7e, 0x20a1, 0x020b, 0x1078, 0x6731,
+	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, 0x1078, 0x6dfb, 0x0d7f, 0x007c,
+	0x0d7e, 0x7818, 0x2068, 0x68a0, 0xa082, 0x007e, 0x0048, 0x649c,
+	0xa085, 0x0001, 0x0d7f, 0x007c, 0xa006, 0x0078, 0x649a, 0x0d7e,
+	0x20a1, 0x020b, 0x1078, 0x6731, 0x20a3, 0x0500, 0x20a3, 0x0000,
+	0x7810, 0xa0e8, 0x000f, 0x6808, 0x20a2, 0x680c, 0x20a2, 0x6810,
+	0x20a2, 0x6814, 0x20a2, 0x6818, 0x20a2, 0x681c, 0x20a2, 0x60c3,
+	0x0010, 0x1078, 0x6dfb, 0x0d7f, 0x007c, 0x6030, 0x609a, 0x1078,
+	0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078, 0x6731, 0x20a3, 0x5200,
+	0x20a3, 0x0000, 0x0d7e, 0x2069, 0xa652, 0x6804, 0xd084, 0x0040,
+	0x64dc, 0x6828, 0x20a3, 0x0000, 0x017e, 0x1078, 0x2564, 0x21a2,
+	0x017f, 0x0d7f, 0x0078, 0x64e1, 0x0d7f, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x20a9, 0x0004, 0x2099, 0xa605, 0x53a6, 0x20a9, 0x0004,
+	0x2099, 0xa601, 0x53a6, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082,
+	0x007f, 0x0048, 0x64fb, 0x2001, 0xa61b, 0x20a6, 0x2001, 0xa61c,
+	0x20a6, 0x0078, 0x6501, 0x20a3, 0x0000, 0x6030, 0xa084, 0x00ff,
+	0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x1078,
+	0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078, 0x6731, 0x20a3, 0x0500,
+	0x20a3, 0x0000, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007f,
+	0x0048, 0x6522, 0x2001, 0xa61b, 0x20a6, 0x2001, 0xa61c, 0x20a6,
+	0x0078, 0x6528, 0x20a3, 0x0000, 0x6030, 0xa084, 0x00ff, 0x20a2,
+	0x20a9, 0x0004, 0x2099, 0xa605, 0x53a6, 0x60c3, 0x0010, 0x1078,
+	0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078, 0x6731, 0x0c7e, 0x7818,
+	0x2060, 0x2001, 0x0000, 0x1078, 0x4972, 0x0c7f, 0x7818, 0xa080,
+	0x0028, 0x2004, 0xa086, 0x007e, 0x00c0, 0x654d, 0x20a3, 0x0400,
+	0x620c, 0xc2b4, 0x620e, 0x0078, 0x654f, 0x20a3, 0x0300, 0x20a3,
+	0x0000, 0x7818, 0xa080, 0x0028, 0x2004, 0xa086, 0x007e, 0x00c0,
+	0x659c, 0x2099, 0xa88d, 0x33a6, 0x9398, 0x33a6, 0x9398, 0x3304,
+	0xa084, 0x3fff, 0x20a2, 0x9398, 0x33a6, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a9, 0x0004, 0x2099,
+	0xa605, 0x53a6, 0x20a9, 0x0004, 0x2099, 0xa601, 0x53a6, 0x20a9,
+	0x0010, 0x20a3, 0x0000, 0x00f0, 0x6579, 0x2099, 0xa895, 0x3304,
+	0xc0dd, 0x20a2, 0x2001, 0xa672, 0x2004, 0xd0e4, 0x0040, 0x6594,
+	0x20a3, 0x0000, 0x20a3, 0x0000, 0x9398, 0x9398, 0x9398, 0x33a6,
+	0x20a9, 0x0004, 0x0078, 0x6596, 0x20a9, 0x0007, 0x20a3, 0x0000,
+	0x00f0, 0x6596, 0x0078, 0x65bc, 0x2099, 0xa88d, 0x20a9, 0x0008,
+	0x53a6, 0x20a9, 0x0004, 0x2099, 0xa605, 0x53a6, 0x20a9, 0x0004,
+	0x2099, 0xa601, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x00f0,
+	0x65ad, 0x20a9, 0x0008, 0x20a3, 0x0000, 0x00f0, 0x65b3, 0x2099,
+	0xa895, 0x20a9, 0x0008, 0x53a6, 0x20a9, 0x0008, 0x20a3, 0x0000,
+	0x00f0, 0x65be, 0x20a9, 0x000a, 0x20a3, 0x0000, 0x00f0, 0x65c4,
+	0x60c3, 0x0074, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078,
+	0x6731, 0x20a3, 0x2010, 0x20a3, 0x0014, 0x20a3, 0x0800, 0x20a3,
+	0x2000, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x0f7e,
+	0x2079, 0xa652, 0x7904, 0x0f7f, 0xd1ac, 0x00c0, 0x65e9, 0xa085,
+	0x0020, 0xd1a4, 0x0040, 0x65ee, 0xa085, 0x0010, 0xa085, 0x0002,
+	0x0d7e, 0x0078, 0x66b7, 0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x60c3, 0x0014, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078,
+	0x6731, 0x20a3, 0x5000, 0x0078, 0x654f, 0x20a1, 0x020b, 0x1078,
+	0x6731, 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, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b,
+	0x1078, 0x67b9, 0x0078, 0x6630, 0x20a1, 0x020b, 0x1078, 0x67c2,
+	0x20a3, 0x0200, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x60c3, 0x0004, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078,
+	0x67c2, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3,
+	0x2a00, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b,
+	0x1078, 0x67c2, 0x20a3, 0x0200, 0x0078, 0x654f, 0x20a1, 0x020b,
+	0x1078, 0x67c2, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828, 0xa005,
+	0x0040, 0x6665, 0x20a2, 0x0078, 0x6667, 0x20a3, 0x0003, 0x7810,
+	0x20a2, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x007c, 0x0d7e, 0x20a1,
+	0x020b, 0x1078, 0x67c2, 0x20a3, 0x0210, 0x20a3, 0x0014, 0x20a3,
+	0x0800, 0x7818, 0x2068, 0x6894, 0xa086, 0x0014, 0x00c0, 0x6694,
+	0x6998, 0xa184, 0xc000, 0x00c0, 0x6690, 0xd1ec, 0x0040, 0x668c,
+	0x20a3, 0x2100, 0x0078, 0x6696, 0x20a3, 0x0100, 0x0078, 0x6696,
+	0x20a3, 0x0400, 0x0078, 0x6696, 0x20a3, 0x0700, 0xa006, 0x20a2,
+	0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x0f7e, 0x2079, 0xa652, 0x7904,
+	0x0f7f, 0xd1ac, 0x00c0, 0x66a6, 0xa085, 0x0020, 0xd1a4, 0x0040,
+	0x66ab, 0xa085, 0x0010, 0x2009, 0xa674, 0x210c, 0xd184, 0x0040,
+	0x66b5, 0x699c, 0xd18c, 0x0040, 0x66b7, 0xa085, 0x0002, 0x027e,
+	0x2009, 0xa672, 0x210c, 0xd1e4, 0x0040, 0x66c5, 0xc0c5, 0xa094,
+	0x0030, 0xa296, 0x0010, 0x0040, 0x66cf, 0xd1ec, 0x0040, 0x66cf,
+	0xa094, 0x0030, 0xa296, 0x0010, 0x0040, 0x66cf, 0xc0bd, 0x027f,
+	0x20a2, 0x20a2, 0x20a2, 0x60c3, 0x0014, 0x1078, 0x6dfb, 0x0d7f,
+	0x007c, 0x20a1, 0x020b, 0x1078, 0x67c2, 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, 0x1078,
+	0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078, 0x67c2, 0x20a3, 0x0200,
+	0x0078, 0x64c8, 0x20a1, 0x020b, 0x1078, 0x67c2, 0x20a3, 0x0100,
+	0x20a3, 0x0000, 0x20a3, 0x0003, 0x20a3, 0x2a00, 0x60c3, 0x0008,
+	0x1078, 0x6dfb, 0x007c, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a1,
+	0x020b, 0x1078, 0x67c2, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3,
+	0x000b, 0x20a3, 0x0000, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x007c,
+	0x027e, 0x037e, 0x047e, 0x2019, 0x3200, 0x2021, 0x0800, 0x0078,
+	0x6738, 0x027e, 0x037e, 0x047e, 0x2019, 0x2200, 0x2021, 0x0100,
+	0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2014,
+	0xa286, 0x007e, 0x00c0, 0x674b, 0xa385, 0x00ff, 0x20a2, 0x20a3,
+	0xfffe, 0x0078, 0x6780, 0xa286, 0x007f, 0x00c0, 0x6757, 0x0d7e,
+	0xa385, 0x00ff, 0x20a2, 0x20a3, 0xfffd, 0x0078, 0x676e, 0xd2bc,
+	0x0040, 0x6776, 0xa286, 0x0080, 0x0d7e, 0x00c0, 0x6766, 0xa385,
+	0x00ff, 0x20a2, 0x20a3, 0xfffc, 0x0078, 0x676e, 0xa2e8, 0xa735,
+	0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x6784, 0x0d7e, 0xa2e8,
+	0xa735, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x0d7f,
+	0x20a3, 0x0000, 0x6230, 0x22a2, 0xa485, 0x0029, 0x20a2, 0x047f,
+	0x037f, 0x20a3, 0x0000, 0x1078, 0x6dea, 0x22a2, 0x20a3, 0x0000,
+	0x2fa2, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x027f,
+	0x007c, 0x027e, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a3, 0x02ff,
+	0x2011, 0xfffc, 0x22a2, 0x0d7e, 0x2069, 0xa61b, 0x2da6, 0x8d68,
+	0x2da6, 0x0d7f, 0x20a3, 0x2029, 0x20a3, 0x0000, 0x0078, 0x678b,
+	0x20a3, 0x0100, 0x20a3, 0x0000, 0x20a3, 0xfc02, 0x20a3, 0x0000,
+	0x007c, 0x027e, 0x037e, 0x047e, 0x2019, 0x3300, 0x2021, 0x0800,
+	0x0078, 0x67c9, 0x027e, 0x037e, 0x047e, 0x2019, 0x2300, 0x2021,
+	0x0100, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xa092, 0x007e, 0x0048, 0x67e6, 0x0d7e, 0xa0e8, 0xa735,
+	0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x67f4, 0x0d7e, 0xa0e8,
+	0xa735, 0x2d6c, 0x6810, 0xa305, 0x20a2, 0x6814, 0x20a2, 0x0d7f,
+	0x20a3, 0x0000, 0x6230, 0x22a2, 0xa485, 0x0098, 0x20a2, 0x20a3,
+	0x0000, 0x047f, 0x037f, 0x1078, 0x6dea, 0x22a2, 0x20a3, 0x0000,
+	0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x027f,
+	0x007c, 0x0c7e, 0x0f7e, 0x6004, 0xa08a, 0x0085, 0x1048, 0x1332,
+	0xa08a, 0x008c, 0x10c8, 0x1332, 0x6118, 0x2178, 0x79a0, 0xd1bc,
+	0x0040, 0x6827, 0x7900, 0xd1f4, 0x0040, 0x6823, 0x7914, 0xa18c,
+	0x00ff, 0x0078, 0x682c, 0x2009, 0x0000, 0x0078, 0x682c, 0xa1f8,
+	0x29c0, 0x2f0c, 0xa18c, 0x00ff, 0x2c78, 0x2061, 0x0100, 0x619a,
+	0xa082, 0x0085, 0x1079, 0x6837, 0x0f7f, 0x0c7f, 0x007c, 0x6840,
+	0x684b, 0x6866, 0x683e, 0x683e, 0x683e, 0x6840, 0x1078, 0x1332,
+	0x147e, 0x20a1, 0x020b, 0x1078, 0x6879, 0x60c3, 0x0000, 0x1078,
+	0x6dfb, 0x147f, 0x007c, 0x147e, 0x20a1, 0x020b, 0x1078, 0x68ad,
+	0x20a3, 0x0000, 0x20a3, 0x0000, 0x7808, 0x20a2, 0x7810, 0x20a2,
+	0x20a3, 0x0000, 0x20a3, 0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x60c3, 0x000c, 0x1078, 0x6dfb, 0x147f, 0x007c, 0x147e, 0x20a1,
+	0x020b, 0x1078, 0x68ee, 0x20a3, 0x0003, 0x20a3, 0x0300, 0x20a3,
+	0x0000, 0x20a3, 0x0000, 0x60c3, 0x0004, 0x1078, 0x6dfb, 0x147f,
+	0x007c, 0x027e, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080,
+	0x0028, 0x2004, 0xa092, 0x007e, 0x0048, 0x6898, 0x0d7e, 0xa0e8,
+	0xa735, 0x2d6c, 0x6810, 0xa085, 0x8100, 0x20a2, 0x6814, 0x20a2,
+	0x2069, 0xa61b, 0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x68a7,
+	0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085, 0x8100, 0x20a2,
+	0x6814, 0x20a2, 0x0d7f, 0x20a3, 0x0000, 0x6230, 0x22a2, 0x20a3,
+	0x0009, 0x20a3, 0x0000, 0x0078, 0x678b, 0x027e, 0x20e1, 0x9080,
+	0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0xa092, 0x007e,
+	0x0048, 0x68cc, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085,
+	0x8400, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b, 0x2da6, 0x8d68,
+	0x2da6, 0x0d7f, 0x0078, 0x68db, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c,
+	0x6810, 0xa085, 0x8400, 0x20a2, 0x6814, 0x20a2, 0x0d7f, 0x20a3,
+	0x0000, 0x6230, 0x22a2, 0x20a3, 0x0099, 0x20a3, 0x0000, 0x1078,
+	0x6dea, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2, 0x7a10, 0x22a2,
+	0x20a3, 0x0000, 0x20a3, 0x0000, 0x027f, 0x007c, 0x027e, 0x20e1,
+	0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0xa092,
+	0x007e, 0x0048, 0x690d, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810,
+	0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b, 0x2da6,
+	0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x691c, 0x0d7e, 0xa0e8, 0xa735,
+	0x2d6c, 0x6810, 0xa085, 0x8500, 0x20a2, 0x6814, 0x20a2, 0x0d7f,
+	0x20a3, 0x0000, 0x6230, 0x22a2, 0x20a3, 0x0099, 0x20a3, 0x0000,
+	0x0078, 0x68df, 0x0c7e, 0x0f7e, 0x2c78, 0x7804, 0xa08a, 0x0040,
+	0x1048, 0x1332, 0xa08a, 0x0053, 0x10c8, 0x1332, 0x7918, 0x2160,
+	0x61a0, 0xd1bc, 0x0040, 0x6941, 0x6100, 0xd1f4, 0x0040, 0x693d,
+	0x6114, 0xa18c, 0x00ff, 0x0078, 0x6946, 0x2009, 0x0000, 0x0078,
+	0x6946, 0xa1e0, 0x29c0, 0x2c0c, 0xa18c, 0x00ff, 0x2061, 0x0100,
+	0x619a, 0xa082, 0x0040, 0x1079, 0x6950, 0x0f7f, 0x0c7f, 0x007c,
+	0x6965, 0x6a73, 0x6a14, 0x6c27, 0x6963, 0x6963, 0x6963, 0x6963,
+	0x6963, 0x6963, 0x6963, 0x714c, 0x715d, 0x716e, 0x717f, 0x6963,
+	0x767e, 0x6963, 0x713b, 0x1078, 0x1332, 0x0d7e, 0x157e, 0x147e,
+	0x780b, 0xffff, 0x20a1, 0x020b, 0x1078, 0x69d0, 0x7910, 0x2168,
+	0x6948, 0x7922, 0x21a2, 0xa016, 0x22a2, 0x22a2, 0x22a2, 0x694c,
+	0xa184, 0x000f, 0x00c0, 0x6980, 0x2001, 0x0005, 0x0078, 0x698a,
+	0xd184, 0x0040, 0x6987, 0x2001, 0x0004, 0x0078, 0x698a, 0xa084,
+	0x0006, 0x8004, 0x017e, 0x2008, 0x7830, 0xa084, 0x00ff, 0x8007,
+	0xa105, 0x017f, 0x20a2, 0xd1ac, 0x0040, 0x699a, 0x20a3, 0x0002,
+	0x0078, 0x69a6, 0xd1b4, 0x0040, 0x69a1, 0x20a3, 0x0001, 0x0078,
+	0x69a6, 0x20a3, 0x0000, 0x2230, 0x0078, 0x69a8, 0x6a80, 0x6e7c,
+	0x20a9, 0x0008, 0xad80, 0x0017, 0x200c, 0x810f, 0x21a2, 0x8000,
+	0x00f0, 0x69ac, 0x22a2, 0x26a2, 0x60c3, 0x0020, 0x20e1, 0x9080,
+	0x6014, 0xa084, 0x0004, 0xa085, 0x0009, 0x6016, 0x2001, 0xa8cd,
+	0x2003, 0x07d0, 0x2001, 0xa8cc, 0x2003, 0x0009, 0x2001, 0xa8d2,
+	0x2003, 0x0002, 0x1078, 0x158c, 0x147f, 0x157f, 0x0d7f, 0x007c,
+	0x20e1, 0x9080, 0x20e1, 0x4000, 0x7a18, 0xa280, 0x0023, 0x2014,
+	0x8210, 0xa294, 0x00ff, 0x2202, 0x8217, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xd0bc, 0x0040, 0x69f6, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c,
+	0x6810, 0xa085, 0x0600, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x6a05, 0x0d7e, 0xa0e8,
+	0xa735, 0x2d6c, 0x6810, 0xa085, 0x0600, 0x20a2, 0x6814, 0x20a2,
+	0x0d7f, 0x20a3, 0x0000, 0x6130, 0x21a2, 0x20a3, 0x0829, 0x20a3,
+	0x0000, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3, 0xffff, 0x20a3,
+	0x0000, 0x20a3, 0x0000, 0x007c, 0x0d7e, 0x157e, 0x137e, 0x147e,
+	0x20a1, 0x020b, 0x1078, 0x6a34, 0x7810, 0x2068, 0x6860, 0x20a2,
+	0x685c, 0x20a2, 0x6880, 0x20a2, 0x687c, 0x20a2, 0xa006, 0x20a2,
+	0x20a2, 0x20a2, 0x20a2, 0x60c3, 0x000c, 0x1078, 0x6dfb, 0x147f,
+	0x137f, 0x157f, 0x0d7f, 0x007c, 0x027e, 0x20e1, 0x9080, 0x20e1,
+	0x4000, 0x7818, 0xa080, 0x0028, 0x2004, 0xd0bc, 0x0040, 0x6a52,
+	0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085, 0x0500, 0x20a2,
+	0x6814, 0x20a2, 0x2069, 0xa61b, 0x2da6, 0x8d68, 0x2da6, 0x0d7f,
+	0x0078, 0x6a61, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085,
+	0x0500, 0x20a2, 0x6814, 0x20a2, 0x0d7f, 0x20a3, 0x0000, 0x6230,
+	0x22a2, 0x20a3, 0x0889, 0x20a3, 0x0000, 0x1078, 0x6dea, 0x22a2,
+	0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x027f, 0x007c, 0x0d7e, 0x157e, 0x137e, 0x147e, 0x7810,
+	0xa0ec, 0xf000, 0x0040, 0x6a8b, 0xa06d, 0x1078, 0x495f, 0x0040,
+	0x6a8b, 0x684c, 0xa084, 0x2020, 0xa086, 0x2020, 0x00c0, 0x6a8b,
+	0x7824, 0xc0cd, 0x7826, 0x20a1, 0x020b, 0x1078, 0x6be0, 0xa016,
+	0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x7810, 0xa084, 0xf000,
+	0x00c0, 0x6aa2, 0x7810, 0xa084, 0x0700, 0x8007, 0x1079, 0x6aaa,
+	0x0078, 0x6aa5, 0xa006, 0x1079, 0x6aaa, 0x147f, 0x137f, 0x157f,
+	0x0d7f, 0x007c, 0x6ab4, 0x6b4c, 0x6b57, 0x6b81, 0x6b95, 0x6bb1,
+	0x6bbc, 0x6ab2, 0x1078, 0x1332, 0x017e, 0x037e, 0x694c, 0xa18c,
+	0x0003, 0x0040, 0x6abf, 0xa186, 0x0003, 0x00c0, 0x6ace, 0x6b78,
+	0x7824, 0xd0cc, 0x0040, 0x6ac5, 0xc3e5, 0x23a2, 0x6868, 0x20a2,
+	0x6864, 0x20a2, 0x037f, 0x017f, 0x0078, 0x6b8c, 0xa186, 0x0001,
+	0x10c0, 0x1332, 0x6b78, 0x7824, 0xd0cc, 0x0040, 0x6ad8, 0xc3e5,
+	0x23a2, 0x6868, 0x20a2, 0x6864, 0x20a2, 0x22a2, 0x6874, 0x20a2,
+	0x22a2, 0x687c, 0x20a2, 0x2009, 0x0018, 0xa384, 0x0300, 0x0040,
+	0x6b46, 0xd3c4, 0x0040, 0x6aee, 0x687c, 0xa108, 0xd3cc, 0x0040,
+	0x6af3, 0x6874, 0xa108, 0x157e, 0x20a9, 0x000d, 0xad80, 0x0020,
+	0x201c, 0x831f, 0x23a2, 0x8000, 0x00f0, 0x6af8, 0x157f, 0x22a2,
+	0x22a2, 0x22a2, 0xa184, 0x0003, 0x0040, 0x6b46, 0x20a1, 0x020b,
+	0x20e1, 0x9080, 0x20e1, 0x4000, 0x007e, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xd0bc, 0x0040, 0x6b26, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c,
+	0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x6b35, 0x0d7e, 0xa0e8,
+	0xa735, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
+	0x0d7f, 0x20a3, 0x0000, 0x6230, 0x22a2, 0x007f, 0x7b24, 0xd3cc,
+	0x0040, 0x6b3e, 0x20a3, 0x0889, 0x0078, 0x6b40, 0x20a3, 0x0898,
+	0x20a2, 0x1078, 0x6dea, 0x22a2, 0x20a3, 0x0000, 0x61c2, 0x037f,
+	0x017f, 0x1078, 0x6dfb, 0x007c, 0x2011, 0x0008, 0x7824, 0xd0cc,
+	0x0040, 0x6b53, 0xc2e5, 0x22a2, 0xa016, 0x0078, 0x6b8a, 0x2011,
+	0x0302, 0x7824, 0xd0cc, 0x0040, 0x6b5e, 0xc2e5, 0x22a2, 0xa016,
+	0x22a2, 0x22a2, 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, 0x1078, 0x6dfb,
+	0x007c, 0x2011, 0x0028, 0x7824, 0xd0cc, 0x0040, 0x6b88, 0xc2e5,
+	0x22a2, 0xa016, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2, 0x22a2,
+	0x60c3, 0x0018, 0x1078, 0x6dfb, 0x007c, 0x2011, 0x0100, 0x7824,
+	0xd0cc, 0x0040, 0x6b9c, 0xc2e5, 0x22a2, 0xa016, 0x22a2, 0x22a2,
+	0x22a2, 0x22a2, 0x22a2, 0x20a3, 0x0008, 0x22a2, 0x7834, 0xa084,
+	0x00ff, 0x20a2, 0x22a2, 0x22a2, 0x60c3, 0x0020, 0x1078, 0x6dfb,
+	0x007c, 0x2011, 0x0008, 0x7824, 0xd0cc, 0x0040, 0x6bb8, 0xc2e5,
+	0x22a2, 0xa016, 0x0078, 0x6b8a, 0x037e, 0x7b10, 0xa384, 0xff00,
+	0x7812, 0xa384, 0x00ff, 0x8001, 0x00c0, 0x6bcf, 0x7824, 0xd0cc,
+	0x0040, 0x6bcb, 0xc2e5, 0x22a2, 0x037f, 0x0078, 0x6b8a, 0x047e,
+	0x2021, 0x0800, 0x007e, 0x7824, 0xd0cc, 0x007f, 0x0040, 0x6bd9,
+	0xc4e5, 0x24a2, 0x047f, 0x22a2, 0x20a2, 0x037f, 0x0078, 0x6b8c,
+	0x027e, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xd0bc, 0x0040, 0x6bfe, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c,
+	0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x6c0d, 0x0d7e, 0xa0e8,
+	0xa735, 0x2d6c, 0x6810, 0xa085, 0x0700, 0x20a2, 0x6814, 0x20a2,
+	0x0d7f, 0x20a3, 0x0000, 0x6230, 0x22a2, 0x7824, 0xd0cc, 0x0040,
+	0x6c15, 0x20a3, 0x0889, 0x0078, 0x6c17, 0x20a3, 0x0898, 0x20a3,
+	0x0000, 0x1078, 0x6dea, 0x22a2, 0x20a3, 0x0000, 0x7a08, 0x22a2,
+	0x2fa2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x027f, 0x007c, 0x0d7e,
+	0x157e, 0x137e, 0x147e, 0x017e, 0x037e, 0x7810, 0xa084, 0x0700,
+	0x8007, 0x1079, 0x6c3a, 0x037f, 0x017f, 0x147f, 0x137f, 0x157f,
+	0x0d7f, 0x007c, 0x6c42, 0x6c42, 0x6c44, 0x6c42, 0x6c42, 0x6c42,
+	0x6c69, 0x6c42, 0x1078, 0x1332, 0x7910, 0xa18c, 0xf8ff, 0xa18d,
+	0x0600, 0x7912, 0x20a1, 0x020b, 0x2009, 0x0003, 0x1078, 0x6c73,
+	0x0d7e, 0x2069, 0xa652, 0x6804, 0xd0bc, 0x0040, 0x6c5e, 0x682c,
+	0xa084, 0x00ff, 0x8007, 0x20a2, 0x0078, 0x6c60, 0x20a3, 0x3f00,
+	0x0d7f, 0x22a2, 0x22a2, 0x22a2, 0x60c3, 0x0001, 0x1078, 0x6dfb,
+	0x007c, 0x20a1, 0x020b, 0x2009, 0x0003, 0x1078, 0x6c73, 0x20a3,
+	0x7f00, 0x0078, 0x6c61, 0x027e, 0x20e1, 0x9080, 0x20e1, 0x4000,
+	0x7818, 0xa080, 0x0028, 0x2004, 0xd0bc, 0x0040, 0x6c91, 0x0d7e,
+	0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085, 0x0100, 0x20a2, 0x6814,
+	0x20a2, 0x2069, 0xa61b, 0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078,
+	0x6ca0, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c, 0x6810, 0xa085, 0x0100,
+	0x20a2, 0x6814, 0x20a2, 0x0d7f, 0x20a3, 0x0000, 0x6230, 0x22a2,
+	0x20a3, 0x0888, 0xa18d, 0x0008, 0x21a2, 0x1078, 0x6dea, 0x22a2,
+	0x20a3, 0x0000, 0x7a08, 0x22a2, 0x2fa2, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x027f, 0x007c, 0x0e7e, 0x0d7e, 0x0c7e, 0x057e, 0x047e,
+	0x037e, 0x2061, 0x0100, 0x2071, 0xa600, 0x6130, 0x7818, 0x2068,
+	0x68a0, 0x2028, 0xd0bc, 0x00c0, 0x6cca, 0x6910, 0x6a14, 0x6430,
+	0x0078, 0x6cce, 0x6910, 0x6a14, 0x736c, 0x7470, 0x781c, 0xa086,
+	0x0006, 0x0040, 0x6d2d, 0xd5bc, 0x0040, 0x6cde, 0xa185, 0x0100,
+	0x6062, 0x6266, 0x636a, 0x646e, 0x0078, 0x6ce5, 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, 0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7, 0x0000,
+	0xa582, 0x0080, 0x0048, 0x6d17, 0x6a00, 0xd2f4, 0x0040, 0x6d15,
+	0x6a14, 0xa294, 0x00ff, 0x0078, 0x6d17, 0x2011, 0x0000, 0x629e,
+	0x6017, 0x0016, 0x2009, 0x07d0, 0x60c4, 0xa084, 0xfff0, 0xa005,
+	0x0040, 0x6d24, 0x2009, 0x1b58, 0x1078, 0x5ad0, 0x037f, 0x047f,
+	0x057f, 0x0c7f, 0x0d7f, 0x0e7f, 0x007c, 0x7810, 0x2070, 0x704c,
+	0xa084, 0x0003, 0xa086, 0x0002, 0x0040, 0x6d85, 0xd5bc, 0x0040,
+	0x6d41, 0xa185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e, 0x0078,
+	0x6d48, 0xa185, 0x0100, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e,
+	0x6073, 0x0880, 0x6077, 0x0008, 0x688c, 0x8000, 0xa084, 0x00ff,
+	0x688e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00, 0x6086, 0x7808,
+	0x6082, 0x7060, 0x608a, 0x705c, 0x608e, 0x7080, 0x60c6, 0x707c,
+	0x60ca, 0x707c, 0x792c, 0xa108, 0x792e, 0x7080, 0x7928, 0xa109,
+	0x792a, 0x686c, 0x60ce, 0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7,
+	0x0000, 0xa582, 0x0080, 0x0048, 0x6d80, 0x6a00, 0xd2f4, 0x0040,
+	0x6d7e, 0x6a14, 0xa294, 0x00ff, 0x0078, 0x6d80, 0x2011, 0x0000,
+	0x629e, 0x6017, 0x0012, 0x0078, 0x6d1a, 0xd5bc, 0x0040, 0x6d90,
+	0xa185, 0x0700, 0x6062, 0x6266, 0x636a, 0x646e, 0x0078, 0x6d97,
+	0xa185, 0x0700, 0x6062, 0x6266, 0x606b, 0x0000, 0x646e, 0x1078,
+	0x495f, 0x0040, 0x6dad, 0x0d7e, 0x7810, 0xa06d, 0x684c, 0x0d7f,
+	0xa084, 0x2020, 0xa086, 0x2020, 0x00c0, 0x6dad, 0x7824, 0xc0cd,
+	0x7826, 0x6073, 0x0889, 0x0078, 0x6daf, 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,
+	0x60ab, 0x0036, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xa582, 0x0080,
+	0x0048, 0x6ddd, 0x6a00, 0xd2f4, 0x0040, 0x6ddb, 0x6a14, 0xa294,
+	0x00ff, 0x0078, 0x6ddd, 0x2011, 0x0000, 0x629e, 0x7824, 0xd0cc,
+	0x0040, 0x6de6, 0x6017, 0x0016, 0x0078, 0x6d1a, 0x6017, 0x0012,
+	0x0078, 0x6d1a, 0x7a18, 0xa280, 0x0023, 0x2014, 0x8210, 0xa294,
+	0x00ff, 0x2202, 0x8217, 0x007c, 0x0d7e, 0x2069, 0xa8b1, 0x6843,
+	0x0001, 0x0d7f, 0x007c, 0x20e1, 0x9080, 0x60a3, 0x0056, 0x60a7,
+	0x9575, 0x1078, 0x6e06, 0x1078, 0x5ac0, 0x007c, 0x007e, 0x6014,
+	0xa084, 0x0004, 0xa085, 0x0009, 0x6016, 0x007f, 0x007c, 0x007e,
+	0x0c7e, 0x2061, 0x0100, 0x6014, 0xa084, 0x0004, 0xa085, 0x0008,
+	0x6016, 0x0c7f, 0x007f, 0x007c, 0x0c7e, 0x0d7e, 0x017e, 0x027e,
+	0x2061, 0x0100, 0x2069, 0x0140, 0x6904, 0xa194, 0x4000, 0x0040,
+	0x6e59, 0x1078, 0x6e0f, 0x6803, 0x1000, 0x6803, 0x0000, 0x0c7e,
+	0x2061, 0xa8b1, 0x6128, 0xa192, 0x00c8, 0x00c8, 0x6e44, 0x8108,
+	0x612a, 0x6124, 0x0c7f, 0x81ff, 0x0040, 0x6e54, 0x1078, 0x5ac0,
+	0x1078, 0x6e06, 0x0078, 0x6e54, 0x6124, 0xa1e5, 0x0000, 0x0040,
+	0x6e51, 0x1078, 0xa5c4, 0x1078, 0x5acb, 0x2009, 0x0014, 0x1078,
+	0x775c, 0x0c7f, 0x0078, 0x6e54, 0x027f, 0x017f, 0x0d7f, 0x0c7f,
+	0x007c, 0x2001, 0xa8cd, 0x2004, 0xa005, 0x00c0, 0x6e54, 0x0c7e,
+	0x2061, 0xa8b1, 0x6128, 0xa192, 0x0003, 0x00c8, 0x6e44, 0x8108,
+	0x612a, 0x0c7f, 0x1078, 0x5ac0, 0x1078, 0x4224, 0x0078, 0x6e54,
+	0x0c7e, 0x0d7e, 0x0e7e, 0x017e, 0x027e, 0x1078, 0x5ad8, 0x2071,
+	0xa8b1, 0x713c, 0x81ff, 0x0040, 0x6e9a, 0x2061, 0x0100, 0x2069,
+	0x0140, 0x6904, 0xa194, 0x4000, 0x0040, 0x6ea0, 0x6803, 0x1000,
+	0x6803, 0x0000, 0x037e, 0x2019, 0x0001, 0x1078, 0x7058, 0x037f,
+	0x713c, 0x2160, 0x1078, 0xa5c4, 0x2009, 0x004a, 0x1078, 0x775c,
+	0x0078, 0x6e9a, 0x027f, 0x017f, 0x0e7f, 0x0d7f, 0x0c7f, 0x007c,
+	0x0078, 0x6e8a, 0x0e7e, 0x2071, 0xa8b1, 0x7048, 0xd084, 0x0040,
+	0x6ebc, 0x713c, 0x81ff, 0x0040, 0x6ebc, 0x2071, 0x0100, 0xa188,
+	0x0007, 0x210c, 0xa18e, 0x0006, 0x00c0, 0x6eba, 0x7017, 0x0012,
+	0x0078, 0x6ebc, 0x7017, 0x0016, 0x0e7f, 0x007c, 0x0e7e, 0x0d7e,
+	0x0c7e, 0x067e, 0x057e, 0x047e, 0x007e, 0x127e, 0x2091, 0x8000,
+	0x6018, 0x2068, 0x6ca0, 0x2071, 0xa8b1, 0x7018, 0x2068, 0x8dff,
+	0x0040, 0x6ee6, 0x68a0, 0xa406, 0x0040, 0x6eda, 0x6854, 0x2068,
+	0x0078, 0x6ecf, 0x6010, 0x2060, 0x643c, 0x6540, 0x6648, 0x2d60,
+	0x1078, 0x4736, 0x0040, 0x6ee6, 0xa085, 0x0001, 0x127f, 0x007f,
+	0x047f, 0x057f, 0x067f, 0x0c7f, 0x0d7f, 0x0e7f, 0x007c, 0x20a1,
+	0x020b, 0x1078, 0x6731, 0x20a3, 0x1200, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x781c, 0xa086, 0x0004, 0x00c0, 0x6f01, 0x6098, 0x0078,
+	0x6f02, 0x6030, 0x20a2, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x20a9,
+	0x0010, 0xa006, 0x20a2, 0x00f0, 0x6f0a, 0x20a2, 0x20a2, 0x60c3,
+	0x002c, 0x1078, 0x6dfb, 0x007c, 0x157e, 0x147e, 0x20a1, 0x020b,
+	0x1078, 0x6731, 0x20a3, 0x0f00, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x7808, 0x20a2, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x147f, 0x157f,
+	0x007c, 0x157e, 0x147e, 0x20a1, 0x020b, 0x1078, 0x67c2, 0x20a3,
+	0x0200, 0x20a3, 0x0000, 0x20a9, 0x0006, 0x2011, 0xa640, 0x2019,
+	0xa641, 0x23a6, 0x22a6, 0xa398, 0x0002, 0xa290, 0x0002, 0x00f0,
+	0x6f39, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x001c, 0x1078,
+	0x6dfb, 0x147f, 0x157f, 0x007c, 0x157e, 0x147e, 0x017e, 0x027e,
+	0x20a1, 0x020b, 0x1078, 0x6799, 0x1078, 0x67b0, 0x7810, 0xa080,
+	0x0000, 0x2004, 0xa080, 0x0015, 0x2098, 0x7808, 0xa088, 0x0002,
+	0x21a8, 0x53a6, 0xa080, 0x0004, 0x8003, 0x60c2, 0x1078, 0x6dfb,
+	0x027f, 0x017f, 0x147f, 0x157f, 0x007c, 0x157e, 0x147e, 0x20a1,
+	0x020b, 0x1078, 0x6731, 0x20a3, 0x6200, 0x20a3, 0x0000, 0x20a3,
+	0x0000, 0x7808, 0x20a2, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x147f,
+	0x157f, 0x007c, 0x157e, 0x147e, 0x017e, 0x027e, 0x20a1, 0x020b,
+	0x1078, 0x6731, 0x7810, 0xa080, 0x0000, 0x2004, 0xa080, 0x0017,
+	0x2098, 0x7808, 0xa088, 0x0002, 0x21a8, 0x53a6, 0x8003, 0x60c2,
+	0x1078, 0x6dfb, 0x027f, 0x017f, 0x147f, 0x157f, 0x007c, 0x0e7e,
+	0x0c7e, 0x007e, 0x127e, 0x2091, 0x8000, 0x2071, 0xa8b1, 0x700c,
+	0x2060, 0x8cff, 0x0040, 0x6fbb, 0x1078, 0x8f00, 0x00c0, 0x6fb2,
+	0x1078, 0x7c83, 0x600c, 0x007e, 0x1078, 0x772d, 0x1078, 0x7233,
+	0x0c7f, 0x0078, 0x6fa9, 0x700f, 0x0000, 0x700b, 0x0000, 0x127f,
+	0x007f, 0x0c7f, 0x0e7f, 0x007c, 0x127e, 0x157e, 0x0f7e, 0x0e7e,
+	0x0d7e, 0x0c7e, 0x027e, 0x017e, 0x007e, 0x2091, 0x8000, 0x2069,
+	0x0100, 0x2079, 0x0140, 0x2071, 0xa8b1, 0x7024, 0x2060, 0x8cff,
+	0x0040, 0x7014, 0x1078, 0x6e0f, 0x68c3, 0x0000, 0x1078, 0x5acb,
+	0x2009, 0x0013, 0x1078, 0x775c, 0x20a9, 0x01f4, 0x6824, 0xd094,
+	0x0040, 0x6ff7, 0x6827, 0x0004, 0x7804, 0xa084, 0x4000, 0x0040,
+	0x7009, 0x7803, 0x1000, 0x7803, 0x0000, 0x0078, 0x7009, 0xd084,
+	0x0040, 0x6ffe, 0x6827, 0x0001, 0x0078, 0x7000, 0x00f0, 0x6fe6,
+	0x7804, 0xa084, 0x1000, 0x0040, 0x7009, 0x7803, 0x0100, 0x7803,
+	0x0000, 0x6824, 0x007f, 0x017f, 0x027f, 0x0c7f, 0x0d7f, 0x0e7f,
+	0x0f7f, 0x157f, 0x127f, 0x007c, 0x2001, 0xa600, 0x2004, 0xa096,
+	0x0001, 0x0040, 0x704e, 0xa096, 0x0004, 0x0040, 0x704e, 0x1078,
+	0x5acb, 0x6817, 0x0008, 0x68c3, 0x0000, 0x2011, 0x41dc, 0x1078,
+	0x5a45, 0x20a9, 0x01f4, 0x6824, 0xd094, 0x0040, 0x703c, 0x6827,
+	0x0004, 0x7804, 0xa084, 0x4000, 0x0040, 0x704e, 0x7803, 0x1000,
+	0x7803, 0x0000, 0x0078, 0x704e, 0xd084, 0x0040, 0x7043, 0x6827,
+	0x0001, 0x0078, 0x7045, 0x00f0, 0x702b, 0x7804, 0xa084, 0x1000,
+	0x0040, 0x704e, 0x7803, 0x0100, 0x7803, 0x0000, 0x007f, 0x017f,
+	0x027f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f, 0x157f, 0x127f, 0x007c,
+	0x127e, 0x157e, 0x0f7e, 0x0e7e, 0x0d7e, 0x0c7e, 0x027e, 0x017e,
+	0x007e, 0x2091, 0x8000, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071,
+	0xa8b1, 0x703c, 0x2060, 0x8cff, 0x0040, 0x70d6, 0x68af, 0x95f5,
+	0x6817, 0x0010, 0x2009, 0x00fa, 0x8109, 0x00c0, 0x7074, 0x68c7,
+	0x0000, 0x68cb, 0x0008, 0x1078, 0x5ad8, 0x1078, 0x1f7e, 0x047e,
+	0x057e, 0x2009, 0x017f, 0x212c, 0x200b, 0x00a5, 0x2021, 0x0169,
+	0x2404, 0xa084, 0x000f, 0xa086, 0x0004, 0x00c0, 0x70a5, 0x68c7,
+	0x0000, 0x68cb, 0x0008, 0x0e7e, 0x0f7e, 0x2079, 0x0020, 0x2071,
+	0xa908, 0x6814, 0xa084, 0x0004, 0xa085, 0x0012, 0x6816, 0x7803,
+	0x0008, 0x7003, 0x0000, 0x0f7f, 0x0e7f, 0x250a, 0x057f, 0x047f,
+	0xa39d, 0x0000, 0x00c0, 0x70b0, 0x2009, 0x0049, 0x1078, 0x775c,
+	0x20a9, 0x03e8, 0x6824, 0xd094, 0x0040, 0x70c3, 0x6827, 0x0004,
+	0x7804, 0xa084, 0x4000, 0x0040, 0x70d5, 0x7803, 0x1000, 0x7803,
+	0x0000, 0x0078, 0x70d5, 0xd08c, 0x0040, 0x70ca, 0x6827, 0x0002,
+	0x0078, 0x70cc, 0x00f0, 0x70b2, 0x7804, 0xa084, 0x1000, 0x0040,
+	0x70d5, 0x7803, 0x0100, 0x7803, 0x0000, 0x6824, 0x007f, 0x017f,
+	0x027f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f, 0x157f, 0x127f, 0x007c,
+	0x0d7e, 0x127e, 0x2091, 0x8000, 0x2069, 0xa8b1, 0x6a06, 0x127f,
+	0x0d7f, 0x007c, 0x0d7e, 0x127e, 0x2091, 0x8000, 0x2069, 0xa8b1,
+	0x6a32, 0x127f, 0x0d7f, 0x007c, 0x0f7e, 0x0e7e, 0x0c7e, 0x067e,
+	0x007e, 0x127e, 0x2071, 0xa8b1, 0x7614, 0x2660, 0x2678, 0x2091,
+	0x8000, 0x8cff, 0x0040, 0x7134, 0x601c, 0xa206, 0x00c0, 0x712f,
+	0x7014, 0xac36, 0x00c0, 0x710e, 0x660c, 0x7616, 0x7010, 0xac36,
+	0x00c0, 0x711c, 0x2c00, 0xaf36, 0x0040, 0x711a, 0x2f00, 0x7012,
+	0x0078, 0x711c, 0x7013, 0x0000, 0x660c, 0x067e, 0x2c00, 0xaf06,
+	0x0040, 0x7125, 0x7e0e, 0x0078, 0x7126, 0x2678, 0x600f, 0x0000,
+	0x1078, 0x8ec6, 0x1078, 0x7233, 0x0c7f, 0x0078, 0x7101, 0x2c78,
+	0x600c, 0x2060, 0x0078, 0x7101, 0x127f, 0x007f, 0x067f, 0x0c7f,
+	0x0e7f, 0x0f7f, 0x007c, 0x157e, 0x147e, 0x20a1, 0x020b, 0x1078,
+	0x69d0, 0x7810, 0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2, 0x20a2,
+	0x20a3, 0x1000, 0x0078, 0x718e, 0x157e, 0x147e, 0x20a1, 0x020b,
+	0x1078, 0x69d0, 0x7810, 0x20a2, 0xa006, 0x20a2, 0x20a2, 0x20a2,
+	0x20a2, 0x20a3, 0x4000, 0x0078, 0x718e, 0x157e, 0x147e, 0x20a1,
+	0x020b, 0x1078, 0x69d0, 0x7810, 0x20a2, 0xa006, 0x20a2, 0x20a2,
+	0x20a2, 0x20a2, 0x20a3, 0x2000, 0x0078, 0x718e, 0x157e, 0x147e,
+	0x20a1, 0x020b, 0x1078, 0x69d0, 0x7810, 0x20a2, 0xa006, 0x20a2,
+	0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0400, 0x0078, 0x718e, 0x157e,
+	0x147e, 0x20a1, 0x020b, 0x1078, 0x69d0, 0x7810, 0x20a2, 0xa006,
+	0x20a2, 0x20a2, 0x20a2, 0x20a2, 0x20a3, 0x0200, 0x1078, 0x723e,
+	0x60c3, 0x0020, 0x1078, 0x6dfb, 0x147f, 0x157f, 0x007c, 0x127e,
+	0x0c7e, 0x2091, 0x8000, 0x2061, 0x0100, 0x6120, 0xd1b4, 0x00c0,
+	0x71a6, 0xd1bc, 0x00c0, 0x71f0, 0x0078, 0x7230, 0x2009, 0x017f,
+	0x200b, 0x00a1, 0x157e, 0x007e, 0x0d7e, 0x2069, 0x0140, 0x20a9,
+	0x001e, 0x2009, 0x0169, 0x6804, 0xa084, 0x4000, 0x0040, 0x71e7,
+	0x6020, 0xd0b4, 0x0040, 0x71e7, 0x6024, 0xd094, 0x00c0, 0x71e7,
+	0x2104, 0xa084, 0x000f, 0xa086, 0x0004, 0x00c0, 0x71e7, 0x00f0,
+	0x71b3, 0x027e, 0x6198, 0xa18c, 0x00ff, 0x8107, 0x6130, 0xa18c,
+	0x00ff, 0xa10d, 0x6088, 0x628c, 0x618e, 0x608b, 0xbc91, 0x6043,
+	0x0001, 0x6043, 0x0000, 0x608a, 0x628e, 0x6024, 0xd094, 0x00c0,
+	0x71e6, 0x6a04, 0xa294, 0x4000, 0x00c0, 0x71dd, 0x027f, 0x0d7f,
+	0x007f, 0x157f, 0x2009, 0x017f, 0x200b, 0x0000, 0x0078, 0x7230,
+	0x2009, 0x017f, 0x200b, 0x00a1, 0x157e, 0x007e, 0x0d7e, 0x2069,
+	0x0140, 0x20a9, 0x001e, 0x2009, 0x0169, 0x6804, 0xa084, 0x4000,
+	0x0040, 0x7229, 0x6020, 0xd0bc, 0x0040, 0x7229, 0x2104, 0xa084,
+	0x000f, 0xa086, 0x0004, 0x00c0, 0x7229, 0x00f0, 0x71fd, 0x027e,
+	0x6164, 0xa18c, 0x00ff, 0x8107, 0x6130, 0xa18c, 0x00ff, 0xa10d,
+	0x6088, 0x628c, 0x608b, 0xbc91, 0x618e, 0x6043, 0x0001, 0x6043,
+	0x0000, 0x608a, 0x628e, 0x6a04, 0xa294, 0x4000, 0x00c0, 0x7223,
+	0x027f, 0x0d7f, 0x007f, 0x157f, 0x2009, 0x017f, 0x200b, 0x0000,
+	0x0c7f, 0x127f, 0x007c, 0x0e7e, 0x2071, 0xa8b1, 0x7020, 0xa005,
+	0x0040, 0x723c, 0x8001, 0x7022, 0x0e7f, 0x007c, 0x20a9, 0x0008,
+	0x20a2, 0x00f0, 0x7240, 0x20a2, 0x20a2, 0x007c, 0x0f7e, 0x0e7e,
+	0x0d7e, 0x0c7e, 0x077e, 0x067e, 0x007e, 0x127e, 0x2091, 0x8000,
+	0x2071, 0xa8b1, 0x7614, 0x2660, 0x2678, 0x2039, 0x0001, 0x87ff,
+	0x0040, 0x72e2, 0x8cff, 0x0040, 0x72e2, 0x601c, 0xa086, 0x0006,
+	0x00c0, 0x72dd, 0x88ff, 0x0040, 0x726d, 0x2800, 0xac06, 0x00c0,
+	0x72dd, 0x2039, 0x0000, 0x0078, 0x7278, 0x6018, 0xa206, 0x00c0,
+	0x72dd, 0x85ff, 0x0040, 0x7278, 0x6020, 0xa106, 0x00c0, 0x72dd,
+	0x7024, 0xac06, 0x00c0, 0x72a8, 0x2069, 0x0100, 0x68c0, 0xa005,
+	0x0040, 0x72a3, 0x1078, 0x5acb, 0x6817, 0x0008, 0x68c3, 0x0000,
+	0x1078, 0x7378, 0x7027, 0x0000, 0x037e, 0x2069, 0x0140, 0x6b04,
+	0xa384, 0x1000, 0x0040, 0x7298, 0x6803, 0x0100, 0x6803, 0x0000,
+	0x2069, 0x0100, 0x6824, 0xd084, 0x0040, 0x72a0, 0x6827, 0x0001,
+	0x037f, 0x0078, 0x72a8, 0x6003, 0x0009, 0x630a, 0x0078, 0x72dd,
+	0x7014, 0xac36, 0x00c0, 0x72ae, 0x660c, 0x7616, 0x7010, 0xac36,
+	0x00c0, 0x72bc, 0x2c00, 0xaf36, 0x0040, 0x72ba, 0x2f00, 0x7012,
+	0x0078, 0x72bc, 0x7013, 0x0000, 0x660c, 0x067e, 0x2c00, 0xaf06,
+	0x0040, 0x72c5, 0x7e0e, 0x0078, 0x72c6, 0x2678, 0x89ff, 0x00c0,
+	0x72d5, 0x600f, 0x0000, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040,
+	0x72d3, 0x1078, 0xa1ca, 0x1078, 0x8ec6, 0x1078, 0x7233, 0x88ff,
+	0x00c0, 0x72ec, 0x0c7f, 0x0078, 0x7257, 0x2c78, 0x600c, 0x2060,
+	0x0078, 0x7257, 0xa006, 0x127f, 0x007f, 0x067f, 0x077f, 0x0c7f,
+	0x0d7f, 0x0e7f, 0x0f7f, 0x007c, 0x6017, 0x0000, 0x0c7f, 0xa8c5,
+	0x0001, 0x0078, 0x72e3, 0x0f7e, 0x0e7e, 0x0d7e, 0x0c7e, 0x067e,
+	0x027e, 0x007e, 0x127e, 0x2091, 0x8000, 0x2071, 0xa8b1, 0x7638,
+	0x2660, 0x2678, 0x8cff, 0x0040, 0x7367, 0x601c, 0xa086, 0x0006,
+	0x00c0, 0x7362, 0x87ff, 0x0040, 0x7313, 0x2700, 0xac06, 0x00c0,
+	0x7362, 0x0078, 0x731e, 0x6018, 0xa206, 0x00c0, 0x7362, 0x85ff,
+	0x0040, 0x731e, 0x6020, 0xa106, 0x00c0, 0x7362, 0x703c, 0xac06,
+	0x00c0, 0x7332, 0x037e, 0x2019, 0x0001, 0x1078, 0x7058, 0x7033,
+	0x0000, 0x703f, 0x0000, 0x7043, 0x0000, 0x7047, 0x0000, 0x704b,
+	0x0000, 0x037f, 0x7038, 0xac36, 0x00c0, 0x7338, 0x660c, 0x763a,
+	0x7034, 0xac36, 0x00c0, 0x7346, 0x2c00, 0xaf36, 0x0040, 0x7344,
+	0x2f00, 0x7036, 0x0078, 0x7346, 0x7037, 0x0000, 0x660c, 0x067e,
+	0x2c00, 0xaf06, 0x0040, 0x734f, 0x7e0e, 0x0078, 0x7350, 0x2678,
+	0x600f, 0x0000, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x735a,
+	0x1078, 0xa1ca, 0x1078, 0x8ec6, 0x87ff, 0x00c0, 0x7371, 0x0c7f,
+	0x0078, 0x7302, 0x2c78, 0x600c, 0x2060, 0x0078, 0x7302, 0xa006,
+	0x127f, 0x007f, 0x027f, 0x067f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f,
+	0x007c, 0x6017, 0x0000, 0x0c7f, 0xa7bd, 0x0001, 0x0078, 0x7368,
+	0x0e7e, 0x2071, 0xa8b1, 0x2001, 0xa600, 0x2004, 0xa086, 0x0002,
+	0x00c0, 0x7386, 0x7007, 0x0005, 0x0078, 0x7388, 0x7007, 0x0000,
+	0x0e7f, 0x007c, 0x0f7e, 0x0e7e, 0x0c7e, 0x067e, 0x027e, 0x007e,
+	0x127e, 0x2091, 0x8000, 0x2071, 0xa8b1, 0x2c10, 0x7638, 0x2660,
+	0x2678, 0x8cff, 0x0040, 0x73c8, 0x2200, 0xac06, 0x00c0, 0x73c3,
+	0x7038, 0xac36, 0x00c0, 0x73a6, 0x660c, 0x763a, 0x7034, 0xac36,
+	0x00c0, 0x73b4, 0x2c00, 0xaf36, 0x0040, 0x73b2, 0x2f00, 0x7036,
+	0x0078, 0x73b4, 0x7037, 0x0000, 0x660c, 0x2c00, 0xaf06, 0x0040,
+	0x73bc, 0x7e0e, 0x0078, 0x73bd, 0x2678, 0x600f, 0x0000, 0xa085,
+	0x0001, 0x0078, 0x73c8, 0x2c78, 0x600c, 0x2060, 0x0078, 0x7399,
+	0x127f, 0x007f, 0x027f, 0x067f, 0x0c7f, 0x0e7f, 0x0f7f, 0x007c,
+	0x0f7e, 0x0e7e, 0x0d7e, 0x0c7e, 0x067e, 0x007e, 0x127e, 0x2091,
+	0x8000, 0x2071, 0xa8b1, 0x760c, 0x2660, 0x2678, 0x8cff, 0x0040,
+	0x7469, 0x6018, 0xa080, 0x0028, 0x2004, 0xa206, 0x00c0, 0x7464,
+	0x7024, 0xac06, 0x00c0, 0x740f, 0x2069, 0x0100, 0x68c0, 0xa005,
+	0x0040, 0x743d, 0x1078, 0x6e0f, 0x68c3, 0x0000, 0x1078, 0x7378,
+	0x7027, 0x0000, 0x037e, 0x2069, 0x0140, 0x6b04, 0xa384, 0x1000,
+	0x0040, 0x7406, 0x6803, 0x0100, 0x6803, 0x0000, 0x2069, 0x0100,
+	0x6824, 0xd084, 0x0040, 0x740e, 0x6827, 0x0001, 0x037f, 0x700c,
+	0xac36, 0x00c0, 0x7415, 0x660c, 0x760e, 0x7008, 0xac36, 0x00c0,
+	0x7423, 0x2c00, 0xaf36, 0x0040, 0x7421, 0x2f00, 0x700a, 0x0078,
+	0x7423, 0x700b, 0x0000, 0x660c, 0x067e, 0x2c00, 0xaf06, 0x0040,
+	0x742c, 0x7e0e, 0x0078, 0x742d, 0x2678, 0x600f, 0x0000, 0x1078,
+	0x8eec, 0x00c0, 0x7441, 0x1078, 0x28a6, 0x1078, 0x8f00, 0x00c0,
+	0x745d, 0x1078, 0x7c83, 0x0078, 0x745d, 0x1078, 0x7378, 0x0078,
+	0x740f, 0x1078, 0x8f00, 0x00c0, 0x7449, 0x1078, 0x7c83, 0x0078,
+	0x745d, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x745d, 0x601c,
+	0xa086, 0x0003, 0x00c0, 0x7471, 0x6837, 0x0103, 0x6b4a, 0x6847,
+	0x0000, 0x1078, 0x4a73, 0x1078, 0x8eb9, 0x1078, 0x8ec6, 0x1078,
+	0x7233, 0x0c7f, 0x0078, 0x73de, 0x2c78, 0x600c, 0x2060, 0x0078,
+	0x73de, 0x127f, 0x007f, 0x067f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0f7f,
+	0x007c, 0x601c, 0xa086, 0x0006, 0x00c0, 0x745d, 0x1078, 0xa1ca,
+	0x0078, 0x745d, 0x037e, 0x157e, 0x137e, 0x147e, 0x3908, 0xa006,
+	0xa190, 0x0020, 0x221c, 0xa39e, 0x2676, 0x00c0, 0x748b, 0x8210,
+	0x8000, 0x0078, 0x7482, 0xa005, 0x0040, 0x7497, 0x20a9, 0x0020,
+	0x2198, 0x8211, 0xa282, 0x0020, 0x20c8, 0x20a0, 0x53a3, 0x147f,
+	0x137f, 0x157f, 0x037f, 0x007c, 0x0d7e, 0x20a1, 0x020b, 0x1078,
+	0x67c2, 0x20a3, 0x0200, 0x20a3, 0x0014, 0x60c3, 0x0014, 0x20a3,
+	0x0000, 0x20a3, 0x0000, 0x2099, 0xa8a5, 0x20a9, 0x0004, 0x53a6,
+	0x20a3, 0x0004, 0x20a3, 0x7878, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x1078, 0x6dfb, 0x0d7f, 0x007c, 0x20a1, 0x020b, 0x1078, 0x67c2,
+	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, 0x1078, 0x6dfb,
+	0x007c, 0x0d7e, 0x017e, 0x2f68, 0x2009, 0x0035, 0x1078, 0x91bc,
+	0x00c0, 0x7551, 0x20a1, 0x020b, 0x1078, 0x6731, 0x20a3, 0x1300,
+	0x20a3, 0x0000, 0x7828, 0x2068, 0x681c, 0xa086, 0x0003, 0x0040,
+	0x752d, 0x7818, 0xa080, 0x0028, 0x2014, 0xa286, 0x007e, 0x00c0,
+	0x7507, 0x20a3, 0x00ff, 0x20a3, 0xfffe, 0x0078, 0x7542, 0xa286,
+	0x007f, 0x00c0, 0x7511, 0x20a3, 0x00ff, 0x20a3, 0xfffd, 0x0078,
+	0x7542, 0xd2bc, 0x0040, 0x7527, 0xa286, 0x0080, 0x00c0, 0x751e,
+	0x20a3, 0x00ff, 0x20a3, 0xfffc, 0x0078, 0x7542, 0xa2e8, 0xa735,
+	0x2d6c, 0x6810, 0x20a2, 0x6814, 0x20a2, 0x0078, 0x7542, 0x20a3,
+	0x0000, 0x6098, 0x20a2, 0x0078, 0x7542, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xa082, 0x007e, 0x0048, 0x753e, 0x0d7e, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x7542, 0x20a3, 0x0000,
+	0x6030, 0x20a2, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x20a3, 0x0000,
+	0x20a3, 0x0000, 0x60c3, 0x000c, 0x1078, 0x6dfb, 0x017f, 0x0d7f,
+	0x007c, 0x7817, 0x0001, 0x7803, 0x0006, 0x017f, 0x0d7f, 0x007c,
+	0x0d7e, 0x027e, 0x7928, 0x2168, 0x691c, 0xa186, 0x0006, 0x0040,
+	0x757a, 0xa186, 0x0003, 0x0040, 0x75d5, 0xa186, 0x0005, 0x0040,
+	0x75b8, 0xa186, 0x0004, 0x0040, 0x75a8, 0xa186, 0x0008, 0x0040,
+	0x75c2, 0x7807, 0x0037, 0x7813, 0x1700, 0x1078, 0x7640, 0x027f,
+	0x0d7f, 0x007c, 0x1078, 0x75fd, 0x2009, 0x4000, 0x6800, 0x0079,
+	0x7581, 0x7594, 0x75a2, 0x7596, 0x75a2, 0x759d, 0x7594, 0x7594,
+	0x75a2, 0x75a2, 0x75a2, 0x75a2, 0x7594, 0x7594, 0x7594, 0x7594,
+	0x7594, 0x75a2, 0x7594, 0x75a2, 0x1078, 0x1332, 0x6824, 0xd0e4,
+	0x0040, 0x759d, 0xd0cc, 0x0040, 0x75a0, 0xa00e, 0x0078, 0x75a2,
+	0x2009, 0x2000, 0x6828, 0x20a2, 0x682c, 0x20a2, 0x0078, 0x75f3,
+	0x1078, 0x75fd, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x2009, 0x4000,
+	0x6a00, 0xa286, 0x0002, 0x00c0, 0x75b6, 0xa00e, 0x0078, 0x75f3,
+	0x1078, 0x75fd, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x2009, 0x4000,
+	0x0078, 0x75f3, 0x1078, 0x75fd, 0x20a3, 0x0000, 0x20a3, 0x0000,
+	0x2009, 0x4000, 0xa286, 0x0005, 0x0040, 0x75d2, 0xa286, 0x0002,
+	0x00c0, 0x75d3, 0xa00e, 0x0078, 0x75f3, 0x1078, 0x75fd, 0x6810,
+	0x2068, 0x697c, 0x6810, 0xa112, 0x6980, 0x6814, 0xa103, 0x20a2,
+	0x22a2, 0x7928, 0xa180, 0x0000, 0x2004, 0xa08e, 0x0002, 0x0040,
+	0x75f1, 0xa08e, 0x0004, 0x0040, 0x75f1, 0x2009, 0x4000, 0x0078,
+	0x75f3, 0x2009, 0x0000, 0x21a2, 0x20a3, 0x0000, 0x60c3, 0x0018,
+	0x1078, 0x6dfb, 0x027f, 0x0d7f, 0x007c, 0x037e, 0x047e, 0x057e,
+	0x067e, 0x20a1, 0x020b, 0x1078, 0x67c2, 0xa006, 0x20a3, 0x0200,
+	0x20a2, 0x7934, 0x21a2, 0x7938, 0x21a2, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xa092, 0x007e, 0x0048, 0x7623, 0x0d7e, 0x2069, 0xa61b,
+	0x2d2c, 0x8d68, 0x2d34, 0xa0e8, 0xa735, 0x2d6c, 0x6b10, 0x6c14,
+	0x0d7f, 0x0078, 0x7629, 0x2019, 0x0000, 0x6498, 0x2029, 0x0000,
+	0x6630, 0x7828, 0xa080, 0x0007, 0x2004, 0xa086, 0x0003, 0x00c0,
+	0x7637, 0x25a2, 0x26a2, 0x23a2, 0x24a2, 0x0078, 0x763b, 0x23a2,
+	0x24a2, 0x25a2, 0x26a2, 0x067f, 0x057f, 0x047f, 0x037f, 0x007c,
+	0x20a1, 0x020b, 0x1078, 0x67c2, 0x20a3, 0x0100, 0x20a3, 0x0000,
+	0x20a3, 0x0009, 0x7810, 0x20a2, 0x60c3, 0x0008, 0x1078, 0x6dfb,
+	0x007c, 0x20a1, 0x020b, 0x1078, 0x6728, 0x20a3, 0x1400, 0x20a3,
+	0x0000, 0x7834, 0x20a2, 0x7838, 0x20a2, 0x7828, 0x20a2, 0x782c,
+	0x20a2, 0x7830, 0xa084, 0x00ff, 0x8007, 0x20a2, 0x20a3, 0x0000,
+	0x60c3, 0x0010, 0x1078, 0x6dfb, 0x007c, 0x20a1, 0x020b, 0x1078,
+	0x67b9, 0x20a3, 0x0100, 0x20a3, 0x0000, 0x7828, 0x20a2, 0x7810,
+	0x20a2, 0x60c3, 0x0008, 0x1078, 0x6dfb, 0x007c, 0x147e, 0x20a1,
+	0x020b, 0x1078, 0x7689, 0x60c3, 0x0000, 0x1078, 0x6dfb, 0x147f,
+	0x007c, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x7818, 0xa080, 0x0028,
+	0x2004, 0xd0bc, 0x0040, 0x76a6, 0x0d7e, 0xa0e8, 0xa735, 0x2d6c,
+	0x6810, 0xa085, 0x0300, 0x20a2, 0x6814, 0x20a2, 0x2069, 0xa61b,
+	0x2da6, 0x8d68, 0x2da6, 0x0d7f, 0x0078, 0x76ae, 0x20a3, 0x0300,
+	0x6298, 0x22a2, 0x20a3, 0x0000, 0x6230, 0x22a2, 0x20a3, 0x0819,
+	0x20a3, 0x0000, 0x1078, 0x6dea, 0x22a2, 0x20a3, 0x0000, 0x2fa2,
+	0x7a08, 0x22a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x007c, 0x2061,
+	0xad00, 0x2a70, 0x7064, 0x704a, 0x704f, 0xad00, 0x007c, 0x0e7e,
+	0x127e, 0x2071, 0xa600, 0x2091, 0x8000, 0x7548, 0xa582, 0x0010,
+	0x0048, 0x76f9, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0040,
+	0x76e5, 0xace0, 0x0010, 0x7058, 0xac02, 0x00c8, 0x76e1, 0x0078,
+	0x76d4, 0x2061, 0xad00, 0x0078, 0x76d4, 0x6003, 0x0008, 0x8529,
+	0x754a, 0xaca8, 0x0010, 0x7058, 0xa502, 0x00c8, 0x76f5, 0x754e,
+	0xa085, 0x0001, 0x127f, 0x0e7f, 0x007c, 0x704f, 0xad00, 0x0078,
+	0x76f0, 0xa006, 0x0078, 0x76f2, 0x0e7e, 0x2071, 0xa600, 0x7548,
+	0xa582, 0x0010, 0x0048, 0x772a, 0x704c, 0x2060, 0x6000, 0xa086,
+	0x0000, 0x0040, 0x7717, 0xace0, 0x0010, 0x7058, 0xac02, 0x00c8,
+	0x7713, 0x0078, 0x7706, 0x2061, 0xad00, 0x0078, 0x7706, 0x6003,
+	0x0008, 0x8529, 0x754a, 0xaca8, 0x0010, 0x7058, 0xa502, 0x00c8,
+	0x7726, 0x754e, 0xa085, 0x0001, 0x0e7f, 0x007c, 0x704f, 0xad00,
+	0x0078, 0x7722, 0xa006, 0x0078, 0x7724, 0xac82, 0xad00, 0x1048,
+	0x1332, 0x2001, 0xa616, 0x2004, 0xac02, 0x10c8, 0x1332, 0xa006,
+	0x6006, 0x600a, 0x600e, 0x6012, 0x6016, 0x601a, 0x601f, 0x0000,
+	0x6003, 0x0000, 0x6022, 0x6026, 0x602a, 0x602e, 0x6032, 0x6036,
+	0x603a, 0x603e, 0x2061, 0xa600, 0x6048, 0x8000, 0x604a, 0xa086,
+	0x0001, 0x0040, 0x7754, 0x007c, 0x127e, 0x2091, 0x8000, 0x1078,
+	0x62d1, 0x127f, 0x0078, 0x7753, 0x601c, 0xa084, 0x000f, 0x0079,
+	0x7761, 0x776a, 0x777b, 0x7797, 0x77b3, 0x920e, 0x922a, 0x9246,
+	0x776a, 0x777b, 0xa186, 0x0013, 0x00c0, 0x7773, 0x1078, 0x61cd,
+	0x1078, 0x62d1, 0x007c, 0xa18e, 0x0047, 0x00c0, 0x777a, 0xa016,
+	0x1078, 0x15fa, 0x007c, 0x067e, 0x6000, 0xa0b2, 0x0010, 0x10c8,
+	0x1332, 0x1079, 0x7785, 0x067f, 0x007c, 0x7795, 0x7b00, 0x7cb2,
+	0x7795, 0x7d36, 0x77cf, 0x7795, 0x7795, 0x7a92, 0x80f6, 0x7795,
+	0x7795, 0x7795, 0x7795, 0x7795, 0x7795, 0x1078, 0x1332, 0x067e,
+	0x6000, 0xa0b2, 0x0010, 0x10c8, 0x1332, 0x1079, 0x77a1, 0x067f,
+	0x007c, 0x77b1, 0x87c3, 0x77b1, 0x77b1, 0x77b1, 0x77b1, 0x77b1,
+	0x77b1, 0x8766, 0x8951, 0x77b1, 0x87f3, 0x8879, 0x87f3, 0x8879,
+	0x77b1, 0x1078, 0x1332, 0x067e, 0x6000, 0xa0b2, 0x0010, 0x10c8,
+	0x1332, 0x1079, 0x77bd, 0x067f, 0x007c, 0x77cd, 0x813d, 0x820e,
+	0x8368, 0x84e4, 0x77cd, 0x77cd, 0x77cd, 0x8116, 0x870e, 0x8712,
+	0x77cd, 0x77cd, 0x77cd, 0x77cd, 0x8742, 0x1078, 0x1332, 0xa1b6,
+	0x0015, 0x00c0, 0x77d7, 0x1078, 0x772d, 0x0078, 0x77dd, 0xa1b6,
+	0x0016, 0x10c0, 0x1332, 0x1078, 0x772d, 0x007c, 0x20a9, 0x000e,
+	0x2e98, 0x6010, 0x20a0, 0x53a3, 0x20a9, 0x0006, 0x3310, 0x3420,
+	0x9398, 0x94a0, 0x3318, 0x3428, 0x222e, 0x2326, 0xa290, 0x0002,
+	0xa5a8, 0x0002, 0xa398, 0x0002, 0xa4a0, 0x0002, 0x00f0, 0x77ec,
+	0x0e7e, 0x1078, 0x8d06, 0x0040, 0x7803, 0x6010, 0x2070, 0x7007,
+	0x0000, 0x7037, 0x0103, 0x0e7f, 0x1078, 0x772d, 0x007c, 0x0d7e,
+	0x037e, 0x7330, 0xa386, 0x0200, 0x00c0, 0x7814, 0x6018, 0x2068,
+	0x6813, 0x00ff, 0x6817, 0xfffd, 0x6010, 0xa005, 0x0040, 0x781e,
+	0x2068, 0x6807, 0x0000, 0x6837, 0x0103, 0x6b32, 0x1078, 0x772d,
+	0x037f, 0x0d7f, 0x007c, 0x017e, 0x20a9, 0x002a, 0xae80, 0x000c,
+	0x2098, 0x6010, 0xa080, 0x0002, 0x20a0, 0x53a3, 0x20a9, 0x002a,
+	0x6010, 0xa080, 0x0001, 0x2004, 0xa080, 0x0002, 0x20a0, 0x53a3,
+	0x0e7e, 0x6010, 0x2004, 0x2070, 0x7037, 0x0103, 0x0e7f, 0x1078,
+	0x772d, 0x017f, 0x007c, 0x0e7e, 0x0d7e, 0x603f, 0x0000, 0x2c68,
+	0x017e, 0x2009, 0x0035, 0x1078, 0x91bc, 0x017f, 0x00c0, 0x785f,
+	0x027e, 0x6228, 0x2268, 0x027f, 0x2071, 0xab8c, 0x6b1c, 0xa386,
+	0x0003, 0x0040, 0x7863, 0xa386, 0x0006, 0x0040, 0x7867, 0x1078,
+	0x772d, 0x0078, 0x7869, 0x1078, 0x786c, 0x0078, 0x7869, 0x1078,
+	0x7938, 0x0d7f, 0x0e7f, 0x007c, 0x0f7e, 0x6810, 0x2078, 0xa186,
+	0x0015, 0x0040, 0x791d, 0xa18e, 0x0016, 0x00c0, 0x7936, 0x700c,
+	0xa08c, 0xff00, 0xa186, 0x1700, 0x0040, 0x7882, 0xa186, 0x0300,
+	0x00c0, 0x78f8, 0x8fff, 0x00c0, 0x788c, 0x6800, 0xa086, 0x000f,
+	0x0040, 0x78db, 0x0078, 0x7934, 0x6808, 0xa086, 0xffff, 0x00c0,
+	0x7921, 0x784c, 0xa084, 0x0060, 0xa086, 0x0020, 0x00c0, 0x78a2,
+	0x797c, 0x7810, 0xa106, 0x00c0, 0x7921, 0x7980, 0x7814, 0xa106,
+	0x00c0, 0x7921, 0x1078, 0x8eb9, 0x6830, 0x7852, 0x784c, 0xc0dc,
+	0xc0f4, 0xc0d4, 0x784e, 0x027e, 0xa00e, 0x6a14, 0x2001, 0x000a,
+	0x1078, 0x5c1c, 0x7854, 0xa20a, 0x0048, 0x78b7, 0x8011, 0x7a56,
+	0x82ff, 0x027f, 0x00c0, 0x78c3, 0x0c7e, 0x2d60, 0x1078, 0x8ae0,
+	0x0c7f, 0x0078, 0x7934, 0x0c7e, 0x0d7e, 0x2f68, 0x6838, 0xd0fc,
+	0x00c0, 0x78ce, 0x1078, 0x4353, 0x0078, 0x78d0, 0x1078, 0x4431,
+	0x0d7f, 0x0c7f, 0x00c0, 0x7921, 0x0c7e, 0x2d60, 0x1078, 0x772d,
+	0x0c7f, 0x0078, 0x7934, 0x0c7e, 0x1078, 0x9187, 0x0040, 0x78f1,
+	0x6013, 0x0000, 0x6818, 0x601a, 0x601f, 0x0003, 0x6904, 0x0c7e,
+	0x2d60, 0x1078, 0x772d, 0x0c7f, 0x1078, 0x775c, 0x0c7f, 0x0078,
+	0x7934, 0x2001, 0xa8a4, 0x2004, 0x683e, 0x0c7f, 0x0078, 0x7934,
+	0x7008, 0xa086, 0x000b, 0x00c0, 0x7912, 0x6018, 0x200c, 0xc1bc,
+	0x2102, 0x0c7e, 0x2d60, 0x7853, 0x0003, 0x6007, 0x0085, 0x6003,
+	0x000b, 0x601f, 0x0002, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0c7f,
+	0x0078, 0x7934, 0x700c, 0xa086, 0x2a00, 0x00c0, 0x7921, 0x2001,
+	0xa8a4, 0x2004, 0x683e, 0x0078, 0x7934, 0x1078, 0x7953, 0x0078,
+	0x7936, 0x8fff, 0x1040, 0x1332, 0x0c7e, 0x0d7e, 0x2d60, 0x2f68,
+	0x6837, 0x0103, 0x684b, 0x0003, 0x1078, 0x89cf, 0x1078, 0x8eb9,
+	0x1078, 0x8ec6, 0x0d7f, 0x0c7f, 0x1078, 0x772d, 0x0f7f, 0x007c,
+	0xa186, 0x0015, 0x00c0, 0x7942, 0x2001, 0xa8a4, 0x2004, 0x683e,
+	0x0078, 0x7950, 0xa18e, 0x0016, 0x00c0, 0x7952, 0x0c7e, 0x2d00,
+	0x2060, 0x1078, 0xa495, 0x1078, 0x5bc1, 0x1078, 0x772d, 0x0c7f,
+	0x1078, 0x772d, 0x007c, 0x027e, 0x037e, 0x047e, 0x7228, 0x7c80,
+	0x7b7c, 0xd2f4, 0x0040, 0x7962, 0x2001, 0xa8a4, 0x2004, 0x683e,
+	0x0078, 0x79c6, 0x0c7e, 0x2d60, 0x1078, 0x89f3, 0x0c7f, 0x6804,
+	0xa086, 0x0050, 0x00c0, 0x797a, 0x0c7e, 0x2d00, 0x2060, 0x6003,
+	0x0001, 0x6007, 0x0050, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0c7f,
+	0x0078, 0x79c6, 0x6800, 0xa086, 0x000f, 0x0040, 0x799c, 0x8fff,
+	0x1040, 0x1332, 0x6824, 0xd0dc, 0x00c0, 0x799c, 0x6800, 0xa086,
+	0x0004, 0x00c0, 0x79a1, 0x784c, 0xd0ac, 0x0040, 0x79a1, 0x784c,
+	0xc0dc, 0xc0f4, 0x784e, 0x7850, 0xc0f4, 0xc0fc, 0x7852, 0x2001,
+	0x0001, 0x682e, 0x0078, 0x79c0, 0x2001, 0x0007, 0x682e, 0x0078,
+	0x79c0, 0x784c, 0xd0b4, 0x00c0, 0x79ae, 0xd0ac, 0x0040, 0x799c,
+	0x784c, 0xd0f4, 0x00c0, 0x799c, 0x0078, 0x798f, 0xd2ec, 0x00c0,
+	0x799c, 0x7024, 0xa306, 0x00c0, 0x79b9, 0x7020, 0xa406, 0x0040,
+	0x799c, 0x7020, 0x6836, 0x7024, 0x683a, 0x2001, 0x0005, 0x682e,
+	0x1078, 0x8ff0, 0x1078, 0x62d1, 0x0078, 0x79c8, 0x1078, 0x772d,
+	0x047f, 0x037f, 0x027f, 0x007c, 0x0e7e, 0x0d7e, 0x027e, 0x6034,
+	0x2068, 0x6a1c, 0xa286, 0x0007, 0x0040, 0x7a35, 0xa286, 0x0002,
+	0x0040, 0x7a35, 0xa286, 0x0000, 0x0040, 0x7a35, 0x6808, 0x6338,
+	0xa306, 0x00c0, 0x7a35, 0x2071, 0xab8c, 0xa186, 0x0015, 0x0040,
+	0x7a2f, 0xa18e, 0x0016, 0x00c0, 0x7a02, 0x6030, 0xa084, 0x00ff,
+	0xa086, 0x0001, 0x00c0, 0x7a02, 0x700c, 0xa086, 0x2a00, 0x00c0,
+	0x7a02, 0x6034, 0xa080, 0x0009, 0x200c, 0xc1dd, 0xc1f5, 0x2102,
+	0x0078, 0x7a2f, 0x0c7e, 0x6034, 0x2060, 0x6104, 0xa186, 0x004b,
+	0x0040, 0x7a22, 0xa186, 0x004c, 0x0040, 0x7a22, 0xa186, 0x004d,
+	0x0040, 0x7a22, 0xa186, 0x004e, 0x0040, 0x7a22, 0xa186, 0x0052,
+	0x0040, 0x7a22, 0x6010, 0x2068, 0x1078, 0x8d06, 0x1040, 0x1332,
+	0x6853, 0x0003, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002,
+	0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0c7f, 0x0078, 0x7a35, 0x6034,
+	0x2068, 0x2001, 0xa8a4, 0x2004, 0x683e, 0x1078, 0x772d, 0x027f,
+	0x0d7f, 0x0e7f, 0x007c, 0x0d7e, 0x20a9, 0x000e, 0x2e98, 0x6010,
+	0x20a0, 0x53a3, 0xa1b6, 0x0015, 0x00c0, 0x7a73, 0x6018, 0x2068,
+	0x157e, 0x037e, 0x027e, 0xae90, 0x000c, 0xa290, 0x0004, 0x20a9,
+	0x0004, 0xad98, 0x000a, 0x1078, 0x80de, 0x027f, 0x037f, 0x157f,
+	0x00c0, 0x7a76, 0x157e, 0x037e, 0x027e, 0xae90, 0x000c, 0xa290,
+	0x0008, 0x20a9, 0x0004, 0xad98, 0x0006, 0x1078, 0x80de, 0x027f,
+	0x037f, 0x157f, 0x00c0, 0x7a76, 0x7038, 0x680a, 0x703c, 0x680e,
+	0x6800, 0xc08d, 0x6802, 0x0d7f, 0x0078, 0x77f8, 0x1078, 0x2880,
+	0x0c7e, 0x1078, 0x76c7, 0x2f00, 0x601a, 0x6013, 0x0000, 0x601f,
+	0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x2001, 0x0007, 0x1078,
+	0x4502, 0x1078, 0x4535, 0x1078, 0x5dd7, 0x1078, 0x62d1, 0x0c7f,
+	0x0078, 0x7a73, 0x2100, 0xa1b2, 0x0044, 0x10c8, 0x1332, 0xa1b2,
+	0x0040, 0x00c8, 0x7af7, 0x0079, 0x7a9d, 0x7aeb, 0x7adf, 0x7aeb,
+	0x7aeb, 0x7aeb, 0x7aeb, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add,
+	0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add,
+	0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add,
+	0x7add, 0x7add, 0x7add, 0x7add, 0x7aeb, 0x7add, 0x7aeb, 0x7aeb,
+	0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7aeb, 0x7add, 0x7add,
+	0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7aeb,
+	0x7aeb, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add, 0x7add,
+	0x7add, 0x7add, 0x7aeb, 0x7add, 0x7add, 0x1078, 0x1332, 0x6003,
+	0x0001, 0x6106, 0x1078, 0x5dd7, 0x127e, 0x2091, 0x8000, 0x1078,
+	0x62d1, 0x127f, 0x007c, 0x6003, 0x0001, 0x6106, 0x1078, 0x5dd7,
+	0x127e, 0x2091, 0x8000, 0x1078, 0x62d1, 0x127f, 0x007c, 0x2600,
+	0x0079, 0x7afa, 0x7afe, 0x7afe, 0x7afe, 0x7aeb, 0x1078, 0x1332,
+	0x6004, 0xa0b2, 0x0044, 0x10c8, 0x1332, 0xa1b6, 0x0013, 0x00c0,
+	0x7b10, 0xa0b2, 0x0040, 0x00c8, 0x7c79, 0x2008, 0x0079, 0x7bbf,
+	0xa1b6, 0x0027, 0x00c0, 0x7b7c, 0x1078, 0x61cd, 0x6004, 0x1078,
+	0x8eec, 0x0040, 0x7b2d, 0x1078, 0x8f00, 0x0040, 0x7b74, 0xa08e,
+	0x0021, 0x0040, 0x7b78, 0xa08e, 0x0022, 0x0040, 0x7b74, 0xa08e,
+	0x003d, 0x0040, 0x7b78, 0x0078, 0x7b6f, 0x1078, 0x28a6, 0x2001,
+	0x0007, 0x1078, 0x4502, 0x6018, 0xa080, 0x0028, 0x200c, 0x1078,
+	0x7c83, 0xa186, 0x007e, 0x00c0, 0x7b42, 0x2001, 0xa633, 0x2014,
+	0xc285, 0x2202, 0x017e, 0x027e, 0x037e, 0x2110, 0x027e, 0x2019,
+	0x0028, 0x1078, 0x73d0, 0x027f, 0x1078, 0xa4f1, 0x037f, 0x027f,
+	0x017f, 0x017e, 0x027e, 0x037e, 0x2110, 0x2019, 0x0028, 0x1078,
+	0x5f01, 0x077e, 0x2039, 0x0000, 0x1078, 0x5e0a, 0x0c7e, 0x6018,
+	0xa065, 0x0040, 0x7b65, 0x1078, 0x47e9, 0x0c7f, 0x2c08, 0x1078,
+	0x9f8b, 0x077f, 0x037f, 0x027f, 0x017f, 0x1078, 0x457f, 0x1078,
+	0x772d, 0x1078, 0x62d1, 0x007c, 0x1078, 0x7c83, 0x0078, 0x7b6f,
+	0x1078, 0x7ca6, 0x0078, 0x7b6f, 0xa186, 0x0014, 0x00c0, 0x7b73,
+	0x1078, 0x61cd, 0x1078, 0x2880, 0x1078, 0x8eec, 0x00c0, 0x7b9b,
+	0x1078, 0x28a6, 0x6018, 0xa080, 0x0028, 0x200c, 0x1078, 0x7c83,
+	0xa186, 0x007e, 0x00c0, 0x7b99, 0x2001, 0xa633, 0x200c, 0xc185,
+	0x2102, 0x0078, 0x7b6f, 0x1078, 0x8f00, 0x00c0, 0x7ba3, 0x1078,
+	0x7c83, 0x0078, 0x7b6f, 0x6004, 0xa08e, 0x0032, 0x00c0, 0x7bb4,
+	0x0e7e, 0x0f7e, 0x2071, 0xa682, 0x2079, 0x0000, 0x1078, 0x2bd7,
+	0x0f7f, 0x0e7f, 0x0078, 0x7b6f, 0x6004, 0xa08e, 0x0021, 0x0040,
+	0x7b9f, 0xa08e, 0x0022, 0x1040, 0x7c83, 0x0078, 0x7b6f, 0x7c01,
+	0x7c03, 0x7c07, 0x7c0b, 0x7c0f, 0x7c13, 0x7bff, 0x7bff, 0x7bff,
+	0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff,
+	0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff,
+	0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7c17, 0x7c29, 0x7bff,
+	0x7c2b, 0x7c29, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7c29,
+	0x7c29, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff, 0x7bff,
+	0x7bff, 0x7c5c, 0x7c29, 0x7bff, 0x7c23, 0x7bff, 0x7bff, 0x7bff,
+	0x7c25, 0x7bff, 0x7bff, 0x7bff, 0x7c29, 0x7bff, 0x7bff, 0x1078,
+	0x1332, 0x0078, 0x7c29, 0x2001, 0x000b, 0x0078, 0x7c36, 0x2001,
+	0x0003, 0x0078, 0x7c36, 0x2001, 0x0005, 0x0078, 0x7c36, 0x2001,
+	0x0001, 0x0078, 0x7c36, 0x2001, 0x0009, 0x0078, 0x7c36, 0x1078,
+	0x61cd, 0x6003, 0x0005, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x1078,
+	0x62d1, 0x0078, 0x7c35, 0x0078, 0x7c29, 0x0078, 0x7c29, 0x1078,
+	0x4502, 0x0078, 0x7c6e, 0x1078, 0x61cd, 0x6003, 0x0004, 0x2001,
+	0xa8a2, 0x2004, 0x6016, 0x1078, 0x62d1, 0x007c, 0x1078, 0x4502,
+	0x1078, 0x61cd, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x6003, 0x0002,
+	0x037e, 0x2019, 0xa65d, 0x2304, 0xa084, 0xff00, 0x00c0, 0x7c4d,
+	0x2019, 0xa8a2, 0x231c, 0x0078, 0x7c56, 0x8007, 0xa09a, 0x0004,
+	0x0048, 0x7c48, 0x8003, 0x801b, 0x831b, 0xa318, 0x6316, 0x037f,
+	0x1078, 0x62d1, 0x0078, 0x7c35, 0x0e7e, 0x0f7e, 0x2071, 0xa682,
+	0x2079, 0x0000, 0x1078, 0x2bd7, 0x0f7f, 0x0e7f, 0x1078, 0x61cd,
+	0x1078, 0x772d, 0x1078, 0x62d1, 0x0078, 0x7c35, 0x1078, 0x61cd,
+	0x6003, 0x0002, 0x2001, 0xa8a2, 0x2004, 0x6016, 0x1078, 0x62d1,
+	0x007c, 0x2600, 0x2008, 0x0079, 0x7c7d, 0x7c81, 0x7c81, 0x7c81,
+	0x7c6e, 0x1078, 0x1332, 0x0e7e, 0x1078, 0x8d06, 0x0040, 0x7c9f,
+	0x6010, 0x2070, 0x7038, 0xd0fc, 0x0040, 0x7c9f, 0x7007, 0x0000,
+	0x017e, 0x6004, 0xa08e, 0x0021, 0x0040, 0x7ca1, 0xa08e, 0x003d,
+	0x0040, 0x7ca1, 0x017f, 0x7037, 0x0103, 0x7033, 0x0100, 0x0e7f,
+	0x007c, 0x017f, 0x1078, 0x7ca6, 0x0078, 0x7c9f, 0x0e7e, 0xacf0,
+	0x0004, 0x2e74, 0x7000, 0x2070, 0x7037, 0x0103, 0x7023, 0x8001,
+	0x0e7f, 0x007c, 0x0d7e, 0x6618, 0x2668, 0x6804, 0xa084, 0x00ff,
+	0x0d7f, 0xa0b2, 0x000c, 0x10c8, 0x1332, 0x6604, 0xa6b6, 0x0043,
+	0x00c0, 0x7cc6, 0x1078, 0x9134, 0x0078, 0x7d25, 0x6604, 0xa6b6,
+	0x0033, 0x00c0, 0x7ccf, 0x1078, 0x90d8, 0x0078, 0x7d25, 0x6604,
+	0xa6b6, 0x0028, 0x00c0, 0x7cd8, 0x1078, 0x8f2f, 0x0078, 0x7d25,
+	0x6604, 0xa6b6, 0x0029, 0x00c0, 0x7ce1, 0x1078, 0x8f49, 0x0078,
+	0x7d25, 0x6604, 0xa6b6, 0x001f, 0x00c0, 0x7cea, 0x1078, 0x77de,
+	0x0078, 0x7d25, 0x6604, 0xa6b6, 0x0000, 0x00c0, 0x7cf3, 0x1078,
+	0x7a3b, 0x0078, 0x7d25, 0x6604, 0xa6b6, 0x0022, 0x00c0, 0x7cfc,
+	0x1078, 0x7807, 0x0078, 0x7d25, 0x6604, 0xa6b6, 0x0035, 0x00c0,
+	0x7d05, 0x1078, 0x7843, 0x0078, 0x7d25, 0x6604, 0xa6b6, 0x0039,
+	0x00c0, 0x7d0e, 0x1078, 0x79cc, 0x0078, 0x7d25, 0x6604, 0xa6b6,
+	0x003d, 0x00c0, 0x7d17, 0x1078, 0x7823, 0x0078, 0x7d25, 0xa1b6,
+	0x0015, 0x00c0, 0x7d1f, 0x1079, 0x7d2a, 0x0078, 0x7d25, 0xa1b6,
+	0x0016, 0x00c0, 0x7d26, 0x1079, 0x7e7f, 0x007c, 0x1078, 0x7773,
+	0x0078, 0x7d25, 0x7d4e, 0x7d51, 0x7d4e, 0x7d9c, 0x7d4e, 0x7e13,
+	0x7e8b, 0x7d4e, 0x7d4e, 0x7e57, 0x7d4e, 0x7e6d, 0xa1b6, 0x0048,
+	0x0040, 0x7d42, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x1078,
+	0x15fa, 0x007c, 0x0e7e, 0xacf0, 0x0004, 0x2e74, 0x7000, 0x2070,
+	0x7037, 0x0103, 0x0e7f, 0x1078, 0x772d, 0x007c, 0x0005, 0x0005,
+	0x007c, 0x0e7e, 0x2071, 0xa600, 0x7080, 0xa086, 0x0074, 0x00c0,
+	0x7d85, 0x1078, 0x9f5f, 0x00c0, 0x7d77, 0x0d7e, 0x6018, 0x2068,
+	0x7030, 0xd08c, 0x0040, 0x7d6a, 0x6800, 0xd0bc, 0x0040, 0x7d6a,
+	0xc0c5, 0x6802, 0x1078, 0x7d89, 0x0d7f, 0x2001, 0x0006, 0x1078,
+	0x4502, 0x1078, 0x28a6, 0x1078, 0x772d, 0x0078, 0x7d87, 0x2001,
+	0x000a, 0x1078, 0x4502, 0x1078, 0x28a6, 0x6003, 0x0001, 0x6007,
+	0x0001, 0x1078, 0x5dd7, 0x0078, 0x7d87, 0x1078, 0x7dff, 0x0e7f,
+	0x007c, 0x6800, 0xd084, 0x0040, 0x7d9b, 0x2001, 0x0000, 0x1078,
+	0x44ee, 0x2069, 0xa652, 0x6804, 0xd0a4, 0x0040, 0x7d9b, 0x2001,
+	0x0006, 0x1078, 0x4535, 0x007c, 0x0d7e, 0x2011, 0xa620, 0x2204,
+	0xa086, 0x0074, 0x00c0, 0x7dfb, 0x6018, 0x2068, 0x6aa0, 0xa286,
+	0x007e, 0x00c0, 0x7daf, 0x1078, 0x7f9b, 0x0078, 0x7dfd, 0x1078,
+	0x7f91, 0x6018, 0x2068, 0xa080, 0x0028, 0x2014, 0xa286, 0x0080,
+	0x00c0, 0x7dd3, 0x6813, 0x00ff, 0x6817, 0xfffc, 0x6010, 0xa005,
+	0x0040, 0x7dc9, 0x2068, 0x6807, 0x0000, 0x6837, 0x0103, 0x6833,
+	0x0200, 0x2001, 0x0006, 0x1078, 0x4502, 0x1078, 0x28a6, 0x1078,
+	0x772d, 0x0078, 0x7dfd, 0x0e7e, 0x2071, 0xa633, 0x2e04, 0xd09c,
+	0x0040, 0x7dee, 0x2071, 0xab80, 0x7108, 0x720c, 0xa18c, 0x00ff,
+	0x00c0, 0x7de6, 0xa284, 0xff00, 0x0040, 0x7dee, 0x6018, 0x2070,
+	0x70a0, 0xd0bc, 0x00c0, 0x7dee, 0x7112, 0x7216, 0x0e7f, 0x2001,
+	0x0004, 0x1078, 0x4502, 0x6003, 0x0001, 0x6007, 0x0003, 0x1078,
+	0x5dd7, 0x0078, 0x7dfd, 0x1078, 0x7dff, 0x0d7f, 0x007c, 0x2001,
+	0x0007, 0x1078, 0x4502, 0x2001, 0xa600, 0x2004, 0xa086, 0x0003,
+	0x00c0, 0x7e0e, 0x2001, 0x0007, 0x1078, 0x4535, 0x1078, 0x28a6,
+	0x1078, 0x772d, 0x007c, 0x0e7e, 0x2071, 0xa600, 0x7080, 0xa086,
+	0x0014, 0x00c0, 0x7e51, 0x7000, 0xa086, 0x0003, 0x00c0, 0x7e26,
+	0x6010, 0xa005, 0x00c0, 0x7e26, 0x1078, 0x3699, 0x0d7e, 0x6018,
+	0x2068, 0x1078, 0x4649, 0x1078, 0x7d89, 0x0d7f, 0x1078, 0x8043,
+	0x00c0, 0x7e51, 0x0d7e, 0x6018, 0x2068, 0x6890, 0x0d7f, 0xa005,
+	0x0040, 0x7e51, 0x2001, 0x0006, 0x1078, 0x4502, 0x0e7e, 0x6010,
+	0xa005, 0x0040, 0x7e4a, 0x2070, 0x7007, 0x0000, 0x7037, 0x0103,
+	0x7033, 0x0200, 0x0e7f, 0x1078, 0x28a6, 0x1078, 0x772d, 0x0078,
+	0x7e55, 0x1078, 0x7c83, 0x1078, 0x7dff, 0x0e7f, 0x007c, 0x2011,
+	0xa620, 0x2204, 0xa086, 0x0014, 0x00c0, 0x7e6a, 0x2001, 0x0002,
+	0x1078, 0x4502, 0x6003, 0x0001, 0x6007, 0x0001, 0x1078, 0x5dd7,
+	0x0078, 0x7e6c, 0x1078, 0x7dff, 0x007c, 0x2011, 0xa620, 0x2204,
+	0xa086, 0x0004, 0x00c0, 0x7e7c, 0x2001, 0x0007, 0x1078, 0x4502,
+	0x1078, 0x772d, 0x0078, 0x7e7e, 0x1078, 0x7dff, 0x007c, 0x7d4e,
+	0x7e97, 0x7d4e, 0x7ed2, 0x7d4e, 0x7f44, 0x7e8b, 0x7d4e, 0x7d4e,
+	0x7f59, 0x7d4e, 0x7f6c, 0x6604, 0xa686, 0x0003, 0x0040, 0x7e13,
+	0xa6b6, 0x001e, 0x00c0, 0x7e96, 0x1078, 0x772d, 0x007c, 0x0d7e,
+	0x0c7e, 0x1078, 0x7f7f, 0x00c0, 0x7ead, 0x2001, 0x0000, 0x1078,
+	0x44ee, 0x2001, 0x0002, 0x1078, 0x4502, 0x6003, 0x0001, 0x6007,
+	0x0002, 0x1078, 0x5dd7, 0x0078, 0x7ecf, 0x2009, 0xab8e, 0x2104,
+	0xa086, 0x0009, 0x00c0, 0x7ec2, 0x6018, 0x2068, 0x6840, 0xa084,
+	0x00ff, 0xa005, 0x0040, 0x7ecd, 0x8001, 0x6842, 0x6017, 0x000a,
+	0x0078, 0x7ecf, 0x2009, 0xab8f, 0x2104, 0xa084, 0xff00, 0xa086,
+	0x1900, 0x00c0, 0x7ecd, 0x0078, 0x7ea1, 0x1078, 0x7dff, 0x0c7f,
+	0x0d7f, 0x007c, 0x1078, 0x7f8e, 0x00c0, 0x7ee6, 0x2001, 0x0000,
+	0x1078, 0x44ee, 0x2001, 0x0002, 0x1078, 0x4502, 0x6003, 0x0001,
+	0x6007, 0x0002, 0x1078, 0x5dd7, 0x0078, 0x7f12, 0x1078, 0x7c83,
+	0x2009, 0xab8e, 0x2134, 0xa6b4, 0x00ff, 0xa686, 0x0005, 0x0040,
+	0x7f13, 0xa686, 0x000b, 0x0040, 0x7f10, 0x2009, 0xab8f, 0x2104,
+	0xa084, 0xff00, 0x00c0, 0x7f00, 0xa686, 0x0009, 0x0040, 0x7f13,
+	0xa086, 0x1900, 0x00c0, 0x7f10, 0xa686, 0x0009, 0x0040, 0x7f13,
+	0x2001, 0x0004, 0x1078, 0x4502, 0x1078, 0x772d, 0x0078, 0x7f12,
+	0x1078, 0x7dff, 0x007c, 0x0d7e, 0x6010, 0x2068, 0x1078, 0x8d06,
+	0x0040, 0x7f21, 0x6838, 0xd0fc, 0x0040, 0x7f21, 0x0d7f, 0x0078,
+	0x7f10, 0x6018, 0x2068, 0x6840, 0xa084, 0x00ff, 0xa005, 0x0040,
+	0x7f32, 0x8001, 0x6842, 0x6017, 0x000a, 0x6007, 0x0016, 0x0d7f,
+	0x0078, 0x7f12, 0x68a0, 0xa086, 0x007e, 0x00c0, 0x7f3f, 0x0e7e,
+	0x2071, 0xa600, 0x1078, 0x42b8, 0x0e7f, 0x0078, 0x7f41, 0x1078,
+	0x2880, 0x0d7f, 0x0078, 0x7f10, 0x1078, 0x7f8e, 0x00c0, 0x7f54,
+	0x2001, 0x0004, 0x1078, 0x4502, 0x6003, 0x0001, 0x6007, 0x0003,
+	0x1078, 0x5dd7, 0x0078, 0x7f58, 0x1078, 0x7c83, 0x1078, 0x7dff,
+	0x007c, 0x1078, 0x7f8e, 0x00c0, 0x7f69, 0x2001, 0x0008, 0x1078,
+	0x4502, 0x6003, 0x0001, 0x6007, 0x0005, 0x1078, 0x5dd7, 0x0078,
+	0x7f6b, 0x1078, 0x7dff, 0x007c, 0x1078, 0x7f8e, 0x00c0, 0x7f7c,
+	0x2001, 0x000a, 0x1078, 0x4502, 0x6003, 0x0001, 0x6007, 0x0001,
+	0x1078, 0x5dd7, 0x0078, 0x7f7e, 0x1078, 0x7dff, 0x007c, 0x2009,
+	0xab8e, 0x2104, 0xa086, 0x0003, 0x00c0, 0x7f8d, 0x2009, 0xab8f,
+	0x2104, 0xa084, 0xff00, 0xa086, 0x2a00, 0x007c, 0xa085, 0x0001,
+	0x007c, 0x0c7e, 0x017e, 0xac88, 0x0006, 0x2164, 0x1078, 0x45d6,
+	0x017f, 0x0c7f, 0x007c, 0x0f7e, 0x0e7e, 0x0d7e, 0x037e, 0x017e,
+	0x6018, 0x2068, 0x2071, 0xa633, 0x2e04, 0xa085, 0x0003, 0x2072,
+	0x1078, 0x8014, 0x0040, 0x7fd9, 0x2009, 0xa633, 0x2104, 0xc0cd,
+	0x200a, 0x2001, 0xa653, 0x2004, 0xd0a4, 0x0040, 0x7fc2, 0xa006,
+	0x2020, 0x2009, 0x002a, 0x1078, 0xa21d, 0x2001, 0xa60c, 0x200c,
+	0xc195, 0x2102, 0x2019, 0x002a, 0x2009, 0x0001, 0x1078, 0x284f,
+	0x2071, 0xa600, 0x1078, 0x2677, 0x0c7e, 0x157e, 0x20a9, 0x0081,
+	0x2009, 0x007f, 0x1078, 0x298e, 0x8108, 0x00f0, 0x7fd2, 0x157f,
+	0x0c7f, 0x1078, 0x7f91, 0x6813, 0x00ff, 0x6817, 0xfffe, 0x2071,
+	0xab80, 0x2079, 0x0100, 0x2e04, 0xa084, 0x00ff, 0x2069, 0xa61b,
+	0x206a, 0x78e6, 0x007e, 0x8e70, 0x2e04, 0x2069, 0xa61c, 0x206a,
+	0x78ea, 0xa084, 0xff00, 0x017f, 0xa105, 0x2009, 0xa626, 0x200a,
+	0x2069, 0xab8e, 0x2071, 0xa89e, 0x6810, 0x2072, 0x6814, 0x7006,
+	0x6818, 0x700a, 0x681c, 0x700e, 0x1078, 0x906e, 0x2001, 0x0006,
+	0x1078, 0x4502, 0x1078, 0x28a6, 0x1078, 0x772d, 0x017f, 0x037f,
+	0x0d7f, 0x0e7f, 0x0f7f, 0x007c, 0x027e, 0x037e, 0x0e7e, 0x157e,
+	0x2019, 0xa626, 0x231c, 0x83ff, 0x0040, 0x803e, 0x2071, 0xab80,
+	0x2e14, 0xa294, 0x00ff, 0x7004, 0xa084, 0xff00, 0xa205, 0xa306,
+	0x00c0, 0x803e, 0x2011, 0xab96, 0xad98, 0x000a, 0x20a9, 0x0004,
+	0x1078, 0x80de, 0x00c0, 0x803e, 0x2011, 0xab9a, 0xad98, 0x0006,
+	0x20a9, 0x0004, 0x1078, 0x80de, 0x00c0, 0x803e, 0x157f, 0x0e7f,
+	0x037f, 0x027f, 0x007c, 0x0e7e, 0x2071, 0xab8c, 0x7004, 0xa086,
+	0x0014, 0x00c0, 0x8066, 0x7008, 0xa086, 0x0800, 0x00c0, 0x8066,
+	0x700c, 0xd0ec, 0x0040, 0x8064, 0xa084, 0x0f00, 0xa086, 0x0100,
+	0x00c0, 0x8064, 0x7024, 0xd0a4, 0x00c0, 0x8061, 0xd0ac, 0x0040,
+	0x8064, 0xa006, 0x0078, 0x8066, 0xa085, 0x0001, 0x0e7f, 0x007c,
+	0x0e7e, 0x0d7e, 0x0c7e, 0x077e, 0x057e, 0x047e, 0x027e, 0x007e,
+	0x127e, 0x2091, 0x8000, 0x2029, 0xa8ba, 0x252c, 0x2021, 0xa8c0,
+	0x2424, 0x2061, 0xad00, 0x2071, 0xa600, 0x7248, 0x7064, 0xa202,
+	0x00c8, 0x80cc, 0x1078, 0xa242, 0x0040, 0x80c4, 0x671c, 0xa786,
+	0x0001, 0x0040, 0x80c4, 0xa786, 0x0007, 0x0040, 0x80c4, 0x2500,
+	0xac06, 0x0040, 0x80c4, 0x2400, 0xac06, 0x0040, 0x80c4, 0x0c7e,
+	0x6000, 0xa086, 0x0004, 0x00c0, 0x809f, 0x1078, 0x1757, 0xa786,
+	0x0008, 0x00c0, 0x80ae, 0x1078, 0x8f00, 0x00c0, 0x80ae, 0x0c7f,
+	0x1078, 0x7c83, 0x1078, 0x8ec6, 0x0078, 0x80c4, 0x6010, 0x2068,
+	0x1078, 0x8d06, 0x0040, 0x80c1, 0xa786, 0x0003, 0x00c0, 0x80d6,
+	0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0x4a73, 0x1078,
+	0x8eb9, 0x1078, 0x8ec6, 0x0c7f, 0xace0, 0x0010, 0x7058, 0xac02,
+	0x00c8, 0x80cc, 0x0078, 0x807d, 0x127f, 0x007f, 0x027f, 0x047f,
+	0x057f, 0x077f, 0x0c7f, 0x0d7f, 0x0e7f, 0x007c, 0xa786, 0x0006,
+	0x00c0, 0x80b8, 0x1078, 0xa1ca, 0x0078, 0x80c1, 0x220c, 0x2304,
+	0xa106, 0x00c0, 0x80e9, 0x8210, 0x8318, 0x00f0, 0x80de, 0xa006,
+	0x007c, 0x2304, 0xa102, 0x0048, 0x80f1, 0x2001, 0x0001, 0x0078,
+	0x80f3, 0x2001, 0x0000, 0xa18d, 0x0001, 0x007c, 0x6004, 0xa08a,
+	0x0044, 0x10c8, 0x1332, 0x1078, 0x8eec, 0x0040, 0x8105, 0x1078,
+	0x8f00, 0x0040, 0x8112, 0x0078, 0x810b, 0x1078, 0x28a6, 0x1078,
+	0x8f00, 0x0040, 0x8112, 0x1078, 0x61cd, 0x1078, 0x772d, 0x1078,
+	0x62d1, 0x007c, 0x1078, 0x7c83, 0x0078, 0x810b, 0xa182, 0x0040,
+	0x0079, 0x811a, 0x812d, 0x812d, 0x812d, 0x812d, 0x812d, 0x812d,
+	0x812d, 0x812d, 0x812d, 0x812d, 0x812d, 0x812f, 0x812f, 0x812f,
+	0x812f, 0x812d, 0x812d, 0x812d, 0x812f, 0x1078, 0x1332, 0x600b,
+	0xffff, 0x6003, 0x0001, 0x6106, 0x1078, 0x5d8a, 0x127e, 0x2091,
+	0x8000, 0x1078, 0x62d1, 0x127f, 0x007c, 0xa186, 0x0013, 0x00c0,
+	0x8146, 0x6004, 0xa082, 0x0040, 0x0079, 0x81d1, 0xa186, 0x0027,
+	0x00c0, 0x8168, 0x1078, 0x61cd, 0x1078, 0x2880, 0x0d7e, 0x6110,
+	0x2168, 0x1078, 0x8d06, 0x0040, 0x8162, 0x6837, 0x0103, 0x684b,
+	0x0029, 0x6847, 0x0000, 0x694c, 0xc1c5, 0x694e, 0x1078, 0x4a73,
+	0x1078, 0x8eb9, 0x0d7f, 0x1078, 0x772d, 0x1078, 0x62d1, 0x007c,
+	0xa186, 0x0014, 0x00c0, 0x8171, 0x6004, 0xa082, 0x0040, 0x0079,
+	0x8199, 0xa186, 0x0046, 0x0040, 0x817d, 0xa186, 0x0045, 0x0040,
+	0x817d, 0xa186, 0x0047, 0x10c0, 0x1332, 0x2001, 0x0109, 0x2004,
+	0xd084, 0x0040, 0x8196, 0x127e, 0x2091, 0x2200, 0x007e, 0x017e,
+	0x027e, 0x1078, 0x5c56, 0x027f, 0x017f, 0x007f, 0x127f, 0x6000,
+	0xa086, 0x0002, 0x00c0, 0x8196, 0x0078, 0x820e, 0x1078, 0x7773,
+	0x007c, 0x81ae, 0x81ac, 0x81ac, 0x81ac, 0x81ac, 0x81ac, 0x81ac,
+	0x81ac, 0x81ac, 0x81ac, 0x81ac, 0x81ca, 0x81ca, 0x81ca, 0x81ca,
+	0x81ac, 0x81ca, 0x81ac, 0x81ca, 0x1078, 0x1332, 0x1078, 0x61cd,
+	0x0d7e, 0x6110, 0x2168, 0x1078, 0x8d06, 0x0040, 0x81c4, 0x6837,
+	0x0103, 0x684b, 0x0006, 0x6847, 0x0000, 0x6850, 0xc0ec, 0x6852,
+	0x1078, 0x4a73, 0x1078, 0x8eb9, 0x0d7f, 0x1078, 0x772d, 0x1078,
+	0x62d1, 0x007c, 0x1078, 0x61cd, 0x1078, 0x772d, 0x1078, 0x62d1,
+	0x007c, 0x81e6, 0x81e4, 0x81e4, 0x81e4, 0x81e4, 0x81e4, 0x81e4,
+	0x81e4, 0x81e4, 0x81e4, 0x81e4, 0x81f8, 0x81f8, 0x81f8, 0x81f8,
+	0x81e4, 0x8207, 0x81e4, 0x81f8, 0x1078, 0x1332, 0x1078, 0x61cd,
+	0x2001, 0xa8a4, 0x2004, 0x603e, 0x6003, 0x0002, 0x1078, 0x62d1,
+	0x6010, 0xa088, 0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x007c,
+	0x1078, 0x61cd, 0x2001, 0xa8a2, 0x2004, 0x6016, 0x2001, 0xa8a4,
+	0x2004, 0x603e, 0x6003, 0x000f, 0x1078, 0x62d1, 0x007c, 0x1078,
+	0x61cd, 0x1078, 0x772d, 0x1078, 0x62d1, 0x007c, 0xa182, 0x0040,
+	0x0079, 0x8212, 0x8225, 0x8225, 0x8225, 0x8225, 0x8225, 0x8227,
+	0x8327, 0x8359, 0x8225, 0x8225, 0x8225, 0x8225, 0x8225, 0x8225,
+	0x8225, 0x8225, 0x8225, 0x8225, 0x8225, 0x1078, 0x1332, 0x0e7e,
+	0x0d7e, 0x603f, 0x0000, 0x2071, 0xab80, 0x7124, 0x610a, 0x2071,
+	0xab8c, 0x6110, 0x2168, 0x7614, 0xa6b4, 0x0fff, 0x86ff, 0x0040,
+	0x82e9, 0xa68c, 0x0c00, 0x0040, 0x825e, 0x0f7e, 0x2c78, 0x1078,
+	0x4963, 0x0f7f, 0x0040, 0x825a, 0x684c, 0xd0ac, 0x0040, 0x825a,
+	0x6024, 0xd0dc, 0x00c0, 0x825a, 0x6850, 0xd0bc, 0x00c0, 0x825a,
+	0x7318, 0x6814, 0xa306, 0x00c0, 0x8301, 0x731c, 0x6810, 0xa306,
+	0x00c0, 0x8301, 0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff,
+	0xa186, 0x0002, 0x0040, 0x8291, 0xa186, 0x0028, 0x00c0, 0x826e,
+	0x1078, 0x8eda, 0x684b, 0x001c, 0x0078, 0x8293, 0xd6dc, 0x0040,
+	0x828a, 0x684b, 0x0015, 0x684c, 0xd0ac, 0x0040, 0x8288, 0x6914,
+	0x6a10, 0x2100, 0xa205, 0x0040, 0x8288, 0x7018, 0xa106, 0x00c0,
+	0x8285, 0x701c, 0xa206, 0x0040, 0x8288, 0x6962, 0x6a5e, 0xc6dc,
+	0x0078, 0x8293, 0xd6d4, 0x0040, 0x8291, 0x684b, 0x0007, 0x0078,
+	0x8293, 0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0xa01e, 0xd6c4,
+	0x0040, 0x82bc, 0xa686, 0x0100, 0x00c0, 0x82a7, 0x2001, 0xab99,
+	0x2004, 0xa005, 0x00c0, 0x82a7, 0xc6c4, 0x0078, 0x8236, 0x7328,
+	0x732c, 0x6b56, 0x83ff, 0x0040, 0x82bc, 0xa38a, 0x0009, 0x0048,
+	0x82b3, 0x2019, 0x0008, 0x037e, 0x2308, 0x2019, 0xab98, 0xad90,
+	0x0019, 0x1078, 0x89e2, 0x037f, 0xd6cc, 0x0040, 0x8317, 0x7124,
+	0x695a, 0x81ff, 0x0040, 0x8317, 0xa192, 0x0021, 0x00c8, 0x82d5,
+	0x2071, 0xab98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x1078,
+	0x89e2, 0x1078, 0x91f4, 0x0078, 0x8317, 0x6838, 0xd0fc, 0x0040,
+	0x82de, 0x2009, 0x0020, 0x695a, 0x0078, 0x82c8, 0x0f7e, 0x2d78,
+	0x1078, 0x897a, 0x0f7f, 0x1078, 0x91f4, 0x1078, 0x89cf, 0x0078,
+	0x8319, 0x0f7e, 0x2c78, 0x1078, 0x4963, 0x0f7f, 0x0040, 0x8307,
+	0x684c, 0xd0ac, 0x0040, 0x8307, 0x6024, 0xd0dc, 0x00c0, 0x8307,
+	0x6850, 0xd0bc, 0x00c0, 0x8307, 0x6810, 0x6914, 0xa105, 0x0040,
+	0x8307, 0x1078, 0x8fbf, 0x0d7f, 0x0e7f, 0x0078, 0x8326, 0x684b,
+	0x0000, 0x6837, 0x0103, 0x6e46, 0x684c, 0xd0ac, 0x0040, 0x8317,
+	0x6810, 0x6914, 0xa115, 0x0040, 0x8317, 0x1078, 0x84d5, 0x1078,
+	0x4a73, 0x6218, 0x2268, 0x6a3c, 0x8211, 0x6a3e, 0x1078, 0x8f89,
+	0x0d7f, 0x0e7f, 0x00c0, 0x8326, 0x1078, 0x772d, 0x007c, 0x0f7e,
+	0x6003, 0x0003, 0x2079, 0xab8c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08,
+	0x6010, 0x2078, 0x784c, 0xd0ac, 0x0040, 0x833e, 0x6003, 0x0002,
+	0x0f7f, 0x007c, 0x2130, 0x2228, 0x0078, 0x834a, 0x2400, 0x797c,
+	0xa10a, 0x2300, 0x7a80, 0xa213, 0x2600, 0xa102, 0x2500, 0xa203,
+	0x0048, 0x833a, 0x7c12, 0x7b16, 0x7e0a, 0x7d0e, 0x0f7f, 0x603f,
+	0x0000, 0x2c10, 0x1078, 0x1cf0, 0x1078, 0x5df6, 0x1078, 0x639b,
+	0x007c, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x6003, 0x0004, 0x6110,
+	0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x1078, 0x15fa, 0x007c,
+	0xa182, 0x0040, 0x0079, 0x836c, 0x837f, 0x837f, 0x837f, 0x837f,
+	0x837f, 0x8381, 0x8424, 0x837f, 0x837f, 0x843a, 0x84ab, 0x837f,
+	0x837f, 0x837f, 0x837f, 0x84ba, 0x837f, 0x837f, 0x837f, 0x1078,
+	0x1332, 0x077e, 0x0f7e, 0x0e7e, 0x0d7e, 0x2071, 0xab8c, 0x6110,
+	0x2178, 0x7614, 0xa6b4, 0x0fff, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e,
+	0x6218, 0x2268, 0x6a3c, 0x8211, 0x6a3e, 0x86ff, 0x0040, 0x841f,
+	0xa694, 0xff00, 0xa284, 0x0c00, 0x0040, 0x83a2, 0x7018, 0x7862,
+	0x701c, 0x785e, 0xa284, 0x0300, 0x0040, 0x841f, 0x1078, 0x138b,
+	0x1040, 0x1332, 0x2d00, 0x784a, 0x7f4c, 0xc7cd, 0x7f4e, 0x6837,
+	0x0103, 0x7838, 0x683a, 0x783c, 0x683e, 0x7840, 0x6842, 0x6e46,
+	0xa68c, 0x0c00, 0x0040, 0x83c0, 0x7318, 0x6b62, 0x731c, 0x6b5e,
+	0xa68c, 0x00ff, 0xa186, 0x0002, 0x0040, 0x83dc, 0xa186, 0x0028,
+	0x00c0, 0x83ce, 0x684b, 0x001c, 0x0078, 0x83de, 0xd6dc, 0x0040,
+	0x83d5, 0x684b, 0x0015, 0x0078, 0x83de, 0xd6d4, 0x0040, 0x83dc,
+	0x684b, 0x0007, 0x0078, 0x83de, 0x684b, 0x0000, 0x6f4e, 0x7850,
+	0x6852, 0x7854, 0x6856, 0xa01e, 0xd6c4, 0x0040, 0x83fc, 0x7328,
+	0x732c, 0x6b56, 0x83ff, 0x0040, 0x83fc, 0xa38a, 0x0009, 0x0048,
+	0x83f3, 0x2019, 0x0008, 0x037e, 0x2308, 0x2019, 0xab98, 0xad90,
+	0x0019, 0x1078, 0x89e2, 0x037f, 0xd6cc, 0x0040, 0x841f, 0x7124,
+	0x695a, 0x81ff, 0x0040, 0x841f, 0xa192, 0x0021, 0x00c8, 0x8413,
+	0x2071, 0xab98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x1078,
+	0x89e2, 0x0078, 0x841f, 0x7838, 0xd0fc, 0x0040, 0x841c, 0x2009,
+	0x0020, 0x695a, 0x0078, 0x8408, 0x2d78, 0x1078, 0x897a, 0x0d7f,
+	0x0e7f, 0x0f7f, 0x077f, 0x007c, 0x0f7e, 0x6003, 0x0003, 0x2079,
+	0xab8c, 0x7c04, 0x7b00, 0x7e0c, 0x7d08, 0x6010, 0x2078, 0x7c12,
+	0x7b16, 0x7e0a, 0x7d0e, 0x0f7f, 0x2c10, 0x1078, 0x1cf0, 0x1078,
+	0x6df4, 0x007c, 0x0d7e, 0x0f7e, 0x2c78, 0x1078, 0x4963, 0x0f7f,
+	0x0040, 0x8446, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x6003, 0x0002,
+	0x1078, 0x627a, 0x1078, 0x639b, 0x6110, 0x2168, 0x694c, 0xd1e4,
+	0x0040, 0x84a9, 0xd1cc, 0x0040, 0x8480, 0x6948, 0x6838, 0xd0fc,
+	0x0040, 0x8478, 0x017e, 0x684c, 0x007e, 0x6850, 0x007e, 0xad90,
+	0x000d, 0xa198, 0x000d, 0x2009, 0x0020, 0x157e, 0x21a8, 0x2304,
+	0x2012, 0x8318, 0x8210, 0x00f0, 0x8467, 0x157f, 0x007f, 0x6852,
+	0x007f, 0x684e, 0x017f, 0x2168, 0x1078, 0x13b4, 0x0078, 0x84a3,
+	0x017e, 0x1078, 0x13b4, 0x0d7f, 0x1078, 0x89cf, 0x0078, 0x84a3,
+	0x6837, 0x0103, 0x6944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x0040,
+	0x849f, 0xa086, 0x0028, 0x00c0, 0x8491, 0x684b, 0x001c, 0x0078,
+	0x84a1, 0xd1dc, 0x0040, 0x8498, 0x684b, 0x0015, 0x0078, 0x84a1,
+	0xd1d4, 0x0040, 0x849f, 0x684b, 0x0007, 0x0078, 0x84a1, 0x684b,
+	0x0000, 0x1078, 0x4a73, 0x1078, 0x8f89, 0x00c0, 0x84a9, 0x1078,
+	0x772d, 0x0d7f, 0x007c, 0x2019, 0x0001, 0x1078, 0x7058, 0x6003,
+	0x0002, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x1078, 0x627a, 0x1078,
+	0x639b, 0x007c, 0x1078, 0x627a, 0x1078, 0x2880, 0x0d7e, 0x6110,
+	0x2168, 0x1078, 0x8d06, 0x0040, 0x84cf, 0x6837, 0x0103, 0x684b,
+	0x0029, 0x6847, 0x0000, 0x1078, 0x4a73, 0x1078, 0x8eb9, 0x0d7f,
+	0x1078, 0x772d, 0x1078, 0x639b, 0x007c, 0x684b, 0x0015, 0xd1fc,
+	0x0040, 0x84e1, 0x684b, 0x0007, 0x8002, 0x8000, 0x810a, 0xa189,
+	0x0000, 0x6962, 0x685e, 0x007c, 0xa182, 0x0040, 0x0079, 0x84e8,
+	0x84fb, 0x84fb, 0x84fb, 0x84fb, 0x84fb, 0x84fd, 0x84fb, 0x85d0,
+	0x85dc, 0x84fb, 0x84fb, 0x84fb, 0x84fb, 0x84fb, 0x84fb, 0x84fb,
+	0x84fb, 0x84fb, 0x84fb, 0x1078, 0x1332, 0x077e, 0x0f7e, 0x0e7e,
+	0x0d7e, 0x2071, 0xab8c, 0x6110, 0x2178, 0x7614, 0xa6b4, 0x0fff,
+	0x0f7e, 0x2c78, 0x1078, 0x4963, 0x0f7f, 0x0040, 0x851b, 0xa684,
+	0x00ff, 0x00c0, 0x851b, 0x6024, 0xd0f4, 0x0040, 0x851b, 0x1078,
+	0x8fbf, 0x0078, 0x85cb, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e, 0x6218,
+	0x2268, 0x6a3c, 0x8211, 0x6a3e, 0x86ff, 0x0040, 0x85c0, 0xa694,
+	0xff00, 0xa284, 0x0c00, 0x0040, 0x8531, 0x7018, 0x7862, 0x701c,
+	0x785e, 0xa284, 0x0300, 0x0040, 0x85bd, 0xa686, 0x0100, 0x00c0,
+	0x8543, 0x2001, 0xab99, 0x2004, 0xa005, 0x00c0, 0x8543, 0xc6c4,
+	0x7e46, 0x0078, 0x8524, 0x1078, 0x138b, 0x1040, 0x1332, 0x2d00,
+	0x784a, 0x7f4c, 0xa7bd, 0x0200, 0x7f4e, 0x6837, 0x0103, 0x7838,
+	0x683a, 0x783c, 0x683e, 0x7840, 0x6842, 0x6e46, 0xa68c, 0x0c00,
+	0x0040, 0x855e, 0x7318, 0x6b62, 0x731c, 0x6b5e, 0xa68c, 0x00ff,
+	0xa186, 0x0002, 0x0040, 0x857a, 0xa186, 0x0028, 0x00c0, 0x856c,
+	0x684b, 0x001c, 0x0078, 0x857c, 0xd6dc, 0x0040, 0x8573, 0x684b,
+	0x0015, 0x0078, 0x857c, 0xd6d4, 0x0040, 0x857a, 0x684b, 0x0007,
+	0x0078, 0x857c, 0x684b, 0x0000, 0x6f4e, 0x7850, 0x6852, 0x7854,
+	0x6856, 0xa01e, 0xd6c4, 0x0040, 0x859a, 0x7328, 0x732c, 0x6b56,
+	0x83ff, 0x0040, 0x859a, 0xa38a, 0x0009, 0x0048, 0x8591, 0x2019,
+	0x0008, 0x037e, 0x2308, 0x2019, 0xab98, 0xad90, 0x0019, 0x1078,
+	0x89e2, 0x037f, 0xd6cc, 0x0040, 0x85bd, 0x7124, 0x695a, 0x81ff,
+	0x0040, 0x85bd, 0xa192, 0x0021, 0x00c8, 0x85b1, 0x2071, 0xab98,
+	0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x1078, 0x89e2, 0x0078,
+	0x85bd, 0x7838, 0xd0fc, 0x0040, 0x85ba, 0x2009, 0x0020, 0x695a,
+	0x0078, 0x85a6, 0x2d78, 0x1078, 0x897a, 0xd6dc, 0x00c0, 0x85c3,
+	0xa006, 0x0078, 0x85c9, 0x2001, 0x0001, 0x2071, 0xab8c, 0x7218,
+	0x731c, 0x1078, 0x1653, 0x0d7f, 0x0e7f, 0x0f7f, 0x077f, 0x007c,
+	0x2001, 0xa8a4, 0x2004, 0x603e, 0x20e1, 0x0005, 0x3d18, 0x3e20,
+	0x2c10, 0x1078, 0x15fa, 0x007c, 0x2001, 0xa8a4, 0x2004, 0x603e,
+	0x0d7e, 0x6003, 0x0002, 0x6110, 0x2168, 0x694c, 0xd1e4, 0x0040,
+	0x870c, 0x603f, 0x0000, 0x0f7e, 0x2c78, 0x1078, 0x4963, 0x0f7f,
+	0x0040, 0x8622, 0x6814, 0x6910, 0xa115, 0x0040, 0x8622, 0x6a60,
+	0xa206, 0x00c0, 0x85ff, 0x685c, 0xa106, 0x0040, 0x8622, 0x684c,
+	0xc0e4, 0x684e, 0x6847, 0x0000, 0x6863, 0x0000, 0x685f, 0x0000,
+	0x6024, 0xd0f4, 0x00c0, 0x8617, 0x697c, 0x6810, 0xa102, 0x603a,
+	0x6980, 0x6814, 0xa103, 0x6036, 0x6024, 0xc0f5, 0x6026, 0x0d7e,
+	0x6018, 0x2068, 0x683c, 0x8000, 0x683e, 0x0d7f, 0x1078, 0x8fbf,
+	0x0078, 0x870c, 0x694c, 0xd1cc, 0x0040, 0x86d1, 0x6948, 0x6838,
+	0xd0fc, 0x0040, 0x8689, 0x017e, 0x684c, 0x007e, 0x6850, 0x007e,
+	0x0f7e, 0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6, 0x0002, 0x0040,
+	0x865c, 0xa086, 0x0028, 0x00c0, 0x8643, 0x684b, 0x001c, 0x784b,
+	0x001c, 0x0078, 0x8667, 0xd1dc, 0x0040, 0x8653, 0x684b, 0x0015,
+	0x784b, 0x0015, 0x1078, 0x916c, 0x0040, 0x8651, 0x7944, 0xc1dc,
+	0x7946, 0x0078, 0x8667, 0xd1d4, 0x0040, 0x865c, 0x684b, 0x0007,
+	0x784b, 0x0007, 0x0078, 0x8667, 0x684c, 0xd0ac, 0x0040, 0x8667,
+	0x6810, 0x6914, 0xa115, 0x0040, 0x8667, 0x1078, 0x84d5, 0x6848,
+	0x784a, 0x6860, 0x7862, 0x685c, 0x785e, 0xad90, 0x000d, 0xaf98,
+	0x000d, 0x2009, 0x0020, 0x157e, 0x21a8, 0x2304, 0x2012, 0x8318,
+	0x8210, 0x00f0, 0x8675, 0x157f, 0x0f7f, 0x007f, 0x6852, 0x007f,
+	0x684e, 0x1078, 0x91f4, 0x017f, 0x2168, 0x1078, 0x13b4, 0x0078,
+	0x8706, 0x017e, 0x0f7e, 0x2178, 0x7944, 0xa184, 0x00ff, 0xa0b6,
+	0x0002, 0x0040, 0x86b6, 0xa086, 0x0028, 0x00c0, 0x869d, 0x684b,
+	0x001c, 0x784b, 0x001c, 0x0078, 0x86c1, 0xd1dc, 0x0040, 0x86ad,
+	0x684b, 0x0015, 0x784b, 0x0015, 0x1078, 0x916c, 0x0040, 0x86ab,
+	0x7944, 0xc1dc, 0x7946, 0x0078, 0x86c1, 0xd1d4, 0x0040, 0x86b6,
+	0x684b, 0x0007, 0x784b, 0x0007, 0x0078, 0x86c1, 0x684c, 0xd0ac,
+	0x0040, 0x86c1, 0x6810, 0x6914, 0xa115, 0x0040, 0x86c1, 0x1078,
+	0x84d5, 0x6860, 0x7862, 0x685c, 0x785e, 0x684c, 0x784e, 0x0f7f,
+	0x1078, 0x13b4, 0x0d7f, 0x1078, 0x91f4, 0x1078, 0x89cf, 0x0078,
+	0x8706, 0x6837, 0x0103, 0x6944, 0xa184, 0x00ff, 0xa0b6, 0x0002,
+	0x0040, 0x86f7, 0xa086, 0x0028, 0x00c0, 0x86e2, 0x684b, 0x001c,
+	0x0078, 0x8704, 0xd1dc, 0x0040, 0x86f0, 0x684b, 0x0015, 0x1078,
+	0x916c, 0x0040, 0x86ee, 0x6944, 0xc1dc, 0x6946, 0x0078, 0x8704,
+	0xd1d4, 0x0040, 0x86f7, 0x684b, 0x0007, 0x0078, 0x8704, 0x684b,
+	0x0000, 0x684c, 0xd0ac, 0x0040, 0x8704, 0x6810, 0x6914, 0xa115,
+	0x0040, 0x8704, 0x1078, 0x84d5, 0x1078, 0x4a73, 0x1078, 0x8f89,
+	0x00c0, 0x870c, 0x1078, 0x772d, 0x0d7f, 0x007c, 0x1078, 0x61cd,
+	0x0078, 0x8714, 0x1078, 0x627a, 0x1078, 0x8d06, 0x0040, 0x8733,
+	0x0d7e, 0x6110, 0x2168, 0x6837, 0x0103, 0x2009, 0xa60c, 0x210c,
+	0xd18c, 0x00c0, 0x873e, 0xd184, 0x00c0, 0x873a, 0x6108, 0x694a,
+	0xa18e, 0x0029, 0x00c0, 0x872e, 0x1078, 0xa4e2, 0x6847, 0x0000,
+	0x1078, 0x4a73, 0x0d7f, 0x1078, 0x772d, 0x1078, 0x62d1, 0x1078,
+	0x639b, 0x007c, 0x684b, 0x0004, 0x0078, 0x872e, 0x684b, 0x0004,
+	0x0078, 0x872e, 0xa182, 0x0040, 0x0079, 0x8746, 0x8759, 0x8759,
+	0x8759, 0x8759, 0x8759, 0x875b, 0x8759, 0x875e, 0x8759, 0x8759,
+	0x8759, 0x8759, 0x8759, 0x8759, 0x8759, 0x8759, 0x8759, 0x8759,
+	0x8759, 0x1078, 0x1332, 0x1078, 0x772d, 0x007c, 0x007e, 0x027e,
+	0xa016, 0x1078, 0x15fa, 0x027f, 0x007f, 0x007c, 0xa182, 0x0085,
+	0x0079, 0x876a, 0x8773, 0x8771, 0x8771, 0x877f, 0x8771, 0x8771,
+	0x8771, 0x1078, 0x1332, 0x6003, 0x0001, 0x6106, 0x1078, 0x5d8a,
+	0x127e, 0x2091, 0x8000, 0x1078, 0x62d1, 0x127f, 0x007c, 0x027e,
+	0x057e, 0x0d7e, 0x0e7e, 0x2071, 0xab80, 0x7224, 0x6212, 0x7220,
+	0x1078, 0x8cf2, 0x0040, 0x87a4, 0x2268, 0x6800, 0xa086, 0x0000,
+	0x0040, 0x87a4, 0x6018, 0x6d18, 0xa52e, 0x00c0, 0x87a4, 0x0c7e,
+	0x2d60, 0x1078, 0x89f3, 0x0c7f, 0x0040, 0x87a4, 0x6803, 0x0002,
+	0x6007, 0x0086, 0x0078, 0x87a6, 0x6007, 0x0087, 0x6003, 0x0001,
+	0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0f7e, 0x2278, 0x1078, 0x4963,
+	0x0f7f, 0x0040, 0x87be, 0x6824, 0xd0ec, 0x0040, 0x87be, 0x0c7e,
+	0x2260, 0x603f, 0x0000, 0x1078, 0x8fbf, 0x0c7f, 0x0e7f, 0x0d7f,
+	0x057f, 0x027f, 0x007c, 0xa186, 0x0013, 0x00c0, 0x87d4, 0x6004,
+	0xa08a, 0x0085, 0x1048, 0x1332, 0xa08a, 0x008c, 0x10c8, 0x1332,
+	0xa082, 0x0085, 0x0079, 0x87e3, 0xa186, 0x0027, 0x0040, 0x87dc,
+	0xa186, 0x0014, 0x10c0, 0x1332, 0x1078, 0x61cd, 0x1078, 0x8ec6,
+	0x1078, 0x62d1, 0x007c, 0x87ea, 0x87ec, 0x87ec, 0x87ea, 0x87ea,
+	0x87ea, 0x87ea, 0x1078, 0x1332, 0x1078, 0x61cd, 0x1078, 0x8ec6,
+	0x1078, 0x62d1, 0x007c, 0xa186, 0x0013, 0x00c0, 0x87fd, 0x6004,
+	0xa082, 0x0085, 0x2008, 0x0078, 0x8838, 0xa186, 0x0027, 0x00c0,
+	0x8820, 0x1078, 0x61cd, 0x1078, 0x2880, 0x0d7e, 0x6010, 0x2068,
+	0x1078, 0x8d06, 0x0040, 0x8816, 0x6837, 0x0103, 0x6847, 0x0000,
+	0x684b, 0x0029, 0x1078, 0x4a73, 0x1078, 0x8eb9, 0x0d7f, 0x1078,
+	0x772d, 0x1078, 0x62d1, 0x007c, 0x1078, 0x7773, 0x0078, 0x881b,
+	0xa186, 0x0014, 0x00c0, 0x881c, 0x1078, 0x61cd, 0x0d7e, 0x6010,
+	0x2068, 0x1078, 0x8d06, 0x0040, 0x8816, 0x6837, 0x0103, 0x6847,
+	0x0000, 0x684b, 0x0006, 0x6850, 0xc0ec, 0x6852, 0x0078, 0x8812,
+	0x0079, 0x883a, 0x8843, 0x8841, 0x8841, 0x8841, 0x8841, 0x8841,
+	0x885e, 0x1078, 0x1332, 0x1078, 0x61cd, 0x6030, 0xa08c, 0xff00,
+	0x810f, 0xa186, 0x0039, 0x0040, 0x8851, 0xa186, 0x0035, 0x00c0,
+	0x8855, 0x2001, 0xa8a2, 0x0078, 0x8857, 0x2001, 0xa8a3, 0x2004,
+	0x6016, 0x6003, 0x000c, 0x1078, 0x62d1, 0x007c, 0x1078, 0x61cd,
+	0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0040, 0x886c,
+	0xa186, 0x0035, 0x00c0, 0x8870, 0x2001, 0xa8a2, 0x0078, 0x8872,
+	0x2001, 0xa8a3, 0x2004, 0x6016, 0x6003, 0x000e, 0x1078, 0x62d1,
+	0x007c, 0xa182, 0x008c, 0x00c8, 0x8883, 0xa182, 0x0085, 0x0048,
+	0x8883, 0x0079, 0x8886, 0x1078, 0x7773, 0x007c, 0x888d, 0x888d,
+	0x888d, 0x888d, 0x888f, 0x88ec, 0x888d, 0x1078, 0x1332, 0x0f7e,
+	0x2c78, 0x1078, 0x4963, 0x0f7f, 0x0040, 0x88a2, 0x6030, 0xa08c,
+	0xff00, 0x810f, 0xa186, 0x0039, 0x0040, 0x8903, 0xa186, 0x0035,
+	0x0040, 0x8903, 0x0d7e, 0x1078, 0x8d06, 0x00c0, 0x88ab, 0x1078,
+	0x8eb9, 0x0078, 0x88ce, 0x6010, 0x2068, 0x684c, 0xd0e4, 0x00c0,
+	0x88b3, 0x1078, 0x8eb9, 0x6837, 0x0103, 0x6850, 0xd0b4, 0x0040,
+	0x88bf, 0x684b, 0x0006, 0xc0ec, 0x6852, 0x0078, 0x88ca, 0xd0bc,
+	0x0040, 0x88c6, 0x684b, 0x0002, 0x0078, 0x88ca, 0x684b, 0x0005,
+	0x1078, 0x8f85, 0x6847, 0x0000, 0x1078, 0x4a73, 0x2c68, 0x1078,
+	0x76c7, 0x0040, 0x88e7, 0x6003, 0x0001, 0x6007, 0x001e, 0x2009,
+	0xab8e, 0x210c, 0x6136, 0x2009, 0xab8f, 0x210c, 0x613a, 0x6918,
+	0x611a, 0x6920, 0x6122, 0x601f, 0x0001, 0x1078, 0x5d8a, 0x2d60,
+	0x1078, 0x772d, 0x0d7f, 0x007c, 0x0f7e, 0x2c78, 0x1078, 0x4963,
+	0x0f7f, 0x0040, 0x8929, 0x6030, 0xa08c, 0xff00, 0x810f, 0xa186,
+	0x0035, 0x0040, 0x8903, 0xa186, 0x001e, 0x0040, 0x8903, 0xa186,
+	0x0039, 0x00c0, 0x8929, 0x0d7e, 0x2c68, 0x1078, 0x91bc, 0x00c0,
+	0x894d, 0x1078, 0x76c7, 0x0040, 0x8926, 0x6106, 0x6003, 0x0001,
+	0x601f, 0x0001, 0x6918, 0x611a, 0x6928, 0x612a, 0x692c, 0x612e,
+	0x6930, 0xa18c, 0x00ff, 0x6132, 0x6934, 0x6136, 0x6938, 0x613a,
+	0x6920, 0x6122, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x2d60, 0x0078,
+	0x894d, 0x0d7e, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x894d,
+	0x6837, 0x0103, 0x6850, 0xd0b4, 0x0040, 0x893c, 0xc0ec, 0x6852,
+	0x684b, 0x0006, 0x0078, 0x8947, 0xd0bc, 0x0040, 0x8943, 0x684b,
+	0x0002, 0x0078, 0x8947, 0x684b, 0x0005, 0x1078, 0x8f85, 0x6847,
+	0x0000, 0x1078, 0x4a73, 0x1078, 0x8eb9, 0x0d7f, 0x1078, 0x772d,
+	0x007c, 0x017e, 0x0d7e, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040,
+	0x8961, 0x6837, 0x0103, 0x684b, 0x0028, 0x6847, 0x0000, 0x1078,
+	0x4a73, 0x0d7f, 0x017f, 0xa186, 0x0013, 0x0040, 0x8973, 0xa186,
+	0x0014, 0x0040, 0x8973, 0xa186, 0x0027, 0x0040, 0x8973, 0x1078,
+	0x7773, 0x0078, 0x8979, 0x1078, 0x61cd, 0x1078, 0x8ec6, 0x1078,
+	0x62d1, 0x007c, 0x057e, 0x067e, 0x0d7e, 0x0f7e, 0x2029, 0x0001,
+	0xa182, 0x0101, 0x00c8, 0x8986, 0x0078, 0x8988, 0x2009, 0x0100,
+	0x2130, 0x2069, 0xab98, 0x831c, 0x2300, 0xad18, 0x2009, 0x0020,
+	0xaf90, 0x001d, 0x1078, 0x89e2, 0xa6b2, 0x0020, 0x7804, 0xa06d,
+	0x0040, 0x899c, 0x1078, 0x13b4, 0x1078, 0x138b, 0x0040, 0x89c6,
+	0x8528, 0x6837, 0x0110, 0x683b, 0x0000, 0x2d20, 0x7c06, 0xa68a,
+	0x003d, 0x00c8, 0x89b2, 0x2608, 0xad90, 0x000f, 0x1078, 0x89e2,
+	0x0078, 0x89c6, 0xa6b2, 0x003c, 0x2009, 0x003c, 0x2d78, 0xad90,
+	0x000f, 0x1078, 0x89e2, 0x0078, 0x899c, 0x0f7f, 0x852f, 0xa5ad,
+	0x0003, 0x7d36, 0xa5ac, 0x0000, 0x0078, 0x89cb, 0x0f7f, 0x852f,
+	0xa5ad, 0x0003, 0x7d36, 0x0d7f, 0x067f, 0x057f, 0x007c, 0x0f7e,
+	0x8dff, 0x0040, 0x89e0, 0x6804, 0xa07d, 0x0040, 0x89de, 0x6807,
+	0x0000, 0x1078, 0x4a73, 0x2f68, 0x0078, 0x89d3, 0x1078, 0x4a73,
+	0x0f7f, 0x007c, 0x157e, 0xa184, 0x0001, 0x0040, 0x89e8, 0x8108,
+	0x810c, 0x21a8, 0x2304, 0x8007, 0x2012, 0x8318, 0x8210, 0x00f0,
+	0x89ea, 0x157f, 0x007c, 0x067e, 0x127e, 0x2091, 0x8000, 0x2031,
+	0x0001, 0x601c, 0xa084, 0x000f, 0x1079, 0x8a0f, 0x127f, 0x067f,
+	0x007c, 0x127e, 0x2091, 0x8000, 0x067e, 0x2031, 0x0000, 0x601c,
+	0xa084, 0x000f, 0x1079, 0x8a0f, 0x067f, 0x127f, 0x007c, 0x8a29,
+	0x8a17, 0x8a24, 0x8a45, 0x8a17, 0x8a24, 0x8a45, 0x8a24, 0x1078,
+	0x1332, 0x037e, 0x2019, 0x0010, 0x1078, 0x9dc7, 0x601f, 0x0006,
+	0x6003, 0x0007, 0x037f, 0x007c, 0xa006, 0x007c, 0xa085, 0x0001,
+	0x007c, 0x0d7e, 0x86ff, 0x00c0, 0x8a40, 0x6010, 0x2068, 0x1078,
+	0x8d06, 0x0040, 0x8a42, 0xa00e, 0x2001, 0x0005, 0x1078, 0x4b51,
+	0x1078, 0x8f85, 0x1078, 0x4a73, 0x1078, 0x772d, 0xa085, 0x0001,
+	0x0d7f, 0x007c, 0xa006, 0x0078, 0x8a40, 0x6000, 0xa08a, 0x0010,
+	0x10c8, 0x1332, 0x1079, 0x8a4d, 0x007c, 0x8a5d, 0x8a82, 0x8a5f,
+	0x8aa5, 0x8a7e, 0x8a5d, 0x8a24, 0x8a29, 0x8a29, 0x8a24, 0x8a24,
+	0x8a24, 0x8a24, 0x8a24, 0x8a24, 0x8a24, 0x1078, 0x1332, 0x86ff,
+	0x00c0, 0x8a7b, 0x601c, 0xa086, 0x0006, 0x0040, 0x8a7b, 0x0d7e,
+	0x6010, 0x2068, 0x1078, 0x8d06, 0x0040, 0x8a70, 0x1078, 0x8f85,
+	0x0d7f, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x1078,
+	0x5d8a, 0x1078, 0x62d1, 0xa085, 0x0001, 0x007c, 0x1078, 0x1757,
+	0x0078, 0x8a5f, 0x0e7e, 0x2071, 0xa8b1, 0x7024, 0xac06, 0x00c0,
+	0x8a8b, 0x1078, 0x6fc4, 0x601c, 0xa084, 0x000f, 0xa086, 0x0006,
+	0x00c0, 0x8a9d, 0x087e, 0x097e, 0x2049, 0x0001, 0x2c40, 0x1078,
+	0x7246, 0x097f, 0x087f, 0x0078, 0x8a9f, 0x1078, 0x6ebe, 0x0e7f,
+	0x00c0, 0x8a5f, 0x1078, 0x8a24, 0x007c, 0x037e, 0x0e7e, 0x2071,
+	0xa8b1, 0x703c, 0xac06, 0x00c0, 0x8ab5, 0x2019, 0x0000, 0x1078,
+	0x7058, 0x0e7f, 0x037f, 0x0078, 0x8a5f, 0x1078, 0x738a, 0x0e7f,
+	0x037f, 0x00c0, 0x8a5f, 0x1078, 0x8a24, 0x007c, 0x0c7e, 0x601c,
+	0xa084, 0x000f, 0x1079, 0x8ac6, 0x0c7f, 0x007c, 0x8ad5, 0x8b47,
+	0x8c7f, 0x8ae0, 0x8ec6, 0x8ad5, 0x9db8, 0x772d, 0x8b47, 0x1078,
+	0x8f00, 0x00c0, 0x8ad5, 0x1078, 0x7c83, 0x007c, 0x1078, 0x61cd,
+	0x1078, 0x62d1, 0x1078, 0x772d, 0x007c, 0x6017, 0x0001, 0x007c,
+	0x1078, 0x8d06, 0x0040, 0x8ae8, 0x6010, 0xa080, 0x0019, 0x2c02,
+	0x6000, 0xa08a, 0x0010, 0x10c8, 0x1332, 0x1079, 0x8af0, 0x007c,
+	0x8b00, 0x8b02, 0x8b24, 0x8b36, 0x8b43, 0x8b00, 0x8ad5, 0x8ad5,
+	0x8ad5, 0x8b36, 0x8b36, 0x8b00, 0x8b00, 0x8b00, 0x8b00, 0x8b40,
+	0x1078, 0x1332, 0x0e7e, 0x6010, 0x2070, 0x7050, 0xc0b5, 0x7052,
+	0x2071, 0xa8b1, 0x7024, 0xac06, 0x0040, 0x8b20, 0x1078, 0x6ebe,
+	0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x2001, 0xa8a3,
+	0x2004, 0x6016, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0e7f, 0x007c,
+	0x6017, 0x0001, 0x0078, 0x8b1e, 0x0d7e, 0x6010, 0x2068, 0x6850,
+	0xc0b5, 0x6852, 0x0d7f, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f,
+	0x0002, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x007c, 0x0d7e, 0x6017,
+	0x0001, 0x6010, 0x2068, 0x6850, 0xc0b5, 0x6852, 0x0d7f, 0x007c,
+	0x1078, 0x772d, 0x007c, 0x1078, 0x1757, 0x0078, 0x8b24, 0x6000,
+	0xa08a, 0x0010, 0x10c8, 0x1332, 0x1079, 0x8b4f, 0x007c, 0x8b5f,
+	0x8add, 0x8b61, 0x8b5f, 0x8b61, 0x8b61, 0x8ad6, 0x8b5f, 0x8acf,
+	0x8acf, 0x8b5f, 0x8b5f, 0x8b5f, 0x8b5f, 0x8b5f, 0x8b5f, 0x1078,
+	0x1332, 0x0d7e, 0x6018, 0x2068, 0x6804, 0xa084, 0x00ff, 0x0d7f,
+	0xa08a, 0x000c, 0x10c8, 0x1332, 0x1079, 0x8b6f, 0x007c, 0x8b7b,
+	0x8c23, 0x8b7d, 0x8bbd, 0x8b7d, 0x8bbd, 0x8b7d, 0x8b8a, 0x8b7b,
+	0x8bbd, 0x8b7b, 0x8ba7, 0x1078, 0x1332, 0x6004, 0xa08e, 0x0016,
+	0x0040, 0x8bb8, 0xa08e, 0x0004, 0x0040, 0x8bb8, 0xa08e, 0x0002,
+	0x0040, 0x8bb8, 0x6004, 0x1078, 0x8f00, 0x0040, 0x8c3e, 0xa08e,
+	0x0021, 0x0040, 0x8c42, 0xa08e, 0x0022, 0x0040, 0x8c3e, 0xa08e,
+	0x003d, 0x0040, 0x8c42, 0xa08e, 0x0039, 0x0040, 0x8c46, 0xa08e,
+	0x0035, 0x0040, 0x8c46, 0xa08e, 0x001e, 0x0040, 0x8bba, 0xa08e,
+	0x0001, 0x00c0, 0x8bb6, 0x0d7e, 0x6018, 0x2068, 0x6804, 0xa084,
+	0x00ff, 0x0d7f, 0xa086, 0x0006, 0x0040, 0x8bb8, 0x1078, 0x2880,
+	0x1078, 0x7c83, 0x1078, 0x8ec6, 0x007c, 0x0c7e, 0x0d7e, 0x6104,
+	0xa186, 0x0016, 0x0040, 0x8c13, 0xa186, 0x0002, 0x00c0, 0x8be6,
+	0x6018, 0x2068, 0x68a0, 0xd0bc, 0x00c0, 0x8c6a, 0x6840, 0xa084,
+	0x00ff, 0xa005, 0x0040, 0x8be6, 0x8001, 0x6842, 0x6013, 0x0000,
+	0x601f, 0x0007, 0x6017, 0x0398, 0x1078, 0x76c7, 0x0040, 0x8be6,
+	0x2d00, 0x601a, 0x601f, 0x0001, 0x0078, 0x8c13, 0x0d7f, 0x0c7f,
+	0x6004, 0xa08e, 0x0002, 0x00c0, 0x8c04, 0x6018, 0xa080, 0x0028,
+	0x2004, 0xa086, 0x007e, 0x00c0, 0x8c04, 0x2009, 0xa633, 0x2104,
+	0xc085, 0x200a, 0x0e7e, 0x2071, 0xa600, 0x1078, 0x42b8, 0x0e7f,
+	0x1078, 0x7c83, 0x0078, 0x8c08, 0x1078, 0x7c83, 0x1078, 0x2880,
+	0x0e7e, 0x127e, 0x2091, 0x8000, 0x1078, 0x28a6, 0x127f, 0x0e7f,
+	0x1078, 0x8ec6, 0x007c, 0x2001, 0x0002, 0x1078, 0x4502, 0x6003,
+	0x0001, 0x6007, 0x0002, 0x1078, 0x5dd7, 0x1078, 0x62d1, 0x0d7f,
+	0x0c7f, 0x0078, 0x8c12, 0x0c7e, 0x0d7e, 0x6104, 0xa186, 0x0016,
+	0x0040, 0x8c13, 0x6018, 0x2068, 0x6840, 0xa084, 0x00ff, 0xa005,
+	0x0040, 0x8be6, 0x8001, 0x6842, 0x6003, 0x0001, 0x1078, 0x5dd7,
+	0x1078, 0x62d1, 0x0d7f, 0x0c7f, 0x0078, 0x8c12, 0x1078, 0x7c83,
+	0x0078, 0x8bba, 0x1078, 0x7ca6, 0x0078, 0x8bba, 0x0d7e, 0x2c68,
+	0x6104, 0x1078, 0x91bc, 0x0d7f, 0x0040, 0x8c52, 0x1078, 0x772d,
+	0x0078, 0x8c69, 0x6004, 0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105,
+	0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0002, 0x6038,
+	0x600a, 0x2001, 0xa8a3, 0x2004, 0x6016, 0x1078, 0x5d8a, 0x1078,
+	0x62d1, 0x007c, 0x0d7f, 0x0c7f, 0x1078, 0x7c83, 0x1078, 0x2880,
+	0x0e7e, 0x127e, 0x2091, 0x8000, 0x1078, 0x28a6, 0x6013, 0x0000,
+	0x601f, 0x0007, 0x6017, 0x0398, 0x127f, 0x0e7f, 0x007c, 0x6000,
+	0xa08a, 0x0010, 0x10c8, 0x1332, 0x1079, 0x8c87, 0x007c, 0x8c97,
+	0x8c97, 0x8c97, 0x8c97, 0x8c97, 0x8c97, 0x8c97, 0x8c97, 0x8c97,
+	0x8ad5, 0x8c97, 0x8add, 0x8c99, 0x8add, 0x8ca7, 0x8c97, 0x1078,
+	0x1332, 0x6004, 0xa086, 0x008b, 0x0040, 0x8ca7, 0x6007, 0x008b,
+	0x6003, 0x000d, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x007c, 0x1078,
+	0x8eb9, 0x1078, 0x8d06, 0x0040, 0x8cdf, 0x1078, 0x2880, 0x0d7e,
+	0x1078, 0x8d06, 0x0040, 0x8cc1, 0x6010, 0x2068, 0x6837, 0x0103,
+	0x684b, 0x0006, 0x6847, 0x0000, 0x6850, 0xc0ed, 0x6852, 0x1078,
+	0x4a73, 0x2c68, 0x1078, 0x76c7, 0x0040, 0x8ccf, 0x6818, 0x601a,
+	0x0c7e, 0x2d60, 0x1078, 0x8ec6, 0x0c7f, 0x0078, 0x8cd0, 0x2d60,
+	0x0d7f, 0x6013, 0x0000, 0x601f, 0x0001, 0x6007, 0x0001, 0x6003,
+	0x0001, 0x1078, 0x5dd7, 0x1078, 0x62d1, 0x0078, 0x8cf1, 0x6030,
+	0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0040, 0x8ceb, 0xa186,
+	0x0035, 0x00c0, 0x8cef, 0x1078, 0x2880, 0x0078, 0x8cc1, 0x1078,
+	0x8ec6, 0x007c, 0xa284, 0x000f, 0x00c0, 0x8d03, 0xa282, 0xad00,
+	0x0048, 0x8d03, 0x2001, 0xa616, 0x2004, 0xa202, 0x00c8, 0x8d03,
+	0xa085, 0x0001, 0x007c, 0xa006, 0x0078, 0x8d02, 0x027e, 0x0e7e,
+	0x2071, 0xa600, 0x6210, 0x705c, 0xa202, 0x0048, 0x8d18, 0x7060,
+	0xa202, 0x00c8, 0x8d18, 0xa085, 0x0001, 0x0e7f, 0x027f, 0x007c,
+	0xa006, 0x0078, 0x8d15, 0x0e7e, 0x0c7e, 0x037e, 0x007e, 0x127e,
+	0x2091, 0x8000, 0x2061, 0xad00, 0x2071, 0xa600, 0x7348, 0x7064,
+	0xa302, 0x00c8, 0x8d45, 0x601c, 0xa206, 0x00c0, 0x8d3d, 0x1078,
+	0x902b, 0x0040, 0x8d3d, 0x1078, 0x8f00, 0x00c0, 0x8d39, 0x1078,
+	0x7c83, 0x0c7e, 0x1078, 0x772d, 0x0c7f, 0xace0, 0x0010, 0x7058,
+	0xac02, 0x00c8, 0x8d45, 0x0078, 0x8d26, 0x127f, 0x007f, 0x037f,
+	0x0c7f, 0x0e7f, 0x007c, 0x0e7e, 0x0c7e, 0x017e, 0xa188, 0xa735,
+	0x210c, 0x81ff, 0x0040, 0x8d59, 0x2061, 0xa9b3, 0x611a, 0x1078,
+	0x2880, 0xa006, 0x0078, 0x8d5e, 0xa085, 0x0001, 0x017f, 0x0c7f,
+	0x0e7f, 0x007c, 0x0c7e, 0x057e, 0x127e, 0x2091, 0x8000, 0x0c7e,
+	0x1078, 0x76c7, 0x057f, 0x0040, 0x8d7b, 0x6612, 0x651a, 0x601f,
+	0x0003, 0x2009, 0x004b, 0x1078, 0x775c, 0xa085, 0x0001, 0x127f,
+	0x057f, 0x0c7f, 0x007c, 0xa006, 0x0078, 0x8d77, 0x0c7e, 0x057e,
+	0x127e, 0x2091, 0x8000, 0x62a0, 0x0c7e, 0x1078, 0x76c7, 0x057f,
+	0x0040, 0x8da9, 0x6013, 0x0000, 0x651a, 0x601f, 0x0003, 0x0c7e,
+	0x2560, 0x1078, 0x47e9, 0x0c7f, 0x1078, 0x5f01, 0x077e, 0x2039,
+	0x0000, 0x1078, 0x5e0a, 0x2c08, 0x1078, 0x9f8b, 0x077f, 0x2009,
+	0x004c, 0x1078, 0x775c, 0xa085, 0x0001, 0x127f, 0x057f, 0x0c7f,
+	0x007c, 0xa006, 0x0078, 0x8da5, 0x0f7e, 0x0c7e, 0x047e, 0x0c7e,
+	0x1078, 0x76c7, 0x2c78, 0x0c7f, 0x0040, 0x8dc6, 0x7e12, 0x2c00,
+	0x781a, 0x781f, 0x0003, 0x2021, 0x0005, 0x1078, 0x8e11, 0x2f60,
+	0x2009, 0x004d, 0x1078, 0x775c, 0xa085, 0x0001, 0x047f, 0x0c7f,
+	0x0f7f, 0x007c, 0x0f7e, 0x0c7e, 0x047e, 0x0c7e, 0x1078, 0x76c7,
+	0x2c78, 0x0c7f, 0x0040, 0x8de4, 0x7e12, 0x2c00, 0x781a, 0x781f,
+	0x0003, 0x2021, 0x0005, 0x1078, 0x8e11, 0x2f60, 0x2009, 0x004e,
+	0x1078, 0x775c, 0xa085, 0x0001, 0x047f, 0x0c7f, 0x0f7f, 0x007c,
+	0x0f7e, 0x0c7e, 0x047e, 0x0c7e, 0x1078, 0x76c7, 0x2c78, 0x0c7f,
+	0x0040, 0x8e0d, 0x7e12, 0x2c00, 0x781a, 0x781f, 0x0003, 0x2021,
+	0x0004, 0x1078, 0x8e11, 0x2001, 0xa89d, 0x2004, 0xd0fc, 0x0040,
+	0x8e06, 0x2f60, 0x1078, 0x772d, 0x0078, 0x8e0b, 0x2f60, 0x2009,
+	0x0052, 0x1078, 0x775c, 0xa085, 0x0001, 0x047f, 0x0c7f, 0x0f7f,
+	0x007c, 0x097e, 0x077e, 0x127e, 0x2091, 0x8000, 0x1078, 0x4775,
+	0x0040, 0x8e1e, 0x2001, 0x8e16, 0x0078, 0x8e24, 0x1078, 0x4739,
+	0x0040, 0x8e2d, 0x2001, 0x8e1e, 0x007e, 0xa00e, 0x2400, 0x1078,
+	0x4b51, 0x1078, 0x4a73, 0x007f, 0x007a, 0x2418, 0x1078, 0x6161,
+	0x62a0, 0x087e, 0x2041, 0x0001, 0x2039, 0x0001, 0x2608, 0x1078,
+	0x5f1b, 0x087f, 0x1078, 0x5e0a, 0x2f08, 0x2648, 0x1078, 0x9f8b,
+	0x613c, 0x81ff, 0x1040, 0x5fdb, 0x1078, 0x62d1, 0x127f, 0x077f,
+	0x097f, 0x007c, 0x0c7e, 0x127e, 0x2091, 0x8000, 0x0c7e, 0x1078,
+	0x76c7, 0x017f, 0x0040, 0x8e63, 0x660a, 0x611a, 0x601f, 0x0001,
+	0x2d00, 0x6012, 0x2009, 0x001f, 0x1078, 0x775c, 0xa085, 0x0001,
+	0x127f, 0x0c7f, 0x007c, 0xa006, 0x0078, 0x8e60, 0x0c7e, 0x127e,
+	0x2091, 0x8000, 0x0c7e, 0x1078, 0x76c7, 0x017f, 0x0040, 0x8e7f,
+	0x660a, 0x611a, 0x601f, 0x0008, 0x2d00, 0x6012, 0x2009, 0x0021,
+	0x1078, 0x775c, 0xa085, 0x0001, 0x127f, 0x0c7f, 0x007c, 0xa006,
+	0x0078, 0x8e7c, 0x0c7e, 0x127e, 0x2091, 0x8000, 0x0c7e, 0x1078,
+	0x76c7, 0x017f, 0x0040, 0x8e9b, 0x660a, 0x611a, 0x601f, 0x0001,
+	0x2d00, 0x6012, 0x2009, 0x003d, 0x1078, 0x775c, 0xa085, 0x0001,
+	0x127f, 0x0c7f, 0x007c, 0xa006, 0x0078, 0x8e98, 0x0c7e, 0x127e,
+	0x2091, 0x8000, 0x0c7e, 0x1078, 0x76c7, 0x017f, 0x0040, 0x8eb6,
+	0x611a, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0000, 0x1078,
+	0x775c, 0xa085, 0x0001, 0x127f, 0x0c7f, 0x007c, 0xa006, 0x0078,
+	0x8eb3, 0x027e, 0x0d7e, 0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0040,
+	0x8ec3, 0x8211, 0x6a3e, 0x0d7f, 0x027f, 0x007c, 0x007e, 0x6000,
+	0xa086, 0x0000, 0x0040, 0x8ed8, 0x6013, 0x0000, 0x601f, 0x0007,
+	0x2001, 0xa8a3, 0x2004, 0x6016, 0x1078, 0xa495, 0x603f, 0x0000,
+	0x007f, 0x007c, 0x067e, 0x0c7e, 0x0d7e, 0x2031, 0xa653, 0x2634,
+	0xd6e4, 0x0040, 0x8ee8, 0x6618, 0x2660, 0x6e48, 0x1078, 0x46e7,
+	0x0d7f, 0x0c7f, 0x067f, 0x007c, 0x007e, 0x017e, 0x6004, 0xa08e,
+	0x0002, 0x0040, 0x8efd, 0xa08e, 0x0003, 0x0040, 0x8efd, 0xa08e,
+	0x0004, 0x0040, 0x8efd, 0xa085, 0x0001, 0x017f, 0x007f, 0x007c,
+	0x007e, 0x0d7e, 0x6010, 0xa06d, 0x0040, 0x8f0d, 0x6838, 0xd0fc,
+	0x0040, 0x8f0d, 0xa006, 0x0078, 0x8f0f, 0xa085, 0x0001, 0x0d7f,
+	0x007f, 0x007c, 0x0c7e, 0x127e, 0x2091, 0x8000, 0x0c7e, 0x1078,
+	0x76c7, 0x017f, 0x0040, 0x8f2c, 0x611a, 0x601f, 0x0001, 0x2d00,
+	0x6012, 0x1078, 0x2880, 0x2009, 0x0028, 0x1078, 0x775c, 0xa085,
+	0x0001, 0x127f, 0x0c7f, 0x007c, 0xa006, 0x0078, 0x8f29, 0xa186,
+	0x0015, 0x00c0, 0x8f44, 0x2011, 0xa620, 0x2204, 0xa086, 0x0074,
+	0x00c0, 0x8f44, 0x1078, 0x7f91, 0x6003, 0x0001, 0x6007, 0x0029,
+	0x1078, 0x5dd7, 0x0078, 0x8f48, 0x1078, 0x7c83, 0x1078, 0x772d,
+	0x007c, 0xa186, 0x0016, 0x00c0, 0x8f53, 0x2001, 0x0004, 0x1078,
+	0x4502, 0x0078, 0x8f74, 0xa186, 0x0015, 0x00c0, 0x8f78, 0x2011,
+	0xa620, 0x2204, 0xa086, 0x0014, 0x00c0, 0x8f78, 0x0d7e, 0x6018,
+	0x2068, 0x1078, 0x4649, 0x0d7f, 0x1078, 0x8043, 0x00c0, 0x8f78,
+	0x0d7e, 0x6018, 0x2068, 0x6890, 0x0d7f, 0xa005, 0x0040, 0x8f78,
+	0x2001, 0x0006, 0x1078, 0x4502, 0x1078, 0x77f8, 0x0078, 0x8f7c,
+	0x1078, 0x7c83, 0x1078, 0x772d, 0x007c, 0x6848, 0xa086, 0x0005,
+	0x00c0, 0x8f84, 0x1078, 0x8f85, 0x007c, 0x6850, 0xc0ad, 0x6852,
+	0x007c, 0x0e7e, 0x2071, 0xab8c, 0x7014, 0xd0e4, 0x0040, 0x8f9a,
+	0x6013, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x1078, 0x5d8a,
+	0x1078, 0x62d1, 0x0e7f, 0x007c, 0x0c7e, 0x0f7e, 0x2c78, 0x1078,
+	0x4963, 0x0f7f, 0x0040, 0x8fa9, 0x601c, 0xa084, 0x000f, 0x1079,
+	0x8fab, 0x0c7f, 0x007c, 0x8ad5, 0x8fb6, 0x8fb9, 0x8fbc, 0xa25d,
+	0xa279, 0xa27c, 0x8ad5, 0x8ad5, 0x1078, 0x1332, 0x0005, 0x0005,
+	0x007c, 0x0005, 0x0005, 0x007c, 0x1078, 0x8fbf, 0x007c, 0x0f7e,
+	0x2c78, 0x1078, 0x4963, 0x0040, 0x8fee, 0x1078, 0x76c7, 0x00c0,
+	0x8fcf, 0x2001, 0xa8a4, 0x2004, 0x783e, 0x0078, 0x8fee, 0x7818,
+	0x601a, 0x781c, 0xa086, 0x0003, 0x0040, 0x8fdc, 0x7808, 0x6036,
+	0x2f00, 0x603a, 0x0078, 0x8fe0, 0x7808, 0x603a, 0x2f00, 0x6036,
+	0x602a, 0x601f, 0x0001, 0x6007, 0x0035, 0x6003, 0x0001, 0x7920,
+	0x6122, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x2f60, 0x0f7f, 0x007c,
+	0x017e, 0x0f7e, 0x682c, 0x6032, 0xa08e, 0x0001, 0x0040, 0x9001,
+	0xa086, 0x0005, 0x0040, 0x9005, 0xa006, 0x602a, 0x602e, 0x0078,
+	0x9016, 0x6824, 0xc0f4, 0xc0d5, 0x6826, 0x6810, 0x2078, 0x787c,
+	0x6938, 0xa102, 0x7880, 0x6934, 0xa103, 0x00c8, 0x8ffc, 0x6834,
+	0x602a, 0x6838, 0xa084, 0xfffc, 0x683a, 0x602e, 0x2d00, 0x6036,
+	0x6808, 0x603a, 0x6918, 0x611a, 0x6920, 0x6122, 0x601f, 0x0001,
+	0x6007, 0x0039, 0x6003, 0x0001, 0x1078, 0x5d8a, 0x6803, 0x0002,
+	0x0f7f, 0x017f, 0x007c, 0x007e, 0x017e, 0x6004, 0xa08e, 0x0034,
+	0x0040, 0x9050, 0xa08e, 0x0035, 0x0040, 0x9050, 0xa08e, 0x0036,
+	0x0040, 0x9050, 0xa08e, 0x0037, 0x0040, 0x9050, 0xa08e, 0x0038,
+	0x0040, 0x9050, 0xa08e, 0x0039, 0x0040, 0x9050, 0xa08e, 0x003a,
+	0x0040, 0x9050, 0xa08e, 0x003b, 0x0040, 0x9050, 0xa085, 0x0001,
+	0x017f, 0x007f, 0x007c, 0x0f7e, 0x2c78, 0x1078, 0x4963, 0x00c0,
+	0x905d, 0xa085, 0x0001, 0x0078, 0x906c, 0x6024, 0xd0f4, 0x00c0,
+	0x906b, 0xc0f5, 0x6026, 0x6010, 0x2078, 0x7828, 0x603a, 0x782c,
+	0x6036, 0x1078, 0x1757, 0xa006, 0x0f7f, 0x007c, 0x007e, 0x017e,
+	0x027e, 0x037e, 0x0e7e, 0x2001, 0xa89e, 0x200c, 0x8000, 0x2014,
+	0x2001, 0x0032, 0x1078, 0x5c1c, 0x2001, 0xa8a2, 0x82ff, 0x00c0,
+	0x9083, 0x2011, 0x0014, 0x2202, 0x2001, 0xa8a0, 0x200c, 0x8000,
+	0x2014, 0x2071, 0xa88d, 0x711a, 0x721e, 0x2001, 0x0064, 0x1078,
+	0x5c1c, 0x2001, 0xa8a3, 0x82ff, 0x00c0, 0x9098, 0x2011, 0x0014,
+	0x2202, 0x2009, 0xa8a4, 0xa280, 0x000a, 0x200a, 0x1078, 0x498b,
+	0x0e7f, 0x037f, 0x027f, 0x017f, 0x007f, 0x007c, 0x007e, 0x0e7e,
+	0x2001, 0xa8a2, 0x2003, 0x0028, 0x2001, 0xa8a3, 0x2003, 0x0014,
+	0x2071, 0xa88d, 0x701b, 0x0000, 0x701f, 0x07d0, 0x2001, 0xa8a4,
+	0x2003, 0x001e, 0x0e7f, 0x007f, 0x007c, 0x0c7e, 0x127e, 0x2091,
+	0x8000, 0x0c7e, 0x1078, 0x76c7, 0x017f, 0x0040, 0x90d5, 0x611a,
+	0x601f, 0x0001, 0x2d00, 0x6012, 0x2009, 0x0033, 0x1078, 0x775c,
+	0xa085, 0x0001, 0x127f, 0x0c7f, 0x007c, 0xa006, 0x0078, 0x90d2,
+	0x0d7e, 0x0e7e, 0x0f7e, 0x2071, 0xa600, 0xa186, 0x0015, 0x00c0,
+	0x9107, 0x7080, 0xa086, 0x0018, 0x00c0, 0x9107, 0x6010, 0x2068,
+	0x6a3c, 0xd2e4, 0x00c0, 0x90fb, 0x2c78, 0x1078, 0x6490, 0x0040,
+	0x910f, 0x706c, 0x6a50, 0xa206, 0x00c0, 0x9103, 0x7070, 0x6a54,
+	0xa206, 0x00c0, 0x9103, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009,
+	0x0000, 0x1078, 0x28c8, 0x1078, 0x77f8, 0x0078, 0x910b, 0x1078,
+	0x7c83, 0x1078, 0x772d, 0x0f7f, 0x0e7f, 0x0d7f, 0x007c, 0x7050,
+	0xa080, 0x29c0, 0x2004, 0x6a54, 0xa206, 0x0040, 0x90fb, 0x0078,
+	0x9103, 0x0c7e, 0x127e, 0x2091, 0x8000, 0x0c7e, 0x1078, 0x76c7,
+	0x017f, 0x0040, 0x9131, 0x611a, 0x601f, 0x0001, 0x2d00, 0x6012,
+	0x2009, 0x0043, 0x1078, 0x775c, 0xa085, 0x0001, 0x127f, 0x0c7f,
+	0x007c, 0xa006, 0x0078, 0x912e, 0x0d7e, 0x0e7e, 0x0f7e, 0x2071,
+	0xa600, 0xa186, 0x0015, 0x00c0, 0x915a, 0x7080, 0xa086, 0x0004,
+	0x00c0, 0x915a, 0x6010, 0xa0e8, 0x000f, 0x2c78, 0x1078, 0x6490,
+	0x0040, 0x9162, 0x706c, 0x6a08, 0xa206, 0x00c0, 0x9156, 0x7070,
+	0x6a0c, 0xa206, 0x00c0, 0x9156, 0x1078, 0x2880, 0x1078, 0x77f8,
+	0x0078, 0x915e, 0x1078, 0x7c83, 0x1078, 0x772d, 0x0f7f, 0x0e7f,
+	0x0d7f, 0x007c, 0x7050, 0xa080, 0x29c0, 0x2004, 0x6a0c, 0xa206,
+	0x0040, 0x9154, 0x0078, 0x9156, 0x017e, 0x027e, 0x684c, 0xd0ac,
+	0x0040, 0x9184, 0x6914, 0x6a10, 0x2100, 0xa205, 0x0040, 0x9184,
+	0x6860, 0xa106, 0x00c0, 0x9180, 0x685c, 0xa206, 0x0040, 0x9184,
+	0x6962, 0x6a5e, 0xa085, 0x0001, 0x027f, 0x017f, 0x007c, 0x0e7e,
+	0x127e, 0x2071, 0xa600, 0x2091, 0x8000, 0x7548, 0xa582, 0x0001,
+	0x0048, 0x91b9, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0040,
+	0x91a5, 0xace0, 0x0010, 0x7058, 0xac02, 0x00c8, 0x91a1, 0x0078,
+	0x9194, 0x2061, 0xad00, 0x0078, 0x9194, 0x6003, 0x0008, 0x8529,
+	0x754a, 0xaca8, 0x0010, 0x7058, 0xa502, 0x00c8, 0x91b5, 0x754e,
+	0xa085, 0x0001, 0x127f, 0x0e7f, 0x007c, 0x704f, 0xad00, 0x0078,
+	0x91b0, 0xa006, 0x0078, 0x91b2, 0x0c7e, 0x027e, 0x017e, 0xa186,
+	0x0035, 0x0040, 0x91c6, 0x6a34, 0x0078, 0x91c7, 0x6a28, 0x1078,
+	0x8cf2, 0x0040, 0x91f0, 0x2260, 0x611c, 0xa186, 0x0003, 0x0040,
+	0x91d5, 0xa186, 0x0006, 0x00c0, 0x91ec, 0x6834, 0xa206, 0x0040,
+	0x91e4, 0x6838, 0xa206, 0x00c0, 0x91ec, 0x6108, 0x6834, 0xa106,
+	0x00c0, 0x91ec, 0x0078, 0x91e9, 0x6008, 0x6938, 0xa106, 0x00c0,
+	0x91ec, 0x6018, 0x6918, 0xa106, 0x017f, 0x027f, 0x0c7f, 0x007c,
+	0xa085, 0x0001, 0x0078, 0x91ec, 0x6944, 0xd1cc, 0x0040, 0x920d,
+	0xa18c, 0x00ff, 0xa18e, 0x0002, 0x00c0, 0x920d, 0xad88, 0x001e,
+	0x210c, 0xa18c, 0x0f00, 0x810f, 0xa18e, 0x0001, 0x00c0, 0x920d,
+	0x6810, 0x6914, 0xa115, 0x10c0, 0x84d5, 0x007c, 0x067e, 0x6000,
+	0xa0b2, 0x0010, 0x10c8, 0x1332, 0x1079, 0x9218, 0x067f, 0x007c,
+	0x9228, 0x96df, 0x97fb, 0x9228, 0x9228, 0x9228, 0x9228, 0x9228,
+	0x9262, 0x988e, 0x9228, 0x9228, 0x9228, 0x9228, 0x9228, 0x9228,
+	0x1078, 0x1332, 0x067e, 0x6000, 0xa0b2, 0x0010, 0x10c8, 0x1332,
+	0x1079, 0x9234, 0x067f, 0x007c, 0x9244, 0x9d53, 0x9244, 0x9244,
+	0x9244, 0x9244, 0x9244, 0x9244, 0x9d11, 0x9da1, 0x9244, 0xa3b0,
+	0xa3e4, 0xa3b0, 0xa3e4, 0x9244, 0x1078, 0x1332, 0x067e, 0x6000,
+	0xa0b2, 0x0010, 0x10c8, 0x1332, 0x1079, 0x9250, 0x067f, 0x007c,
+	0x9260, 0x99eb, 0x9ac7, 0x9af5, 0x9b70, 0x9260, 0x9c76, 0x9c1e,
+	0x989a, 0x9ce5, 0x9cfb, 0x9260, 0x9260, 0x9260, 0x9260, 0x9260,
+	0x1078, 0x1332, 0xa1b2, 0x0044, 0x10c8, 0x1332, 0x2100, 0x0079,
+	0x9269, 0x92a9, 0x9498, 0x92a9, 0x92a9, 0x92a9, 0x94a0, 0x92a9,
+	0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9,
+	0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9,
+	0x92ab, 0x9311, 0x9320, 0x9377, 0x9396, 0x9415, 0x9485, 0x92a9,
+	0x92a9, 0x94a4, 0x92a9, 0x92a9, 0x94b7, 0x94c2, 0x92a9, 0x92a9,
+	0x92a9, 0x92a9, 0x92a9, 0x94fa, 0x92a9, 0x92a9, 0x9509, 0x92a9,
+	0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x9522, 0x92a9, 0x92a9,
+	0x92a9, 0x95af, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9, 0x92a9,
+	0x9629, 0x1078, 0x1332, 0x1078, 0x4967, 0x00c0, 0x92bb, 0x2001,
+	0xa633, 0x2004, 0xd0cc, 0x00c0, 0x92bb, 0xa084, 0x0009, 0xa086,
+	0x0008, 0x00c0, 0x92c3, 0x6007, 0x0009, 0x602b, 0x0009, 0x6013,
+	0x0000, 0x0078, 0x9493, 0x1078, 0x4957, 0x0e7e, 0x0c7e, 0x037e,
+	0x027e, 0x017e, 0x6218, 0x2270, 0x72a0, 0x027e, 0x2019, 0x0029,
+	0x1078, 0x5f01, 0x077e, 0x2039, 0x0000, 0x1078, 0x5e0a, 0x2c08,
+	0x1078, 0x9f8b, 0x077f, 0x017f, 0x2e60, 0x1078, 0x47e9, 0x017f,
+	0x027f, 0x037f, 0x0c7f, 0x0e7f, 0x6618, 0x0c7e, 0x2660, 0x1078,
+	0x45d6, 0x0c7f, 0xa6b0, 0x0001, 0x2634, 0xa684, 0x00ff, 0xa082,
+	0x0006, 0x0048, 0x9303, 0x1078, 0x9ebf, 0x00c0, 0x9371, 0x1078,
+	0x9e50, 0x00c0, 0x92ff, 0x6007, 0x0008, 0x0078, 0x9493, 0x6007,
+	0x0009, 0x0078, 0x9493, 0x1078, 0xa09f, 0x0040, 0x930d, 0x1078,
+	0x9ebf, 0x0040, 0x92f7, 0x0078, 0x9371, 0x6013, 0x1900, 0x0078,
+	0x92ff, 0x1078, 0x29bb, 0x00c0, 0x9664, 0x6106, 0x1078, 0x9e05,
+	0x6007, 0x0006, 0x0078, 0x9493, 0x6007, 0x0007, 0x0078, 0x9493,
+	0x1078, 0xa41c, 0x00c0, 0x9664, 0x1078, 0x29bb, 0x00c0, 0x9664,
+	0x0d7e, 0x6618, 0x2668, 0x6e04, 0xa684, 0x00ff, 0xa082, 0x0006,
+	0x00c8, 0x9336, 0x2001, 0x0001, 0x1078, 0x44ee, 0xa6b4, 0xff00,
+	0x8637, 0xa686, 0x0006, 0x0040, 0x9353, 0xa686, 0x0004, 0x0040,
+	0x9353, 0x6e04, 0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0040, 0x9353,
+	0xa686, 0x0004, 0x0040, 0x9353, 0xa686, 0x0005, 0x0040, 0x9353,
+	0x0d7f, 0x0078, 0x9371, 0x1078, 0x9f25, 0x00c0, 0x936c, 0xa686,
+	0x0006, 0x00c0, 0x9365, 0x027e, 0x6218, 0xa290, 0x0028, 0x2214,
+	0x2009, 0x0000, 0x1078, 0x28c8, 0x027f, 0x1078, 0x4649, 0x6007,
+	0x000a, 0x0d7f, 0x0078, 0x9493, 0x6007, 0x000b, 0x0d7f, 0x0078,
+	0x9493, 0x1078, 0x2880, 0x6007, 0x0001, 0x0078, 0x9493, 0x1078,
+	0xa41c, 0x00c0, 0x9664, 0x1078, 0x29bb, 0x00c0, 0x9664, 0x6618,
+	0x0d7e, 0x2668, 0x6e04, 0x0d7f, 0xa686, 0x0707, 0x0040, 0x9371,
+	0x027e, 0x6218, 0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x1078,
+	0x28c8, 0x027f, 0x6007, 0x000c, 0x0078, 0x9493, 0x1078, 0x4967,
+	0x00c0, 0x93a3, 0x2001, 0xa633, 0x2004, 0xa084, 0x0009, 0xa086,
+	0x0008, 0x00c0, 0x93ab, 0x6007, 0x0009, 0x602b, 0x0009, 0x6013,
+	0x0000, 0x0078, 0x9493, 0x1078, 0x4957, 0x6618, 0xa6b0, 0x0001,
+	0x2634, 0xa684, 0x00ff, 0xa082, 0x0006, 0x0048, 0x93ef, 0xa6b4,
+	0xff00, 0x8637, 0xa686, 0x0004, 0x0040, 0x93c2, 0xa686, 0x0006,
+	0x00c0, 0x9371, 0x1078, 0x9f34, 0x00c0, 0x93ca, 0x6007, 0x000e,
+	0x0078, 0x9493, 0x047e, 0x6418, 0xa4a0, 0x0028, 0x2424, 0xa4a4,
+	0x00ff, 0x8427, 0x047e, 0x1078, 0x2880, 0x047f, 0x017e, 0xa006,
+	0x2009, 0xa653, 0x210c, 0xd1a4, 0x0040, 0x93e9, 0x2009, 0x0029,
+	0x1078, 0xa21d, 0x6018, 0x0d7e, 0x2068, 0x6800, 0xc0e5, 0x6802,
+	0x0d7f, 0x017f, 0x047f, 0x6007, 0x0001, 0x0078, 0x9493, 0x2001,
+	0x0001, 0x1078, 0x44ee, 0x157e, 0x017e, 0x027e, 0x037e, 0x20a9,
+	0x0004, 0x2019, 0xa605, 0x2011, 0xab90, 0x1078, 0x80de, 0x037f,
+	0x027f, 0x017f, 0x157f, 0xa005, 0x0040, 0x940f, 0xa6b4, 0xff00,
+	0x8637, 0xa686, 0x0006, 0x0040, 0x93c2, 0x0078, 0x9371, 0x6013,
+	0x1900, 0x6007, 0x0009, 0x0078, 0x9493, 0x1078, 0x4967, 0x00c0,
+	0x9422, 0x2001, 0xa633, 0x2004, 0xa084, 0x0009, 0xa086, 0x0008,
+	0x00c0, 0x942a, 0x6007, 0x0009, 0x602b, 0x0009, 0x6013, 0x0000,
+	0x0078, 0x9493, 0x1078, 0x4957, 0x6618, 0xa6b0, 0x0001, 0x2634,
+	0xa684, 0x00ff, 0xa082, 0x0006, 0x0048, 0x9472, 0xa6b4, 0xff00,
+	0x8637, 0xa686, 0x0004, 0x0040, 0x9441, 0xa686, 0x0006, 0x00c0,
+	0x9371, 0x1078, 0x9f5f, 0x00c0, 0x944d, 0x1078, 0x9e50, 0x00c0,
+	0x944d, 0x6007, 0x0010, 0x0078, 0x9493, 0x047e, 0x6418, 0xa4a0,
+	0x0028, 0x2424, 0xa4a4, 0x00ff, 0x8427, 0x047e, 0x1078, 0x2880,
+	0x047f, 0x017e, 0xa006, 0x2009, 0xa653, 0x210c, 0xd1a4, 0x0040,
+	0x946c, 0x2009, 0x0029, 0x1078, 0xa21d, 0x6018, 0x0d7e, 0x2068,
+	0x6800, 0xc0e5, 0x6802, 0x0d7f, 0x017f, 0x047f, 0x6007, 0x0001,
+	0x0078, 0x9493, 0x1078, 0xa09f, 0x0040, 0x947f, 0xa6b4, 0xff00,
+	0x8637, 0xa686, 0x0006, 0x0040, 0x9441, 0x0078, 0x9371, 0x6013,
+	0x1900, 0x6007, 0x0009, 0x0078, 0x9493, 0x1078, 0x29bb, 0x00c0,
+	0x9664, 0x1078, 0xa41c, 0x00c0, 0x9664, 0x1078, 0x9667, 0x00c0,
+	0x9371, 0x6007, 0x0012, 0x6003, 0x0001, 0x1078, 0x5dd7, 0x007c,
+	0x6007, 0x0001, 0x6003, 0x0001, 0x1078, 0x5dd7, 0x0078, 0x9497,
+	0x6007, 0x0005, 0x0078, 0x949a, 0x1078, 0xa41c, 0x00c0, 0x9664,
+	0x1078, 0x29bb, 0x00c0, 0x9664, 0x1078, 0x9667, 0x00c0, 0x9371,
+	0x6007, 0x0020, 0x6003, 0x0001, 0x1078, 0x5dd7, 0x007c, 0x1078,
+	0x29bb, 0x00c0, 0x9664, 0x6007, 0x0023, 0x6003, 0x0001, 0x1078,
+	0x5dd7, 0x007c, 0x1078, 0xa41c, 0x00c0, 0x9664, 0x1078, 0x29bb,
+	0x00c0, 0x9664, 0x1078, 0x9667, 0x00c0, 0x9371, 0x017e, 0x027e,
+	0x2011, 0xab90, 0x2214, 0x2c08, 0xa006, 0x1078, 0xa1e6, 0x00c0,
+	0x94e9, 0x2160, 0x6007, 0x0026, 0x6013, 0x1700, 0x2011, 0xab89,
+	0x2214, 0xa296, 0xffff, 0x00c0, 0x94f3, 0x6007, 0x0025, 0x0078,
+	0x94f3, 0x6004, 0xa086, 0x0024, 0x00c0, 0x94f0, 0x1078, 0x772d,
+	0x2160, 0x6007, 0x0025, 0x6003, 0x0001, 0x1078, 0x5dd7, 0x027f,
+	0x017f, 0x007c, 0x1078, 0x29bb, 0x00c0, 0x9664, 0x6106, 0x1078,
+	0x9687, 0x6007, 0x002b, 0x0078, 0x9493, 0x6007, 0x002c, 0x0078,
+	0x9493, 0x1078, 0xa41c, 0x00c0, 0x9664, 0x1078, 0x29bb, 0x00c0,
+	0x9664, 0x1078, 0x9667, 0x00c0, 0x9371, 0x6106, 0x1078, 0x968c,
+	0x00c0, 0x951e, 0x6007, 0x002e, 0x0078, 0x9493, 0x6007, 0x002f,
+	0x0078, 0x9493, 0x1078, 0x29bb, 0x00c0, 0x9664, 0x0e7e, 0x0d7e,
+	0x0c7e, 0x6018, 0xa080, 0x0001, 0x200c, 0xa184, 0x00ff, 0xa086,
+	0x0006, 0x0040, 0x953f, 0xa184, 0xff00, 0x8007, 0xa086, 0x0006,
+	0x0040, 0x953f, 0x0c7f, 0x0d7f, 0x0e7f, 0x0078, 0x9498, 0x2001,
+	0xa672, 0x2004, 0xd0e4, 0x0040, 0x95ab, 0x2071, 0xab8c, 0x7010,
+	0x6036, 0x7014, 0x603a, 0x7108, 0x720c, 0x2001, 0xa653, 0x2004,
+	0xd0a4, 0x0040, 0x955d, 0x6018, 0x2068, 0x6810, 0xa106, 0x00c0,
+	0x955d, 0x6814, 0xa206, 0x0040, 0x9581, 0x2001, 0xa653, 0x2004,
+	0xd0ac, 0x00c0, 0x959f, 0x2069, 0xa600, 0x6870, 0xa206, 0x00c0,
+	0x959f, 0x686c, 0xa106, 0x00c0, 0x959f, 0x7210, 0x1078, 0x8cf2,
+	0x0040, 0x95a5, 0x1078, 0xa28e, 0x0040, 0x95a5, 0x622a, 0x6007,
+	0x0036, 0x6003, 0x0001, 0x1078, 0x5d8a, 0x0c7f, 0x0d7f, 0x0e7f,
+	0x007c, 0x7214, 0xa286, 0xffff, 0x0040, 0x9593, 0x1078, 0x8cf2,
+	0x0040, 0x95a5, 0xa280, 0x0002, 0x2004, 0x7110, 0xa106, 0x00c0,
+	0x95a5, 0x0078, 0x956e, 0x7210, 0x2c08, 0xa085, 0x0001, 0x1078,
+	0xa1e6, 0x2c10, 0x2160, 0x0040, 0x95a5, 0x0078, 0x956e, 0x6007,
+	0x0037, 0x6013, 0x1500, 0x0078, 0x9579, 0x6007, 0x0037, 0x6013,
+	0x1700, 0x0078, 0x9579, 0x6007, 0x0012, 0x0078, 0x9579, 0x1078,
+	0x29bb, 0x00c0, 0x9664, 0x6018, 0xa080, 0x0001, 0x2004, 0xa084,
+	0xff00, 0x8007, 0xa086, 0x0006, 0x00c0, 0x9498, 0x0e7e, 0x0d7e,
+	0x0c7e, 0x2001, 0xa672, 0x2004, 0xd0e4, 0x0040, 0x9621, 0x2069,
+	0xa600, 0x2071, 0xab8c, 0x7008, 0x6036, 0x720c, 0x623a, 0xa286,
+	0xffff, 0x00c0, 0x95de, 0x7208, 0x0c7e, 0x2c08, 0xa085, 0x0001,
+	0x1078, 0xa1e6, 0x2c10, 0x0c7f, 0x0040, 0x9615, 0x1078, 0x8cf2,
+	0x0040, 0x9615, 0x0c7e, 0x027e, 0x2260, 0x1078, 0x89f3, 0x027f,
+	0x0c7f, 0x7118, 0xa18c, 0xff00, 0x810f, 0xa186, 0x0001, 0x0040,
+	0x95ff, 0xa186, 0x0005, 0x0040, 0x95f9, 0xa186, 0x0007, 0x00c0,
+	0x9609, 0xa280, 0x0004, 0x2004, 0xa005, 0x0040, 0x9609, 0x057e,
+	0x7510, 0x7614, 0x1078, 0xa2a3, 0x057f, 0x0c7f, 0x0d7f, 0x0e7f,
+	0x007c, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013, 0x2a00, 0x6003,
+	0x0001, 0x1078, 0x5d8a, 0x0078, 0x9605, 0x6007, 0x003b, 0x602b,
+	0x0009, 0x6013, 0x1700, 0x6003, 0x0001, 0x1078, 0x5d8a, 0x0078,
+	0x9605, 0x6007, 0x003b, 0x602b, 0x000b, 0x6013, 0x0000, 0x0078,
+	0x9579, 0x0e7e, 0x027e, 0x1078, 0x4967, 0x0040, 0x965e, 0x1078,
+	0x4957, 0x1078, 0xa4a9, 0x00c0, 0x965c, 0x2071, 0xa600, 0x70cc,
+	0xc085, 0x70ce, 0x0f7e, 0x2079, 0x0100, 0x7298, 0xa284, 0x00ff,
+	0x706e, 0x78e6, 0xa284, 0xff00, 0x7270, 0xa205, 0x7072, 0x78ea,
+	0x0f7f, 0x70d7, 0x0000, 0x2001, 0xa653, 0x2004, 0xd0a4, 0x0040,
+	0x9655, 0x2011, 0xa8ca, 0x2013, 0x07d0, 0xd0ac, 0x00c0, 0x965e,
+	0x1078, 0x2677, 0x0078, 0x965e, 0x1078, 0xa4d9, 0x027f, 0x0e7f,
+	0x1078, 0x772d, 0x0078, 0x9497, 0x1078, 0x772d, 0x007c, 0x0d7e,
+	0x067e, 0x6618, 0x2668, 0x6e04, 0xa6b4, 0xff00, 0x8637, 0xa686,
+	0x0006, 0x0040, 0x9684, 0xa686, 0x0004, 0x0040, 0x9684, 0x6e04,
+	0xa6b4, 0x00ff, 0xa686, 0x0006, 0x0040, 0x9684, 0xa686, 0x0004,
+	0x0040, 0x9684, 0xa085, 0x0001, 0x067f, 0x0d7f, 0x007c, 0x0d7e,
+	0x1078, 0x96bb, 0x0d7f, 0x007c, 0x0d7e, 0x1078, 0x96ca, 0x00c0,
+	0x96b4, 0x680c, 0xa08c, 0xff00, 0x6820, 0xa084, 0x00ff, 0xa115,
+	0x6212, 0x6824, 0x602a, 0xd1e4, 0x0040, 0x96a2, 0x2009, 0x0001,
+	0x0078, 0x96b0, 0xd1ec, 0x0040, 0x96b4, 0x6920, 0xa18c, 0x00ff,
+	0x6824, 0x1078, 0x254d, 0x00c0, 0x96b4, 0x2110, 0x2009, 0x0000,
+	0x1078, 0x28c8, 0x0078, 0x96b8, 0xa085, 0x0001, 0x0078, 0x96b9,
+	0xa006, 0x0d7f, 0x007c, 0x2069, 0xab8d, 0x6800, 0xa082, 0x0010,
+	0x00c8, 0x96c8, 0x6013, 0x0000, 0xa085, 0x0001, 0x0078, 0x96c9,
+	0xa006, 0x007c, 0x6013, 0x0000, 0x2069, 0xab8c, 0x6808, 0xa084,
+	0xff00, 0xa086, 0x0800, 0x00c0, 0x96de, 0x6800, 0xa084, 0x00ff,
+	0xa08e, 0x0014, 0x0040, 0x96de, 0xa08e, 0x0010, 0x007c, 0x6004,
+	0xa0b2, 0x0044, 0x10c8, 0x1332, 0xa1b6, 0x0013, 0x00c0, 0x96eb,
+	0x2008, 0x0079, 0x96fe, 0xa1b6, 0x0027, 0x0040, 0x96f3, 0xa1b6,
+	0x0014, 0x10c0, 0x1332, 0x2001, 0x0007, 0x1078, 0x4535, 0x1078,
+	0x61cd, 0x1078, 0x8ec6, 0x1078, 0x62d1, 0x007c, 0x973e, 0x9740,
+	0x973e, 0x973e, 0x973e, 0x9740, 0x974c, 0x97d6, 0x9799, 0x97d6,
+	0x97ad, 0x97d6, 0x974c, 0x97d6, 0x97ce, 0x97d6, 0x97ce, 0x97d6,
+	0x97d6, 0x973e, 0x973e, 0x973e, 0x973e, 0x973e, 0x973e, 0x973e,
+	0x973e, 0x973e, 0x973e, 0x973e, 0x9740, 0x973e, 0x97d6, 0x973e,
+	0x973e, 0x97d6, 0x973e, 0x97d6, 0x97d6, 0x973e, 0x973e, 0x973e,
+	0x973e, 0x97d6, 0x97d6, 0x973e, 0x97d6, 0x97d6, 0x973e, 0x973e,
+	0x973e, 0x973e, 0x973e, 0x9740, 0x97d6, 0x97d6, 0x973e, 0x973e,
+	0x97d6, 0x97d6, 0x973e, 0x973e, 0x973e, 0x973e, 0x1078, 0x1332,
+	0x1078, 0x61cd, 0x2001, 0xa8a2, 0x2004, 0x6016, 0x6003, 0x0002,
+	0x1078, 0x62d1, 0x0078, 0x97dc, 0x0f7e, 0x2079, 0xa652, 0x7804,
+	0x0f7f, 0xd0ac, 0x00c0, 0x97d6, 0x2001, 0x0000, 0x1078, 0x44ee,
+	0x6018, 0xa080, 0x0004, 0x2004, 0xa086, 0x00ff, 0x0040, 0x97d6,
+	0x0c7e, 0x6018, 0x2060, 0x6000, 0xd0f4, 0x00c0, 0x9770, 0x6010,
+	0xa005, 0x0040, 0x9770, 0x0c7f, 0x1078, 0x3699, 0x0078, 0x97d6,
+	0x0c7f, 0x2001, 0xa600, 0x2004, 0xa086, 0x0002, 0x00c0, 0x977f,
+	0x0f7e, 0x2079, 0xa600, 0x7890, 0x8000, 0x7892, 0x0f7f, 0x2001,
+	0x0002, 0x1078, 0x4502, 0x1078, 0x61cd, 0x601f, 0x0001, 0x6003,
+	0x0001, 0x6007, 0x0002, 0x1078, 0x5dd7, 0x1078, 0x62d1, 0x0c7e,
+	0x6118, 0x2160, 0x2009, 0x0001, 0x1078, 0x5a52, 0x0c7f, 0x0078,
+	0x97dc, 0x6618, 0x0d7e, 0x2668, 0x6e04, 0x0d7f, 0xa6b4, 0xff00,
+	0x8637, 0xa686, 0x0006, 0x0040, 0x97d6, 0xa686, 0x0004, 0x0040,
+	0x97d6, 0x2001, 0x0004, 0x0078, 0x97d4, 0x2001, 0xa600, 0x2004,
+	0xa086, 0x0003, 0x00c0, 0x97b6, 0x1078, 0x3699, 0x2001, 0x0006,
+	0x1078, 0x97dd, 0x6618, 0x0d7e, 0x2668, 0x6e04, 0x0d7f, 0xa6b4,
+	0xff00, 0x8637, 0xa686, 0x0006, 0x0040, 0x97d6, 0x2001, 0x0006,
+	0x0078, 0x97d4, 0x2001, 0x0004, 0x0078, 0x97d4, 0x2001, 0x0006,
+	0x1078, 0x97dd, 0x0078, 0x97d6, 0x1078, 0x4535, 0x1078, 0x61cd,
+	0x1078, 0x772d, 0x1078, 0x62d1, 0x007c, 0x017e, 0x0d7e, 0x6118,
+	0x2168, 0x6900, 0xd184, 0x0040, 0x97f8, 0x6104, 0xa18e, 0x000a,
+	0x00c0, 0x97f0, 0x699c, 0xd1a4, 0x00c0, 0x97f0, 0x2001, 0x0007,
+	0x1078, 0x4502, 0x2001, 0x0000, 0x1078, 0x44ee, 0x1078, 0x28a6,
+	0x0d7f, 0x017f, 0x007c, 0x0d7e, 0x6618, 0x2668, 0x6804, 0xa084,
+	0xff00, 0x8007, 0x0d7f, 0xa0b2, 0x000c, 0x10c8, 0x1332, 0xa1b6,
+	0x0015, 0x00c0, 0x980f, 0x1079, 0x9816, 0x0078, 0x9815, 0xa1b6,
+	0x0016, 0x10c0, 0x1332, 0x1079, 0x9822, 0x007c, 0x7d4e, 0x7d4e,
+	0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x9877, 0x982e, 0x7d4e, 0x7d4e,
+	0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e,
+	0x9877, 0x987f, 0x7d4e, 0x7d4e, 0x7d4e, 0x7d4e, 0x0f7e, 0x2079,
+	0xa652, 0x7804, 0xd0ac, 0x00c0, 0x9855, 0x6018, 0xa07d, 0x0040,
+	0x9855, 0x7800, 0xd0f4, 0x00c0, 0x9841, 0x7810, 0xa005, 0x00c0,
+	0x9855, 0x2001, 0x0000, 0x1078, 0x44ee, 0x2001, 0x0002, 0x1078,
+	0x4502, 0x601f, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x1078,
+	0x5dd7, 0x1078, 0x62d1, 0x0078, 0x9875, 0x2011, 0xab83, 0x2204,
+	0x8211, 0x220c, 0x1078, 0x254d, 0x00c0, 0x9875, 0x0c7e, 0x1078,
+	0x45c4, 0x0040, 0x9868, 0x0c7f, 0x1078, 0x772d, 0x0078, 0x9875,
+	0x6010, 0x007e, 0x6014, 0x007e, 0x1078, 0x42f8, 0x007f, 0x6016,
+	0x007f, 0x6012, 0x0c7f, 0x1078, 0x772d, 0x0f7f, 0x007c, 0x6604,
+	0xa6b6, 0x001e, 0x00c0, 0x987e, 0x1078, 0x772d, 0x007c, 0x1078,
+	0x7f8e, 0x00c0, 0x988b, 0x6003, 0x0001, 0x6007, 0x0001, 0x1078,
+	0x5dd7, 0x0078, 0x988d, 0x1078, 0x772d, 0x007c, 0x6004, 0xa08a,
+	0x0044, 0x10c8, 0x1332, 0x1078, 0x61cd, 0x1078, 0x8ec6, 0x1078,
+	0x62d1, 0x007c, 0xa182, 0x0040, 0x0079, 0x989e, 0x98b1, 0x98b1,
+	0x98b1, 0x98b1, 0x98b3, 0x98b1, 0x98b1, 0x98b1, 0x98b1, 0x98b1,
+	0x98b1, 0x98b1, 0x98b1, 0x98b1, 0x98b1, 0x98b1, 0x98b1, 0x98b1,
+	0x98b1, 0x1078, 0x1332, 0x0d7e, 0x0e7e, 0x0f7e, 0x157e, 0x047e,
+	0x027e, 0x6218, 0xa280, 0x002b, 0x2004, 0xa005, 0x0040, 0x98c4,
+	0x2021, 0x0000, 0x1078, 0xa472, 0x6106, 0x2071, 0xab80, 0x7444,
+	0xa4a4, 0xff00, 0x0040, 0x991b, 0xa486, 0x2000, 0x00c0, 0x98d6,
+	0x2009, 0x0001, 0x2011, 0x0200, 0x1078, 0x5bf1, 0x1078, 0x138b,
+	0x1040, 0x1332, 0x6003, 0x0007, 0x2d00, 0x6837, 0x010d, 0x6803,
+	0x0000, 0x683b, 0x0000, 0x6c5a, 0x2c00, 0x685e, 0x6008, 0x68b2,
+	0x6018, 0x2078, 0x78a0, 0x8007, 0x7130, 0x694a, 0x017e, 0xa084,
+	0xff00, 0x6846, 0x684f, 0x0000, 0x6857, 0x0036, 0x1078, 0x4a73,
+	0x017f, 0xa486, 0x2000, 0x00c0, 0x9903, 0x2019, 0x0017, 0x1078,
+	0xa195, 0x0078, 0x997d, 0xa486, 0x0400, 0x00c0, 0x990d, 0x2019,
+	0x0002, 0x1078, 0xa146, 0x0078, 0x997d, 0xa486, 0x0200, 0x00c0,
+	0x9913, 0x1078, 0xa12b, 0xa486, 0x1000, 0x00c0, 0x9919, 0x1078,
+	0xa17a, 0x0078, 0x997d, 0x2069, 0xa933, 0x6a00, 0xd284, 0x0040,
+	0x99e7, 0xa284, 0x0300, 0x00c0, 0x99df, 0x6804, 0xa005, 0x0040,
+	0x99c5, 0x2d78, 0x6003, 0x0007, 0x1078, 0x1370, 0x0040, 0x9984,
+	0x7800, 0xd08c, 0x00c0, 0x9937, 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, 0x00c0, 0x995f, 0x684f, 0x0040, 0x0078, 0x9969, 0xa286,
+	0x0001, 0x00c0, 0x9967, 0x684f, 0x0080, 0x0078, 0x9969, 0x684f,
+	0x0000, 0x20a9, 0x000a, 0x2001, 0xab90, 0xad90, 0x0015, 0x200c,
+	0x810f, 0x2112, 0x8000, 0x8210, 0x00f0, 0x996f, 0x200c, 0x6982,
+	0x8000, 0x200c, 0x697e, 0x1078, 0x4a73, 0x027f, 0x047f, 0x157f,
+	0x0f7f, 0x0e7f, 0x0d7f, 0x007c, 0x2001, 0xa60e, 0x2004, 0xd084,
+	0x0040, 0x998e, 0x1078, 0x138b, 0x00c0, 0x9930, 0x6013, 0x0100,
+	0x6003, 0x0001, 0x6007, 0x0041, 0x1078, 0x5d8a, 0x1078, 0x62d1,
+	0x0078, 0x997d, 0x2069, 0xab92, 0x2d04, 0xa084, 0xff00, 0xa086,
+	0x1200, 0x00c0, 0x99b9, 0x2069, 0xab80, 0x686c, 0xa084, 0x00ff,
+	0x017e, 0x6110, 0xa18c, 0x0700, 0xa10d, 0x6112, 0x017f, 0x6003,
+	0x0001, 0x6007, 0x0043, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0078,
+	0x997d, 0x6013, 0x0200, 0x6003, 0x0001, 0x6007, 0x0041, 0x1078,
+	0x5d8a, 0x1078, 0x62d1, 0x0078, 0x997d, 0x2001, 0xa60d, 0x2004,
+	0xd0ec, 0x0040, 0x99cf, 0x2011, 0x8049, 0x1078, 0x361b, 0x6013,
+	0x0300, 0x0078, 0x99d5, 0x6013, 0x0100, 0x6003, 0x0001, 0x6007,
+	0x0041, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0078, 0x997d, 0x6013,
+	0x0500, 0x0078, 0x99d5, 0x6013, 0x0600, 0x0078, 0x999a, 0x6013,
+	0x0200, 0x0078, 0x999a, 0xa186, 0x0013, 0x00c0, 0x99fd, 0x6004,
+	0xa08a, 0x0040, 0x1048, 0x1332, 0xa08a, 0x0053, 0x10c8, 0x1332,
+	0xa082, 0x0040, 0x2008, 0x0079, 0x9a82, 0xa186, 0x0051, 0x0040,
+	0x9a0a, 0xa186, 0x0047, 0x00c0, 0x9a23, 0x6004, 0xa086, 0x0041,
+	0x0040, 0x9a31, 0x2001, 0x0109, 0x2004, 0xd084, 0x0040, 0x9a31,
+	0x127e, 0x2091, 0x2200, 0x007e, 0x017e, 0x027e, 0x1078, 0x5c56,
+	0x027f, 0x017f, 0x007f, 0x127f, 0x6000, 0xa086, 0x0002, 0x00c0,
+	0x9a31, 0x0078, 0x9ac7, 0xa186, 0x0027, 0x0040, 0x9a2b, 0xa186,
+	0x0014, 0x10c0, 0x1332, 0x6004, 0xa082, 0x0040, 0x2008, 0x0079,
+	0x9a34, 0x1078, 0x7773, 0x007c, 0x9a47, 0x9a49, 0x9a49, 0x9a71,
+	0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47,
+	0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x9a47, 0x1078,
+	0x1332, 0x1078, 0x61cd, 0x1078, 0x62d1, 0x037e, 0x0d7e, 0x6010,
+	0xa06d, 0x0040, 0x9a6e, 0xad84, 0xf000, 0x0040, 0x9a6e, 0x6003,
+	0x0002, 0x6018, 0x2004, 0xd0bc, 0x00c0, 0x9a6e, 0x2019, 0x0004,
+	0x1078, 0xa1ca, 0x6013, 0x0000, 0x6014, 0xa005, 0x00c0, 0x9a6c,
+	0x2001, 0xa8a3, 0x2004, 0x6016, 0x6003, 0x0007, 0x0d7f, 0x037f,
+	0x007c, 0x0d7e, 0x1078, 0x61cd, 0x1078, 0x62d1, 0x1078, 0x8d06,
+	0x0040, 0x9a7e, 0x6010, 0x2068, 0x1078, 0x13a4, 0x1078, 0x8ec6,
+	0x0d7f, 0x007c, 0x9a95, 0x9ab4, 0x9a9e, 0x9ac1, 0x9a95, 0x9a95,
+	0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x9a95,
+	0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x9a95, 0x1078, 0x1332, 0x6010,
+	0xa088, 0x0013, 0x2104, 0xa085, 0x0400, 0x200a, 0x1078, 0x61cd,
+	0x6010, 0xa080, 0x0013, 0x2004, 0xd0b4, 0x0040, 0x9aaf, 0x6003,
+	0x0007, 0x2009, 0x0043, 0x1078, 0x775c, 0x0078, 0x9ab1, 0x6003,
+	0x0002, 0x1078, 0x62d1, 0x007c, 0x1078, 0x61cd, 0x1078, 0xa423,
+	0x00c0, 0x9abe, 0x1078, 0x5bc1, 0x1078, 0x772d, 0x1078, 0x62d1,
+	0x007c, 0x1078, 0x61cd, 0x2009, 0x0041, 0x0078, 0x9c1e, 0xa182,
+	0x0040, 0x0079, 0x9acb, 0x9ade, 0x9ae0, 0x9ade, 0x9ade, 0x9ade,
+	0x9ade, 0x9ade, 0x9ae1, 0x9ade, 0x9ade, 0x9ade, 0x9ade, 0x9ade,
+	0x9ade, 0x9ade, 0x9ade, 0x9ade, 0x9aec, 0x9ade, 0x1078, 0x1332,
+	0x007c, 0x6003, 0x0004, 0x6110, 0x20e1, 0x0005, 0x3d18, 0x3e20,
+	0x2c10, 0x1078, 0x15fa, 0x007c, 0x0d7e, 0x1078, 0x5bc1, 0x0d7f,
+	0x1078, 0xa495, 0x1078, 0x772d, 0x007c, 0xa182, 0x0040, 0x0079,
+	0x9af9, 0x9b0c, 0x9b0c, 0x9b0c, 0x9b0c, 0x9b0c, 0x9b0c, 0x9b0c,
+	0x9b0e, 0x9b0c, 0x9b11, 0x9b3c, 0x9b0c, 0x9b0c, 0x9b0c, 0x9b0c,
+	0x9b3c, 0x9b0c, 0x9b0c, 0x9b0c, 0x1078, 0x1332, 0x1078, 0x7773,
+	0x007c, 0x1078, 0x627a, 0x1078, 0x639b, 0x6010, 0x0d7e, 0x2068,
+	0x684c, 0xd0fc, 0x0040, 0x9b27, 0xa08c, 0x0003, 0xa18e, 0x0002,
+	0x0040, 0x9b2f, 0x2009, 0x0041, 0x0d7f, 0x0078, 0x9c1e, 0x6003,
+	0x0007, 0x6017, 0x0000, 0x1078, 0x5bc1, 0x0d7f, 0x007c, 0x1078,
+	0xa423, 0x0040, 0x9b35, 0x0d7f, 0x007c, 0x1078, 0x5bc1, 0x1078,
+	0x772d, 0x0d7f, 0x0078, 0x9b2e, 0x037e, 0x1078, 0x627a, 0x1078,
+	0x639b, 0x6010, 0x0d7e, 0x2068, 0x6018, 0x2004, 0xd0bc, 0x0040,
+	0x9b5c, 0x684c, 0xa084, 0x0003, 0xa086, 0x0002, 0x0040, 0x9b58,
+	0x687c, 0x632c, 0xa31a, 0x632e, 0x6880, 0x6328, 0xa31b, 0x632a,
+	0x6003, 0x0002, 0x0078, 0x9b6d, 0x2019, 0x0004, 0x1078, 0xa1ca,
+	0x6014, 0xa005, 0x00c0, 0x9b69, 0x2001, 0xa8a3, 0x2004, 0x8003,
+	0x6016, 0x6013, 0x0000, 0x6003, 0x0007, 0x0d7f, 0x037f, 0x007c,
+	0xa186, 0x0013, 0x00c0, 0x9b7e, 0x6004, 0xa086, 0x0042, 0x10c0,
+	0x1332, 0x1078, 0x61cd, 0x1078, 0x62d1, 0x007c, 0xa186, 0x0027,
+	0x0040, 0x9b86, 0xa186, 0x0014, 0x00c0, 0x9b96, 0x6004, 0xa086,
+	0x0042, 0x10c0, 0x1332, 0x2001, 0x0007, 0x1078, 0x4535, 0x1078,
+	0x61cd, 0x1078, 0x8ec6, 0x1078, 0x62d1, 0x007c, 0xa182, 0x0040,
+	0x0079, 0x9b9a, 0x9bad, 0x9bad, 0x9bad, 0x9bad, 0x9bad, 0x9bad,
+	0x9bad, 0x9baf, 0x9bbb, 0x9bad, 0x9bad, 0x9bad, 0x9bad, 0x9bad,
+	0x9bad, 0x9bad, 0x9bad, 0x9bad, 0x9bad, 0x1078, 0x1332, 0x037e,
+	0x047e, 0x20e1, 0x0005, 0x3d18, 0x3e20, 0x2c10, 0x1078, 0x15fa,
+	0x047f, 0x037f, 0x007c, 0x6010, 0x0d7e, 0x2068, 0x6810, 0x6a14,
+	0x6118, 0x210c, 0xd1bc, 0x0040, 0x9bda, 0x6124, 0xd1f4, 0x00c0,
+	0x9bda, 0x007e, 0x047e, 0x057e, 0x6c7c, 0xa422, 0x6d80, 0x2200,
+	0xa52b, 0x602c, 0xa420, 0x642e, 0x6028, 0xa529, 0x652a, 0x057f,
+	0x047f, 0x007f, 0xa20d, 0x00c0, 0x9bee, 0x684c, 0xd0fc, 0x0040,
+	0x9be6, 0x2009, 0x0041, 0x0d7f, 0x0078, 0x9c1e, 0x6003, 0x0007,
+	0x6017, 0x0000, 0x1078, 0x5bc1, 0x0d7f, 0x007c, 0x007e, 0x0f7e,
+	0x2c78, 0x1078, 0x4963, 0x0f7f, 0x007f, 0x0040, 0x9bfb, 0x6003,
+	0x0002, 0x0d7f, 0x007c, 0x2009, 0xa60d, 0x210c, 0xd19c, 0x0040,
+	0x9c05, 0x6003, 0x0007, 0x0078, 0x9c07, 0x6003, 0x0006, 0x1078,
+	0x9c0d, 0x1078, 0x5bc3, 0x0d7f, 0x007c, 0xd2fc, 0x0040, 0x9c19,
+	0x8002, 0x8000, 0x8212, 0xa291, 0x0000, 0x2009, 0x0009, 0x0078,
+	0x9c1b, 0x2009, 0x0015, 0x6a6a, 0x6866, 0x007c, 0xa182, 0x0040,
+	0x0048, 0x9c24, 0x0079, 0x9c31, 0xa186, 0x0013, 0x0040, 0x9c2c,
+	0xa186, 0x0014, 0x10c0, 0x1332, 0x6024, 0xd0dc, 0x1040, 0x1332,
+	0x007c, 0x9c44, 0x9c4b, 0x9c57, 0x9c63, 0x9c44, 0x9c44, 0x9c44,
+	0x9c72, 0x9c44, 0x9c46, 0x9c46, 0x9c44, 0x9c44, 0x9c44, 0x9c44,
+	0x9c44, 0x9c44, 0x9c44, 0x9c44, 0x1078, 0x1332, 0x6024, 0xd0dc,
+	0x1040, 0x1332, 0x007c, 0x6003, 0x0001, 0x6106, 0x1078, 0x5d8a,
+	0x127e, 0x2091, 0x8000, 0x1078, 0x62d1, 0x127f, 0x007c, 0x6003,
+	0x0001, 0x6106, 0x1078, 0x5d8a, 0x127e, 0x2091, 0x8000, 0x1078,
+	0x62d1, 0x127f, 0x007c, 0x6003, 0x0003, 0x6106, 0x2c10, 0x1078,
+	0x1cf0, 0x127e, 0x2091, 0x8000, 0x1078, 0x5df6, 0x1078, 0x639b,
+	0x127f, 0x007c, 0xa016, 0x1078, 0x15fa, 0x007c, 0x127e, 0x2091,
+	0x8000, 0x037e, 0x0d7e, 0xa182, 0x0040, 0x1079, 0x9c83, 0x0d7f,
+	0x037f, 0x127f, 0x007c, 0x9c93, 0x9c95, 0x9caa, 0x9cc9, 0x9c93,
+	0x9c93, 0x9c93, 0x9ce1, 0x9c93, 0x9c93, 0x9c93, 0x9c93, 0x9c93,
+	0x9c93, 0x9c93, 0x9c93, 0x1078, 0x1332, 0x6010, 0x2068, 0x684c,
+	0xd0fc, 0x0040, 0x9cbf, 0xa09c, 0x0003, 0xa39e, 0x0003, 0x0040,
+	0x9cbf, 0x6003, 0x0001, 0x6106, 0x1078, 0x5d8a, 0x1078, 0x62d1,
+	0x0078, 0x9ce4, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x0040, 0x9cbf,
+	0xa09c, 0x0003, 0xa39e, 0x0003, 0x0040, 0x9cbf, 0x6003, 0x0001,
+	0x6106, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0078, 0x9ce4, 0x6013,
+	0x0000, 0x6017, 0x0000, 0x2019, 0x0004, 0x1078, 0xa1ca, 0x0078,
+	0x9ce4, 0x6010, 0x2068, 0x684c, 0xd0fc, 0x0040, 0x9cbf, 0xa09c,
+	0x0003, 0xa39e, 0x0003, 0x0040, 0x9cbf, 0x6003, 0x0003, 0x6106,
+	0x2c10, 0x1078, 0x1cf0, 0x1078, 0x5df6, 0x1078, 0x639b, 0x0078,
+	0x9ce4, 0xa016, 0x1078, 0x15fa, 0x007c, 0x1078, 0x61cd, 0x6110,
+	0x81ff, 0x0040, 0x9cf6, 0x0d7e, 0x2168, 0x1078, 0xa4e2, 0x037e,
+	0x2019, 0x0029, 0x1078, 0xa1ca, 0x037f, 0x0d7f, 0x1078, 0x8ec6,
+	0x1078, 0x62d1, 0x007c, 0x1078, 0x627a, 0x6110, 0x81ff, 0x0040,
+	0x9d0c, 0x0d7e, 0x2168, 0x1078, 0xa4e2, 0x037e, 0x2019, 0x0029,
+	0x1078, 0xa1ca, 0x037f, 0x0d7f, 0x1078, 0x8ec6, 0x1078, 0x639b,
+	0x007c, 0xa182, 0x0085, 0x0079, 0x9d15, 0x9d1e, 0x9d1c, 0x9d1c,
+	0x9d2a, 0x9d1c, 0x9d1c, 0x9d1c, 0x1078, 0x1332, 0x6003, 0x000b,
+	0x6106, 0x1078, 0x5d8a, 0x127e, 0x2091, 0x8000, 0x1078, 0x62d1,
+	0x127f, 0x007c, 0x027e, 0x0e7e, 0x1078, 0xa41c, 0x0040, 0x9d34,
+	0x1078, 0x772d, 0x0078, 0x9d50, 0x2071, 0xab80, 0x7224, 0x6212,
+	0x7220, 0x1078, 0xa069, 0x0040, 0x9d41, 0x6007, 0x0086, 0x0078,
+	0x9d4a, 0x6007, 0x0087, 0x7224, 0xa296, 0xffff, 0x00c0, 0x9d4a,
+	0x6007, 0x0086, 0x6003, 0x0001, 0x1078, 0x5d8a, 0x1078, 0x62d1,
+	0x0e7f, 0x027f, 0x007c, 0xa186, 0x0013, 0x00c0, 0x9d64, 0x6004,
+	0xa08a, 0x0085, 0x1048, 0x1332, 0xa08a, 0x008c, 0x10c8, 0x1332,
+	0xa082, 0x0085, 0x0079, 0x9d7b, 0xa186, 0x0027, 0x0040, 0x9d70,
+	0xa186, 0x0014, 0x0040, 0x9d70, 0x1078, 0x7773, 0x0078, 0x9d7a,
+	0x2001, 0x0007, 0x1078, 0x4535, 0x1078, 0x61cd, 0x1078, 0x8ec6,
+	0x1078, 0x62d1, 0x007c, 0x9d82, 0x9d84, 0x9d84, 0x9d82, 0x9d82,
+	0x9d82, 0x9d82, 0x1078, 0x1332, 0x1078, 0x61cd, 0x1078, 0x8ec6,
+	0x1078, 0x62d1, 0x007c, 0xa182, 0x0085, 0x1048, 0x1332, 0xa182,
+	0x008c, 0x10c8, 0x1332, 0xa182, 0x0085, 0x0079, 0x9d97, 0x9d9e,
+	0x9d9e, 0x9d9e, 0x9da0, 0x9d9e, 0x9d9e, 0x9d9e, 0x1078, 0x1332,
+	0x007c, 0xa186, 0x0013, 0x0040, 0x9db1, 0xa186, 0x0014, 0x0040,
+	0x9db1, 0xa186, 0x0027, 0x0040, 0x9db1, 0x1078, 0x7773, 0x0078,
+	0x9db7, 0x1078, 0x61cd, 0x1078, 0x8ec6, 0x1078, 0x62d1, 0x007c,
+	0x037e, 0x1078, 0xa495, 0x603f, 0x0000, 0x2019, 0x000b, 0x1078,
+	0x9dc7, 0x601f, 0x0006, 0x6003, 0x0007, 0x037f, 0x007c, 0x127e,
+	0x037e, 0x2091, 0x8000, 0x087e, 0x2c40, 0x097e, 0x2049, 0x0000,
+	0x1078, 0x7246, 0x097f, 0x087f, 0x00c0, 0x9e02, 0x077e, 0x2c38,
+	0x1078, 0x72f3, 0x077f, 0x00c0, 0x9e02, 0x6000, 0xa086, 0x0000,
+	0x0040, 0x9e02, 0x601c, 0xa086, 0x0007, 0x0040, 0x9e02, 0x0d7e,
+	0x6000, 0xa086, 0x0004, 0x00c0, 0x9df3, 0x1078, 0xa495, 0x601f,
+	0x0007, 0x1078, 0x1757, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040,
+	0x9dfb, 0x1078, 0xa1ca, 0x0d7f, 0x6013, 0x0000, 0x1078, 0xa495,
+	0x601f, 0x0007, 0x037f, 0x127f, 0x007c, 0x0f7e, 0x0c7e, 0x037e,
+	0x157e, 0x2079, 0xab80, 0x7938, 0x783c, 0x1078, 0x254d, 0x00c0,
+	0x9e49, 0x017e, 0x0c7e, 0x1078, 0x45c4, 0x00c0, 0x9e49, 0x017f,
+	0x027f, 0x027e, 0x017e, 0x2019, 0x0029, 0x1078, 0x73d0, 0x1078,
+	0x5f01, 0x077e, 0x2039, 0x0000, 0x1078, 0x5e0a, 0x077f, 0x017f,
+	0x077e, 0x2039, 0x0000, 0x1078, 0x9f8b, 0x077f, 0x1078, 0x47e9,
+	0x027e, 0x6204, 0xa294, 0xff00, 0x8217, 0xa286, 0x0006, 0x0040,
+	0x9e3d, 0xa286, 0x0004, 0x00c0, 0x9e40, 0x62a0, 0x1078, 0x2942,
+	0x027f, 0x017f, 0x1078, 0x42f8, 0x6612, 0x6516, 0xa006, 0x0078,
+	0x9e4b, 0x0c7f, 0x017f, 0x157f, 0x037f, 0x0c7f, 0x0f7f, 0x007c,
+	0x0c7e, 0x0d7e, 0x0e7e, 0x017e, 0x2009, 0xa620, 0x2104, 0xa086,
+	0x0074, 0x00c0, 0x9eb3, 0x2069, 0xab8e, 0x690c, 0xa182, 0x0100,
+	0x0048, 0x9ea3, 0x6908, 0xa184, 0x8000, 0x0040, 0x9eaf, 0x6018,
+	0x2070, 0x7010, 0xa084, 0x00ff, 0x0040, 0x9e72, 0x7000, 0xd0f4,
+	0x0040, 0x9e76, 0xa184, 0x0800, 0x0040, 0x9eaf, 0x6910, 0xa18a,
+	0x0001, 0x0048, 0x9ea7, 0x6914, 0x2069, 0xabae, 0x6904, 0x81ff,
+	0x00c0, 0x9e9b, 0x690c, 0xa182, 0x0100, 0x0048, 0x9ea3, 0x6908,
+	0x81ff, 0x00c0, 0x9e9f, 0x6910, 0xa18a, 0x0001, 0x0048, 0x9ea7,
+	0x6918, 0xa18a, 0x0001, 0x0048, 0x9eaf, 0x0078, 0x9eb9, 0x6013,
+	0x0100, 0x0078, 0x9eb5, 0x6013, 0x0300, 0x0078, 0x9eb5, 0x6013,
+	0x0500, 0x0078, 0x9eb5, 0x6013, 0x0700, 0x0078, 0x9eb5, 0x6013,
+	0x0900, 0x0078, 0x9eb5, 0x6013, 0x0b00, 0x0078, 0x9eb5, 0x6013,
+	0x0f00, 0x0078, 0x9eb5, 0x6013, 0x2d00, 0xa085, 0x0001, 0x0078,
+	0x9eba, 0xa006, 0x017f, 0x0e7f, 0x0d7f, 0x0c7f, 0x007c, 0x0c7e,
+	0x0d7e, 0x027e, 0x037e, 0x157e, 0x6218, 0x2268, 0x6b04, 0xa394,
+	0x00ff, 0xa286, 0x0006, 0x0040, 0x9ee3, 0xa286, 0x0004, 0x0040,
+	0x9ee3, 0xa394, 0xff00, 0x8217, 0xa286, 0x0006, 0x0040, 0x9ee3,
+	0xa286, 0x0004, 0x0040, 0x9ee3, 0x0c7e, 0x2d60, 0x1078, 0x45d6,
+	0x0c7f, 0x0078, 0x9f1e, 0x2011, 0xab96, 0xad98, 0x000a, 0x20a9,
+	0x0004, 0x1078, 0x80de, 0x00c0, 0x9f1f, 0x2011, 0xab9a, 0xad98,
+	0x0006, 0x20a9, 0x0004, 0x1078, 0x80de, 0x00c0, 0x9f1f, 0x047e,
+	0x017e, 0x6aa0, 0xa294, 0x00ff, 0x8227, 0xa006, 0x2009, 0xa653,
+	0x210c, 0xd1a4, 0x0040, 0x9f0b, 0x2009, 0x0029, 0x1078, 0xa21d,
+	0x6800, 0xc0e5, 0x6802, 0x2019, 0x0029, 0x1078, 0x5f01, 0x077e,
+	0x2039, 0x0000, 0x1078, 0x5e0a, 0x2c08, 0x1078, 0x9f8b, 0x077f,
+	0x2001, 0x0007, 0x1078, 0x4535, 0x017f, 0x047f, 0xa006, 0x157f,
+	0x037f, 0x027f, 0x0d7f, 0x0c7f, 0x007c, 0x0d7e, 0x2069, 0xab8e,
+	0x6800, 0xa086, 0x0800, 0x0040, 0x9f31, 0x6013, 0x0000, 0x0078,
+	0x9f32, 0xa006, 0x0d7f, 0x007c, 0x0c7e, 0x0f7e, 0x017e, 0x027e,
+	0x037e, 0x157e, 0x2079, 0xab8c, 0x7930, 0x7834, 0x1078, 0x254d,
+	0x00c0, 0x9f58, 0x1078, 0x45c4, 0x00c0, 0x9f58, 0x2011, 0xab90,
+	0xac98, 0x000a, 0x20a9, 0x0004, 0x1078, 0x80de, 0x00c0, 0x9f58,
+	0x2011, 0xab94, 0xac98, 0x0006, 0x20a9, 0x0004, 0x1078, 0x80de,
+	0x157f, 0x037f, 0x027f, 0x017f, 0x0f7f, 0x0c7f, 0x007c, 0x0c7e,
+	0x007e, 0x017e, 0x027e, 0x037e, 0x157e, 0x2011, 0xab83, 0x2204,
+	0x8211, 0x220c, 0x1078, 0x254d, 0x00c0, 0x9f84, 0x1078, 0x45c4,
+	0x00c0, 0x9f84, 0x2011, 0xab96, 0xac98, 0x000a, 0x20a9, 0x0004,
+	0x1078, 0x80de, 0x00c0, 0x9f84, 0x2011, 0xab9a, 0xac98, 0x0006,
+	0x20a9, 0x0004, 0x1078, 0x80de, 0x157f, 0x037f, 0x027f, 0x017f,
+	0x007f, 0x0c7f, 0x007c, 0x0e7e, 0x0c7e, 0x087e, 0x077e, 0x067e,
+	0x057e, 0x047e, 0x027e, 0x127e, 0x2091, 0x8000, 0x2740, 0x2029,
+	0xa8ba, 0x252c, 0x2021, 0xa8c0, 0x2424, 0x2061, 0xad00, 0x2071,
+	0xa600, 0x7648, 0x7064, 0x81ff, 0x0040, 0x9fb2, 0x007e, 0xa186,
+	0xa9b3, 0x007f, 0x0040, 0x9fb2, 0x8001, 0xa602, 0x00c8, 0xa01c,
+	0x0078, 0x9fb5, 0xa606, 0x0040, 0xa01c, 0x2100, 0xac06, 0x0040,
+	0xa012, 0x1078, 0xa242, 0x0040, 0xa012, 0x671c, 0xa786, 0x0001,
+	0x0040, 0xa037, 0xa786, 0x0004, 0x0040, 0xa037, 0xa786, 0x0007,
+	0x0040, 0xa012, 0x2500, 0xac06, 0x0040, 0xa012, 0x2400, 0xac06,
+	0x0040, 0xa012, 0x1078, 0xa256, 0x00c0, 0xa012, 0x88ff, 0x0040,
+	0x9fdd, 0x6020, 0xa906, 0x00c0, 0xa012, 0x0d7e, 0x6000, 0xa086,
+	0x0004, 0x00c0, 0x9fe7, 0x017e, 0x1078, 0x1757, 0x017f, 0xa786,
+	0x0008, 0x00c0, 0x9ff6, 0x1078, 0x8f00, 0x00c0, 0x9ff6, 0x1078,
+	0x7c83, 0x0d7f, 0x1078, 0x8ec6, 0x0078, 0xa012, 0x6010, 0x2068,
+	0x1078, 0x8d06, 0x0040, 0xa00f, 0xa786, 0x0003, 0x00c0, 0xa026,
+	0x6837, 0x0103, 0x6b4a, 0x6847, 0x0000, 0x1078, 0xa4e2, 0x017e,
+	0x1078, 0x8f7d, 0x1078, 0x4a73, 0x017f, 0x1078, 0x8eb9, 0x0d7f,
+	0x1078, 0x8ec6, 0xace0, 0x0010, 0x2001, 0xa616, 0x2004, 0xac02,
+	0x00c8, 0xa01c, 0x0078, 0x9f9f, 0x127f, 0x027f, 0x047f, 0x057f,
+	0x067f, 0x077f, 0x087f, 0x0c7f, 0x0e7f, 0x007c, 0xa786, 0x0006,
+	0x00c0, 0xa000, 0xa386, 0x0005, 0x0040, 0xa034, 0x1078, 0xa4e2,
+	0x1078, 0xa1ca, 0x0078, 0xa00f, 0x0d7f, 0x0078, 0xa012, 0x1078,
+	0xa256, 0x00c0, 0xa012, 0x81ff, 0x0040, 0xa012, 0xa180, 0x0001,
+	0x2004, 0xa086, 0x0018, 0x0040, 0xa04c, 0xa180, 0x0001, 0x2004,
+	0xa086, 0x002d, 0x00c0, 0xa012, 0x6000, 0xa086, 0x0002, 0x00c0,
+	0xa012, 0x1078, 0x8eec, 0x0040, 0xa05d, 0x1078, 0x8f00, 0x00c0,
+	0xa012, 0x1078, 0x7c83, 0x0078, 0xa065, 0x1078, 0x28a6, 0x1078,
+	0x8f00, 0x00c0, 0xa065, 0x1078, 0x7c83, 0x1078, 0x8ec6, 0x0078,
+	0xa012, 0x0c7e, 0x0e7e, 0x017e, 0x2c08, 0x2170, 0xa006, 0x1078,
+	0xa1e6, 0x017f, 0x0040, 0xa079, 0x601c, 0xa084, 0x000f, 0x1079,
+	0xa07c, 0x0e7f, 0x0c7f, 0x007c, 0xa084, 0xa084, 0xa084, 0xa084,
+	0xa084, 0xa084, 0xa086, 0xa084, 0xa006, 0x007c, 0x047e, 0x017e,
+	0x7018, 0xa080, 0x0028, 0x2024, 0xa4a4, 0x00ff, 0x8427, 0x2c00,
+	0x2009, 0x0020, 0x1078, 0xa21d, 0x017f, 0x047f, 0x037e, 0x2019,
+	0x0002, 0x1078, 0x9dc7, 0x037f, 0xa085, 0x0001, 0x007c, 0x2001,
+	0x0001, 0x1078, 0x44ee, 0x157e, 0x017e, 0x027e, 0x037e, 0x20a9,
+	0x0004, 0x2019, 0xa605, 0x2011, 0xab96, 0x1078, 0x80de, 0x037f,
+	0x027f, 0x017f, 0x157f, 0xa005, 0x007c, 0x0f7e, 0x0e7e, 0x0c7e,
+	0x087e, 0x077e, 0x067e, 0x027e, 0x127e, 0x2091, 0x8000, 0x2740,
+	0x2061, 0xad00, 0x2079, 0x0001, 0x8fff, 0x0040, 0xa11d, 0x2071,
+	0xa600, 0x7648, 0x7064, 0x8001, 0xa602, 0x00c8, 0xa11d, 0x88ff,
+	0x0040, 0xa0d8, 0x2800, 0xac06, 0x00c0, 0xa113, 0x2079, 0x0000,
+	0x1078, 0xa242, 0x0040, 0xa113, 0x2400, 0xac06, 0x0040, 0xa113,
+	0x671c, 0xa786, 0x0006, 0x00c0, 0xa113, 0xa786, 0x0007, 0x0040,
+	0xa113, 0x88ff, 0x00c0, 0xa0f7, 0x6018, 0xa206, 0x00c0, 0xa113,
+	0x85ff, 0x0040, 0xa0f7, 0x6020, 0xa106, 0x00c0, 0xa113, 0x0d7e,
+	0x6000, 0xa086, 0x0004, 0x00c0, 0xa103, 0x1078, 0xa495, 0x601f,
+	0x0007, 0x1078, 0x1757, 0x6010, 0x2068, 0x1078, 0x8d06, 0x0040,
+	0xa10d, 0x047e, 0x1078, 0xa1ca, 0x047f, 0x0d7f, 0x1078, 0x8ec6,
+	0x88ff, 0x00c0, 0xa127, 0xace0, 0x0010, 0x2001, 0xa616, 0x2004,
+	0xac02, 0x00c8, 0xa11d, 0x0078, 0xa0c4, 0xa006, 0x127f, 0x027f,
+	0x067f, 0x077f, 0x087f, 0x0c7f, 0x0e7f, 0x0f7f, 0x007c, 0xa8c5,
+	0x0001, 0x0078, 0xa11e, 0x077e, 0x057e, 0x087e, 0x2041, 0x0000,
+	0x2029, 0x0001, 0x2c20, 0x2019, 0x0002, 0x6218, 0x097e, 0x2049,
+	0x0000, 0x1078, 0x7246, 0x097f, 0x087f, 0x2039, 0x0000, 0x1078,
+	0x72f3, 0x1078, 0xa0b5, 0x057f, 0x077f, 0x007c, 0x027e, 0x047e,
+	0x057e, 0x077e, 0x0c7e, 0x157e, 0x2c20, 0x2128, 0x20a9, 0x007f,
+	0x2009, 0x0000, 0x017e, 0x037e, 0x1078, 0x45c4, 0x00c0, 0xa16e,
+	0x2c10, 0x057e, 0x087e, 0x2041, 0x0000, 0x2508, 0x2029, 0x0001,
+	0x097e, 0x2049, 0x0000, 0x1078, 0x7246, 0x097f, 0x087f, 0x2039,
+	0x0000, 0x1078, 0x72f3, 0x1078, 0xa0b5, 0x057f, 0x037f, 0x017f,
+	0x8108, 0x00f0, 0xa152, 0x157f, 0x0c7f, 0x077f, 0x057f, 0x047f,
+	0x027f, 0x007c, 0x077e, 0x057e, 0x6218, 0x087e, 0x2041, 0x0000,
+	0x2029, 0x0001, 0x2019, 0x0048, 0x097e, 0x2049, 0x0000, 0x1078,
+	0x7246, 0x097f, 0x087f, 0x2039, 0x0000, 0x1078, 0x72f3, 0x2c20,
+	0x1078, 0xa0b5, 0x057f, 0x077f, 0x007c, 0x027e, 0x047e, 0x057e,
+	0x077e, 0x0c7e, 0x157e, 0x2c20, 0x20a9, 0x007f, 0x2009, 0x0000,
+	0x017e, 0x037e, 0x1078, 0x45c4, 0x00c0, 0xa1be, 0x2c10, 0x087e,
+	0x2041, 0x0000, 0x2828, 0x047e, 0x2021, 0x0001, 0x1078, 0xa472,
+	0x047f, 0x097e, 0x2049, 0x0000, 0x1078, 0x7246, 0x097f, 0x087f,
+	0x2039, 0x0000, 0x1078, 0x72f3, 0x1078, 0xa0b5, 0x037f, 0x017f,
+	0x8108, 0x00f0, 0xa1a0, 0x157f, 0x0c7f, 0x077f, 0x057f, 0x047f,
+	0x027f, 0x007c, 0x017e, 0x0f7e, 0xad82, 0xcd00, 0x0048, 0xa1e3,
+	0xad82, 0xffff, 0x00c8, 0xa1e3, 0x6800, 0xa07d, 0x0040, 0xa1e0,
+	0x6803, 0x0000, 0x6b52, 0x1078, 0x4a73, 0x2f68, 0x0078, 0xa1d4,
+	0x6b52, 0x1078, 0x4a73, 0x0f7f, 0x017f, 0x007c, 0x0e7e, 0x047e,
+	0x037e, 0x2061, 0xad00, 0xa005, 0x00c0, 0xa1f6, 0x2071, 0xa600,
+	0x7448, 0x7064, 0x8001, 0xa402, 0x00c8, 0xa218, 0x2100, 0xac06,
+	0x0040, 0xa20a, 0x6000, 0xa086, 0x0000, 0x0040, 0xa20a, 0x6008,
+	0xa206, 0x00c0, 0xa20a, 0x6018, 0xa1a0, 0x0006, 0x2424, 0xa406,
+	0x0040, 0xa214, 0xace0, 0x0010, 0x2001, 0xa616, 0x2004, 0xac02,
+	0x00c8, 0xa218, 0x0078, 0xa1f6, 0xa085, 0x0001, 0x0078, 0xa219,
+	0xa006, 0x037f, 0x047f, 0x0e7f, 0x007c, 0x0d7e, 0x007e, 0x1078,
+	0x138b, 0x007f, 0x1040, 0x1332, 0x6837, 0x010d, 0x685e, 0x027e,
+	0x2010, 0x1078, 0x8cf2, 0x2001, 0x0000, 0x0040, 0xa233, 0x2200,
+	0xa080, 0x0008, 0x2004, 0x027f, 0x684a, 0x6956, 0x6c46, 0x684f,
+	0x0000, 0xa006, 0x68b2, 0x6802, 0x683a, 0x685a, 0x1078, 0x4a73,
+	0x0d7f, 0x007c, 0x6700, 0xa786, 0x0000, 0x0040, 0xa255, 0xa786,
+	0x0001, 0x0040, 0xa255, 0xa786, 0x000a, 0x0040, 0xa255, 0xa786,
+	0x0009, 0x0040, 0xa255, 0xa085, 0x0001, 0x007c, 0x0e7e, 0x6018,
+	0x2070, 0x70a0, 0xa206, 0x0e7f, 0x007c, 0x017e, 0x6004, 0xa08e,
+	0x001e, 0x00c0, 0xa277, 0x8007, 0x6130, 0xa18c, 0x00ff, 0xa105,
+	0x6032, 0x6007, 0x0085, 0x6003, 0x000b, 0x601f, 0x0005, 0x2001,
+	0xa8a3, 0x2004, 0x6016, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x017f,
+	0x007c, 0x0005, 0x0005, 0x007c, 0x6024, 0xd0e4, 0x0040, 0xa28d,
+	0xd0cc, 0x0040, 0xa287, 0x1078, 0x8fbf, 0x0078, 0xa28d, 0x1078,
+	0xa495, 0x1078, 0x5bc1, 0x1078, 0x772d, 0x007c, 0xa280, 0x0007,
+	0x2004, 0xa084, 0x000f, 0x0079, 0xa295, 0xa29e, 0xa29e, 0xa29e,
+	0xa2a0, 0xa29e, 0xa2a0, 0xa2a0, 0xa29e, 0xa2a0, 0xa006, 0x007c,
+	0xa085, 0x0001, 0x007c, 0xa280, 0x0007, 0x2004, 0xa084, 0x000f,
+	0x0079, 0xa2aa, 0xa2b3, 0xa2b3, 0xa2b3, 0xa2b3, 0xa2b3, 0xa2b3,
+	0xa2be, 0xa2b3, 0xa2b3, 0x6007, 0x003b, 0x602b, 0x0009, 0x6013,
+	0x2a00, 0x6003, 0x0001, 0x1078, 0x5d8a, 0x007c, 0x0c7e, 0x2260,
+	0x1078, 0xa495, 0x603f, 0x0000, 0x6024, 0xc0f4, 0xc0cc, 0x6026,
+	0x0c7f, 0x0d7e, 0x2268, 0xa186, 0x0007, 0x00c0, 0xa31f, 0x6810,
+	0xa005, 0x0040, 0xa2dc, 0xa080, 0x0013, 0x2004, 0xd0fc, 0x00c0,
+	0xa2dc, 0x0d7f, 0x0078, 0xa2b3, 0x6007, 0x003a, 0x6003, 0x0001,
+	0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0c7e, 0x2d60, 0x6100, 0xa186,
+	0x0002, 0x00c0, 0xa3ad, 0x6010, 0xa005, 0x00c0, 0xa2f6, 0x6000,
+	0xa086, 0x0007, 0x10c0, 0x1332, 0x0078, 0xa3ad, 0xa08c, 0xf000,
+	0x00c0, 0xa302, 0x0078, 0xa302, 0x2068, 0x6800, 0xa005, 0x00c0,
+	0xa2fc, 0x2d00, 0xa080, 0x0013, 0x2004, 0xa084, 0x0003, 0xa086,
+	0x0002, 0x00c0, 0xa31b, 0x6010, 0x2068, 0x684c, 0xc0dc, 0xc0f4,
+	0x684e, 0x6850, 0xc0f4, 0xc0fc, 0x6852, 0x2009, 0x0043, 0x1078,
+	0x9c1e, 0x0078, 0xa3ad, 0x2009, 0x0041, 0x0078, 0xa3a7, 0xa186,
+	0x0005, 0x00c0, 0xa366, 0x6810, 0xa080, 0x0013, 0x2004, 0xd0bc,
+	0x00c0, 0xa32d, 0x0d7f, 0x0078, 0xa2b3, 0xd0b4, 0x0040, 0xa335,
+	0xd0fc, 0x1040, 0x1332, 0x0078, 0xa2cf, 0x6007, 0x003a, 0x6003,
+	0x0001, 0x1078, 0x5d8a, 0x1078, 0x62d1, 0x0c7e, 0x2d60, 0x6100,
+	0xa186, 0x0002, 0x0040, 0xa348, 0xa186, 0x0004, 0x00c0, 0xa3ad,
+	0x2071, 0xa8e7, 0x7000, 0xa086, 0x0003, 0x00c0, 0xa355, 0x7004,
+	0xac06, 0x00c0, 0xa355, 0x7003, 0x0000, 0x6810, 0xa080, 0x0013,
+	0x200c, 0xc1f4, 0xc1dc, 0x2102, 0x8000, 0x200c, 0xc1f4, 0xc1fc,
+	0xc1bc, 0x2102, 0x2009, 0x0042, 0x0078, 0xa3a7, 0x037e, 0x0d7e,
+	0x0d7e, 0x1078, 0x138b, 0x037f, 0x1040, 0x1332, 0x6837, 0x010d,
+	0x6803, 0x0000, 0x683b, 0x0000, 0x685b, 0x0000, 0x6b5e, 0x6857,
+	0x0045, 0x2c00, 0x6862, 0x6034, 0x6872, 0x2360, 0x6024, 0xc0dd,
+	0x6026, 0x6018, 0xa080, 0x0028, 0x2004, 0xa084, 0x00ff, 0x8007,
+	0x6320, 0x6b4a, 0x6846, 0x684f, 0x0000, 0x6d6a, 0x6e66, 0x686f,
+	0x0001, 0x1078, 0x4a73, 0x2019, 0x0045, 0x6008, 0x2068, 0x1078,
+	0x9dc7, 0x2d00, 0x600a, 0x601f, 0x0006, 0x6003, 0x0007, 0x6017,
+	0x0000, 0x603f, 0x0000, 0x0d7f, 0x037f, 0x0078, 0xa3ae, 0x603f,
+	0x0000, 0x6003, 0x0007, 0x1078, 0x9c1e, 0x0c7f, 0x0d7f, 0x007c,
+	0xa186, 0x0013, 0x00c0, 0xa3ba, 0x6004, 0xa082, 0x0085, 0x2008,
+	0x0079, 0xa3d4, 0xa186, 0x0027, 0x00c0, 0xa3cd, 0x1078, 0x61cd,
+	0x037e, 0x0d7e, 0x6010, 0x2068, 0x2019, 0x0004, 0x1078, 0xa1ca,
+	0x0d7f, 0x037f, 0x1078, 0x62d1, 0x007c, 0xa186, 0x0014, 0x0040,
+	0xa3be, 0x1078, 0x7773, 0x007c, 0xa3dd, 0xa3db, 0xa3db, 0xa3db,
+	0xa3db, 0xa3db, 0xa3dd, 0x1078, 0x1332, 0x1078, 0x61cd, 0x6003,
+	0x000c, 0x1078, 0x62d1, 0x007c, 0xa182, 0x008c, 0x00c8, 0xa3ee,
+	0xa182, 0x0085, 0x0048, 0xa3ee, 0x0079, 0xa3f1, 0x1078, 0x7773,
+	0x007c, 0xa3f8, 0xa3f8, 0xa3f8, 0xa3f8, 0xa3fa, 0xa419, 0xa3f8,
+	0x1078, 0x1332, 0x0d7e, 0x2c68, 0x1078, 0x76c7, 0x0040, 0xa414,
+	0x6003, 0x0001, 0x6007, 0x001e, 0x2009, 0xab8e, 0x210c, 0x6136,
+	0x2009, 0xab8f, 0x210c, 0x613a, 0x600b, 0xffff, 0x6918, 0x611a,
+	0x601f, 0x0004, 0x1078, 0x5d8a, 0x2d60, 0x1078, 0x772d, 0x0d7f,
+	0x007c, 0x1078, 0x772d, 0x007c, 0x0e7e, 0x6018, 0x2070, 0x7000,
+	0xd0ec, 0x0e7f, 0x007c, 0x6010, 0xa08c, 0xf000, 0x0040, 0xa471,
+	0xa080, 0x0013, 0x200c, 0xd1ec, 0x0040, 0xa471, 0x2001, 0xa672,
+	0x2004, 0xd0ec, 0x0040, 0xa471, 0x6003, 0x0002, 0x6024, 0xc0e5,
+	0x6026, 0xd1ac, 0x0040, 0xa44f, 0x0f7e, 0x2c78, 0x1078, 0x495f,
+	0x0f7f, 0x0040, 0xa44f, 0x2001, 0xa8a4, 0x2004, 0x603e, 0x2009,
+	0xa672, 0x210c, 0xd1f4, 0x00c0, 0xa46f, 0x0078, 0xa461, 0x2009,
+	0xa672, 0x210c, 0xd1f4, 0x0040, 0xa45b, 0x6024, 0xc0e4, 0x6026,
+	0xa006, 0x0078, 0xa471, 0x2001, 0xa8a4, 0x200c, 0x8103, 0xa100,
+	0x603e, 0x6018, 0xa088, 0x002b, 0x2104, 0xa005, 0x0040, 0xa46c,
+	0xa088, 0x0003, 0x0078, 0xa464, 0x2c0a, 0x600f, 0x0000, 0xa085,
+	0x0001, 0x007c, 0x017e, 0x0c7e, 0x0e7e, 0x6120, 0xa2f0, 0x002b,
+	0x2e04, 0x2060, 0x8cff, 0x0040, 0xa491, 0x84ff, 0x00c0, 0xa484,
+	0x6020, 0xa106, 0x00c0, 0xa48c, 0x600c, 0x2072, 0x1078, 0x5bc1,
+	0x1078, 0x772d, 0x0078, 0xa48e, 0xacf0, 0x0003, 0x2e64, 0x0078,
+	0xa47a, 0x0e7f, 0x0c7f, 0x017f, 0x007c, 0x0d7e, 0x6018, 0xa0e8,
+	0x002b, 0x2d04, 0xa005, 0x0040, 0xa4a7, 0xac06, 0x0040, 0xa4a5,
+	0x2d04, 0xa0e8, 0x0003, 0x0078, 0xa499, 0x600c, 0x206a, 0x0d7f,
+	0x007c, 0x027e, 0x037e, 0x157e, 0x2011, 0xa626, 0x2204, 0xa084,
+	0x00ff, 0x2019, 0xab8e, 0x2334, 0xa636, 0x00c0, 0xa4d5, 0x8318,
+	0x2334, 0x2204, 0xa084, 0xff00, 0xa636, 0x00c0, 0xa4d5, 0x2011,
+	0xab90, 0x6018, 0xa098, 0x000a, 0x20a9, 0x0004, 0x1078, 0x80de,
+	0x00c0, 0xa4d5, 0x2011, 0xab94, 0x6018, 0xa098, 0x0006, 0x20a9,
+	0x0004, 0x1078, 0x80de, 0x00c0, 0xa4d5, 0x157f, 0x037f, 0x027f,
+	0x007c, 0x0e7e, 0x2071, 0xa600, 0x1078, 0x42b8, 0x1078, 0x2677,
+	0x0e7f, 0x007c, 0x0e7e, 0x6018, 0x2070, 0x7000, 0xd0fc, 0x0040,
+	0xa4eb, 0x1078, 0xa4ed, 0x0e7f, 0x007c, 0x6850, 0xc0e5, 0x6852,
+	0x007c, 0x0e7e, 0x0c7e, 0x077e, 0x067e, 0x057e, 0x047e, 0x027e,
+	0x017e, 0x127e, 0x2091, 0x8000, 0x2029, 0xa8ba, 0x252c, 0x2021,
+	0xa8c0, 0x2424, 0x2061, 0xad00, 0x2071, 0xa600, 0x7648, 0x7064,
+	0xa606, 0x0040, 0xa545, 0x671c, 0xa786, 0x0001, 0x0040, 0xa514,
+	0xa786, 0x0008, 0x00c0, 0xa53b, 0x2500, 0xac06, 0x0040, 0xa53b,
+	0x2400, 0xac06, 0x0040, 0xa53b, 0x1078, 0xa242, 0x0040, 0xa53b,
+	0x1078, 0xa256, 0x00c0, 0xa53b, 0x6000, 0xa086, 0x0004, 0x00c0,
+	0xa52d, 0x017e, 0x1078, 0x1757, 0x017f, 0x1078, 0x8eec, 0x00c0,
+	0xa533, 0x1078, 0x28a6, 0x1078, 0x8f00, 0x00c0, 0xa539, 0x1078,
+	0x7c83, 0x1078, 0x8ec6, 0xace0, 0x0010, 0x2001, 0xa616, 0x2004,
+	0xac02, 0x00c8, 0xa545, 0x0078, 0xa504, 0x127f, 0x017f, 0x027f,
+	0x047f, 0x057f, 0x067f, 0x077f, 0x0c7f, 0x0e7f, 0x007c, 0x127e,
+	0x007e, 0x0e7e, 0x017e, 0x2091, 0x8000, 0x2071, 0xa640, 0xd5a4,
+	0x0040, 0xa55d, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0040, 0xa563,
+	0x7030, 0x8000, 0x7032, 0xd5ac, 0x0040, 0xa579, 0x2500, 0xa084,
+	0x0007, 0xa08e, 0x0003, 0x0040, 0xa579, 0xa08e, 0x0004, 0x0040,
+	0xa579, 0xa08e, 0x0005, 0x0040, 0xa579, 0x2071, 0xa64a, 0x1078,
+	0xa5ba, 0x017f, 0x0e7f, 0x007f, 0x127f, 0x007c, 0x127e, 0x007e,
+	0x0e7e, 0x017e, 0x2091, 0x8000, 0x2071, 0xa640, 0xd5a4, 0x0040,
+	0xa58c, 0x7034, 0x8000, 0x7036, 0xd5b4, 0x0040, 0xa592, 0x7030,
+	0x8000, 0x7032, 0xd5ac, 0x0040, 0xa5a8, 0x2500, 0xa084, 0x0007,
+	0xa08e, 0x0003, 0x0040, 0xa5a8, 0xa08e, 0x0004, 0x0040, 0xa5a8,
+	0xa08e, 0x0005, 0x0040, 0xa5a8, 0x2071, 0xa64a, 0x1078, 0xa5ba,
+	0x017f, 0x0e7f, 0x007f, 0x127f, 0x007c, 0x127e, 0x007e, 0x0e7e,
+	0x2091, 0x8000, 0x2071, 0xa642, 0x1078, 0xa5ba, 0x0e7f, 0x007f,
+	0x127f, 0x007c, 0x2e04, 0x8000, 0x2072, 0x00c8, 0xa5c3, 0x8e70,
+	0x2e04, 0x8000, 0x2072, 0x007c, 0x0e7e, 0x2071, 0xa640, 0x1078,
+	0xa5ba, 0x0e7f, 0x007c, 0x0e7e, 0x2071, 0xa644, 0x1078, 0xa5ba,
+	0x0e7f, 0x007c, 0x127e, 0x007e, 0x0e7e, 0x2091, 0x8000, 0x2071,
+	0xa640, 0x7044, 0x8000, 0x7046, 0x0e7f, 0x007f, 0x127f, 0x007c,
+	0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
+	0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000,
+	0xa50c
+};
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2100tp_length01 = 0x95f1;
+#else
+unsigned short risc_code_length01 = 0x95f1;
+#endif
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2200ip_fw.c 350-qlogic/drivers/scsi/qla2xxx/ql2200ip_fw.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2200ip_fw.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/ql2200ip_fw.c	2003-10-29 13:58:54.000000000 -0800
@@ -0,0 +1,5879 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ *************************************************************************/
+
+/*
+ *	Firmware Version 2.02.06 (08:44 Jun 26, 2003)
+ */
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2200ip_version = 2*1024+2;
+#else
+unsigned short risc_code_version = 2*1024+2;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned char fw2200ip_version_str[] = {2,2,6};
+#else
+unsigned char firmware_version[] = {2,2,6};
+#endif
+
+#ifdef UNIQUE_FW_NAME
+#define fw2200ip_VERSION_STRING "2.02.06"
+#else
+#define FW_VERSION_STRING "2.02.06"
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2200ip_addr01 = 0x1000 ;
+#else
+unsigned short risc_code_addr01 = 0x1000 ;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2200ip_code01[] = { 
+#else
+unsigned short risc_code01[] = { 
+#endif
+	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, 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, 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,
+	0x20a8, 0xa00e, 0x41a4, 0x3800, 0xd08c, 0x01d8, 0x2009, 0xc600,
+	0x810d, 0x810d, 0x810d, 0x810d, 0xa18c, 0x000f, 0x2001, 0x0001,
+	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, 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,
+	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, 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, 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,
+	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, 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, 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, 0x8f27, 0x080c, 0x7ead, 0x080c, 0x5f3b, 0x0148,
+	0x00c6, 0x2061, 0x0100, 0x0016, 0x080c, 0x2a95, 0x61e2, 0x001e,
+	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, 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,
+	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, 0x5724, 0x1904,
+	0x12df, 0x2001, 0xc653, 0x2004, 0xd0ac, 0x01c8, 0x0156, 0x00c6,
+	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,
+	0x000e, 0x71a8, 0x81ff, 0x11b0, 0xa006, 0x2009, 0x0200, 0x20a9,
+	0x0002, 0x20a1, 0xc925, 0x40a1, 0x2009, 0x0700, 0x20a9, 0x0002,
+	0x20a1, 0xc915, 0x40a1, 0x7070, 0x8007, 0x7174, 0x810f, 0x20a9,
+	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, 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, 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, 0x4f04, 0x7940, 0xa18c, 0x0010, 0x7942,
+	0x7924, 0xd1b4, 0x0110, 0x7827, 0x0040, 0xd19c, 0x0110, 0x7827,
+	0x0008, 0x0006, 0x0036, 0x0156, 0x7954, 0xd1ac, 0x1904, 0x134f,
+	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, 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, 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, 0x5f3b, 0x05d8, 0x7824, 0xd0ac,
+	0x1904, 0x13f9, 0x080c, 0x5f61, 0x1508, 0x0046, 0x2021, 0x0190,
+	0x8421, 0x1df0, 0x004e, 0x8421, 0x11c8, 0x7827, 0x0048, 0x20a9,
+	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, 0x7071, 0x8319, 0x1960, 0x2009, 0xc634, 0x2104, 0x8000,
+	0x200a, 0xa084, 0xfff0, 0x0120, 0x200b, 0x0000, 0x080c, 0x2ac1,
+	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, 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,
+	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,
+	0x0000, 0x601b, 0x0001, 0x601f, 0x0000, 0x2061, 0xc900, 0x6003,
+	0x514c, 0x6007, 0x4f47, 0x600b, 0x4943, 0x600f, 0x2020, 0x2001,
+	0xc628, 0x2003, 0x0000, 0x0005, 0x04a0, 0x2011, 0x0000, 0x81ff,
+	0x0570, 0xa186, 0x0001, 0x1148, 0x2031, 0x8fff, 0x2039, 0xe601,
+	0x2021, 0x0100, 0x2029, 0xe600, 0x00e8, 0xa186, 0x0002, 0x1118,
+	0x2011, 0x0000, 0x00b8, 0xa186, 0x0005, 0x1118, 0x2011, 0x0001,
+	0x0088, 0xa186, 0x0009, 0x1118, 0x2011, 0x0002, 0x0058, 0xa186,
+	0x000a, 0x1118, 0x2011, 0x0002, 0x0028, 0xa186, 0x0055, 0x1110,
+	0x2011, 0x0003, 0x3800, 0xa084, 0xfffc, 0xa205, 0x20c0, 0x0804,
+	0x104d, 0xa00e, 0x2011, 0x0003, 0x2019, 0x14a8, 0x0804, 0x14f9,
+	0x2019, 0xaaaa, 0x2061, 0xffff, 0x2c14, 0x2362, 0xe000, 0xe000,
+	0x2c04, 0xa306, 0x2262, 0x1110, 0xc1b5, 0xc1a5, 0x2011, 0x0000,
+	0x2019, 0x14bb, 0x04f0, 0x2019, 0xaaaa, 0x2061, 0xffff, 0x2c14,
+	0x2362, 0xe000, 0xe000, 0x2c1c, 0x2061, 0x7fff, 0xe000, 0xe000,
+	0x2c04, 0x2061, 0xffff, 0x2262, 0xa306, 0x0110, 0xc18d, 0x0008,
+	0xc185, 0x2011, 0x0002, 0x2019, 0x14d6, 0x0418, 0x2061, 0xffff,
+	0x2019, 0xaaaa, 0x2c14, 0x2362, 0xe000, 0xe000, 0x2c04, 0x2262,
+	0xa306, 0x1180, 0x2c14, 0x2362, 0xe000, 0xe000, 0x2c1c, 0x2061,
+	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, 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,
+	0x0000, 0x7818, 0xd084, 0x1de8, 0x001e, 0x792e, 0x000e, 0x782a,
+	0x000e, 0x7826, 0x3900, 0x783a, 0x7823, 0x8002, 0x781b, 0x0001,
+	0x2091, 0x5000, 0x0126, 0x0156, 0x0146, 0x20a9, 0x0010, 0x20a1,
+	0xca54, 0x2091, 0x2000, 0x40a1, 0x20a9, 0x0010, 0x2091, 0x2200,
+	0x40a1, 0x20a9, 0x0010, 0x2091, 0x2400, 0x40a1, 0x20a9, 0x0010,
+	0x2091, 0x2600, 0x40a1, 0x20a9, 0x0010, 0x2091, 0x2800, 0x40a1,
+	0x014e, 0x015e, 0x012e, 0x2079, 0xc600, 0x7803, 0x0005, 0x2091,
+	0x4080, 0x04c9, 0x0cf8, 0x0005, 0x0006, 0x080c, 0x15a7, 0x1518,
+	0x00f6, 0x2079, 0xc624, 0x2f04, 0x8000, 0x207a, 0xa082, 0x000f,
+	0x0258, 0xa006, 0x207a, 0x2079, 0xc626, 0x2f04, 0xa084, 0x0001,
+	0xa086, 0x0001, 0x207a, 0x0070, 0x2079, 0xc626, 0x2f7c, 0x8fff,
+	0x1128, 0x2001, 0x0c03, 0x2003, 0x0040, 0x0020, 0x2001, 0x0c03,
+	0x2003, 0x00c0, 0x00fe, 0x000e, 0x0005, 0x0409, 0x1120, 0x2001,
+	0x0c03, 0x2003, 0x0080, 0x0005, 0x00d1, 0x1120, 0x2001, 0x0c03,
+	0x2003, 0x0040, 0x0005, 0x0006, 0x0091, 0x1178, 0x2001, 0x0c03,
+	0x2003, 0x0040, 0x2009, 0x0fff, 0x00a1, 0x2001, 0x0c03, 0x2003,
+	0x0080, 0x2009, 0x0fff, 0x0069, 0x0c88, 0x000e, 0x0005, 0x00c6,
+	0x2061, 0x0c00, 0x2c04, 0xa084, 0x00ff, 0xa086, 0x00aa, 0x00ce,
+	0x0005, 0x0156, 0x0126, 0xa18c, 0x0fff, 0x21a8, 0x1d04, 0x15b6,
+	0x2091, 0x6000, 0x1f04, 0x15b6, 0x012e, 0x015e, 0x0005, 0x2071,
+	0xc600, 0x7160, 0x712e, 0x2021, 0x0001, 0xa190, 0x0030, 0xa298,
+	0x0030, 0x0240, 0x7064, 0xa302, 0x1228, 0x220a, 0x2208, 0x2310,
+	0x8420, 0x0ca8, 0x3800, 0xd08c, 0x0148, 0x7064, 0xa086, 0xc600,
+	0x0128, 0x7067, 0xc600, 0x2011, 0x1000, 0x0c48, 0x200b, 0x0000,
+	0x74b2, 0x74b6, 0x70eb, 0x0010, 0x0005, 0x00e6, 0x0126, 0x2091,
+	0x8000, 0x2071, 0xc600, 0x70b4, 0x0016, 0x2008, 0x70e8, 0xa16a,
+	0x2100, 0x001e, 0x0268, 0x8001, 0x70b6, 0x702c, 0x2068, 0x2d04,
+	0x702e, 0x206b, 0x0000, 0x6807, 0x0000, 0x012e, 0x00ee, 0x0005,
+	0xa06e, 0x0cd8, 0x00e6, 0x2071, 0xc600, 0x0126, 0x2091, 0x8000,
+	0x70b4, 0x8001, 0x0260, 0x70b6, 0x702c, 0x2068, 0x2d04, 0x702e,
+	0x206b, 0x0000, 0x6807, 0x0000, 0x012e, 0x00ee, 0x0005, 0xa06e,
+	0x0cd8, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071, 0xc600, 0x702c,
+	0x206a, 0x2d00, 0x702e, 0x70b4, 0x8000, 0x70b6, 0x012e, 0x00ee,
+	0x0005, 0x8dff, 0x0138, 0x6804, 0x6807, 0x0000, 0x0006, 0x0c49,
+	0x00de, 0x0cb8, 0x0005, 0x00e6, 0x2071, 0xc600, 0x70b4, 0xa08a,
+	0x0010, 0xa00d, 0x00ee, 0x0005, 0x00e6, 0x2071, 0xc959, 0x7007,
+	0x0000, 0x701b, 0x0000, 0x701f, 0x0000, 0x2071, 0x0000, 0x7010,
+	0xa085, 0x8004, 0x7012, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x00e6, 0x2270, 0x700b, 0x0000, 0x2071, 0xc959, 0x7018, 0xa088,
+	0xc962, 0x220a, 0x8000, 0xa084, 0x0007, 0x701a, 0x7004, 0xa005,
+	0x1128, 0x00f6, 0x2079, 0x0010, 0x0089, 0x00fe, 0x00ee, 0x012e,
+	0x0005, 0x00e6, 0x2071, 0xc959, 0x7004, 0xa005, 0x1128, 0x00f6,
+	0x2079, 0x0010, 0x0019, 0x00fe, 0x00ee, 0x0005, 0x7000, 0x0002,
+	0x1680, 0x16e4, 0x1701, 0x1701, 0x23e7, 0x16e4, 0x1701, 0x16e4,
+	0x7018, 0x711c, 0xa106, 0x1118, 0x7007, 0x0000, 0x0005, 0x00d6,
+	0xa180, 0xc962, 0x2004, 0x700a, 0x2068, 0x8108, 0xa18c, 0x0007,
+	0x711e, 0x7803, 0x0026, 0x6824, 0x7832, 0x6828, 0x7836, 0x682c,
+	0x783a, 0x6830, 0x783e, 0x6810, 0x700e, 0x680c, 0x7016, 0x6804,
+	0x00de, 0xd084, 0x0120, 0x7007, 0x0001, 0x0029, 0x0005, 0x7007,
+	0x0002, 0x00b1, 0x0005, 0x0016, 0x0026, 0x710c, 0x2011, 0x0040,
+	0xa182, 0x0040, 0x1210, 0x2110, 0xa006, 0x700e, 0x7212, 0x8203,
+	0x7822, 0x7803, 0x0020, 0x7803, 0x0041, 0x002e, 0x001e, 0x0005,
+	0x0016, 0x0026, 0x0136, 0x0146, 0x0156, 0x7014, 0x2098, 0x20a1,
+	0x0014, 0x7803, 0x0026, 0x710c, 0x2011, 0x0040, 0xa182, 0x0040,
+	0x1210, 0x2110, 0xa006, 0x700e, 0x22a8, 0x53a6, 0x8203, 0x7822,
+	0x7803, 0x0020, 0x3300, 0x7016, 0x7803, 0x0001, 0x015e, 0x014e,
+	0x013e, 0x002e, 0x001e, 0x0005, 0x0136, 0x0146, 0x0156, 0x2099,
+	0xc71a, 0x20a1, 0x0018, 0x20a9, 0x0008, 0x53a3, 0x7803, 0x0020,
+	0x0126, 0x2091, 0x8000, 0x7803, 0x0041, 0x7007, 0x0003, 0x7000,
+	0xc084, 0x7002, 0x700b, 0xc715, 0x012e, 0x015e, 0x014e, 0x013e,
+	0x0005, 0x0136, 0x0146, 0x0156, 0x2001, 0xc749, 0x209c, 0x20a1,
+	0x0014, 0x7803, 0x0026, 0x2001, 0xc74a, 0x20ac, 0x53a6, 0x2099,
+	0xc74b, 0x20a1, 0x0018, 0x20a9, 0x0008, 0x53a3, 0x7803, 0x0020,
+	0x0126, 0x2091, 0x8000, 0x7803, 0x0001, 0x7007, 0x0004, 0x7000,
+	0xc08c, 0x7002, 0x700b, 0xc746, 0x012e, 0x015e, 0x014e, 0x013e,
+	0x0005, 0x0016, 0x00e6, 0x2071, 0xc959, 0x00f6, 0x2079, 0x0010,
+	0x7904, 0x7803, 0x0002, 0xd1fc, 0x0120, 0xa18c, 0x0700, 0x7004,
+	0x0023, 0x00fe, 0x00ee, 0x001e, 0x0005, 0x1676, 0x1745, 0x1773,
+	0x179d, 0x17cd, 0x2404, 0x1744, 0x0cf8, 0xa18c, 0x0700, 0x1528,
+	0x0136, 0x0146, 0x0156, 0x7014, 0x20a0, 0x2099, 0x0014, 0x7803,
+	0x0040, 0x7010, 0x20a8, 0x53a5, 0x3400, 0x7016, 0x015e, 0x014e,
+	0x013e, 0x700c, 0xa005, 0x0570, 0x7830, 0x7832, 0x7834, 0x7836,
+	0x080c, 0x16ab, 0x0005, 0x7008, 0xa080, 0x0002, 0x2003, 0x0100,
+	0x7007, 0x0000, 0x080c, 0x1676, 0x0005, 0x7008, 0xa080, 0x0002,
+	0x2003, 0x0200, 0x0ca8, 0xa18c, 0x0700, 0x1150, 0x700c, 0xa005,
+	0x0188, 0x7830, 0x7832, 0x7834, 0x7836, 0x080c, 0x16c0, 0x0005,
+	0x7008, 0xa080, 0x0002, 0x2003, 0x0200, 0x7007, 0x0000, 0x080c,
+	0x1676, 0x0005, 0x00d6, 0x7008, 0x2068, 0x7830, 0x6826, 0x7834,
+	0x682a, 0x7838, 0x682e, 0x783c, 0x6832, 0x680b, 0x0100, 0x00de,
+	0x7007, 0x0000, 0x080c, 0x1676, 0x0005, 0xa18c, 0x0700, 0x1540,
+	0x0136, 0x0146, 0x0156, 0x2001, 0xc718, 0x2004, 0xa080, 0x000d,
+	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, 0x62db, 0x080c, 0x1676, 0x0005,
+	0x2011, 0x8003, 0x080c, 0x4096, 0x0cf8, 0xa18c, 0x0700, 0x1148,
+	0x2001, 0xc748, 0x2003, 0x0100, 0x7007, 0x0000, 0x080c, 0x1676,
+	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, 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,
+	0xa080, 0x23c7, 0x2005, 0x6832, 0x6858, 0x0440, 0xa18c, 0x00ff,
+	0xa186, 0x0015, 0x1990, 0x684c, 0xd0ac, 0x0978, 0x6804, 0x681a,
+	0xa080, 0x000d, 0x2004, 0xa084, 0x000f, 0xa080, 0x23c7, 0x2005,
+	0x6832, 0xa006, 0x682e, 0x682a, 0x6858, 0x0080, 0x684c, 0xd0ac,
+	0x0904, 0x17fd, 0xa006, 0x682e, 0x682a, 0x6858, 0xa18c, 0x000f,
+	0xa188, 0x23c7, 0x210d, 0x6932, 0x2d08, 0x691a, 0x6826, 0x684c,
+	0xc0dd, 0x684e, 0xa006, 0x680a, 0x697c, 0x6912, 0x6980, 0x6916,
+	0x0005, 0x684c, 0xd0ac, 0x090c, 0x1519, 0x6833, 0x23c4, 0x2d08,
+	0x691a, 0x6858, 0x8001, 0x6826, 0x684c, 0xc0dd, 0x684e, 0xa006,
+	0x680a, 0x682e, 0x682a, 0x697c, 0x6912, 0x6980, 0x6916, 0x0005,
+	0x20e1, 0x0007, 0x20e1, 0x2000, 0x2001, 0x020a, 0x2004, 0x82ff,
+	0x01e8, 0xa280, 0x0004, 0x00d6, 0x206c, 0x684c, 0xd0dc, 0x1190,
+	0xa280, 0x0007, 0x2004, 0xa086, 0x000a, 0x1110, 0x0891, 0x0010,
+	0x080c, 0x17f1, 0x0138, 0x00de, 0xa280, 0x0000, 0x2003, 0x0002,
+	0xa016, 0x0020, 0x6808, 0x8000, 0x680a, 0x00de, 0x0126, 0x0046,
+	0x0036, 0x0026, 0x2091, 0x2200, 0x002e, 0x003e, 0x004e, 0x7000,
+	0xa005, 0x0178, 0x710c, 0x220a, 0x8108, 0x230a, 0x8108, 0x240a,
+	0x8108, 0xa182, 0xc992, 0x0210, 0x2009, 0xc977, 0x710e, 0x012e,
+	0x0005, 0x7206, 0x2001, 0x18af, 0x0006, 0x2260, 0x0804, 0x19d3,
+	0x0126, 0x0026, 0x0036, 0x00c6, 0x0006, 0x2091, 0x2200, 0x000e,
+	0x004e, 0x003e, 0x002e, 0x00d6, 0x00c6, 0x2460, 0x6110, 0x2168,
+	0x6a62, 0x6b5e, 0xa005, 0x0904, 0x1910, 0x6808, 0xa005, 0x0904,
+	0x1947, 0x7000, 0xa005, 0x1108, 0x0488, 0x700c, 0x7110, 0xa106,
+	0x1904, 0x194f, 0x7004, 0xa406, 0x1548, 0x2001, 0x0005, 0x2004,
+	0xd08c, 0x0168, 0x0046, 0x080c, 0x1b83, 0x004e, 0x2460, 0x6010,
+	0xa080, 0x0002, 0x2004, 0xa005, 0x0904, 0x1947, 0x0c10, 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, 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,
+	0xa080, 0x0002, 0x2004, 0xa005, 0x01d0, 0x0c28, 0x2001, 0x0207,
+	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, 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,
+	0x0003, 0x0904, 0x19ab, 0x7804, 0xd0fc, 0x15c8, 0x20e1, 0x6000,
+	0x2011, 0x0032, 0x2001, 0x0208, 0x200c, 0x2001, 0x0209, 0x2004,
+	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, 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,
+	0x015e, 0x005e, 0x004e, 0x003e, 0x002e, 0x00ee, 0x00fe, 0x0005,
+	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, 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,
+	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, 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, 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,
+	0x1904, 0x1a12, 0x0804, 0x19e0, 0x7003, 0x0000, 0x0005, 0x8aff,
+	0x0904, 0x1b5d, 0xa03e, 0x2730, 0xc9fc, 0x6850, 0xd0fc, 0x11b8,
+	0xd0f4, 0x1538, 0x00d6, 0x2805, 0xac68, 0x2900, 0x0002, 0x1acb,
+	0x1a98, 0x1a98, 0x1acb, 0x1ace, 0x1ac3, 0x1acb, 0x1a98, 0x1acb,
+	0x1aa9, 0x1aa9, 0x1acb, 0x1ace, 0x1acb, 0x1abb, 0x1aa9, 0x7803,
+	0x0004, 0xc0fc, 0x6852, 0x6b6c, 0x6a70, 0x6d1c, 0x6c20, 0x00d6,
+	0xd99c, 0x0904, 0x1b1e, 0x2805, 0xac68, 0x6f08, 0x6e0c, 0x0804,
+	0x1b1f, 0xc0f4, 0x6852, 0x6b6c, 0x6a70, 0x00d6, 0x0804, 0x1b2c,
+	0x2d10, 0x00de, 0x00d6, 0x6834, 0x2268, 0xa084, 0x00ff, 0xa096,
+	0x0024, 0x0904, 0x1afe, 0x6b08, 0x6a0c, 0x6d00, 0x6c04, 0x0804,
+	0x1b1e, 0x2d10, 0x00de, 0x00d6, 0x6834, 0x2268, 0xa084, 0x00ff,
+	0xa096, 0x002c, 0x0540, 0x6b10, 0x6a14, 0x6d00, 0x6c04, 0x6f08,
+	0x6e0c, 0x0804, 0x1b1f, 0x00de, 0x00d6, 0x6834, 0xa084, 0x00ff,
+	0xa086, 0x001e, 0x1140, 0x00de, 0x080c, 0x2389, 0x1904, 0x1a5f,
+	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, 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, 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,
+	0x7a26, 0x7d32, 0x7c36, 0x7f3a, 0x7e3e, 0x731a, 0x721e, 0x7522,
+	0x7426, 0x772a, 0x762e, 0x7902, 0x7100, 0x8108, 0x7102, 0x00de,
+	0x6828, 0xa300, 0x682a, 0x682c, 0xa201, 0x682e, 0x8109, 0x2d08,
+	0x1500, 0xd9fc, 0x0160, 0xc9fc, 0x080c, 0x2389, 0x01e8, 0x2805,
+	0xac68, 0x6800, 0xa506, 0x11c0, 0x6804, 0xa406, 0x00a8, 0xc9fc,
+	0x080c, 0x2389, 0x0188, 0x2805, 0xac68, 0x6800, 0xa506, 0x1160,
+	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, 0xacaa, 0x0170, 0x6808, 0x8001,
+	0x680a, 0x697c, 0x6912, 0x6980, 0x6916, 0x682b, 0xffff, 0x682f,
+	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, 0x769d, 0x1508, 0xd1dc, 0x1598, 0x6864,
+	0x8000, 0x6866, 0xd19c, 0x0140, 0x7004, 0x2060, 0x2009, 0x0102,
+	0x080c, 0x962c, 0x0804, 0x1cbc, 0x8aff, 0x0130, 0x2009, 0x0001,
+	0x080c, 0x1a5f, 0x0804, 0x1dec, 0x7004, 0x2060, 0x080c, 0x24e0,
+	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, 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, 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, 0x962c,
+	0x7000, 0xa086, 0x0004, 0x0904, 0x1dec, 0x7003, 0x0000, 0x080c,
+	0x19c0, 0x0804, 0x1dec, 0x0056, 0x7d0c, 0xd5bc, 0x1110, 0x080c,
+	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,
+	0x6808, 0x8001, 0x680a, 0x04c0, 0x7818, 0x6812, 0x7a1c, 0x6a16,
+	0xd19c, 0x0160, 0xa205, 0x0150, 0x7004, 0xa080, 0x0007, 0x2004,
+	0xa084, 0xfffd, 0xa086, 0x0008, 0x1904, 0x1be2, 0x684c, 0xc0f5,
+	0x684e, 0x7814, 0xa005, 0x1520, 0x7003, 0x0000, 0x6808, 0x8001,
+	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, 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, 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,
+	0x0888, 0x1148, 0x8aff, 0x0904, 0x1dec, 0x2009, 0x0001, 0x080c,
+	0x1a5f, 0x0804, 0x1dec, 0x7818, 0x6812, 0x7a1c, 0x6a16, 0xa205,
+	0x0904, 0x1c96, 0x7803, 0x0004, 0x7003, 0x0000, 0xd1bc, 0x1904,
+	0x1d73, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0029, 0x1118, 0xd19c,
+	0x1904, 0x1c96, 0x0026, 0x0036, 0x7c20, 0x7d24, 0x7e30, 0x7f34,
+	0x7818, 0x6812, 0x781c, 0x6816, 0x2001, 0x0201, 0x2004, 0xa005,
+	0x0140, 0x7808, 0xd0ec, 0x1128, 0x7803, 0x0009, 0x7003, 0x0004,
+	0x0020, 0x0016, 0x080c, 0x1df0, 0x001e, 0x6b28, 0x6a2c, 0x080c,
+	0x239f, 0x00d6, 0x2805, 0xac68, 0x6034, 0xd09c, 0x1128, 0x6808,
+	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, 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,
+	0x1904, 0x1b8b, 0x7818, 0x6812, 0x7c1c, 0x6c16, 0xa405, 0x1120,
+	0x7803, 0x0002, 0x0804, 0x1c96, 0x7520, 0x7424, 0x7728, 0x762c,
+	0x7018, 0xa528, 0x701c, 0xa421, 0xa7b9, 0x0000, 0xa6b1, 0x0000,
+	0x7830, 0xa506, 0x1150, 0x7834, 0xa406, 0x1138, 0x7838, 0xa706,
+	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, 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, 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,
+	0x6870, 0x7826, 0x701e, 0x681c, 0x7832, 0x7022, 0x6820, 0x7836,
+	0x7026, 0x6818, 0x2060, 0x6034, 0xd09c, 0x0168, 0x6830, 0x2005,
+	0x00d6, 0xac68, 0x6808, 0x783a, 0x702a, 0x680c, 0x783e, 0x702e,
+	0x00de, 0x0804, 0x1e8e, 0xa006, 0x783a, 0x783e, 0x702a, 0x702e,
+	0x0804, 0x1e8e, 0x8108, 0x2104, 0xa005, 0x1904, 0x1e94, 0x6b2c,
+	0xa306, 0x1904, 0x1e94, 0x8108, 0x2104, 0xa005, 0x15e8, 0x6a28,
+	0xa206, 0x15d0, 0x6850, 0xc0f5, 0x6852, 0x6830, 0x2005, 0x6918,
+	0xa160, 0xa180, 0x000d, 0x2004, 0xd09c, 0x11a0, 0x6008, 0x7822,
+	0x701a, 0x686e, 0x600c, 0x7826, 0x701e, 0x6872, 0x6000, 0x7832,
+	0x7022, 0x6004, 0x7836, 0x7026, 0xa006, 0x783a, 0x783e, 0x702a,
+	0x702e, 0x00a0, 0x6010, 0x7822, 0x701a, 0x686e, 0x6014, 0x7826,
+	0x701e, 0x6872, 0x6000, 0x7832, 0x7022, 0x6004, 0x7836, 0x7026,
+	0x6008, 0x783a, 0x702a, 0x600c, 0x783e, 0x702e, 0x6810, 0x781a,
+	0x6814, 0x781e, 0x7803, 0x0011, 0x00ce, 0x00de, 0x0005, 0x2011,
+	0x0201, 0x2009, 0x003c, 0x2204, 0xa005, 0x1118, 0x8109, 0x1dd8,
+	0x0005, 0x0005, 0x0ca1, 0x0118, 0x780c, 0xd0a4, 0x0120, 0x00d9,
+	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, 0x5f3b, 0x11b8, 0x2001,
+	0x0160, 0x2003, 0x0000, 0x2001, 0x0138, 0x2003, 0x0000, 0x2011,
+	0x00c8, 0xe000, 0xe000, 0x8211, 0x1de0, 0x0481, 0x0066, 0x2031,
+	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,
+	0x7112, 0x0c50, 0x2001, 0x015d, 0x2003, 0x0000, 0x2001, 0x0160,
+	0x2502, 0x2001, 0x0138, 0x2202, 0x00ce, 0x0005, 0x080c, 0x2b06,
+	0x20e1, 0x9028, 0x2001, 0x015d, 0x2003, 0x0000, 0x00e6, 0x00c6,
+	0x0016, 0x2071, 0xc96a, 0x700c, 0x7110, 0xa106, 0x0190, 0x2104,
+	0xa005, 0x0130, 0x2060, 0x6010, 0x2060, 0x6008, 0x8001, 0x600a,
+	0xa188, 0x0003, 0xa182, 0xc992, 0x0210, 0x2009, 0xc977, 0x7112,
+	0x0c50, 0x001e, 0x00ce, 0x00ee, 0x0005, 0x2001, 0x0138, 0x2014,
+	0x2003, 0x0000, 0x2001, 0x0160, 0x202c, 0x2003, 0x0000, 0x080c,
+	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,
+	0x00e6, 0x2071, 0x0200, 0x7808, 0xa084, 0xf000, 0xa10d, 0x0869,
+	0x2001, 0x0105, 0x2004, 0xa084, 0x0003, 0x1130, 0x2001, 0xc992,
+	0x2004, 0xa086, 0x0000, 0x0548, 0xa026, 0x2019, 0xf000, 0x8319,
+	0x1148, 0x2001, 0x012b, 0x2003, 0x95f5, 0x2001, 0x0129, 0x2003,
+	0x95f5, 0x00d8, 0x2001, 0x0105, 0x2004, 0xa084, 0x0003, 0x1130,
+	0x2001, 0xc992, 0x2004, 0xa086, 0x0000, 0x0178, 0x2001, 0x0132,
+	0x2004, 0xa436, 0x0110, 0x2020, 0x0c00, 0x2001, 0x0021, 0x2004,
+	0xd0fc, 0x09e8, 0x080c, 0x222c, 0x08c0, 0x20e1, 0x7000, 0x7324,
+	0x7420, 0x7028, 0x7028, 0x7426, 0x7037, 0x0001, 0x810f, 0x712e,
+	0x702f, 0x0100, 0x7037, 0x0008, 0x7326, 0x7422, 0x2001, 0x0160,
+	0x2502, 0x2001, 0x0138, 0x2202, 0x00ee, 0x0005, 0x0026, 0x2001,
+	0x015d, 0x2003, 0x0000, 0x7908, 0xa18c, 0x0fff, 0xa182, 0x0ffd,
+	0x0210, 0x2009, 0x0000, 0xa190, 0x0007, 0xa294, 0x1ff8, 0x8214,
+	0x8214, 0x8214, 0x2001, 0x020a, 0x82ff, 0x0140, 0x20e1, 0x6000,
+	0x200c, 0x200c, 0x200c, 0x200c, 0x8211, 0x1dd0, 0x20e1, 0x7000,
+	0x200c, 0x200c, 0x7003, 0x0000, 0x20e1, 0x6000, 0x2001, 0x0208,
+	0x200c, 0x2001, 0x0209, 0x2004, 0xa106, 0x0158, 0x080c, 0x1e97,
+	0x0130, 0x7908, 0xd1ec, 0x1128, 0x790c, 0xd1a4, 0x0960, 0x080c,
+	0x1ec3, 0xa006, 0x002e, 0x0005, 0x00f6, 0x00e6, 0x0016, 0x0026,
+	0x2071, 0xc96a, 0x2079, 0x0030, 0x2011, 0x0050, 0x7000, 0xa086,
+	0x0000, 0x01a8, 0x8211, 0x0188, 0x2001, 0x0005, 0x2004, 0xd08c,
+	0x0dc8, 0x7904, 0xa18c, 0x0780, 0x0016, 0x080c, 0x1b83, 0x001e,
+	0x81ff, 0x1118, 0x2011, 0x0050, 0x0c48, 0xa085, 0x0001, 0x002e,
+	0x001e, 0x00ee, 0x00fe, 0x0005, 0x7803, 0x0004, 0x2009, 0x0064,
+	0x7804, 0xd0ac, 0x0904, 0x2060, 0x8109, 0x1dd0, 0x2009, 0x0100,
+	0x210c, 0xa18a, 0x0003, 0x0a0c, 0x1519, 0x080c, 0x2333, 0x00e6,
+	0x00f6, 0x2071, 0xc959, 0x2079, 0x0010, 0x7004, 0xa086, 0x0000,
+	0x0538, 0x7800, 0x0006, 0x7820, 0x0006, 0x7830, 0x0006, 0x7834,
+	0x0006, 0x7838, 0x0006, 0x783c, 0x0006, 0x7803, 0x0004, 0xe000,
+	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, 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,
+	0x207c, 0x20bf, 0x209e, 0x208d, 0x080c, 0x1519, 0x2100, 0xa084,
+	0x00ff, 0xa086, 0x0013, 0x0904, 0x20d8, 0x2100, 0xa084, 0x00ff,
+	0xa086, 0x001b, 0x0904, 0x20d8, 0x0c78, 0x684c, 0xd0b4, 0x0904,
+	0x21e9, 0x6860, 0x682e, 0x6816, 0x685c, 0x682a, 0x6812, 0x687c,
+	0x680a, 0x6880, 0x680e, 0x6958, 0x0804, 0x20e0, 0x6834, 0xa084,
+	0x00ff, 0xa086, 0x001e, 0x19c0, 0x684c, 0xd0b4, 0x0904, 0x21e9,
+	0x6860, 0x682e, 0x6816, 0x685c, 0x682a, 0x6812, 0x687c, 0x680a,
+	0x6880, 0x680e, 0x6804, 0x681a, 0xa080, 0x000d, 0x2004, 0xa084,
+	0x000f, 0xa080, 0x23c7, 0x2005, 0x6832, 0x6958, 0x0450, 0xa18c,
+	0x00ff, 0xa186, 0x0015, 0x1548, 0x684c, 0xd0b4, 0x0904, 0x21e9,
+	0x6804, 0x681a, 0xa080, 0x000d, 0x2004, 0xa084, 0x000f, 0xa080,
+	0x23c7, 0x2005, 0x6832, 0x6958, 0xa006, 0x682e, 0x682a, 0x0088,
+	0x684c, 0xd0b4, 0x0904, 0x1b5e, 0x6958, 0xa006, 0x682e, 0x682a,
+	0x2d00, 0x681a, 0x6834, 0xa084, 0x000f, 0xa080, 0x23c7, 0x2005,
+	0x6832, 0x6926, 0x684c, 0xc0dd, 0x684e, 0x00de, 0x0005, 0x00f6,
+	0x2079, 0x0020, 0x7804, 0xd0fc, 0x190c, 0x222c, 0x00e6, 0x00d6,
+	0x2071, 0xc992, 0x7000, 0xa005, 0x1904, 0x2155, 0x00c6, 0x7206,
+	0xa280, 0x0004, 0x205c, 0x7004, 0x2068, 0x7803, 0x0004, 0x6818,
+	0x00d6, 0x2068, 0x686c, 0x7812, 0x6890, 0x00f6, 0x20e1, 0x9040,
+	0x2079, 0x0200, 0x781a, 0x2079, 0x0100, 0x8004, 0x78d6, 0x00fe,
+	0x00de, 0x2b68, 0x6824, 0x2050, 0x6818, 0x2060, 0x6830, 0x2040,
+	0x6034, 0xa0cc, 0x000f, 0x6908, 0x791a, 0x7116, 0x680c, 0x781e,
+	0x701a, 0xa006, 0x700e, 0x7012, 0x7004, 0x692c, 0x6814, 0xa106,
+	0x1120, 0x6928, 0x6810, 0xa106, 0x0158, 0x0036, 0x0046, 0x6b14,
+	0x6c10, 0x080c, 0x241b, 0x004e, 0x003e, 0x0110, 0x00ce, 0x00a8,
+	0x8aff, 0x1120, 0x00ce, 0xa085, 0x0001, 0x0078, 0x0126, 0x2091,
+	0x8000, 0x2079, 0x0020, 0x2009, 0x0001, 0x0059, 0x0118, 0x2009,
+	0x0001, 0x0039, 0x012e, 0x00ce, 0xa006, 0x00de, 0x00ee, 0x00fe,
+	0x0005, 0x0076, 0x0066, 0x0056, 0x0046, 0x0036, 0x0026, 0x8aff,
+	0x0904, 0x21e2, 0x700c, 0x7214, 0xa23a, 0x7010, 0x7218, 0xa203,
+	0x0a04, 0x21e1, 0xa705, 0x0904, 0x21e1, 0xa03e, 0x2730, 0x6850,
+	0xd0fc, 0x11a8, 0x00d6, 0x2805, 0xac68, 0x2900, 0x0002, 0x21b0,
+	0x2195, 0x2195, 0x21b0, 0x21b0, 0x21a9, 0x21b0, 0x2195, 0x21b0,
+	0x219a, 0x219a, 0x21b0, 0x21b0, 0x21b0, 0x21a1, 0x219a, 0xc0fc,
+	0x6852, 0x6b6c, 0x6a70, 0x6d1c, 0x6c20, 0xd99c, 0x05c8, 0x00d6,
+	0x2805, 0xac68, 0x6f08, 0x6e0c, 0x0490, 0x6b08, 0x6a0c, 0x6d00,
+	0x6c04, 0x0468, 0x6b10, 0x6a14, 0x6d00, 0x6c04, 0x6f08, 0x6e0c,
+	0x0430, 0x00de, 0x00d6, 0x6834, 0xa084, 0x00ff, 0xa086, 0x001e,
+	0x1138, 0x00de, 0x080c, 0x2389, 0x1904, 0x215f, 0xa00e, 0x0490,
+	0x2d10, 0x00de, 0x00d6, 0x6834, 0xa084, 0x00ff, 0xa086, 0x0013,
+	0x2268, 0x09d8, 0x2d10, 0x00de, 0x00d6, 0x6834, 0xa084, 0x00ff,
+	0xa086, 0x001b, 0x2268, 0x09b0, 0x00de, 0x080c, 0x1519, 0x00de,
+	0x7b22, 0x7a26, 0x7d32, 0x7c36, 0x7f3a, 0x7e3e, 0x7902, 0x7000,
+	0x8000, 0x7002, 0x6828, 0xa300, 0x682a, 0x682c, 0xa201, 0x682e,
+	0x700c, 0xa300, 0x700e, 0x7010, 0xa201, 0x7012, 0x080c, 0x2389,
+	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, 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,
+	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,
+	0x22e4, 0x8001, 0x7002, 0xd19c, 0x1170, 0x8aff, 0x05d0, 0x2009,
+	0x0001, 0x080c, 0x2159, 0x0904, 0x22e6, 0x2009, 0x0001, 0x080c,
+	0x2159, 0x0804, 0x22e6, 0x7803, 0x0004, 0xd194, 0x0148, 0x6850,
+	0xc0fc, 0x6852, 0x8aff, 0x11d8, 0x684c, 0xc0f5, 0x684e, 0x00b8,
+	0x0026, 0x0036, 0x6b28, 0x6a2c, 0x7820, 0x686e, 0xa31a, 0x7824,
+	0x6872, 0xa213, 0x7830, 0x681e, 0x7834, 0x6822, 0x6b2a, 0x6a2e,
+	0x003e, 0x002e, 0x080c, 0x239f, 0x6850, 0xc0fd, 0x6852, 0x2a00,
+	0x6826, 0x2c00, 0x681a, 0x2800, 0x6832, 0x7003, 0x0000, 0x0804,
+	0x22e6, 0x00f6, 0x0026, 0x781c, 0x0006, 0x7818, 0x0006, 0x2079,
+	0x0100, 0x7a14, 0xa284, 0x0184, 0xa085, 0x0012, 0x7816, 0x0036,
+	0x2019, 0x1000, 0x8319, 0x090c, 0x1519, 0x7820, 0xd0bc, 0x1dd0,
+	0x003e, 0x79c8, 0x000e, 0xa102, 0x001e, 0x0006, 0x0016, 0x79c4,
+	0x000e, 0xa103, 0x78c6, 0x000e, 0x78ca, 0xa284, 0x0184, 0xa085,
+	0x0012, 0x7816, 0x002e, 0x00fe, 0x7803, 0x0008, 0x7003, 0x0000,
+	0x0468, 0x8001, 0x7002, 0xd194, 0x0168, 0x7804, 0xd0fc, 0x1904,
+	0x223c, 0xd19c, 0x11f8, 0x8aff, 0x0508, 0x2009, 0x0001, 0x080c,
+	0x2159, 0x00e0, 0x0026, 0x0036, 0x6b28, 0x6a2c, 0x080c, 0x239f,
+	0x00d6, 0x2805, 0xac68, 0x6034, 0xd09c, 0x1128, 0x6808, 0xa31a,
+	0x680c, 0xa213, 0x0020, 0x6810, 0xa31a, 0x6814, 0xa213, 0x00de,
+	0x0804, 0x226c, 0x0804, 0x2268, 0x080c, 0x1519, 0x00ce, 0x00de,
+	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, 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,
+	0x7000, 0xa086, 0x0000, 0x19a8, 0x001e, 0x7803, 0x0004, 0x7804,
+	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, 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, 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,
+	0x7003, 0x0000, 0x2069, 0xc927, 0x6833, 0x0000, 0x683f, 0x0000,
+	0x08f8, 0x8840, 0x2805, 0xa005, 0x1170, 0x6004, 0xa005, 0x0168,
+	0x681a, 0x2060, 0x6034, 0xa084, 0x000f, 0xa080, 0x23c7, 0x2045,
+	0x88ff, 0x090c, 0x1519, 0x8a51, 0x0005, 0x2050, 0x0005, 0x8a50,
+	0x8841, 0x2805, 0xa005, 0x1190, 0x2c00, 0xad06, 0x0120, 0x6000,
+	0xa005, 0x1108, 0x2d00, 0x2060, 0x681a, 0x6034, 0xa084, 0x000f,
+	0xa080, 0x23d7, 0x2045, 0x88ff, 0x090c, 0x1519, 0x0005, 0x0000,
+	0x0011, 0x0015, 0x0019, 0x001d, 0x0021, 0x0025, 0x0029, 0x0000,
+	0x000f, 0x0015, 0x001b, 0x0021, 0x0027, 0x0000, 0x0000, 0x0000,
+	0x23bc, 0x23b8, 0x23bc, 0x23bc, 0x23c6, 0x0000, 0x23bc, 0x0000,
+	0x23c3, 0x23c0, 0x23c3, 0x23c3, 0x0000, 0x23c6, 0x23c3, 0x0000,
+	0x23be, 0x23be, 0x0000, 0x23be, 0x23c6, 0x0000, 0x23be, 0x0000,
+	0x23c4, 0x23c4, 0x0000, 0x23c4, 0x0000, 0x23c6, 0x23c4, 0x0136,
+	0x0146, 0x0156, 0x2099, 0xc765, 0x20a1, 0x0018, 0x20a9, 0x0008,
+	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, 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,
+	0xa986, 0x000f, 0x1120, 0x605c, 0xa422, 0x6060, 0xa31b, 0x2805,
+	0xa045, 0x1140, 0x0310, 0x0804, 0x24ac, 0x6004, 0xa065, 0x0904,
+	0x24ac, 0x0c18, 0x2805, 0xa005, 0x01a8, 0xac68, 0xd99c, 0x1128,
+	0x6808, 0xa422, 0x680c, 0xa31b, 0x0020, 0x6810, 0xa422, 0x6814,
+	0xa31b, 0x0620, 0x2300, 0xa405, 0x0150, 0x8a51, 0x0904, 0x24ac,
+	0x8840, 0x0c40, 0x6004, 0xa065, 0x0904, 0x24ac, 0x0830, 0x8a51,
+	0x0904, 0x24ac, 0x8840, 0x2805, 0xa005, 0x1158, 0x6004, 0xa065,
+	0x0904, 0x24ac, 0x6034, 0xa0cc, 0x000f, 0xa9c0, 0x23c7, 0x2805,
+	0x2040, 0x2b68, 0x6850, 0xc0fc, 0x6852, 0x0458, 0x8422, 0x8420,
+	0x831a, 0xa399, 0x0000, 0x00d6, 0x2b68, 0x6c6e, 0x6b72, 0x00de,
+	0xd99c, 0x1168, 0x6908, 0x2400, 0xa122, 0x690c, 0x2300, 0xa11b,
+	0x0a0c, 0x1519, 0x6800, 0xa420, 0x6804, 0xa319, 0x0060, 0x6910,
+	0x2400, 0xa122, 0x6914, 0x2300, 0xa11b, 0x0a0c, 0x1519, 0x6800,
+	0xa420, 0x6804, 0xa319, 0x2b68, 0x6c1e, 0x6b22, 0x6850, 0xc0fd,
+	0x6852, 0x2c00, 0x681a, 0x2800, 0x6832, 0x2a00, 0x6826, 0x000e,
+	0x000e, 0x000e, 0xa006, 0x0028, 0x008e, 0x009e, 0x00ae, 0xa085,
+	0x0001, 0x0005, 0x2001, 0x0005, 0x2004, 0xa084, 0x0007, 0x0002,
+	0x24c0, 0x24c1, 0x24c4, 0x24c7, 0x24cc, 0x24cf, 0x24d4, 0x24d9,
+	0x0005, 0x080c, 0x222c, 0x0005, 0x080c, 0x1b83, 0x0005, 0x080c,
+	0x1b83, 0x080c, 0x222c, 0x0005, 0x080c, 0x1729, 0x0005, 0x080c,
+	0x222c, 0x080c, 0x1729, 0x0005, 0x080c, 0x1b83, 0x080c, 0x1729,
+	0x0005, 0x080c, 0x1b83, 0x080c, 0x222c, 0x080c, 0x1729, 0x0005,
+	0x0006, 0x0016, 0x0156, 0x20a9, 0x0009, 0x2009, 0xc977, 0x2104,
+	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, 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,
+	0x080c, 0x25fb, 0x2009, 0x0004, 0x7912, 0x7817, 0x0004, 0x080c,
+	0x29a2, 0x781b, 0x0002, 0x20e1, 0x9080, 0x20e1, 0x4000, 0x20a9,
+	0x0080, 0x782f, 0x0000, 0x1f04, 0x2531, 0x20e1, 0x9080, 0x783b,
+	0x001f, 0x20e1, 0x8700, 0x012e, 0x0005, 0x0126, 0x2091, 0x2600,
+	0x781c, 0xd0a4, 0x190c, 0x25f8, 0xa084, 0x0007, 0x0002, 0x2561,
+	0x254f, 0x2552, 0x2555, 0x255a, 0x255c, 0x255e, 0x2560, 0x080c,
+	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, 0xa97a, 0x00ce, 0x04b8, 0x20e1,
+	0x9040, 0x04a0, 0xa184, 0x0030, 0x01e0, 0x6a00, 0xa286, 0x0003,
+	0x1108, 0x00a0, 0x080c, 0x5f3b, 0x1178, 0x2001, 0xc8e6, 0x2003,
+	0x0001, 0x2001, 0xc600, 0x2003, 0x0001, 0xa085, 0x0001, 0x080c,
+	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,
+	0x001e, 0x000e, 0x0005, 0x0016, 0x00e6, 0x00f6, 0x2071, 0xc600,
+	0x7128, 0x2001, 0xc8d8, 0x2102, 0x2001, 0xc8e0, 0x2102, 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, 0x2079, 0x0200, 0x7912,
+	0x7817, 0x0004, 0x080c, 0x29a2, 0x00fe, 0x00ee, 0x001e, 0x0005,
+	0x7938, 0x080c, 0x1519, 0x00e6, 0x0026, 0x2071, 0x0200, 0x20e1,
+	0x1000, 0x7220, 0x7028, 0x7020, 0xa206, 0x0de0, 0x20e1, 0x9010,
+	0x002e, 0x00ee, 0x0005, 0x20e1, 0xa000, 0x7837, 0x0001, 0x782f,
+	0x0000, 0x782f, 0x0000, 0x782f, 0x0000, 0x782f, 0x0000, 0x7837,
+	0x0005, 0x20a9, 0x0210, 0x7830, 0xd0bc, 0x1110, 0x1f04, 0x261b,
+	0x7837, 0x0001, 0x7837, 0x0000, 0xe000, 0xe000, 0x20e1, 0xa000,
+	0x0005, 0x0126, 0x2091, 0x2800, 0x2061, 0x0100, 0x2071, 0xc600,
+	0x6024, 0x6026, 0x6053, 0x0030, 0x080c, 0x29e1, 0x6050, 0xa084,
+	0xfe7f, 0x6052, 0x2009, 0x00ef, 0x6132, 0x6136, 0x080c, 0x29f1,
+	0x60e7, 0x0000, 0x61ea, 0x60e3, 0x0008, 0x604b, 0xf7f7, 0x6043,
+	0x0000, 0x602f, 0x0080, 0x602f, 0x0000, 0x6007, 0x0e9f, 0x601b,
+	0x001e, 0x600f, 0x00ff, 0x2001, 0xc8d4, 0x2003, 0x00ff, 0x602b,
+	0x002f, 0x012e, 0x0005, 0x2001, 0xc632, 0x2003, 0x0000, 0x2001,
+	0xc631, 0x2003, 0x0001, 0x0005, 0x0126, 0x2091, 0x2800, 0x0006,
+	0x0016, 0x0026, 0x6124, 0x0066, 0x2031, 0xc635, 0x2634, 0xa6b4,
+	0x0028, 0x006e, 0x11c0, 0x6020, 0xd0bc, 0x01a8, 0xd1bc, 0x0198,
+	0x783c, 0xa005, 0x0180, 0x00e6, 0x0006, 0x2070, 0x701c, 0xa086,
+	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, 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, 0x5f3b, 0x0578, 0x7000,
+	0xa086, 0x0003, 0x0198, 0x6024, 0xa084, 0x1800, 0x0178, 0x080c,
+	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, 0x5e73, 0x0804, 0x2910, 0xd1ac, 0x1518,
+	0x6024, 0xd0dc, 0x1170, 0xd0e4, 0x1188, 0xd0d4, 0x11a0, 0xd0cc,
+	0x0130, 0x708c, 0xa086, 0x0028, 0x1110, 0x080c, 0x60ca, 0x0804,
+	0x2910, 0x2001, 0xc8e6, 0x2003, 0x0000, 0x0048, 0x2001, 0xc8e6,
+	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, 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,
+	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, 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, 0x4096, 0x003e, 0x0804, 0x2819, 0x7034, 0xd08c,
+	0x1140, 0x2001, 0xc60c, 0x200c, 0xd1ac, 0x1904, 0x2819, 0xc1ad,
+	0x2102, 0x0036, 0x73cc, 0x2011, 0x8013, 0x080c, 0x4096, 0x003e,
+	0x7130, 0xc185, 0x7132, 0x2011, 0xc653, 0x220c, 0xd1a4, 0x01d0,
+	0x0016, 0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x7147, 0x2019,
+	0x000e, 0x080c, 0xc126, 0xa484, 0x00ff, 0xa080, 0x2f6e, 0x200d,
+	0xa18c, 0xff00, 0x810f, 0x8127, 0xa006, 0x2009, 0x000e, 0x080c,
+	0xc1a9, 0x001e, 0x0016, 0x2009, 0x0000, 0x2019, 0x0004, 0x080c,
+	0x2e19, 0x001e, 0x0070, 0x0156, 0x20a9, 0x007f, 0x2009, 0x0000,
+	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, 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, 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, 0x8c01, 0x0804,
+	0x290f, 0x2019, 0xc930, 0x2304, 0xa065, 0x0120, 0x2009, 0x0027,
+	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, 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, 0x8e92, 0x003e, 0x2019,
+	0xc936, 0x2304, 0xa065, 0x0150, 0x2009, 0x004f, 0x601c, 0xa086,
+	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,
+	0x1400, 0x6052, 0x20a9, 0x0366, 0x1d04, 0x292c, 0x2091, 0x6000,
+	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, 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,
+	0x4096, 0x00c8, 0x2011, 0x8012, 0x080c, 0x4096, 0x2001, 0xc672,
+	0x2004, 0xd0fc, 0x1180, 0x0036, 0x00c6, 0x080c, 0x2a3c, 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,
+	0x002e, 0x000e, 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, 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, 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,
+	0x0006, 0x2069, 0x0140, 0x6980, 0xa116, 0x0180, 0xa112, 0x1230,
+	0x8212, 0x8210, 0x22a8, 0x2001, 0x0402, 0x0018, 0x22a8, 0x2001,
+	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, 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, 0x7858, 0x2011, 0x0030, 0x2200, 0x8007,
+	0xa085, 0x004c, 0x78c2, 0x2009, 0x0204, 0x210c, 0x2200, 0xa100,
+	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,
+	0x002e, 0x001e, 0x000e, 0x012e, 0x0005, 0x0006, 0x2001, 0x0100,
+	0x2004, 0xa082, 0x0005, 0x000e, 0x0268, 0x2001, 0x0170, 0x200c,
+	0xa18c, 0x00ff, 0xa18e, 0x004c, 0x1128, 0x200c, 0xa18c, 0xff00,
+	0x810f, 0x0010, 0x2009, 0x0000, 0x2001, 0x0204, 0x2004, 0xa108,
+	0x0005, 0x0006, 0x0156, 0x00f6, 0x2079, 0x0100, 0x20a9, 0x000a,
+	0x7854, 0xd08c, 0x1110, 0x1f04, 0x2ab8, 0x00fe, 0x015e, 0x000e,
+	0x0005, 0x0016, 0x00c6, 0x0006, 0x2061, 0x0100, 0x6030, 0x0006,
+	0x6048, 0x0006, 0x60e4, 0x0006, 0x60e8, 0x0006, 0x6050, 0x0006,
+	0x60f0, 0x0006, 0x60ec, 0x0006, 0x600c, 0x0006, 0x6004, 0x0006,
+	0x6028, 0x0006, 0x60e0, 0x0006, 0x602f, 0x0100, 0x602f, 0x0000,
+	0xe000, 0xe000, 0xe000, 0xe000, 0x602f, 0x0040, 0x602f, 0x0000,
+	0x000e, 0x60e2, 0x000e, 0x602a, 0x000e, 0x6006, 0x000e, 0x600e,
+	0x000e, 0x60ee, 0x000e, 0x60f2, 0x000e, 0x6052, 0x000e, 0x60ea,
+	0x000e, 0x60e6, 0x000e, 0x604a, 0x000e, 0x6032, 0x6036, 0x2008,
+	0x080c, 0x29f1, 0x000e, 0x00ce, 0x001e, 0x0005, 0x2009, 0x0171,
+	0x2104, 0xd0dc, 0x0140, 0x2009, 0x0170, 0x2104, 0x200b, 0x0080,
+	0xe000, 0xe000, 0x200a, 0x0005, 0x2ba4, 0x2ba8, 0x2bac, 0x2bb2,
+	0x2bb8, 0x2bbe, 0x2bc4, 0x2bcc, 0x2bd4, 0x2bda, 0x2be0, 0x2be8,
+	0x2bf0, 0x2bf8, 0x2c00, 0x2c0a, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c16, 0x2c16, 0x2c1c, 0x2c1c,
+	0x2c23, 0x2c23, 0x2c2a, 0x2c2a, 0x2c33, 0x2c33, 0x2c3a, 0x2c3a,
+	0x2c43, 0x2c43, 0x2c4c, 0x2c4c, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c57,
+	0x2c57, 0x2c57, 0x2c57, 0x2c57, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x2c14,
+	0x2c14, 0x2c14, 0x2c14, 0x2c14, 0x0106, 0x0006, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2664,
+	0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2664, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x24b2, 0x0804, 0x2c5f, 0x0106, 0x0006,
+	0x080c, 0x24b2, 0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2664,
+	0x080c, 0x24b2, 0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2664,
+	0x080c, 0x24b2, 0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x253d,
+	0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x253d, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x2664, 0x080c, 0x253d, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x2664, 0x080c, 0x253d, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x24b2, 0x080c, 0x253d, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x24b2, 0x080c, 0x253d, 0x0804, 0x2c5f,
+	0x0106, 0x0006, 0x080c, 0x2664, 0x080c, 0x24b2, 0x080c, 0x253d,
+	0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2664, 0x080c, 0x24b2,
+	0x080c, 0x253d, 0x0804, 0x2c5f, 0xe000, 0x0cf0, 0x0106, 0x0006,
+	0x080c, 0x2a80, 0x0804, 0x2c5f, 0x0106, 0x0006, 0x080c, 0x2a80,
+	0x080c, 0x2664, 0x04e0, 0x0106, 0x0006, 0x080c, 0x2a80, 0x080c,
+	0x24b2, 0x04a8, 0x0106, 0x0006, 0x080c, 0x2a80, 0x080c, 0x2664,
+	0x080c, 0x24b2, 0x0460, 0x0106, 0x0006, 0x080c, 0x2a80, 0x080c,
+	0x253d, 0x0428, 0x0106, 0x0006, 0x080c, 0x2a80, 0x080c, 0x2664,
+	0x080c, 0x253d, 0x00e0, 0x0106, 0x0006, 0x080c, 0x2a80, 0x080c,
+	0x24b2, 0x080c, 0x253d, 0x0098, 0x0106, 0x0006, 0x080c, 0x2a80,
+	0x080c, 0x2664, 0x080c, 0x24b2, 0x080c, 0x253d, 0x0040, 0x20d1,
+	0x0000, 0x20d1, 0x0001, 0x20d1, 0x0000, 0x080c, 0x1519, 0x000e,
+	0x010e, 0x000d, 0x00c6, 0x0026, 0x0046, 0x2021, 0x0000, 0x080c,
+	0x5724, 0x1904, 0x2d3f, 0x72d4, 0x2001, 0xc8e5, 0x2004, 0xa005,
+	0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904, 0x2d3f,
+	0x080c, 0x2d43, 0x0804, 0x2d3f, 0xd2cc, 0x1904, 0x2d3f, 0x080c,
+	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,
+	0x2c04, 0xa38c, 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, 0x29c7,
+	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,
+	0x2d3f, 0xa780, 0x2f6e, 0x203d, 0xa7bc, 0xff00, 0x873f, 0x2041,
+	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, 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, 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, 0x52fa, 0x1138, 0x080c, 0x2e87, 0x04a9, 0x0118,
+	0x70d4, 0xc0bd, 0x70d6, 0x001e, 0x00ce, 0x0005, 0x0016, 0x0076,
+	0x00d6, 0x00c6, 0x2c68, 0x2001, 0xc657, 0x2004, 0xa084, 0x00ff,
+	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,
+	0xaf26, 0x0550, 0x2d00, 0x601a, 0x6800, 0xc0c4, 0x6802, 0x68a0,
+	0xa086, 0x007e, 0x0140, 0x6804, 0xa084, 0x00ff, 0xa086, 0x0006,
+	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, 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, 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, 0x962c, 0xa085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
+	0x0005, 0x00c6, 0x00d6, 0x0126, 0x2091, 0x8000, 0x2009, 0x007f,
+	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, 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, 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,
+	0xc600, 0x70dc, 0xa005, 0x0dc0, 0x8001, 0x70de, 0x0ca8, 0x6000,
+	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, 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, 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, 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, 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,
+	0xa2e0, 0xcdc0, 0x2c04, 0xd384, 0x0120, 0xa084, 0xff00, 0x8007,
+	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, 0x914b, 0x002e,
+	0x080c, 0xc4fd, 0x003e, 0x002e, 0x001e, 0xa180, 0xc77b, 0x2004,
+	0xa065, 0x0158, 0x0016, 0x00c6, 0x2061, 0xca3c, 0x001e, 0x611a,
+	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,
+	0x80cb, 0x80ca, 0x80c9, 0x80c7, 0x80c6, 0x77c5, 0x76c3, 0x80bc,
+	0x80ba, 0x75b9, 0x80b6, 0x74b5, 0x73b4, 0x72b3, 0x80b2, 0x80b1,
+	0x80ae, 0x71ad, 0x80ac, 0x70ab, 0x6faa, 0x6ea9, 0x80a7, 0x6da6,
+	0x6ca5, 0x6ba3, 0x6a9f, 0x699e, 0x689d, 0x809b, 0x8098, 0x6797,
+	0x6690, 0x658f, 0x6488, 0x6384, 0x6282, 0x8081, 0x8080, 0x617c,
+	0x607a, 0x8079, 0x5f76, 0x8075, 0x8074, 0x8073, 0x8072, 0x8071,
+	0x806e, 0x5e6d, 0x806c, 0x5d6b, 0x5c6a, 0x5b69, 0x8067, 0x5a66,
+	0x5965, 0x5863, 0x575c, 0x565a, 0x5559, 0x8056, 0x8055, 0x5454,
+	0x5353, 0x5252, 0x5151, 0x504e, 0x4f4d, 0x804c, 0x804b, 0x4e4a,
+	0x4d49, 0x8047, 0x4c46, 0x8045, 0x8043, 0x803c, 0x803a, 0x8039,
+	0x8036, 0x4b35, 0x8034, 0x4a33, 0x4932, 0x4831, 0x802e, 0x472d,
+	0x462c, 0x452b, 0x442a, 0x4329, 0x4227, 0x8026, 0x8025, 0x4123,
+	0x401f, 0x3f1e, 0x3e1d, 0x3d1b, 0x3c18, 0x8017, 0x8010, 0x3b0f,
+	0x3a08, 0x8004, 0x3902, 0x8001, 0x8000, 0x8000, 0x3800, 0x3700,
+	0x3600, 0x8000, 0x3500, 0x8000, 0x8000, 0x8000, 0x3400, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3300, 0x3200, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x3100, 0x3000, 0x8000,
+	0x8000, 0x2f00, 0x8000, 0x2e00, 0x2d00, 0x2c00, 0x8000, 0x8000,
+	0x8000, 0x2b00, 0x8000, 0x2a00, 0x2900, 0x2800, 0x8000, 0x2700,
+	0x2600, 0x2500, 0x2400, 0x2300, 0x2200, 0x8000, 0x8000, 0x2100,
+	0x2000, 0x1f00, 0x1e00, 0x1d00, 0x1c00, 0x8000, 0x8000, 0x1b00,
+	0x1a00, 0x8000, 0x1900, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x1800, 0x8000, 0x1700, 0x1600, 0x1500, 0x8000, 0x1400,
+	0x1300, 0x1200, 0x1100, 0x1000, 0x0f00, 0x8000, 0x8000, 0x0e00,
+	0x0d00, 0x0c00, 0x0b00, 0x0a00, 0x0900, 0x8000, 0x8000, 0x0800,
+	0x0700, 0x8000, 0x0600, 0x8000, 0x8000, 0x8000, 0x0500, 0x0400,
+	0x0300, 0x8000, 0x0200, 0x8000, 0x8000, 0x8000, 0x0100, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x2071, 0xc6a2,
+	0x7003, 0x0002, 0xa006, 0x7012, 0x7016, 0x703a, 0x703e, 0x7033,
+	0xc6b2, 0x7037, 0xc6b2, 0x7007, 0x0001, 0x2061, 0xc6f2, 0x6003,
+	0x0002, 0x0005, 0x1004, 0x3094, 0x0e04, 0x3094, 0x2071, 0xc6a2,
+	0x2b78, 0x7818, 0xd084, 0x1140, 0x2a60, 0x7820, 0xa08e, 0x0069,
+	0x1904, 0x3179, 0x0804, 0x3112, 0x0005, 0x2071, 0xc6a2, 0x7004,
+	0x0002, 0x309d, 0x309e, 0x30a7, 0x30b8, 0x0005, 0x1004, 0x30a6,
+	0x0e04, 0x30a6, 0x2b78, 0x7818, 0xd084, 0x01e8, 0x0005, 0x2b78,
+	0x2061, 0xc6f2, 0x6008, 0xa08e, 0x0100, 0x0128, 0xa086, 0x0200,
+	0x0904, 0x3173, 0x0005, 0x7014, 0x2068, 0x2a60, 0x7018, 0x0807,
+	0x7010, 0x2068, 0x6834, 0xa086, 0x0103, 0x0108, 0x0005, 0x2a60,
+	0x2b78, 0x7018, 0x0807, 0x2a60, 0x7820, 0xa08a, 0x0040, 0x1210,
+	0x61c4, 0x0042, 0x2100, 0xa08a, 0x003f, 0x1a04, 0x3170, 0x61c4,
+	0x0804, 0x3112, 0x3154, 0x317f, 0x3187, 0x318b, 0x3193, 0x3199,
+	0x319d, 0x31a9, 0x31ac, 0x31b6, 0x31b9, 0x3170, 0x3170, 0x3170,
+	0x31bc, 0x3170, 0x31cb, 0x31e2, 0x31f9, 0x3273, 0x3278, 0x32a1,
+	0x32f2, 0x3303, 0x3322, 0x335a, 0x3364, 0x3371, 0x3384, 0x33a5,
+	0x33ae, 0x33e4, 0x33ea, 0x3170, 0x3413, 0x3170, 0x3170, 0x3170,
+	0x3170, 0x3170, 0x341a, 0x3424, 0x3170, 0x3170, 0x3170, 0x3170,
+	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, 0x4588, 0x3170, 0x3170, 0x3170, 0x3170, 0x3170,
+	0x3170, 0x3170, 0x3170, 0x31b6, 0x31b9, 0x39a1, 0x3170, 0x39ae,
+	0x4621, 0x467c, 0x46e0, 0x3170, 0x4743, 0x476d, 0x478c, 0x47be,
+	0x3170, 0x3170, 0x3170, 0x39b2, 0x3b57, 0x3b71, 0x3b8f, 0x3bf0,
+	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, 0x4080, 0x7823,
+	0x0004, 0x7824, 0x0807, 0xa02e, 0x2520, 0x7b28, 0x7a2c, 0x7824,
+	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, 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, 0x6211,
+	0x0804, 0x3154, 0x2069, 0xc652, 0x7824, 0x7934, 0xa11a, 0x1a04,
+	0x317c, 0x8019, 0x0904, 0x317c, 0x684e, 0x6946, 0x782c, 0x6862,
+	0x7828, 0x6866, 0xa006, 0x686a, 0x686e, 0x080c, 0x57f0, 0x0804,
+	0x3154, 0xa02e, 0x2520, 0x81ff, 0x1904, 0x3179, 0x7924, 0x7b28,
+	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, 0x403f, 0x0904, 0x3179, 0x2009, 0x0020, 0x2061,
+	0xc6f2, 0x6224, 0x6328, 0x642c, 0x6530, 0xa290, 0x0040, 0xa399,
+	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, 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, 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, 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, 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, 0x5356, 0x11d8, 0x080c, 0x5596, 0x1128, 0x2009,
+	0x0002, 0x62b4, 0x2518, 0x00c0, 0x2019, 0x0004, 0xa00e, 0x080c,
+	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, 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,
+	0x7080, 0x0059, 0xa318, 0x8d68, 0x1f04, 0x33c2, 0x2300, 0xa218,
+	0x00ee, 0x00de, 0x015e, 0x0804, 0x3154, 0x00f6, 0x0016, 0xa07d,
+	0x0140, 0x2001, 0x0000, 0x8000, 0x2f0c, 0x81ff, 0x0110, 0x2178,
+	0x0cd0, 0x001e, 0x00fe, 0x0005, 0x2069, 0xc734, 0x6910, 0x62b0,
+	0x0804, 0x3154, 0x81ff, 0x1904, 0x3179, 0x6150, 0xa190, 0x2f6e,
+	0x2215, 0xa294, 0x00ff, 0x6370, 0x83ff, 0x0108, 0x6274, 0x67d4,
+	0xd79c, 0x0118, 0x2031, 0x0001, 0x0090, 0xd7ac, 0x0118, 0x2031,
+	0x0003, 0x0068, 0xd7a4, 0x0118, 0x2031, 0x0002, 0x0040, 0x080c,
+	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, 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, 0x5356, 0x1120, 0x6244,
+	0x6338, 0x6446, 0x653a, 0xa186, 0x00ff, 0x0190, 0x8108, 0x0ca0,
+	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, 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,
+	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, 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, 0x962c, 0x012e, 0x00ce, 0x0005,
+	0x012e, 0x00ce, 0x0804, 0x3179, 0x00ce, 0x0804, 0x317c, 0x080c,
+	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, 0x5f3b,
+	0x0904, 0x3179, 0x0126, 0x2091, 0x8000, 0x6248, 0x6068, 0xa202,
+	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, 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,
+	0x2104, 0xa085, 0x0800, 0x200a, 0x080c, 0x36f9, 0x0070, 0x2009,
+	0x010b, 0x200b, 0x0010, 0x080c, 0x36f9, 0x0038, 0x81ff, 0x0128,
+	0x012e, 0x2021, 0x400b, 0x0804, 0x3156, 0x0086, 0x0096, 0x00a6,
+	0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x080c, 0x3555, 0x2009,
+	0x0101, 0x210c, 0x0016, 0x2001, 0x0138, 0x200c, 0x2003, 0x0001,
+	0x0016, 0x2001, 0x007a, 0x2034, 0x2001, 0x007b, 0x202c, 0xa006,
+	0x2048, 0x2050, 0x2058, 0x080c, 0x3944, 0x080c, 0x38a8, 0xa03e,
+	0x2720, 0x00f6, 0x00e6, 0x00c6, 0x2d60, 0x2071, 0xc992, 0x2079,
+	0x0020, 0x00d6, 0x2069, 0x0000, 0x6824, 0xd0b4, 0x0140, 0x2001,
+	0x007d, 0x2004, 0x783e, 0x2001, 0x007c, 0x2004, 0x783a, 0x00de,
+	0x2011, 0x0001, 0x080c, 0x3854, 0x080c, 0x3854, 0x00ce, 0x00ee,
+	0x00fe, 0x080c, 0x379f, 0x080c, 0x387c, 0x080c, 0x37f9, 0x080c,
+	0x375e, 0x080c, 0x378f, 0x00f6, 0x2079, 0x0100, 0x7824, 0xd094,
+	0x0530, 0x7814, 0xa084, 0x0184, 0xa085, 0x0010, 0x7816, 0x2079,
+	0x0140, 0x080c, 0x36d7, 0x1110, 0x00fe, 0x0430, 0x7804, 0xd0dc,
+	0x0dc0, 0x2079, 0x0100, 0x7827, 0x0086, 0x7814, 0xa084, 0x0184,
+	0xa085, 0x0032, 0x7816, 0x080c, 0x36d7, 0x1110, 0x00fe, 0x00a0,
+	0x7824, 0xd0bc, 0x0dc0, 0x7827, 0x0080, 0xa026, 0x7c16, 0x7824,
+	0xd0ac, 0x0130, 0x8b58, 0x080c, 0x36e1, 0x00fe, 0x0804, 0x36a1,
+	0x00fe, 0x080c, 0x36d7, 0x1150, 0x8948, 0x2001, 0x007a, 0x2602,
+	0x2001, 0x007b, 0x2502, 0x080c, 0x36e1, 0x0088, 0x87ff, 0x0140,
+	0x2001, 0x0201, 0x2004, 0xa005, 0x1904, 0x35db, 0x8739, 0x0038,
+	0x2001, 0xc96a, 0x2004, 0xa086, 0x0000, 0x1904, 0x35db, 0x2001,
+	0x0033, 0x2003, 0x00f6, 0x8631, 0x1208, 0x8529, 0x2500, 0xa605,
+	0x0904, 0x36a1, 0x7824, 0xd0bc, 0x0128, 0x2900, 0xaa05, 0xab05,
+	0x1904, 0x36a1, 0x6033, 0x000d, 0x2001, 0x0030, 0x2003, 0x0004,
+	0x7824, 0xd0ac, 0x1148, 0x2001, 0xc96a, 0x2003, 0x0003, 0x2001,
+	0x0030, 0x2003, 0x0009, 0x0040, 0x6027, 0x0001, 0x2001, 0x0075,
+	0x2004, 0xa005, 0x0108, 0x6026, 0x2c00, 0x601a, 0x20e1, 0x9040,
+	0x2d00, 0x681a, 0x6833, 0x000d, 0x7824, 0xd0a4, 0x1180, 0x6827,
+	0x0000, 0x00c6, 0x20a9, 0x0004, 0x2061, 0x0020, 0x6003, 0x0008,
+	0x2001, 0x0203, 0x2004, 0x1f04, 0x3676, 0x00ce, 0x0040, 0x6827,
+	0x0001, 0x2001, 0x0074, 0x2004, 0xa005, 0x0108, 0x6826, 0x00f6,
+	0x00c6, 0x2079, 0x0100, 0x2061, 0x0020, 0x7827, 0x0002, 0x2001,
+	0x0072, 0x2004, 0xa084, 0xfff8, 0x601a, 0x0006, 0x2001, 0x0073,
+	0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x00ce, 0x00fe, 0x0804,
+	0x35b9, 0x2061, 0x0100, 0x6027, 0x0002, 0x001e, 0x61e2, 0x001e,
+	0x6106, 0x7824, 0xa084, 0x0003, 0xa086, 0x0002, 0x0188, 0x20e1,
+	0x9028, 0x6050, 0xa084, 0xf7ef, 0x6052, 0x602f, 0x0000, 0x602c,
+	0xc0ac, 0x602e, 0x604b, 0xf7f7, 0x6043, 0x0090, 0x6043, 0x0010,
+	0x2908, 0x2a10, 0x2b18, 0x2b00, 0xaa05, 0xa905, 0x00fe, 0x00ee,
+	0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x1118, 0x012e,
+	0x0804, 0x3154, 0x012e, 0x2021, 0x400c, 0x0804, 0x3156, 0xa085,
+	0x0001, 0x1d04, 0x36e0, 0x2091, 0x6000, 0x8420, 0xa486, 0x0064,
+	0x0005, 0x2001, 0x0105, 0x2003, 0x0010, 0x2001, 0x0030, 0x2003,
+	0x0004, 0x2001, 0x0020, 0x2003, 0x0004, 0x2001, 0xc96a, 0x2003,
+	0x0000, 0x2001, 0xc992, 0x2003, 0x0000, 0x20e1, 0xf000, 0xa026,
+	0x0005, 0x00f6, 0x2079, 0x0100, 0x2001, 0xc615, 0x200c, 0x7932,
+	0x7936, 0x080c, 0x29f1, 0x7850, 0xa084, 0x0980, 0xa085, 0x0030,
+	0x7852, 0x2019, 0x01f4, 0x8319, 0x1df0, 0xa084, 0x0980, 0x7852,
+	0x782c, 0xc0ad, 0x782e, 0x20a9, 0x0046, 0x1d04, 0x3715, 0x2091,
+	0x6000, 0x1f04, 0x3715, 0x7850, 0xa085, 0x0400, 0x7852, 0x2001,
+	0x0009, 0x2004, 0xa084, 0x0003, 0xa086, 0x0001, 0x1118, 0x782c,
+	0xc0ac, 0x782e, 0x784b, 0xf7f7, 0x7843, 0x0090, 0x7843, 0x0010,
+	0x20a9, 0x000e, 0xe000, 0x1f04, 0x3732, 0x7850, 0xa085, 0x1400,
+	0x7852, 0x2019, 0x61a8, 0x7854, 0xe000, 0xe000, 0xd08c, 0x1110,
+	0x8319, 0x1dc8, 0x7827, 0x0048, 0x7850, 0xa085, 0x0400, 0x7852,
+	0x7843, 0x0040, 0x2019, 0x01f4, 0xe000, 0xe000, 0x8319, 0x1de0,
+	0x2001, 0x0140, 0x2003, 0x0100, 0x7827, 0x0020, 0x7843, 0x0000,
+	0x2003, 0x0000, 0x7827, 0x0048, 0x00fe, 0x0005, 0x7824, 0xd0ac,
+	0x11c8, 0x00f6, 0x00e6, 0x2071, 0xc96a, 0x2079, 0x0030, 0x2001,
+	0x0201, 0x2004, 0xa005, 0x0160, 0x7000, 0xa086, 0x0000, 0x1140,
+	0x0051, 0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003, 0x7803, 0x0019,
+	0x00ee, 0x00fe, 0x0005, 0x780c, 0xa08c, 0x0070, 0x0178, 0x2009,
+	0x007a, 0x260a, 0x2009, 0x007b, 0x250a, 0xd0b4, 0x0108, 0x8a50,
+	0xd0ac, 0x0108, 0x8948, 0xd0a4, 0x0108, 0x8b58, 0x0005, 0x00f6,
+	0x2079, 0x0200, 0x781c, 0xd084, 0x0140, 0x20e1, 0x0007, 0x20e1,
+	0x2000, 0x2001, 0x020a, 0x2004, 0x0ca8, 0x00fe, 0x0005, 0x00e6,
+	0x2071, 0x0100, 0x2001, 0xc907, 0x2004, 0x70e2, 0x2009, 0xc615,
+	0x210c, 0x716e, 0x7063, 0x0100, 0x7166, 0x719e, 0x706b, 0x0000,
+	0x7073, 0x0809, 0x7077, 0x0008, 0x7078, 0xa080, 0x0100, 0x707a,
+	0x7080, 0x8000, 0x7082, 0x7087, 0xaaaa, 0xa006, 0x708a, 0x708e,
+	0x707e, 0x70d6, 0x70ab, 0x0036, 0x70af, 0x95d5, 0x7027, 0x0080,
+	0x7014, 0xa084, 0x0184, 0xa085, 0x0032, 0x7016, 0x080c, 0x387c,
+	0x080c, 0x36d7, 0x1110, 0x8421, 0x0028, 0x7024, 0xd0bc, 0x0db0,
+	0x7027, 0x0080, 0x00f6, 0x00e6, 0x2071, 0xc96a, 0x2079, 0x0030,
+	0x00d6, 0x2069, 0x0000, 0x6824, 0xd0b4, 0x0120, 0x683c, 0x783e,
+	0x6838, 0x783a, 0x00de, 0x2011, 0x0011, 0x080c, 0x3854, 0x2011,
+	0x0001, 0x080c, 0x3854, 0x00ee, 0x00fe, 0x7017, 0x0000, 0x00ee,
+	0x0005, 0x00f6, 0x00e6, 0x2071, 0xc96a, 0x2079, 0x0030, 0x7904,
+	0xd1fc, 0x0904, 0x3851, 0x7803, 0x0002, 0xa026, 0xd19c, 0x1904,
+	0x384d, 0x7000, 0x0002, 0x3851, 0x380f, 0x3833, 0x384d, 0xd1bc,
+	0x1150, 0xd1dc, 0x1150, 0x8001, 0x7002, 0x2011, 0x0001, 0x04e1,
+	0x05c0, 0x04d1, 0x04b0, 0x780f, 0x0000, 0x7820, 0x7924, 0x7803,
+	0x0004, 0x7822, 0x7926, 0x2001, 0x0201, 0x200c, 0x81ff, 0x0de8,
+	0x080c, 0x377b, 0x2009, 0x0001, 0x7808, 0xd0ec, 0x0110, 0x2009,
+	0x0011, 0x7902, 0x00f0, 0x8001, 0x7002, 0xa184, 0x0880, 0x1138,
+	0x7804, 0xd0fc, 0x1940, 0x2011, 0x0001, 0x00b1, 0x0090, 0x6030,
+	0xa092, 0x0004, 0xa086, 0x0009, 0x1120, 0x6000, 0x601a, 0x2011,
+	0x0025, 0x6232, 0xd1dc, 0x1988, 0x0870, 0x7803, 0x0004, 0x7003,
+	0x0000, 0x00ee, 0x00fe, 0x0005, 0x6024, 0xa005, 0x0520, 0x8001,
+	0x6026, 0x6018, 0x6130, 0xa140, 0x2804, 0x7832, 0x8840, 0x2804,
+	0x7836, 0x8840, 0x2804, 0x7822, 0x8840, 0x2804, 0x7826, 0x8840,
+	0x7a02, 0x7000, 0x8000, 0x7002, 0x6018, 0xa802, 0xa08a, 0x0029,
+	0x1138, 0x6018, 0xa080, 0x0001, 0x2004, 0x601a, 0x2001, 0x000d,
+	0x6032, 0xa085, 0x0001, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x2071,
+	0xc992, 0x2079, 0x0020, 0x7904, 0xd1fc, 0x01f0, 0x7803, 0x0002,
+	0x2d60, 0xa026, 0x7000, 0x0002, 0x38a4, 0x388f, 0x389b, 0x8001,
+	0x7002, 0xd19c, 0x1188, 0x2011, 0x0001, 0x080c, 0x3854, 0x0160,
+	0x080c, 0x3854, 0x0048, 0x8001, 0x7002, 0x7804, 0xd0fc, 0x1d30,
+	0x2011, 0x0001, 0x080c, 0x3854, 0x00ce, 0x00ee, 0x00fe, 0x0005,
+	0x00f6, 0x00e6, 0x00c6, 0x2061, 0x0200, 0x2001, 0xc907, 0x2004,
+	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, 0x403f, 0x6833, 0x000d, 0x6f26, 0x2d00, 0x681a, 0xa78a,
+	0x0007, 0x0220, 0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0xa03e,
+	0x6818, 0xa080, 0x000d, 0x04b1, 0x1d90, 0x2d00, 0x681a, 0x0088,
+	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,
+	0x700a, 0x601a, 0x0006, 0x2001, 0x0073, 0x2004, 0x700e, 0x601e,
+	0x78c6, 0x000e, 0x78ca, 0xa006, 0x603a, 0x603e, 0x00ce, 0x00ee,
+	0x00fe, 0x0005, 0x00e6, 0x2071, 0x0010, 0x20a0, 0x2099, 0x0014,
+	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, 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, 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, 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,
+	0x0030, 0x2003, 0x0004, 0x7824, 0xd0ac, 0x1178, 0x2001, 0x0101,
+	0x200c, 0xc1ed, 0x2102, 0x6027, 0x0000, 0x2001, 0xc96a, 0x2003,
+	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, 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,
+	0x0020, 0x6106, 0x00ce, 0xd08c, 0x00c6, 0x2061, 0x0100, 0x6104,
+	0x0118, 0xa18d, 0x0010, 0x0010, 0xa18c, 0xffef, 0x6106, 0x00ce,
+	0x2009, 0x0100, 0x210c, 0xa18a, 0x0002, 0x0268, 0xd084, 0x0158,
+	0x6a28, 0xa28a, 0x007f, 0x1a04, 0x317c, 0xa288, 0x2f6e, 0x210d,
+	0xa18c, 0x00ff, 0x615a, 0xd0dc, 0x0130, 0x6828, 0xa08a, 0x007f,
+	0x1a04, 0x317c, 0x6052, 0x6808, 0xa08a, 0x0100, 0x0a04, 0x317c,
+	0xa08a, 0x0841, 0x1a04, 0x317c, 0xa084, 0x0007, 0x1904, 0x317c,
+	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, 0x403f, 0x0904, 0x3179, 0x2009,
+	0x0014, 0x7a2c, 0x7b28, 0x7c3c, 0x7d38, 0xa290, 0x0038, 0xa399,
+	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,
+	0xc8f8, 0x200b, 0x0000, 0x2001, 0xc674, 0x2004, 0xd0ac, 0x0158,
+	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, 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,
+	0x0000, 0x0036, 0x6b08, 0x080c, 0x2a4c, 0x003e, 0x6818, 0x691c,
+	0x6a20, 0x6b24, 0x8007, 0x810f, 0x8217, 0x831f, 0x6016, 0x611a,
+	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, 0x7095, 0x6904,
+	0xd1fc, 0x0520, 0x00c6, 0x2009, 0x0000, 0x20a9, 0x0001, 0x6b70,
+	0xd384, 0x01c8, 0x0020, 0x839d, 0x12b0, 0x3508, 0x8109, 0x080c,
+	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,
+	0x5f3b, 0x0128, 0x080c, 0x4424, 0x0110, 0x080c, 0x2a11, 0x60c8,
+	0xa005, 0x01d0, 0x6003, 0x0001, 0x2009, 0x3b27, 0x00e0, 0x080c,
+	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,
+	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,
+	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, 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, 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, 0xae2a, 0x1120, 0x2009,
+	0x0003, 0x0804, 0x3179, 0x7007, 0x0003, 0x701b, 0x3c28, 0x0005,
+	0x080c, 0x4064, 0x0904, 0x317c, 0x20a9, 0x002b, 0x2c98, 0xade8,
+	0x0002, 0x2da0, 0x53a3, 0x20a9, 0x0004, 0xac80, 0x0006, 0x2098,
+	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, 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, 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, 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,
+	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, 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,
+	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, 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, 0x4df5, 0x0128, 0x080c, 0x442b, 0x0110, 0x080c,
+	0x2a11, 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, 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, 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, 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,
+	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, 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, 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, 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,
+	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, 0xae6d, 0x00ce, 0x0048,
+	0x00de, 0x00c6, 0x2660, 0x6003, 0x0009, 0x630a, 0x00ce, 0x0804,
+	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, 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, 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,
+	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,
+	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, 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, 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, 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, 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, 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, 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, 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, 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, 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,
+	0x7007, 0x0005, 0x0010, 0x7007, 0x0000, 0x00ee, 0x0005, 0x00f6,
+	0x00e6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,
+	0x2071, 0xc927, 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, 0xc927, 0x760c, 0x2660,
+	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, 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, 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, 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, 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, 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,
+	0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffd, 0x0478, 0xd2bc, 0x0180,
+	0xa286, 0x0080, 0x1128, 0x20a3, 0x00ff, 0x20a3, 0xfffc, 0x0428,
+	0xa2e8, 0xc77b, 0x2d6c, 0x6810, 0x20a2, 0x6814, 0x20a2, 0x00e8,
+	0x20a3, 0x0000, 0x6098, 0x20a2, 0x00c0, 0x2001, 0xc635, 0x2004,
+	0xd0ac, 0x1138, 0x7818, 0xa080, 0x0028, 0x2004, 0xa082, 0x007e,
+	0x0240, 0x00d6, 0x2069, 0xc61c, 0x2da6, 0x8d68, 0x2da6, 0x00de,
+	0x0020, 0x20a3, 0x0000, 0x6034, 0x20a2, 0x7834, 0x20a2, 0x7838,
+	0x20a2, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x60c3, 0x000c, 0x080c,
+	0x8bfb, 0x001e, 0x00de, 0x0005, 0x7817, 0x0001, 0x7803, 0x0006,
+	0x001e, 0x00de, 0x0005, 0x00d6, 0x0026, 0x7928, 0x2168, 0x691c,
+	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, 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,
+	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, 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,
+	0xa0e8, 0xc77b, 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, 0x8474, 0x20a3, 0x0100,
+	0x20a3, 0x0000, 0x20a3, 0x0009, 0x7810, 0x20a2, 0x60c3, 0x0008,
+	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, 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, 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,
+	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,
+	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, 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, 0x8bea, 0x22a2, 0x20a3, 0x0000, 0x2fa2, 0x20a3,
+	0xffff, 0x20a3, 0x0000, 0x20a3, 0x0000, 0x002e, 0x20a3, 0x5400,
+	0x20a3, 0x0000, 0x080c, 0x76a8, 0x11b8, 0x0016, 0x7810, 0xa080,
+	0x000d, 0x20a9, 0x0014, 0x200c, 0x810f, 0x21a2, 0x8000, 0x1f04,
+	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, 0x94d1, 0x20a9, 0x0004,
+	0x2009, 0xc601, 0x2104, 0x20a2, 0x8108, 0x1f04, 0x94da, 0x20a9,
+	0x0004, 0x2d08, 0xa188, 0x001d, 0x2104, 0x8007, 0x20a2, 0x8108,
+	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,
+	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, 0x9550, 0x20a9, 0x0004,
+	0x2d08, 0xa188, 0x0021, 0x2104, 0x8007, 0x20a2, 0x8108, 0x1f04,
+	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, 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,
+	0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xce00, 0x0c98, 0x6003,
+	0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c, 0xa502, 0x1230,
+	0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x704f, 0xce00,
+	0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xc600, 0x7548, 0xa582,
+	0x0010, 0x0600, 0x704c, 0x2060, 0x6000, 0xa086, 0x0000, 0x0148,
+	0xace0, 0x0018, 0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xce00,
+	0x0c98, 0x6003, 0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c,
+	0xa502, 0x1228, 0x754e, 0xa085, 0x0001, 0x00ee, 0x0005, 0x704f,
+	0xce00, 0x0cc8, 0xa006, 0x0cc8, 0xac82, 0xce00, 0x0a0c, 0x1519,
+	0x2001, 0xc617, 0x2004, 0xac02, 0x1a0c, 0x1519, 0xa006, 0x6006,
+	0x600a, 0x600e, 0x6012, 0x6016, 0x601a, 0x601f, 0x0000, 0x6003,
+	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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x4ee4, 0x00e6, 0x080c, 0xacaa, 0x0140,
+	0x6010, 0x2070, 0x7007, 0x0000, 0x7034, 0x70b2, 0x7037, 0x0103,
+	0x00ee, 0x080c, 0x95fc, 0x001e, 0x0005, 0x0016, 0x2009, 0x0000,
+	0x7030, 0xa086, 0x0200, 0x0110, 0x2009, 0x0001, 0x00d6, 0x6010,
+	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, 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,
+	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, 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, 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, 0xc3fb, 0x080c, 0x711c, 0x080c, 0x95fc,
+	0x00ce, 0x080c, 0x95fc, 0x0005, 0x0026, 0x0036, 0x0046, 0x7228,
+	0x7c80, 0x7b7c, 0xd2f4, 0x0130, 0x2001, 0xc8ff, 0x2004, 0x683e,
+	0x0804, 0x9966, 0x00c6, 0x2d60, 0x080c, 0xa96d, 0x00ce, 0x6804,
+	0xa086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060, 0x6003, 0x0001,
+	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,
+	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, 0xafb3, 0x080c, 0x7ead, 0x0010, 0x080c, 0x95fc,
+	0x004e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x6034,
+	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, 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,
+	0xa11c, 0x002e, 0x003e, 0x015e, 0x11d8, 0x0156, 0x0036, 0x0026,
+	0xae90, 0x000c, 0xa290, 0x0008, 0x20a9, 0x0004, 0xad98, 0x0006,
+	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, 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, 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,
+	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, 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, 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, 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, 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, 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, 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,
+	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, 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,
+	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,
+	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, 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, 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, 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, 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, 0x52aa, 0x2001, 0xc600,
+	0x2004, 0xa086, 0x0003, 0x1120, 0x2001, 0x0007, 0x080c, 0x52d7,
+	0x2600, 0xa005, 0x1150, 0x6010, 0xa080, 0x000e, 0x2004, 0xd0fc,
+	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, 0x4108, 0x00d6, 0x6018, 0x2068,
+	0x080c, 0x53f8, 0x080c, 0x9d29, 0x00de, 0x080c, 0xa08b, 0x1550,
+	0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0518, 0x2001,
+	0x0006, 0x080c, 0x52aa, 0x00e6, 0x6010, 0xa075, 0x01a8, 0x7034,
+	0xa084, 0x00ff, 0xa086, 0x0039, 0x1148, 0x2001, 0x0000, 0x2009,
+	0x0000, 0x2011, 0x4000, 0x080c, 0xb126, 0x0030, 0x7007, 0x0000,
+	0x7037, 0x0103, 0x7033, 0x0200, 0x00ee, 0x080c, 0x2e6c, 0x080c,
+	0x95fc, 0x0030, 0x080c, 0x9c22, 0x2001, 0x0000, 0x080c, 0x9e0e,
+	0x001e, 0x002e, 0x00ee, 0x0005, 0x2011, 0xc621, 0x2204, 0xa086,
+	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, 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,
+	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, 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, 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,
+	0x5365, 0x001e, 0x00ce, 0x0005, 0x00f6, 0x00e6, 0x00d6, 0x0036,
+	0x0016, 0x6018, 0x2068, 0x2071, 0xc635, 0x2e04, 0xa085, 0x0003,
+	0x2072, 0x080c, 0xa060, 0x0560, 0x2009, 0xc635, 0x2104, 0xc0cd,
+	0x200a, 0x2001, 0xc653, 0x2004, 0xd0a4, 0x0158, 0xa006, 0x2020,
+	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, 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, 0x5f3b, 0x0170, 0x2069, 0xcc8e, 0x2071, 0xc8f9, 0x6810,
+	0x2072, 0x6814, 0x7006, 0x6818, 0x700a, 0x681c, 0x700e, 0x080c,
+	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, 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,
+	0x1110, 0xd0ac, 0x0110, 0xa006, 0x0010, 0xa085, 0x0001, 0x00ee,
+	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, 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, 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, 0xc15a, 0x0c30,
+	0xa786, 0x0009, 0x1128, 0x2009, 0x0106, 0x080c, 0x962c, 0x0c00,
+	0xa786, 0x000a, 0x09a0, 0x0888, 0x220c, 0x2304, 0xa106, 0x1130,
+	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, 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,
+	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, 0x788c, 0x002e, 0x001e,
+	0x000e, 0x012e, 0xe000, 0x6000, 0xa086, 0x0002, 0x1110, 0x0804,
+	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, 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, 0xa310, 0xa68c, 0x0c00, 0x0518, 0x00f6,
+	0x2c78, 0x080c, 0x56dc, 0x00fe, 0x01c8, 0x684c, 0xd0ac, 0x01b0,
+	0x6020, 0xd0dc, 0x1198, 0x6850, 0xd0bc, 0x1180, 0x7318, 0x6814,
+	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, 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, 0xa271, 0x7328, 0x732c, 0x6b56,
+	0x83ff, 0x0170, 0xa38a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036,
+	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, 0xa95d, 0x080c, 0xb187, 0x04b8, 0x6838,
+	0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c68, 0x00f6, 0x2d78,
+	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, 0xaf85, 0x00de, 0x00ee, 0x00f0,
+	0x684b, 0x0000, 0x6837, 0x0103, 0x6e46, 0x684c, 0xd0ac, 0x0130,
+	0x6810, 0x6914, 0xa115, 0x0110, 0x080c, 0xa4d3, 0x080c, 0x5823,
+	0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x080c,
+	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, 0x7a15, 0x080c, 0x7f87, 0x0005, 0x2001, 0xc8ff,
+	0x2004, 0x603e, 0x6003, 0x0004, 0x6110, 0x20e1, 0x0005, 0x3d18,
+	0x3e20, 0x2c10, 0x080c, 0x1870, 0x0005, 0xa182, 0x0040, 0x0002,
+	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, 0xa42b, 0xa694, 0xff00,
+	0xa284, 0x0c00, 0x0120, 0x7018, 0x7862, 0x701c, 0x785e, 0xa284,
+	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,
+	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,
+	0xcc98, 0xad90, 0x0019, 0x080c, 0xa95d, 0x003e, 0xd6cc, 0x01d8,
+	0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
+	0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa95d,
+	0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
+	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, 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, 0xa470, 0x015e, 0x000e,
+	0x6852, 0x000e, 0x684e, 0x001e, 0x2168, 0x080c, 0x1629, 0x0418,
+	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, 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, 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, 0x56dc,
+	0x00fe, 0x0150, 0xa684, 0x00ff, 0x1138, 0x6020, 0xd0f4, 0x0120,
+	0x080c, 0xaf85, 0x0804, 0xa5af, 0x7e46, 0x7f4c, 0xc7e5, 0x7f4e,
+	0x6218, 0x2268, 0x6a3c, 0x82ff, 0x0110, 0x8211, 0x6a3e, 0x86ff,
+	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,
+	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,
+	0xcc98, 0xad90, 0x0019, 0x080c, 0xa95d, 0x003e, 0xd6cc, 0x01d8,
+	0x7124, 0x695a, 0x81ff, 0x01b8, 0xa192, 0x0021, 0x1250, 0x2071,
+	0xcc98, 0x831c, 0x2300, 0xae18, 0xad90, 0x001d, 0x080c, 0xa95d,
+	0x0050, 0x7838, 0xd0fc, 0x0120, 0x2009, 0x0020, 0x695a, 0x0c78,
+	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, 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, 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, 0xb10f, 0x0118,
+	0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
+	0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+	0xa115, 0x0110, 0x080c, 0xa4d3, 0x6848, 0x784a, 0x6860, 0x7862,
+	0x685c, 0x785e, 0xad90, 0x000d, 0xaf98, 0x000d, 0x2009, 0x0020,
+	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, 0xb10f, 0x0118,
+	0x7944, 0xc1dc, 0x7946, 0x0080, 0xd1d4, 0x0128, 0x684b, 0x0007,
+	0x784b, 0x0007, 0x0048, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+	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, 0xb10f, 0x0118,
+	0x6944, 0xc1dc, 0x6946, 0x0080, 0xd1d4, 0x0118, 0x684b, 0x0007,
+	0x0058, 0x684b, 0x0000, 0x684c, 0xd0ac, 0x0130, 0x6810, 0x6914,
+	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, 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,
+	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, 0xa96d, 0x00ce, 0x0128,
+	0x6803, 0x0002, 0x6007, 0x0086, 0x0010, 0x6007, 0x0087, 0x6003,
+	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, 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, 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, 0x7ead, 0x0005, 0x080c, 0x7dca,
+	0x6030, 0xa08c, 0xff00, 0x810f, 0xa186, 0x0039, 0x0118, 0xa186,
+	0x0035, 0x1118, 0x2001, 0xc8fd, 0x0010, 0x2001, 0xc8fe, 0x2004,
+	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, 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, 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, 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,
+	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, 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, 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, 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, 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, 0x5823, 0x2f68,
+	0x0cb8, 0x080c, 0x5823, 0x00fe, 0x0005, 0x0156, 0xa184, 0x0001,
+	0x0108, 0x8108, 0x810c, 0x21a8, 0x2304, 0x8007, 0x2012, 0x8318,
+	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, 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, 0xacaa, 0x01c0, 0x6834, 0xa086, 0x0139, 0x1128,
+	0x684b, 0x0005, 0x6853, 0x0000, 0x0028, 0xa00e, 0x2001, 0x0005,
+	0x080c, 0x5947, 0x080c, 0xaf22, 0x080c, 0x5823, 0x080c, 0x95fc,
+	0xa085, 0x0001, 0x00de, 0x0005, 0xa006, 0x0ce0, 0x6000, 0xa08a,
+	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, 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, 0x8e07, 0x601c, 0xa084,
+	0x000f, 0xa086, 0x0006, 0x1150, 0x0086, 0x0096, 0x2049, 0x0001,
+	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, 0x8d06, 0x6007, 0x0085,
+	0x6003, 0x000b, 0x601f, 0x0002, 0x2001, 0xc8fe, 0x2004, 0x6016,
+	0x080c, 0x79b2, 0x080c, 0x7ead, 0x00ee, 0x0005, 0x6017, 0x0001,
+	0x0cd8, 0x00d6, 0x6010, 0x2068, 0x6850, 0xc0b5, 0x6852, 0x00de,
+	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, 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, 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, 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, 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, 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, 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,
+	0x4f1b, 0x00ee, 0x080c, 0x9c22, 0x0020, 0x080c, 0x9c22, 0x080c,
+	0x2e46, 0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2e6c, 0x012e,
+	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, 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, 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,
+	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, 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,
+	0x79f8, 0x080c, 0x7ead, 0x0078, 0x6030, 0xa08c, 0xff00, 0x810f,
+	0xa186, 0x0039, 0x0118, 0xa186, 0x0035, 0x1118, 0x080c, 0x2e46,
+	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, 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, 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, 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, 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, 0x962c, 0xa085, 0x0001, 0x004e,
+	0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x00c6, 0x080c,
+	0x95a6, 0x2c78, 0x00ce, 0x01c0, 0x7e12, 0x2c00, 0x781a, 0x781f,
+	0x0003, 0x2021, 0x0004, 0x00a1, 0x2001, 0xc8e7, 0x2004, 0xd0fc,
+	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,
+	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, 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,
+	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, 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, 0xc3fb, 0x603f, 0x0000, 0x000e, 0x0005, 0x0066, 0x00c6,
+	0x00d6, 0x2031, 0xc653, 0x2634, 0xd6e4, 0x0128, 0x6618, 0x2660,
+	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, 0x95a6, 0x001e, 0x0190, 0x611a, 0x080c, 0xb077, 0x601f,
+	0x0001, 0x2d00, 0x6012, 0x080c, 0x2e46, 0x2009, 0x0028, 0x080c,
+	0x962c, 0xa085, 0x0001, 0x012e, 0x00ce, 0x0005, 0xa006, 0x0cd8,
+	0xa186, 0x0015, 0x1178, 0x2011, 0xc621, 0x2204, 0xa086, 0x0074,
+	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, 0x53f8, 0x00de, 0x080c, 0xa08b,
+	0x1170, 0x00d6, 0x6018, 0x2068, 0x6890, 0x00de, 0xa005, 0x0138,
+	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,
+	0x705c, 0xac02, 0x1208, 0x0cb0, 0x2061, 0xce00, 0x0c98, 0x6003,
+	0x0008, 0x8529, 0x754a, 0xaca8, 0x0018, 0x705c, 0xa502, 0x1230,
+	0x754e, 0xa085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x704f, 0xce00,
+	0x0cc0, 0xa006, 0x0cc0, 0x00e6, 0x2071, 0xcc8c, 0x7014, 0xd0e4,
+	0x0150, 0x6013, 0x0000, 0x6003, 0x0001, 0x6007, 0x0050, 0x080c,
+	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,
+	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, 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, 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,
+	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,
+	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, 0x7858, 0x2001, 0xc8fe, 0x82ff, 0x1110,
+	0x2011, 0x0014, 0x2202, 0x2009, 0xc8ff, 0xa280, 0x000a, 0x200a,
+	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, 0x95a6, 0x001e,
+	0x0178, 0x611a, 0x0ca1, 0x601f, 0x0001, 0x2d00, 0x6012, 0x2009,
+	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, 0x80c8, 0x01d8, 0x7070,
+	0x6a50, 0xa206, 0x1160, 0x7074, 0x6a54, 0xa206, 0x1140, 0x6218,
+	0xa290, 0x0028, 0x2214, 0x2009, 0x0000, 0x080c, 0x2e8b, 0x080c,
+	0x9780, 0x0020, 0x080c, 0x9c22, 0x080c, 0x95fc, 0x00fe, 0x00ee,
+	0x00de, 0x0005, 0x7054, 0x6a54, 0xa206, 0x0d48, 0x0c80, 0x00c6,
+	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, 0x80c8, 0x01a8, 0x7070, 0x6a08, 0xa206,
+	0x1130, 0x7074, 0x6a0c, 0xa206, 0x1110, 0x080c, 0x2e46, 0x080c,
+	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,
+	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, 0x5823, 0x6013, 0x0000, 0x003e,
+	0x00de, 0x0005, 0x00c6, 0x0026, 0x0016, 0xa186, 0x0035, 0x0110,
+	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, 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,
+	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 = 0xb5df;
+#else
+unsigned short risc_code_length01 = 0xb5df;
+#endif
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2300ipx_fw.c 350-qlogic/drivers/scsi/qla2xxx/ql2300ipx_fw.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/ql2300ipx_fw.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/ql2300ipx_fw.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,7316 @@
+/**************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ *************************************************************************/
+
+/*
+ *	Firmware Version 3.02.15 (08:28 Jul 21, 2003)
+ */
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2300ipx_version = 3*1024+2;
+#else
+unsigned short risc_code_version = 3*1024+2;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned char fw2300ipx_version_str[] = {3, 2,15};
+#else
+unsigned char firmware_version[] = {3, 2,15};
+#endif
+
+#ifdef UNIQUE_FW_NAME
+#define fw2300ipx_VERSION_STRING "3.02.15"
+#else
+#define FW_VERSION_STRING "3.02.15"
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2300ipx_addr01 = 0x0800 ;
+#else
+unsigned short risc_code_addr01 = 0x0800 ;
+#endif
+
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2300ipx_code01[] = { 
+#else
+unsigned short risc_code01[] = { 
+#endif
+	0x0470, 0x0000, 0x0000, 0xe2c3, 0x0000, 0x0003, 0x0002, 0x000f,
+	0x0137, 0x2043, 0x4f50, 0x5952, 0x4947, 0x4854, 0x2032, 0x3030,
+	0x3120, 0x514c, 0x4f47, 0x4943, 0x2043, 0x4f52, 0x504f, 0x5241,
+	0x5449, 0x4f4e, 0x2049, 0x5350, 0x3233, 0x3030, 0x2046, 0x6972,
+	0x6d77, 0x6172, 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030,
+	0x332e, 0x3032, 0x2e31, 0x3520, 0x2020, 0x2020, 0x2400, 0x20a9,
+	0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2200, 0x20a9, 0x000f,
+	0x2001, 0x0000, 0x400f, 0x2091, 0x2400, 0x20a9, 0x000f, 0x2001,
+	0x0000, 0x400f, 0x2091, 0x2600, 0x20a9, 0x000f, 0x2001, 0x0000,
+	0x400f, 0x2091, 0x2800, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f,
+	0x2091, 0x2a00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091,
+	0x2c00, 0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2e00,
+	0x20a9, 0x000f, 0x2001, 0x0000, 0x400f, 0x2091, 0x2000, 0x2001,
+	0x0000, 0x20c1, 0x0004, 0x2001, 0x017f, 0x2003, 0x0000, 0x20c9,
+	0x1bff, 0x2059, 0x0000, 0x2b78, 0x7883, 0x0004, 0x2089, 0x2b05,
+	0x2051, 0x1800, 0x2a70, 0x20e1, 0x0001, 0x20e9, 0x0001, 0x2029,
+	0x4d00, 0x2031, 0xffff, 0x2039, 0x4cd0, 0x2021, 0x0200, 0x20e9,
+	0x0001, 0x20a1, 0x0000, 0x20a9, 0x0800, 0x900e, 0x4104, 0x20e9,
+	0x0001, 0x20a1, 0x1000, 0x900e, 0x2001, 0x0cc0, 0x9084, 0x0fff,
+	0x20a8, 0x4104, 0x2001, 0x0000, 0x9086, 0x0000, 0x0120, 0x21a8,
+	0x4104, 0x8001, 0x1de0, 0x7566, 0x766a, 0x7762, 0x746e, 0x7472,
+	0x00e6, 0x2071, 0x1ac8, 0x2472, 0x00ee, 0x20a1, 0x1cd0, 0x7168,
+	0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x000f, 0x2001, 0x0001,
+	0x9112, 0x900e, 0x21a8, 0x4104, 0x8211, 0x1de0, 0x7168, 0x3400,
+	0x8001, 0x9102, 0x0120, 0x0218, 0x20a8, 0x900e, 0x4104, 0x2009,
+	0x1800, 0x810d, 0x810d, 0x810d, 0x810d, 0x810d, 0x918c, 0x001f,
+	0x2001, 0x0001, 0x9112, 0x20e9, 0x0001, 0x20a1, 0x0800, 0x900e,
+	0x20a9, 0x0800, 0x4104, 0x8211, 0x1dd8, 0x080c, 0x0ee5, 0x080c,
+	0x5cb7, 0x080c, 0xa901, 0x080c, 0x109c, 0x080c, 0x12ae, 0x080c,
+	0x1a31, 0x080c, 0x0d53, 0x080c, 0x1021, 0x080c, 0x31f4, 0x080c,
+	0x7305, 0x080c, 0x65fc, 0x080c, 0x82d6, 0x080c, 0x8021, 0x080c,
+	0x225e, 0x080c, 0x8b5b, 0x080c, 0x79ca, 0x080c, 0x2097, 0x080c,
+	0x21cb, 0x080c, 0x2253, 0x2091, 0x3009, 0x7883, 0x0000, 0x1004,
+	0x091f, 0x7880, 0x9086, 0x0002, 0x1190, 0x7883, 0x4000, 0x7837,
+	0x4000, 0x7833, 0x0010, 0x0e04, 0x0913, 0x2091, 0x5000, 0x2091,
+	0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2071,
+	0x1800, 0x7003, 0x0000, 0x2071, 0x1800, 0x7000, 0x908e, 0x0003,
+	0x1178, 0x080c, 0x48a0, 0x080c, 0x321b, 0x080c, 0x7376, 0x080c,
+	0x6b3d, 0x080c, 0x83b4, 0x080c, 0x804c, 0x080c, 0x2a71, 0x0c58,
+	0x000b, 0x0c78, 0x0944, 0x0945, 0x0aca, 0x0942, 0x0b91, 0x0d4a,
+	0x0d4a, 0x0d4a, 0x080c, 0x0db8, 0x0005, 0x0126, 0x00f6, 0x2091,
+	0x8000, 0x7000, 0x9086, 0x0001, 0x1904, 0x0aa8, 0x080c, 0x53b2,
+	0x1130, 0x0026, 0x2011, 0x0080, 0x080c, 0x0eac, 0x002e, 0x080c,
+	0x7018, 0x0150, 0x080c, 0x703b, 0x1580, 0x2079, 0x0100, 0x7828,
+	0x9085, 0x1800, 0x782a, 0x0448, 0x080c, 0x6f53, 0x7000, 0x9086,
+	0x0001, 0x1904, 0x0aa8, 0x7090, 0x9086, 0x0028, 0x1904, 0x0aa8,
+	0x2001, 0x0161, 0x2003, 0x0001, 0x2079, 0x0100, 0x7827, 0xffff,
+	0x7a28, 0x9295, 0x5e2f, 0x7a2a, 0x2011, 0x6eb4, 0x080c, 0x80ec,
+	0x2011, 0x6ea7, 0x080c, 0x81c3, 0x2011, 0x5b1a, 0x080c, 0x80ec,
+	0x2011, 0x8030, 0x901e, 0x738e, 0x04a0, 0x080c, 0x53c7, 0x2079,
+	0x0100, 0x7844, 0x9005, 0x1904, 0x0aa8, 0x2011, 0x5b1a, 0x080c,
+	0x80ec, 0x2011, 0x6eb4, 0x080c, 0x80ec, 0x2011, 0x6ea7, 0x080c,
+	0x81c3, 0x2001, 0x0265, 0x2001, 0x0205, 0x2003, 0x0000, 0x7840,
+	0x9084, 0xfffb, 0x7842, 0x2001, 0x19b0, 0x2004, 0x9005, 0x1140,
+	0x00c6, 0x2061, 0x0100, 0x080c, 0x5c5f, 0x00ce, 0x0804, 0x0aa8,
+	0x780f, 0x006b, 0x7a28, 0x9295, 0x5e2f, 0x7a2a, 0x2011, 0x8010,
+	0x73d4, 0x2001, 0x19b1, 0x2003, 0x0001, 0x080c, 0x293f, 0x080c,
+	0x47db, 0x7240, 0xc284, 0x7242, 0x2001, 0x180c, 0x200c, 0xc1ac,
+	0xc1cc, 0x2102, 0x080c, 0xa003, 0x2011, 0x0004, 0x080c, 0xc5e1,
+	0x080c, 0x6497, 0x080c, 0x7018, 0x1120, 0x080c, 0x2983, 0x02e0,
+	0x0400, 0x080c, 0x5c66, 0x0140, 0x708f, 0x0001, 0x70cf, 0x0000,
+	0x080c, 0x5594, 0x0804, 0x0aa8, 0x080c, 0x53a3, 0xd094, 0x0188,
+	0x2011, 0x180c, 0x2204, 0xc0cd, 0x2012, 0x080c, 0x53a7, 0xd0d4,
+	0x1118, 0x080c, 0x2983, 0x1270, 0x2011, 0x180c, 0x2204, 0xc0bc,
+	0x00a8, 0x080c, 0x53a7, 0xd0d4, 0x1db8, 0x2011, 0x180c, 0x2204,
+	0xc0bd, 0x0060, 0x2011, 0x180c, 0x2204, 0xc0bd, 0x2012, 0x080c,
+	0x65d0, 0x1128, 0xd0a4, 0x0118, 0x2204, 0xc0fd, 0x2012, 0x080c,
+	0x6596, 0x0120, 0x7a0c, 0xc2b4, 0x7a0e, 0x00a8, 0x7077, 0x0000,
+	0x080c, 0x7018, 0x1130, 0x70a8, 0x9005, 0x1168, 0x080c, 0xca04,
+	0x0050, 0x080c, 0xca04, 0x70d8, 0xd09c, 0x1128, 0x70a8, 0x9005,
+	0x0110, 0x080c, 0x5c3c, 0x70e3, 0x0000, 0x70df, 0x0000, 0x709f,
+	0x0000, 0x72d8, 0x080c, 0x7018, 0x1178, 0x9016, 0x0016, 0x080c,
+	0x273c, 0x2019, 0x1979, 0x211a, 0x001e, 0x7057, 0xffff, 0x705b,
+	0x00ef, 0x707b, 0x0000, 0x0020, 0x2019, 0x1979, 0x201b, 0x0000,
+	0x2079, 0x1853, 0x7804, 0xd0ac, 0x0108, 0xc295, 0x72da, 0x080c,
+	0x7018, 0x0118, 0x9296, 0x0004, 0x0548, 0x2011, 0x0001, 0x080c,
+	0xc5e1, 0x70a3, 0x0000, 0x70a7, 0xffff, 0x7003, 0x0002, 0x2079,
+	0x0100, 0x7827, 0x0003, 0x7828, 0x9085, 0x0003, 0x782a, 0x00fe,
+	0x080c, 0x2d72, 0x2011, 0x0005, 0x080c, 0xa15c, 0x080c, 0x922b,
+	0x080c, 0x7018, 0x0148, 0x00c6, 0x2061, 0x0100, 0x0016, 0x080c,
+	0x273c, 0x61e2, 0x001e, 0x00ce, 0x012e, 0x0420, 0x70a3, 0x0000,
+	0x70a7, 0xffff, 0x7003, 0x0002, 0x00f6, 0x2079, 0x0100, 0x7827,
+	0x0003, 0x7828, 0x9085, 0x0003, 0x782a, 0x00fe, 0x2011, 0x0005,
+	0x080c, 0xa15c, 0x080c, 0x922b, 0x080c, 0x7018, 0x0148, 0x00c6,
+	0x2061, 0x0100, 0x0016, 0x080c, 0x273c, 0x61e2, 0x001e, 0x00ce,
+	0x00fe, 0x012e, 0x0005, 0x00c6, 0x080c, 0x7018, 0x1118, 0x20a9,
+	0x0800, 0x0010, 0x20a9, 0x0782, 0x080c, 0x7018, 0x1110, 0x900e,
+	0x0010, 0x2009, 0x007e, 0x080c, 0x3090, 0x8108, 0x1f04, 0x0abb,
+	0x7077, 0x0000, 0x7078, 0x9084, 0x00ff, 0x707a, 0x70ab, 0x0000,
+	0x00ce, 0x0005, 0x00b6, 0x0126, 0x2091, 0x8000, 0x7000, 0x9086,
+	0x0002, 0x1904, 0x0b8e, 0x70a4, 0x9086, 0xffff, 0x0130, 0x080c,
+	0x2d72, 0x080c, 0x922b, 0x0804, 0x0b8e, 0x70d8, 0xd0ac, 0x1110,
+	0xd09c, 0x0558, 0xd084, 0x0548, 0x0006, 0x2001, 0x0103, 0x2003,
+	0x002b, 0x000e, 0xd08c, 0x0508, 0x080c, 0x30ed, 0x11d0, 0x70dc,
+	0x9086, 0xffff, 0x01b0, 0x080c, 0x2f04, 0x080c, 0x922b, 0x70d8,
+	0xd094, 0x1904, 0x0b8e, 0x2011, 0x0001, 0x080c, 0xccaa, 0x0110,
+	0x2011, 0x0003, 0x901e, 0x080c, 0x2f3e, 0x080c, 0x922b, 0x0804,
+	0x0b8e, 0x70e0, 0x9005, 0x1904, 0x0b8e, 0x70a0, 0x9005, 0x1904,
+	0x0b8e, 0x70d8, 0xd0a4, 0x0118, 0xd0b4, 0x0904, 0x0b8e, 0x080c,
+	0x6596, 0x1904, 0x0b8e, 0x080c, 0x65e9, 0x1904, 0x0b8e, 0x080c,
+	0x65d0, 0x01c0, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016,
+	0x080c, 0x6274, 0x1118, 0xb800, 0xd0ec, 0x1138, 0x001e, 0x8108,
+	0x1f04, 0x0b27, 0x00ce, 0x015e, 0x0028, 0x001e, 0x00ce, 0x015e,
+	0x0804, 0x0b8e, 0x0006, 0x2001, 0x0103, 0x2003, 0x002b, 0x000e,
+	0x2011, 0x19bd, 0x080c, 0x0f55, 0x2011, 0x19d7, 0x080c, 0x0f55,
+	0x7030, 0xc08c, 0x7032, 0x7003, 0x0003, 0x70a7, 0xffff, 0x080c,
+	0x53b2, 0x1130, 0x0026, 0x2011, 0x0040, 0x080c, 0x0eac, 0x002e,
+	0x9006, 0x080c, 0x25d0, 0x080c, 0x30ed, 0x0118, 0x080c, 0x4978,
+	0x0050, 0x0036, 0x0046, 0x2019, 0xffff, 0x2021, 0x0006, 0x080c,
+	0x4992, 0x004e, 0x003e, 0x00f6, 0x2079, 0x0100, 0x080c, 0x703b,
+	0x0150, 0x080c, 0x7018, 0x7828, 0x0118, 0x9084, 0xe1ff, 0x0010,
+	0x9084, 0xffdf, 0x782a, 0x00fe, 0x2001, 0x19f2, 0x2004, 0x9086,
+	0x0005, 0x1120, 0x2011, 0x0000, 0x080c, 0xa15c, 0x2011, 0x0000,
+	0x080c, 0xa166, 0x080c, 0x922b, 0x080c, 0x9362, 0x012e, 0x00be,
+	0x0005, 0x0016, 0x0046, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2079,
+	0x0100, 0x7904, 0x918c, 0xfffd, 0x7906, 0x2009, 0x00f7, 0x080c,
+	0x5c25, 0x7940, 0x918c, 0x0010, 0x7942, 0x7924, 0xd1b4, 0x0110,
+	0x7827, 0x0040, 0xd19c, 0x0110, 0x7827, 0x0008, 0x0006, 0x0036,
+	0x0156, 0x7954, 0xd1ac, 0x1904, 0x0c1e, 0x2001, 0x19b1, 0x2004,
+	0x9005, 0x1518, 0x080c, 0x29fe, 0x1148, 0x2001, 0x0001, 0x080c,
+	0x296e, 0x2001, 0x0001, 0x080c, 0x2951, 0x00b8, 0x080c, 0x2a06,
+	0x1138, 0x9006, 0x080c, 0x296e, 0x9006, 0x080c, 0x2951, 0x0068,
+	0x080c, 0x2a0e, 0x1d50, 0x2001, 0x19a2, 0x2004, 0xd0fc, 0x0108,
+	0x0020, 0x080c, 0x2768, 0x0804, 0x0cfd, 0x080c, 0x7029, 0x0148,
+	0x080c, 0x703b, 0x1118, 0x080c, 0x7300, 0x0050, 0x080c, 0x7020,
+	0x0dd0, 0x080c, 0x72fb, 0x080c, 0x72f1, 0x080c, 0x6f53, 0x0058,
+	0x080c, 0x7018, 0x0140, 0x2009, 0x00f8, 0x080c, 0x5c25, 0x7843,
+	0x0090, 0x7843, 0x0010, 0x20a9, 0x09c4, 0x7820, 0xd09c, 0x1138,
+	0x080c, 0x7018, 0x0138, 0x7824, 0xd0ac, 0x1904, 0x0d02, 0x1f04,
+	0x0bfd, 0x0070, 0x7824, 0x080c, 0x7032, 0x0118, 0xd0ac, 0x1904,
+	0x0d02, 0x9084, 0x1800, 0x0d98, 0x7003, 0x0001, 0x0804, 0x0d02,
+	0x2001, 0x0001, 0x080c, 0x25d0, 0x0804, 0x0d15, 0x2001, 0x19b1,
+	0x2004, 0x9005, 0x1518, 0x080c, 0x29fe, 0x1148, 0x2001, 0x0001,
+	0x080c, 0x296e, 0x2001, 0x0001, 0x080c, 0x2951, 0x00b8, 0x080c,
+	0x2a06, 0x1138, 0x9006, 0x080c, 0x296e, 0x9006, 0x080c, 0x2951,
+	0x0068, 0x080c, 0x2a0e, 0x1d50, 0x2001, 0x19a2, 0x2004, 0xd0fc,
+	0x0108, 0x0020, 0x080c, 0x2768, 0x0804, 0x0cfd, 0x7850, 0x9085,
+	0x0040, 0x7852, 0x7938, 0x7850, 0x9084, 0xfbcf, 0x7852, 0x080c,
+	0x2a16, 0x9085, 0x2000, 0x7852, 0x793a, 0x20a9, 0x0046, 0x1d04,
+	0x0c57, 0x080c, 0x81a3, 0x1f04, 0x0c57, 0x7850, 0x9085, 0x0400,
+	0x9084, 0xdfbf, 0x7852, 0x793a, 0x080c, 0x7029, 0x0148, 0x080c,
+	0x703b, 0x1118, 0x080c, 0x7300, 0x0050, 0x080c, 0x7020, 0x0dd0,
+	0x080c, 0x72fb, 0x080c, 0x72f1, 0x080c, 0x6f53, 0x0020, 0x2009,
+	0x00f8, 0x080c, 0x5c25, 0x20a9, 0x0028, 0xa001, 0x1f04, 0x0c7d,
+	0x7850, 0x9085, 0x1400, 0x7852, 0x080c, 0x7018, 0x0120, 0x7843,
+	0x0090, 0x7843, 0x0010, 0x2021, 0xe678, 0x2019, 0xea60, 0x080c,
+	0x0d4b, 0x7820, 0xd09c, 0x1580, 0x080c, 0x7018, 0x0904, 0x0ce2,
+	0x7824, 0xd0ac, 0x1904, 0x0d02, 0x080c, 0x703b, 0x1528, 0x0046,
+	0x2021, 0x0320, 0x8421, 0x1df0, 0x004e, 0x7827, 0x1800, 0x080c,
+	0x2a16, 0x7824, 0x9084, 0x1800, 0x1160, 0x9484, 0x0fff, 0x1138,
+	0x2001, 0x180f, 0x2004, 0xd0fc, 0x0110, 0x080c, 0x0d28, 0x8421,
+	0x1158, 0x1d04, 0x0cbd, 0x080c, 0x81a3, 0x080c, 0x72fb, 0x080c,
+	0x72f1, 0x7003, 0x0001, 0x04f0, 0x8319, 0x1948, 0x1d04, 0x0cca,
+	0x080c, 0x81a3, 0x2009, 0x19a5, 0x2104, 0x9005, 0x0118, 0x8001,
+	0x200a, 0x1178, 0x200b, 0x000a, 0x7827, 0x0048, 0x20a9, 0x0002,
+	0x080c, 0x29f7, 0x7924, 0x080c, 0x2a16, 0xd19c, 0x0110, 0x080c,
+	0x293f, 0x00d8, 0x080c, 0x7029, 0x1140, 0x94a2, 0x03e8, 0x1128,
+	0x080c, 0x6ff4, 0x7003, 0x0001, 0x00a8, 0x7827, 0x1800, 0x080c,
+	0x2a16, 0x7824, 0x080c, 0x7032, 0x0110, 0xd0ac, 0x1158, 0x9084,
+	0x1800, 0x0950, 0x7003, 0x0001, 0x0028, 0x2001, 0x0001, 0x080c,
+	0x25d0, 0x0078, 0x2009, 0x180c, 0x210c, 0xd19c, 0x1120, 0x7904,
+	0x918d, 0x0002, 0x7906, 0x7827, 0x0048, 0x7828, 0x9085, 0x0028,
+	0x782a, 0x7850, 0x9085, 0x0400, 0x7852, 0x2001, 0x19b1, 0x2003,
+	0x0000, 0x9006, 0x78f2, 0x015e, 0x003e, 0x000e, 0x080c, 0x53b2,
+	0x1110, 0x080c, 0x0e2f, 0x012e, 0x00fe, 0x004e, 0x001e, 0x0005,
+	0x0006, 0x0016, 0x0036, 0x0046, 0x00b6, 0x00c6, 0x00d6, 0x00e6,
+	0x00f6, 0x0156, 0x0061, 0x00b9, 0x015e, 0x00fe, 0x00ee, 0x00de,
+	0x00ce, 0x00be, 0x004e, 0x003e, 0x001e, 0x000e, 0x0005, 0x00e6,
+	0x2071, 0x18aa, 0x7004, 0x9086, 0x0001, 0x1110, 0x080c, 0x321b,
+	0x00ee, 0x0005, 0x0005, 0x080c, 0xccaa, 0x0120, 0x1d04, 0x0d52,
+	0x080c, 0x81a3, 0x0005, 0x2a70, 0x2061, 0x19b5, 0x2063, 0x0003,
+	0x6007, 0x0002, 0x600b, 0x000f, 0x600f, 0x0137, 0x2001, 0x1988,
+	0x900e, 0x2102, 0x718e, 0x2001, 0x0100, 0x2004, 0x9082, 0x0002,
+	0x0218, 0x7057, 0xffff, 0x0008, 0x7156, 0x705f, 0xffff, 0x7176,
+	0x717a, 0x080c, 0xca04, 0x2061, 0x1978, 0x6003, 0x0909, 0x6106,
+	0x600b, 0x8800, 0x600f, 0x0200, 0x6013, 0x00ff, 0x6017, 0x001f,
+	0x611a, 0x601f, 0x07d0, 0x2061, 0x1980, 0x6003, 0x8000, 0x6106,
+	0x610a, 0x600f, 0x0200, 0x6013, 0x00ff, 0x6116, 0x601b, 0x0001,
+	0x611e, 0x2061, 0x1993, 0x6003, 0x514c, 0x6007, 0x4f47, 0x600b,
+	0x4943, 0x600f, 0x2020, 0x2001, 0x182a, 0x2102, 0x0005, 0x9016,
+	0x080c, 0x6274, 0x1178, 0xb804, 0x90c4, 0x00ff, 0x98c6, 0x0006,
+	0x0128, 0x90c4, 0xff00, 0x98c6, 0x0600, 0x1120, 0x9186, 0x0080,
+	0x0108, 0x8210, 0x8108, 0x9186, 0x0800, 0x1d50, 0x2208, 0x0005,
+	0x2091, 0x8000, 0x0e04, 0x0dba, 0x0006, 0x0016, 0x2001, 0x8002,
+	0x0006, 0x2079, 0x0000, 0x000e, 0x7882, 0x7836, 0x001e, 0x798e,
+	0x000e, 0x788a, 0x000e, 0x7886, 0x3900, 0x789a, 0x7833, 0x0012,
+	0x2091, 0x5000, 0x0156, 0x00d6, 0x0036, 0x0026, 0x2079, 0x0300,
+	0x2069, 0x1aa3, 0x7a18, 0x226a, 0x8d68, 0x7a1c, 0x226a, 0x782c,
+	0x2019, 0x1ab0, 0x201a, 0x2019, 0x1ab3, 0x9016, 0x7808, 0xd09c,
+	0x0168, 0x7820, 0x201a, 0x8210, 0x8318, 0x9386, 0x1ac8, 0x0108,
+	0x0ca8, 0x7808, 0xd09c, 0x0110, 0x2011, 0xdead, 0x2019, 0x1ab1,
+	0x782c, 0x201a, 0x8318, 0x221a, 0x7803, 0x0000, 0x2069, 0x1a83,
+	0x901e, 0x20a9, 0x0020, 0x7b26, 0x7a28, 0x226a, 0x8d68, 0x8318,
+	0x1f04, 0x0e03, 0x002e, 0x003e, 0x00de, 0x015e, 0x2079, 0x1800,
+	0x7803, 0x0005, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,
+	0x0180, 0x2001, 0x1a24, 0x2004, 0x9005, 0x0128, 0x2001, 0x008b,
+	0x2004, 0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002, 0x2003,
+	0x1001, 0x080c, 0x53b2, 0x1108, 0x04c9, 0x0cd8, 0x0005, 0x00f6,
+	0x0006, 0x2079, 0x1825, 0x2f04, 0x8000, 0x207a, 0x080c, 0x2a0e,
+	0x1150, 0x0006, 0x2001, 0x19a2, 0x2004, 0xd0fc, 0x000e, 0x1118,
+	0x9082, 0x7530, 0x0010, 0x9082, 0x000f, 0x0258, 0x9006, 0x207a,
+	0x2079, 0x1828, 0x2f04, 0x9084, 0x0001, 0x9086, 0x0001, 0x207a,
+	0x0090, 0x2079, 0x1828, 0x2f7c, 0x8fff, 0x1138, 0x0026, 0x2011,
+	0x0080, 0x080c, 0x0eac, 0x002e, 0x0030, 0x0026, 0x2011, 0x0000,
+	0x080c, 0x0eac, 0x002e, 0x000e, 0x00fe, 0x0005, 0x0026, 0x0126,
+	0x2011, 0x0080, 0x080c, 0x0eac, 0x20a9, 0x0fff, 0x080c, 0x0ecd,
+	0x2011, 0x0040, 0x04c9, 0x20a9, 0x0fff, 0x080c, 0x0ecd, 0x0c80,
+	0x7034, 0xd0b4, 0x1128, 0x0026, 0x2011, 0x0040, 0x0469, 0x002e,
+	0x0005, 0x7034, 0xd0b4, 0x1128, 0x0026, 0x2011, 0x0080, 0x0421,
+	0x002e, 0x0005, 0x0026, 0x70f3, 0x0000, 0x0459, 0x1148, 0x080c,
+	0x2a0e, 0x1118, 0x2011, 0x8484, 0x0058, 0x2011, 0x8282, 0x0040,
+	0x080c, 0x2a0e, 0x1118, 0x2011, 0xcdc5, 0x0010, 0x2011, 0xcac2,
+	0x00e9, 0x002e, 0x0005, 0xd0b4, 0x0130, 0x0006, 0x3b00, 0x9084,
+	0xff3f, 0x20d8, 0x000e, 0x0005, 0x0016, 0x3b08, 0x3a00, 0x9104,
+	0x918d, 0x00c0, 0x21d8, 0x9084, 0xff3f, 0x9205, 0x20d0, 0x001e,
+	0x0005, 0x2001, 0x183b, 0x2004, 0xd0dc, 0x0005, 0x9e86, 0x1800,
+	0x190c, 0x0db8, 0x70ec, 0xd0e4, 0x0108, 0xc2e5, 0x72ee, 0xd0e4,
+	0x1118, 0x9294, 0x00c0, 0x0c01, 0x0005, 0x1d04, 0x0ecd, 0x2091,
+	0x6000, 0x1f04, 0x0ecd, 0x0005, 0x890e, 0x810e, 0x810f, 0x9194,
+	0x003f, 0x918c, 0xffc0, 0x0005, 0x0006, 0x2200, 0x914d, 0x894f,
+	0x894d, 0x894d, 0x000e, 0x000e, 0x0005, 0x01d6, 0x0146, 0x0036,
+	0x0096, 0x2061, 0x1899, 0x600b, 0x0000, 0x600f, 0x0000, 0x6003,
+	0x0000, 0x6007, 0x0000, 0x2009, 0xffc0, 0x2105, 0x0006, 0x2001,
+	0xaaaa, 0x200f, 0x2019, 0x5555, 0x9016, 0x2049, 0x0bff, 0xab02,
+	0xa001, 0xa001, 0xa800, 0x9306, 0x1138, 0x2105, 0x9306, 0x0120,
+	0x8210, 0x99c8, 0x0400, 0x0c98, 0x000e, 0x200f, 0x2001, 0x18a9,
+	0x928a, 0x000e, 0x1638, 0x928a, 0x0006, 0x2011, 0x0006, 0x1210,
+	0x2011, 0x0000, 0x2202, 0x9006, 0x2008, 0x82ff, 0x01b0, 0x8200,
+	0x600a, 0x600f, 0xffff, 0x6003, 0x0002, 0x6007, 0x0000, 0x0026,
+	0x2019, 0x0010, 0x9280, 0x0001, 0x20e8, 0x21a0, 0x21a8, 0x4104,
+	0x8319, 0x1de0, 0x8211, 0x1da0, 0x002e, 0x009e, 0x003e, 0x014e,
+	0x01de, 0x0005, 0x2011, 0x000e, 0x08e8, 0x0016, 0x0026, 0x0096,
+	0x3348, 0x080c, 0x0ed4, 0x2100, 0x9300, 0x2098, 0x22e0, 0x009e,
+	0x002e, 0x001e, 0x0036, 0x3518, 0x20a9, 0x0001, 0x4002, 0x8007,
+	0x4004, 0x8319, 0x1dd8, 0x003e, 0x0005, 0x20e9, 0x0001, 0x71b0,
+	0x81ff, 0x11c0, 0x9006, 0x2009, 0x0200, 0x20a9, 0x0002, 0x9298,
+	0x0018, 0x23a0, 0x4001, 0x2009, 0x0700, 0x20a9, 0x0002, 0x9298,
+	0x0008, 0x23a0, 0x4001, 0x7074, 0x8007, 0x7178, 0x810f, 0x20a9,
+	0x0002, 0x4001, 0x9298, 0x000c, 0x23a0, 0x900e, 0x080c, 0x0d9f,
+	0x2001, 0x0000, 0x810f, 0x20a9, 0x0002, 0x4001, 0x0005, 0x89ff,
+	0x0140, 0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x0fff, 0x009e,
+	0x0cb0, 0x0005, 0x00e6, 0x2071, 0x1800, 0x080c, 0x1078, 0x090c,
+	0x0db8, 0x00ee, 0x0005, 0x0086, 0x00e6, 0x0006, 0x0026, 0x0036,
+	0x0126, 0x2091, 0x8000, 0x00c9, 0x2071, 0x1800, 0x73bc, 0x702c,
+	0x9016, 0x9045, 0x0158, 0x8210, 0x9906, 0x090c, 0x0db8, 0x2300,
+	0x9202, 0x0120, 0x1a0c, 0x0db8, 0xa000, 0x0c98, 0x012e, 0x003e,
+	0x002e, 0x000e, 0x00ee, 0x008e, 0x0005, 0x0086, 0x00e6, 0x0006,
+	0x0126, 0x2091, 0x8000, 0x2071, 0x191c, 0x7010, 0x9005, 0x0140,
+	0x7018, 0x9045, 0x0128, 0x9906, 0x090c, 0x0db8, 0xa000, 0x0cc8,
+	0x012e, 0x000e, 0x00ee, 0x008e, 0x0005, 0x00e6, 0x2071, 0x1800,
+	0x0126, 0x2091, 0x8000, 0x70bc, 0x8001, 0x0270, 0x70be, 0x702c,
+	0x2048, 0x9085, 0x0001, 0xa800, 0x702e, 0xa803, 0x0000, 0xa807,
+	0x0000, 0x012e, 0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6, 0x0126,
+	0x2091, 0x8000, 0x2071, 0x1800, 0x70bc, 0x90ca, 0x0020, 0x0268,
+	0x8001, 0x70be, 0x702c, 0x2048, 0xa800, 0x702e, 0xa803, 0x0000,
+	0xa807, 0x0000, 0x012e, 0x00ee, 0x0005, 0x904e, 0x0cd8, 0x00e6,
+	0x0126, 0x2091, 0x8000, 0x0016, 0x890e, 0x810e, 0x810f, 0x9184,
+	0x003f, 0xa862, 0x9184, 0xffc0, 0xa85e, 0x001e, 0x0020, 0x00e6,
+	0x0126, 0x2091, 0x8000, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900,
+	0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8018, 0x012e, 0x00ee,
+	0x0005, 0x2071, 0x1800, 0x9026, 0x2009, 0x0000, 0x2049, 0x0400,
+	0x2900, 0x702e, 0x8940, 0x2800, 0xa802, 0xa95e, 0xa863, 0x0001,
+	0x8420, 0x9886, 0x0440, 0x0120, 0x2848, 0x9188, 0x0040, 0x0c90,
+	0x2071, 0x1899, 0x7000, 0x9005, 0x11a0, 0x2001, 0x0534, 0xa802,
+	0x2048, 0x2009, 0x4d00, 0x8940, 0x2800, 0xa802, 0xa95e, 0xa863,
+	0x0001, 0x8420, 0x9886, 0x0800, 0x0120, 0x2848, 0x9188, 0x0040,
+	0x0c90, 0x2071, 0x1899, 0x7104, 0x7200, 0x82ff, 0x01d0, 0x7308,
+	0x8318, 0x831f, 0x831b, 0x831b, 0x7312, 0x8319, 0x2001, 0x0800,
+	0xa802, 0x2048, 0x8900, 0xa802, 0x2040, 0xa95e, 0xaa62, 0x8420,
+	0x2300, 0x9906, 0x0130, 0x2848, 0x9188, 0x0040, 0x9291, 0x0000,
+	0x0c88, 0xa803, 0x0000, 0x2071, 0x1800, 0x74ba, 0x74be, 0x0005,
+	0x00e6, 0x0016, 0x9984, 0xfc00, 0x01e8, 0x908c, 0xf800, 0x1168,
+	0x9982, 0x0400, 0x02b8, 0x9982, 0x0440, 0x0278, 0x9982, 0x0534,
+	0x0288, 0x9982, 0x0800, 0x1270, 0x0040, 0x9982, 0x0800, 0x0250,
+	0x2071, 0x1899, 0x7010, 0x9902, 0x1228, 0x9085, 0x0001, 0x001e,
+	0x00ee, 0x0005, 0x9006, 0x0cd8, 0x00e6, 0x2071, 0x1a23, 0x7007,
+	0x0000, 0x9006, 0x701e, 0x7022, 0x7002, 0x2071, 0x0000, 0x7010,
+	0x9085, 0x8004, 0x7012, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x00e6, 0xa06f, 0x0000, 0x2071, 0x1a23, 0x701c, 0x9088, 0x1a2d,
+	0x280a, 0x8000, 0x9084, 0x003f, 0x701e, 0x7120, 0x9106, 0x090c,
+	0x0db8, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080, 0x00a9,
+	0x00fe, 0x00ee, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00e6,
+	0x2071, 0x1a23, 0x7004, 0x9005, 0x1128, 0x00f6, 0x2079, 0x0080,
+	0x0021, 0x00fe, 0x00ee, 0x012e, 0x0005, 0x7004, 0x9086, 0x0000,
+	0x1110, 0x7007, 0x0006, 0x7000, 0x0002, 0x10ef, 0x126f, 0x10ed,
+	0x10ed, 0x1263, 0x1263, 0x1263, 0x1263, 0x080c, 0x0db8, 0x701c,
+	0x7120, 0x9106, 0x1148, 0x792c, 0x9184, 0x0001, 0x1120, 0xd1fc,
+	0x1110, 0x7007, 0x0000, 0x0005, 0x0096, 0x9180, 0x1a2d, 0x2004,
+	0x700a, 0x2048, 0x8108, 0x918c, 0x003f, 0x7122, 0x782b, 0x0026,
+	0xa88c, 0x7802, 0xa890, 0x7806, 0xa894, 0x780a, 0xa898, 0x780e,
+	0xa878, 0x700e, 0xa870, 0x7016, 0xa874, 0x701a, 0xa868, 0x009e,
+	0xd084, 0x0120, 0x7007, 0x0001, 0x0029, 0x0005, 0x7007, 0x0002,
+	0x00b1, 0x0005, 0x0016, 0x0026, 0x710c, 0x2011, 0x0040, 0x9182,
+	0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x7212, 0x8203, 0x7812,
+	0x782b, 0x0020, 0x782b, 0x0041, 0x002e, 0x001e, 0x0005, 0x0016,
+	0x0026, 0x0136, 0x0146, 0x0156, 0x7014, 0x20e0, 0x7018, 0x2098,
+	0x20e9, 0x0000, 0x20a1, 0x0088, 0x782b, 0x0026, 0x710c, 0x2011,
+	0x0040, 0x9182, 0x0040, 0x1210, 0x2110, 0x9006, 0x700e, 0x22a8,
+	0x4006, 0x8203, 0x7812, 0x782b, 0x0020, 0x3300, 0x701a, 0x782b,
+	0x0001, 0x015e, 0x014e, 0x013e, 0x002e, 0x001e, 0x0005, 0x2009,
+	0x1a23, 0x2104, 0xc095, 0x200a, 0x080c, 0x10cc, 0x0005, 0x0016,
+	0x00e6, 0x2071, 0x1a23, 0x00f6, 0x2079, 0x0080, 0x792c, 0x782b,
+	0x0002, 0xd1fc, 0x0120, 0x918c, 0x0700, 0x7004, 0x0023, 0x00fe,
+	0x00ee, 0x001e, 0x0005, 0x10dd, 0x1182, 0x11b6, 0x128e, 0x0db8,
+	0x12a9, 0x0db8, 0x918c, 0x0700, 0x1550, 0x0136, 0x0146, 0x0156,
+	0x7014, 0x20e8, 0x7018, 0x20a0, 0x20e1, 0x0000, 0x2099, 0x0088,
+	0x782b, 0x0040, 0x7010, 0x20a8, 0x4005, 0x3400, 0x701a, 0x015e,
+	0x014e, 0x013e, 0x700c, 0x9005, 0x0578, 0x7800, 0x7802, 0x7804,
+	0x7806, 0x080c, 0x1122, 0x0005, 0x7008, 0x0096, 0x2048, 0xa86f,
+	0x0100, 0x009e, 0x7007, 0x0000, 0x080c, 0x10dd, 0x0005, 0x7008,
+	0x0096, 0x2048, 0xa86f, 0x0200, 0x009e, 0x0ca0, 0x918c, 0x0700,
+	0x1150, 0x700c, 0x9005, 0x0180, 0x7800, 0x7802, 0x7804, 0x7806,
+	0x080c, 0x1137, 0x0005, 0x7008, 0x0096, 0x2048, 0xa86f, 0x0200,
+	0x009e, 0x7007, 0x0000, 0x0080, 0x0096, 0x7008, 0x2048, 0x7800,
+	0xa88e, 0x7804, 0xa892, 0x7808, 0xa896, 0x780c, 0xa89a, 0xa86f,
+	0x0100, 0x009e, 0x7007, 0x0000, 0x0096, 0x00d6, 0x7008, 0x2048,
+	0x2001, 0x18c5, 0x2004, 0x9906, 0x1128, 0xa89c, 0x080f, 0x00de,
+	0x009e, 0x00a0, 0x00de, 0x009e, 0x0096, 0x00d6, 0x7008, 0x2048,
+	0x0081, 0x0150, 0xa89c, 0x0086, 0x2940, 0x080f, 0x008e, 0x00de,
+	0x009e, 0x080c, 0x10cc, 0x0005, 0x00de, 0x009e, 0x080c, 0x10cc,
+	0x0005, 0xa8a8, 0xd08c, 0x0005, 0x0096, 0xa0a0, 0x904d, 0x090c,
+	0x0db8, 0xa06c, 0x908e, 0x0100, 0x0130, 0xa87b, 0x0030, 0xa883,
+	0x0000, 0xa897, 0x4002, 0x080c, 0x68db, 0xa09f, 0x0000, 0xa0a3,
+	0x0000, 0x2848, 0x080c, 0x0fff, 0x009e, 0x0005, 0x00a6, 0xa0a0,
+	0x904d, 0x090c, 0x0db8, 0xa06c, 0x908e, 0x0100, 0x0128, 0xa87b,
+	0x0001, 0xa883, 0x0000, 0x00c0, 0xa80c, 0x2050, 0xb004, 0x9005,
+	0x0198, 0xa80e, 0x2050, 0x8006, 0x8006, 0x8007, 0x908c, 0x003f,
+	0x9084, 0xffc0, 0x9080, 0x0002, 0xa076, 0xa172, 0xb000, 0xa07a,
+	0x2810, 0x080c, 0x10ad, 0x00e8, 0xa97c, 0xa894, 0x0016, 0x0006,
+	0x080c, 0x68db, 0x000e, 0x001e, 0xd1fc, 0x1138, 0xd1f4, 0x0128,
+	0x00c6, 0x2060, 0x080c, 0xa96b, 0x00ce, 0x7008, 0x2048, 0xa89f,
+	0x0000, 0xa8a3, 0x0000, 0x080c, 0x0fff, 0x7007, 0x0000, 0x080c,
+	0x10cc, 0x00ae, 0x0005, 0x0126, 0x2091, 0x8000, 0x782b, 0x1001,
+	0x7007, 0x0005, 0x7000, 0xc094, 0x7002, 0x012e, 0x0005, 0x0096,
+	0x2001, 0x193a, 0x204c, 0xa87c, 0x7812, 0xa88c, 0x7802, 0xa890,
+	0x7806, 0xa894, 0x780a, 0xa898, 0x780e, 0x782b, 0x0020, 0x0126,
+	0x2091, 0x8000, 0x782b, 0x0041, 0x7007, 0x0003, 0x7000, 0xc084,
+	0x7002, 0x2900, 0x700a, 0x012e, 0x009e, 0x0005, 0x20e1, 0x0000,
+	0x2099, 0x0088, 0x782b, 0x0040, 0x0096, 0x2001, 0x193a, 0x204c,
+	0xaa7c, 0x009e, 0x080c, 0x85cf, 0x2009, 0x1898, 0x2104, 0x9084,
+	0xfffc, 0x200a, 0x080c, 0x8442, 0x7007, 0x0000, 0x080c, 0x10dd,
+	0x0005, 0x7007, 0x0000, 0x080c, 0x10dd, 0x0005, 0x0126, 0x2091,
+	0x2200, 0x2079, 0x0300, 0x2071, 0x1a6d, 0x7003, 0x0000, 0x78bf,
+	0x00f6, 0x00c1, 0x7803, 0x0003, 0x780f, 0x0000, 0x20a9, 0x0368,
+	0x2061, 0xe3e4, 0x2c0d, 0x7912, 0xe104, 0x9ce0, 0x0002, 0x7916,
+	0x1f04, 0x12c2, 0x7807, 0x0001, 0x7803, 0x0000, 0x7803, 0x0001,
+	0x012e, 0x0005, 0x00c6, 0x7803, 0x0000, 0x7808, 0xd09c, 0x0118,
+	0x7820, 0x04b9, 0x0cd0, 0x2001, 0x1a6e, 0x2003, 0x0000, 0x78ab,
+	0x0004, 0x78ac, 0xd0ac, 0x1de8, 0x78ab, 0x0002, 0x7807, 0x0001,
+	0x7827, 0x0030, 0x782b, 0x0400, 0x7827, 0x0031, 0x782b, 0x1a83,
+	0x781f, 0xff00, 0x781b, 0xff00, 0x2001, 0x0200, 0x2004, 0xd0dc,
+	0x0110, 0x781f, 0x0303, 0x2061, 0x1a83, 0x602f, 0x1cd0, 0x2001,
+	0x1818, 0x2004, 0x9082, 0x1cd0, 0x6032, 0x603b, 0x1e81, 0x604f,
+	0x1948, 0x2001, 0x1933, 0x2004, 0x6042, 0x783f, 0x30f4, 0x00ce,
+	0x0005, 0x9086, 0x000d, 0x11d0, 0x7808, 0xd09c, 0x01b8, 0x7820,
+	0x0026, 0x2010, 0x080c, 0xc5bf, 0x0180, 0x2260, 0x6000, 0x9086,
+	0x0004, 0x1158, 0x0016, 0x6120, 0x9186, 0x0009, 0x0108, 0x0020,
+	0x2009, 0x004c, 0x080c, 0xa9e6, 0x001e, 0x002e, 0x0005, 0x0126,
+	0x2091, 0x2200, 0x7808, 0xd09c, 0x0158, 0x7820, 0x908c, 0xf000,
+	0x1588, 0x908a, 0x0021, 0x1a0c, 0x0db8, 0x0043, 0x012e, 0x0005,
+	0x9084, 0x0070, 0x190c, 0x0db8, 0x012e, 0x0005, 0x1368, 0x1368,
+	0x1371, 0x1376, 0x137a, 0x137f, 0x13a7, 0x13ab, 0x13b9, 0x13bd,
+	0x1368, 0x1487, 0x148b, 0x14f0, 0x14f7, 0x1368, 0x14f8, 0x14f9,
+	0x1504, 0x150b, 0x1368, 0x1368, 0x1368, 0x1368, 0x1368, 0x1368,
+	0x1368, 0x1381, 0x1368, 0x1368, 0x1368, 0x1368, 0x1368, 0x1368,
+	0x080c, 0x0db8, 0x2009, 0x0048, 0x2060, 0x080c, 0xa9e6, 0x012e,
+	0x0005, 0x7004, 0xc085, 0xc0b5, 0x7006, 0x0005, 0x7004, 0xc085,
+	0x7006, 0x0005, 0x080c, 0x1516, 0x080c, 0x15be, 0x0005, 0x080c,
+	0x0db8, 0x080c, 0x1516, 0x2060, 0x6014, 0x0096, 0x2048, 0xa83b,
+	0xffff, 0x009e, 0x2009, 0x0048, 0x080c, 0xa9e6, 0x2001, 0x015d,
+	0x2003, 0x0000, 0x2009, 0x03e8, 0x8109, 0x0160, 0x2001, 0x0201,
+	0x2004, 0x9005, 0x0dc8, 0x2001, 0x0218, 0x2004, 0xd0ec, 0x1110,
+	0x080c, 0x151b, 0x2001, 0x0307, 0x2003, 0x8000, 0x0005, 0x7004,
+	0xc095, 0x7006, 0x0005, 0x080c, 0x1516, 0x2060, 0x6014, 0x0096,
+	0x2048, 0xa83b, 0xffff, 0x009e, 0x2009, 0x0048, 0x080c, 0xa9e6,
+	0x0005, 0x080c, 0x1516, 0x080c, 0x0db8, 0x080c, 0x1516, 0x080c,
+	0x1472, 0x7827, 0x0018, 0x79ac, 0xd1dc, 0x0904, 0x1426, 0x7827,
+	0x0015, 0x7828, 0x782b, 0x0000, 0x9065, 0x0140, 0x2001, 0x020d,
+	0x2003, 0x0050, 0x2003, 0x0020, 0x0804, 0x142c, 0x7004, 0x9005,
+	0x01c8, 0x1188, 0x78ab, 0x0004, 0x7827, 0x0018, 0x782b, 0x0000,
+	0xd1bc, 0x090c, 0x0db8, 0x2001, 0x020d, 0x2003, 0x0050, 0x2003,
+	0x0020, 0x0804, 0x1457, 0x78ab, 0x0004, 0x7803, 0x0001, 0x080c,
+	0x148b, 0x0005, 0x7827, 0x0018, 0xa001, 0x7828, 0x7827, 0x0011,
+	0xa001, 0x7928, 0x9106, 0x0110, 0x79ac, 0x08e0, 0x00e6, 0x2071,
+	0x0200, 0x702c, 0xd0c4, 0x0140, 0x00ee, 0x080c, 0x19a8, 0x080c,
+	0x12d2, 0x7803, 0x0001, 0x0005, 0x7037, 0x0001, 0xa001, 0x7150,
+	0x00ee, 0x918c, 0xff00, 0x9186, 0x0500, 0x0110, 0x79ac, 0x0810,
+	0x7004, 0xc09d, 0x7006, 0x78ab, 0x0004, 0x7803, 0x0001, 0x080c,
+	0x148b, 0x2001, 0x020d, 0x2003, 0x0020, 0x0005, 0x7828, 0x782b,
+	0x0000, 0x9065, 0x090c, 0x0db8, 0x6014, 0x2048, 0x78ab, 0x0004,
+	0x918c, 0x0700, 0x0198, 0x080c, 0x7a8d, 0x080c, 0x19a8, 0x080c,
+	0xc5d1, 0x0158, 0xa9ac, 0xa936, 0xa9b0, 0xa93a, 0xa83f, 0xffff,
+	0xa843, 0xffff, 0xa880, 0xc0bd, 0xa882, 0x0005, 0x6020, 0x9086,
+	0x0009, 0x1128, 0x2009, 0x004c, 0x080c, 0xa9e6, 0x0040, 0x6010,
+	0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x190c, 0xc99d, 0x2029,
+	0x00c8, 0x8529, 0x0128, 0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8,
+	0x7dbc, 0x080c, 0xe38d, 0xd5a4, 0x1118, 0x080c, 0x151b, 0x0005,
+	0x080c, 0x7a8d, 0x080c, 0x19a8, 0x0005, 0x781f, 0x0300, 0x7803,
+	0x0001, 0x0005, 0x0016, 0x0066, 0x0076, 0x00f6, 0x2079, 0x0300,
+	0x7908, 0x918c, 0x0007, 0x9186, 0x0003, 0x0120, 0x2001, 0x0016,
+	0x080c, 0x1587, 0x00fe, 0x007e, 0x006e, 0x001e, 0x0005, 0x7004,
+	0xc09d, 0x7006, 0x0005, 0x7104, 0x9184, 0x0004, 0x190c, 0x0db8,
+	0xd184, 0x1189, 0xd19c, 0x0158, 0xc19c, 0x7106, 0x2001, 0x020d,
+	0x2003, 0x0050, 0x2003, 0x0020, 0x080c, 0x151b, 0x0005, 0x81ff,
+	0x190c, 0x0db8, 0x0005, 0xc184, 0xd1b4, 0xc1b4, 0x7106, 0x0016,
+	0x00e6, 0x15f0, 0x2071, 0x0200, 0x080c, 0x15ab, 0x05c8, 0x6014,
+	0x9005, 0x05b0, 0x0096, 0x2048, 0xa864, 0x009e, 0x9084, 0x00ff,
+	0x908e, 0x0029, 0x0160, 0x908e, 0x0048, 0x1550, 0x601c, 0xd084,
+	0x11e0, 0x00f6, 0x2c78, 0x080c, 0x1606, 0x00fe, 0x00b0, 0x00f6,
+	0x2c78, 0x080c, 0x178b, 0x00fe, 0x2009, 0x01f4, 0x8109, 0x0168,
+	0x2001, 0x0201, 0x2004, 0x9005, 0x0dc8, 0x2001, 0x0218, 0x2004,
+	0xd0ec, 0x1118, 0x080c, 0x151b, 0x0040, 0x2001, 0x020d, 0x2003,
+	0x0020, 0x080c, 0x12d2, 0x7803, 0x0001, 0x00ee, 0x001e, 0x0005,
+	0x2001, 0x020d, 0x2003, 0x0050, 0x2003, 0x0020, 0x0461, 0x0ca8,
+	0x0429, 0x2060, 0x2009, 0x0053, 0x080c, 0xa9e6, 0x0005, 0x0005,
+	0x0005, 0x00e1, 0x2008, 0x00d1, 0x0006, 0x7004, 0xc09d, 0x7006,
+	0x000e, 0x080c, 0x892c, 0x0005, 0x0089, 0x9005, 0x0118, 0x080c,
+	0x852f, 0x0cd0, 0x0005, 0x2001, 0x0036, 0x2009, 0x181e, 0x210c,
+	0x2011, 0x181d, 0x2214, 0x080c, 0x1587, 0x0005, 0x7808, 0xd09c,
+	0x0de8, 0x7820, 0x0005, 0x080c, 0x1472, 0x00d6, 0x2069, 0x0200,
+	0x2009, 0x01f4, 0x8109, 0x0508, 0x6804, 0x9005, 0x0dd8, 0x2001,
+	0x015d, 0x2003, 0x0000, 0x79bc, 0xd1a4, 0x1520, 0x79b8, 0x918c,
+	0x0fff, 0x0178, 0x9182, 0x0841, 0x1260, 0x9188, 0x0007, 0x918c,
+	0x0ff8, 0x810c, 0x810c, 0x810c, 0x04e1, 0x6827, 0x0001, 0x8109,
+	0x1dd8, 0x04b9, 0x6827, 0x0002, 0x04a1, 0x6804, 0x9005, 0x1130,
+	0x682c, 0xd0e4, 0x11e0, 0x6804, 0x9005, 0x0de8, 0x79b8, 0xd1ec,
+	0x1130, 0x08c8, 0x080c, 0x7a8d, 0x080c, 0x19a8, 0x0070, 0x7827,
+	0x0015, 0x782b, 0x0000, 0x2001, 0x020d, 0x2003, 0x0020, 0x2001,
+	0x0307, 0x2003, 0x0300, 0x7803, 0x0001, 0x00de, 0x0005, 0x682c,
+	0x9084, 0x5400, 0x9086, 0x5400, 0x0d50, 0x7827, 0x0015, 0x782b,
+	0x0000, 0x7803, 0x0001, 0x6800, 0x9085, 0x1800, 0x6802, 0x00de,
+	0x0005, 0x6824, 0x9084, 0x0003, 0x1de0, 0x0005, 0x2001, 0x0030,
+	0x2c08, 0x621c, 0x0021, 0x7830, 0x9086, 0x0041, 0x0005, 0x00f6,
+	0x2079, 0x0300, 0x0006, 0x7808, 0xd09c, 0x0140, 0x0016, 0x0026,
+	0x00c6, 0x080c, 0x132f, 0x00ce, 0x002e, 0x001e, 0x000e, 0x7832,
+	0x7936, 0x7a3a, 0x781b, 0x8080, 0x2009, 0xff00, 0x8109, 0x0128,
+	0x7818, 0xd0bc, 0x1dd8, 0x00fe, 0x0005, 0x3900, 0x8000, 0x2004,
+	0x792c, 0x080c, 0x0db8, 0x7037, 0x0001, 0x7150, 0x7037, 0x0002,
+	0x7050, 0x2060, 0xd1bc, 0x1110, 0x7054, 0x2060, 0x918c, 0xff00,
+	0x9186, 0x0500, 0x0110, 0x9085, 0x0001, 0x0005, 0x00e6, 0x0016,
+	0x2071, 0x0200, 0x0c41, 0x7358, 0x745c, 0x6014, 0x905d, 0x0598,
+	0x2b48, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x190c,
+	0xc978, 0xab42, 0xac3e, 0x2001, 0x1875, 0x2004, 0xd0b4, 0x1170,
+	0x601c, 0xd0e4, 0x1158, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,
+	0xd0bc, 0x1120, 0xa83b, 0x7fff, 0xa837, 0xffff, 0x080c, 0x1ea1,
+	0x1190, 0x080c, 0x17da, 0x2a00, 0xa816, 0x0130, 0x2800, 0xa80e,
+	0x2c05, 0xa80a, 0x2c00, 0xa812, 0x7037, 0x0020, 0x781f, 0x0300,
+	0x001e, 0x00ee, 0x0005, 0x7037, 0x0050, 0x7037, 0x0020, 0x001e,
+	0x00ee, 0x080c, 0x151b, 0x0005, 0x080c, 0x0db8, 0x2ff0, 0x0126,
+	0x2091, 0x2200, 0x3e60, 0x6014, 0x2048, 0x2940, 0x903e, 0x2730,
+	0xa864, 0x2068, 0xa81a, 0x9d84, 0x000f, 0x9088, 0x1e81, 0x2165,
+	0x0002, 0x1630, 0x169e, 0x1630, 0x1630, 0x1634, 0x167f, 0x1630,
+	0x1654, 0x1629, 0x1695, 0x1630, 0x1630, 0x1639, 0x1789, 0x1668,
+	0x165e, 0xa964, 0x918c, 0x00ff, 0x918e, 0x0048, 0x0904, 0x1695,
+	0x9085, 0x0001, 0x0804, 0x1781, 0xa87c, 0xd0ac, 0x0dc8, 0x0804,
+	0x16a5, 0xa87c, 0xd0ac, 0x0da0, 0x0804, 0x1710, 0xa898, 0x901d,
+	0x1108, 0xab9c, 0x9016, 0xaab2, 0xaa3e, 0xaa42, 0x3e00, 0x9080,
+	0x0008, 0x2004, 0x9080, 0x8af3, 0x2005, 0x9005, 0x090c, 0x0db8,
+	0x2004, 0xa8ae, 0x0804, 0x1769, 0xa87c, 0xd0bc, 0x09c8, 0xa890,
+	0xa842, 0xa88c, 0xa83e, 0xa888, 0x0804, 0x16a5, 0xa87c, 0xd0bc,
+	0x0978, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa888, 0x0804, 0x1710,
+	0xa87c, 0xd0bc, 0x0928, 0xa890, 0xa842, 0xa88c, 0xa83e, 0xa804,
+	0x9045, 0x090c, 0x0db8, 0xa164, 0xa91a, 0x91ec, 0x000f, 0x9d80,
+	0x1e81, 0x2065, 0xa888, 0xd19c, 0x1904, 0x1710, 0x0430, 0xa87c,
+	0xd0ac, 0x0904, 0x1630, 0xa804, 0x9045, 0x090c, 0x0db8, 0xa164,
+	0xa91a, 0x91ec, 0x000f, 0x9d80, 0x1e81, 0x2065, 0x9006, 0xa842,
+	0xa83e, 0xd19c, 0x1904, 0x1710, 0x0080, 0xa87c, 0xd0ac, 0x0904,
+	0x1630, 0x9006, 0xa842, 0xa83e, 0x0804, 0x1710, 0xa87c, 0xd0ac,
+	0x0904, 0x1630, 0x9006, 0xa842, 0xa83e, 0x2c05, 0x908a, 0x0036,
+	0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x16c8, 0x16c8, 0x16ca,
+	0x16c8, 0x16c8, 0x16c8, 0x16d4, 0x16c8, 0x16c8, 0x16c8, 0x16de,
+	0x16c8, 0x16c8, 0x16c8, 0x16e8, 0x16c8, 0x16c8, 0x16c8, 0x16f2,
+	0x16c8, 0x16c8, 0x16c8, 0x16fc, 0x16c8, 0x16c8, 0x16c8, 0x1706,
+	0x080c, 0x0db8, 0xa574, 0xa478, 0x9d86, 0x0024, 0x0904, 0x163e,
+	0xa37c, 0xa280, 0x0804, 0x1769, 0xa584, 0xa488, 0x9d86, 0x0024,
+	0x0904, 0x163e, 0xa38c, 0xa290, 0x0804, 0x1769, 0xa594, 0xa498,
+	0x9d86, 0x0024, 0x0904, 0x163e, 0xa39c, 0xa2a0, 0x0804, 0x1769,
+	0xa5a4, 0xa4a8, 0x9d86, 0x0024, 0x0904, 0x163e, 0xa3ac, 0xa2b0,
+	0x0804, 0x1769, 0xa5b4, 0xa4b8, 0x9d86, 0x0024, 0x0904, 0x163e,
+	0xa3bc, 0xa2c0, 0x0804, 0x1769, 0xa5c4, 0xa4c8, 0x9d86, 0x0024,
+	0x0904, 0x163e, 0xa3cc, 0xa2d0, 0x0804, 0x1769, 0xa5d4, 0xa4d8,
+	0x9d86, 0x0024, 0x0904, 0x163e, 0xa3dc, 0xa2e0, 0x0804, 0x1769,
+	0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002,
+	0x1733, 0x1731, 0x1731, 0x1731, 0x1731, 0x1731, 0x173e, 0x1731,
+	0x1731, 0x1731, 0x1731, 0x1731, 0x1749, 0x1731, 0x1731, 0x1731,
+	0x1731, 0x1731, 0x1754, 0x1731, 0x1731, 0x1731, 0x1731, 0x1731,
+	0x175f, 0x080c, 0x0db8, 0xa56c, 0xa470, 0xa774, 0xa678, 0x9d86,
+	0x002c, 0x0904, 0x163e, 0xa37c, 0xa280, 0x0458, 0xa584, 0xa488,
+	0xa78c, 0xa690, 0x9d86, 0x002c, 0x0904, 0x163e, 0xa394, 0xa298,
+	0x0400, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0x9d86, 0x002c, 0x0904,
+	0x163e, 0xa3ac, 0xa2b0, 0x00a8, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0,
+	0x9d86, 0x002c, 0x0904, 0x163e, 0xa3c4, 0xa2c8, 0x0050, 0xa5cc,
+	0xa4d0, 0xa7d4, 0xa6d8, 0x9d86, 0x002c, 0x0904, 0x163e, 0xa3dc,
+	0xa2e0, 0xab2e, 0xaa32, 0xad1e, 0xac22, 0xaf26, 0xae2a, 0xa988,
+	0x8c60, 0x2c1d, 0xa8ac, 0xaab0, 0xa836, 0xaa3a, 0x8109, 0xa916,
+	0x1150, 0x3e60, 0x601c, 0xc085, 0x601e, 0xa87c, 0xc0dd, 0xa87e,
+	0x9006, 0x012e, 0x0005, 0x2800, 0xa80e, 0xab0a, 0x2c00, 0xa812,
+	0x0c80, 0x0804, 0x1630, 0x2ff0, 0x0126, 0x2091, 0x2200, 0x3e60,
+	0x6014, 0x2048, 0x2940, 0xa80e, 0x2061, 0x1e7c, 0xa80b, 0x1e7c,
+	0x2c05, 0xa812, 0xa964, 0xa91a, 0xa87c, 0xd0ac, 0x090c, 0x0db8,
+	0x9006, 0xa842, 0xa83e, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db8,
+	0xadcc, 0xacd0, 0xafd4, 0xaed8, 0xabdc, 0xaae0, 0xab2e, 0xaa32,
+	0xad1e, 0xac22, 0xaf26, 0xae2a, 0xa8ac, 0xaab0, 0xa836, 0xaa3a,
+	0xa988, 0x918a, 0x0002, 0xa916, 0x1150, 0x3e60, 0x601c, 0xc085,
+	0x601e, 0xa87c, 0xc0dd, 0xa87e, 0x9006, 0x012e, 0x0005, 0xa804,
+	0x9045, 0x090c, 0x0db8, 0xa80e, 0xa064, 0xa81a, 0x9084, 0x000f,
+	0x9080, 0x1e81, 0x2015, 0x82ff, 0x090c, 0x0db8, 0xaa0a, 0x2205,
+	0xa812, 0x0c18, 0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190, 0x2d00,
+	0x0002, 0x1904, 0x1831, 0x1831, 0x1904, 0x1831, 0x18fe, 0x1904,
+	0x1831, 0x1904, 0x18a1, 0x18a1, 0x1904, 0x18a1, 0x1904, 0x18fb,
+	0x18a1, 0xc0fc, 0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20, 0xdd9c,
+	0x0904, 0x1906, 0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db8, 0x9082,
+	0x001b, 0x0002, 0x181d, 0x181b, 0x181b, 0x181b, 0x181b, 0x181b,
+	0x1821, 0x181b, 0x181b, 0x181b, 0x181b, 0x181b, 0x1825, 0x181b,
+	0x181b, 0x181b, 0x181b, 0x181b, 0x1829, 0x181b, 0x181b, 0x181b,
+	0x181b, 0x181b, 0x182d, 0x080c, 0x0db8, 0xa774, 0xa678, 0x0804,
+	0x1906, 0xa78c, 0xa690, 0x0804, 0x1906, 0xa7a4, 0xa6a8, 0x0804,
+	0x1906, 0xa7bc, 0xa6c0, 0x0804, 0x1906, 0xa7d4, 0xa6d8, 0x0804,
+	0x1906, 0xa898, 0x901d, 0x1108, 0xab9c, 0x9016, 0x2c05, 0x908a,
+	0x0036, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x1859, 0x1859,
+	0x185b, 0x1859, 0x1859, 0x1859, 0x1865, 0x1859, 0x1859, 0x1859,
+	0x186f, 0x1859, 0x1859, 0x1859, 0x1879, 0x1859, 0x1859, 0x1859,
+	0x1883, 0x1859, 0x1859, 0x1859, 0x188d, 0x1859, 0x1859, 0x1859,
+	0x1897, 0x080c, 0x0db8, 0xa574, 0xa478, 0x9d86, 0x0004, 0x0904,
+	0x1906, 0xa37c, 0xa280, 0x0804, 0x1906, 0xa584, 0xa488, 0x9d86,
+	0x0004, 0x0904, 0x1906, 0xa38c, 0xa290, 0x0804, 0x1906, 0xa594,
+	0xa498, 0x9d86, 0x0004, 0x0904, 0x1906, 0xa39c, 0xa2a0, 0x0804,
+	0x1906, 0xa5a4, 0xa4a8, 0x9d86, 0x0004, 0x0904, 0x1906, 0xa3ac,
+	0xa2b0, 0x0804, 0x1906, 0xa5b4, 0xa4b8, 0x9d86, 0x0004, 0x0904,
+	0x1906, 0xa3bc, 0xa2c0, 0x0804, 0x1906, 0xa5c4, 0xa4c8, 0x9d86,
+	0x0004, 0x0904, 0x1906, 0xa3cc, 0xa2d0, 0x0804, 0x1906, 0xa5d4,
+	0xa4d8, 0x9d86, 0x0004, 0x0904, 0x1906, 0xa3dc, 0xa2e0, 0x0804,
+	0x1906, 0xa898, 0x901d, 0x1108, 0xab9c, 0x9016, 0x2c05, 0x908a,
+	0x0034, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x18c9, 0x18c7,
+	0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18d3, 0x18c7, 0x18c7, 0x18c7,
+	0x18c7, 0x18c7, 0x18dd, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7,
+	0x18e7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18c7, 0x18f1, 0x080c,
+	0x0db8, 0xa56c, 0xa470, 0xa774, 0xa678, 0x9d86, 0x000c, 0x05b0,
+	0xa37c, 0xa280, 0x0498, 0xa584, 0xa488, 0xa78c, 0xa690, 0x9d86,
+	0x000c, 0x0560, 0xa394, 0xa298, 0x0448, 0xa59c, 0xa4a0, 0xa7a4,
+	0xa6a8, 0x9d86, 0x000c, 0x0510, 0xa3ac, 0xa2b0, 0x00f8, 0xa5b4,
+	0xa4b8, 0xa7bc, 0xa6c0, 0x9d86, 0x000c, 0x01c0, 0xa3c4, 0xa2c8,
+	0x00a8, 0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0x9d86, 0x000c, 0x0170,
+	0xa3dc, 0xa2e0, 0x0058, 0x9d86, 0x000e, 0x1130, 0x080c, 0x1e3f,
+	0x1904, 0x17da, 0x900e, 0x0050, 0x080c, 0x0db8, 0xab2e, 0xaa32,
+	0xad1e, 0xac22, 0xaf26, 0xae2a, 0x080c, 0x1e3f, 0x0005, 0x6014,
+	0x2048, 0x6118, 0x810c, 0x810c, 0x810c, 0x81ff, 0x1118, 0xa887,
+	0x0001, 0x0008, 0xa986, 0x601b, 0x0002, 0xa974, 0xd1dc, 0x1108,
+	0x0005, 0xa934, 0xa88c, 0x9106, 0x1158, 0xa938, 0xa890, 0x9106,
+	0x1138, 0x601c, 0xc084, 0x601e, 0x2009, 0x0048, 0x0804, 0xa9e6,
+	0x0005, 0x0126, 0x00c6, 0x2091, 0x2200, 0x00ce, 0x7908, 0x918c,
+	0x0007, 0x9186, 0x0000, 0x0904, 0x199d, 0x9186, 0x0003, 0x0904,
+	0x199d, 0x6020, 0x6023, 0x0000, 0x0006, 0x2031, 0x0190, 0x00c6,
+	0x7808, 0xd09c, 0x190c, 0x132f, 0x00ce, 0x2001, 0x0038, 0x2c08,
+	0x621c, 0x080c, 0x1587, 0x7930, 0x9186, 0x0040, 0x0904, 0x1999,
+	0x9186, 0x0042, 0x190c, 0x0db8, 0x2001, 0x001e, 0x8001, 0x1df0,
+	0x8631, 0x1d28, 0x080c, 0x19f9, 0x0026, 0x0056, 0x2001, 0x00d2,
+	0x8001, 0x1df0, 0x2031, 0x2000, 0x8631, 0x1148, 0x080c, 0x7a8d,
+	0x04b9, 0x601c, 0xc084, 0x601e, 0x005e, 0x002e, 0x0410, 0x2001,
+	0x020b, 0x2004, 0xd0e4, 0x0d80, 0x2001, 0x015d, 0x2003, 0x0000,
+	0x78ab, 0x0004, 0x2001, 0x0200, 0x200c, 0x918d, 0x1800, 0x2102,
+	0x080c, 0x12d2, 0x601c, 0xc084, 0x601e, 0x7803, 0x0000, 0x7803,
+	0x0001, 0x005e, 0x002e, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138,
+	0x2202, 0x000e, 0x6022, 0x012e, 0x0005, 0x601c, 0xc084, 0x601e,
+	0x7827, 0x0015, 0x7828, 0x9c06, 0x1db0, 0x782b, 0x0000, 0x0c98,
+	0x00f6, 0x2079, 0x0300, 0x7803, 0x0000, 0x78ab, 0x0004, 0x00fe,
+	0x080c, 0x7018, 0x11b0, 0x2001, 0x0138, 0x2003, 0x0000, 0x2001,
+	0x0160, 0x2003, 0x0000, 0x2011, 0x012c, 0xa001, 0xa001, 0x8211,
+	0x1de0, 0x0081, 0x0066, 0x2031, 0x0000, 0x080c, 0x70ca, 0x006e,
+	0x0005, 0x0479, 0x0039, 0x2001, 0x0160, 0x2502, 0x2001, 0x0138,
+	0x2202, 0x0005, 0x00e6, 0x2071, 0x0200, 0x080c, 0x2a22, 0x2009,
+	0x003c, 0x080c, 0x21b8, 0x2001, 0x015d, 0x2003, 0x0000, 0x7000,
+	0x9084, 0x003c, 0x1de0, 0x080c, 0x8018, 0x70a0, 0x70a2, 0x7098,
+	0x709a, 0x709c, 0x709e, 0x2001, 0x020d, 0x2003, 0x0020, 0x00f6,
+	0x2079, 0x0300, 0x080c, 0x12d2, 0x7803, 0x0001, 0x00fe, 0x00ee,
+	0x0005, 0x2001, 0x0138, 0x2014, 0x2003, 0x0000, 0x2001, 0x0160,
+	0x202c, 0x2003, 0x0000, 0x080c, 0x7018, 0x1108, 0x0005, 0x2021,
+	0x0260, 0x2001, 0x0141, 0x201c, 0xd3dc, 0x1168, 0x2001, 0x0109,
+	0x201c, 0x939c, 0x0048, 0x1160, 0x2001, 0x0111, 0x201c, 0x83ff,
+	0x1110, 0x8421, 0x1d70, 0x2001, 0x015d, 0x2003, 0x0000, 0x0005,
+	0x0046, 0x2021, 0x0019, 0x2003, 0x0048, 0xa001, 0xa001, 0x201c,
+	0x939c, 0x0048, 0x0120, 0x8421, 0x1db0, 0x004e, 0x0c60, 0x004e,
+	0x0c40, 0x0126, 0x2091, 0x2400, 0x2071, 0x1a71, 0x2079, 0x0090,
+	0x012e, 0x0005, 0x9280, 0x0005, 0x2004, 0x2048, 0xa97c, 0xd1dc,
+	0x1904, 0x1ac2, 0xa964, 0x9184, 0x0007, 0x0002, 0x1a4e, 0x1aad,
+	0x1a55, 0x1a57, 0x1a55, 0x1a95, 0x1a75, 0x1a64, 0x2100, 0x9084,
+	0x00ff, 0x9086, 0x0048, 0x0904, 0x1aad, 0x080c, 0x0db8, 0x9184,
+	0x00ff, 0x9086, 0x0013, 0x0904, 0x1aad, 0x9184, 0x00ff, 0x9086,
+	0x001b, 0x0904, 0x1aad, 0x0c88, 0xa87c, 0xd0b4, 0x0904, 0x1c82,
+	0xa890, 0xa842, 0xa83a, 0xa88c, 0xa83e, 0xa836, 0xa8ac, 0xa846,
+	0xa8b0, 0xa84a, 0xa988, 0x0804, 0x1ab5, 0xa864, 0x9084, 0x00ff,
+	0x9086, 0x001e, 0x19d0, 0xa87c, 0xd0b4, 0x0904, 0x1c82, 0xa890,
+	0xa842, 0xa83a, 0xa88c, 0xa83e, 0xa836, 0xa8ac, 0xa846, 0xa8b0,
+	0xa84a, 0xa804, 0xa85a, 0x2040, 0xa064, 0x9084, 0x000f, 0x9080,
+	0x1e81, 0x2005, 0xa812, 0xa988, 0x0448, 0x918c, 0x00ff, 0x9186,
+	0x0015, 0x1540, 0xa87c, 0xd0b4, 0x0904, 0x1c82, 0xa804, 0xa85a,
+	0x2040, 0xa064, 0x9084, 0x000f, 0x9080, 0x1e81, 0x2005, 0xa812,
+	0xa988, 0x9006, 0xa842, 0xa83e, 0x0088, 0xa87c, 0xd0b4, 0x0904,
+	0x1c82, 0xa988, 0x9006, 0xa842, 0xa83e, 0x2900, 0xa85a, 0xa864,
+	0x9084, 0x000f, 0x9080, 0x1e81, 0x2005, 0xa812, 0xa916, 0xa87c,
+	0xc0dd, 0xa87e, 0x0005, 0x00f6, 0x2079, 0x0090, 0x782c, 0xd0fc,
+	0x190c, 0x1cc3, 0x00e6, 0x2071, 0x1a71, 0x7000, 0x9005, 0x1904,
+	0x1b1c, 0x7206, 0x9280, 0x0005, 0x204c, 0x9280, 0x0004, 0x2004,
+	0x782b, 0x0004, 0x00f6, 0x2079, 0x0200, 0x7803, 0x0040, 0x00fe,
+	0x00b6, 0x2058, 0xb86c, 0x7836, 0xb890, 0x00be, 0x00f6, 0x2079,
+	0x0200, 0x7803, 0x0040, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001,
+	0xa001, 0x781a, 0x2079, 0x0100, 0x8004, 0x78d6, 0x00fe, 0xa814,
+	0x2050, 0xa858, 0x2040, 0xa810, 0x2060, 0xa064, 0x90ec, 0x000f,
+	0xa944, 0x791a, 0x7116, 0xa848, 0x781e, 0x701a, 0x9006, 0x700e,
+	0x7012, 0x7004, 0xa940, 0xa838, 0x9106, 0x1188, 0xa93c, 0xa834,
+	0x9106, 0x1168, 0x8aff, 0x01a8, 0x0126, 0x2091, 0x8000, 0x00a1,
+	0x0108, 0x0091, 0x012e, 0x9006, 0x00ee, 0x00fe, 0x0005, 0x0036,
+	0x0046, 0xab38, 0xac34, 0x080c, 0x1ea1, 0x004e, 0x003e, 0x0d50,
+	0x0c98, 0x9085, 0x0001, 0x0c80, 0x0076, 0x0066, 0x0056, 0x0046,
+	0x0036, 0x0026, 0x8aff, 0x0904, 0x1c7b, 0x700c, 0x7214, 0x923a,
+	0x7010, 0x7218, 0x9203, 0x0a04, 0x1c7a, 0x9705, 0x0904, 0x1c7a,
+	0x903e, 0x2730, 0xa880, 0xd0fc, 0x1190, 0x2d00, 0x0002, 0x1c53,
+	0x1b97, 0x1b97, 0x1c53, 0x1c53, 0x1c35, 0x1c53, 0x1b97, 0x1c3c,
+	0x1be6, 0x1be6, 0x1c53, 0x1c53, 0x1c53, 0x1c2f, 0x1be6, 0xc0fc,
+	0xa882, 0xab2c, 0xaa30, 0xad1c, 0xac20, 0xdd9c, 0x0904, 0x1c60,
+	0x2c05, 0x908a, 0x0034, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002,
+	0x1b83, 0x1b81, 0x1b81, 0x1b81, 0x1b81, 0x1b81, 0x1b87, 0x1b81,
+	0x1b81, 0x1b81, 0x1b81, 0x1b81, 0x1b8b, 0x1b81, 0x1b81, 0x1b81,
+	0x1b81, 0x1b81, 0x1b8f, 0x1b81, 0x1b81, 0x1b81, 0x1b81, 0x1b81,
+	0x1b93, 0x080c, 0x0db8, 0xa774, 0xa678, 0x0804, 0x1c60, 0xa78c,
+	0xa690, 0x0804, 0x1c60, 0xa7a4, 0xa6a8, 0x0804, 0x1c60, 0xa7bc,
+	0xa6c0, 0x0804, 0x1c60, 0xa7d4, 0xa6d8, 0x0804, 0x1c60, 0x2c05,
+	0x908a, 0x0036, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x1bba,
+	0x1bba, 0x1bbc, 0x1bba, 0x1bba, 0x1bba, 0x1bc2, 0x1bba, 0x1bba,
+	0x1bba, 0x1bc8, 0x1bba, 0x1bba, 0x1bba, 0x1bce, 0x1bba, 0x1bba,
+	0x1bba, 0x1bd4, 0x1bba, 0x1bba, 0x1bba, 0x1bda, 0x1bba, 0x1bba,
+	0x1bba, 0x1be0, 0x080c, 0x0db8, 0xa574, 0xa478, 0xa37c, 0xa280,
+	0x0804, 0x1c60, 0xa584, 0xa488, 0xa38c, 0xa290, 0x0804, 0x1c60,
+	0xa594, 0xa498, 0xa39c, 0xa2a0, 0x0804, 0x1c60, 0xa5a4, 0xa4a8,
+	0xa3ac, 0xa2b0, 0x0804, 0x1c60, 0xa5b4, 0xa4b8, 0xa3bc, 0xa2c0,
+	0x0804, 0x1c60, 0xa5c4, 0xa4c8, 0xa3cc, 0xa2d0, 0x0804, 0x1c60,
+	0xa5d4, 0xa4d8, 0xa3dc, 0xa2e0, 0x0804, 0x1c60, 0x2c05, 0x908a,
+	0x0034, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x1c09, 0x1c07,
+	0x1c07, 0x1c07, 0x1c07, 0x1c07, 0x1c11, 0x1c07, 0x1c07, 0x1c07,
+	0x1c07, 0x1c07, 0x1c19, 0x1c07, 0x1c07, 0x1c07, 0x1c07, 0x1c07,
+	0x1c21, 0x1c07, 0x1c07, 0x1c07, 0x1c07, 0x1c07, 0x1c28, 0x080c,
+	0x0db8, 0xa56c, 0xa470, 0xa774, 0xa678, 0xa37c, 0xa280, 0x0804,
+	0x1c60, 0xa584, 0xa488, 0xa78c, 0xa690, 0xa394, 0xa298, 0x0804,
+	0x1c60, 0xa59c, 0xa4a0, 0xa7a4, 0xa6a8, 0xa3ac, 0xa2b0, 0x0804,
+	0x1c60, 0xa5b4, 0xa4b8, 0xa7bc, 0xa6c0, 0xa3c4, 0xa2c8, 0x04c0,
+	0xa5cc, 0xa4d0, 0xa7d4, 0xa6d8, 0xa3dc, 0xa2e0, 0x0488, 0xa864,
+	0x9084, 0x00ff, 0x9086, 0x001e, 0x11f0, 0x080c, 0x1e3f, 0x1904,
+	0x1b32, 0x900e, 0x0804, 0x1c7b, 0xa864, 0x9084, 0x00ff, 0x9086,
+	0x0048, 0x190c, 0x0db8, 0x00c6, 0x7004, 0x2060, 0x6004, 0x9086,
+	0x0043, 0x00ce, 0x0904, 0x1be6, 0xab9c, 0x9016, 0xad8c, 0xac90,
+	0xaf94, 0xae98, 0x0068, 0xa964, 0x918c, 0x00ff, 0x9186, 0x0013,
+	0x0904, 0x1b97, 0x9186, 0x001b, 0x0904, 0x1be6, 0x080c, 0x0db8,
+	0x7b12, 0x7a16, 0x7d02, 0x7c06, 0x7f0a, 0x7e0e, 0x782b, 0x0001,
+	0x7000, 0x8000, 0x7002, 0xa83c, 0x9300, 0xa83e, 0xa840, 0x9201,
+	0xa842, 0x700c, 0x9300, 0x700e, 0x7010, 0x9201, 0x7012, 0x080c,
+	0x1e3f, 0x0008, 0x9006, 0x002e, 0x003e, 0x004e, 0x005e, 0x006e,
+	0x007e, 0x0005, 0x080c, 0x0db8, 0x0026, 0x2001, 0x0105, 0x2003,
+	0x0010, 0x782b, 0x0004, 0x7003, 0x0000, 0x7004, 0x2060, 0x6014,
+	0x2048, 0x080c, 0xc5d1, 0x0118, 0xa880, 0xc0bd, 0xa882, 0x6020,
+	0x9086, 0x0006, 0x1180, 0x2061, 0x0100, 0x62c8, 0x2001, 0x00fa,
+	0x8001, 0x1df0, 0x60c8, 0x9206, 0x1dc0, 0x60c4, 0xa89a, 0x60c8,
+	0xa896, 0x7004, 0x2060, 0x00c6, 0x080c, 0xc22b, 0x00ce, 0x2001,
+	0x1a00, 0x2004, 0x9c06, 0x1160, 0x2009, 0x0040, 0x080c, 0x21b8,
+	0x080c, 0xa2e9, 0x2011, 0x0000, 0x080c, 0xa166, 0x080c, 0x9362,
+	0x002e, 0x0804, 0x1df1, 0x0126, 0x2091, 0x2400, 0xa858, 0x2040,
+	0x792c, 0x782b, 0x0002, 0x9184, 0x0700, 0x1904, 0x1c84, 0x7000,
+	0x0002, 0x1df1, 0x1cd5, 0x1d42, 0x1def, 0x8001, 0x7002, 0xd19c,
+	0x1150, 0x8aff, 0x05b0, 0x080c, 0x1b2c, 0x0904, 0x1df1, 0x080c,
+	0x1b2c, 0x0804, 0x1df1, 0x782b, 0x0004, 0xd194, 0x0148, 0xa880,
+	0xc0fc, 0xa882, 0x8aff, 0x11d8, 0xa87c, 0xc0f5, 0xa87e, 0x00b8,
+	0x0026, 0x0036, 0xab3c, 0xaa40, 0x7810, 0xa82e, 0x931a, 0x7814,
+	0xa832, 0x9213, 0x7800, 0xa81e, 0x7804, 0xa822, 0xab3e, 0xaa42,
+	0x003e, 0x002e, 0x080c, 0x1e57, 0xa880, 0xc0fd, 0xa882, 0x2a00,
+	0xa816, 0x2800, 0xa85a, 0x2c00, 0xa812, 0x7003, 0x0000, 0x0804,
+	0x1df1, 0x00f6, 0x0026, 0x781c, 0x0006, 0x7818, 0x0006, 0x2079,
+	0x0100, 0x7a14, 0x9284, 0x1984, 0x9085, 0x0012, 0x7816, 0x0036,
+	0x2019, 0x1000, 0x8319, 0x090c, 0x0db8, 0x7820, 0xd0bc, 0x1dd0,
+	0x003e, 0x79c8, 0x000e, 0x9102, 0x001e, 0x0006, 0x0016, 0x79c4,
+	0x000e, 0x9103, 0x78c6, 0x000e, 0x78ca, 0x9284, 0x1984, 0x9085,
+	0x0012, 0x7816, 0x002e, 0x00fe, 0x782b, 0x0008, 0x7003, 0x0000,
+	0x0804, 0x1df1, 0x8001, 0x7002, 0xd194, 0x0170, 0x782c, 0xd0fc,
+	0x1904, 0x1cc8, 0xd19c, 0x1904, 0x1ded, 0x8aff, 0x0904, 0x1df1,
+	0x080c, 0x1b2c, 0x0804, 0x1df1, 0x0026, 0x0036, 0xab3c, 0xaa40,
+	0x080c, 0x1e57, 0xdd9c, 0x1904, 0x1dac, 0x2c05, 0x908a, 0x0036,
+	0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x1d80, 0x1d80, 0x1d82,
+	0x1d80, 0x1d80, 0x1d80, 0x1d88, 0x1d80, 0x1d80, 0x1d80, 0x1d8e,
+	0x1d80, 0x1d80, 0x1d80, 0x1d94, 0x1d80, 0x1d80, 0x1d80, 0x1d9a,
+	0x1d80, 0x1d80, 0x1d80, 0x1da0, 0x1d80, 0x1d80, 0x1d80, 0x1da6,
+	0x080c, 0x0db8, 0xa07c, 0x931a, 0xa080, 0x9213, 0x0804, 0x1cf4,
+	0xa08c, 0x931a, 0xa090, 0x9213, 0x0804, 0x1cf4, 0xa09c, 0x931a,
+	0xa0a0, 0x9213, 0x0804, 0x1cf4, 0xa0ac, 0x931a, 0xa0b0, 0x9213,
+	0x0804, 0x1cf4, 0xa0bc, 0x931a, 0xa0c0, 0x9213, 0x0804, 0x1cf4,
+	0xa0cc, 0x931a, 0xa0d0, 0x9213, 0x0804, 0x1cf4, 0xa0dc, 0x931a,
+	0xa0e0, 0x9213, 0x0804, 0x1cf4, 0x2c05, 0x908a, 0x0034, 0x1a0c,
+	0x0db8, 0x9082, 0x001b, 0x0002, 0x1dcf, 0x1dcd, 0x1dcd, 0x1dcd,
+	0x1dcd, 0x1dcd, 0x1dd5, 0x1dcd, 0x1dcd, 0x1dcd, 0x1dcd, 0x1dcd,
+	0x1ddb, 0x1dcd, 0x1dcd, 0x1dcd, 0x1dcd, 0x1dcd, 0x1de1, 0x1dcd,
+	0x1dcd, 0x1dcd, 0x1dcd, 0x1dcd, 0x1de7, 0x080c, 0x0db8, 0xa07c,
+	0x931a, 0xa080, 0x9213, 0x0804, 0x1cf4, 0xa094, 0x931a, 0xa098,
+	0x9213, 0x0804, 0x1cf4, 0xa0ac, 0x931a, 0xa0b0, 0x9213, 0x0804,
+	0x1cf4, 0xa0c4, 0x931a, 0xa0c8, 0x9213, 0x0804, 0x1cf4, 0xa0dc,
+	0x931a, 0xa0e0, 0x9213, 0x0804, 0x1cf4, 0x0804, 0x1cf0, 0x080c,
+	0x0db8, 0x012e, 0x0005, 0x00f6, 0x00e6, 0x2071, 0x1a71, 0x7000,
+	0x9086, 0x0000, 0x0904, 0x1e3c, 0x2079, 0x0090, 0x2009, 0x0207,
+	0x210c, 0xd194, 0x01b8, 0x2009, 0x020c, 0x210c, 0x9184, 0x0003,
+	0x0188, 0x080c, 0xe3d6, 0x2001, 0x0133, 0x2004, 0x9005, 0x090c,
+	0x0db8, 0x0016, 0x2009, 0x0040, 0x080c, 0x21b8, 0x001e, 0x2001,
+	0x020c, 0x2102, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c,
+	0x9106, 0x1120, 0x2009, 0x0040, 0x080c, 0x21b8, 0x782c, 0xd0fc,
+	0x09a8, 0x080c, 0x1cc3, 0x7000, 0x9086, 0x0000, 0x1978, 0x782b,
+	0x0004, 0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c, 0x21b8,
+	0x782b, 0x0002, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005, 0x8c60,
+	0x2c05, 0x9005, 0x0110, 0x8a51, 0x0005, 0xa004, 0x9005, 0x0168,
+	0xa85a, 0x2040, 0xa064, 0x9084, 0x000f, 0x9080, 0x1e81, 0x2065,
+	0x8cff, 0x090c, 0x0db8, 0x8a51, 0x0005, 0x2050, 0x0005, 0x8a50,
+	0x8c61, 0x2c05, 0x9005, 0x1190, 0x2800, 0x9906, 0x0120, 0xa000,
+	0x9005, 0x1108, 0x2900, 0x2040, 0xa85a, 0xa064, 0x9084, 0x000f,
+	0x9080, 0x1e91, 0x2065, 0x8cff, 0x090c, 0x0db8, 0x0005, 0x0000,
+	0x001d, 0x0021, 0x0025, 0x0029, 0x002d, 0x0031, 0x0035, 0x0000,
+	0x001b, 0x0021, 0x0027, 0x002d, 0x0033, 0x0000, 0x0000, 0x0023,
+	0x0000, 0x0000, 0x1e74, 0x1e70, 0x1e74, 0x1e74, 0x1e7e, 0x0000,
+	0x1e74, 0x1e7b, 0x1e7b, 0x1e78, 0x1e7b, 0x1e7b, 0x0000, 0x1e7e,
+	0x1e7b, 0x0000, 0x1e76, 0x1e76, 0x0000, 0x1e76, 0x1e7e, 0x0000,
+	0x1e76, 0x1e7c, 0x1e7c, 0x1e7c, 0x0000, 0x1e7c, 0x0000, 0x1e7e,
+	0x1e7c, 0x00c6, 0x00d6, 0x0086, 0xab42, 0xac3e, 0xa888, 0x9055,
+	0x0904, 0x2078, 0x2940, 0xa064, 0x90ec, 0x000f, 0x9de0, 0x1e81,
+	0x9d86, 0x0007, 0x0130, 0x9d86, 0x000e, 0x0118, 0x9d86, 0x000f,
+	0x1120, 0xa08c, 0x9422, 0xa090, 0x931b, 0x2c05, 0x9065, 0x1140,
+	0x0310, 0x0804, 0x2078, 0xa004, 0x9045, 0x0904, 0x2078, 0x0c18,
+	0x2c05, 0x9005, 0x0904, 0x1f60, 0xdd9c, 0x1904, 0x1f1c, 0x908a,
+	0x0036, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x1ef1, 0x1ef1,
+	0x1ef3, 0x1ef1, 0x1ef1, 0x1ef1, 0x1ef9, 0x1ef1, 0x1ef1, 0x1ef1,
+	0x1eff, 0x1ef1, 0x1ef1, 0x1ef1, 0x1f05, 0x1ef1, 0x1ef1, 0x1ef1,
+	0x1f0b, 0x1ef1, 0x1ef1, 0x1ef1, 0x1f11, 0x1ef1, 0x1ef1, 0x1ef1,
+	0x1f17, 0x080c, 0x0db8, 0xa07c, 0x9422, 0xa080, 0x931b, 0x0804,
+	0x1f56, 0xa08c, 0x9422, 0xa090, 0x931b, 0x0804, 0x1f56, 0xa09c,
+	0x9422, 0xa0a0, 0x931b, 0x0804, 0x1f56, 0xa0ac, 0x9422, 0xa0b0,
+	0x931b, 0x0804, 0x1f56, 0xa0bc, 0x9422, 0xa0c0, 0x931b, 0x0804,
+	0x1f56, 0xa0cc, 0x9422, 0xa0d0, 0x931b, 0x0804, 0x1f56, 0xa0dc,
+	0x9422, 0xa0e0, 0x931b, 0x04d0, 0x908a, 0x0034, 0x1a0c, 0x0db8,
+	0x9082, 0x001b, 0x0002, 0x1f3e, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f3c,
+	0x1f3c, 0x1f43, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f48,
+	0x1f3c, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f3c, 0x1f4d, 0x1f3c, 0x1f3c,
+	0x1f3c, 0x1f3c, 0x1f3c, 0x1f52, 0x080c, 0x0db8, 0xa07c, 0x9422,
+	0xa080, 0x931b, 0x0098, 0xa094, 0x9422, 0xa098, 0x931b, 0x0070,
+	0xa0ac, 0x9422, 0xa0b0, 0x931b, 0x0048, 0xa0c4, 0x9422, 0xa0c8,
+	0x931b, 0x0020, 0xa0dc, 0x9422, 0xa0e0, 0x931b, 0x0630, 0x2300,
+	0x9405, 0x0160, 0x8a51, 0x0904, 0x2078, 0x8c60, 0x0804, 0x1ec8,
+	0xa004, 0x9045, 0x0904, 0x2078, 0x0804, 0x1eab, 0x8a51, 0x0904,
+	0x2078, 0x8c60, 0x2c05, 0x9005, 0x1158, 0xa004, 0x9045, 0x0904,
+	0x2078, 0xa064, 0x90ec, 0x000f, 0x9de0, 0x1e81, 0x2c05, 0x2060,
+	0xa880, 0xc0fc, 0xa882, 0x0804, 0x206d, 0x2c05, 0x8422, 0x8420,
+	0x831a, 0x9399, 0x0000, 0xac2e, 0xab32, 0xdd9c, 0x1904, 0x200a,
+	0x9082, 0x001b, 0x0002, 0x1fa6, 0x1fa6, 0x1fa8, 0x1fa6, 0x1fa6,
+	0x1fa6, 0x1fb6, 0x1fa6, 0x1fa6, 0x1fa6, 0x1fc4, 0x1fa6, 0x1fa6,
+	0x1fa6, 0x1fd2, 0x1fa6, 0x1fa6, 0x1fa6, 0x1fe0, 0x1fa6, 0x1fa6,
+	0x1fa6, 0x1fee, 0x1fa6, 0x1fa6, 0x1fa6, 0x1ffc, 0x080c, 0x0db8,
+	0xa17c, 0x2400, 0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0db8,
+	0xa074, 0x9420, 0xa078, 0x9319, 0x0804, 0x2068, 0xa18c, 0x2400,
+	0x9122, 0xa190, 0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa084, 0x9420,
+	0xa088, 0x9319, 0x0804, 0x2068, 0xa19c, 0x2400, 0x9122, 0xa1a0,
+	0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa094, 0x9420, 0xa098, 0x9319,
+	0x0804, 0x2068, 0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b,
+	0x0a0c, 0x0db8, 0xa0a4, 0x9420, 0xa0a8, 0x9319, 0x0804, 0x2068,
+	0xa1bc, 0x2400, 0x9122, 0xa1c0, 0x2300, 0x911b, 0x0a0c, 0x0db8,
+	0xa0b4, 0x9420, 0xa0b8, 0x9319, 0x0804, 0x2068, 0xa1cc, 0x2400,
+	0x9122, 0xa1d0, 0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa0c4, 0x9420,
+	0xa0c8, 0x9319, 0x0804, 0x2068, 0xa1dc, 0x2400, 0x9122, 0xa1e0,
+	0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa0d4, 0x9420, 0xa0d8, 0x9319,
+	0x0804, 0x2068, 0x9082, 0x001b, 0x0002, 0x2028, 0x2026, 0x2026,
+	0x2026, 0x2026, 0x2026, 0x2035, 0x2026, 0x2026, 0x2026, 0x2026,
+	0x2026, 0x2042, 0x2026, 0x2026, 0x2026, 0x2026, 0x2026, 0x204f,
+	0x2026, 0x2026, 0x2026, 0x2026, 0x2026, 0x205c, 0x080c, 0x0db8,
+	0xa17c, 0x2400, 0x9122, 0xa180, 0x2300, 0x911b, 0x0a0c, 0x0db8,
+	0xa06c, 0x9420, 0xa070, 0x9319, 0x0498, 0xa194, 0x2400, 0x9122,
+	0xa198, 0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa084, 0x9420, 0xa088,
+	0x9319, 0x0430, 0xa1ac, 0x2400, 0x9122, 0xa1b0, 0x2300, 0x911b,
+	0x0a0c, 0x0db8, 0xa09c, 0x9420, 0xa0a0, 0x9319, 0x00c8, 0xa1c4,
+	0x2400, 0x9122, 0xa1c8, 0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa0b4,
+	0x9420, 0xa0b8, 0x9319, 0x0060, 0xa1dc, 0x2400, 0x9122, 0xa1e0,
+	0x2300, 0x911b, 0x0a0c, 0x0db8, 0xa0cc, 0x9420, 0xa0d0, 0x9319,
+	0xac1e, 0xab22, 0xa880, 0xc0fd, 0xa882, 0x2800, 0xa85a, 0x2c00,
+	0xa812, 0x2a00, 0xa816, 0x000e, 0x000e, 0x000e, 0x9006, 0x0028,
+	0x008e, 0x00de, 0x00ce, 0x9085, 0x0001, 0x0005, 0x2001, 0x0005,
+	0x2004, 0x9084, 0x0007, 0x0002, 0x2096, 0x1cc3, 0x2096, 0x208c,
+	0x208f, 0x2092, 0x208f, 0x2092, 0x080c, 0x1cc3, 0x0005, 0x080c,
+	0x1167, 0x0005, 0x080c, 0x1cc3, 0x080c, 0x1167, 0x0005, 0x0126,
+	0x2091, 0x2600, 0x2079, 0x0200, 0x2071, 0x0260, 0x2069, 0x1800,
+	0x7817, 0x0000, 0x789b, 0x0814, 0x78a3, 0x0406, 0x789f, 0x0410,
+	0x2009, 0x013b, 0x200b, 0x0400, 0x781b, 0x0002, 0x783b, 0x001f,
+	0x7837, 0x0020, 0x7803, 0x1600, 0x012e, 0x0005, 0x2091, 0x2600,
+	0x781c, 0xd0a4, 0x190c, 0x21b5, 0x7900, 0xd1dc, 0x1118, 0x9084,
+	0x0006, 0x001a, 0x9084, 0x000e, 0x0002, 0x20dd, 0x20d5, 0x79e5,
+	0x20d5, 0x20d7, 0x20d7, 0x20d7, 0x20d7, 0x79cb, 0x20d5, 0x20d9,
+	0x20d5, 0x20d7, 0x20d5, 0x20d7, 0x20d5, 0x080c, 0x0db8, 0x0031,
+	0x0020, 0x080c, 0x79cb, 0x080c, 0x79e5, 0x0005, 0x0006, 0x0016,
+	0x0026, 0x080c, 0xe3d6, 0x7930, 0x9184, 0x0003, 0x01c0, 0x2001,
+	0x1a00, 0x2004, 0x9005, 0x0170, 0x2001, 0x0133, 0x2004, 0x9005,
+	0x090c, 0x0db8, 0x00c6, 0x2001, 0x1a00, 0x2064, 0x080c, 0xc22b,
+	0x00ce, 0x00f8, 0x2009, 0x0040, 0x080c, 0x21b8, 0x00d0, 0x9184,
+	0x0014, 0x01a0, 0x6a00, 0x9286, 0x0003, 0x0160, 0x080c, 0x7018,
+	0x1138, 0x080c, 0x72f1, 0x080c, 0x5ca9, 0x080c, 0x6f53, 0x0010,
+	0x080c, 0x5b68, 0x080c, 0x7a83, 0x0041, 0x0018, 0x9184, 0x9540,
+	0x1dc8, 0x002e, 0x001e, 0x000e, 0x0005, 0x00e6, 0x0036, 0x0046,
+	0x0056, 0x2071, 0x1a6d, 0x080c, 0x19a8, 0x005e, 0x004e, 0x003e,
+	0x00ee, 0x0005, 0x0126, 0x2091, 0x2e00, 0x2071, 0x1800, 0x7128,
+	0x2001, 0x197b, 0x2102, 0x2001, 0x1983, 0x2102, 0x2001, 0x013b,
+	0x2102, 0x2079, 0x0200, 0x2001, 0x0201, 0x789e, 0x78a3, 0x0200,
+	0x9198, 0x0007, 0x831c, 0x831c, 0x831c, 0x9398, 0x0005, 0x2320,
+	0x9182, 0x0204, 0x1230, 0x2011, 0x0008, 0x8423, 0x8423, 0x8423,
+	0x0488, 0x9182, 0x024c, 0x1240, 0x2011, 0x0007, 0x8403, 0x8003,
+	0x9400, 0x9400, 0x9420, 0x0430, 0x9182, 0x02bc, 0x1238, 0x2011,
+	0x0006, 0x8403, 0x8003, 0x9400, 0x9420, 0x00e0, 0x9182, 0x034c,
+	0x1230, 0x2011, 0x0005, 0x8403, 0x8003, 0x9420, 0x0098, 0x9182,
+	0x042c, 0x1228, 0x2011, 0x0004, 0x8423, 0x8423, 0x0058, 0x9182,
+	0x059c, 0x1228, 0x2011, 0x0003, 0x8403, 0x9420, 0x0018, 0x2011,
+	0x0002, 0x8423, 0x9482, 0x0228, 0x8002, 0x8020, 0x8301, 0x9402,
+	0x0110, 0x0208, 0x8321, 0x8217, 0x8203, 0x9405, 0x789a, 0x012e,
+	0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6814, 0x9084, 0xffc0,
+	0x910d, 0x6916, 0x00de, 0x000e, 0x0005, 0x00d6, 0x2069, 0x0200,
+	0x9005, 0x6810, 0x0110, 0xc0a5, 0x0008, 0xc0a4, 0x6812, 0x00de,
+	0x0005, 0x0006, 0x00d6, 0x2069, 0x0200, 0x6810, 0x9084, 0xfff8,
+	0x910d, 0x6912, 0x00de, 0x000e, 0x0005, 0x7938, 0x080c, 0x0db8,
+	0x00f6, 0x2079, 0x0200, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001,
+	0xa001, 0xa001, 0x7902, 0xa001, 0xa001, 0xa001, 0xa001, 0xa001,
+	0xa001, 0x00fe, 0x0005, 0x0126, 0x2091, 0x2800, 0x2061, 0x0100,
+	0x2071, 0x1800, 0x2009, 0x0000, 0x080c, 0x2a1c, 0x080c, 0x293f,
+	0x6054, 0x8004, 0x8004, 0x8004, 0x8004, 0x9084, 0x000c, 0x6150,
+	0x918c, 0xfff3, 0x9105, 0x6052, 0x6050, 0x9084, 0xb17f, 0x9085,
+	0x2000, 0x6052, 0x2009, 0x19a7, 0x2011, 0x19a8, 0x6358, 0x939c,
+	0x38f0, 0x2320, 0x080c, 0x2983, 0x1238, 0x939d, 0x4003, 0x94a5,
+	0x8603, 0x230a, 0x2412, 0x0030, 0x939d, 0x0203, 0x94a5, 0x8603,
+	0x230a, 0x2412, 0x9006, 0x080c, 0x296e, 0x9006, 0x080c, 0x2951,
+	0x20a9, 0x0012, 0x1d04, 0x220a, 0x2091, 0x6000, 0x1f04, 0x220a,
+	0x602f, 0x0100, 0x602f, 0x0000, 0x6050, 0x9085, 0x0400, 0x9084,
+	0xdfff, 0x6052, 0x6024, 0x6026, 0x080c, 0x265d, 0x2009, 0x00ef,
+	0x6132, 0x6136, 0x080c, 0x266d, 0x60e7, 0x0000, 0x61ea, 0x60e3,
+	0x0008, 0x604b, 0xf7f7, 0x6043, 0x0000, 0x602f, 0x0080, 0x602f,
+	0x0000, 0x6007, 0x249f, 0x60bb, 0x0000, 0x20a9, 0x0018, 0x60bf,
+	0x0000, 0x1f04, 0x2237, 0x60bb, 0x0000, 0x60bf, 0x0108, 0x60bf,
+	0x0012, 0x60bf, 0x0405, 0x60bf, 0x0014, 0x60bf, 0x0320, 0x60bf,
+	0x0018, 0x601b, 0x00f0, 0x601f, 0x001e, 0x600f, 0x006b, 0x602b,
+	0x402f, 0x012e, 0x0005, 0x00f6, 0x2079, 0x0140, 0x78c3, 0x0080,
+	0x78c3, 0x0083, 0x78c3, 0x0000, 0x00fe, 0x0005, 0x2001, 0x1834,
+	0x2003, 0x0000, 0x2001, 0x1833, 0x2003, 0x0001, 0x0005, 0x0126,
+	0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x6124, 0x0066, 0x2031,
+	0x1836, 0x2634, 0x96b4, 0x0028, 0x006e, 0x1138, 0x6020, 0xd1bc,
+	0x0120, 0xd0bc, 0x1168, 0xd0b4, 0x1198, 0x9184, 0x5e2c, 0x1118,
+	0x9184, 0x0007, 0x00aa, 0x9195, 0x0004, 0x9284, 0x0007, 0x0082,
+	0x0016, 0x2001, 0x1897, 0x200c, 0xd184, 0x001e, 0x0d70, 0x0c98,
+	0x0016, 0x2001, 0x1897, 0x200c, 0xd194, 0x001e, 0x0d30, 0x0c58,
+	0x22ba, 0x22a0, 0x22a3, 0x22a6, 0x22ab, 0x22ad, 0x22b1, 0x22b5,
+	0x080c, 0x8b98, 0x00b8, 0x080c, 0x8c49, 0x00a0, 0x080c, 0x8c49,
+	0x080c, 0x8b98, 0x0078, 0x0099, 0x0068, 0x080c, 0x8b98, 0x0079,
+	0x0048, 0x080c, 0x8c49, 0x0059, 0x0028, 0x080c, 0x8c49, 0x080c,
+	0x8b98, 0x0029, 0x002e, 0x001e, 0x000e, 0x012e, 0x0005, 0x00a6,
+	0x6124, 0x6028, 0xd09c, 0x0118, 0xd19c, 0x1904, 0x2522, 0xd1f4,
+	0x0110, 0x080c, 0x0db8, 0x080c, 0x7018, 0x0904, 0x2316, 0x080c,
+	0xccaa, 0x1120, 0x7000, 0x9086, 0x0003, 0x0570, 0x6024, 0x9084,
+	0x1800, 0x0550, 0x080c, 0x703b, 0x0118, 0x080c, 0x7029, 0x1520,
+	0x6027, 0x0020, 0x6043, 0x0000, 0x080c, 0xccaa, 0x0168, 0x080c,
+	0x703b, 0x1150, 0x2001, 0x19b1, 0x2003, 0x0001, 0x6027, 0x1800,
+	0x080c, 0x6eb4, 0x0804, 0x2525, 0x709c, 0x9005, 0x1150, 0x709f,
+	0x0001, 0x00d6, 0x2069, 0x0140, 0x080c, 0x7071, 0x00de, 0x1904,
+	0x2525, 0x080c, 0x72fb, 0x0428, 0x080c, 0x703b, 0x1590, 0x6024,
+	0x9084, 0x1800, 0x1108, 0x0468, 0x080c, 0x72fb, 0x080c, 0x72f1,
+	0x080c, 0x5ca9, 0x080c, 0x6f53, 0x0804, 0x2522, 0xd1ac, 0x1508,
+	0x6024, 0xd0dc, 0x1170, 0xd0e4, 0x1178, 0xd0d4, 0x1190, 0xd0cc,
+	0x0130, 0x7090, 0x9086, 0x0028, 0x1110, 0x080c, 0x71de, 0x0804,
+	0x2522, 0x080c, 0x72f6, 0x0048, 0x2001, 0x1989, 0x2003, 0x0002,
+	0x0020, 0x080c, 0x7154, 0x0804, 0x2522, 0x080c, 0x7279, 0x0804,
+	0x2522, 0x6220, 0xd1bc, 0x0138, 0xd2bc, 0x1904, 0x2595, 0xd2b4,
+	0x1904, 0x25a8, 0x0000, 0xd1ac, 0x0904, 0x2437, 0x0036, 0x6328,
+	0xc3bc, 0x632a, 0x003e, 0x080c, 0x7018, 0x11c0, 0x6027, 0x0020,
+	0x0006, 0x0026, 0x0036, 0x080c, 0x7032, 0x1158, 0x080c, 0x72f1,
+	0x080c, 0x5ca9, 0x080c, 0x6f53, 0x003e, 0x002e, 0x000e, 0x00ae,
+	0x0005, 0x003e, 0x002e, 0x000e, 0x080c, 0x6ff4, 0x0016, 0x0046,
+	0x00c6, 0x644c, 0x9486, 0xf0f0, 0x1138, 0x2061, 0x0100, 0x644a,
+	0x6043, 0x0090, 0x6043, 0x0010, 0x74d6, 0x948c, 0xff00, 0x7034,
+	0xd084, 0x0178, 0x9186, 0xf800, 0x1160, 0x7040, 0xd084, 0x1148,
+	0xc085, 0x7042, 0x0036, 0x2418, 0x2011, 0x8016, 0x080c, 0x47db,
+	0x003e, 0x080c, 0xcca3, 0x1904, 0x2414, 0x9196, 0xff00, 0x05a8,
+	0x7058, 0x9084, 0x00ff, 0x810f, 0x81ff, 0x0110, 0x9116, 0x0568,
+	0x7130, 0xd184, 0x1550, 0x080c, 0x30e8, 0x0128, 0xc18d, 0x7132,
+	0x080c, 0x65d0, 0x1510, 0x6240, 0x9294, 0x0010, 0x0130, 0x6248,
+	0x9294, 0xff00, 0x9296, 0xff00, 0x01c0, 0x7030, 0xd08c, 0x0904,
+	0x2414, 0x7034, 0xd08c, 0x1140, 0x2001, 0x180c, 0x200c, 0xd1ac,
+	0x1904, 0x2414, 0xc1ad, 0x2102, 0x0036, 0x73d4, 0x2011, 0x8013,
+	0x080c, 0x47db, 0x003e, 0x0804, 0x2414, 0x7034, 0xd08c, 0x1140,
+	0x2001, 0x180c, 0x200c, 0xd1ac, 0x1904, 0x2414, 0xc1ad, 0x2102,
+	0x0036, 0x73d4, 0x2011, 0x8013, 0x080c, 0x47db, 0x003e, 0x7130,
+	0xc185, 0x7132, 0x2011, 0x1854, 0x220c, 0xd1a4, 0x01f0, 0x0016,
+	0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x82bd, 0x2019, 0x000e,
+	0x00c6, 0x2061, 0x0000, 0x080c, 0xdf1d, 0x00ce, 0x9484, 0x00ff,
+	0x9080, 0x30f4, 0x200d, 0x918c, 0xff00, 0x810f, 0x2120, 0x9006,
+	0x2009, 0x000e, 0x080c, 0xdfa9, 0x001e, 0x0016, 0x900e, 0x2019,
+	0x0004, 0x080c, 0x2f63, 0x001e, 0x0078, 0x0156, 0x00b6, 0x20a9,
+	0x007f, 0x900e, 0x080c, 0x6274, 0x1110, 0x080c, 0x5cc3, 0x8108,
+	0x1f04, 0x240a, 0x00be, 0x015e, 0x00ce, 0x004e, 0x080c, 0xa8dc,
+	0x60e3, 0x0000, 0x001e, 0x2001, 0x1800, 0x2014, 0x9296, 0x0004,
+	0x1170, 0xd19c, 0x11a0, 0x2011, 0x180c, 0x2214, 0xd29c, 0x1120,
+	0x6204, 0x9295, 0x0002, 0x6206, 0x6228, 0xc29d, 0x622a, 0x2003,
+	0x0001, 0x2001, 0x1824, 0x2003, 0x0000, 0x6027, 0x0020, 0xd194,
+	0x0904, 0x2522, 0x0016, 0x6220, 0xd2b4, 0x0904, 0x24bf, 0x080c,
+	0x816f, 0x080c, 0x9dfe, 0x6027, 0x0004, 0x00f6, 0x2019, 0x19fa,
+	0x2304, 0x907d, 0x0904, 0x248e, 0x7804, 0x9086, 0x0032, 0x15f0,
+	0x00d6, 0x00c6, 0x00e6, 0x0096, 0x2069, 0x0140, 0x782c, 0x685e,
+	0x7808, 0x685a, 0x6043, 0x0002, 0x2001, 0x0003, 0x8001, 0x1df0,
+	0x6043, 0x0000, 0x2001, 0x003c, 0x8001, 0x1df0, 0x080c, 0x2ade,
+	0x2001, 0x001e, 0x8001, 0x0240, 0x20a9, 0x0009, 0x080c, 0x29f7,
+	0x6904, 0xd1dc, 0x1140, 0x0cb0, 0x2001, 0x0100, 0x080c, 0x2ac9,
+	0x9006, 0x080c, 0x2ac9, 0x080c, 0x912c, 0x080c, 0x922b, 0x7814,
+	0x2048, 0xa867, 0x0103, 0x2f60, 0x080c, 0xa96b, 0x009e, 0x00ee,
+	0x00ce, 0x00de, 0x00fe, 0x001e, 0x00ae, 0x0005, 0x00fe, 0x00d6,
+	0x2069, 0x0140, 0x6804, 0x9084, 0x4000, 0x0110, 0x080c, 0x2ade,
+	0x00de, 0x00c6, 0x2061, 0x19f1, 0x6028, 0x080c, 0xccaa, 0x0120,
+	0x909a, 0x0003, 0x1258, 0x0018, 0x909a, 0x00c8, 0x1238, 0x8000,
+	0x602a, 0x00ce, 0x080c, 0x9dda, 0x0804, 0x2521, 0x2061, 0x0100,
+	0x62c0, 0x080c, 0xa767, 0x2019, 0x19fa, 0x2304, 0x9065, 0x0120,
+	0x2009, 0x0027, 0x080c, 0xa9e6, 0x00ce, 0x0804, 0x2521, 0xd2bc,
+	0x0904, 0x2508, 0x080c, 0x817c, 0x6014, 0x9084, 0x1984, 0x9085,
+	0x0010, 0x6016, 0x6027, 0x0004, 0x00d6, 0x2069, 0x0140, 0x6804,
+	0x9084, 0x4000, 0x0110, 0x080c, 0x2ade, 0x00de, 0x00c6, 0x2061,
+	0x19f1, 0x6044, 0x080c, 0xccaa, 0x0120, 0x909a, 0x0003, 0x1658,
+	0x0018, 0x909a, 0x00c8, 0x1638, 0x8000, 0x6046, 0x603c, 0x00ce,
+	0x9005, 0x05b8, 0x2009, 0x07d0, 0x080c, 0x8174, 0x9080, 0x0008,
+	0x2004, 0x9086, 0x0006, 0x1138, 0x6114, 0x918c, 0x1984, 0x918d,
+	0x0012, 0x6116, 0x0430, 0x9080, 0x0008, 0x2004, 0x9086, 0x0009,
+	0x0d98, 0x6114, 0x918c, 0x1984, 0x918d, 0x0016, 0x6116, 0x00c8,
+	0x6027, 0x0004, 0x00b0, 0x0036, 0x2019, 0x0001, 0x080c, 0xa0c0,
+	0x003e, 0x2019, 0x1a00, 0x2304, 0x9065, 0x0150, 0x2009, 0x004f,
+	0x6020, 0x9086, 0x0009, 0x1110, 0x2009, 0x004f, 0x080c, 0xa9e6,
+	0x00ce, 0x001e, 0xd19c, 0x0904, 0x2590, 0x7034, 0xd0ac, 0x1904,
+	0x2569, 0x0016, 0x0156, 0x6027, 0x0008, 0x6050, 0x9085, 0x0040,
+	0x6052, 0x6050, 0x9084, 0xfbcf, 0x6052, 0x080c, 0x2a16, 0x9085,
+	0x2000, 0x6052, 0x20a9, 0x0012, 0x1d04, 0x253c, 0x080c, 0x81a3,
+	0x1f04, 0x253c, 0x6050, 0x9085, 0x0400, 0x9084, 0xdfbf, 0x6052,
+	0x20a9, 0x0028, 0xa001, 0x1f04, 0x254a, 0x6150, 0x9185, 0x1400,
+	0x6052, 0x20a9, 0x0366, 0x1d04, 0x2553, 0x080c, 0x81a3, 0x6020,
+	0xd09c, 0x1130, 0x015e, 0x6152, 0x001e, 0x6027, 0x0008, 0x0480,
+	0x080c, 0x29de, 0x1f04, 0x2553, 0x015e, 0x6152, 0x001e, 0x6027,
+	0x0008, 0x0016, 0x6028, 0xc09c, 0x602a, 0x080c, 0xa8dc, 0x60e3,
+	0x0000, 0x080c, 0xe3b5, 0x080c, 0xe3d0, 0x080c, 0x53a7, 0xd0fc,
+	0x1138, 0x080c, 0xcca3, 0x1120, 0x9085, 0x0001, 0x080c, 0x7061,
+	0x9006, 0x080c, 0x2ac9, 0x2009, 0x0002, 0x080c, 0x2a1c, 0x2001,
+	0x1800, 0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0x0b91, 0x001e,
+	0x918c, 0xffd0, 0x6126, 0x00ae, 0x0005, 0x0016, 0x2001, 0x1897,
+	0x200c, 0xd184, 0x001e, 0x0904, 0x2343, 0x0016, 0x2009, 0x25a1,
+	0x00d0, 0x2001, 0x1897, 0x200c, 0xc184, 0x2102, 0x001e, 0x0c40,
+	0x0016, 0x2001, 0x1897, 0x200c, 0xd194, 0x001e, 0x0904, 0x2343,
+	0x0016, 0x2009, 0x25b4, 0x0038, 0x2001, 0x1897, 0x200c, 0xc194,
+	0x2102, 0x001e, 0x08a8, 0x6028, 0xc0bc, 0x602a, 0x2001, 0x0156,
+	0x2003, 0xbc91, 0x8000, 0x2003, 0xffff, 0x6043, 0x0001, 0x080c,
+	0x2a16, 0x6027, 0x0080, 0x6017, 0x0000, 0x6043, 0x0000, 0x0817,
+	0x0006, 0x0016, 0x0026, 0x0036, 0x00e6, 0x00f6, 0x0126, 0x2091,
+	0x8000, 0x2071, 0x1800, 0x71cc, 0x70ce, 0x9116, 0x05e8, 0x81ff,
+	0x01a0, 0x2009, 0x0000, 0x080c, 0x2a1c, 0x2011, 0x8011, 0x2019,
+	0x010e, 0x231c, 0x939e, 0x0007, 0x1118, 0x2019, 0x0001, 0x0010,
+	0x2019, 0x0000, 0x080c, 0x47db, 0x0438, 0x2001, 0x19b2, 0x200c,
+	0x81ff, 0x1140, 0x2001, 0x0109, 0x2004, 0xd0b4, 0x0118, 0x2019,
+	0x0003, 0x0008, 0x2118, 0x2011, 0x8012, 0x080c, 0x47db, 0x080c,
+	0x53a7, 0xd0fc, 0x1188, 0x080c, 0xcca3, 0x1170, 0x00c6, 0x080c,
+	0x26b8, 0x080c, 0xa003, 0x2061, 0x0100, 0x2019, 0x0028, 0x2009,
+	0x0002, 0x080c, 0x2f63, 0x00ce, 0x012e, 0x00fe, 0x00ee, 0x003e,
+	0x002e, 0x001e, 0x000e, 0x0005, 0x2028, 0x918c, 0x00ff, 0x2130,
+	0x9094, 0xff00, 0x11f0, 0x2011, 0x1836, 0x2214, 0xd2ac, 0x11c8,
+	0x81ff, 0x01e8, 0x2011, 0x181d, 0x2204, 0x9106, 0x1190, 0x2011,
+	0x181e, 0x2214, 0x9294, 0xff00, 0x9584, 0xff00, 0x9206, 0x1148,
+	0x2011, 0x181e, 0x2214, 0x9294, 0x00ff, 0x9584, 0x00ff, 0x9206,
+	0x1120, 0x2500, 0x080c, 0x7cc5, 0x0048, 0x9584, 0x00ff, 0x9080,
+	0x30f4, 0x200d, 0x918c, 0xff00, 0x810f, 0x9006, 0x0005, 0x9080,
+	0x30f4, 0x200d, 0x918c, 0x00ff, 0x0005, 0x00d6, 0x2069, 0x0140,
+	0x2001, 0x1816, 0x2003, 0x00ef, 0x20a9, 0x0010, 0x9006, 0x6852,
+	0x6856, 0x1f04, 0x2668, 0x00de, 0x0005, 0x0006, 0x00d6, 0x0026,
+	0x2069, 0x0140, 0x2001, 0x1816, 0x2102, 0x8114, 0x8214, 0x8214,
+	0x8214, 0x20a9, 0x0010, 0x6853, 0x0000, 0x9006, 0x82ff, 0x1128,
+	0x9184, 0x000f, 0x9080, 0xeab2, 0x2005, 0x6856, 0x8211, 0x1f04,
+	0x267d, 0x002e, 0x00de, 0x000e, 0x0005, 0x00c6, 0x2061, 0x1800,
+	0x6030, 0x0110, 0xc09d, 0x0008, 0xc09c, 0x6032, 0x00ce, 0x0005,
+	0x0156, 0x00d6, 0x0026, 0x0016, 0x0006, 0x2069, 0x0140, 0x6980,
+	0x9116, 0x0180, 0x9112, 0x1230, 0x8212, 0x8210, 0x22a8, 0x2001,
+	0x0402, 0x0018, 0x22a8, 0x2001, 0x0404, 0x680e, 0x1f04, 0x26ad,
+	0x680f, 0x0000, 0x000e, 0x001e, 0x002e, 0x00de, 0x015e, 0x0005,
+	0x080c, 0x53a3, 0xd0c4, 0x0150, 0xd0a4, 0x0140, 0x9006, 0x0046,
+	0x2020, 0x2009, 0x002e, 0x080c, 0xdfa9, 0x004e, 0x0005, 0x00f6,
+	0x0016, 0x0026, 0x2079, 0x0140, 0x78c4, 0xd0dc, 0x0904, 0x2724,
+	0x080c, 0x2983, 0x0660, 0x9084, 0x0700, 0x908e, 0x0600, 0x1120,
+	0x2011, 0x4000, 0x900e, 0x0458, 0x908e, 0x0500, 0x1120, 0x2011,
+	0x8000, 0x900e, 0x0420, 0x908e, 0x0400, 0x1120, 0x9016, 0x2009,
+	0x0001, 0x00e8, 0x908e, 0x0300, 0x1120, 0x9016, 0x2009, 0x0002,
+	0x00b0, 0x908e, 0x0200, 0x1120, 0x9016, 0x2009, 0x0004, 0x0078,
+	0x908e, 0x0100, 0x1548, 0x9016, 0x2009, 0x0008, 0x0040, 0x9084,
+	0x0700, 0x908e, 0x0300, 0x1500, 0x2011, 0x0030, 0x0058, 0x2300,
+	0x9080, 0x0020, 0x2018, 0x080c, 0x8b2b, 0x928c, 0xff00, 0x0110,
+	0x2011, 0x00ff, 0x2200, 0x8007, 0x9085, 0x004c, 0x78c2, 0x2009,
+	0x0138, 0x220a, 0x080c, 0x7018, 0x1118, 0x2009, 0x1979, 0x220a,
+	0x002e, 0x001e, 0x00fe, 0x0005, 0x78c3, 0x0000, 0x0cc8, 0x0126,
+	0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x2001, 0x0170, 0x200c,
+	0x8000, 0x2014, 0x9184, 0x0003, 0x0110, 0x080c, 0x0db8, 0x002e,
+	0x001e, 0x000e, 0x012e, 0x0005, 0x2001, 0x0171, 0x2004, 0xd0dc,
+	0x0168, 0x2001, 0x0170, 0x200c, 0x918c, 0x00ff, 0x918e, 0x004c,
+	0x1128, 0x200c, 0x918c, 0xff00, 0x810f, 0x0005, 0x900e, 0x2001,
+	0x0227, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x2001,
+	0x0226, 0x2004, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9108, 0x0005,
+	0x0018, 0x000c, 0x0018, 0x0020, 0x1000, 0x0800, 0x1000, 0x1800,
+	0x0156, 0x0006, 0x0016, 0x0026, 0x00e6, 0x2001, 0x199a, 0x2004,
+	0x908a, 0x0007, 0x1a0c, 0x0db8, 0x0033, 0x00ee, 0x002e, 0x001e,
+	0x000e, 0x015e, 0x0005, 0x2782, 0x27a0, 0x27c4, 0x27c6, 0x27ef,
+	0x27f1, 0x27f3, 0x2001, 0x0001, 0x080c, 0x25d0, 0x080c, 0x29d9,
+	0x2001, 0x199c, 0x2003, 0x0000, 0x7828, 0x9084, 0xe1d7, 0x782a,
+	0x9006, 0x20a9, 0x0009, 0x080c, 0x2997, 0x2001, 0x199a, 0x2003,
+	0x0006, 0x2009, 0x001e, 0x2011, 0x27f4, 0x080c, 0x8181, 0x0005,
+	0x2009, 0x199f, 0x200b, 0x0000, 0x2001, 0x19a4, 0x2003, 0x0036,
+	0x2001, 0x19a3, 0x2003, 0x002a, 0x2001, 0x199c, 0x2003, 0x0001,
+	0x9006, 0x080c, 0x2951, 0x2001, 0xffff, 0x20a9, 0x0009, 0x080c,
+	0x2997, 0x2001, 0x199a, 0x2003, 0x0006, 0x2009, 0x001e, 0x2011,
+	0x27f4, 0x080c, 0x8181, 0x0005, 0x080c, 0x0db8, 0x2001, 0x19a4,
+	0x2003, 0x0036, 0x2001, 0x199c, 0x2003, 0x0003, 0x7a38, 0x9294,
+	0x0005, 0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,
+	0x080c, 0x2951, 0x2001, 0x19a0, 0x2003, 0x0000, 0x2001, 0xffff,
+	0x20a9, 0x0009, 0x080c, 0x2997, 0x2001, 0x199a, 0x2003, 0x0006,
+	0x2009, 0x001e, 0x2011, 0x27f4, 0x080c, 0x8181, 0x0005, 0x080c,
+	0x0db8, 0x080c, 0x0db8, 0x0005, 0x0006, 0x0016, 0x0026, 0x00e6,
+	0x00f6, 0x0156, 0x0126, 0x2091, 0x8000, 0x2079, 0x0100, 0x2001,
+	0x199c, 0x2004, 0x908a, 0x0007, 0x1a0c, 0x0db8, 0x0043, 0x012e,
+	0x015e, 0x00fe, 0x00ee, 0x002e, 0x001e, 0x000e, 0x0005, 0x2816,
+	0x2836, 0x2876, 0x28a6, 0x28ca, 0x28da, 0x28dc, 0x080c, 0x298b,
+	0x11b0, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009, 0x19a2, 0x2104,
+	0x7a38, 0x9294, 0x0005, 0x9296, 0x0004, 0x0110, 0xc08d, 0x0008,
+	0xc085, 0x200a, 0x2001, 0x199a, 0x2003, 0x0001, 0x0030, 0x080c,
+	0x2900, 0x2001, 0xffff, 0x080c, 0x2791, 0x0005, 0x080c, 0x28de,
+	0x05e0, 0x2009, 0x19a3, 0x2104, 0x8001, 0x200a, 0x080c, 0x298b,
+	0x1178, 0x7850, 0x9084, 0xefff, 0x7852, 0x7a38, 0x9294, 0x0005,
+	0x9296, 0x0005, 0x0518, 0x2009, 0x19a2, 0x2104, 0xc085, 0x200a,
+	0x2009, 0x199f, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0118,
+	0x080c, 0x28e6, 0x00c0, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006,
+	0x9296, 0x0004, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c,
+	0x296e, 0x2001, 0x199c, 0x2003, 0x0002, 0x0028, 0x2001, 0x199a,
+	0x2003, 0x0003, 0x0010, 0x080c, 0x27b3, 0x0005, 0x080c, 0x28de,
+	0x0560, 0x2009, 0x19a3, 0x2104, 0x8001, 0x200a, 0x080c, 0x298b,
+	0x1168, 0x7850, 0x9084, 0xefff, 0x7852, 0x2001, 0x199a, 0x2003,
+	0x0003, 0x2001, 0x199b, 0x2003, 0x0000, 0x00b8, 0x2009, 0x19a3,
+	0x2104, 0x9005, 0x1118, 0x080c, 0x2923, 0x0010, 0x080c, 0x28f3,
+	0x080c, 0x28e6, 0x2009, 0x199f, 0x200b, 0x0000, 0x2001, 0x199c,
+	0x2003, 0x0001, 0x080c, 0x27b3, 0x0000, 0x0005, 0x04b9, 0x0508,
+	0x080c, 0x298b, 0x11b8, 0x7850, 0x9084, 0xefff, 0x7852, 0x2009,
+	0x19a0, 0x2104, 0x8000, 0x200a, 0x9086, 0x0007, 0x0108, 0x0078,
+	0x2001, 0x19a5, 0x2003, 0x000a, 0x2009, 0x19a2, 0x2104, 0xc0fd,
+	0x200a, 0x0038, 0x0419, 0x2001, 0x199c, 0x2003, 0x0004, 0x080c,
+	0x27de, 0x0005, 0x0099, 0x0168, 0x080c, 0x298b, 0x1138, 0x7850,
+	0x9084, 0xefff, 0x7852, 0x080c, 0x27ca, 0x0018, 0x0079, 0x080c,
+	0x27de, 0x0005, 0x080c, 0x0db8, 0x080c, 0x0db8, 0x2009, 0x19a4,
+	0x2104, 0x8001, 0x200a, 0x090c, 0x293f, 0x0005, 0x7a38, 0x9294,
+	0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,
+	0x080c, 0x296e, 0x0005, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006,
+	0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x080c, 0x2951, 0x0005,
+	0x2009, 0x199f, 0x2104, 0x8000, 0x200a, 0x9086, 0x0005, 0x0108,
+	0x0068, 0x200b, 0x0000, 0x7a38, 0x9294, 0x0006, 0x9296, 0x0006,
+	0x0110, 0x9006, 0x0010, 0x2001, 0x0001, 0x04d9, 0x7a38, 0x9294,
+	0x0005, 0x9296, 0x0005, 0x0110, 0x9006, 0x0010, 0x2001, 0x0001,
+	0x080c, 0x296e, 0x0005, 0x0086, 0x2001, 0x19a2, 0x2004, 0x9084,
+	0x7fff, 0x090c, 0x0db8, 0x2009, 0x19a1, 0x2144, 0x8846, 0x280a,
+	0x9844, 0x0dd8, 0xd08c, 0x1120, 0xd084, 0x1120, 0x080c, 0x0db8,
+	0x9006, 0x0010, 0x2001, 0x0001, 0x00a1, 0x008e, 0x0005, 0x0006,
+	0x0156, 0x2001, 0x199a, 0x20a9, 0x0009, 0x2003, 0x0000, 0x8000,
+	0x1f04, 0x2945, 0x2001, 0x19a1, 0x2003, 0x8000, 0x015e, 0x000e,
+	0x0005, 0x00f6, 0x2079, 0x0100, 0x9085, 0x0000, 0x0158, 0x7838,
+	0x9084, 0xfff9, 0x9085, 0x0004, 0x783a, 0x2009, 0x19a7, 0x210c,
+	0x795a, 0x0050, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0006, 0x783a,
+	0x2009, 0x19a8, 0x210c, 0x795a, 0x00fe, 0x0005, 0x00f6, 0x2079,
+	0x0100, 0x9085, 0x0000, 0x0138, 0x7838, 0x9084, 0xfffa, 0x9085,
+	0x0004, 0x783a, 0x0030, 0x7838, 0x9084, 0xfffb, 0x9085, 0x0005,
+	0x783a, 0x00fe, 0x0005, 0x0006, 0x2001, 0x0100, 0x2004, 0x9082,
+	0x0007, 0x000e, 0x0005, 0x0156, 0x20a9, 0x0064, 0x7820, 0x080c,
+	0x2a16, 0xd09c, 0x1110, 0x1f04, 0x298e, 0x015e, 0x0005, 0x0126,
+	0x0016, 0x0006, 0x2091, 0x8000, 0x7850, 0x9085, 0x0040, 0x7852,
+	0x7850, 0x9084, 0xfbcf, 0x7852, 0x080c, 0x2a16, 0x9085, 0x2000,
+	0x7852, 0x000e, 0x2008, 0x9186, 0x0000, 0x1118, 0x783b, 0x0007,
+	0x0090, 0x9186, 0x0001, 0x1118, 0x783b, 0x0006, 0x0060, 0x9186,
+	0x0002, 0x1118, 0x783b, 0x0005, 0x0030, 0x9186, 0x0003, 0x1118,
+	0x783b, 0x0004, 0x0000, 0x0006, 0x1d04, 0x29c4, 0x080c, 0x81a3,
+	0x1f04, 0x29c4, 0x7850, 0x9085, 0x0400, 0x9084, 0xdfbf, 0x7852,
+	0x080c, 0x2a16, 0x9085, 0x1000, 0x7852, 0x000e, 0x001e, 0x012e,
+	0x0005, 0x7850, 0x9084, 0xffcf, 0x7852, 0x0005, 0x0006, 0x0156,
+	0x00f6, 0x2079, 0x0100, 0x20a9, 0x000a, 0x7854, 0xd0ac, 0x1130,
+	0x7820, 0xd0e4, 0x1140, 0x1f04, 0x29e8, 0x0028, 0x7854, 0xd08c,
+	0x1110, 0x1f04, 0x29ee, 0x00fe, 0x015e, 0x000e, 0x0005, 0x1d04,
+	0x29f7, 0x080c, 0x81a3, 0x1f04, 0x29f7, 0x0005, 0x0006, 0x2001,
+	0x19a6, 0x2004, 0x9086, 0x0000, 0x000e, 0x0005, 0x0006, 0x2001,
+	0x19a6, 0x2004, 0x9086, 0x0001, 0x000e, 0x0005, 0x0006, 0x2001,
+	0x19a6, 0x2004, 0x9086, 0x0002, 0x000e, 0x0005, 0xa001, 0xa001,
+	0xa001, 0xa001, 0xa001, 0x0005, 0x0006, 0x2001, 0x19b2, 0x2102,
+	0x000e, 0x0005, 0x2009, 0x0171, 0x2104, 0xd0dc, 0x0140, 0x2009,
+	0x0170, 0x2104, 0x200b, 0x0080, 0xa001, 0xa001, 0x200a, 0x0005,
+	0x0036, 0x0046, 0x2001, 0x0141, 0x200c, 0x918c, 0xff00, 0x9186,
+	0x2000, 0x0118, 0x9186, 0x0100, 0x1588, 0x2009, 0x017f, 0x200b,
+	0x00a2, 0x2019, 0x0160, 0x2324, 0x2011, 0x0003, 0x2009, 0x0169,
+	0x2104, 0x9084, 0x0007, 0x210c, 0x918c, 0x0007, 0x910e, 0x1db0,
+	0x9086, 0x0003, 0x11b8, 0x2304, 0x9402, 0x02a0, 0x1d60, 0x8211,
+	0x1d68, 0x84ff, 0x0170, 0x2001, 0x0141, 0x200c, 0x918c, 0xff00,
+	0x9186, 0x0100, 0x0130, 0x2009, 0x180c, 0x2104, 0xc0dd, 0x200a,
+	0x0008, 0x0419, 0x2001, 0x017f, 0x2003, 0x0000, 0x004e, 0x003e,
+	0x0005, 0x2001, 0x180c, 0x2004, 0xd0dc, 0x01b0, 0x2001, 0x0160,
+	0x2004, 0x9005, 0x0140, 0x2001, 0x0141, 0x2004, 0x9084, 0xff00,
+	0x9086, 0x0100, 0x1148, 0x0126, 0x2091, 0x8000, 0x0016, 0x0026,
+	0x0021, 0x002e, 0x001e, 0x012e, 0x0005, 0x00c6, 0x2061, 0x0100,
+	0x6014, 0x0006, 0x2001, 0x0161, 0x2003, 0x0000, 0x6017, 0x0018,
+	0xa001, 0xa001, 0x602f, 0x0008, 0x6104, 0x918e, 0x0010, 0x6106,
+	0x918e, 0x0010, 0x6106, 0x6017, 0x0040, 0x04c1, 0x001e, 0x9184,
+	0x0003, 0x01c0, 0x0036, 0x2019, 0x0141, 0x2304, 0x9084, 0xff00,
+	0x9086, 0x0800, 0x1dd0, 0x919c, 0xffe4, 0x9184, 0x0001, 0x0118,
+	0x9385, 0x0009, 0x6016, 0x9184, 0x0002, 0x0118, 0x9385, 0x0012,
+	0x6016, 0x003e, 0x2001, 0x180c, 0x200c, 0xc1dc, 0x2102, 0x00ce,
+	0x0005, 0x0016, 0x0026, 0x0006, 0x080c, 0xccaa, 0x000e, 0x0120,
+	0x080c, 0x7032, 0x0108, 0xc0bc, 0x2009, 0x0140, 0x2114, 0x9294,
+	0x0001, 0x9215, 0x220a, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026,
+	0x2009, 0x0140, 0x2114, 0x9294, 0x0001, 0x9285, 0x1000, 0x200a,
+	0x220a, 0x002e, 0x001e, 0x0005, 0x0016, 0x0026, 0x2009, 0x0140,
+	0x2114, 0x9294, 0x0001, 0x9215, 0x220a, 0x002e, 0x001e, 0x0005,
+	0x0006, 0x0016, 0x2009, 0x0140, 0x2104, 0x1110, 0xc0bc, 0x0008,
+	0xc0bd, 0x200a, 0x001e, 0x000e, 0x0005, 0x2d71, 0x2d71, 0x2b95,
+	0x2b95, 0x2ba1, 0x2ba1, 0x2bad, 0x2bad, 0x2bbb, 0x2bbb, 0x2bc7,
+	0x2bc7, 0x2bd5, 0x2bd5, 0x2be3, 0x2be3, 0x2bf5, 0x2bf5, 0x2c01,
+	0x2c01, 0x2c0f, 0x2c0f, 0x2c2d, 0x2c2d, 0x2c4d, 0x2c4d, 0x2c1d,
+	0x2c1d, 0x2c3d, 0x2c3d, 0x2c5b, 0x2c5b, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2c6d, 0x2c6d, 0x2c79,
+	0x2c79, 0x2c87, 0x2c87, 0x2c95, 0x2c95, 0x2ca5, 0x2ca5, 0x2cb3,
+	0x2cb3, 0x2cc3, 0x2cc3, 0x2cd3, 0x2cd3, 0x2ce5, 0x2ce5, 0x2cf3,
+	0x2cf3, 0x2d03, 0x2d03, 0x2d25, 0x2d25, 0x2d47, 0x2d47, 0x2d13,
+	0x2d13, 0x2d36, 0x2d36, 0x2d56, 0x2d56, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3,
+	0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x2bf3, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2267, 0x0804,
+	0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,
+	0x0156, 0x080c, 0x207e, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,
+	0x2267, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106,
+	0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,
+	0x2267, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0x2267, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0xa001, 0x0cf0, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x132f, 0x0804,
+	0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,
+	0x0156, 0x080c, 0x2267, 0x080c, 0x132f, 0x0804, 0x2d69, 0x0106,
+	0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,
+	0x207e, 0x080c, 0x132f, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2267, 0x080c,
+	0x132f, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,
+	0x2267, 0x080c, 0x132f, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c,
+	0x132f, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x132f, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x207e, 0x080c, 0x2267, 0x080c,
+	0x132f, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x0804,
+	0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146,
+	0x0156, 0x080c, 0x2727, 0x080c, 0x2267, 0x0804, 0x2d69, 0x0106,
+	0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,
+	0x2727, 0x080c, 0x207e, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c,
+	0x207e, 0x080c, 0x2267, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x2267, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x207e, 0x080c,
+	0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x207e, 0x080c,
+	0x2267, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c,
+	0x132f, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x2267, 0x080c,
+	0x132f, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x207e, 0x080c,
+	0x132f, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126, 0x01c6, 0x01d6,
+	0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c, 0x2267, 0x080c,
+	0x132f, 0x080c, 0x20b6, 0x0804, 0x2d69, 0x0106, 0x0006, 0x0126,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727, 0x080c,
+	0x207e, 0x080c, 0x2267, 0x080c, 0x132f, 0x0498, 0x0106, 0x0006,
+	0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727,
+	0x080c, 0x207e, 0x080c, 0x132f, 0x080c, 0x20b6, 0x0410, 0x0106,
+	0x0006, 0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c,
+	0x2727, 0x080c, 0x132f, 0x080c, 0x20b6, 0x0098, 0x0106, 0x0006,
+	0x0126, 0x01c6, 0x01d6, 0x0136, 0x0146, 0x0156, 0x080c, 0x2727,
+	0x080c, 0x207e, 0x080c, 0x2267, 0x080c, 0x132f, 0x080c, 0x20b6,
+	0x0000, 0x015e, 0x014e, 0x013e, 0x01de, 0x01ce, 0x012e, 0x000e,
+	0x010e, 0x000d, 0x00b6, 0x00c6, 0x0026, 0x0046, 0x9026, 0x080c,
+	0x6596, 0x1904, 0x2e7f, 0x72d8, 0x2001, 0x1988, 0x2004, 0x9005,
+	0x1110, 0xd29c, 0x0148, 0xd284, 0x1138, 0xd2bc, 0x1904, 0x2e7f,
+	0x080c, 0x2e84, 0x0804, 0x2e7f, 0xd2cc, 0x1904, 0x2e7f, 0x080c,
+	0x7018, 0x1120, 0x70a7, 0xffff, 0x0804, 0x2e7f, 0xd294, 0x0120,
+	0x70a7, 0xffff, 0x0804, 0x2e7f, 0x080c, 0x30e3, 0x0160, 0x080c,
+	0xccaa, 0x0128, 0x2001, 0x1816, 0x203c, 0x0804, 0x2e0c, 0x70a7,
+	0xffff, 0x0804, 0x2e7f, 0x2001, 0x1816, 0x203c, 0x728c, 0xd284,
+	0x0904, 0x2e0c, 0xd28c, 0x1904, 0x2e0c, 0x0036, 0x73a4, 0x938e,
+	0xffff, 0x1110, 0x2019, 0x0001, 0x8314, 0x92e0, 0x1c80, 0x2c04,
+	0x938c, 0x0001, 0x0120, 0x9084, 0xff00, 0x8007, 0x0010, 0x9084,
+	0x00ff, 0x970e, 0x05b8, 0x908e, 0x0000, 0x05a0, 0x908e, 0x00ff,
+	0x1150, 0x7230, 0xd284, 0x1598, 0x728c, 0xc28d, 0x728e, 0x70a7,
+	0xffff, 0x003e, 0x0488, 0x900e, 0x080c, 0x2624, 0x080c, 0x6213,
+	0x1520, 0x9006, 0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0148, 0x00c6,
+	0x2060, 0x080c, 0x8544, 0x00ce, 0x090c, 0x88e8, 0xb8af, 0x0000,
+	0x080c, 0x65d8, 0x1150, 0x7030, 0xd08c, 0x0118, 0xb800, 0xd0bc,
+	0x0120, 0x080c, 0x2e9d, 0x0148, 0x0028, 0x080c, 0x2fd9, 0x080c,
+	0x2ec9, 0x0118, 0x8318, 0x0804, 0x2dbc, 0x73a6, 0x0010, 0x70a7,
+	0xffff, 0x003e, 0x0804, 0x2e7f, 0x9780, 0x30f4, 0x203d, 0x97bc,
+	0xff00, 0x873f, 0x2041, 0x007e, 0x70a4, 0x9096, 0xffff, 0x1118,
+	0x900e, 0x28a8, 0x0050, 0x9812, 0x0220, 0x2008, 0x9802, 0x20a8,
+	0x0020, 0x70a7, 0xffff, 0x0804, 0x2e7f, 0x2700, 0x0156, 0x0016,
+	0x9106, 0x0904, 0x2e74, 0xc484, 0x080c, 0x6274, 0x0148, 0x080c,
+	0xccaa, 0x1904, 0x2e74, 0x080c, 0x6213, 0x1904, 0x2e7c, 0x0008,
+	0xc485, 0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0148, 0x00c6, 0x2060,
+	0x080c, 0x8544, 0x00ce, 0x090c, 0x88e8, 0xb8af, 0x0000, 0x080c,
+	0x65d8, 0x1130, 0x7030, 0xd08c, 0x01f8, 0xb800, 0xd0bc, 0x11e0,
+	0x728c, 0xd28c, 0x0180, 0x080c, 0x65d8, 0x9082, 0x0006, 0x02e0,
+	0xd484, 0x1118, 0x080c, 0x6238, 0x0028, 0x080c, 0x3065, 0x01a0,
+	0x080c, 0x3090, 0x0088, 0x080c, 0x2fd9, 0x080c, 0xccaa, 0x1160,
+	0x080c, 0x2ec9, 0x0188, 0x0040, 0x080c, 0xccaa, 0x1118, 0x080c,
+	0x3065, 0x0110, 0x0451, 0x0140, 0x001e, 0x8108, 0x015e, 0x1f04,
+	0x2e25, 0x70a7, 0xffff, 0x0018, 0x001e, 0x015e, 0x71a6, 0x004e,
+	0x002e, 0x00ce, 0x00be, 0x0005, 0x00c6, 0x0016, 0x70a7, 0x0001,
+	0x2009, 0x007e, 0x080c, 0x6213, 0x1168, 0xb813, 0x00ff, 0xb817,
+	0xfffe, 0x080c, 0x2fd9, 0x04a9, 0x0128, 0x70d8, 0xc0bd, 0x70da,
+	0x080c, 0xca04, 0x001e, 0x00ce, 0x0005, 0x0016, 0x0076, 0x00d6,
+	0x00c6, 0x2001, 0x1858, 0x2004, 0x9084, 0x00ff, 0xb842, 0x080c,
+	0xa9b9, 0x01d0, 0x2b00, 0x6012, 0x080c, 0xca2d, 0x6023, 0x0001,
+	0x9006, 0x080c, 0x61b0, 0x2001, 0x0000, 0x080c, 0x61c4, 0x0126,
+	0x2091, 0x8000, 0x70a0, 0x8000, 0x70a2, 0x012e, 0x2009, 0x0004,
+	0x080c, 0xa9e6, 0x9085, 0x0001, 0x00ce, 0x00de, 0x007e, 0x001e,
+	0x0005, 0x0016, 0x0076, 0x00d6, 0x00c6, 0x2001, 0x1858, 0x2004,
+	0x9084, 0x00ff, 0xb842, 0x080c, 0xa9b9, 0x0548, 0x2b00, 0x6012,
+	0xb800, 0xc0c4, 0xb802, 0xb8a0, 0x9086, 0x007e, 0x0140, 0xb804,
+	0x9084, 0x00ff, 0x9086, 0x0006, 0x1110, 0x080c, 0x2f98, 0x080c,
+	0xca2d, 0x6023, 0x0001, 0x9006, 0x080c, 0x61b0, 0x2001, 0x0002,
+	0x080c, 0x61c4, 0x0126, 0x2091, 0x8000, 0x70a0, 0x8000, 0x70a2,
+	0x012e, 0x2009, 0x0002, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x00ce,
+	0x00de, 0x007e, 0x001e, 0x0005, 0x00b6, 0x00c6, 0x0026, 0x2009,
+	0x0080, 0x080c, 0x6213, 0x1140, 0xb813, 0x00ff, 0xb817, 0xfffc,
+	0x0039, 0x0110, 0x70df, 0xffff, 0x002e, 0x00ce, 0x00be, 0x0005,
+	0x0016, 0x0076, 0x00d6, 0x00c6, 0x080c, 0xa915, 0x01d0, 0x2b00,
+	0x6012, 0x080c, 0xca2d, 0x6023, 0x0001, 0x9006, 0x080c, 0x61b0,
+	0x2001, 0x0002, 0x080c, 0x61c4, 0x0126, 0x2091, 0x8000, 0x70e0,
+	0x8000, 0x70e2, 0x012e, 0x2009, 0x0002, 0x080c, 0xa9e6, 0x9085,
+	0x0001, 0x00ce, 0x00de, 0x007e, 0x001e, 0x0005, 0x00c6, 0x00d6,
+	0x0126, 0x2091, 0x8000, 0x2009, 0x007f, 0x080c, 0x6213, 0x11b8,
+	0xb813, 0x00ff, 0xb817, 0xfffd, 0xb8cf, 0x0004, 0x080c, 0xa915,
+	0x0170, 0x2b00, 0x6012, 0x6316, 0x6023, 0x0001, 0x620a, 0x080c,
+	0xca2d, 0x2009, 0x0022, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x012e,
+	0x00de, 0x00ce, 0x0005, 0x00e6, 0x00c6, 0x0066, 0x0036, 0x0026,
+	0x00b6, 0x21f0, 0x080c, 0x8e47, 0x080c, 0x8dcc, 0x080c, 0xa7ae,
+	0x080c, 0xb85c, 0x3e08, 0x2130, 0x81ff, 0x0120, 0x20a9, 0x007e,
+	0x900e, 0x0018, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6274,
+	0x1140, 0x9686, 0x0002, 0x1118, 0xb800, 0xd0bc, 0x1110, 0x080c,
+	0x5cc3, 0x001e, 0x8108, 0x1f04, 0x2f7d, 0x86ff, 0x1110, 0x080c,
+	0x30bd, 0x00be, 0x002e, 0x003e, 0x006e, 0x00ce, 0x00ee, 0x0005,
+	0x00e6, 0x00c6, 0x0036, 0x0026, 0x0016, 0x00b6, 0x6210, 0x2258,
+	0xbaa0, 0x0026, 0x2019, 0x0029, 0x080c, 0x8e3c, 0x0076, 0x2039,
+	0x0000, 0x080c, 0x8d19, 0x2c08, 0x080c, 0xdcf1, 0x007e, 0x001e,
+	0xba10, 0xbb14, 0x080c, 0x5cc3, 0xba12, 0xbb16, 0x00be, 0x001e,
+	0x002e, 0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x00b6,
+	0x6010, 0x2058, 0xb8a0, 0x00be, 0x9086, 0x0080, 0x0150, 0x2071,
+	0x1800, 0x70a0, 0x9005, 0x0110, 0x8001, 0x70a2, 0x000e, 0x00ee,
+	0x0005, 0x2071, 0x1800, 0x70e0, 0x9005, 0x0dc0, 0x8001, 0x70e2,
+	0x0ca8, 0xb800, 0xc08c, 0xb802, 0x0005, 0x00f6, 0x00e6, 0x00c6,
+	0x00b6, 0x0036, 0x0026, 0x0016, 0x0156, 0x2178, 0x81ff, 0x1118,
+	0x20a9, 0x0001, 0x0088, 0x080c, 0x53a3, 0xd0c4, 0x0150, 0xd0a4,
+	0x0140, 0x9006, 0x0046, 0x2020, 0x2009, 0x002d, 0x080c, 0xdfa9,
+	0x004e, 0x20a9, 0x0800, 0x9016, 0x0026, 0x928e, 0x007e, 0x0904,
+	0x3045, 0x928e, 0x007f, 0x0904, 0x3045, 0x928e, 0x0080, 0x05e8,
+	0x9288, 0x1000, 0x210c, 0x81ff, 0x05c0, 0x8fff, 0x1148, 0x2001,
+	0x1998, 0x0006, 0x2003, 0x0001, 0x04e9, 0x000e, 0x2003, 0x0000,
+	0x00b6, 0x00c6, 0x2158, 0x2001, 0x0001, 0x080c, 0x65a2, 0x00ce,
+	0x00be, 0x2019, 0x0029, 0x080c, 0x8e3c, 0x0076, 0x2039, 0x0000,
+	0x080c, 0x8d19, 0x00b6, 0x00c6, 0x0026, 0x2158, 0xba04, 0x9294,
+	0x00ff, 0x9286, 0x0006, 0x1118, 0xb807, 0x0404, 0x0028, 0x2001,
+	0x0004, 0x8007, 0x9215, 0xba06, 0x002e, 0x00ce, 0x00be, 0x0016,
+	0x2c08, 0x080c, 0xdcf1, 0x001e, 0x007e, 0x002e, 0x8210, 0x1f04,
+	0x2ffc, 0x015e, 0x001e, 0x002e, 0x003e, 0x00be, 0x00ce, 0x00ee,
+	0x00fe, 0x0005, 0x0046, 0x0026, 0x0016, 0x080c, 0x53a3, 0xd0c4,
+	0x0140, 0xd0a4, 0x0130, 0x9006, 0x2220, 0x2009, 0x0029, 0x080c,
+	0xdfa9, 0x001e, 0x002e, 0x004e, 0x0005, 0x0016, 0x0026, 0x0036,
+	0x00c6, 0x728c, 0x82ff, 0x01e8, 0x080c, 0x65d0, 0x11d0, 0x2100,
+	0x080c, 0x2657, 0x81ff, 0x01b8, 0x2019, 0x0001, 0x8314, 0x92e0,
+	0x1c80, 0x2c04, 0xd384, 0x0120, 0x9084, 0xff00, 0x8007, 0x0010,
+	0x9084, 0x00ff, 0x9116, 0x0138, 0x9096, 0x00ff, 0x0110, 0x8318,
+	0x0c68, 0x9085, 0x0001, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005,
+	0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x0036, 0x2019, 0x0029,
+	0x00a9, 0x003e, 0x9180, 0x1000, 0x2004, 0x9065, 0x0158, 0x0016,
+	0x00c6, 0x2061, 0x1ab0, 0x001e, 0x6112, 0x080c, 0x2f98, 0x001e,
+	0x080c, 0x6238, 0x012e, 0x00ce, 0x001e, 0x0005, 0x0016, 0x0026,
+	0x2110, 0x080c, 0xa325, 0x080c, 0xe30f, 0x002e, 0x001e, 0x0005,
+	0x2001, 0x1836, 0x2004, 0xd0cc, 0x0005, 0x00c6, 0x080c, 0x7018,
+	0x1118, 0x20a9, 0x0800, 0x0010, 0x20a9, 0x0782, 0x080c, 0x7018,
+	0x1110, 0x900e, 0x0010, 0x2009, 0x007e, 0x9180, 0x1000, 0x2004,
+	0x9065, 0x0110, 0x080c, 0x6238, 0x8108, 0x1f04, 0x30cd, 0x2061,
+	0x1800, 0x6077, 0x0000, 0x6078, 0x9084, 0x00ff, 0x607a, 0x60ab,
+	0x0000, 0x00ce, 0x0005, 0x2001, 0x1875, 0x2004, 0xd0bc, 0x0005,
+	0x2011, 0x1854, 0x2214, 0xd2ec, 0x0005, 0x0026, 0x2011, 0x1873,
+	0x2214, 0xd2dc, 0x002e, 0x0005, 0x7eef, 0x7de8, 0x7ce4, 0x80e2,
+	0x7be1, 0x80e0, 0x80dc, 0x80da, 0x7ad9, 0x80d6, 0x80d5, 0x80d4,
+	0x80d3, 0x80d2, 0x80d1, 0x79ce, 0x78cd, 0x80cc, 0x80cb, 0x80ca,
+	0x80c9, 0x80c7, 0x80c6, 0x77c5, 0x76c3, 0x80bc, 0x80ba, 0x75b9,
+	0x80b6, 0x74b5, 0x73b4, 0x72b3, 0x80b2, 0x80b1, 0x80ae, 0x71ad,
+	0x80ac, 0x70ab, 0x6faa, 0x6ea9, 0x80a7, 0x6da6, 0x6ca5, 0x6ba3,
+	0x6a9f, 0x699e, 0x689d, 0x809b, 0x8098, 0x6797, 0x6690, 0x658f,
+	0x6488, 0x6384, 0x6282, 0x8081, 0x8080, 0x617c, 0x607a, 0x8079,
+	0x5f76, 0x8075, 0x8074, 0x8073, 0x8072, 0x8071, 0x806e, 0x5e6d,
+	0x806c, 0x5d6b, 0x5c6a, 0x5b69, 0x8067, 0x5a66, 0x5965, 0x5863,
+	0x575c, 0x565a, 0x5559, 0x8056, 0x8055, 0x5454, 0x5353, 0x5252,
+	0x5151, 0x504e, 0x4f4d, 0x804c, 0x804b, 0x4e4a, 0x4d49, 0x8047,
+	0x4c46, 0x8045, 0x8043, 0x803c, 0x803a, 0x8039, 0x8036, 0x4b35,
+	0x8034, 0x4a33, 0x4932, 0x4831, 0x802e, 0x472d, 0x462c, 0x452b,
+	0x442a, 0x4329, 0x4227, 0x8026, 0x8025, 0x4123, 0x401f, 0x3f1e,
+	0x3e1d, 0x3d1b, 0x3c18, 0x8017, 0x8010, 0x3b0f, 0x3a08, 0x8004,
+	0x3902, 0x8001, 0x8000, 0x8000, 0x3800, 0x3700, 0x3600, 0x8000,
+	0x3500, 0x8000, 0x8000, 0x8000, 0x3400, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x3300, 0x3200, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x3100, 0x3000, 0x8000, 0x8000, 0x2f00,
+	0x8000, 0x2e00, 0x2d00, 0x2c00, 0x8000, 0x8000, 0x8000, 0x2b00,
+	0x8000, 0x2a00, 0x2900, 0x2800, 0x8000, 0x2700, 0x2600, 0x2500,
+	0x2400, 0x2300, 0x2200, 0x8000, 0x8000, 0x2100, 0x2000, 0x1f00,
+	0x1e00, 0x1d00, 0x1c00, 0x8000, 0x8000, 0x1b00, 0x1a00, 0x8000,
+	0x1900, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x1800,
+	0x8000, 0x1700, 0x1600, 0x1500, 0x8000, 0x1400, 0x1300, 0x1200,
+	0x1100, 0x1000, 0x0f00, 0x8000, 0x8000, 0x0e00, 0x0d00, 0x0c00,
+	0x0b00, 0x0a00, 0x0900, 0x8000, 0x8000, 0x0800, 0x0700, 0x8000,
+	0x0600, 0x8000, 0x8000, 0x8000, 0x0500, 0x0400, 0x0300, 0x8000,
+	0x0200, 0x8000, 0x8000, 0x8000, 0x0100, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x0000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000, 0x8000,
+	0x8000, 0x8000, 0x8000, 0x8000, 0x2071, 0x18aa, 0x7003, 0x0002,
+	0x9006, 0x7016, 0x701a, 0x704a, 0x704e, 0x700e, 0x7042, 0x7046,
+	0x703b, 0x18c6, 0x703f, 0x18c6, 0x7007, 0x0001, 0x080c, 0x0fe6,
+	0x090c, 0x0db8, 0x2900, 0x706a, 0xa867, 0x0002, 0xa8ab, 0xdcb0,
+	0x080c, 0x0fe6, 0x090c, 0x0db8, 0x2900, 0x706e, 0xa867, 0x0002,
+	0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x18aa, 0x7004, 0x0002, 0x3223,
+	0x3224, 0x3237, 0x324b, 0x0005, 0x1004, 0x3234, 0x0e04, 0x3234,
+	0x2079, 0x0000, 0x0126, 0x2091, 0x8000, 0x700c, 0x9005, 0x1128,
+	0x700f, 0x0001, 0x012e, 0x0468, 0x0005, 0x012e, 0x0ce8, 0x2079,
+	0x0000, 0x2061, 0x18c4, 0x2c4c, 0xa86c, 0x908e, 0x0100, 0x0128,
+	0x9086, 0x0200, 0x0904, 0x331f, 0x0005, 0x7018, 0x2048, 0x2061,
+	0x1800, 0x701c, 0x0807, 0x7014, 0x2048, 0xa864, 0x9094, 0x00ff,
+	0x9296, 0x0029, 0x1120, 0xaa78, 0xd2fc, 0x0128, 0x0005, 0x9086,
+	0x0103, 0x0108, 0x0005, 0x2079, 0x0000, 0x2061, 0x1800, 0x701c,
+	0x0807, 0x2061, 0x1800, 0x7880, 0x908a, 0x0040, 0x1210, 0x61cc,
+	0x0042, 0x2100, 0x908a, 0x003f, 0x1a04, 0x331c, 0x61cc, 0x0804,
+	0x32b1, 0x32f3, 0x332b, 0x3335, 0x3339, 0x3343, 0x3349, 0x334d,
+	0x335d, 0x3360, 0x336a, 0x336f, 0x3374, 0x337f, 0x338a, 0x3399,
+	0x33a8, 0x33b6, 0x33cd, 0x33e8, 0x3491, 0x3496, 0x34d4, 0x357a,
+	0x358b, 0x35ae, 0x331c, 0x331c, 0x331c, 0x35e6, 0x3602, 0x360b,
+	0x363a, 0x3640, 0x331c, 0x3686, 0x331c, 0x331c, 0x331c, 0x331c,
+	0x331c, 0x3691, 0x369a, 0x36a2, 0x331c, 0x331c, 0x331c, 0x331c,
+	0x331c, 0x331c, 0x331c, 0x36a4, 0x331c, 0x331c, 0x331c, 0x331c,
+	0x331c, 0x36c1, 0x3720, 0x331c, 0x331c, 0x331c, 0x331c, 0x331c,
+	0x331c, 0x0002, 0x374a, 0x374d, 0x37ac, 0x37c5, 0x37f5, 0x3a93,
+	0x331c, 0x4f7c, 0x331c, 0x331c, 0x331c, 0x331c, 0x331c, 0x331c,
+	0x331c, 0x331c, 0x336a, 0x336f, 0x3fb4, 0x331c, 0x3fca, 0x500b,
+	0x505c, 0x515f, 0x331c, 0x51c1, 0x51fd, 0x522e, 0x5332, 0x525b,
+	0x52b2, 0x331c, 0x3fce, 0x418b, 0x41a1, 0x41c6, 0x422b, 0x429f,
+	0x42bf, 0x4336, 0x4347, 0x4358, 0x435b, 0x4380, 0x43f2, 0x4458,
+	0x4460, 0x4592, 0x4705, 0x4739, 0x499d, 0x49bb, 0x49c7, 0x4a73,
+	0x4b55, 0x4baf, 0x331c, 0x4c64, 0x331c, 0x4cca, 0x4ce5, 0x4460,
+	0x4f2b, 0x714c, 0x0000, 0x2021, 0x4000, 0x080c, 0x47b7, 0x0126,
+	0x2091, 0x8000, 0x0e04, 0x32fd, 0x0010, 0x012e, 0x0cc0, 0x7c36,
+	0x9486, 0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833, 0x0010,
+	0x7c82, 0x7986, 0x7a8a, 0x7b8e, 0x2091, 0x4080, 0x2001, 0x0089,
+	0x2004, 0xd084, 0x190c, 0x115f, 0x7007, 0x0001, 0x2091, 0x5000,
+	0x700f, 0x0000, 0x012e, 0x0005, 0x2021, 0x4001, 0x08b0, 0x2021,
+	0x4002, 0x0898, 0x2021, 0x4003, 0x0880, 0x2021, 0x4005, 0x0868,
+	0x2021, 0x4006, 0x0850, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88,
+	0x7a8c, 0x7884, 0x7990, 0x0804, 0x47c4, 0x7883, 0x0004, 0x7884,
+	0x0807, 0x2039, 0x0001, 0x902e, 0x2520, 0x7b88, 0x7a8c, 0x7884,
+	0x7990, 0x0804, 0x47c7, 0x7984, 0x7888, 0x2114, 0x200a, 0x0804,
+	0x32f3, 0x7984, 0x2114, 0x0804, 0x32f3, 0x20e1, 0x0000, 0x2099,
+	0x0021, 0x20e9, 0x0000, 0x20a1, 0x0021, 0x20a9, 0x001f, 0x4003,
+	0x7984, 0x7a88, 0x7b8c, 0x0804, 0x32f3, 0x7884, 0x2060, 0x04d8,
+	0x2009, 0x0003, 0x2011, 0x0002, 0x2019, 0x000f, 0x789b, 0x0137,
+	0x0804, 0x32f3, 0x2039, 0x0001, 0x7d98, 0x7c9c, 0x0800, 0x2039,
+	0x0001, 0x7d98, 0x7c9c, 0x0848, 0x79a0, 0x9182, 0x0040, 0x0210,
+	0x0804, 0x3328, 0x2138, 0x7d98, 0x7c9c, 0x0804, 0x332f, 0x79a0,
+	0x9182, 0x0040, 0x0210, 0x0804, 0x3328, 0x2138, 0x7d98, 0x7c9c,
+	0x0804, 0x333d, 0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x3328,
+	0x21e8, 0x7984, 0x7888, 0x20a9, 0x0001, 0x21a0, 0x4004, 0x0804,
+	0x32f3, 0x2061, 0x0800, 0xe10c, 0x9006, 0x2c15, 0x9200, 0x8c60,
+	0x8109, 0x1dd8, 0x2010, 0x9005, 0x0904, 0x32f3, 0x0804, 0x3322,
+	0x79a0, 0x9182, 0x0040, 0x0210, 0x0804, 0x3328, 0x21e0, 0x20a9,
+	0x0001, 0x7984, 0x2198, 0x4012, 0x0804, 0x32f3, 0x2069, 0x1853,
+	0x7884, 0x7990, 0x911a, 0x1a04, 0x3328, 0x8019, 0x0904, 0x3328,
+	0x684a, 0x6942, 0x788c, 0x6852, 0x7888, 0x6856, 0x9006, 0x685a,
+	0x685e, 0x080c, 0x7322, 0x0804, 0x32f3, 0x2069, 0x1853, 0x7884,
+	0x7994, 0x911a, 0x1a04, 0x3328, 0x8019, 0x0904, 0x3328, 0x684e,
+	0x6946, 0x788c, 0x6862, 0x7888, 0x6866, 0x9006, 0x686a, 0x686e,
+	0x0126, 0x2091, 0x8000, 0x080c, 0x6642, 0x012e, 0x0804, 0x32f3,
+	0x902e, 0x2520, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325,
+	0x7984, 0x7b88, 0x7a8c, 0x20a9, 0x0005, 0x20e9, 0x0001, 0x20a1,
+	0x18b2, 0x4101, 0x080c, 0x477b, 0x1120, 0x2009, 0x0002, 0x0804,
+	0x3325, 0x2009, 0x0020, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c,
+	0x47c4, 0x701f, 0x340c, 0x0005, 0xa864, 0x2008, 0x9084, 0x00ff,
+	0x9096, 0x0011, 0x0168, 0x9096, 0x0019, 0x0150, 0x9096, 0x0015,
+	0x0138, 0x9096, 0x0048, 0x0120, 0x9096, 0x0029, 0x1904, 0x3325,
+	0x810f, 0x918c, 0x00ff, 0x0904, 0x3325, 0x7112, 0x7010, 0x8001,
+	0x0560, 0x7012, 0x080c, 0x477b, 0x1120, 0x2009, 0x0002, 0x0804,
+	0x3325, 0x2009, 0x0020, 0x7068, 0x2040, 0xa28c, 0xa390, 0xa494,
+	0xa598, 0x9290, 0x0040, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9,
+	0x0000, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x47c4, 0x701f,
+	0x344a, 0x0005, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0002, 0x0120,
+	0x9096, 0x000a, 0x1904, 0x3325, 0x0888, 0x7014, 0x2048, 0xa868,
+	0xc0fd, 0xa86a, 0xa864, 0x9084, 0x00ff, 0x9096, 0x0029, 0x1160,
+	0xc2fd, 0xaa7a, 0x080c, 0x5e19, 0x0150, 0x0126, 0x2091, 0x8000,
+	0xa87a, 0xa982, 0x012e, 0x0050, 0x080c, 0x6129, 0x1128, 0x7007,
+	0x0003, 0x701f, 0x3476, 0x0005, 0x080c, 0x6b26, 0x0126, 0x2091,
+	0x8000, 0x20a9, 0x0005, 0x20e1, 0x0001, 0x2099, 0x18b2, 0x400a,
+	0x2100, 0x9210, 0x9399, 0x0000, 0x94a1, 0x0000, 0x95a9, 0x0000,
+	0xa85c, 0x9080, 0x0019, 0x2009, 0x0020, 0x012e, 0xaf60, 0x0804,
+	0x47c7, 0x61b4, 0x7884, 0x60b6, 0x0804, 0x32f3, 0x2091, 0x8000,
+	0x7837, 0x4000, 0x7833, 0x0010, 0x7883, 0x4000, 0x7887, 0x4953,
+	0x788b, 0x5020, 0x788f, 0x2020, 0x2009, 0x017f, 0x2104, 0x7892,
+	0x3f00, 0x7896, 0x2061, 0x0100, 0x6200, 0x2061, 0x0200, 0x603c,
+	0x8007, 0x9205, 0x789a, 0x2009, 0x04fd, 0x2104, 0x789e, 0x2091,
+	0x5000, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x0180,
+	0x2001, 0x1a24, 0x2004, 0x9005, 0x0128, 0x2001, 0x008b, 0x2004,
+	0xd0fc, 0x0dd8, 0x2001, 0x008a, 0x2003, 0x0002, 0x2003, 0x1001,
+	0x2071, 0x0080, 0x0804, 0x0427, 0x81ff, 0x1904, 0x3325, 0x7984,
+	0x080c, 0x6274, 0x1904, 0x3328, 0x7e98, 0x9684, 0x3fff, 0x9082,
+	0x4000, 0x1a04, 0x3328, 0x7c88, 0x7d8c, 0x080c, 0x63d7, 0x080c,
+	0x63a6, 0x0000, 0x1518, 0x2061, 0x1cd0, 0x0126, 0x2091, 0x8000,
+	0x6000, 0x9086, 0x0000, 0x0148, 0x6014, 0x904d, 0x0130, 0xa86c,
+	0x9406, 0x1118, 0xa870, 0x9506, 0x0150, 0x012e, 0x9ce0, 0x0018,
+	0x2001, 0x1818, 0x2004, 0x9c02, 0x1a04, 0x3325, 0x0c30, 0x080c,
+	0xc22b, 0x012e, 0x0904, 0x3325, 0x0804, 0x32f3, 0x900e, 0x2001,
+	0x0005, 0x080c, 0x6b26, 0x0126, 0x2091, 0x8000, 0x080c, 0xc8b5,
+	0x080c, 0x68e7, 0x012e, 0x0804, 0x32f3, 0x00a6, 0x2950, 0xb198,
+	0x080c, 0x6274, 0x1904, 0x3567, 0xb6a4, 0x9684, 0x3fff, 0x9082,
+	0x4000, 0x16e8, 0xb49c, 0xb5a0, 0x080c, 0x63d7, 0x080c, 0x63a6,
+	0x1520, 0x2061, 0x1cd0, 0x0126, 0x2091, 0x8000, 0x6000, 0x9086,
+	0x0000, 0x0148, 0x6014, 0x904d, 0x0130, 0xa86c, 0x9406, 0x1118,
+	0xa870, 0x9506, 0x0158, 0x012e, 0x9ce0, 0x0018, 0x2001, 0x1818,
+	0x2004, 0x9c02, 0x2009, 0x000d, 0x12b0, 0x0c28, 0x080c, 0xc22b,
+	0x012e, 0x2009, 0x0003, 0x0178, 0x00e0, 0x900e, 0x2001, 0x0005,
+	0x080c, 0x6b26, 0x0126, 0x2091, 0x8000, 0x080c, 0xc8b5, 0x080c,
+	0x68e7, 0x012e, 0x0070, 0xb097, 0x4005, 0xb19a, 0x0010, 0xb097,
+	0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x2a48, 0x00ae,
+	0x0005, 0xb097, 0x4000, 0x9006, 0x918d, 0x0001, 0x2008, 0x2a48,
+	0x00ae, 0x0005, 0x81ff, 0x1904, 0x3325, 0x080c, 0x4792, 0x0904,
+	0x3328, 0x080c, 0x633b, 0x0904, 0x3325, 0x080c, 0x63dd, 0x0904,
+	0x3325, 0x0804, 0x42b6, 0x81ff, 0x1904, 0x3325, 0x080c, 0x47ae,
+	0x0904, 0x3328, 0x080c, 0x646b, 0x0904, 0x3325, 0x2019, 0x0005,
+	0x79a8, 0x080c, 0x63f8, 0x0904, 0x3325, 0x7888, 0x908a, 0x1000,
+	0x1a04, 0x3328, 0x8003, 0x800b, 0x810b, 0x9108, 0x080c, 0x80fa,
+	0x7984, 0xd184, 0x1904, 0x32f3, 0x0804, 0x42b6, 0x0126, 0x2091,
+	0x8000, 0x81ff, 0x0118, 0x2009, 0x0001, 0x0450, 0x2029, 0x07ff,
+	0x6454, 0x2400, 0x9506, 0x01f8, 0x2508, 0x080c, 0x6274, 0x11d8,
+	0x080c, 0x646b, 0x1128, 0x2009, 0x0002, 0x62bc, 0x2518, 0x00c0,
+	0x2019, 0x0004, 0x900e, 0x080c, 0x63f8, 0x1118, 0x2009, 0x0006,
+	0x0078, 0x7884, 0x908a, 0x1000, 0x1270, 0x8003, 0x800b, 0x810b,
+	0x9108, 0x080c, 0x80fa, 0x8529, 0x1ae0, 0x012e, 0x0804, 0x32f3,
+	0x012e, 0x0804, 0x3325, 0x012e, 0x0804, 0x3328, 0x080c, 0x4792,
+	0x0904, 0x3328, 0x080c, 0x633b, 0x0904, 0x3325, 0xbaa0, 0x2019,
+	0x0005, 0x00c6, 0x9066, 0x080c, 0x8e3c, 0x0076, 0x903e, 0x080c,
+	0x8d19, 0x900e, 0x080c, 0xdcf1, 0x007e, 0x00ce, 0x080c, 0x63d7,
+	0x0804, 0x32f3, 0x080c, 0x4792, 0x0904, 0x3328, 0x080c, 0x63d7,
+	0x2208, 0x0804, 0x32f3, 0x0156, 0x00d6, 0x00e6, 0x2069, 0x191c,
+	0x6810, 0x6914, 0x910a, 0x1208, 0x900e, 0x6816, 0x9016, 0x901e,
+	0x20a9, 0x007e, 0x2069, 0x1000, 0x2d04, 0x905d, 0x0118, 0xb84c,
+	0x0059, 0x9210, 0x8d68, 0x1f04, 0x361c, 0x2300, 0x9218, 0x00ee,
+	0x00de, 0x015e, 0x0804, 0x32f3, 0x00f6, 0x0016, 0x907d, 0x0138,
+	0x9006, 0x8000, 0x2f0c, 0x81ff, 0x0110, 0x2178, 0x0cd0, 0x001e,
+	0x00fe, 0x0005, 0x2069, 0x191c, 0x6910, 0x62b8, 0x0804, 0x32f3,
+	0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x53b7, 0x0128, 0x2009, 0x0007, 0x012e, 0x0804,
+	0x3325, 0x012e, 0x6154, 0x9190, 0x30f4, 0x2215, 0x9294, 0x00ff,
+	0x6374, 0x83ff, 0x0108, 0x6278, 0x67d8, 0x97c4, 0x000a, 0x98c6,
+	0x000a, 0x1118, 0x2031, 0x0001, 0x00e8, 0x97c4, 0x0022, 0x98c6,
+	0x0022, 0x1118, 0x2031, 0x0003, 0x00a8, 0x97c4, 0x0012, 0x98c6,
+	0x0012, 0x1118, 0x2031, 0x0002, 0x0068, 0x080c, 0x7018, 0x1118,
+	0x2031, 0x0004, 0x0038, 0xd79c, 0x0120, 0x2009, 0x0005, 0x0804,
+	0x3325, 0x9036, 0x7e9a, 0x7f9e, 0x0804, 0x32f3, 0x6144, 0x6248,
+	0x2019, 0x1990, 0x231c, 0x2001, 0x1991, 0x2004, 0x789a, 0x0804,
+	0x32f3, 0x0126, 0x2091, 0x8000, 0x6134, 0x6238, 0x633c, 0x012e,
+	0x0804, 0x32f3, 0x080c, 0x47ae, 0x0904, 0x3328, 0xba44, 0xbb38,
+	0x0804, 0x32f3, 0x080c, 0x0db8, 0x6144, 0x6248, 0x7884, 0x6046,
+	0x7b88, 0x634a, 0x2069, 0x1853, 0x831f, 0x9305, 0x6816, 0x788c,
+	0x2069, 0x1990, 0x2d1c, 0x206a, 0x7e98, 0x9682, 0x0014, 0x1210,
+	0x2031, 0x07d0, 0x2069, 0x1991, 0x2d04, 0x266a, 0x789a, 0x0804,
+	0x32f3, 0x0126, 0x2091, 0x8000, 0x7884, 0x6036, 0xd0c4, 0x01a8,
+	0x00d6, 0x78a8, 0x2009, 0x19a7, 0x200a, 0x78ac, 0x2011, 0x19a8,
+	0x2012, 0x2069, 0x0100, 0x6838, 0x9086, 0x0007, 0x1118, 0x2214,
+	0x6a5a, 0x0010, 0x210c, 0x695a, 0x00de, 0x7884, 0x61ec, 0xd0b4,
+	0x0120, 0x3b00, 0x9084, 0xff3f, 0x20d8, 0x7888, 0x603a, 0x2011,
+	0x0114, 0x220c, 0x7888, 0xd08c, 0x0118, 0x918d, 0x0080, 0x0010,
+	0x918c, 0xff7f, 0x2112, 0x788c, 0x603e, 0x603c, 0xd0cc, 0x0120,
+	0x78b0, 0x2011, 0x0114, 0x2012, 0x012e, 0x0804, 0x32f3, 0x00f6,
+	0x2079, 0x1800, 0x7a34, 0xa898, 0x9084, 0xfeff, 0x9215, 0xa89c,
+	0x9084, 0xfeff, 0x8002, 0x9214, 0xd2b4, 0x0120, 0x3b00, 0x9084,
+	0xff3f, 0x20d8, 0x7834, 0xd0c4, 0x0108, 0xc2c5, 0x7a36, 0xa897,
+	0x4000, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x00fe, 0x0005,
+	0x7898, 0x9005, 0x01a8, 0x7888, 0x9025, 0x0904, 0x3328, 0x788c,
+	0x902d, 0x0904, 0x3328, 0x900e, 0x080c, 0x6274, 0x1120, 0xba44,
+	0xbb38, 0xbc46, 0xbd3a, 0x9186, 0x07ff, 0x0190, 0x8108, 0x0ca0,
+	0x080c, 0x47ae, 0x0904, 0x3328, 0x7888, 0x900d, 0x0904, 0x3328,
+	0x788c, 0x9005, 0x0904, 0x3328, 0xba44, 0xb946, 0xbb38, 0xb83a,
+	0x0804, 0x32f3, 0x2011, 0xbc09, 0x0010, 0x2011, 0xbc05, 0x080c,
+	0x53b7, 0x1904, 0x3325, 0x00c6, 0x2061, 0x0100, 0x7984, 0x9186,
+	0x00ff, 0x1130, 0x2001, 0x1816, 0x2004, 0x9085, 0xff00, 0x0088,
+	0x9182, 0x007f, 0x16e0, 0x9188, 0x30f4, 0x210d, 0x918c, 0x00ff,
+	0x2001, 0x1816, 0x2004, 0x0026, 0x9116, 0x002e, 0x0580, 0x810f,
+	0x9105, 0x0126, 0x2091, 0x8000, 0x0006, 0x080c, 0xa915, 0x000e,
+	0x0510, 0x602e, 0x620a, 0x7984, 0x00b6, 0x080c, 0x6219, 0x2b08,
+	0x00be, 0x1500, 0x6112, 0x6023, 0x0001, 0x080c, 0x477b, 0x01d0,
+	0x9006, 0xa866, 0x7007, 0x0003, 0xa832, 0xa868, 0xc0fd, 0xa86a,
+	0x701f, 0x37a5, 0x2900, 0x6016, 0x2009, 0x0032, 0x080c, 0xa9e6,
+	0x012e, 0x00ce, 0x0005, 0x012e, 0x00ce, 0x0804, 0x3325, 0x00ce,
+	0x0804, 0x3328, 0x080c, 0xa96b, 0x0cb0, 0xa830, 0x9086, 0x0100,
+	0x0904, 0x3325, 0x0804, 0x32f3, 0x2061, 0x1a7b, 0x0126, 0x2091,
+	0x8000, 0x6000, 0xd084, 0x0170, 0x6104, 0x6208, 0x2061, 0x1800,
+	0x634c, 0x606c, 0x789a, 0x60bc, 0x789e, 0x60b8, 0x78aa, 0x012e,
+	0x0804, 0x32f3, 0x900e, 0x2110, 0x0c88, 0x81ff, 0x1904, 0x3325,
+	0x080c, 0x7018, 0x0904, 0x3325, 0x0126, 0x2091, 0x8000, 0x624c,
+	0x606c, 0x9202, 0x0248, 0x9085, 0x0001, 0x080c, 0x268d, 0x080c,
+	0x5594, 0x012e, 0x0804, 0x32f3, 0x012e, 0x0804, 0x3328, 0x0006,
+	0x0016, 0x00c6, 0x00e6, 0x2001, 0x19b3, 0x2070, 0x2061, 0x1853,
+	0x6008, 0x2072, 0x900e, 0x2011, 0x1400, 0x080c, 0x8b2b, 0x7206,
+	0x00ee, 0x00ce, 0x001e, 0x000e, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x81ff, 0x0128, 0x012e, 0x2021, 0x400b, 0x0804, 0x32f5, 0x7884,
+	0xd0fc, 0x0148, 0x2001, 0x002a, 0x2004, 0x9082, 0x00e1, 0x0288,
+	0x012e, 0x0804, 0x3328, 0x2001, 0x002a, 0x2004, 0x2069, 0x1853,
+	0x6908, 0x9102, 0x1230, 0x012e, 0x0804, 0x3328, 0x012e, 0x0804,
+	0x3325, 0x080c, 0xa8d5, 0x0dd0, 0x7884, 0xd0fc, 0x0904, 0x3870,
+	0x00c6, 0x080c, 0x477b, 0x00ce, 0x0d88, 0xa867, 0x0000, 0x7884,
+	0xa80a, 0x7898, 0xa80e, 0x789c, 0xa812, 0x2001, 0x002e, 0x2004,
+	0xa81a, 0x2001, 0x002f, 0x2004, 0xa81e, 0x2001, 0x0030, 0x2004,
+	0xa822, 0x2001, 0x0031, 0x2004, 0xa826, 0x2001, 0x0034, 0x2004,
+	0xa82a, 0x2001, 0x0035, 0x2004, 0xa82e, 0x2001, 0x002a, 0x2004,
+	0x9080, 0x0003, 0x9084, 0x00fc, 0x8004, 0xa816, 0x080c, 0x39f6,
+	0x0928, 0x7014, 0x2048, 0xad2c, 0xac28, 0xab1c, 0xaa18, 0xa930,
+	0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000, 0x8906,
+	0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b,
+	0x080c, 0x47c4, 0x701f, 0x3933, 0x7023, 0x0001, 0x012e, 0x0005,
+	0x0046, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6,
+	0x00f6, 0x080c, 0x37df, 0x2001, 0x19a9, 0x2003, 0x0000, 0x2021,
+	0x000a, 0x2061, 0x0100, 0x6104, 0x0016, 0x60bb, 0x0000, 0x60bf,
+	0x32e1, 0x60bf, 0x0012, 0x080c, 0x3a65, 0x080c, 0x3a24, 0x00f6,
+	0x00e6, 0x0086, 0x2940, 0x2071, 0x1a71, 0x2079, 0x0090, 0x00d6,
+	0x2069, 0x0000, 0x6884, 0xd0b4, 0x0140, 0x2001, 0x0035, 0x2004,
+	0x780e, 0x2001, 0x0034, 0x2004, 0x780a, 0x00de, 0x2011, 0x0001,
+	0x080c, 0x3df8, 0x008e, 0x00ee, 0x00fe, 0x080c, 0x3d25, 0x080c,
+	0x3c2a, 0x05b8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140, 0x1db8,
+	0x080c, 0x3e6c, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe, 0x908c,
+	0x0070, 0x1560, 0x2071, 0x0200, 0x7037, 0x0000, 0x7050, 0x9084,
+	0xff00, 0x9086, 0x3200, 0x1510, 0x7037, 0x0001, 0x7050, 0x9084,
+	0xff00, 0x9086, 0xe100, 0x11d0, 0x7037, 0x0000, 0x7054, 0x7037,
+	0x0000, 0x715c, 0x9106, 0x1190, 0x2001, 0x181e, 0x2004, 0x9106,
+	0x1168, 0x00c6, 0x2061, 0x0100, 0x6024, 0x9084, 0x1e00, 0x00ce,
+	0x0138, 0x080c, 0x3c34, 0x080c, 0x3a1f, 0x0058, 0x080c, 0x3a1f,
+	0x080c, 0x3d90, 0x080c, 0x3d1b, 0x2001, 0x020b, 0x2004, 0xd0e4,
+	0x0dd8, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061, 0x0100, 0x6027,
+	0x0002, 0x001e, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020, 0x60bb,
+	0x0000, 0x60bf, 0x0108, 0x60bf, 0x0012, 0x2001, 0x0004, 0x200c,
+	0x918c, 0xfffd, 0x2102, 0x080c, 0x12ae, 0x2009, 0x0028, 0x080c,
+	0x21b8, 0x2001, 0x0227, 0x200c, 0x2102, 0x00fe, 0x00ee, 0x00de,
+	0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x004e, 0x2001, 0x19a9,
+	0x2004, 0x9005, 0x1118, 0x012e, 0x0804, 0x32f3, 0x012e, 0x2021,
+	0x400c, 0x0804, 0x32f5, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056,
+	0x0076, 0x0086, 0x0096, 0x00d6, 0x0156, 0x7014, 0x2048, 0x7020,
+	0x20a8, 0x8000, 0x7022, 0xa804, 0x9005, 0x0904, 0x398f, 0x2048,
+	0x1f04, 0x3943, 0x7068, 0x2040, 0xa28c, 0xa390, 0xa494, 0xa598,
+	0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000, 0x2021, 0x0000,
+	0x0096, 0x7014, 0x2048, 0xa864, 0x009e, 0x9086, 0x0103, 0x0170,
+	0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,
+	0x001b, 0x080c, 0x47c4, 0x701f, 0x3933, 0x00b0, 0x8906, 0x8006,
+	0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x001b, 0x21a8,
+	0x27e0, 0x2098, 0x27e8, 0x20a0, 0x0006, 0x080c, 0x0f4a, 0x000e,
+	0x080c, 0x47c7, 0x701f, 0x3933, 0x015e, 0x00de, 0x009e, 0x008e,
+	0x007e, 0x005e, 0x004e, 0x003e, 0x002e, 0x001e, 0x0005, 0x7014,
+	0x2048, 0xa864, 0x9086, 0x0103, 0x1118, 0x701f, 0x39f4, 0x0450,
+	0x7014, 0x2048, 0xa868, 0xc0fd, 0xa86a, 0x2009, 0x007f, 0x080c,
+	0x6213, 0x0110, 0x9006, 0x0030, 0xb813, 0x00ff, 0xb817, 0xfffd,
+	0x080c, 0xca7c, 0x015e, 0x00de, 0x009e, 0x008e, 0x007e, 0x005e,
+	0x004e, 0x003e, 0x002e, 0x001e, 0x0904, 0x3325, 0x0016, 0x0026,
+	0x0036, 0x0046, 0x0056, 0x0076, 0x0086, 0x0096, 0x00d6, 0x0156,
+	0x701f, 0x39c6, 0x7007, 0x0003, 0x0804, 0x3984, 0x0076, 0xa830,
+	0x9086, 0x0100, 0x2021, 0x400c, 0x0904, 0x32f5, 0xad10, 0xac0c,
+	0xab24, 0xaa20, 0xa930, 0xa808, 0xd0b4, 0x1120, 0x2029, 0x0000,
+	0x2021, 0x0000, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,
+	0xffc0, 0x9080, 0x001b, 0x21a8, 0x27e0, 0x2098, 0x27e8, 0x20a0,
+	0x0006, 0x080c, 0x0f4a, 0x000e, 0x080c, 0x47c7, 0x007e, 0x701f,
+	0x3933, 0x7023, 0x0001, 0x0005, 0x0804, 0x32f3, 0x0156, 0x00c6,
+	0xa814, 0x908a, 0x001e, 0x0218, 0xa833, 0x001e, 0x0010, 0xa832,
+	0x0078, 0x81ff, 0x0168, 0x0016, 0x080c, 0x477b, 0x001e, 0x0130,
+	0xa800, 0x2040, 0xa008, 0xa80a, 0x2100, 0x0c58, 0x9006, 0x0010,
+	0x9085, 0x0001, 0x00ce, 0x015e, 0x0005, 0x0006, 0x00f6, 0x2079,
+	0x0000, 0x7880, 0x9086, 0x0044, 0x00fe, 0x000e, 0x0005, 0x2001,
+	0x19a9, 0x2003, 0x0001, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x2061,
+	0x0200, 0x2001, 0x19b4, 0x2004, 0x601a, 0x2061, 0x0100, 0x2001,
+	0x19b3, 0x2004, 0x60ce, 0x6104, 0xc1ac, 0x6106, 0x080c, 0x477b,
+	0xa813, 0x0019, 0xa817, 0x0001, 0x2900, 0xa85a, 0x2001, 0x002e,
+	0x2004, 0xa866, 0x2001, 0x002f, 0x2004, 0xa86a, 0x2061, 0x0090,
+	0x2079, 0x0100, 0x2001, 0x19b3, 0x2004, 0x6036, 0x2009, 0x0040,
+	0x080c, 0x21b8, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e,
+	0x601a, 0xa873, 0x0000, 0x601f, 0x0000, 0x78ca, 0x9006, 0x600a,
+	0x600e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6, 0x080c, 0x477b,
+	0x2940, 0xa013, 0x0019, 0xa017, 0x0001, 0x2800, 0xa05a, 0x2001,
+	0x0030, 0x2004, 0xa866, 0x2001, 0x0031, 0x2004, 0xa86a, 0x2001,
+	0x002a, 0x2004, 0x9084, 0xfff8, 0xa86e, 0xa873, 0x0000, 0x2001,
+	0x032a, 0x2003, 0x0004, 0x2001, 0x0300, 0x2003, 0x0000, 0x2001,
+	0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c, 0x918d, 0x0002,
+	0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x81ff, 0x0148,
+	0x080c, 0x2a0e, 0x1130, 0x9006, 0x080c, 0x296e, 0x9006, 0x080c,
+	0x2951, 0x7884, 0x9084, 0x0007, 0x0002, 0x3ab0, 0x3ab9, 0x3ac2,
+	0x3aad, 0x3aad, 0x3aad, 0x3aad, 0x3aad, 0x012e, 0x0804, 0x3328,
+	0x2009, 0x0114, 0x2104, 0x9085, 0x0800, 0x200a, 0x080c, 0x3c7e,
+	0x00c0, 0x2009, 0x0114, 0x2104, 0x9085, 0x4000, 0x200a, 0x080c,
+	0x3c7e, 0x0078, 0x080c, 0x7018, 0x1128, 0x012e, 0x2009, 0x0016,
+	0x0804, 0x3325, 0x81ff, 0x0128, 0x012e, 0x2021, 0x400b, 0x0804,
+	0x32f5, 0x0086, 0x0096, 0x00a6, 0x00b6, 0x00c6, 0x00d6, 0x00e6,
+	0x00f6, 0x080c, 0x37df, 0x2009, 0x0101, 0x210c, 0x0016, 0x7ec8,
+	0x7dcc, 0x9006, 0x2068, 0x2060, 0x2058, 0x080c, 0x3f47, 0x080c,
+	0x3e97, 0x903e, 0x2720, 0x00f6, 0x00e6, 0x0086, 0x2940, 0x2071,
+	0x1a71, 0x2079, 0x0090, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4,
+	0x0120, 0x68d4, 0x780e, 0x68d0, 0x780a, 0x00de, 0x2011, 0x0001,
+	0x080c, 0x3df8, 0x080c, 0x2a16, 0x080c, 0x2a16, 0x080c, 0x2a16,
+	0x080c, 0x2a16, 0x080c, 0x3df8, 0x008e, 0x00ee, 0x00fe, 0x080c,
+	0x3d25, 0x2009, 0x0190, 0x8109, 0x11b0, 0x080c, 0x3c34, 0x2001,
+	0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x001e, 0x00fe, 0x00ee,
+	0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x008e, 0x2009, 0x0017,
+	0x080c, 0x3325, 0x0cf8, 0x2001, 0x020b, 0x2004, 0x9084, 0x0140,
+	0x1d10, 0x00f6, 0x2079, 0x0000, 0x7884, 0x00fe, 0xd0bc, 0x0178,
+	0x2001, 0x0201, 0x200c, 0x81ff, 0x0150, 0x080c, 0x3d03, 0x2d00,
+	0x9c05, 0x9b05, 0x0120, 0x080c, 0x3c34, 0x0804, 0x3be1, 0x080c,
+	0x3e6c, 0x080c, 0x3d90, 0x080c, 0x3ce6, 0x080c, 0x3d1b, 0x00f6,
+	0x2079, 0x0100, 0x7824, 0xd0ac, 0x0130, 0x8b58, 0x080c, 0x3c34,
+	0x00fe, 0x0804, 0x3be1, 0x00fe, 0x080c, 0x3c2a, 0x1150, 0x8d68,
+	0x2001, 0x0032, 0x2602, 0x2001, 0x0033, 0x2502, 0x080c, 0x3c34,
+	0x0080, 0x87ff, 0x0138, 0x2001, 0x0201, 0x2004, 0x9005, 0x1908,
+	0x8739, 0x0038, 0x2001, 0x1a6d, 0x2004, 0x9086, 0x0000, 0x1904,
+	0x3b31, 0x2001, 0x032f, 0x2003, 0x00f6, 0x8631, 0x1208, 0x8529,
+	0x2500, 0x9605, 0x0904, 0x3be1, 0x7884, 0xd0bc, 0x0128, 0x2d00,
+	0x9c05, 0x9b05, 0x1904, 0x3be1, 0xa013, 0x0019, 0x2001, 0x032a,
+	0x2003, 0x0004, 0x7884, 0xd0ac, 0x1148, 0x2001, 0x1a6d, 0x2003,
+	0x0003, 0x2001, 0x032a, 0x2003, 0x0009, 0x0030, 0xa017, 0x0001,
+	0x78b4, 0x9005, 0x0108, 0xa016, 0x2800, 0xa05a, 0x2009, 0x0040,
+	0x080c, 0x21b8, 0x2900, 0xa85a, 0xa813, 0x0019, 0x7884, 0xd0a4,
+	0x1180, 0xa817, 0x0000, 0x00c6, 0x20a9, 0x0004, 0x2061, 0x0090,
+	0x602b, 0x0008, 0x2001, 0x0203, 0x2004, 0x1f04, 0x3bb8, 0x00ce,
+	0x0030, 0xa817, 0x0001, 0x78b0, 0x9005, 0x0108, 0xa816, 0x00f6,
+	0x00c6, 0x2079, 0x0100, 0x2061, 0x0090, 0x7827, 0x0002, 0x2001,
+	0x002a, 0x2004, 0x9084, 0xfff8, 0x601a, 0x0006, 0x2001, 0x002b,
+	0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x00ce, 0x00fe, 0x0804,
+	0x3aeb, 0x001e, 0x00c6, 0x2001, 0x032a, 0x2003, 0x0004, 0x2061,
+	0x0100, 0x6027, 0x0002, 0x6106, 0x2011, 0x020d, 0x2013, 0x0020,
+	0x2001, 0x0004, 0x200c, 0x918c, 0xfffd, 0x2102, 0x080c, 0x12ae,
+	0x7884, 0x9084, 0x0003, 0x9086, 0x0002, 0x01a0, 0x2009, 0x0028,
+	0x080c, 0x21b8, 0x2001, 0x0227, 0x200c, 0x2102, 0x6050, 0x9084,
+	0xb7ef, 0x6052, 0x602f, 0x0000, 0x604b, 0xf7f7, 0x6043, 0x0090,
+	0x6043, 0x0010, 0x00ce, 0x2d08, 0x2c10, 0x2b18, 0x2b00, 0x9c05,
+	0x9d05, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e,
+	0x008e, 0x1118, 0x012e, 0x0804, 0x32f3, 0x012e, 0x2021, 0x400c,
+	0x0804, 0x32f5, 0x9085, 0x0001, 0x1d04, 0x3c33, 0x2091, 0x6000,
+	0x8420, 0x9486, 0x0064, 0x0005, 0x2001, 0x0105, 0x2003, 0x0010,
+	0x2001, 0x032a, 0x2003, 0x0004, 0x2001, 0x1a6d, 0x2003, 0x0000,
+	0x0071, 0x2009, 0x0048, 0x080c, 0x21b8, 0x2001, 0x0227, 0x2024,
+	0x2402, 0x2001, 0x0109, 0x2003, 0x4000, 0x9026, 0x0005, 0x00f6,
+	0x00e6, 0x2071, 0x1a71, 0x7000, 0x9086, 0x0000, 0x0520, 0x2079,
+	0x0090, 0x2009, 0x0206, 0x2104, 0x2009, 0x0203, 0x210c, 0x9106,
+	0x1120, 0x2009, 0x0040, 0x080c, 0x21b8, 0x782c, 0xd0fc, 0x0d88,
+	0x080c, 0x3e6c, 0x7000, 0x9086, 0x0000, 0x1d58, 0x782b, 0x0004,
+	0x782c, 0xd0ac, 0x1de8, 0x2009, 0x0040, 0x080c, 0x21b8, 0x782b,
+	0x0002, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079,
+	0x0100, 0x2001, 0x1816, 0x200c, 0x7932, 0x7936, 0x080c, 0x266d,
+	0x7850, 0x9084, 0xfbff, 0x9085, 0x0030, 0x7852, 0x2019, 0x01f4,
+	0x8319, 0x1df0, 0x9084, 0xffcf, 0x9085, 0x2000, 0x7852, 0x20a9,
+	0x0046, 0x1d04, 0x3c99, 0x2091, 0x6000, 0x1f04, 0x3c99, 0x7850,
+	0x9085, 0x0400, 0x9084, 0xdfff, 0x7852, 0x2001, 0x0021, 0x2004,
+	0x9084, 0x0003, 0x9086, 0x0001, 0x1120, 0x7850, 0x9084, 0xdfff,
+	0x7852, 0x784b, 0xf7f7, 0x7843, 0x0090, 0x7843, 0x0010, 0x20a9,
+	0x0028, 0xa001, 0x1f04, 0x3cb9, 0x7850, 0x9085, 0x1400, 0x7852,
+	0x2019, 0x61a8, 0x7854, 0xa001, 0xa001, 0xd08c, 0x1110, 0x8319,
+	0x1dc8, 0x7827, 0x0048, 0x7850, 0x9085, 0x0400, 0x7852, 0x7843,
+	0x0040, 0x2019, 0x01f4, 0xa001, 0xa001, 0x8319, 0x1de0, 0x2001,
+	0x0100, 0x080c, 0x2ac9, 0x7827, 0x0020, 0x7843, 0x0000, 0x9006,
+	0x080c, 0x2ac9, 0x7827, 0x0048, 0x00fe, 0x0005, 0x7884, 0xd0ac,
+	0x11c8, 0x00f6, 0x00e6, 0x2071, 0x1a6d, 0x2079, 0x0320, 0x2001,
+	0x0201, 0x2004, 0x9005, 0x0160, 0x7000, 0x9086, 0x0000, 0x1140,
+	0x0051, 0xd0bc, 0x0108, 0x8738, 0x7003, 0x0003, 0x782b, 0x0019,
+	0x00ee, 0x00fe, 0x0005, 0x00f6, 0x2079, 0x0300, 0x78bc, 0x00fe,
+	0x908c, 0x0070, 0x0178, 0x2009, 0x0032, 0x260a, 0x2009, 0x0033,
+	0x250a, 0xd0b4, 0x0108, 0x8c60, 0xd0ac, 0x0108, 0x8d68, 0xd0a4,
+	0x0108, 0x8b58, 0x0005, 0x00f6, 0x2079, 0x0200, 0x781c, 0xd084,
+	0x0110, 0x7837, 0x0050, 0x00fe, 0x0005, 0x00e6, 0x2071, 0x0100,
+	0x2001, 0x19b4, 0x2004, 0x70e2, 0x080c, 0x3a15, 0x1188, 0x2001,
+	0x181e, 0x2004, 0x2009, 0x181d, 0x210c, 0x918c, 0x00ff, 0x706e,
+	0x716a, 0x7066, 0x918d, 0x3200, 0x7162, 0x7073, 0xe109, 0x0080,
+	0x702c, 0x9085, 0x0002, 0x702e, 0x2009, 0x1816, 0x210c, 0x716e,
+	0x7063, 0x0100, 0x7166, 0x719e, 0x706b, 0x0000, 0x7073, 0x0809,
+	0x7077, 0x0008, 0x7078, 0x9080, 0x0100, 0x707a, 0x7080, 0x8000,
+	0x7082, 0x7087, 0xaaaa, 0x9006, 0x708a, 0x708e, 0x707e, 0x70d6,
+	0x70ab, 0x0036, 0x70af, 0x95d5, 0x7014, 0x9084, 0x1984, 0x9085,
+	0x0092, 0x7016, 0x080c, 0x3e6c, 0x00f6, 0x2071, 0x1a6d, 0x2079,
+	0x0320, 0x00d6, 0x2069, 0x0000, 0x6884, 0xd0b4, 0x0120, 0x689c,
+	0x780e, 0x6898, 0x780a, 0x00de, 0x20a9, 0x0002, 0x080c, 0x29f7,
+	0x792c, 0xd1fc, 0x0110, 0x782b, 0x0004, 0x2011, 0x0011, 0x080c,
+	0x3df8, 0x2011, 0x0001, 0x080c, 0x3df8, 0x00fe, 0x00ee, 0x0005,
+	0x00f6, 0x00e6, 0x2071, 0x1a6d, 0x2079, 0x0320, 0x792c, 0xd1fc,
+	0x0904, 0x3df5, 0x782b, 0x0002, 0x9026, 0xd19c, 0x1904, 0x3df1,
+	0x7000, 0x0002, 0x3df5, 0x3da6, 0x3dd6, 0x3df1, 0xd1bc, 0x1170,
+	0xd1dc, 0x1190, 0x8001, 0x7002, 0x2011, 0x0001, 0x080c, 0x3df8,
+	0x0904, 0x3df5, 0x080c, 0x3df8, 0x0804, 0x3df5, 0x00f6, 0x2079,
+	0x0300, 0x78bf, 0x0000, 0x00fe, 0x7810, 0x7914, 0x782b, 0x0004,
+	0x7812, 0x7916, 0x2001, 0x0201, 0x200c, 0x81ff, 0x0de8, 0x080c,
+	0x3d03, 0x2009, 0x0001, 0x00f6, 0x2079, 0x0300, 0x78b8, 0x00fe,
+	0xd0ec, 0x0110, 0x2009, 0x0011, 0x792a, 0x00f8, 0x8001, 0x7002,
+	0x9184, 0x0880, 0x1140, 0x782c, 0xd0fc, 0x1904, 0x3d9a, 0x2011,
+	0x0001, 0x00b1, 0x0090, 0xa010, 0x9092, 0x0004, 0x9086, 0x0015,
+	0x1120, 0xa000, 0xa05a, 0x2011, 0x0031, 0xa212, 0xd1dc, 0x1960,
+	0x0828, 0x782b, 0x0004, 0x7003, 0x0000, 0x00ee, 0x00fe, 0x0005,
+	0xa014, 0x9005, 0x0550, 0x8001, 0x0036, 0x0096, 0xa016, 0xa058,
+	0x2048, 0xa010, 0x2009, 0x0031, 0x911a, 0x831c, 0x831c, 0x938a,
+	0x0007, 0x1a0c, 0x0db8, 0x9398, 0x3e26, 0x231d, 0x083f, 0x9080,
+	0x0004, 0x7a2a, 0x7100, 0x8108, 0x7102, 0x009e, 0x003e, 0x908a,
+	0x0035, 0x1140, 0x0096, 0xa058, 0x2048, 0xa804, 0xa05a, 0x2001,
+	0x0019, 0x009e, 0xa012, 0x9085, 0x0001, 0x0005, 0x3e63, 0x3e5a,
+	0x3e51, 0x3e48, 0x3e3f, 0x3e36, 0x3e2d, 0xa964, 0x7902, 0xa968,
+	0x7906, 0xa96c, 0x7912, 0xa970, 0x7916, 0x0005, 0xa974, 0x7902,
+	0xa978, 0x7906, 0xa97c, 0x7912, 0xa980, 0x7916, 0x0005, 0xa984,
+	0x7902, 0xa988, 0x7906, 0xa98c, 0x7912, 0xa990, 0x7916, 0x0005,
+	0xa994, 0x7902, 0xa998, 0x7906, 0xa99c, 0x7912, 0xa9a0, 0x7916,
+	0x0005, 0xa9a4, 0x7902, 0xa9a8, 0x7906, 0xa9ac, 0x7912, 0xa9b0,
+	0x7916, 0x0005, 0xa9b4, 0x7902, 0xa9b8, 0x7906, 0xa9bc, 0x7912,
+	0xa9c0, 0x7916, 0x0005, 0xa9c4, 0x7902, 0xa9c8, 0x7906, 0xa9cc,
+	0x7912, 0xa9d0, 0x7916, 0x0005, 0x00f6, 0x00e6, 0x0086, 0x2071,
+	0x1a71, 0x2079, 0x0090, 0x792c, 0xd1fc, 0x01e8, 0x782b, 0x0002,
+	0x2940, 0x9026, 0x7000, 0x0002, 0x3e93, 0x3e7f, 0x3e8a, 0x8001,
+	0x7002, 0xd19c, 0x1180, 0x2011, 0x0001, 0x080c, 0x3df8, 0x190c,
+	0x3df8, 0x0048, 0x8001, 0x7002, 0x782c, 0xd0fc, 0x1d38, 0x2011,
+	0x0001, 0x080c, 0x3df8, 0x008e, 0x00ee, 0x00fe, 0x0005, 0x00f6,
+	0x00e6, 0x00c6, 0x0086, 0x2061, 0x0200, 0x2001, 0x19b4, 0x2004,
+	0x601a, 0x2061, 0x0100, 0x2001, 0x19b3, 0x2004, 0x60ce, 0x6104,
+	0xc1ac, 0x6106, 0x2001, 0x002c, 0x2004, 0x9005, 0x0520, 0x2038,
+	0x2001, 0x002e, 0x2024, 0x2001, 0x002f, 0x201c, 0x080c, 0x477b,
+	0xa813, 0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220,
+	0x2138, 0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858,
+	0x2048, 0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x3f0f, 0x1d68,
+	0x2900, 0xa85a, 0x00d0, 0x080c, 0x477b, 0xa813, 0x0019, 0xa817,
+	0x0001, 0x2900, 0xa85a, 0x2001, 0x002e, 0x2004, 0xa866, 0x2001,
+	0x002f, 0x2004, 0xa86a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,
+	0xa86e, 0x2001, 0x002b, 0x2004, 0xa872, 0x2061, 0x0090, 0x2079,
+	0x0100, 0x2001, 0x19b3, 0x2004, 0x6036, 0x2009, 0x0040, 0x080c,
+	0x21b8, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8, 0x601a, 0x0006,
+	0x2001, 0x002b, 0x2004, 0x601e, 0x78c6, 0x000e, 0x78ca, 0x9006,
+	0x600a, 0x600e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x00e6,
+	0x2071, 0x0080, 0xaa60, 0x22e8, 0x20a0, 0x20e1, 0x0000, 0x2099,
+	0x0088, 0x702b, 0x0026, 0x7402, 0x7306, 0x9006, 0x700a, 0x700e,
+	0x810b, 0x810b, 0x21a8, 0x810b, 0x7112, 0x702b, 0x0041, 0x702c,
+	0xd0fc, 0x0de8, 0x702b, 0x0002, 0x702b, 0x0040, 0x4005, 0x7400,
+	0x7304, 0x87ff, 0x0190, 0x0086, 0x0096, 0x2940, 0x0086, 0x080c,
+	0x477b, 0x008e, 0xa058, 0x00a6, 0x2050, 0x2900, 0xb006, 0xa05a,
+	0x00ae, 0x009e, 0x008e, 0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6,
+	0x2001, 0x002d, 0x2004, 0x9005, 0x0528, 0x2038, 0x2001, 0x0030,
+	0x2024, 0x2001, 0x0031, 0x201c, 0x080c, 0x477b, 0x2940, 0xa813,
+	0x0019, 0xaf16, 0x2900, 0xa85a, 0x978a, 0x0007, 0x0220, 0x2138,
+	0x2009, 0x0007, 0x0010, 0x2708, 0x903e, 0x0096, 0xa858, 0x2048,
+	0xa85c, 0x9080, 0x0019, 0x009e, 0x080c, 0x3f0f, 0x1d68, 0x2900,
+	0xa85a, 0x00d8, 0x080c, 0x477b, 0x2940, 0xa013, 0x0019, 0xa017,
+	0x0001, 0x2800, 0xa05a, 0x2001, 0x0030, 0x2004, 0xa066, 0x2001,
+	0x0031, 0x2004, 0xa06a, 0x2001, 0x002a, 0x2004, 0x9084, 0xfff8,
+	0xa06e, 0x2001, 0x002b, 0x2004, 0xa072, 0x2001, 0x032a, 0x2003,
+	0x0004, 0x7884, 0xd0ac, 0x1180, 0x2001, 0x0101, 0x200c, 0x918d,
+	0x0200, 0x2102, 0xa017, 0x0000, 0x2001, 0x1a6d, 0x2003, 0x0003,
+	0x2001, 0x032a, 0x2003, 0x0009, 0x2001, 0x0300, 0x2003, 0x0000,
+	0x2001, 0x020d, 0x2003, 0x0000, 0x2001, 0x0004, 0x200c, 0x918d,
+	0x0002, 0x2102, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x20a9,
+	0x0013, 0x20a1, 0x1840, 0x20e9, 0x0001, 0x9006, 0x4004, 0x2009,
+	0x013c, 0x200a, 0x012e, 0x7880, 0x9086, 0x0052, 0x0108, 0x0005,
+	0x0804, 0x32f3, 0x7d98, 0x7c9c, 0x0804, 0x33ea, 0x080c, 0x7018,
+	0x190c, 0x5c6e, 0x2069, 0x1853, 0x2d00, 0x2009, 0x0030, 0x7a8c,
+	0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x080c, 0x47c4, 0x701f,
+	0x3fe2, 0x0005, 0x080c, 0x53b2, 0x1130, 0x3b00, 0x3a08, 0xc194,
+	0xc095, 0x20d8, 0x21d0, 0x2069, 0x1853, 0x6800, 0x9005, 0x0904,
+	0x3328, 0x6804, 0xd0ac, 0x0118, 0xd0a4, 0x0904, 0x3328, 0xd094,
+	0x00c6, 0x2061, 0x0100, 0x6104, 0x0138, 0x6200, 0x9292, 0x0005,
+	0x0218, 0x918c, 0xffdf, 0x0010, 0x918d, 0x0020, 0x6106, 0x00ce,
+	0xd08c, 0x00c6, 0x2061, 0x0100, 0x6104, 0x0118, 0x918d, 0x0010,
+	0x0010, 0x918c, 0xffef, 0x6106, 0x00ce, 0xd084, 0x0158, 0x6a28,
+	0x928a, 0x007f, 0x1a04, 0x3328, 0x9288, 0x30f4, 0x210d, 0x918c,
+	0x00ff, 0x615e, 0xd0dc, 0x0130, 0x6828, 0x908a, 0x007f, 0x1a04,
+	0x3328, 0x6056, 0x6888, 0x9084, 0x0030, 0x8004, 0x8004, 0x8004,
+	0x8004, 0x0006, 0x2009, 0x19bb, 0x9080, 0x2760, 0x2005, 0x200a,
+	0x000e, 0x2009, 0x19bc, 0x9080, 0x2764, 0x2005, 0x200a, 0x6808,
+	0x908a, 0x0100, 0x0a04, 0x3328, 0x908a, 0x0841, 0x1a04, 0x3328,
+	0x9084, 0x0007, 0x1904, 0x3328, 0x680c, 0x9005, 0x0904, 0x3328,
+	0x6810, 0x9005, 0x0904, 0x3328, 0x6848, 0x6940, 0x910a, 0x1a04,
+	0x3328, 0x8001, 0x0904, 0x3328, 0x684c, 0x6944, 0x910a, 0x1a04,
+	0x3328, 0x8001, 0x0904, 0x3328, 0x2009, 0x198b, 0x200b, 0x0000,
+	0x2001, 0x1875, 0x2004, 0xd0c4, 0x0140, 0x7884, 0x200a, 0x2009,
+	0x017f, 0x200a, 0x3b00, 0xc085, 0x20d8, 0x6814, 0x908c, 0x00ff,
+	0x6146, 0x8007, 0x9084, 0x00ff, 0x604a, 0x080c, 0x7322, 0x080c,
+	0x660e, 0x080c, 0x6642, 0x6808, 0x602a, 0x080c, 0x212a, 0x2009,
+	0x0170, 0x200b, 0x0080, 0xa001, 0xa001, 0x200b, 0x0000, 0x0036,
+	0x6b08, 0x080c, 0x26c7, 0x003e, 0x6000, 0x9086, 0x0000, 0x1904,
+	0x4179, 0x6818, 0x691c, 0x6a20, 0x6b24, 0x8007, 0x810f, 0x8217,
+	0x831f, 0x6016, 0x611a, 0x621e, 0x6322, 0x6c04, 0xd4f4, 0x0148,
+	0x6830, 0x6934, 0x6a38, 0x6b3c, 0x8007, 0x810f, 0x8217, 0x831f,
+	0x0010, 0x9084, 0xf0ff, 0x6006, 0x610a, 0x620e, 0x6312, 0x8007,
+	0x810f, 0x8217, 0x831f, 0x20a9, 0x0004, 0x20a1, 0x19bd, 0x20e9,
+	0x0001, 0x4001, 0x20a9, 0x0004, 0x20a1, 0x19d7, 0x20e9, 0x0001,
+	0x4001, 0x080c, 0x81cf, 0x00c6, 0x900e, 0x20a9, 0x0001, 0x6b70,
+	0xd384, 0x0510, 0x0068, 0x2009, 0x0100, 0x210c, 0x918e, 0x0008,
+	0x1110, 0x839d, 0x0010, 0x83f5, 0x3e18, 0x12b0, 0x3508, 0x8109,
+	0x080c, 0x78d8, 0x6878, 0x6016, 0x6874, 0x2008, 0x9084, 0xff00,
+	0x8007, 0x600a, 0x9184, 0x00ff, 0x6006, 0x8108, 0x1118, 0x6003,
+	0x0003, 0x0010, 0x6003, 0x0001, 0x1f04, 0x40d3, 0x00ce, 0x00c6,
+	0x2061, 0x19a6, 0x6a88, 0x9284, 0xc000, 0x2010, 0x9286, 0x0000,
+	0x1158, 0x2063, 0x0000, 0x2001, 0x0001, 0x080c, 0x296e, 0x2001,
+	0x0001, 0x080c, 0x2951, 0x0088, 0x9286, 0x4000, 0x1148, 0x2063,
+	0x0001, 0x9006, 0x080c, 0x296e, 0x9006, 0x080c, 0x2951, 0x0028,
+	0x9286, 0x8000, 0x1d30, 0x2063, 0x0002, 0x00ce, 0x6888, 0xd0ec,
+	0x0130, 0x2011, 0x0114, 0x2204, 0x9085, 0x0100, 0x2012, 0x6a80,
+	0x9284, 0x0030, 0x9086, 0x0030, 0x1128, 0x9294, 0xffcf, 0x9295,
+	0x0020, 0x6a82, 0x2001, 0x1988, 0x6a80, 0x9294, 0x0030, 0x928e,
+	0x0000, 0x0170, 0x928e, 0x0010, 0x0118, 0x928e, 0x0020, 0x0140,
+	0x2003, 0xaaaa, 0x080c, 0x273c, 0x2001, 0x1979, 0x2102, 0x0008,
+	0x2102, 0x00c6, 0x2061, 0x0100, 0x602f, 0x0040, 0x602f, 0x0000,
+	0x00ce, 0x080c, 0x7018, 0x0128, 0x080c, 0x4cbe, 0x0110, 0x080c,
+	0x268d, 0x60d0, 0x9005, 0x01c0, 0x6003, 0x0001, 0x2009, 0x4161,
+	0x00e0, 0x080c, 0x7018, 0x1168, 0x2011, 0x6eb4, 0x080c, 0x80ec,
+	0x2011, 0x6ea7, 0x080c, 0x81c3, 0x080c, 0x72f6, 0x080c, 0x6f53,
+	0x0040, 0x080c, 0x5b68, 0x0028, 0x6003, 0x0004, 0x2009, 0x4179,
+	0x0020, 0x080c, 0x6544, 0x0804, 0x32f3, 0x2001, 0x0170, 0x2004,
+	0x9084, 0x00ff, 0x9086, 0x004c, 0x1118, 0x2091, 0x30bd, 0x0817,
+	0x2091, 0x303d, 0x0817, 0x6000, 0x9086, 0x0000, 0x0904, 0x3325,
+	0x2069, 0x1853, 0x7890, 0x6842, 0x7894, 0x6846, 0x2d00, 0x2009,
+	0x0030, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x2039, 0x0001, 0x0804,
+	0x47c7, 0x9006, 0x080c, 0x268d, 0x81ff, 0x1904, 0x3325, 0x080c,
+	0x7018, 0x11b0, 0x080c, 0x72f1, 0x080c, 0x5ca9, 0x080c, 0x30e8,
+	0x0118, 0x6130, 0xc18d, 0x6132, 0x080c, 0xccaa, 0x0130, 0x080c,
+	0x703b, 0x1118, 0x080c, 0x6ff4, 0x0038, 0x080c, 0x6f53, 0x0020,
+	0x080c, 0x5c6e, 0x080c, 0x5b68, 0x0804, 0x32f3, 0x81ff, 0x1904,
+	0x3325, 0x080c, 0x7018, 0x1110, 0x0804, 0x3325, 0x618c, 0x81ff,
+	0x01a8, 0x704f, 0x0000, 0x2001, 0x1c80, 0x2009, 0x0040, 0x7a8c,
+	0x7b88, 0x7c9c, 0x7d98, 0x0126, 0x2091, 0x8000, 0x2039, 0x0001,
+	0x080c, 0x47c7, 0x701f, 0x32f1, 0x012e, 0x0005, 0x704f, 0x0001,
+	0x00d6, 0x2069, 0x1c80, 0x20a9, 0x0040, 0x20e9, 0x0001, 0x20a1,
+	0x1c80, 0x2019, 0xffff, 0x4304, 0x6554, 0x9588, 0x30f4, 0x210d,
+	0x918c, 0x00ff, 0x216a, 0x900e, 0x2011, 0x0002, 0x2100, 0x9506,
+	0x01a8, 0x080c, 0x6274, 0x1190, 0xb814, 0x821c, 0x0238, 0x9398,
+	0x1c80, 0x9085, 0xff00, 0x8007, 0x201a, 0x0038, 0x9398, 0x1c80,
+	0x2324, 0x94a4, 0xff00, 0x9405, 0x201a, 0x8210, 0x8108, 0x9182,
+	0x0080, 0x1208, 0x0c18, 0x8201, 0x8007, 0x2d0c, 0x9105, 0x206a,
+	0x00de, 0x20a9, 0x0040, 0x20a1, 0x1c80, 0x2099, 0x1c80, 0x080c,
+	0x5bf9, 0x0804, 0x41d3, 0x080c, 0x47ae, 0x0904, 0x3328, 0x080c,
+	0x477b, 0x1120, 0x2009, 0x0002, 0x0804, 0x3325, 0x080c, 0x53a3,
+	0xd0b4, 0x0558, 0x7884, 0x908e, 0x007e, 0x0538, 0x908e, 0x007f,
+	0x0520, 0x908e, 0x0080, 0x0508, 0x080c, 0x30e3, 0x1148, 0xb800,
+	0xd08c, 0x11d8, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x11a8,
+	0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xc793, 0x1120,
+	0x2009, 0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f, 0x4261,
+	0x0005, 0x080c, 0x47ae, 0x0904, 0x3328, 0x20a9, 0x002b, 0xb8c4,
+	0x20e0, 0xb8c8, 0x2098, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,
+	0x20a0, 0x4003, 0x20a9, 0x0008, 0x9080, 0x0006, 0x20a0, 0xb8c4,
+	0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098, 0x080c, 0x0f4a, 0x0070,
+	0x20a9, 0x0004, 0xa85c, 0x9080, 0x000a, 0x20a0, 0xb8c4, 0x20e0,
+	0xb8c8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0f4a, 0x8906, 0x8006,
+	0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009,
+	0x002b, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804, 0x47c7, 0x81ff,
+	0x1904, 0x3325, 0x080c, 0x4792, 0x0904, 0x3328, 0x080c, 0x63e6,
+	0x0904, 0x3325, 0x0058, 0xa878, 0x9005, 0x0120, 0x2009, 0x0004,
+	0x0804, 0x3325, 0xa974, 0xaa94, 0x0804, 0x32f3, 0x080c, 0x53ab,
+	0x0904, 0x32f3, 0x701f, 0x42ab, 0x7007, 0x0003, 0x0005, 0x81ff,
+	0x1904, 0x3325, 0x7888, 0x908a, 0x1000, 0x1a04, 0x3328, 0x080c,
+	0x47ae, 0x0904, 0x3328, 0x080c, 0x65d8, 0x0120, 0x080c, 0x65e0,
+	0x1904, 0x3328, 0x080c, 0x646b, 0x0904, 0x3325, 0x2019, 0x0004,
+	0x900e, 0x080c, 0x63f8, 0x0904, 0x3325, 0x7984, 0x7a88, 0x04c9,
+	0x08a8, 0xa89c, 0x908a, 0x1000, 0x12f8, 0x080c, 0x47ac, 0x01e0,
+	0x080c, 0x65d8, 0x0118, 0x080c, 0x65e0, 0x11b0, 0x080c, 0x646b,
+	0x2009, 0x0002, 0x0168, 0x2009, 0x0002, 0x2019, 0x0004, 0x080c,
+	0x63f8, 0x2009, 0x0003, 0x0120, 0xa998, 0xaa9c, 0x00d1, 0x0060,
+	0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006, 0x900e, 0x9085,
+	0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000, 0x080c, 0x53ab,
+	0x0110, 0x9006, 0x0018, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000,
+	0x0005, 0x9186, 0x00ff, 0x0110, 0x0071, 0x0060, 0x2029, 0x007e,
+	0x2061, 0x1800, 0x6454, 0x2400, 0x9506, 0x0110, 0x2508, 0x0019,
+	0x8529, 0x1ec8, 0x0005, 0x080c, 0x6274, 0x1138, 0x2200, 0x8003,
+	0x800b, 0x810b, 0x9108, 0x080c, 0x80fa, 0x0005, 0x81ff, 0x1904,
+	0x3325, 0x080c, 0x4792, 0x0904, 0x3328, 0x080c, 0x633b, 0x0904,
+	0x3325, 0x080c, 0x63ef, 0x0904, 0x3325, 0x0804, 0x42b6, 0x81ff,
+	0x1904, 0x3325, 0x080c, 0x4792, 0x0904, 0x3328, 0x080c, 0x633b,
+	0x0904, 0x3325, 0x080c, 0x63dd, 0x0904, 0x3325, 0x0804, 0x42b6,
+	0x6100, 0x0804, 0x32f3, 0x080c, 0x47ae, 0x0904, 0x3328, 0x080c,
+	0x53b7, 0x1904, 0x3325, 0x79a8, 0xd184, 0x1158, 0xb834, 0x8007,
+	0x789e, 0xb830, 0x8007, 0x789a, 0xbb2c, 0x831f, 0xba28, 0x8217,
+	0x0050, 0xb824, 0x8007, 0x789e, 0xb820, 0x8007, 0x789a, 0xbb1c,
+	0x831f, 0xba18, 0x8217, 0xb900, 0x918c, 0x0200, 0x0804, 0x32f3,
+	0x78a8, 0x909c, 0x0003, 0xd0b4, 0x1140, 0x939a, 0x0003, 0x1a04,
+	0x3325, 0x6254, 0x7884, 0x9206, 0x1560, 0x2031, 0x1848, 0x2009,
+	0x013c, 0x2136, 0x2001, 0x1840, 0x2009, 0x000c, 0x7a8c, 0x7b88,
+	0x7c9c, 0x7d98, 0x2039, 0x0001, 0x0006, 0x78a8, 0x9084, 0x0080,
+	0x1118, 0x000e, 0x0804, 0x47c7, 0x000e, 0x2031, 0x0000, 0x2061,
+	0x18c4, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076, 0xa28e, 0xa392,
+	0xa496, 0xa59a, 0x080c, 0x10ad, 0x7007, 0x0002, 0x701f, 0x43d8,
+	0x0005, 0x81ff, 0x1904, 0x3325, 0x080c, 0x47ae, 0x0904, 0x3328,
+	0x080c, 0x65d8, 0x1904, 0x3325, 0x00c6, 0x080c, 0x477b, 0x00ce,
+	0x0904, 0x3325, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c,
+	0xc739, 0x0904, 0x3325, 0x7007, 0x0003, 0x701f, 0x43dc, 0x0005,
+	0x080c, 0x3fb4, 0x0804, 0x32f3, 0xa830, 0x9086, 0x0100, 0x0904,
+	0x3325, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0,
+	0x9080, 0x001b, 0x2009, 0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,
+	0x0804, 0x47c7, 0x9006, 0x080c, 0x268d, 0x78a8, 0x9084, 0x00ff,
+	0x9086, 0x00ff, 0x0118, 0x81ff, 0x1904, 0x3325, 0x080c, 0x7018,
+	0x0110, 0x080c, 0x5c6e, 0x7888, 0x908a, 0x1000, 0x1a04, 0x3328,
+	0x7984, 0x9186, 0x00ff, 0x0138, 0x9182, 0x007f, 0x1a04, 0x3328,
+	0x2100, 0x080c, 0x2657, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000,
+	0x2061, 0x1a04, 0x601b, 0x0000, 0x601f, 0x0000, 0x6077, 0x0000,
+	0x607b, 0x0000, 0x080c, 0x7018, 0x1158, 0x080c, 0x72f1, 0x080c,
+	0x5ca9, 0x9085, 0x0001, 0x080c, 0x7061, 0x080c, 0x6f53, 0x00d0,
+	0x080c, 0xa8dc, 0x2061, 0x0100, 0x2001, 0x1816, 0x2004, 0x9084,
+	0x00ff, 0x810f, 0x9105, 0x604a, 0x6043, 0x0090, 0x6043, 0x0010,
+	0x2009, 0x19a3, 0x200b, 0x0000, 0x2009, 0x002d, 0x2011, 0x5b94,
+	0x080c, 0x8181, 0x7984, 0x080c, 0x7018, 0x1110, 0x2009, 0x00ff,
+	0x7a88, 0x080c, 0x4319, 0x012e, 0x00ce, 0x002e, 0x0804, 0x32f3,
+	0x7984, 0x080c, 0x6213, 0x2b08, 0x1904, 0x3328, 0x0804, 0x32f3,
+	0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325, 0x60d8, 0xd0ac,
+	0x1130, 0xd09c, 0x1120, 0x2009, 0x0005, 0x0804, 0x3325, 0x080c,
+	0x477b, 0x1120, 0x2009, 0x0002, 0x0804, 0x3325, 0x7984, 0x9192,
+	0x0021, 0x1a04, 0x3328, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xa85c,
+	0x9080, 0x0019, 0x702a, 0xaf60, 0x7736, 0x080c, 0x47c4, 0x701f,
+	0x4490, 0x7880, 0x9086, 0x006e, 0x0110, 0x701f, 0x4e70, 0x0005,
+	0x2009, 0x0080, 0x080c, 0x6274, 0x1118, 0x080c, 0x65d8, 0x0120,
+	0x2021, 0x400a, 0x0804, 0x32f5, 0x00d6, 0x0096, 0xa964, 0xaa6c,
+	0xab70, 0xac74, 0xad78, 0xae7c, 0xa884, 0x90be, 0x0100, 0x0904,
+	0x4529, 0x90be, 0x0112, 0x0904, 0x4529, 0x90be, 0x0113, 0x0904,
+	0x4529, 0x90be, 0x0114, 0x0904, 0x4529, 0x90be, 0x0117, 0x0904,
+	0x4529, 0x90be, 0x011a, 0x0904, 0x4529, 0x90be, 0x011c, 0x0904,
+	0x4529, 0x90be, 0x0121, 0x0904, 0x4510, 0x90be, 0x0131, 0x0904,
+	0x4510, 0x90be, 0x0171, 0x0904, 0x4529, 0x90be, 0x0173, 0x0904,
+	0x4529, 0x90be, 0x01a1, 0x1128, 0xa894, 0x8007, 0xa896, 0x0804,
+	0x4534, 0x90be, 0x0212, 0x0904, 0x451d, 0x90be, 0x0213, 0x05e8,
+	0x90be, 0x0214, 0x0500, 0x90be, 0x0217, 0x0188, 0x90be, 0x021a,
+	0x1120, 0xa89c, 0x8007, 0xa89e, 0x04e0, 0x90be, 0x021f, 0x05c8,
+	0x90be, 0x0300, 0x05b0, 0x009e, 0x00de, 0x0804, 0x3328, 0x7028,
+	0x9080, 0x0010, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9,
+	0x0007, 0x080c, 0x4572, 0x7028, 0x9080, 0x000e, 0x2098, 0x20a0,
+	0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c, 0x4572, 0x00c8,
+	0x7028, 0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8,
+	0x20a9, 0x0001, 0x080c, 0x457f, 0x00b8, 0x7028, 0x9080, 0x000e,
+	0x2098, 0x20a0, 0x7034, 0x20e0, 0x20e8, 0x20a9, 0x0001, 0x080c,
+	0x457f, 0x7028, 0x9080, 0x000c, 0x2098, 0x20a0, 0x7034, 0x20e0,
+	0x20e8, 0x20a9, 0x0001, 0x04f1, 0x00c6, 0x080c, 0x477b, 0x0550,
+	0xa868, 0xc0fd, 0xa86a, 0xa867, 0x0119, 0x9006, 0xa882, 0xa87f,
+	0x0020, 0xa88b, 0x0001, 0x810b, 0xa9ae, 0xa8b2, 0xaab6, 0xabba,
+	0xacbe, 0xadc2, 0xa9c6, 0xa8ca, 0x00ce, 0x009e, 0x00de, 0xa866,
+	0xa822, 0xa868, 0xc0fd, 0xa86a, 0xa804, 0x2048, 0x080c, 0xc754,
+	0x1120, 0x2009, 0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f,
+	0x4569, 0x0005, 0x00ce, 0x009e, 0x00de, 0x2009, 0x0002, 0x0804,
+	0x3325, 0xa820, 0x9086, 0x8001, 0x1904, 0x32f3, 0x2009, 0x0004,
+	0x0804, 0x3325, 0x0016, 0x0026, 0x3510, 0x20a9, 0x0002, 0x4002,
+	0x4104, 0x4004, 0x8211, 0x1dc8, 0x002e, 0x001e, 0x0005, 0x0016,
+	0x0026, 0x0036, 0x0046, 0x3520, 0x20a9, 0x0004, 0x4002, 0x4304,
+	0x4204, 0x4104, 0x4004, 0x8421, 0x1db8, 0x004e, 0x003e, 0x002e,
+	0x001e, 0x0005, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325,
+	0x60d8, 0xd0ac, 0x1130, 0xd09c, 0x1120, 0x2009, 0x0005, 0x0804,
+	0x3325, 0x7984, 0x78a8, 0x2040, 0x080c, 0xa8d5, 0x1120, 0x9182,
+	0x007f, 0x0a04, 0x3328, 0x9186, 0x00ff, 0x0904, 0x3328, 0x9182,
+	0x0800, 0x1a04, 0x3328, 0x7a8c, 0x7b88, 0x6074, 0x9306, 0x1140,
+	0x6078, 0x924e, 0x0904, 0x3328, 0x99cc, 0xff00, 0x0904, 0x3328,
+	0x080c, 0x468e, 0x0904, 0x460c, 0x0086, 0x90c6, 0x4000, 0x008e,
+	0x1538, 0x00c6, 0x0006, 0x0036, 0xb818, 0xbb1c, 0x9305, 0xbb20,
+	0x9305, 0xbb24, 0x9305, 0xbb28, 0x9305, 0xbb2c, 0x9305, 0xbb30,
+	0x9305, 0xbb34, 0x9305, 0x003e, 0x0568, 0xd88c, 0x1128, 0x080c,
+	0x65d8, 0x0110, 0xc89d, 0x0430, 0x900e, 0x080c, 0x6494, 0x1108,
+	0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0x000e, 0x00ce, 0x00b8,
+	0x90c6, 0x4007, 0x1110, 0x2408, 0x0090, 0x90c6, 0x4008, 0x1118,
+	0x2708, 0x2610, 0x0060, 0x90c6, 0x4009, 0x1108, 0x0040, 0x90c6,
+	0x4006, 0x1108, 0x0020, 0x2001, 0x4005, 0x2009, 0x000a, 0x2020,
+	0x0804, 0x32f5, 0x000e, 0x00ce, 0x2b00, 0x7026, 0x0016, 0x00b6,
+	0x00c6, 0x00e6, 0x2c70, 0x080c, 0xa9b9, 0x0904, 0x4664, 0x2b00,
+	0x6012, 0x080c, 0xca2d, 0x2e58, 0x00ee, 0x00e6, 0x00c6, 0x080c,
+	0x477b, 0x00ce, 0x2b70, 0x1150, 0x080c, 0xa96b, 0x00ee, 0x00ce,
+	0x00be, 0x001e, 0x2009, 0x0002, 0x0804, 0x3325, 0x900e, 0xa966,
+	0xa96a, 0x2900, 0x6016, 0xa932, 0xa868, 0xc0fd, 0xd88c, 0x0108,
+	0xc0f5, 0xa86a, 0xd89c, 0x1130, 0x0126, 0x2091, 0x8000, 0x080c,
+	0x2f98, 0x012e, 0x6023, 0x0001, 0x9006, 0x080c, 0x61b0, 0xd89c,
+	0x0138, 0x2001, 0x0004, 0x080c, 0x61c4, 0x2009, 0x0003, 0x0030,
+	0x2001, 0x0002, 0x080c, 0x61c4, 0x2009, 0x0002, 0x080c, 0xa9e6,
+	0x78a8, 0xd094, 0x0138, 0x00ee, 0x7024, 0x00e6, 0x2058, 0xb8cc,
+	0xc08d, 0xb8ce, 0x9085, 0x0001, 0x00ee, 0x00ce, 0x00be, 0x001e,
+	0x1120, 0x2009, 0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f,
+	0x4672, 0x0005, 0xa830, 0x9086, 0x0100, 0x7024, 0x2058, 0x1138,
+	0x2009, 0x0004, 0xba04, 0x9294, 0x00ff, 0x0804, 0x5300, 0x900e,
+	0xa868, 0xd0f4, 0x1904, 0x32f3, 0x080c, 0x6494, 0x1108, 0xc185,
+	0xb800, 0xd0bc, 0x0108, 0xc18d, 0x0804, 0x32f3, 0x00e6, 0x00d6,
+	0x0096, 0x83ff, 0x0904, 0x46dd, 0x902e, 0x080c, 0xa8d5, 0x0130,
+	0x9026, 0x20a9, 0x0800, 0x2071, 0x1000, 0x0030, 0x2021, 0x007f,
+	0x20a9, 0x0781, 0x2071, 0x107f, 0x2e04, 0x9005, 0x11b8, 0x2100,
+	0x9406, 0x1904, 0x46ee, 0x2428, 0x94ce, 0x007f, 0x1120, 0x92ce,
+	0xfffd, 0x1558, 0x0030, 0x94ce, 0x0080, 0x1130, 0x92ce, 0xfffc,
+	0x1520, 0x93ce, 0x00ff, 0x1508, 0xc5fd, 0x0480, 0x2058, 0xbf10,
+	0x2700, 0x9306, 0x11e8, 0xbe14, 0x2600, 0x9206, 0x11c8, 0x2400,
+	0x9106, 0x1180, 0xd884, 0x0598, 0xd894, 0x1588, 0x080c, 0x6578,
+	0x1570, 0x2001, 0x4000, 0x0460, 0x080c, 0x65d8, 0x1540, 0x2001,
+	0x4000, 0x0430, 0x2001, 0x4007, 0x0418, 0x2001, 0x4006, 0x0400,
+	0x2400, 0x9106, 0x1158, 0xbe14, 0x87ff, 0x1128, 0x86ff, 0x0918,
+	0x080c, 0xa8d5, 0x1900, 0x2001, 0x4008, 0x0090, 0x8420, 0x8e70,
+	0x1f04, 0x46a4, 0x85ff, 0x1130, 0x2001, 0x4009, 0x0048, 0x2001,
+	0x0001, 0x0030, 0x080c, 0x6213, 0x1dd0, 0xbb12, 0xba16, 0x9006,
+	0x9005, 0x009e, 0x00de, 0x00ee, 0x0005, 0x81ff, 0x0120, 0x2009,
+	0x0001, 0x0804, 0x3325, 0x080c, 0x477b, 0x1120, 0x2009, 0x0002,
+	0x0804, 0x3325, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x7884,
+	0x9005, 0x0904, 0x3328, 0x9096, 0x00ff, 0x0120, 0x9092, 0x0004,
+	0x1a04, 0x3328, 0x2010, 0x2918, 0x080c, 0x2f3e, 0x1120, 0x2009,
+	0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f, 0x4730, 0x0005,
+	0xa830, 0x9086, 0x0100, 0x1904, 0x32f3, 0x2009, 0x0004, 0x0804,
+	0x3325, 0x7984, 0x080c, 0xa8d5, 0x1120, 0x9182, 0x007f, 0x0a04,
+	0x3328, 0x9186, 0x00ff, 0x0904, 0x3328, 0x9182, 0x0800, 0x1a04,
+	0x3328, 0x2001, 0x9000, 0x080c, 0x535b, 0x1904, 0x3325, 0x0804,
+	0x32f3, 0xa998, 0x080c, 0xa8d5, 0x1118, 0x9182, 0x007f, 0x0280,
+	0x9186, 0x00ff, 0x0168, 0x9182, 0x0800, 0x1250, 0x2001, 0x9000,
+	0x080c, 0x535b, 0x11a8, 0x0060, 0xa897, 0x4005, 0xa99a, 0x0010,
+	0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005,
+	0xa897, 0x4000, 0x900e, 0x9085, 0x0001, 0x2001, 0x0000, 0x0005,
+	0x2009, 0x000a, 0x0c48, 0x080c, 0x0fcd, 0x0198, 0x9006, 0xa802,
+	0x7014, 0x9005, 0x1120, 0x2900, 0x7016, 0x701a, 0x0040, 0x7018,
+	0xa802, 0x0086, 0x2040, 0x2900, 0xa006, 0x701a, 0x008e, 0x9085,
+	0x0001, 0x0005, 0x7984, 0x080c, 0x6274, 0x1130, 0x7e88, 0x9684,
+	0x3fff, 0x9082, 0x4000, 0x0208, 0x905e, 0x8bff, 0x0005, 0xa998,
+	0x080c, 0x6274, 0x1130, 0xae9c, 0x9684, 0x3fff, 0x9082, 0x4000,
+	0x0208, 0x905e, 0x8bff, 0x0005, 0xae98, 0x0008, 0x7e84, 0x2608,
+	0x080c, 0x6274, 0x1108, 0x0008, 0x905e, 0x8bff, 0x0005, 0x0016,
+	0x7114, 0x81ff, 0x0128, 0x2148, 0xa904, 0x080c, 0x0fff, 0x0cc8,
+	0x7116, 0x711a, 0x001e, 0x0005, 0x2031, 0x0001, 0x0010, 0x2031,
+	0x0000, 0x2061, 0x18c4, 0x2c44, 0xa66a, 0xa17a, 0xa772, 0xa076,
+	0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c, 0x10ad, 0x7007, 0x0002,
+	0x701f, 0x32f3, 0x0005, 0x00f6, 0x0126, 0x2091, 0x8000, 0x2079,
+	0x0000, 0x2001, 0x18bc, 0x2004, 0x9005, 0x1190, 0x0e04, 0x47f8,
+	0x7a36, 0x7833, 0x0012, 0x7a82, 0x7b86, 0x7c8a, 0x2091, 0x4080,
+	0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x0804, 0x485e,
+	0x0016, 0x0086, 0x0096, 0x00c6, 0x00e6, 0x2071, 0x18aa, 0x7044,
+	0x9005, 0x1540, 0x7148, 0x9182, 0x0010, 0x0288, 0x7038, 0x2060,
+	0x080c, 0x0fcd, 0x0904, 0x4856, 0xa84b, 0x0000, 0x2900, 0x7046,
+	0x2001, 0x0002, 0x9080, 0x1e81, 0x2005, 0xa846, 0x0098, 0x7038,
+	0x90e0, 0x0004, 0x2001, 0x18c6, 0x9c82, 0x1906, 0x0210, 0x2061,
+	0x18c6, 0x2c00, 0x703a, 0x7148, 0x81ff, 0x1108, 0x703e, 0x8108,
+	0x714a, 0x0460, 0x7148, 0x8108, 0x714a, 0x7044, 0x2040, 0xa144,
+	0x2105, 0x0016, 0x908a, 0x0036, 0x1a0c, 0x0db8, 0x2060, 0x001e,
+	0x8108, 0x2105, 0x9005, 0xa146, 0x1520, 0x080c, 0x0fcd, 0x1130,
+	0x8109, 0xa946, 0x7148, 0x8109, 0x714a, 0x00d8, 0x9006, 0xa806,
+	0xa84a, 0xa046, 0x2800, 0xa802, 0x2900, 0xa006, 0x7046, 0x2001,
+	0x0002, 0x9080, 0x1e81, 0x2005, 0xa846, 0x0058, 0x2262, 0x6306,
+	0x640a, 0x00ee, 0x00ce, 0x009e, 0x008e, 0x001e, 0x012e, 0x00fe,
+	0x0005, 0x2c00, 0x9082, 0x001b, 0x0002, 0x4880, 0x4880, 0x4882,
+	0x4880, 0x4880, 0x4880, 0x4886, 0x4880, 0x4880, 0x4880, 0x488a,
+	0x4880, 0x4880, 0x4880, 0x488e, 0x4880, 0x4880, 0x4880, 0x4892,
+	0x4880, 0x4880, 0x4880, 0x4896, 0x4880, 0x4880, 0x4880, 0x489b,
+	0x080c, 0x0db8, 0xa276, 0xa37a, 0xa47e, 0x0898, 0xa286, 0xa38a,
+	0xa48e, 0x0878, 0xa296, 0xa39a, 0xa49e, 0x0858, 0xa2a6, 0xa3aa,
+	0xa4ae, 0x0838, 0xa2b6, 0xa3ba, 0xa4be, 0x0818, 0xa2c6, 0xa3ca,
+	0xa4ce, 0x0804, 0x4859, 0xa2d6, 0xa3da, 0xa4de, 0x0804, 0x4859,
+	0x00e6, 0x2071, 0x18aa, 0x7048, 0x9005, 0x0904, 0x4932, 0x0126,
+	0x2091, 0x8000, 0x0e04, 0x4931, 0x00f6, 0x2079, 0x0000, 0x00c6,
+	0x0096, 0x0086, 0x0076, 0x9006, 0x2038, 0x7040, 0x2048, 0x9005,
+	0x0500, 0xa948, 0x2105, 0x0016, 0x908a, 0x0036, 0x1a0c, 0x0db8,
+	0x2060, 0x001e, 0x8108, 0x2105, 0x9005, 0xa94a, 0x1904, 0x4934,
+	0xa804, 0x9005, 0x090c, 0x0db8, 0x7042, 0x2938, 0x2040, 0xa003,
+	0x0000, 0x2001, 0x0002, 0x9080, 0x1e81, 0x2005, 0xa04a, 0x0804,
+	0x4934, 0x703c, 0x2060, 0x2c14, 0x6304, 0x6408, 0x650c, 0x2200,
+	0x7836, 0x7833, 0x0012, 0x7882, 0x2300, 0x7886, 0x2400, 0x788a,
+	0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f,
+	0x87ff, 0x0118, 0x2748, 0x080c, 0x0fff, 0x7048, 0x8001, 0x704a,
+	0x9005, 0x1170, 0x7040, 0x2048, 0x9005, 0x0128, 0x080c, 0x0fff,
+	0x9006, 0x7042, 0x7046, 0x703b, 0x18c6, 0x703f, 0x18c6, 0x0420,
+	0x7040, 0x9005, 0x1508, 0x7238, 0x2c00, 0x9206, 0x0148, 0x9c80,
+	0x0004, 0x90fa, 0x1906, 0x0210, 0x2001, 0x18c6, 0x703e, 0x00a0,
+	0x9006, 0x703e, 0x703a, 0x7044, 0x9005, 0x090c, 0x0db8, 0x2048,
+	0xa800, 0x9005, 0x1de0, 0x2900, 0x7042, 0x2001, 0x0002, 0x9080,
+	0x1e81, 0x2005, 0xa84a, 0x0000, 0x007e, 0x008e, 0x009e, 0x00ce,
+	0x00fe, 0x012e, 0x00ee, 0x0005, 0x2c00, 0x9082, 0x001b, 0x0002,
+	0x4953, 0x4953, 0x4955, 0x4953, 0x4953, 0x4953, 0x495a, 0x4953,
+	0x4953, 0x4953, 0x495f, 0x4953, 0x4953, 0x4953, 0x4964, 0x4953,
+	0x4953, 0x4953, 0x4969, 0x4953, 0x4953, 0x4953, 0x496e, 0x4953,
+	0x4953, 0x4953, 0x4973, 0x080c, 0x0db8, 0xaa74, 0xab78, 0xac7c,
+	0x0804, 0x48df, 0xaa84, 0xab88, 0xac8c, 0x0804, 0x48df, 0xaa94,
+	0xab98, 0xac9c, 0x0804, 0x48df, 0xaaa4, 0xaba8, 0xacac, 0x0804,
+	0x48df, 0xaab4, 0xabb8, 0xacbc, 0x0804, 0x48df, 0xaac4, 0xabc8,
+	0xaccc, 0x0804, 0x48df, 0xaad4, 0xabd8, 0xacdc, 0x0804, 0x48df,
+	0x0016, 0x0026, 0x0036, 0x00b6, 0x00c6, 0x2009, 0x007e, 0x080c,
+	0x6274, 0x2019, 0x0001, 0xb85c, 0xd0ac, 0x0110, 0x2019, 0x0000,
+	0x2011, 0x801b, 0x080c, 0x47db, 0x00ce, 0x00be, 0x003e, 0x002e,
+	0x001e, 0x0005, 0x0026, 0x080c, 0x53a3, 0xd0c4, 0x0120, 0x2011,
+	0x8014, 0x080c, 0x47db, 0x002e, 0x0005, 0x81ff, 0x1904, 0x3325,
+	0x0126, 0x2091, 0x8000, 0x6030, 0xc08d, 0xc085, 0xc0ac, 0x6032,
+	0x080c, 0x7018, 0x1158, 0x080c, 0x72f1, 0x080c, 0x5ca9, 0x9085,
+	0x0001, 0x080c, 0x7061, 0x080c, 0x6f53, 0x0010, 0x080c, 0x5b68,
+	0x012e, 0x0804, 0x32f3, 0x7884, 0x2008, 0x918c, 0xfffd, 0x1128,
+	0x61e4, 0x910d, 0x61e6, 0x0804, 0x32f3, 0x0804, 0x3328, 0x81ff,
+	0x0120, 0x2009, 0x0001, 0x0804, 0x3325, 0x080c, 0x53b7, 0x0120,
+	0x2009, 0x0007, 0x0804, 0x3325, 0x080c, 0x65d0, 0x0120, 0x2009,
+	0x0008, 0x0804, 0x3325, 0x080c, 0x30e3, 0x0128, 0x7984, 0x080c,
+	0x6213, 0x1904, 0x3328, 0x080c, 0x47ae, 0x0904, 0x3328, 0x2b00,
+	0x7026, 0x080c, 0x65d8, 0x7888, 0x1170, 0x9084, 0x0005, 0x1158,
+	0x900e, 0x080c, 0x6494, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,
+	0xc18d, 0x0804, 0x32f3, 0x080c, 0x477b, 0x0904, 0x3325, 0x9006,
+	0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xc7e3, 0x0904,
+	0x3325, 0x7888, 0xd094, 0x0118, 0xb8cc, 0xc08d, 0xb8ce, 0x7007,
+	0x0003, 0x701f, 0x4a60, 0x0005, 0x2061, 0x1800, 0x080c, 0x53b7,
+	0x2009, 0x0007, 0x1578, 0x080c, 0x65d0, 0x0118, 0x2009, 0x0008,
+	0x0448, 0x080c, 0x30e3, 0x0120, 0xa998, 0x080c, 0x6213, 0x1530,
+	0x080c, 0x47ac, 0x0518, 0x080c, 0x65d8, 0xa89c, 0x1168, 0x9084,
+	0x0005, 0x1150, 0x900e, 0x080c, 0x6494, 0x1108, 0xc185, 0xb800,
+	0xd0bc, 0x0108, 0xc18d, 0x00d0, 0xa868, 0xc0fc, 0xa86a, 0x080c,
+	0xc7e3, 0x11e0, 0xa89c, 0xd094, 0x0118, 0xb8cc, 0xc08d, 0xb8ce,
+	0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897, 0x4006,
+	0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897, 0x4000,
+	0xa99a, 0x9006, 0x918d, 0x0001, 0x2008, 0x0005, 0x9006, 0x0005,
+	0xa830, 0x9086, 0x0100, 0x7024, 0x2058, 0x1110, 0x0804, 0x5300,
+	0x900e, 0x080c, 0x6494, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108,
+	0xc18d, 0x0804, 0x32f3, 0x080c, 0x53b7, 0x0120, 0x2009, 0x0007,
+	0x0804, 0x3325, 0x7f84, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x080c,
+	0x477b, 0x1120, 0x2009, 0x0002, 0x0804, 0x3325, 0x900e, 0x2130,
+	0x7126, 0x7132, 0xa860, 0x20e8, 0x7036, 0xa85c, 0x9080, 0x0005,
+	0x702a, 0x20a0, 0x080c, 0x6274, 0x1904, 0x4b02, 0x080c, 0x65d8,
+	0x0138, 0x080c, 0x65e0, 0x0120, 0x080c, 0x6578, 0x1904, 0x4b02,
+	0xd794, 0x1110, 0xd784, 0x01a8, 0xb8c4, 0x20e0, 0xb8c8, 0x9080,
+	0x0006, 0x2098, 0x3400, 0xd794, 0x0160, 0x20a9, 0x0008, 0x4003,
+	0x2098, 0x20a0, 0x3d00, 0x20e0, 0x20a9, 0x0002, 0x080c, 0x457f,
+	0x0048, 0x20a9, 0x0004, 0x4003, 0x2098, 0x20a0, 0x3d00, 0x20e0,
+	0x080c, 0x457f, 0x9186, 0x007e, 0x0170, 0x9186, 0x0080, 0x0158,
+	0x080c, 0x65d8, 0x90c2, 0x0006, 0x1210, 0xc1fd, 0x0020, 0x080c,
+	0x6494, 0x1108, 0xc1fd, 0x4104, 0xc1fc, 0xd794, 0x0528, 0xb8c4,
+	0x20e0, 0xb8c8, 0x2060, 0x9c80, 0x0000, 0x2098, 0x20a9, 0x0002,
+	0x4003, 0x9c80, 0x0003, 0x2098, 0x20a9, 0x0001, 0x4005, 0x9c80,
+	0x0004, 0x2098, 0x3400, 0x20a9, 0x0002, 0x4003, 0x2098, 0x20a0,
+	0x3d00, 0x20e0, 0x080c, 0x4572, 0x9c80, 0x0026, 0x2098, 0xb8c4,
+	0x20e0, 0x20a9, 0x0002, 0x4003, 0xd794, 0x0110, 0x96b0, 0x000b,
+	0x96b0, 0x0005, 0x8108, 0x080c, 0xa8d5, 0x0118, 0x9186, 0x0800,
+	0x0040, 0xd78c, 0x0120, 0x9186, 0x0800, 0x0170, 0x0018, 0x9186,
+	0x007e, 0x0150, 0xd794, 0x0118, 0x9686, 0x0020, 0x0010, 0x9686,
+	0x0028, 0x0150, 0x0804, 0x4a92, 0x86ff, 0x1120, 0x7124, 0x810b,
+	0x0804, 0x32f3, 0x7033, 0x0001, 0x7122, 0x7024, 0x9600, 0x7026,
+	0x772e, 0x2061, 0x18c4, 0x2c44, 0xa06b, 0x0000, 0xa67a, 0x7034,
+	0xa072, 0x7028, 0xa076, 0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c,
+	0x10ad, 0x7007, 0x0002, 0x701f, 0x4b3e, 0x0005, 0x7030, 0x9005,
+	0x1180, 0x7120, 0x7028, 0x20a0, 0x772c, 0x9036, 0x7034, 0x20e8,
+	0x2061, 0x18c4, 0x2c44, 0xa28c, 0xa390, 0xa494, 0xa598, 0x0804,
+	0x4a92, 0x7124, 0x810b, 0x0804, 0x32f3, 0x2029, 0x007e, 0x7984,
+	0x7a88, 0x7b8c, 0x7c98, 0x9184, 0xff00, 0x8007, 0x90e2, 0x0020,
+	0x0a04, 0x3328, 0x9502, 0x0a04, 0x3328, 0x9184, 0x00ff, 0x90e2,
+	0x0020, 0x0a04, 0x3328, 0x9502, 0x0a04, 0x3328, 0x9284, 0xff00,
+	0x8007, 0x90e2, 0x0020, 0x0a04, 0x3328, 0x9502, 0x0a04, 0x3328,
+	0x9284, 0x00ff, 0x90e2, 0x0020, 0x0a04, 0x3328, 0x9502, 0x0a04,
+	0x3328, 0x9384, 0xff00, 0x8007, 0x90e2, 0x0020, 0x0a04, 0x3328,
+	0x9502, 0x0a04, 0x3328, 0x9384, 0x00ff, 0x90e2, 0x0020, 0x0a04,
+	0x3328, 0x9502, 0x0a04, 0x3328, 0x9484, 0xff00, 0x8007, 0x90e2,
+	0x0020, 0x0a04, 0x3328, 0x9502, 0x0a04, 0x3328, 0x9484, 0x00ff,
+	0x90e2, 0x0020, 0x0a04, 0x3328, 0x9502, 0x0a04, 0x3328, 0x2061,
+	0x1993, 0x6102, 0x6206, 0x630a, 0x640e, 0x0804, 0x32f3, 0x080c,
+	0x477b, 0x0904, 0x3325, 0x2009, 0x0016, 0x7a8c, 0x7b88, 0x7c9c,
+	0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x47c4, 0x701f,
+	0x4bc2, 0x0005, 0x2001, 0x0138, 0x2003, 0x0000, 0x00e6, 0x2071,
+	0x0300, 0x701c, 0xd0a4, 0x1de8, 0x00ee, 0x20a9, 0x0016, 0x896e,
+	0x8d6e, 0x8d6f, 0x9d84, 0xffc0, 0x9080, 0x0019, 0x2098, 0x9d84,
+	0x003f, 0x20e0, 0x2069, 0x1883, 0x20e9, 0x0001, 0x2da0, 0x4003,
+	0x6800, 0x9005, 0x0904, 0x4c43, 0x6804, 0x2008, 0x918c, 0xfff8,
+	0x1904, 0x4c43, 0x680c, 0x9005, 0x0904, 0x4c43, 0x9082, 0xff01,
+	0x1a04, 0x4c43, 0x6810, 0x9082, 0x005c, 0x0a04, 0x4c43, 0x6824,
+	0x2008, 0x9082, 0x0008, 0x0a04, 0x4c43, 0x9182, 0x0400, 0x1a04,
+	0x4c43, 0x0056, 0x2029, 0x0000, 0x080c, 0x86be, 0x005e, 0x6944,
+	0x6820, 0x9102, 0x06c0, 0x6820, 0x9082, 0x0019, 0x16a0, 0x6828,
+	0x6944, 0x810c, 0x9102, 0x0678, 0x6840, 0x9082, 0x000f, 0x1658,
+	0x080c, 0x0fe6, 0x2900, 0x0904, 0x4c5d, 0x684e, 0x00e6, 0x2071,
+	0x193c, 0x00b6, 0x2059, 0x0000, 0x080c, 0x857a, 0x00be, 0x00ee,
+	0x0558, 0x080c, 0x82f1, 0x080c, 0x8337, 0x11e0, 0x6857, 0x0000,
+	0x00c6, 0x2061, 0x0100, 0x6104, 0x918d, 0x2000, 0x6106, 0x6b10,
+	0x2061, 0x1a6d, 0x630a, 0x00ce, 0x080c, 0x273c, 0x2001, 0x0138,
+	0x2102, 0x0804, 0x32f3, 0x080c, 0x273c, 0x2001, 0x0138, 0x2102,
+	0x0804, 0x3328, 0x00e6, 0x2071, 0x193c, 0x080c, 0x874f, 0x080c,
+	0x875e, 0x080c, 0x8569, 0x00ee, 0x2001, 0x1896, 0x204c, 0x080c,
+	0x0fff, 0x2001, 0x1896, 0x2003, 0x0000, 0x080c, 0x273c, 0x2001,
+	0x0138, 0x2102, 0x0804, 0x3325, 0x2001, 0x1930, 0x200c, 0x918e,
+	0x0000, 0x0904, 0x4cbc, 0x080c, 0x8564, 0x0904, 0x4cbc, 0x2001,
+	0x0101, 0x200c, 0x918c, 0xdfff, 0x2102, 0x2001, 0x0138, 0x2003,
+	0x0000, 0x00e6, 0x2071, 0x0300, 0x701c, 0xd0a4, 0x1de8, 0x00ee,
+	0x080c, 0x8569, 0x2001, 0x0035, 0x080c, 0x1587, 0x00c6, 0x2061,
+	0x1948, 0x6004, 0x6100, 0x9106, 0x1de0, 0x00ce, 0x080c, 0x273c,
+	0x2001, 0x0138, 0x2102, 0x00e6, 0x00f6, 0x2071, 0x192f, 0x080c,
+	0x84a5, 0x0120, 0x2f00, 0x080c, 0x852f, 0x0cc8, 0x00fe, 0x00ee,
+	0x0126, 0x2091, 0x8000, 0x2001, 0x1896, 0x200c, 0x81ff, 0x0138,
+	0x2148, 0x080c, 0x0fff, 0x2001, 0x1896, 0x2003, 0x0000, 0x2001,
+	0x183d, 0x2003, 0x0020, 0x00e6, 0x2071, 0x193c, 0x080c, 0x874f,
+	0x080c, 0x875e, 0x00ee, 0x012e, 0x0804, 0x32f3, 0x0006, 0x080c,
+	0x53a3, 0xd0cc, 0x000e, 0x0005, 0x0006, 0x080c, 0x53a7, 0xd0bc,
+	0x000e, 0x0005, 0x616c, 0x7a84, 0x6300, 0x82ff, 0x1118, 0x7986,
+	0x0804, 0x32f3, 0x83ff, 0x1904, 0x3328, 0x2001, 0xfff0, 0x9200,
+	0x1a04, 0x3328, 0x2019, 0xffff, 0x6070, 0x9302, 0x9200, 0x0a04,
+	0x3328, 0x7986, 0x626e, 0x0804, 0x32f3, 0x080c, 0x53b7, 0x1904,
+	0x3325, 0x7c88, 0x7d84, 0x7e98, 0x7f8c, 0x080c, 0x477b, 0x0904,
+	0x3325, 0x900e, 0x901e, 0x7326, 0x7332, 0xa860, 0x20e8, 0x7036,
+	0xa85c, 0x9080, 0x0003, 0x702a, 0x20a0, 0x91d8, 0x1000, 0x2b5c,
+	0x8bff, 0x0178, 0x080c, 0x65d8, 0x0118, 0x080c, 0x65e0, 0x1148,
+	0x20a9, 0x0001, 0xb814, 0x4004, 0xb810, 0x4004, 0x4104, 0x9398,
+	0x0003, 0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c, 0x0170,
+	0x0c20, 0x83ff, 0x1148, 0x7224, 0x900e, 0x2001, 0x0003, 0x080c,
+	0x8b2b, 0x2208, 0x0804, 0x32f3, 0x7033, 0x0001, 0x7122, 0x7024,
+	0x9300, 0x7026, 0x2061, 0x18c4, 0x2c44, 0xa06b, 0x0000, 0xa37a,
+	0x7028, 0xa076, 0x7034, 0xa072, 0xa48e, 0xa592, 0xa696, 0xa79a,
+	0x080c, 0x10ad, 0x7007, 0x0002, 0x701f, 0x4d3f, 0x0005, 0x7030,
+	0x9005, 0x1178, 0x7120, 0x7028, 0x20a0, 0x901e, 0x7034, 0x20e8,
+	0x2061, 0x18c4, 0x2c44, 0xa48c, 0xa590, 0xa694, 0xa798, 0x0804,
+	0x4cfd, 0x7224, 0x900e, 0x2001, 0x0003, 0x080c, 0x8b2b, 0x2208,
+	0x0804, 0x32f3, 0x00f6, 0x00e6, 0x080c, 0x53b7, 0x2009, 0x0007,
+	0x1904, 0x4dd2, 0x2071, 0x18aa, 0x745c, 0x84ff, 0x2009, 0x000e,
+	0x1904, 0x4dd2, 0xac9c, 0xad98, 0xaea4, 0xafa0, 0x0096, 0x080c,
+	0x0fe6, 0x2009, 0x0002, 0x0904, 0x4dd2, 0x2900, 0x705e, 0x900e,
+	0x901e, 0x7356, 0x7362, 0xa860, 0x7066, 0xa85c, 0x9080, 0x0003,
+	0x705a, 0x20a0, 0x91d8, 0x1000, 0x2b5c, 0x8bff, 0x0178, 0x080c,
+	0x65d8, 0x0118, 0x080c, 0x65e0, 0x1148, 0xb814, 0x20a9, 0x0001,
+	0x4004, 0xb810, 0x4004, 0x4104, 0x9398, 0x0003, 0x8108, 0x9182,
+	0x0800, 0x0120, 0x9386, 0x003c, 0x01e8, 0x0c20, 0x83ff, 0x11c0,
+	0x7254, 0x900e, 0x2001, 0x0003, 0x080c, 0x8b2b, 0x2208, 0x009e,
+	0xa897, 0x4000, 0xa99a, 0x715c, 0x81ff, 0x090c, 0x0db8, 0x2148,
+	0x080c, 0x0fff, 0x9006, 0x705e, 0x918d, 0x0001, 0x2008, 0x0418,
+	0x7063, 0x0001, 0x7152, 0x7054, 0x9300, 0x7056, 0x2061, 0x18c5,
+	0x2c44, 0xa37a, 0x7058, 0xa076, 0x7064, 0xa072, 0xa48e, 0xa592,
+	0xa696, 0xa79a, 0xa09f, 0x4dde, 0x000e, 0xa0a2, 0x080c, 0x10ad,
+	0x9006, 0x0048, 0x009e, 0xa897, 0x4005, 0xa99a, 0x900e, 0x9085,
+	0x0001, 0x2001, 0x0030, 0x00ee, 0x00fe, 0x0005, 0x00f6, 0xa0a0,
+	0x904d, 0x090c, 0x0db8, 0x00e6, 0x2071, 0x18aa, 0xa06c, 0x908e,
+	0x0100, 0x0138, 0xa87b, 0x0030, 0xa883, 0x0000, 0xa897, 0x4002,
+	0x00d8, 0x7060, 0x9005, 0x1158, 0x7150, 0x7058, 0x20a0, 0x901e,
+	0x7064, 0x20e8, 0xa48c, 0xa590, 0xa694, 0xa798, 0x0428, 0xa87b,
+	0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x7254, 0x900e, 0x2001,
+	0x0003, 0x080c, 0x8b2b, 0xaa9a, 0x715c, 0x81ff, 0x090c, 0x0db8,
+	0x2148, 0x080c, 0x0fff, 0x705f, 0x0000, 0xa0a0, 0x2048, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x68e7, 0x012e, 0xa09f, 0x0000, 0xa0a3,
+	0x0000, 0x00ee, 0x00fe, 0x0005, 0x91d8, 0x1000, 0x2b5c, 0x8bff,
+	0x0178, 0x080c, 0x65d8, 0x0118, 0x080c, 0x65e0, 0x1148, 0xb814,
+	0x20a9, 0x0001, 0x4004, 0xb810, 0x4004, 0x4104, 0x9398, 0x0003,
+	0x8108, 0x9182, 0x0800, 0x0120, 0x9386, 0x003c, 0x0518, 0x0c20,
+	0x83ff, 0x11f0, 0x7154, 0x810c, 0xa99a, 0xa897, 0x4000, 0x715c,
+	0x81ff, 0x090c, 0x0db8, 0x2148, 0x080c, 0x0fff, 0x9006, 0x705e,
+	0x918d, 0x0001, 0x2008, 0xa0a0, 0x2048, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x68e7, 0x012e, 0xa09f, 0x0000, 0xa0a3, 0x0000, 0x0070,
+	0x7063, 0x0001, 0x7152, 0x7054, 0x9300, 0x7056, 0xa37a, 0xa48e,
+	0xa592, 0xa696, 0xa79a, 0x080c, 0x10ad, 0x9006, 0x00ee, 0x0005,
+	0x0096, 0xa88c, 0x90be, 0x7000, 0x0148, 0x90be, 0x7100, 0x0130,
+	0x90be, 0x7200, 0x0118, 0x009e, 0x0804, 0x3328, 0xa884, 0xa988,
+	0x080c, 0x2624, 0x1518, 0x080c, 0x6213, 0x1500, 0x7126, 0xbe12,
+	0xbd16, 0xae7c, 0x080c, 0x477b, 0x01c8, 0x080c, 0x477b, 0x01b0,
+	0x009e, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0xa823, 0x0000,
+	0xa804, 0x2048, 0x080c, 0xc774, 0x1120, 0x2009, 0x0003, 0x0804,
+	0x3325, 0x7007, 0x0003, 0x701f, 0x4eab, 0x0005, 0x009e, 0x2009,
+	0x0002, 0x0804, 0x3325, 0x7124, 0x080c, 0x3090, 0xa820, 0x9086,
+	0x8001, 0x1120, 0x2009, 0x0004, 0x0804, 0x3325, 0x2900, 0x7022,
+	0xa804, 0x0096, 0x2048, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f,
+	0x9084, 0xffc0, 0x009e, 0x9080, 0x0002, 0x0076, 0x0006, 0x2098,
+	0x20a0, 0x27e0, 0x27e8, 0x20a9, 0x002a, 0x080c, 0x0f4a, 0xaa6c,
+	0xab70, 0xac74, 0xad78, 0x2061, 0x18c4, 0x2c44, 0xa06b, 0x0000,
+	0xae64, 0xaf8c, 0x97c6, 0x7000, 0x0118, 0x97c6, 0x7100, 0x1148,
+	0x96c2, 0x0004, 0x0600, 0x2009, 0x0004, 0x000e, 0x007e, 0x0804,
+	0x47c7, 0x97c6, 0x7200, 0x11b8, 0x96c2, 0x0054, 0x02a0, 0x000e,
+	0x007e, 0x2061, 0x18c4, 0x2c44, 0xa076, 0xa772, 0xa07b, 0x002a,
+	0xa28e, 0xa392, 0xa496, 0xa59a, 0x080c, 0x10ad, 0x7007, 0x0002,
+	0x701f, 0x4f07, 0x0005, 0x000e, 0x007e, 0x0804, 0x3328, 0x7020,
+	0x2048, 0xa804, 0x2048, 0xa804, 0x2048, 0x8906, 0x8006, 0x8007,
+	0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2098, 0x20a0,
+	0x27e0, 0x27e8, 0x20a9, 0x002a, 0x080c, 0x0f4a, 0x2100, 0x2238,
+	0x2061, 0x18c4, 0x2c44, 0xa28c, 0xa390, 0xa494, 0xa598, 0x2009,
+	0x002a, 0x0804, 0x47c7, 0x81ff, 0x1904, 0x3325, 0x798c, 0x2001,
+	0x198a, 0x2102, 0x080c, 0x4792, 0x0904, 0x3328, 0x080c, 0x65d8,
+	0x0120, 0x080c, 0x65e0, 0x1904, 0x3328, 0x080c, 0x633b, 0x0904,
+	0x3325, 0x0126, 0x2091, 0x8000, 0x080c, 0x6401, 0x012e, 0x0904,
+	0x3325, 0x0804, 0x42b6, 0xa9a0, 0x2001, 0x198a, 0xc18d, 0x2102,
+	0x080c, 0x479f, 0x01a0, 0x080c, 0x65d8, 0x0118, 0x080c, 0x65e0,
+	0x1170, 0x080c, 0x633b, 0x2009, 0x0002, 0x0128, 0x080c, 0x6401,
+	0x1170, 0x2009, 0x0003, 0xa897, 0x4005, 0xa99a, 0x0010, 0xa897,
+	0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030, 0x0005, 0xa897,
+	0x4000, 0x080c, 0x53ab, 0x0110, 0x9006, 0x0018, 0x900e, 0x9085,
+	0x0001, 0x2001, 0x0000, 0x0005, 0x78a8, 0xd08c, 0x1118, 0xd084,
+	0x0904, 0x422b, 0x080c, 0x47ae, 0x0904, 0x3328, 0x080c, 0x477b,
+	0x1120, 0x2009, 0x0002, 0x0804, 0x3325, 0x080c, 0x65d8, 0x0130,
+	0x908e, 0x0004, 0x0118, 0x908e, 0x0005, 0x15a0, 0x78a8, 0xd08c,
+	0x0120, 0xb800, 0xc08c, 0xb802, 0x0028, 0x080c, 0x53a3, 0xd0b4,
+	0x0904, 0x4265, 0x7884, 0x908e, 0x007e, 0x0904, 0x4265, 0x908e,
+	0x007f, 0x0904, 0x4265, 0x908e, 0x0080, 0x0904, 0x4265, 0xb800,
+	0xd08c, 0x1904, 0x4265, 0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a,
+	0x080c, 0xc793, 0x1120, 0x2009, 0x0003, 0x0804, 0x3325, 0x7007,
+	0x0003, 0x701f, 0x4fc4, 0x0005, 0x080c, 0x47ae, 0x0904, 0x3328,
+	0x0804, 0x4265, 0x080c, 0x30e3, 0x0108, 0x0005, 0x2009, 0x1833,
+	0x210c, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325, 0x080c,
+	0x53b7, 0x0120, 0x2009, 0x0007, 0x0804, 0x3325, 0x080c, 0x65d0,
+	0x0120, 0x2009, 0x0008, 0x0804, 0x3325, 0xb89c, 0xd0a4, 0x1118,
+	0xd0ac, 0x1904, 0x4265, 0x9006, 0xa866, 0xa832, 0xa868, 0xc0fd,
+	0xa86a, 0x080c, 0xc7e3, 0x1120, 0x2009, 0x0003, 0x0804, 0x3325,
+	0x7007, 0x0003, 0x701f, 0x4ffd, 0x0005, 0xa830, 0x9086, 0x0100,
+	0x1120, 0x2009, 0x0004, 0x0804, 0x5300, 0x080c, 0x47ae, 0x0904,
+	0x3328, 0x0804, 0x4f96, 0x81ff, 0x2009, 0x0001, 0x1904, 0x3325,
+	0x080c, 0x53b7, 0x2009, 0x0007, 0x1904, 0x3325, 0x080c, 0x65d0,
+	0x0120, 0x2009, 0x0008, 0x0804, 0x3325, 0x080c, 0x47ae, 0x0904,
+	0x3328, 0x080c, 0x65d8, 0x2009, 0x0009, 0x1904, 0x3325, 0x080c,
+	0x477b, 0x2009, 0x0002, 0x0904, 0x3325, 0x9006, 0xa866, 0xa832,
+	0xa868, 0xc0fd, 0xa86a, 0x7988, 0x9194, 0xff00, 0x918c, 0x00ff,
+	0x9006, 0x82ff, 0x1128, 0xc0ed, 0xa952, 0x798c, 0xa956, 0x0038,
+	0x928e, 0x0100, 0x1904, 0x3328, 0xc0e5, 0xa952, 0xa956, 0xa83e,
+	0x080c, 0xca2e, 0x2009, 0x0003, 0x0904, 0x3325, 0x7007, 0x0003,
+	0x701f, 0x5053, 0x0005, 0xa830, 0x9086, 0x0100, 0x2009, 0x0004,
+	0x0904, 0x3325, 0x0804, 0x32f3, 0x7aa8, 0x9284, 0xc000, 0x0148,
+	0xd2ec, 0x01a0, 0x080c, 0x53b7, 0x1188, 0x2009, 0x0014, 0x0804,
+	0x3325, 0xd2dc, 0x1568, 0x81ff, 0x2009, 0x0001, 0x1904, 0x3325,
+	0x080c, 0x53b7, 0x2009, 0x0007, 0x1904, 0x3325, 0xd2f4, 0x0130,
+	0x9284, 0x5000, 0x080c, 0x537e, 0x0804, 0x32f3, 0xd2fc, 0x0158,
+	0x080c, 0x47ae, 0x0904, 0x3328, 0x7984, 0x9284, 0x9000, 0x080c,
+	0x535b, 0x0804, 0x32f3, 0x080c, 0x47ae, 0x0904, 0x3328, 0xb804,
+	0x9084, 0x00ff, 0x9086, 0x0006, 0x2009, 0x0009, 0x1904, 0x513c,
+	0x080c, 0x477b, 0x2009, 0x0002, 0x0904, 0x513c, 0xa85c, 0x9080,
+	0x001b, 0xaf60, 0x2009, 0x0008, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,
+	0x080c, 0x47c4, 0x701f, 0x50ad, 0x0005, 0xa86c, 0x9086, 0x0500,
+	0x1138, 0xa870, 0x9005, 0x1120, 0xa874, 0x9084, 0xff00, 0x0110,
+	0x1904, 0x3328, 0xa866, 0xa832, 0xa868, 0xc0fd, 0xa86a, 0x080c,
+	0x47ae, 0x1110, 0x0804, 0x3328, 0x2009, 0x0043, 0x080c, 0xca96,
+	0x2009, 0x0003, 0x0904, 0x513c, 0x7007, 0x0003, 0x701f, 0x50d1,
+	0x0005, 0xa830, 0x9086, 0x0100, 0x2009, 0x0004, 0x0904, 0x513c,
+	0x7984, 0x7aa8, 0x9284, 0x1000, 0x080c, 0x535b, 0x0804, 0x32f3,
+	0x00c6, 0xaab0, 0x9284, 0xc000, 0x0140, 0xd2ec, 0x0168, 0x080c,
+	0x53b7, 0x1150, 0x2009, 0x0014, 0x04f0, 0x2061, 0x1800, 0x080c,
+	0x53b7, 0x2009, 0x0007, 0x15b8, 0xd2f4, 0x0128, 0x9284, 0x5000,
+	0x080c, 0x537e, 0x0050, 0xd2fc, 0x0178, 0x080c, 0x47ac, 0x0588,
+	0xa998, 0x9284, 0x9000, 0x080c, 0x535b, 0xa87b, 0x0000, 0xa883,
+	0x0000, 0xa897, 0x4000, 0x0438, 0x080c, 0x47ac, 0x0510, 0x080c,
+	0x65d8, 0x2009, 0x0009, 0x11b8, 0xa8c4, 0x9086, 0x0500, 0x11c8,
+	0xa8c8, 0x9005, 0x11b0, 0xa8cc, 0x9084, 0xff00, 0x1190, 0x080c,
+	0x47ac, 0x1108, 0x0070, 0x2009, 0x004b, 0x080c, 0xca96, 0x2009,
+	0x0003, 0x0108, 0x0078, 0x0429, 0x19c0, 0xa897, 0x4005, 0xa99a,
+	0x0010, 0xa897, 0x4006, 0x900e, 0x9085, 0x0001, 0x2001, 0x0030,
+	0x00ce, 0x0005, 0x9006, 0x0ce0, 0x7aa8, 0xd2dc, 0x0904, 0x3325,
+	0x0016, 0x7984, 0x9284, 0x1000, 0xc0fd, 0x080c, 0x535b, 0x001e,
+	0x1904, 0x3325, 0x0804, 0x32f3, 0x00f6, 0x2d78, 0x0011, 0x00fe,
+	0x0005, 0xaab0, 0xd2dc, 0x0150, 0x0016, 0xa998, 0x9284, 0x1000,
+	0xc0fd, 0x080c, 0x535b, 0x001e, 0x9085, 0x0001, 0x0005, 0x81ff,
+	0x0120, 0x2009, 0x0001, 0x0804, 0x3325, 0x080c, 0x53b7, 0x0120,
+	0x2009, 0x0007, 0x0804, 0x3325, 0x7984, 0x7ea8, 0x96b4, 0x00ff,
+	0x080c, 0x6274, 0x1904, 0x3328, 0x9186, 0x007f, 0x0138, 0x080c,
+	0x65d8, 0x0120, 0x2009, 0x0009, 0x0804, 0x3325, 0x080c, 0x477b,
+	0x1120, 0x2009, 0x0002, 0x0804, 0x3325, 0xa867, 0x0000, 0xa868,
+	0xc0fd, 0xa86a, 0x2001, 0x0100, 0x8007, 0xa80a, 0x080c, 0xc7ad,
+	0x1120, 0x2009, 0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f,
+	0x519a, 0x0005, 0xa808, 0x8007, 0x9086, 0x0100, 0x1120, 0x2009,
+	0x0004, 0x0804, 0x3325, 0xa8e0, 0xa866, 0xa810, 0x8007, 0x9084,
+	0x00ff, 0x800c, 0xa814, 0x8007, 0x9084, 0x00ff, 0x8004, 0x9080,
+	0x0002, 0x9108, 0x8906, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084,
+	0xffc0, 0x9080, 0x0004, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0x0804,
+	0x47c7, 0x080c, 0x477b, 0x1120, 0x2009, 0x0002, 0x0804, 0x3325,
+	0x7984, 0x9194, 0xff00, 0x918c, 0x00ff, 0x8217, 0x82ff, 0x1118,
+	0x7023, 0x19bd, 0x0040, 0x92c6, 0x0001, 0x1118, 0x7023, 0x19d7,
+	0x0010, 0x0804, 0x3328, 0x2009, 0x001a, 0x7a8c, 0x7b88, 0x7c9c,
+	0x7d98, 0xa85c, 0x9080, 0x0019, 0xaf60, 0x080c, 0x47c4, 0x701f,
+	0x51ea, 0x0005, 0x2001, 0x182c, 0x2003, 0x0001, 0xa85c, 0x9080,
+	0x0019, 0x2098, 0xa860, 0x20e0, 0x20a9, 0x001a, 0x7020, 0x20a0,
+	0x20e9, 0x0001, 0x4003, 0x0804, 0x32f3, 0x080c, 0x477b, 0x1120,
+	0x2009, 0x0002, 0x0804, 0x3325, 0x7984, 0x9194, 0xff00, 0x918c,
+	0x00ff, 0x8217, 0x82ff, 0x1118, 0x2099, 0x19bd, 0x0040, 0x92c6,
+	0x0001, 0x1118, 0x2099, 0x19d7, 0x0010, 0x0804, 0x3328, 0xa85c,
+	0x9080, 0x0019, 0x20a0, 0xa860, 0x20e8, 0x20a9, 0x001a, 0x20e1,
+	0x0001, 0x4003, 0x2009, 0x001a, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98,
+	0xa85c, 0x9080, 0x0019, 0xaf60, 0x0804, 0x47c7, 0x7884, 0x908a,
+	0x1000, 0x1a04, 0x3328, 0x0126, 0x2091, 0x8000, 0x8003, 0x800b,
+	0x810b, 0x9108, 0x00c6, 0x2061, 0x1a04, 0x6146, 0x00ce, 0x012e,
+	0x0804, 0x32f3, 0x00c6, 0x080c, 0x7018, 0x1160, 0x080c, 0x72f1,
+	0x080c, 0x5ca9, 0x9085, 0x0001, 0x080c, 0x7061, 0x080c, 0x6f53,
+	0x080c, 0x0db8, 0x2061, 0x1800, 0x6030, 0xc09d, 0x6032, 0x080c,
+	0x5b68, 0x00ce, 0x0005, 0x00c6, 0x2001, 0x1800, 0x2004, 0x908e,
+	0x0000, 0x0904, 0x3325, 0x7884, 0x9005, 0x0188, 0x7888, 0x2061,
+	0x19a6, 0x2c0c, 0x2062, 0x080c, 0x29fe, 0x01a0, 0x080c, 0x2a06,
+	0x0188, 0x080c, 0x2a0e, 0x0170, 0x2162, 0x0804, 0x3328, 0x2061,
+	0x0100, 0x6038, 0x9086, 0x0007, 0x1118, 0x2009, 0x0001, 0x0010,
+	0x2009, 0x0000, 0x7884, 0x9086, 0x0002, 0x1548, 0x2061, 0x0100,
+	0x6028, 0xc09c, 0x602a, 0x0026, 0x2011, 0x0003, 0x080c, 0xa15c,
+	0x2011, 0x0002, 0x080c, 0xa166, 0x002e, 0x080c, 0xa026, 0x0036,
+	0x901e, 0x080c, 0xa0c0, 0x003e, 0x60e3, 0x0000, 0x080c, 0xe3b5,
+	0x080c, 0xe3d0, 0x9085, 0x0001, 0x080c, 0x7061, 0x9006, 0x080c,
+	0x2ac9, 0x2001, 0x1800, 0x2003, 0x0004, 0x6027, 0x0008, 0x00ce,
+	0x0804, 0x32f3, 0x81ff, 0x0120, 0x2009, 0x0001, 0x0804, 0x3325,
+	0x080c, 0x53b7, 0x0120, 0x2009, 0x0007, 0x0804, 0x3325, 0x7984,
+	0x7ea8, 0x96b4, 0x00ff, 0x080c, 0x6274, 0x1904, 0x3328, 0x9186,
+	0x007f, 0x0138, 0x080c, 0x65d8, 0x0120, 0x2009, 0x0009, 0x0804,
+	0x3325, 0x080c, 0x477b, 0x1120, 0x2009, 0x0002, 0x0804, 0x3325,
+	0xa867, 0x0000, 0xa868, 0xc0fd, 0xa86a, 0x080c, 0xc7b0, 0x1120,
+	0x2009, 0x0003, 0x0804, 0x3325, 0x7007, 0x0003, 0x701f, 0x52e9,
+	0x0005, 0xa830, 0x9086, 0x0100, 0x1120, 0x2009, 0x0004, 0x0804,
+	0x3325, 0xa8e0, 0xa866, 0xa834, 0x8007, 0x800c, 0xa85c, 0x9080,
+	0x000c, 0x7a8c, 0x7b88, 0x7c9c, 0x7d98, 0xaf60, 0x0804, 0x47c7,
+	0xa898, 0x9086, 0x000d, 0x1904, 0x3325, 0x2021, 0x4005, 0x0126,
+	0x2091, 0x8000, 0x0e04, 0x530d, 0x0010, 0x012e, 0x0cc0, 0x7c36,
+	0x9486, 0x4000, 0x0118, 0x7833, 0x0011, 0x0010, 0x7833, 0x0010,
+	0x7883, 0x4005, 0xa998, 0x7986, 0xa9a4, 0x799a, 0xa9a8, 0x799e,
+	0x080c, 0x47b7, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,
+	0x190c, 0x115f, 0x7007, 0x0001, 0x2091, 0x5000, 0x700f, 0x0000,
+	0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x00c6, 0x2061, 0x1a04,
+	0x7984, 0x6156, 0x6152, 0x605b, 0x0000, 0x604f, 0x0009, 0x7898,
+	0x606e, 0x789c, 0x606a, 0x7888, 0x6066, 0x788c, 0x6062, 0x2001,
+	0x1a12, 0x2044, 0x2001, 0x1a1a, 0xa076, 0xa060, 0xa072, 0xa07b,
+	0x0001, 0xa07f, 0x0002, 0xa06b, 0x0000, 0xa09f, 0x0000, 0x00ce,
+	0x012e, 0x0804, 0x32f3, 0x0126, 0x2091, 0x8000, 0x00b6, 0x00c6,
+	0x90e4, 0xc000, 0x0128, 0x0006, 0x080c, 0xc61e, 0x000e, 0x1198,
+	0xd0e4, 0x0160, 0x9180, 0x1000, 0x2004, 0x905d, 0x0160, 0x080c,
+	0x5cc3, 0x080c, 0xa8d5, 0x0110, 0xb817, 0x0000, 0x9006, 0x00ce,
+	0x00be, 0x012e, 0x0005, 0x9085, 0x0001, 0x0cc8, 0x0126, 0x2091,
+	0x8000, 0x0156, 0x2010, 0x900e, 0x20a9, 0x0800, 0x0016, 0x9180,
+	0x1000, 0x2004, 0x9005, 0x0180, 0x9186, 0x007e, 0x0168, 0x9186,
+	0x007f, 0x0150, 0x9186, 0x0080, 0x0138, 0x9186, 0x00ff, 0x0120,
+	0x0026, 0x2200, 0x0801, 0x002e, 0x001e, 0x8108, 0x1f04, 0x5386,
+	0x015e, 0x012e, 0x0005, 0x2001, 0x1854, 0x2004, 0x0005, 0x2001,
+	0x1873, 0x2004, 0x0005, 0x0006, 0x2001, 0x180f, 0x2004, 0xd0d4,
+	0x000e, 0x0005, 0x2001, 0x180d, 0x2004, 0xd0b4, 0x0005, 0x2001,
+	0x1800, 0x2004, 0x9086, 0x0003, 0x0005, 0x0016, 0x00e6, 0x2071,
+	0x18aa, 0x7108, 0x910d, 0x710a, 0x00ee, 0x001e, 0x0005, 0x0126,
+	0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6, 0x00e6,
+	0x00f6, 0x2061, 0x0100, 0x2069, 0x0200, 0x2071, 0x1800, 0x6044,
+	0xd0a4, 0x11e8, 0xd084, 0x0118, 0x080c, 0x5570, 0x0068, 0xd08c,
+	0x0118, 0x080c, 0x5479, 0x0040, 0xd094, 0x0118, 0x080c, 0x5449,
+	0x0018, 0xd09c, 0x0108, 0x0099, 0x00fe, 0x00ee, 0x00de, 0x00ce,
+	0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x012e, 0x0005, 0x0016,
+	0x6128, 0xd19c, 0x1110, 0xc19d, 0x612a, 0x001e, 0x0c68, 0x0006,
+	0x7090, 0x9005, 0x000e, 0x0120, 0x7093, 0x0000, 0x708b, 0x0000,
+	0x624c, 0x9286, 0xf0f0, 0x1150, 0x6048, 0x9086, 0xf0f0, 0x0130,
+	0x624a, 0x6043, 0x0090, 0x6043, 0x0010, 0x0490, 0x9294, 0xff00,
+	0x9296, 0xf700, 0x0178, 0x7134, 0xd1a4, 0x1160, 0x6240, 0x9295,
+	0x0100, 0x6242, 0x9294, 0x0010, 0x0128, 0x2009, 0x00f7, 0x080c,
+	0x5c25, 0x00f0, 0x6040, 0x9084, 0x0010, 0x9085, 0x0140, 0x6042,
+	0x6043, 0x0000, 0x707f, 0x0000, 0x709b, 0x0001, 0x70c3, 0x0000,
+	0x70db, 0x0000, 0x2009, 0x1c80, 0x200b, 0x0000, 0x708f, 0x0000,
+	0x7083, 0x000f, 0x2009, 0x000f, 0x2011, 0x5b13, 0x080c, 0x8181,
+	0x0005, 0x2001, 0x1875, 0x2004, 0xd08c, 0x0110, 0x7057, 0xffff,
+	0x7080, 0x9005, 0x1528, 0x2011, 0x5b13, 0x080c, 0x80ec, 0x6040,
+	0x9094, 0x0010, 0x9285, 0x0020, 0x6042, 0x20a9, 0x00c8, 0x6044,
+	0xd08c, 0x1168, 0x1f04, 0x545f, 0x6242, 0x7093, 0x0000, 0x6040,
+	0x9094, 0x0010, 0x9285, 0x0080, 0x6042, 0x6242, 0x0048, 0x6242,
+	0x7093, 0x0000, 0x7087, 0x0000, 0x9006, 0x080c, 0x5cae, 0x0000,
+	0x0005, 0x7084, 0x908a, 0x0003, 0x1a0c, 0x0db8, 0x000b, 0x0005,
+	0x5483, 0x54d4, 0x556f, 0x00f6, 0x0016, 0x6900, 0x918c, 0x0800,
+	0x7087, 0x0001, 0x2001, 0x015d, 0x2003, 0x0000, 0x6803, 0x00fc,
+	0x20a9, 0x0004, 0x6800, 0x9084, 0x00fc, 0x0120, 0x1f04, 0x5492,
+	0x080c, 0x0db8, 0x68a0, 0x68a2, 0x689c, 0x689e, 0x6898, 0x689a,
+	0xa001, 0x918d, 0x1600, 0x6902, 0x001e, 0x6837, 0x0020, 0x080c,
+	0x5c8a, 0x2079, 0x1c00, 0x7833, 0x1101, 0x7837, 0x0000, 0x20e1,
+	0x0001, 0x2099, 0x1805, 0x20e9, 0x0001, 0x20a1, 0x1c0e, 0x20a9,
+	0x0004, 0x4003, 0x080c, 0xa62d, 0x20e1, 0x0001, 0x2099, 0x1c00,
+	0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003, 0x60c3,
+	0x000c, 0x600f, 0x0000, 0x080c, 0x5b44, 0x00fe, 0x9006, 0x708a,
+	0x6043, 0x0008, 0x6042, 0x0005, 0x00f6, 0x7088, 0x708b, 0x0000,
+	0x9025, 0x0904, 0x554c, 0x6020, 0xd0b4, 0x1904, 0x554a, 0x7198,
+	0x81ff, 0x0904, 0x5538, 0x9486, 0x000c, 0x1904, 0x5545, 0x9480,
+	0x0018, 0x8004, 0x20a8, 0x080c, 0x5c83, 0x2011, 0x0260, 0x2019,
+	0x1c00, 0x220c, 0x2304, 0x9106, 0x11e8, 0x8210, 0x8318, 0x1f04,
+	0x54f1, 0x6043, 0x0004, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f,
+	0xf0f0, 0x2061, 0x0100, 0x6043, 0x0006, 0x7087, 0x0002, 0x7093,
+	0x0002, 0x2009, 0x07d0, 0x2011, 0x5b1a, 0x080c, 0x8181, 0x080c,
+	0x5c8a, 0x04c0, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7930, 0x918e,
+	0x1101, 0x1558, 0x7834, 0x9005, 0x1540, 0x7900, 0x918c, 0x00ff,
+	0x1118, 0x7804, 0x9005, 0x0190, 0x080c, 0x5c83, 0x2011, 0x026e,
+	0x2019, 0x1805, 0x20a9, 0x0004, 0x220c, 0x2304, 0x9102, 0x0230,
+	0x11a0, 0x8210, 0x8318, 0x1f04, 0x552c, 0x0078, 0x709b, 0x0000,
+	0x080c, 0x5c83, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0001,
+	0x20a1, 0x1c00, 0x20a9, 0x0014, 0x4003, 0x6043, 0x0008, 0x6043,
+	0x0000, 0x0010, 0x00fe, 0x0005, 0x6040, 0x9085, 0x0100, 0x6042,
+	0x6020, 0xd0b4, 0x1db8, 0x080c, 0xa62d, 0x20e1, 0x0001, 0x2099,
+	0x1c00, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x0014, 0x4003,
+	0x60c3, 0x000c, 0x2011, 0x19fb, 0x2013, 0x0000, 0x708b, 0x0000,
+	0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x9df5, 0x08d8, 0x0005,
+	0x7090, 0x908a, 0x001d, 0x1a0c, 0x0db8, 0x000b, 0x0005, 0x55a1,
+	0x55b4, 0x55dd, 0x55fd, 0x5623, 0x5652, 0x5678, 0x56b0, 0x56d6,
+	0x5704, 0x573f, 0x5777, 0x5795, 0x57c0, 0x57e2, 0x57fd, 0x5807,
+	0x583b, 0x5861, 0x5890, 0x58b6, 0x58ee, 0x5932, 0x596f, 0x5990,
+	0x59e9, 0x5a0b, 0x5a39, 0x5a39, 0x00c6, 0x2061, 0x1800, 0x6003,
+	0x0007, 0x2061, 0x0100, 0x6004, 0x9084, 0xfff9, 0x6006, 0x00ce,
+	0x0005, 0x2061, 0x0140, 0x605b, 0xbc94, 0x605f, 0xf0f0, 0x2061,
+	0x0100, 0x6043, 0x0002, 0x7093, 0x0001, 0x2009, 0x07d0, 0x2011,
+	0x5b1a, 0x080c, 0x8181, 0x0005, 0x00f6, 0x7088, 0x9086, 0x0014,
+	0x1510, 0x6042, 0x6020, 0xd0b4, 0x11f0, 0x080c, 0x5c83, 0x2079,
+	0x0260, 0x7a30, 0x9296, 0x1102, 0x11a0, 0x7834, 0x9005, 0x1188,
+	0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001,
+	0x2011, 0x5b1a, 0x080c, 0x80ec, 0x7093, 0x0010, 0x080c, 0x5807,
+	0x0010, 0x708b, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7093, 0x0003,
+	0x6043, 0x0004, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x080c, 0x5c07,
+	0x2079, 0x0240, 0x7833, 0x1102, 0x7837, 0x0000, 0x20a9, 0x0008,
+	0x9f88, 0x000e, 0x200b, 0x0000, 0x8108, 0x1f04, 0x55f2, 0x60c3,
+	0x0014, 0x080c, 0x5b44, 0x00fe, 0x0005, 0x00f6, 0x7088, 0x9005,
+	0x0500, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x9086, 0x0014, 0x11b8,
+	0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1102, 0x1178,
+	0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005,
+	0x1110, 0x70c3, 0x0001, 0x7093, 0x0004, 0x0029, 0x0010, 0x080c,
+	0x5c5f, 0x00fe, 0x0005, 0x00f6, 0x7093, 0x0005, 0x080c, 0x5c07,
+	0x2079, 0x0240, 0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5c83,
+	0x080c, 0x5c66, 0x1170, 0x707c, 0x9005, 0x1158, 0x7154, 0x9186,
+	0xffff, 0x0138, 0x2011, 0x0008, 0x080c, 0x5ac7, 0x0168, 0x080c,
+	0x5c3c, 0x20a9, 0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9,
+	0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b44,
+	0x00fe, 0x0005, 0x00f6, 0x7088, 0x9005, 0x0500, 0x2011, 0x5b1a,
+	0x080c, 0x80ec, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5c83, 0x2079,
+	0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005, 0x1160,
+	0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001,
+	0x7093, 0x0006, 0x0029, 0x0010, 0x080c, 0x5c5f, 0x00fe, 0x0005,
+	0x00f6, 0x7093, 0x0007, 0x080c, 0x5c07, 0x2079, 0x0240, 0x7833,
+	0x1104, 0x7837, 0x0000, 0x080c, 0x5c83, 0x080c, 0x5c66, 0x11b8,
+	0x707c, 0x9005, 0x11a0, 0x715c, 0x9186, 0xffff, 0x0180, 0x9180,
+	0x30f4, 0x200d, 0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c,
+	0x5ac7, 0x0180, 0x080c, 0x4cc4, 0x0110, 0x080c, 0x268d, 0x20a9,
+	0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1,
+	0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b44, 0x00fe, 0x0005,
+	0x00f6, 0x7088, 0x9005, 0x0500, 0x2011, 0x5b1a, 0x080c, 0x80ec,
+	0x9086, 0x0014, 0x11b8, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30,
+	0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc,
+	0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7093, 0x0008,
+	0x0029, 0x0010, 0x080c, 0x5c5f, 0x00fe, 0x0005, 0x00f6, 0x7093,
+	0x0009, 0x080c, 0x5c07, 0x2079, 0x0240, 0x7833, 0x1105, 0x7837,
+	0x0100, 0x080c, 0x5c66, 0x1150, 0x707c, 0x9005, 0x1138, 0x080c,
+	0x5a3a, 0x1188, 0x9085, 0x0001, 0x080c, 0x268d, 0x20a9, 0x0008,
+	0x080c, 0x5c83, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000,
+	0x20a1, 0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b44, 0x0010,
+	0x080c, 0x5594, 0x00fe, 0x0005, 0x00f6, 0x7088, 0x9005, 0x05a8,
+	0x2011, 0x5b1a, 0x080c, 0x80ec, 0x9086, 0x0014, 0x1560, 0x080c,
+	0x5c83, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105, 0x1520, 0x7834,
+	0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1160, 0x7a38, 0xd2fc,
+	0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7093, 0x000a,
+	0x00b1, 0x0098, 0x9005, 0x1178, 0x7a38, 0xd2fc, 0x0128, 0x70c0,
+	0x9005, 0x1110, 0x70c3, 0x0001, 0x708f, 0x0000, 0x7093, 0x000e,
+	0x080c, 0x57e2, 0x0010, 0x080c, 0x5c5f, 0x00fe, 0x0005, 0x00f6,
+	0x7093, 0x000b, 0x2011, 0x1c0e, 0x20e9, 0x0001, 0x22a0, 0x20a9,
+	0x0040, 0x2019, 0xffff, 0x4304, 0x080c, 0x5c07, 0x2079, 0x0240,
+	0x7833, 0x1106, 0x7837, 0x0000, 0x080c, 0x5c66, 0x0118, 0x2013,
+	0x0000, 0x0020, 0x7058, 0x9085, 0x0100, 0x2012, 0x20a9, 0x0040,
+	0x2009, 0x024e, 0x2011, 0x1c0e, 0x220e, 0x8210, 0x8108, 0x9186,
+	0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x1f04,
+	0x5764, 0x60c3, 0x0084, 0x080c, 0x5b44, 0x00fe, 0x0005, 0x00f6,
+	0x7088, 0x9005, 0x01c0, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x9086,
+	0x0084, 0x1178, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30, 0x9296,
+	0x1106, 0x1138, 0x7834, 0x9005, 0x1120, 0x7093, 0x000c, 0x0029,
+	0x0010, 0x080c, 0x5c5f, 0x00fe, 0x0005, 0x00f6, 0x7093, 0x000d,
+	0x080c, 0x5c07, 0x2079, 0x0240, 0x7833, 0x1107, 0x7837, 0x0000,
+	0x080c, 0x5c83, 0x20a9, 0x0040, 0x2011, 0x026e, 0x2009, 0x024e,
+	0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150, 0x6810, 0x8000,
+	0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816, 0x2011, 0x0260,
+	0x1f04, 0x57a8, 0x60c3, 0x0084, 0x080c, 0x5b44, 0x00fe, 0x0005,
+	0x00f6, 0x7088, 0x9005, 0x01e0, 0x2011, 0x5b1a, 0x080c, 0x80ec,
+	0x9086, 0x0084, 0x1198, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30,
+	0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x708f, 0x0001,
+	0x080c, 0x5bd9, 0x7093, 0x000e, 0x0029, 0x0010, 0x080c, 0x5c5f,
+	0x00fe, 0x0005, 0x918d, 0x0001, 0x080c, 0x5cae, 0x7093, 0x000f,
+	0x708b, 0x0000, 0x2061, 0x0140, 0x605b, 0xbc85, 0x605f, 0xb5b5,
+	0x2061, 0x0100, 0x6043, 0x0005, 0x6043, 0x0004, 0x2009, 0x07d0,
+	0x2011, 0x5b1a, 0x080c, 0x80e0, 0x0005, 0x7088, 0x9005, 0x0130,
+	0x2011, 0x5b1a, 0x080c, 0x80ec, 0x7093, 0x0000, 0x0005, 0x7093,
+	0x0011, 0x080c, 0xa62d, 0x080c, 0x5c83, 0x20e1, 0x0000, 0x2099,
+	0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x7488, 0x9480, 0x0018,
+	0x9080, 0x0007, 0x9084, 0x03f8, 0x8004, 0x20a8, 0x4003, 0x080c,
+	0x5c66, 0x11a0, 0x7174, 0x81ff, 0x0188, 0x900e, 0x7078, 0x9084,
+	0x00ff, 0x0160, 0x080c, 0x2624, 0x9186, 0x007e, 0x0138, 0x9186,
+	0x0080, 0x0120, 0x2011, 0x0008, 0x080c, 0x5ac7, 0x60c3, 0x0014,
+	0x080c, 0x5b44, 0x0005, 0x00f6, 0x7088, 0x9005, 0x0500, 0x2011,
+	0x5b1a, 0x080c, 0x80ec, 0x9086, 0x0014, 0x11b8, 0x080c, 0x5c83,
+	0x2079, 0x0260, 0x7a30, 0x9296, 0x1103, 0x1178, 0x7834, 0x9005,
+	0x1160, 0x7a38, 0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3,
+	0x0001, 0x7093, 0x0012, 0x0029, 0x0010, 0x708b, 0x0000, 0x00fe,
+	0x0005, 0x00f6, 0x7093, 0x0013, 0x080c, 0x5c15, 0x2079, 0x0240,
+	0x7833, 0x1103, 0x7837, 0x0000, 0x080c, 0x5c83, 0x080c, 0x5c66,
+	0x1170, 0x707c, 0x9005, 0x1158, 0x7154, 0x9186, 0xffff, 0x0138,
+	0x2011, 0x0008, 0x080c, 0x5ac7, 0x0168, 0x080c, 0x5c3c, 0x20a9,
+	0x0008, 0x20e1, 0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1,
+	0x024e, 0x4003, 0x60c3, 0x0014, 0x080c, 0x5b44, 0x00fe, 0x0005,
+	0x00f6, 0x7088, 0x9005, 0x0500, 0x2011, 0x5b1a, 0x080c, 0x80ec,
+	0x9086, 0x0014, 0x11b8, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30,
+	0x9296, 0x1104, 0x1178, 0x7834, 0x9005, 0x1160, 0x7a38, 0xd2fc,
+	0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x7093, 0x0014,
+	0x0029, 0x0010, 0x708b, 0x0000, 0x00fe, 0x0005, 0x00f6, 0x7093,
+	0x0015, 0x080c, 0x5c15, 0x2079, 0x0240, 0x7833, 0x1104, 0x7837,
+	0x0000, 0x080c, 0x5c83, 0x080c, 0x5c66, 0x11b8, 0x707c, 0x9005,
+	0x11a0, 0x715c, 0x9186, 0xffff, 0x0180, 0x9180, 0x30f4, 0x200d,
+	0x918c, 0xff00, 0x810f, 0x2011, 0x0008, 0x080c, 0x5ac7, 0x0180,
+	0x080c, 0x4cc4, 0x0110, 0x080c, 0x268d, 0x20a9, 0x0008, 0x20e1,
+	0x0000, 0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003,
+	0x60c3, 0x0014, 0x080c, 0x5b44, 0x00fe, 0x0005, 0x00f6, 0x7088,
+	0x9005, 0x05f0, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x9086, 0x0014,
+	0x15a8, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30, 0x9296, 0x1105,
+	0x1568, 0x7834, 0x9084, 0x0100, 0x2011, 0x0100, 0x921e, 0x1168,
+	0x9085, 0x0001, 0x080c, 0x5cae, 0x7a38, 0xd2fc, 0x0128, 0x70c0,
+	0x9005, 0x1110, 0x70c3, 0x0001, 0x0080, 0x9005, 0x11b8, 0x7a38,
+	0xd2fc, 0x0128, 0x70c0, 0x9005, 0x1110, 0x70c3, 0x0001, 0x9085,
+	0x0001, 0x080c, 0x5cae, 0x708f, 0x0000, 0x7a38, 0xd2f4, 0x0110,
+	0x70db, 0x0008, 0x7093, 0x0016, 0x0029, 0x0010, 0x708b, 0x0000,
+	0x00fe, 0x0005, 0x080c, 0xa62d, 0x080c, 0x5c83, 0x20e1, 0x0000,
+	0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9, 0x000e,
+	0x4003, 0x2011, 0x026d, 0x2204, 0x9084, 0x0100, 0x2011, 0x024d,
+	0x2012, 0x2011, 0x026e, 0x7093, 0x0017, 0x080c, 0x5c66, 0x1150,
+	0x707c, 0x9005, 0x1138, 0x080c, 0x5a3a, 0x1188, 0x9085, 0x0001,
+	0x080c, 0x268d, 0x20a9, 0x0008, 0x080c, 0x5c83, 0x20e1, 0x0000,
+	0x2099, 0x026e, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x4003, 0x60c3,
+	0x0014, 0x080c, 0x5b44, 0x0010, 0x080c, 0x5594, 0x0005, 0x00f6,
+	0x7088, 0x9005, 0x01d8, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x9086,
+	0x0084, 0x1190, 0x080c, 0x5c83, 0x2079, 0x0260, 0x7a30, 0x9296,
+	0x1106, 0x1150, 0x7834, 0x9005, 0x1138, 0x9006, 0x080c, 0x5cae,
+	0x7093, 0x0018, 0x0029, 0x0010, 0x708b, 0x0000, 0x00fe, 0x0005,
+	0x00f6, 0x7093, 0x0019, 0x080c, 0x5c15, 0x2079, 0x0240, 0x7833,
+	0x1106, 0x7837, 0x0000, 0x080c, 0x5c83, 0x2009, 0x026e, 0x2039,
+	0x1c0e, 0x20a9, 0x0040, 0x213e, 0x8738, 0x8108, 0x9186, 0x0280,
+	0x1128, 0x6814, 0x8000, 0x6816, 0x2009, 0x0260, 0x1f04, 0x59a3,
+	0x2039, 0x1c0e, 0x080c, 0x5c66, 0x11e8, 0x2728, 0x2514, 0x8207,
+	0x9084, 0x00ff, 0x8000, 0x2018, 0x9294, 0x00ff, 0x8007, 0x9205,
+	0x202a, 0x7058, 0x2310, 0x8214, 0x92a0, 0x1c0e, 0x2414, 0x938c,
+	0x0001, 0x0118, 0x9294, 0xff00, 0x0018, 0x9294, 0x00ff, 0x8007,
+	0x9215, 0x2222, 0x20a9, 0x0040, 0x2009, 0x024e, 0x270e, 0x8738,
+	0x8108, 0x9186, 0x0260, 0x1128, 0x6810, 0x8000, 0x6812, 0x2009,
+	0x0240, 0x1f04, 0x59d6, 0x60c3, 0x0084, 0x080c, 0x5b44, 0x00fe,
+	0x0005, 0x00f6, 0x7088, 0x9005, 0x01e0, 0x2011, 0x5b1a, 0x080c,
+	0x80ec, 0x9086, 0x0084, 0x1198, 0x080c, 0x5c83, 0x2079, 0x0260,
+	0x7a30, 0x9296, 0x1107, 0x1158, 0x7834, 0x9005, 0x1140, 0x708f,
+	0x0001, 0x080c, 0x5bd9, 0x7093, 0x001a, 0x0029, 0x0010, 0x708b,
+	0x0000, 0x00fe, 0x0005, 0x9085, 0x0001, 0x080c, 0x5cae, 0x7093,
+	0x001b, 0x080c, 0xa62d, 0x080c, 0x5c83, 0x2011, 0x0260, 0x2009,
+	0x0240, 0x7488, 0x9480, 0x0018, 0x9080, 0x0007, 0x9084, 0x03f8,
+	0x8004, 0x20a8, 0x220e, 0x8210, 0x8108, 0x9186, 0x0260, 0x1150,
+	0x6810, 0x8000, 0x6812, 0x2009, 0x0240, 0x6814, 0x8000, 0x6816,
+	0x2011, 0x0260, 0x1f04, 0x5a22, 0x60c3, 0x0084, 0x080c, 0x5b44,
+	0x0005, 0x0005, 0x0086, 0x0096, 0x2029, 0x1854, 0x252c, 0x20a9,
+	0x0008, 0x2041, 0x1c0e, 0x20e9, 0x0001, 0x28a0, 0x080c, 0x5c83,
+	0x20e1, 0x0000, 0x2099, 0x026e, 0x4003, 0x20a9, 0x0008, 0x2011,
+	0x0007, 0xd5d4, 0x0108, 0x9016, 0x2800, 0x9200, 0x200c, 0x91a6,
+	0xffff, 0x1148, 0xd5d4, 0x0110, 0x8210, 0x0008, 0x8211, 0x1f04,
+	0x5a54, 0x0804, 0x5ac3, 0x82ff, 0x1160, 0xd5d4, 0x0120, 0x91a6,
+	0x3fff, 0x0d90, 0x0020, 0x91a6, 0x3fff, 0x0904, 0x5ac3, 0x918d,
+	0xc000, 0x20a9, 0x0010, 0x2019, 0x0001, 0xd5d4, 0x0110, 0x2019,
+	0x0010, 0x2120, 0xd5d4, 0x0110, 0x8423, 0x0008, 0x8424, 0x1240,
+	0xd5d4, 0x0110, 0x8319, 0x0008, 0x8318, 0x1f04, 0x5a7a, 0x04d8,
+	0x23a8, 0x2021, 0x0001, 0x8426, 0x8425, 0x1f04, 0x5a8c, 0x2328,
+	0x8529, 0x92be, 0x0007, 0x0158, 0x0006, 0x2039, 0x0007, 0x2200,
+	0x973a, 0x000e, 0x27a8, 0x95a8, 0x0010, 0x1f04, 0x5a9b, 0x7556,
+	0x95c8, 0x30f4, 0x292d, 0x95ac, 0x00ff, 0x757a, 0x6532, 0x6536,
+	0x0016, 0x2508, 0x080c, 0x266d, 0x001e, 0x60e7, 0x0000, 0x65ea,
+	0x2018, 0x2304, 0x9405, 0x201a, 0x707f, 0x0001, 0x20e9, 0x0000,
+	0x20a1, 0x024e, 0x20e1, 0x0001, 0x2898, 0x20a9, 0x0008, 0x4003,
+	0x9085, 0x0001, 0x0008, 0x9006, 0x009e, 0x008e, 0x0005, 0x0156,
+	0x01c6, 0x01d6, 0x0136, 0x0146, 0x22a8, 0x20e1, 0x0000, 0x2099,
+	0x026e, 0x20e9, 0x0000, 0x2011, 0x024e, 0x22a0, 0x4003, 0x014e,
+	0x013e, 0x01de, 0x01ce, 0x015e, 0x2118, 0x9026, 0x2001, 0x0007,
+	0x939a, 0x0010, 0x0218, 0x8420, 0x8001, 0x0cd0, 0x2118, 0x84ff,
+	0x0120, 0x939a, 0x0010, 0x8421, 0x1de0, 0x2021, 0x0001, 0x83ff,
+	0x0118, 0x8423, 0x8319, 0x1de8, 0x9238, 0x2029, 0x026e, 0x9528,
+	0x2504, 0x942c, 0x11b8, 0x9405, 0x203a, 0x7156, 0x91a0, 0x30f4,
+	0x242d, 0x95ac, 0x00ff, 0x757a, 0x6532, 0x6536, 0x0016, 0x2508,
+	0x080c, 0x266d, 0x001e, 0x60e7, 0x0000, 0x65ea, 0x707f, 0x0001,
+	0x9084, 0x0000, 0x0005, 0x00e6, 0x2071, 0x1800, 0x7083, 0x0000,
+	0x00ee, 0x0005, 0x00e6, 0x00f6, 0x2079, 0x0100, 0x2071, 0x0140,
+	0x080c, 0x5bc8, 0x080c, 0x9dfe, 0x7004, 0x9084, 0x4000, 0x0110,
+	0x080c, 0x2ade, 0x0126, 0x2091, 0x8000, 0x2071, 0x1824, 0x2073,
+	0x0000, 0x7840, 0x0026, 0x0016, 0x2009, 0x00f7, 0x080c, 0x5c25,
+	0x001e, 0x9094, 0x0010, 0x9285, 0x0080, 0x7842, 0x7a42, 0x002e,
+	0x012e, 0x00fe, 0x00ee, 0x0005, 0x0126, 0x2091, 0x8000, 0x2011,
+	0x19fb, 0x2013, 0x0000, 0x708b, 0x0000, 0x012e, 0x60a3, 0x0056,
+	0x60a7, 0x9575, 0x080c, 0x9df5, 0x6144, 0xd184, 0x0120, 0x7190,
+	0x918d, 0x2000, 0x0018, 0x7184, 0x918d, 0x1000, 0x2011, 0x19a3,
+	0x2112, 0x2009, 0x07d0, 0x2011, 0x5b1a, 0x080c, 0x8181, 0x0005,
+	0x0016, 0x0026, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xa8dc,
+	0x2009, 0x00f7, 0x080c, 0x5c25, 0x2061, 0x1a04, 0x900e, 0x611a,
+	0x611e, 0x6176, 0x617a, 0x2061, 0x1800, 0x6003, 0x0001, 0x2061,
+	0x0100, 0x6043, 0x0090, 0x6043, 0x0010, 0x2009, 0x19a3, 0x200b,
+	0x0000, 0x2009, 0x002d, 0x2011, 0x5b94, 0x080c, 0x80e0, 0x012e,
+	0x00ce, 0x002e, 0x001e, 0x0005, 0x00e6, 0x0006, 0x0126, 0x2091,
+	0x8000, 0x0471, 0x2071, 0x0100, 0x080c, 0x9dfe, 0x2071, 0x0140,
+	0x7004, 0x9084, 0x4000, 0x0110, 0x080c, 0x2ade, 0x080c, 0x7020,
+	0x0188, 0x080c, 0x703b, 0x1170, 0x080c, 0x72fb, 0x0016, 0x080c,
+	0x273c, 0x2001, 0x1979, 0x2102, 0x001e, 0x080c, 0x72f6, 0x080c,
+	0x6f53, 0x0050, 0x2009, 0x0001, 0x080c, 0x2a1c, 0x2001, 0x0001,
+	0x080c, 0x25d0, 0x080c, 0x5b68, 0x012e, 0x000e, 0x00ee, 0x0005,
+	0x2001, 0x180d, 0x2004, 0xd0bc, 0x0158, 0x0026, 0x0036, 0x2011,
+	0x8017, 0x2001, 0x19a3, 0x201c, 0x080c, 0x47db, 0x003e, 0x002e,
+	0x0005, 0x20a9, 0x0012, 0x20e9, 0x0001, 0x20a1, 0x1c80, 0x080c,
+	0x5c83, 0x20e9, 0x0000, 0x2099, 0x026e, 0x0099, 0x20a9, 0x0020,
+	0x080c, 0x5c7d, 0x2099, 0x0260, 0x20a1, 0x1c92, 0x0051, 0x20a9,
+	0x000e, 0x080c, 0x5c80, 0x2099, 0x0260, 0x20a1, 0x1cb2, 0x0009,
+	0x0005, 0x0016, 0x0026, 0x3410, 0x3308, 0x2104, 0x8007, 0x2012,
+	0x8108, 0x8210, 0x1f04, 0x5bfd, 0x002e, 0x001e, 0x0005, 0x080c,
+	0xa62d, 0x20e1, 0x0001, 0x2099, 0x1c00, 0x20e9, 0x0000, 0x20a1,
+	0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x080c, 0xa62d, 0x080c,
+	0x5c83, 0x20e1, 0x0000, 0x2099, 0x0260, 0x20e9, 0x0000, 0x20a1,
+	0x0240, 0x20a9, 0x000c, 0x4003, 0x0005, 0x00c6, 0x0006, 0x2061,
+	0x0100, 0x810f, 0x2001, 0x1833, 0x2004, 0x9005, 0x1138, 0x2001,
+	0x1816, 0x2004, 0x9084, 0x00ff, 0x9105, 0x0010, 0x9185, 0x00f7,
+	0x604a, 0x000e, 0x00ce, 0x0005, 0x0016, 0x0046, 0x080c, 0x65d4,
+	0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c, 0xdfa9, 0x2001,
+	0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x900e, 0x080c,
+	0x2f63, 0x080c, 0xccaa, 0x0140, 0x0036, 0x2019, 0xffff, 0x2021,
+	0x0007, 0x080c, 0x4992, 0x003e, 0x004e, 0x001e, 0x0005, 0x080c,
+	0x5b68, 0x7093, 0x0000, 0x708b, 0x0000, 0x0005, 0x0006, 0x2001,
+	0x180c, 0x2004, 0xd09c, 0x0100, 0x000e, 0x0005, 0x0006, 0x0016,
+	0x0126, 0x2091, 0x8000, 0x2001, 0x0101, 0x200c, 0x918d, 0x0006,
+	0x2102, 0x012e, 0x001e, 0x000e, 0x0005, 0x2009, 0x0001, 0x0020,
+	0x2009, 0x0002, 0x0008, 0x900e, 0x6814, 0x9084, 0xffc0, 0x910d,
+	0x6916, 0x0005, 0x00f6, 0x0156, 0x0146, 0x01d6, 0x9006, 0x20a9,
+	0x0080, 0x20e9, 0x0001, 0x20a1, 0x1c00, 0x4004, 0x2079, 0x1c00,
+	0x7803, 0x2200, 0x7807, 0x00ef, 0x780f, 0x00ef, 0x7813, 0x0138,
+	0x7823, 0xffff, 0x7827, 0xffff, 0x01de, 0x014e, 0x015e, 0x00fe,
+	0x0005, 0x2001, 0x1800, 0x2003, 0x0001, 0x0005, 0x2001, 0x19b0,
+	0x0118, 0x2003, 0x0001, 0x0010, 0x2003, 0x0000, 0x0005, 0x0156,
+	0x20a9, 0x0800, 0x2009, 0x1000, 0x9006, 0x200a, 0x8108, 0x1f04,
+	0x5cbd, 0x015e, 0x0005, 0x00d6, 0x0036, 0x0156, 0x0136, 0x0146,
+	0x2069, 0x1853, 0x9006, 0xb802, 0xb8ce, 0xb807, 0x0707, 0xb80a,
+	0xb80e, 0xb812, 0x9198, 0x30f4, 0x231d, 0x939c, 0x00ff, 0xbb16,
+	0x0016, 0x0026, 0xb8c2, 0x080c, 0xa8d5, 0x1120, 0x9192, 0x007e,
+	0x1208, 0xbbc2, 0x20a9, 0x0004, 0xb8c4, 0x20e8, 0xb9c8, 0x9198,
+	0x0006, 0x9006, 0x23a0, 0x4004, 0x20a9, 0x0004, 0x9198, 0x000a,
+	0x23a0, 0x4004, 0x002e, 0x001e, 0xb83e, 0xb842, 0xb84e, 0xb852,
+	0xb856, 0xb85a, 0xb85e, 0xb862, 0xb866, 0xb86a, 0xb86f, 0x0100,
+	0xb872, 0xb876, 0xb87a, 0xb88a, 0xb88e, 0xb893, 0x0008, 0xb896,
+	0xb89a, 0xb89e, 0xb8be, 0xb9a2, 0x0096, 0xb8a4, 0x904d, 0x0110,
+	0x080c, 0x0fff, 0xb8a7, 0x0000, 0x009e, 0x9006, 0xb84a, 0x6810,
+	0xb83a, 0x680c, 0xb846, 0xb8bb, 0x0520, 0xb8ac, 0x9005, 0x0198,
+	0x00c6, 0x2060, 0x9c82, 0x1cd0, 0x0a0c, 0x0db8, 0x2001, 0x1818,
+	0x2004, 0x9c02, 0x1a0c, 0x0db8, 0x080c, 0x8544, 0x00ce, 0x090c,
+	0x88e8, 0xb8af, 0x0000, 0x6814, 0x9084, 0x00ff, 0xb842, 0x014e,
+	0x013e, 0x015e, 0x003e, 0x00de, 0x0005, 0x0126, 0x2091, 0x8000,
+	0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000, 0x1a04, 0x5daa,
+	0x9182, 0x0800, 0x1a04, 0x5dae, 0x2001, 0x180c, 0x2004, 0x9084,
+	0x0003, 0x1904, 0x5db4, 0x9188, 0x1000, 0x2104, 0x905d, 0x0518,
+	0xb804, 0x9084, 0x00ff, 0x908e, 0x0006, 0x1508, 0xb8a4, 0x900d,
+	0x1904, 0x5dc6, 0xb850, 0x900d, 0x1148, 0xa802, 0x2900, 0xb852,
+	0xb84e, 0x080c, 0x8cb4, 0x9006, 0x012e, 0x0005, 0x00a6, 0x2150,
+	0x2900, 0xb002, 0xa803, 0x0000, 0x00ae, 0xb852, 0x0c90, 0x2001,
+	0x0005, 0x900e, 0x04b0, 0x2001, 0x0028, 0x900e, 0x0490, 0x9082,
+	0x0006, 0x1288, 0x080c, 0xa8d5, 0x1158, 0xb8a0, 0xd0bc, 0x1140,
+	0xb900, 0xd1fc, 0x0998, 0x2001, 0x0029, 0x2009, 0x1000, 0x0408,
+	0x2001, 0x0028, 0x00a8, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118,
+	0x2001, 0x0004, 0x0068, 0xd184, 0x0118, 0x2001, 0x0004, 0x0040,
+	0x2001, 0x0029, 0xb900, 0xd1fc, 0x0118, 0x2009, 0x1000, 0x0048,
+	0x900e, 0x0038, 0x2001, 0x0029, 0x900e, 0x0018, 0x2001, 0x0029,
+	0x900e, 0x9005, 0x012e, 0x0005, 0x2001, 0x180c, 0x2004, 0xd084,
+	0x19d0, 0x9188, 0x1000, 0x2104, 0x905d, 0x09a8, 0x080c, 0x65d8,
+	0x1990, 0xb800, 0xd0c4, 0x0978, 0x0804, 0x5d5e, 0x080c, 0x6410,
+	0x0904, 0x5d77, 0x0804, 0x5d62, 0x00b6, 0x00e6, 0x0126, 0x2091,
+	0x8000, 0xa874, 0x908e, 0x00ff, 0x1120, 0x2001, 0x1977, 0x205c,
+	0x0060, 0xa974, 0x9182, 0x0800, 0x1690, 0x9188, 0x1000, 0x2104,
+	0x905d, 0x01d0, 0x080c, 0x6578, 0x11d0, 0x080c, 0xa915, 0x0570,
+	0x2b00, 0x6012, 0x2900, 0x6016, 0x6023, 0x0009, 0x600b, 0x0000,
+	0xa874, 0x908e, 0x00ff, 0x1110, 0x600b, 0x8000, 0x2009, 0x0043,
+	0x080c, 0xa9e6, 0x9006, 0x00b0, 0x2001, 0x0028, 0x0090, 0x2009,
+	0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004, 0x0038, 0xd184,
+	0x0118, 0x2001, 0x0004, 0x0010, 0x2001, 0x0029, 0x0010, 0x2001,
+	0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005, 0x2001, 0x002c,
+	0x0cc0, 0x00b6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa974, 0x9182,
+	0x0800, 0x1a04, 0x5e89, 0x9188, 0x1000, 0x2104, 0x905d, 0x05d0,
+	0xb8a0, 0x9086, 0x007f, 0x0130, 0x080c, 0x65e0, 0x0118, 0x080c,
+	0x65d8, 0x1598, 0xa87c, 0xd0fc, 0x01e0, 0xa894, 0x9005, 0x01c8,
+	0x2060, 0x0026, 0x2010, 0x080c, 0xc5bf, 0x002e, 0x1120, 0x2001,
+	0x0008, 0x0804, 0x5e8b, 0x6020, 0x9086, 0x000a, 0x0120, 0x2001,
+	0x0008, 0x0804, 0x5e8b, 0x601a, 0x6003, 0x0008, 0x2900, 0x6016,
+	0x0058, 0x080c, 0xa915, 0x05e0, 0x2b00, 0x6012, 0x2900, 0x6016,
+	0x600b, 0xffff, 0x6023, 0x000a, 0x2009, 0x0003, 0x080c, 0xa9e6,
+	0x9006, 0x0450, 0x2001, 0x0028, 0x0430, 0x9082, 0x0006, 0x1288,
+	0x080c, 0xa8d5, 0x1158, 0xb8a0, 0xd0bc, 0x1140, 0xb900, 0xd1fc,
+	0x0908, 0x2001, 0x0029, 0x2009, 0x1000, 0x00a8, 0x2001, 0x0028,
+	0x0090, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001, 0x0004,
+	0x0050, 0xd184, 0x0118, 0x2001, 0x0004, 0x0028, 0x2001, 0x0029,
+	0x0010, 0x2001, 0x0029, 0x9005, 0x012e, 0x00ee, 0x00be, 0x0005,
+	0x2001, 0x002c, 0x0cc0, 0x00f6, 0x00b6, 0x0126, 0x2091, 0x8000,
+	0xa8e0, 0x9005, 0x1550, 0xa8dc, 0x9082, 0x0101, 0x1630, 0xa8c8,
+	0x9005, 0x1518, 0xa8c4, 0x9082, 0x0101, 0x12f8, 0xa974, 0x2079,
+	0x1800, 0x9182, 0x0800, 0x12e8, 0x7830, 0x9084, 0x0003, 0x1130,
+	0xaa98, 0xab94, 0xa878, 0x9084, 0x0007, 0x00ea, 0x7930, 0xd18c,
+	0x0118, 0x2001, 0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004,
+	0x0010, 0x2001, 0x0029, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e,
+	0x0018, 0x2001, 0x0029, 0x900e, 0x9006, 0x0008, 0x9005, 0x012e,
+	0x00be, 0x00fe, 0x0005, 0x5f20, 0x5edb, 0x5ef2, 0x5f20, 0x5f20,
+	0x5f20, 0x5f20, 0x5f20, 0x2100, 0x9082, 0x007e, 0x1278, 0x080c,
+	0x6213, 0x0148, 0x9046, 0xb810, 0x9306, 0x1904, 0x5f28, 0xb814,
+	0x9206, 0x15f0, 0x0028, 0xbb12, 0xba16, 0x0010, 0x080c, 0x468e,
+	0x0150, 0x04b0, 0x080c, 0x6274, 0x1598, 0xb810, 0x9306, 0x1580,
+	0xb814, 0x9206, 0x1568, 0x080c, 0xa915, 0x0530, 0x2b00, 0x6012,
+	0x080c, 0xca2d, 0x2900, 0x6016, 0x600b, 0xffff, 0x6023, 0x000a,
+	0xa878, 0x9086, 0x0001, 0x1170, 0x080c, 0x2f98, 0x9006, 0x080c,
+	0x61b0, 0x2001, 0x0002, 0x080c, 0x61c4, 0x2001, 0x0200, 0xb86e,
+	0xb893, 0x0002, 0x2009, 0x0003, 0x080c, 0xa9e6, 0x9006, 0x0068,
+	0x2001, 0x0001, 0x900e, 0x0038, 0x2001, 0x002c, 0x900e, 0x0018,
+	0x2001, 0x0028, 0x900e, 0x9005, 0x0000, 0x012e, 0x00be, 0x00fe,
+	0x0005, 0x00b6, 0x00f6, 0x00e6, 0x0126, 0x2091, 0x8000, 0xa894,
+	0x90c6, 0x0015, 0x0904, 0x6109, 0x90c6, 0x0056, 0x0904, 0x610d,
+	0x90c6, 0x0066, 0x0904, 0x6111, 0x90c6, 0x0071, 0x0904, 0x6115,
+	0x90c6, 0x0074, 0x0904, 0x6119, 0x90c6, 0x007c, 0x0904, 0x611d,
+	0x90c6, 0x007e, 0x0904, 0x6121, 0x90c6, 0x0037, 0x0904, 0x6125,
+	0x9016, 0x2079, 0x1800, 0xa974, 0x9186, 0x00ff, 0x0904, 0x6104,
+	0x9182, 0x0800, 0x1a04, 0x6104, 0x080c, 0x6274, 0x1190, 0xb804,
+	0x9084, 0x00ff, 0x9082, 0x0006, 0x1260, 0xa894, 0x90c6, 0x006f,
+	0x0140, 0x080c, 0xa8d5, 0x1904, 0x60ed, 0xb8a0, 0xd0bc, 0x1904,
+	0x60ed, 0xa894, 0x90c6, 0x006f, 0x0158, 0x90c6, 0x005e, 0x0904,
+	0x6047, 0x90c6, 0x0064, 0x0904, 0x6073, 0x2008, 0x0804, 0x6008,
+	0xa998, 0xa8b0, 0x2040, 0x080c, 0xa8d5, 0x1120, 0x9182, 0x007f,
+	0x0a04, 0x6008, 0x9186, 0x00ff, 0x0904, 0x6008, 0x9182, 0x0800,
+	0x1a04, 0x6008, 0xaaa0, 0xab9c, 0x7874, 0x9306, 0x1188, 0x7878,
+	0x0096, 0x924e, 0x1128, 0x2208, 0x2310, 0x009e, 0x0804, 0x6008,
+	0x99cc, 0xff00, 0x009e, 0x1120, 0x2208, 0x2310, 0x0804, 0x6008,
+	0x080c, 0x468e, 0x0904, 0x6013, 0x900e, 0x9016, 0x90c6, 0x4000,
+	0x15e0, 0x0006, 0x080c, 0x6494, 0x1108, 0xc185, 0xb800, 0xd0bc,
+	0x0108, 0xc18d, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,
+	0x0031, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098,
+	0x080c, 0x0f4a, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,
+	0x0035, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x000a, 0x2098,
+	0x080c, 0x0f4a, 0xa8c4, 0xabc8, 0x9305, 0xabcc, 0x9305, 0xabd0,
+	0x9305, 0xabd4, 0x9305, 0xabd8, 0x9305, 0xabdc, 0x9305, 0xabe0,
+	0x9305, 0x9005, 0x01f8, 0x000e, 0x00b8, 0x90c6, 0x4007, 0x1110,
+	0x2408, 0x0090, 0x90c6, 0x4008, 0x1118, 0x2708, 0x2610, 0x0060,
+	0x90c6, 0x4009, 0x1108, 0x0040, 0x90c6, 0x4006, 0x1108, 0x0020,
+	0x2001, 0x4005, 0x2009, 0x000a, 0xa896, 0xa99a, 0xaa9e, 0x2001,
+	0x0030, 0x0478, 0x000e, 0x080c, 0xa915, 0x1130, 0x2001, 0x4005,
+	0x2009, 0x0003, 0x9016, 0x0c80, 0x2b00, 0x6012, 0x080c, 0xca2d,
+	0x2900, 0x6016, 0x6023, 0x0001, 0xa868, 0xd88c, 0x0108, 0xc0f5,
+	0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x2f98, 0x012e, 0x9006,
+	0x080c, 0x61b0, 0x2001, 0x0002, 0x080c, 0x61c4, 0x2009, 0x0002,
+	0x080c, 0xa9e6, 0xa8b0, 0xd094, 0x0118, 0xb8cc, 0xc08d, 0xb8ce,
+	0x9006, 0x9005, 0x012e, 0x00ee, 0x00fe, 0x00be, 0x0005, 0x080c,
+	0x53b7, 0x0118, 0x2009, 0x0007, 0x0410, 0xa998, 0xaeb0, 0x080c,
+	0x6274, 0x0120, 0x2009, 0x000a, 0x0804, 0x6008, 0x9186, 0x007f,
+	0x0130, 0x080c, 0x65d8, 0x0118, 0x2009, 0x0009, 0x0080, 0x0096,
+	0x080c, 0x0fcd, 0x1120, 0x009e, 0x2009, 0x0002, 0x0040, 0x2900,
+	0x009e, 0xa806, 0x080c, 0xc7b0, 0x1998, 0x2009, 0x0003, 0x2001,
+	0x4005, 0x0804, 0x600c, 0xa998, 0xaeb0, 0x080c, 0x6274, 0x0120,
+	0x2009, 0x000a, 0x0804, 0x6008, 0x0096, 0x080c, 0x0fcd, 0x1128,
+	0x009e, 0x2009, 0x0002, 0x0804, 0x60ca, 0x2900, 0x009e, 0xa806,
+	0x0096, 0x2048, 0x20a9, 0x002b, 0xb8c4, 0x20e0, 0xb8c8, 0x2098,
+	0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003, 0x20a9,
+	0x0008, 0x9080, 0x0006, 0x20a0, 0xbbc8, 0x9398, 0x0006, 0x2398,
+	0x080c, 0x0f4a, 0x009e, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897,
+	0x4000, 0xd684, 0x1168, 0x080c, 0x53a3, 0xd0b4, 0x1118, 0xa89b,
+	0x000b, 0x00e0, 0xb800, 0xd08c, 0x0118, 0xa89b, 0x000c, 0x00b0,
+	0x080c, 0x65d8, 0x0118, 0xa89b, 0x0009, 0x0080, 0x080c, 0x53b7,
+	0x0118, 0xa89b, 0x0007, 0x0050, 0x080c, 0xc793, 0x1904, 0x6040,
+	0x2009, 0x0003, 0x2001, 0x4005, 0x0804, 0x600c, 0xa87b, 0x0030,
+	0xa897, 0x4005, 0xa804, 0x8006, 0x8006, 0x8007, 0x90bc, 0x003f,
+	0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0, 0xab9c,
+	0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x1204, 0x080c, 0xae82,
+	0x1904, 0x6040, 0x2009, 0x0002, 0x08e8, 0x2001, 0x0028, 0x900e,
+	0x0804, 0x6041, 0x2009, 0x180c, 0x210c, 0xd18c, 0x0118, 0x2001,
+	0x0004, 0x0038, 0xd184, 0x0118, 0x2001, 0x0004, 0x0010, 0x2001,
+	0x0029, 0x900e, 0x0804, 0x6041, 0x2001, 0x0029, 0x900e, 0x0804,
+	0x6041, 0x080c, 0x351d, 0x0804, 0x6042, 0x080c, 0x50e0, 0x0804,
+	0x6042, 0x080c, 0x42e1, 0x0804, 0x6042, 0x080c, 0x4751, 0x0804,
+	0x6042, 0x080c, 0x4a14, 0x0804, 0x6042, 0x080c, 0x4d5a, 0x0804,
+	0x6042, 0x080c, 0x4f4b, 0x0804, 0x6042, 0x080c, 0x36ff, 0x0804,
+	0x6042, 0x00b6, 0xa974, 0xae78, 0x9684, 0x3fff, 0x9082, 0x4000,
+	0x1618, 0x9182, 0x0800, 0x1268, 0x9188, 0x1000, 0x2104, 0x905d,
+	0x0140, 0x080c, 0x65d8, 0x1148, 0x00e9, 0x080c, 0x639f, 0x9006,
+	0x00b0, 0x2001, 0x0028, 0x900e, 0x0090, 0x9082, 0x0006, 0x1240,
+	0xb900, 0xd1fc, 0x0d88, 0x2001, 0x0029, 0x2009, 0x1000, 0x0038,
+	0x2001, 0x0029, 0x900e, 0x0018, 0x2001, 0x0029, 0x900e, 0x9005,
+	0x00be, 0x0005, 0x0126, 0x2091, 0x8000, 0xb850, 0x900d, 0x0150,
+	0x2900, 0x0096, 0x2148, 0xa802, 0x009e, 0xa803, 0x0000, 0xb852,
+	0x012e, 0x0005, 0x2900, 0xb852, 0xb84e, 0xa803, 0x0000, 0x0cc0,
+	0x0126, 0x2091, 0x8000, 0xb84c, 0x9005, 0x0170, 0x00e6, 0x2071,
+	0x19f1, 0x7004, 0x9086, 0x0002, 0x0168, 0x00ee, 0xb84c, 0xa802,
+	0x2900, 0xb84e, 0x012e, 0x0005, 0x2900, 0xb852, 0xb84e, 0xa803,
+	0x0000, 0x0cc0, 0x701c, 0x9b06, 0x1d80, 0xb84c, 0x00a6, 0x2050,
+	0xb000, 0xa802, 0x2900, 0xb002, 0x00ae, 0x00ee, 0x012e, 0x0005,
+	0x0126, 0x2091, 0x8000, 0xb84c, 0x904d, 0x0130, 0xa800, 0x9005,
+	0x1108, 0xb852, 0xb84e, 0x9905, 0x012e, 0x0005, 0xb84c, 0x904d,
+	0x0130, 0xa800, 0x9005, 0x1108, 0xb852, 0xb84e, 0x9905, 0x0005,
+	0x00b6, 0x0126, 0x00c6, 0x0026, 0x2091, 0x8000, 0x6210, 0x2258,
+	0xba00, 0x9005, 0x0110, 0xc285, 0x0008, 0xc284, 0xba02, 0x002e,
+	0x00ce, 0x012e, 0x00be, 0x0005, 0x00b6, 0x0126, 0x00c6, 0x2091,
+	0x8000, 0x6210, 0x2258, 0xba04, 0x0006, 0x9086, 0x0006, 0x1170,
+	0xb89c, 0xd0ac, 0x0158, 0x080c, 0x65d4, 0x0140, 0x9284, 0xff00,
+	0x8007, 0x9086, 0x0007, 0x1110, 0x2011, 0x0600, 0x000e, 0x9294,
+	0xff00, 0x9215, 0xba06, 0x0006, 0x9086, 0x0006, 0x1120, 0xba90,
+	0x82ff, 0x090c, 0x0db8, 0x000e, 0x00ce, 0x012e, 0x00be, 0x0005,
+	0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000, 0x6210, 0x2258, 0xba04,
+	0x0006, 0x9086, 0x0006, 0x1168, 0xb89c, 0xd0a4, 0x0150, 0x080c,
+	0x65d0, 0x1138, 0x9284, 0x00ff, 0x9086, 0x0007, 0x1110, 0x2011,
+	0x0006, 0x000e, 0x9294, 0x00ff, 0x8007, 0x9215, 0xba06, 0x00ce,
+	0x012e, 0x00be, 0x0005, 0x9182, 0x0800, 0x0218, 0x9085, 0x0001,
+	0x0005, 0x00d6, 0x0026, 0x9190, 0x1000, 0x2204, 0x905d, 0x1188,
+	0x0096, 0x080c, 0x0fcd, 0x2958, 0x009e, 0x0168, 0x2b00, 0x2012,
+	0xb85c, 0xb8ca, 0xb860, 0xb8c6, 0x9006, 0xb8a6, 0xb8ae, 0x080c,
+	0x5cc3, 0x9006, 0x0010, 0x9085, 0x0001, 0x002e, 0x00de, 0x0005,
+	0x00b6, 0x0096, 0x0126, 0x2091, 0x8000, 0x0026, 0x9182, 0x0800,
+	0x0218, 0x9085, 0x0001, 0x0458, 0x00d6, 0x9190, 0x1000, 0x2204,
+	0x905d, 0x0518, 0x2013, 0x0000, 0xb8a4, 0x904d, 0x0110, 0x080c,
+	0x0fff, 0x00d6, 0x00c6, 0xb8bc, 0x2060, 0x8cff, 0x0168, 0x600c,
+	0x0006, 0x6014, 0x2048, 0x080c, 0xc5d1, 0x0110, 0x080c, 0x0f7f,
+	0x080c, 0xa96b, 0x00ce, 0x0c88, 0x00ce, 0x00de, 0x2b48, 0xb8c8,
+	0xb85e, 0xb8c4, 0xb862, 0x080c, 0x100f, 0x00de, 0x9006, 0x002e,
+	0x012e, 0x009e, 0x00be, 0x0005, 0x0016, 0x9182, 0x0800, 0x0218,
+	0x9085, 0x0001, 0x0030, 0x9188, 0x1000, 0x2104, 0x905d, 0x0dc0,
+	0x9006, 0x001e, 0x0005, 0x00d6, 0x0156, 0x0136, 0x0146, 0x9006,
+	0xb80a, 0xb80e, 0xb800, 0xc08c, 0xb802, 0x080c, 0x7018, 0x1510,
+	0xb8a0, 0x9086, 0x007e, 0x0120, 0x080c, 0xa8d5, 0x11d8, 0x0078,
+	0x7040, 0xd0e4, 0x01b8, 0x00c6, 0x2061, 0x198c, 0x7048, 0x2062,
+	0x704c, 0x6006, 0x7050, 0x600a, 0x7054, 0x600e, 0x00ce, 0x703c,
+	0x2069, 0x0140, 0x9005, 0x1110, 0x2001, 0x0001, 0x6886, 0x2069,
+	0x1800, 0x68ae, 0x7040, 0xb85e, 0x7048, 0xb862, 0x704c, 0xb866,
+	0x20e1, 0x0000, 0x2099, 0x0276, 0xb8c4, 0x20e8, 0xb8c8, 0x9088,
+	0x000a, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2099, 0x027a, 0x9088,
+	0x0006, 0x21a0, 0x20a9, 0x0004, 0x4003, 0x2069, 0x0200, 0x6817,
+	0x0001, 0x7040, 0xb86a, 0x7144, 0xb96e, 0x7048, 0xb872, 0x7050,
+	0xb876, 0x2069, 0x0200, 0x6817, 0x0000, 0xb8a0, 0x9086, 0x007e,
+	0x1110, 0x7144, 0xb96e, 0x9182, 0x0211, 0x1218, 0x2009, 0x0008,
+	0x0400, 0x9182, 0x0259, 0x1218, 0x2009, 0x0007, 0x00d0, 0x9182,
+	0x02c1, 0x1218, 0x2009, 0x0006, 0x00a0, 0x9182, 0x0349, 0x1218,
+	0x2009, 0x0005, 0x0070, 0x9182, 0x0421, 0x1218, 0x2009, 0x0004,
+	0x0040, 0x9182, 0x0581, 0x1218, 0x2009, 0x0003, 0x0010, 0x2009,
+	0x0002, 0xb992, 0x014e, 0x013e, 0x015e, 0x00de, 0x0005, 0x0016,
+	0x0026, 0x00e6, 0x2071, 0x0260, 0x7034, 0xb896, 0x703c, 0xb89a,
+	0x7054, 0xb89e, 0x0036, 0xbbcc, 0xc384, 0xba00, 0x2009, 0x1873,
+	0x210c, 0xd0bc, 0x0120, 0xd1ec, 0x0110, 0xc2ad, 0x0008, 0xc2ac,
+	0xd0c4, 0x0148, 0xd1e4, 0x0138, 0xc2bd, 0xd0cc, 0x0128, 0xd38c,
+	0x1108, 0xc385, 0x0008, 0xc2bc, 0xba02, 0xbbce, 0x003e, 0x00ee,
+	0x002e, 0x001e, 0x0005, 0x0096, 0x0126, 0x2091, 0x8000, 0xb8a4,
+	0x904d, 0x0578, 0xa900, 0x81ff, 0x15c0, 0xaa04, 0x9282, 0x0010,
+	0x16c8, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x8906, 0x8006, 0x8007,
+	0x908c, 0x003f, 0x21e0, 0x9084, 0xffc0, 0x9080, 0x0004, 0x2098,
+	0x2009, 0x0010, 0x20a9, 0x0001, 0x4002, 0x9086, 0xffff, 0x0120,
+	0x8109, 0x1dd0, 0x080c, 0x0db8, 0x3c00, 0x20e8, 0x3300, 0x8001,
+	0x20a0, 0x4604, 0x8210, 0xaa06, 0x01de, 0x01ce, 0x014e, 0x013e,
+	0x0060, 0x080c, 0x0fcd, 0x0170, 0x2900, 0xb8a6, 0xa803, 0x0000,
+	0x080c, 0x6430, 0xa807, 0x0001, 0xae12, 0x9085, 0x0001, 0x012e,
+	0x009e, 0x0005, 0x9006, 0x0cd8, 0x0126, 0x2091, 0x8000, 0x0096,
+	0xb8a4, 0x904d, 0x0188, 0xa800, 0x9005, 0x1150, 0x080c, 0x643f,
+	0x1158, 0xa804, 0x908a, 0x0002, 0x0218, 0x8001, 0xa806, 0x0020,
+	0x080c, 0x0fff, 0xb8a7, 0x0000, 0x009e, 0x012e, 0x0005, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x8cb4, 0x012e, 0x0005, 0x901e, 0x0010,
+	0x2019, 0x0001, 0x900e, 0x0126, 0x2091, 0x8000, 0xb84c, 0x2048,
+	0xb800, 0xd0dc, 0x1170, 0x89ff, 0x0500, 0x83ff, 0x0120, 0xa878,
+	0x9606, 0x0158, 0x0030, 0xa86c, 0x9406, 0x1118, 0xa870, 0x9506,
+	0x0120, 0x2908, 0xa800, 0x2048, 0x0c70, 0x080c, 0xa1af, 0xaa00,
+	0xb84c, 0x9906, 0x1110, 0xba4e, 0x0020, 0x00a6, 0x2150, 0xb202,
+	0x00ae, 0x82ff, 0x1110, 0xb952, 0x89ff, 0x012e, 0x0005, 0x9016,
+	0x0489, 0x1110, 0x2011, 0x0001, 0x0005, 0x080c, 0x6494, 0x0128,
+	0x080c, 0xc699, 0x0010, 0x9085, 0x0001, 0x0005, 0x080c, 0x6494,
+	0x0128, 0x080c, 0xc633, 0x0010, 0x9085, 0x0001, 0x0005, 0x080c,
+	0x6494, 0x0128, 0x080c, 0xc696, 0x0010, 0x9085, 0x0001, 0x0005,
+	0x080c, 0x6494, 0x0128, 0x080c, 0xc657, 0x0010, 0x9085, 0x0001,
+	0x0005, 0x080c, 0x6494, 0x0128, 0x080c, 0xc6c3, 0x0010, 0x9085,
+	0x0001, 0x0005, 0xb8a4, 0x900d, 0x1118, 0x9085, 0x0001, 0x0005,
+	0x0136, 0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e, 0x810e, 0x810f,
+	0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0004, 0x2098,
+	0x20a9, 0x0001, 0x2009, 0x0010, 0x4002, 0x9606, 0x0128, 0x8109,
+	0x1dd8, 0x9085, 0x0001, 0x0008, 0x9006, 0x01ce, 0x013e, 0x0005,
+	0x0146, 0x01d6, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0004, 0x20a0,
+	0x20a9, 0x0010, 0x2009, 0xffff, 0x4104, 0x01de, 0x014e, 0x0136,
+	0x01c6, 0xa800, 0x9005, 0x11b8, 0x890e, 0x810e, 0x810f, 0x9184,
+	0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0004, 0x2098, 0x20a9,
+	0x0001, 0x2009, 0x0010, 0x4002, 0x9606, 0x0128, 0x8109, 0x1dd8,
+	0x9085, 0x0001, 0x0068, 0x0146, 0x01d6, 0x3300, 0x8001, 0x20a0,
+	0x3c00, 0x20e8, 0x2001, 0xffff, 0x4004, 0x01de, 0x014e, 0x9006,
+	0x01ce, 0x013e, 0x0005, 0x0096, 0x0126, 0x2091, 0x8000, 0xb8a4,
+	0x904d, 0x1128, 0x080c, 0x0fcd, 0x0168, 0x2900, 0xb8a6, 0x080c,
+	0x6430, 0xa803, 0x0001, 0xa807, 0x0000, 0x9085, 0x0001, 0x012e,
+	0x009e, 0x0005, 0x9006, 0x0cd8, 0x0096, 0x0126, 0x2091, 0x8000,
+	0xb8a4, 0x904d, 0x0130, 0xb8a7, 0x0000, 0x080c, 0x0fff, 0x9085,
+	0x0001, 0x012e, 0x009e, 0x0005, 0xb89c, 0xd0a4, 0x0005, 0x00b6,
+	0x00f6, 0x080c, 0x7018, 0x01b0, 0x71c0, 0x81ff, 0x1198, 0x71d8,
+	0xd19c, 0x0180, 0x2001, 0x007e, 0x9080, 0x1000, 0x2004, 0x905d,
+	0x0148, 0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x1118, 0xb800,
+	0xc0ed, 0xb802, 0x2079, 0x1853, 0x7804, 0xd0a4, 0x01d0, 0x0156,
+	0x20a9, 0x007f, 0x900e, 0x0016, 0x080c, 0x6274, 0x1168, 0xb804,
+	0x9084, 0xff00, 0x8007, 0x9096, 0x0004, 0x0118, 0x9086, 0x0006,
+	0x1118, 0xb800, 0xc0ed, 0xb802, 0x001e, 0x8108, 0x1f04, 0x64bb,
+	0x015e, 0x080c, 0x6596, 0x0120, 0x2001, 0x198f, 0x200c, 0x0038,
+	0x2079, 0x1853, 0x7804, 0xd0a4, 0x0130, 0x2009, 0x07d0, 0x2011,
+	0x64e6, 0x080c, 0x8181, 0x00fe, 0x00be, 0x0005, 0x00b6, 0x2011,
+	0x64e6, 0x080c, 0x80ec, 0x080c, 0x6596, 0x01d8, 0x2001, 0x107e,
+	0x2004, 0x2058, 0xb900, 0xc1ec, 0xb902, 0x080c, 0x65d4, 0x0130,
+	0x2009, 0x07d0, 0x2011, 0x64e6, 0x080c, 0x8181, 0x00e6, 0x2071,
+	0x1800, 0x9006, 0x7076, 0x7058, 0x707a, 0x080c, 0x2d72, 0x00ee,
+	0x0488, 0x0156, 0x00c6, 0x20a9, 0x007f, 0x900e, 0x0016, 0x080c,
+	0x6274, 0x1510, 0xb800, 0xd0ec, 0x01f8, 0x0046, 0xbaa0, 0x2220,
+	0x9006, 0x2009, 0x0029, 0x080c, 0xdfa9, 0xb800, 0xc0e5, 0xc0ec,
+	0xb802, 0xb804, 0x9084, 0x00ff, 0x9085, 0x0700, 0xb806, 0x2019,
+	0x0029, 0x080c, 0x8e3c, 0x0076, 0x903e, 0x080c, 0x8d19, 0x900e,
+	0x080c, 0xdcf1, 0x007e, 0x004e, 0x001e, 0x8108, 0x1f04, 0x650e,
+	0x00ce, 0x015e, 0x00be, 0x0005, 0x00b6, 0x6010, 0x2058, 0xb800,
+	0xc0ec, 0xb802, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x0096, 0x080c,
+	0x0fe6, 0x090c, 0x0db8, 0x2958, 0x009e, 0x2001, 0x1977, 0x2b02,
+	0xb8af, 0x0000, 0x2009, 0x00ff, 0x080c, 0x5cc3, 0xb807, 0x0006,
+	0xb813, 0x00ff, 0xb817, 0xffff, 0xb86f, 0x0200, 0xb86c, 0xb893,
+	0x0002, 0xb8bb, 0x0520, 0xb8a3, 0x00ff, 0xb8af, 0x0000, 0x00ce,
+	0x00be, 0x0005, 0x7810, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0ac,
+	0x0005, 0x7810, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0005,
+	0x0006, 0x0016, 0x0026, 0xb804, 0x908c, 0x00ff, 0x9196, 0x0006,
+	0x0188, 0x9196, 0x0004, 0x0170, 0x9196, 0x0005, 0x0158, 0x908c,
+	0xff00, 0x810f, 0x9196, 0x0006, 0x0128, 0x9196, 0x0004, 0x0110,
+	0x9196, 0x0005, 0x002e, 0x001e, 0x000e, 0x0005, 0x00b6, 0x00f6,
+	0x2001, 0x107e, 0x2004, 0x905d, 0x0110, 0xb800, 0xd0ec, 0x00fe,
+	0x00be, 0x0005, 0x0126, 0x0026, 0x2091, 0x8000, 0x0006, 0xbaa0,
+	0x9290, 0x1000, 0x2204, 0x9b06, 0x190c, 0x0db8, 0x000e, 0xba00,
+	0x9005, 0x0110, 0xc2fd, 0x0008, 0xc2fc, 0xba02, 0x002e, 0x012e,
+	0x0005, 0x2011, 0x1836, 0x2204, 0xd0cc, 0x0138, 0x2001, 0x198d,
+	0x200c, 0x2011, 0x65c6, 0x080c, 0x8181, 0x0005, 0x2011, 0x65c6,
+	0x080c, 0x80ec, 0x2011, 0x1836, 0x2204, 0xc0cc, 0x2012, 0x0005,
+	0x080c, 0x53a3, 0xd0ac, 0x0005, 0x080c, 0x53a3, 0xd0a4, 0x0005,
+	0x0016, 0xb904, 0x9184, 0x00ff, 0x908e, 0x0006, 0x001e, 0x0005,
+	0x0016, 0xb904, 0x9184, 0xff00, 0x8007, 0x908e, 0x0006, 0x001e,
+	0x0005, 0x00b6, 0x00f6, 0x080c, 0xccaa, 0x0158, 0x70d8, 0x9084,
+	0x0028, 0x0138, 0x2001, 0x107f, 0x2004, 0x905d, 0x0110, 0xb8cc,
+	0xd094, 0x00fe, 0x00be, 0x0005, 0x2071, 0x191c, 0x7003, 0x0001,
+	0x7007, 0x0000, 0x9006, 0x7012, 0x7016, 0x701a, 0x701e, 0x700a,
+	0x7046, 0x2001, 0x1953, 0x2003, 0x0000, 0x0005, 0x0016, 0x00e6,
+	0x2071, 0x1954, 0x900e, 0x710a, 0x080c, 0x53a3, 0xd0fc, 0x1140,
+	0x080c, 0x53a3, 0x900e, 0xd09c, 0x0108, 0x8108, 0x7102, 0x00f8,
+	0x2001, 0x1873, 0x200c, 0x9184, 0x0007, 0x0002, 0x6618, 0x6618,
+	0x6618, 0x6618, 0x6618, 0x662e, 0x663c, 0x6618, 0x7003, 0x0003,
+	0x2009, 0x1874, 0x210c, 0x9184, 0xff00, 0x8007, 0x9005, 0x1110,
+	0x2001, 0x0002, 0x7006, 0x0018, 0x7003, 0x0005, 0x0c88, 0x00ee,
+	0x001e, 0x0005, 0x00e6, 0x2071, 0x0050, 0x684c, 0x9005, 0x1150,
+	0x00e6, 0x2071, 0x191c, 0x7028, 0xc085, 0x702a, 0x00ee, 0x9085,
+	0x0001, 0x0488, 0x6844, 0x9005, 0x0158, 0x080c, 0x7363, 0x6a60,
+	0x9200, 0x7002, 0x6864, 0x9101, 0x7006, 0x9006, 0x7012, 0x7016,
+	0x6860, 0x7002, 0x6864, 0x7006, 0x6868, 0x700a, 0x686c, 0x700e,
+	0x6844, 0x9005, 0x1110, 0x7012, 0x7016, 0x684c, 0x701a, 0x701c,
+	0x9085, 0x0040, 0x701e, 0x7037, 0x0019, 0x702b, 0x0001, 0x00e6,
+	0x2071, 0x191c, 0x7028, 0xc084, 0x702a, 0x7007, 0x0001, 0x700b,
+	0x0000, 0x00ee, 0x9006, 0x00ee, 0x0005, 0x00e6, 0x0026, 0x2071,
+	0x1954, 0x7000, 0x9015, 0x0904, 0x68ec, 0x9286, 0x0003, 0x0904,
+	0x6782, 0x9286, 0x0005, 0x0904, 0x6782, 0x2071, 0x1883, 0xa87c,
+	0x9005, 0x0904, 0x66e3, 0x7140, 0xa868, 0x9102, 0x0a04, 0x68ec,
+	0xa878, 0xd084, 0x15d8, 0xa853, 0x0019, 0x2001, 0x8023, 0xa84e,
+	0x2071, 0x191c, 0x701c, 0x9005, 0x1904, 0x6a8e, 0x0e04, 0x6afc,
+	0x2071, 0x0000, 0xa850, 0x7032, 0xa84c, 0x7082, 0xa870, 0x7086,
+	0xa86c, 0x708a, 0xa880, 0x708e, 0x7036, 0x0146, 0x01d6, 0x0136,
+	0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a, 0xa868, 0x20a8,
+	0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x4003, 0x015e,
+	0x01ce, 0x013e, 0x01de, 0x014e, 0x2091, 0x4080, 0x2001, 0x0089,
+	0x2004, 0xd084, 0x190c, 0x115f, 0x0804, 0x6765, 0xa853, 0x001b,
+	0x2001, 0x8027, 0x0820, 0x7004, 0xd08c, 0x1904, 0x68ec, 0xa853,
+	0x001a, 0x2001, 0x8024, 0x0804, 0x66a7, 0x00e6, 0x0026, 0x2071,
+	0x1954, 0x7000, 0x9015, 0x0904, 0x68ec, 0x9286, 0x0003, 0x0904,
+	0x6782, 0x9286, 0x0005, 0x0904, 0x6782, 0xa84f, 0x8022, 0xa853,
+	0x0018, 0x0804, 0x674a, 0xa868, 0xd0fc, 0x11d8, 0x00e6, 0x0026,
+	0x2001, 0x1954, 0x2004, 0x9005, 0x0904, 0x68ec, 0xa87c, 0xd0bc,
+	0x1904, 0x68ec, 0xa978, 0xa874, 0x9105, 0x1904, 0x68ec, 0x2001,
+	0x1954, 0x2004, 0x0002, 0x68ec, 0x6746, 0x6782, 0x6782, 0x68ec,
+	0x6782, 0x0005, 0xa868, 0xd0fc, 0x1500, 0x00e6, 0x0026, 0x2009,
+	0x1954, 0x210c, 0x81ff, 0x0904, 0x68ec, 0xa87c, 0xd0cc, 0x0904,
+	0x68ec, 0xa880, 0x9084, 0x00ff, 0x9086, 0x0001, 0x1904, 0x68ec,
+	0x9186, 0x0003, 0x0904, 0x6782, 0x9186, 0x0005, 0x0904, 0x6782,
+	0xa84f, 0x8021, 0xa853, 0x0017, 0x0028, 0x0005, 0xa84f, 0x8020,
+	0xa853, 0x0016, 0x2071, 0x191c, 0x701c, 0x9005, 0x1904, 0x6a8e,
+	0x0e04, 0x6afc, 0x2071, 0x0000, 0xa84c, 0x7082, 0xa850, 0x7032,
+	0xa86c, 0x7086, 0x7036, 0xa870, 0x708a, 0x2091, 0x4080, 0x2001,
+	0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2071, 0x1800, 0x2011,
+	0x0001, 0xa804, 0x900d, 0x702c, 0x1158, 0xa802, 0x2900, 0x702e,
+	0x70bc, 0x9200, 0x70be, 0x080c, 0x8018, 0x002e, 0x00ee, 0x0005,
+	0x0096, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8,
+	0x009e, 0x0c58, 0xa84f, 0x0000, 0x00f6, 0x2079, 0x0050, 0x2071,
+	0x191c, 0xa803, 0x0000, 0x7010, 0x9005, 0x1904, 0x6871, 0x782c,
+	0x908c, 0x0780, 0x190c, 0x6c48, 0x8004, 0x8004, 0x8004, 0x9084,
+	0x0003, 0x0002, 0x67a0, 0x6871, 0x67c5, 0x680c, 0x080c, 0x0db8,
+	0x2071, 0x1800, 0x2900, 0x7822, 0xa804, 0x900d, 0x1170, 0x2071,
+	0x1a04, 0x7040, 0x9005, 0x1328, 0x2001, 0x1955, 0x2004, 0x8005,
+	0x7042, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c, 0x2148,
+	0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,
+	0x9200, 0x70be, 0x080c, 0x8018, 0x0c10, 0x2071, 0x1800, 0x2900,
+	0x7822, 0xa804, 0x900d, 0x1580, 0x7824, 0x00e6, 0x2071, 0x0040,
+	0x712c, 0xd19c, 0x1148, 0x2009, 0x182f, 0x210c, 0x918a, 0x0020,
+	0x0218, 0x7022, 0x00ee, 0x0058, 0x00ee, 0x2048, 0x702c, 0xa802,
+	0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8018, 0x782c,
+	0x9094, 0x0780, 0x190c, 0x6c48, 0xd0a4, 0x19f0, 0x2071, 0x1a04,
+	0x7040, 0x9005, 0x1328, 0x2001, 0x1955, 0x2004, 0x8005, 0x7042,
+	0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c, 0x2148, 0xa904,
+	0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200,
+	0x70be, 0x080c, 0x8018, 0x0800, 0x0096, 0x00e6, 0x7824, 0x2048,
+	0x2071, 0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000,
+	0x70be, 0x080c, 0x8018, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48,
+	0xd0a4, 0x1d60, 0x00ee, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48,
+	0xd09c, 0x11a0, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d, 0x1560,
+	0x2071, 0x1a04, 0x7040, 0x9005, 0x1328, 0x2001, 0x1955, 0x2004,
+	0x8005, 0x7042, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x009e, 0x2908,
+	0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110, 0xa902,
+	0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1170, 0x2071, 0x1a04,
+	0x7040, 0x9005, 0x1328, 0x2001, 0x1955, 0x2004, 0x8005, 0x7042,
+	0x00fe, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c,
+	0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,
+	0x70bc, 0x9200, 0x70be, 0x080c, 0x8018, 0x00fe, 0x002e, 0x00ee,
+	0x0005, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a,
+	0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1904,
+	0x68c6, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd09c, 0x1198,
+	0x701c, 0x904d, 0x0180, 0x7010, 0x8001, 0x7012, 0x1108, 0x701a,
+	0xa800, 0x701e, 0x2900, 0x7822, 0x782c, 0x9094, 0x0780, 0x190c,
+	0x6c48, 0xd09c, 0x0d68, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48,
+	0xd0a4, 0x01b0, 0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c,
+	0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8018,
+	0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd0a4, 0x1d60, 0x00ee,
+	0x2071, 0x1a04, 0x7040, 0x9005, 0x1328, 0x2001, 0x1955, 0x2004,
+	0x8005, 0x7042, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x00e6, 0x2071,
+	0x1800, 0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900,
+	0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8018,
+	0x00ee, 0x0804, 0x6881, 0xa868, 0xd0fc, 0x1560, 0x0096, 0xa804,
+	0xa807, 0x0000, 0x904d, 0x190c, 0x0f7f, 0x009e, 0x0018, 0xa868,
+	0xd0fc, 0x1500, 0x00e6, 0x0026, 0xa84f, 0x0000, 0x00f6, 0x2079,
+	0x0050, 0x2071, 0x191c, 0xa803, 0x0000, 0x7010, 0x9005, 0x1904,
+	0x6a08, 0x782c, 0x908c, 0x0780, 0x190c, 0x6c48, 0x8004, 0x8004,
+	0x8004, 0x9084, 0x0003, 0x0002, 0x690b, 0x6a08, 0x6926, 0x6997,
+	0x080c, 0x0db8, 0x0005, 0x2071, 0x1800, 0x2900, 0x7822, 0xa804,
+	0x900d, 0x1120, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c,
+	0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,
+	0x70bc, 0x9200, 0x70be, 0x080c, 0x8018, 0x0c60, 0x2071, 0x1800,
+	0x2900, 0x7822, 0xa804, 0x900d, 0x1904, 0x6986, 0x7830, 0x8007,
+	0x9084, 0x001f, 0x9082, 0x0005, 0x1220, 0x00fe, 0x002e, 0x00ee,
+	0x0005, 0x7824, 0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1148,
+	0x2009, 0x182f, 0x210c, 0x918a, 0x0020, 0x0218, 0x7022, 0x00ee,
+	0x0058, 0x00ee, 0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc,
+	0x8000, 0x70be, 0x080c, 0x8018, 0x782c, 0x9094, 0x0780, 0x190c,
+	0x6c48, 0xd0a4, 0x19f0, 0x0e04, 0x697d, 0x7838, 0x7938, 0x910e,
+	0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de,
+	0x2001, 0x192d, 0x200c, 0xc184, 0x2102, 0x2091, 0x4080, 0x2001,
+	0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2009, 0x1953, 0x200b,
+	0x0000, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x2001, 0x192d, 0x200c,
+	0xc185, 0x2102, 0x00fe, 0x002e, 0x00ee, 0x0005, 0x9016, 0x702c,
+	0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e,
+	0x70bc, 0x9200, 0x70be, 0x080c, 0x8018, 0x0804, 0x6939, 0x0096,
+	0x00e6, 0x7824, 0x2048, 0x2071, 0x1800, 0x702c, 0xa802, 0x2900,
+	0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8018, 0x782c, 0x9094,
+	0x0780, 0x190c, 0x6c48, 0xd0a4, 0x1d60, 0x00ee, 0x0e04, 0x69db,
+	0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000, 0x6836,
+	0x6833, 0x0013, 0x00de, 0x7044, 0xc084, 0x7046, 0x2091, 0x4080,
+	0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2009, 0x1953,
+	0x200b, 0x0000, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd09c,
+	0x1170, 0x009e, 0x2900, 0x7822, 0xa804, 0x900d, 0x11e0, 0x00fe,
+	0x002e, 0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x0c58, 0x009e,
+	0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,
+	0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1120, 0x00fe,
+	0x002e, 0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148,
+	0xa904, 0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc,
+	0x9200, 0x70be, 0x080c, 0x8018, 0x00fe, 0x002e, 0x00ee, 0x0005,
+	0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,
+	0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1904, 0x6a79,
+	0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd09c, 0x11b0, 0x701c,
+	0x904d, 0x0198, 0xa84c, 0x9005, 0x1180, 0x7010, 0x8001, 0x7012,
+	0x1108, 0x701a, 0xa800, 0x701e, 0x2900, 0x7822, 0x782c, 0x9094,
+	0x0780, 0x190c, 0x6c48, 0xd09c, 0x0d50, 0x782c, 0x9094, 0x0780,
+	0x190c, 0x6c48, 0xd0a4, 0x05c8, 0x00e6, 0x7824, 0x2048, 0x2071,
+	0x1800, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be,
+	0x080c, 0x8018, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd0a4,
+	0x1d60, 0x00ee, 0x0e04, 0x6a72, 0x7838, 0x7938, 0x910e, 0x1de0,
+	0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x7044,
+	0xc084, 0x7046, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004, 0xd084,
+	0x190c, 0x115f, 0x2009, 0x1953, 0x200b, 0x0000, 0x00fe, 0x002e,
+	0x00ee, 0x0005, 0x7044, 0xc085, 0x7046, 0x00fe, 0x002e, 0x00ee,
+	0x0005, 0x00e6, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904,
+	0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200,
+	0x70be, 0x080c, 0x8018, 0x00ee, 0x0804, 0x6a18, 0x2071, 0x191c,
+	0xa803, 0x0000, 0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d,
+	0x711a, 0x0110, 0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d,
+	0x1128, 0x1e04, 0x6ab9, 0x002e, 0x00ee, 0x0005, 0x2071, 0x1800,
+	0x9016, 0x702c, 0x2148, 0xa904, 0xa802, 0x8210, 0x2900, 0x81ff,
+	0x1dc8, 0x702e, 0x70bc, 0x9200, 0x70be, 0x080c, 0x8018, 0x0e04,
+	0x6aa3, 0x2071, 0x191c, 0x701c, 0x2048, 0xa84c, 0x900d, 0x0d18,
+	0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c, 0x7086, 0x7036,
+	0xa870, 0x708a, 0xa850, 0x9082, 0x0019, 0x1278, 0x2091, 0x4080,
+	0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2071, 0x191c,
+	0x080c, 0x6c34, 0x002e, 0x00ee, 0x0005, 0xa850, 0x9082, 0x001c,
+	0x1e68, 0xa880, 0x708e, 0x7036, 0x0146, 0x01d6, 0x0136, 0x01c6,
+	0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a, 0xa868, 0x20a8, 0xa860,
+	0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x4003, 0x015e, 0x01ce,
+	0x013e, 0x01de, 0x014e, 0x0890, 0x2071, 0x191c, 0xa803, 0x0000,
+	0x2908, 0x7010, 0x8000, 0x7012, 0x7018, 0x904d, 0x711a, 0x0110,
+	0xa902, 0x0008, 0x711e, 0x2148, 0xa804, 0x900d, 0x1118, 0x002e,
+	0x00ee, 0x0005, 0x2071, 0x1800, 0x9016, 0x702c, 0x2148, 0xa904,
+	0xa802, 0x8210, 0x2900, 0x81ff, 0x1dc8, 0x702e, 0x70bc, 0x9200,
+	0x70be, 0x080c, 0x8018, 0x002e, 0x00ee, 0x0005, 0x0006, 0xa87c,
+	0x0006, 0xa867, 0x0103, 0x20a9, 0x001c, 0xa860, 0x20e8, 0xa85c,
+	0x9080, 0x001d, 0x20a0, 0x9006, 0x4004, 0x000e, 0x9084, 0x00ff,
+	0xa87e, 0x000e, 0xa87a, 0xa982, 0x0005, 0x2071, 0x191c, 0x7004,
+	0x0002, 0x6b47, 0x6b48, 0x6c33, 0x6b48, 0x0db8, 0x6c33, 0x0005,
+	0x2001, 0x1954, 0x2004, 0x0002, 0x6b52, 0x6b52, 0x6bcc, 0x6bcd,
+	0x6b52, 0x6bcd, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x6c53, 0x701c,
+	0x904d, 0x0508, 0xa84c, 0x9005, 0x0904, 0x6b9d, 0x0e04, 0x6b7b,
+	0xa94c, 0x2071, 0x0000, 0x7182, 0xa850, 0x7032, 0xa86c, 0x7086,
+	0x7036, 0xa870, 0x708a, 0xa850, 0x9082, 0x0019, 0x1278, 0x2091,
+	0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2071,
+	0x191c, 0x080c, 0x6c34, 0x012e, 0x0804, 0x6bcb, 0xa850, 0x9082,
+	0x001c, 0x1e68, 0xa880, 0x708e, 0x7036, 0x0146, 0x01d6, 0x0136,
+	0x01c6, 0x0156, 0x20e9, 0x0000, 0x20a1, 0x002a, 0xa868, 0x20a8,
+	0xa860, 0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x4003, 0x015e,
+	0x01ce, 0x013e, 0x01de, 0x014e, 0x0890, 0x2001, 0x005b, 0x2004,
+	0x9094, 0x0780, 0x190c, 0x6c48, 0xd09c, 0x2071, 0x191c, 0x1510,
+	0x2071, 0x191c, 0x700f, 0x0001, 0xa964, 0x9184, 0x00ff, 0x9086,
+	0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101, 0x0108, 0x710e,
+	0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de, 0x2071, 0x191c,
+	0x701c, 0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005,
+	0x1108, 0x701a, 0x012e, 0x0005, 0x0005, 0x00d6, 0x2008, 0x2069,
+	0x1a04, 0x6840, 0x9005, 0x0760, 0x0158, 0x9186, 0x0003, 0x0540,
+	0x2001, 0x1813, 0x2004, 0x2009, 0x1ac8, 0x210c, 0x9102, 0x1500,
+	0x0126, 0x2091, 0x8000, 0x2069, 0x0050, 0x693c, 0x6838, 0x9106,
+	0x0190, 0x0e04, 0x6bff, 0x2069, 0x0000, 0x6837, 0x8040, 0x6833,
+	0x0012, 0x6883, 0x8040, 0x2091, 0x4080, 0x2001, 0x0089, 0x2004,
+	0xd084, 0x190c, 0x115f, 0x2069, 0x1a04, 0x6843, 0xffff, 0x012e,
+	0x00de, 0x0126, 0x2091, 0x8000, 0x1e0c, 0x6cc4, 0x701c, 0x904d,
+	0x0540, 0x2001, 0x005b, 0x2004, 0x9094, 0x0780, 0x15c9, 0xd09c,
+	0x1500, 0x2071, 0x191c, 0x700f, 0x0001, 0xa964, 0x9184, 0x00ff,
+	0x9086, 0x0003, 0x1130, 0x810f, 0x918c, 0x00ff, 0x8101, 0x0108,
+	0x710e, 0x2900, 0x00d6, 0x2069, 0x0050, 0x6822, 0x00de, 0x701c,
+	0x2048, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005, 0x1108,
+	0x701a, 0x012e, 0x0005, 0x0005, 0x0126, 0x2091, 0x8000, 0x701c,
+	0x904d, 0x0160, 0x7010, 0x8001, 0x7012, 0xa800, 0x701e, 0x9005,
+	0x1108, 0x701a, 0x012e, 0x080c, 0x0fff, 0x0005, 0x012e, 0x0005,
+	0x2091, 0x8000, 0x0e04, 0x6c4a, 0x0006, 0x0016, 0x2001, 0x8004,
+	0x0006, 0x0804, 0x0dc1, 0x0096, 0x00f6, 0x2079, 0x0050, 0x7044,
+	0xd084, 0x01e0, 0xc084, 0x7046, 0x7838, 0x7938, 0x910e, 0x1de0,
+	0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091,
+	0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x2009,
+	0x1953, 0x200b, 0x0000, 0x00fe, 0x009e, 0x0005, 0x782c, 0x9094,
+	0x0780, 0x1971, 0xd0a4, 0x0db8, 0x2009, 0x1953, 0x2104, 0x8000,
+	0x200a, 0x9082, 0x000f, 0x0e78, 0x00e6, 0x2071, 0x1800, 0x7824,
+	0x00e6, 0x2071, 0x0040, 0x712c, 0xd19c, 0x1148, 0x2009, 0x182f,
+	0x210c, 0x918a, 0x0020, 0x0218, 0x7022, 0x00ee, 0x0058, 0x00ee,
+	0x2048, 0x702c, 0xa802, 0x2900, 0x702e, 0x70bc, 0x8000, 0x70be,
+	0x080c, 0x8018, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd0a4,
+	0x19f0, 0x7838, 0x7938, 0x910e, 0x1de0, 0x00d6, 0x2069, 0x0000,
+	0x6836, 0x6833, 0x0013, 0x00de, 0x2091, 0x4080, 0x2001, 0x0089,
+	0x2004, 0xd084, 0x190c, 0x115f, 0x2009, 0x1953, 0x200b, 0x0000,
+	0x00ee, 0x00fe, 0x009e, 0x0005, 0x00f6, 0x2079, 0x0050, 0x7044,
+	0xd084, 0x01b8, 0xc084, 0x7046, 0x7838, 0x7938, 0x910e, 0x1de0,
+	0x00d6, 0x2069, 0x0000, 0x6836, 0x6833, 0x0013, 0x00de, 0x2091,
+	0x4080, 0x2001, 0x0089, 0x2004, 0xd084, 0x190c, 0x115f, 0x00fe,
+	0x0005, 0x782c, 0x9094, 0x0780, 0x190c, 0x6c48, 0xd0a4, 0x0db8,
+	0x00e6, 0x2071, 0x1800, 0x7824, 0x2048, 0x702c, 0xa802, 0x2900,
+	0x702e, 0x70bc, 0x8000, 0x70be, 0x080c, 0x8018, 0x782c, 0x9094,
+	0x0780, 0x190c, 0x6c48, 0xd0a4, 0x1d70, 0x00d6, 0x2069, 0x0050,
+	0x693c, 0x2069, 0x1954, 0x6808, 0x690a, 0x2069, 0x1a04, 0x9102,
+	0x1118, 0x6840, 0x9005, 0x1328, 0x2001, 0x1955, 0x200c, 0x810d,
+	0x6942, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x7090, 0x908a, 0x0029,
+	0x1a0c, 0x0db8, 0x9082, 0x001d, 0x001b, 0x6027, 0x1e00, 0x0005,
+	0x6de8, 0x6d72, 0x6d8e, 0x6db6, 0x6dd7, 0x6e17, 0x6e29, 0x6d8e,
+	0x6dff, 0x6d2d, 0x6d5b, 0x6d2c, 0x0005, 0x00d6, 0x2069, 0x0200,
+	0x6804, 0x9005, 0x1180, 0x6808, 0x9005, 0x1518, 0x7093, 0x0028,
+	0x2069, 0x1999, 0x2d04, 0x7002, 0x080c, 0x7154, 0x6028, 0x9085,
+	0x0600, 0x602a, 0x00b0, 0x7093, 0x0028, 0x2069, 0x1999, 0x2d04,
+	0x7002, 0x6028, 0x9085, 0x0600, 0x602a, 0x00e6, 0x0036, 0x0046,
+	0x0056, 0x2071, 0x1a6d, 0x080c, 0x19a8, 0x005e, 0x004e, 0x003e,
+	0x00ee, 0x00de, 0x0005, 0x00d6, 0x2069, 0x0200, 0x6804, 0x9005,
+	0x1178, 0x6808, 0x9005, 0x1160, 0x7093, 0x0028, 0x2069, 0x1999,
+	0x2d04, 0x7002, 0x080c, 0x71de, 0x6028, 0x9085, 0x0600, 0x602a,
+	0x00de, 0x0005, 0x0006, 0x2001, 0x0090, 0x080c, 0x2ac9, 0x000e,
+	0x6124, 0xd1e4, 0x1190, 0x080c, 0x6e96, 0xd1d4, 0x1160, 0xd1dc,
+	0x1138, 0xd1cc, 0x0150, 0x7093, 0x0020, 0x080c, 0x6e96, 0x0028,
+	0x7093, 0x001d, 0x0010, 0x7093, 0x001f, 0x0005, 0x2001, 0x0088,
+	0x080c, 0x2ac9, 0x6124, 0xd1cc, 0x11d8, 0xd1dc, 0x11b0, 0xd1e4,
+	0x1188, 0x9184, 0x1e00, 0x11c8, 0x60e3, 0x0001, 0x600c, 0xc0b4,
+	0x600e, 0x080c, 0x7044, 0x2001, 0x0080, 0x080c, 0x2ac9, 0x7093,
+	0x0028, 0x0058, 0x7093, 0x001e, 0x0040, 0x7093, 0x001d, 0x0028,
+	0x7093, 0x0020, 0x0010, 0x7093, 0x001f, 0x0005, 0x60e3, 0x0001,
+	0x600c, 0xc0b4, 0x600e, 0x080c, 0x7044, 0x2001, 0x0080, 0x080c,
+	0x2ac9, 0x6124, 0xd1d4, 0x1180, 0xd1dc, 0x1158, 0xd1e4, 0x1130,
+	0x9184, 0x1e00, 0x1158, 0x7093, 0x0028, 0x0040, 0x7093, 0x001e,
+	0x0028, 0x7093, 0x001d, 0x0010, 0x7093, 0x001f, 0x0005, 0x2001,
+	0x00a0, 0x080c, 0x2ac9, 0x6124, 0xd1dc, 0x1138, 0xd1e4, 0x0138,
+	0x080c, 0x19d2, 0x7093, 0x001e, 0x0010, 0x7093, 0x001d, 0x0005,
+	0x080c, 0x6f1c, 0x6124, 0xd1dc, 0x1188, 0x080c, 0x6e96, 0x0016,
+	0x080c, 0x19d2, 0x001e, 0xd1d4, 0x1128, 0xd1e4, 0x0138, 0x7093,
+	0x001e, 0x0020, 0x7093, 0x001f, 0x080c, 0x6e96, 0x0005, 0x0006,
+	0x2001, 0x00a0, 0x080c, 0x2ac9, 0x000e, 0x6124, 0xd1d4, 0x1160,
+	0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140, 0x7093, 0x001e,
+	0x0028, 0x7093, 0x001d, 0x0010, 0x7093, 0x0021, 0x0005, 0x080c,
+	0x6f1c, 0x6124, 0xd1d4, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0140,
+	0x7093, 0x001e, 0x0028, 0x7093, 0x001d, 0x0010, 0x7093, 0x001f,
+	0x0005, 0x0006, 0x2001, 0x0090, 0x080c, 0x2ac9, 0x000e, 0x6124,
+	0xd1d4, 0x1178, 0xd1cc, 0x1150, 0xd1dc, 0x1128, 0xd1e4, 0x0158,
+	0x7093, 0x001e, 0x0040, 0x7093, 0x001d, 0x0028, 0x7093, 0x0020,
+	0x0010, 0x7093, 0x001f, 0x0005, 0x0016, 0x00c6, 0x00d6, 0x00e6,
+	0x0126, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x2091,
+	0x8000, 0x080c, 0x7018, 0x11d8, 0x2001, 0x180c, 0x200c, 0xd1b4,
+	0x01b0, 0xc1b4, 0x2102, 0x6027, 0x0200, 0x080c, 0x2a16, 0x6024,
+	0xd0cc, 0x0148, 0x2001, 0x00a0, 0x080c, 0x2ac9, 0x080c, 0x72f1,
+	0x080c, 0x5ca9, 0x0428, 0x6028, 0xc0cd, 0x602a, 0x0408, 0x080c,
+	0x7032, 0x0150, 0x080c, 0x7029, 0x1138, 0x2001, 0x0001, 0x080c,
+	0x25d0, 0x080c, 0x6ff4, 0x00a0, 0x080c, 0x6f19, 0x0178, 0x2001,
+	0x0001, 0x080c, 0x25d0, 0x7090, 0x9086, 0x001e, 0x0120, 0x7090,
+	0x9086, 0x0022, 0x1118, 0x7093, 0x0025, 0x0010, 0x7093, 0x0021,
+	0x012e, 0x00ee, 0x00de, 0x00ce, 0x001e, 0x0005, 0x0026, 0x2011,
+	0x6ea7, 0x080c, 0x81c3, 0x002e, 0x0016, 0x0026, 0x2009, 0x0064,
+	0x2011, 0x6ea7, 0x080c, 0x81ba, 0x002e, 0x001e, 0x0005, 0x00e6,
+	0x00f6, 0x0016, 0x080c, 0x9dfe, 0x2071, 0x1800, 0x080c, 0x6e44,
+	0x001e, 0x00fe, 0x00ee, 0x0005, 0x0016, 0x0026, 0x0036, 0x00c6,
+	0x00d6, 0x00e6, 0x00f6, 0x0126, 0x080c, 0x9dfe, 0x2061, 0x0100,
+	0x2069, 0x0140, 0x2071, 0x1800, 0x2091, 0x8000, 0x6028, 0xc09c,
+	0x602a, 0x2011, 0x0003, 0x080c, 0xa15c, 0x2011, 0x0002, 0x080c,
+	0xa166, 0x080c, 0xa026, 0x080c, 0x816f, 0x0036, 0x901e, 0x080c,
+	0xa0c0, 0x003e, 0x60e3, 0x0000, 0x080c, 0xe3b5, 0x080c, 0xe3d0,
+	0x2009, 0x0004, 0x080c, 0x2a1c, 0x080c, 0x293f, 0x2001, 0x1800,
+	0x2003, 0x0004, 0x6027, 0x0008, 0x080c, 0xccaa, 0x0150, 0x2011,
+	0x6ea7, 0x080c, 0x81c3, 0x080c, 0x7032, 0x0118, 0x9006, 0x080c,
+	0x2ac9, 0x080c, 0x0b91, 0x2001, 0x0001, 0x080c, 0x25d0, 0x012e,
+	0x00fe, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x0005,
+	0x0026, 0x00e6, 0x2011, 0x6eb4, 0x2071, 0x1a04, 0x701c, 0x9206,
+	0x1118, 0x7018, 0x9005, 0x0110, 0x9085, 0x0001, 0x00ee, 0x002e,
+	0x0005, 0x6020, 0xd09c, 0x0005, 0x6800, 0x9084, 0xfffe, 0x9086,
+	0x00c0, 0x0170, 0x2001, 0x00c0, 0x080c, 0x2ac9, 0x0156, 0x20a9,
+	0x002d, 0x1d04, 0x6f29, 0x2091, 0x6000, 0x1f04, 0x6f29, 0x015e,
+	0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2069, 0x0140,
+	0x2071, 0x1800, 0x080c, 0x7300, 0x2001, 0x1979, 0x2003, 0x0000,
+	0x9006, 0x7092, 0x60e2, 0x6886, 0x080c, 0x2698, 0x9006, 0x080c,
+	0x2ac9, 0x080c, 0x5b68, 0x6027, 0xffff, 0x602b, 0x182f, 0x00ee,
+	0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100,
+	0x2069, 0x0140, 0x2071, 0x1800, 0x2001, 0x1989, 0x200c, 0x9186,
+	0x0000, 0x0158, 0x9186, 0x0001, 0x0158, 0x9186, 0x0002, 0x0158,
+	0x9186, 0x0003, 0x0158, 0x0804, 0x6fe4, 0x7093, 0x0022, 0x0040,
+	0x7093, 0x0021, 0x0028, 0x7093, 0x0023, 0x0010, 0x7093, 0x0024,
+	0x60e3, 0x0000, 0x6887, 0x0001, 0x2001, 0x0001, 0x080c, 0x2698,
+	0x0026, 0x080c, 0xa8dc, 0x002e, 0x7000, 0x908e, 0x0004, 0x0118,
+	0x602b, 0x0028, 0x0010, 0x602b, 0x0020, 0x0156, 0x0126, 0x2091,
+	0x8000, 0x20a9, 0x0005, 0x6024, 0xd0ac, 0x0150, 0x012e, 0x015e,
+	0x080c, 0xccaa, 0x0118, 0x9006, 0x080c, 0x2af8, 0x0804, 0x6ff0,
+	0x6800, 0x9084, 0x00a1, 0xc0bd, 0x6802, 0x080c, 0x2a16, 0x6904,
+	0xd1d4, 0x1140, 0x2001, 0x0100, 0x080c, 0x2ac9, 0x1f04, 0x6f93,
+	0x080c, 0x7071, 0x012e, 0x015e, 0x080c, 0x7029, 0x01a8, 0x6044,
+	0x9005, 0x0168, 0x6050, 0x0006, 0x9085, 0x0020, 0x6052, 0x080c,
+	0x7071, 0x9006, 0x8001, 0x1df0, 0x000e, 0x6052, 0x0028, 0x6804,
+	0xd0d4, 0x1110, 0x080c, 0x7071, 0x080c, 0xccaa, 0x0118, 0x9006,
+	0x080c, 0x2af8, 0x0016, 0x0026, 0x7000, 0x908e, 0x0004, 0x0130,
+	0x2009, 0x00c8, 0x2011, 0x6eb4, 0x080c, 0x8181, 0x002e, 0x001e,
+	0x2001, 0x1989, 0x2003, 0x0004, 0x080c, 0x6d15, 0x080c, 0x7029,
+	0x0138, 0x6804, 0xd0d4, 0x1120, 0xd0dc, 0x1100, 0x080c, 0x72f6,
+	0x00ee, 0x00de, 0x00ce, 0x0005, 0x00c6, 0x00d6, 0x00e6, 0x2061,
+	0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x080c, 0x7300, 0x2001,
+	0x1979, 0x2003, 0x0000, 0x9006, 0x7092, 0x60e2, 0x6886, 0x080c,
+	0x2698, 0x9006, 0x080c, 0x2ac9, 0x6043, 0x0090, 0x6043, 0x0010,
+	0x6027, 0xffff, 0x602b, 0x182f, 0x00ee, 0x00de, 0x00ce, 0x0005,
+	0x0006, 0x2001, 0x1988, 0x2004, 0x9086, 0xaaaa, 0x000e, 0x0005,
+	0x0006, 0x080c, 0x53a7, 0x9084, 0x0030, 0x9086, 0x0000, 0x000e,
+	0x0005, 0x0006, 0x080c, 0x53a7, 0x9084, 0x0030, 0x9086, 0x0030,
+	0x000e, 0x0005, 0x0006, 0x080c, 0x53a7, 0x9084, 0x0030, 0x9086,
+	0x0010, 0x000e, 0x0005, 0x0006, 0x080c, 0x53a7, 0x9084, 0x0030,
+	0x9086, 0x0020, 0x000e, 0x0005, 0x0036, 0x0016, 0x2001, 0x180c,
+	0x2004, 0x908c, 0x0013, 0x0190, 0x9084, 0x0011, 0x0120, 0x080c,
+	0x26b8, 0x900e, 0x0028, 0x080c, 0x65d0, 0x1dc8, 0x2009, 0x0002,
+	0x2019, 0x0028, 0x080c, 0x2f63, 0x9006, 0x0019, 0x001e, 0x003e,
+	0x0005, 0x00e6, 0x2071, 0x180c, 0x2e04, 0x0130, 0x080c, 0xcca3,
+	0x1128, 0x9085, 0x0010, 0x0010, 0x9084, 0xffef, 0x2072, 0x00ee,
+	0x0005, 0x6050, 0x0006, 0x60ec, 0x0006, 0x600c, 0x0006, 0x6004,
+	0x0006, 0x6028, 0x0006, 0x0016, 0x6138, 0x6050, 0x9084, 0xfbff,
+	0x9085, 0x2000, 0x6052, 0x613a, 0x20a9, 0x0012, 0x1d04, 0x7086,
+	0x2091, 0x6000, 0x1f04, 0x7086, 0x602f, 0x0100, 0x602f, 0x0000,
+	0x6050, 0x9085, 0x0400, 0x9084, 0xdfff, 0x6052, 0x613a, 0x001e,
+	0x602f, 0x0040, 0x602f, 0x0000, 0x000e, 0x602a, 0x000e, 0x6006,
+	0x000e, 0x600e, 0x000e, 0x60ee, 0x60e3, 0x0000, 0x6887, 0x0001,
+	0x2001, 0x0001, 0x080c, 0x2698, 0x2001, 0x00a0, 0x0006, 0x080c,
+	0xccaa, 0x000e, 0x0130, 0x080c, 0x2aec, 0x9006, 0x080c, 0x2af8,
+	0x0010, 0x080c, 0x2ac9, 0x000e, 0x6052, 0x6050, 0x0006, 0xc0e5,
+	0x6052, 0x00f6, 0x2079, 0x0100, 0x080c, 0x298b, 0x00fe, 0x000e,
+	0x6052, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x00c6, 0x00d6,
+	0x00e6, 0x2061, 0x0100, 0x2069, 0x0140, 0x2071, 0x1800, 0x6020,
+	0x9084, 0x0080, 0x0138, 0x2001, 0x180c, 0x200c, 0xc1c5, 0x2102,
+	0x0804, 0x7146, 0x2001, 0x180c, 0x200c, 0xc1c4, 0x2102, 0x6028,
+	0x9084, 0xe1ff, 0x602a, 0x6027, 0x0200, 0x2001, 0x0090, 0x080c,
+	0x2ac9, 0x20a9, 0x0366, 0x6024, 0xd0cc, 0x1518, 0x1d04, 0x70f3,
+	0x2091, 0x6000, 0x1f04, 0x70f3, 0x2011, 0x0003, 0x080c, 0xa15c,
+	0x2011, 0x0002, 0x080c, 0xa166, 0x080c, 0xa026, 0x901e, 0x080c,
+	0xa0c0, 0x2001, 0x00a0, 0x080c, 0x2ac9, 0x080c, 0x72f1, 0x080c,
+	0x5ca9, 0x080c, 0xccaa, 0x0110, 0x080c, 0x0d28, 0x9085, 0x0001,
+	0x0498, 0x86ff, 0x1110, 0x080c, 0x19d2, 0x60e3, 0x0000, 0x2001,
+	0x1979, 0x2004, 0x080c, 0x2698, 0x60e2, 0x2001, 0x0080, 0x080c,
+	0x2ac9, 0x20a9, 0x0366, 0x6027, 0x1e00, 0x2009, 0x1e00, 0x080c,
+	0x2a16, 0x6024, 0x910c, 0x0138, 0x1d04, 0x712b, 0x2091, 0x6000,
+	0x1f04, 0x712b, 0x0808, 0x6028, 0x9085, 0x1e00, 0x602a, 0x70ac,
+	0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x080c, 0xccaa,
+	0x0110, 0x080c, 0x0d28, 0x9006, 0x00ee, 0x00de, 0x00ce, 0x003e,
+	0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016, 0x0026, 0x0036,
+	0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x2069,
+	0x0140, 0x6020, 0x9084, 0x00c0, 0x0120, 0x6884, 0x9005, 0x1904,
+	0x71a8, 0x2001, 0x0088, 0x080c, 0x2ac9, 0x9006, 0x60e2, 0x6886,
+	0x080c, 0x2698, 0x2069, 0x0200, 0x6804, 0x9005, 0x1118, 0x6808,
+	0x9005, 0x01c0, 0x6028, 0x9084, 0xfbff, 0x602a, 0x6027, 0x0400,
+	0x2069, 0x1999, 0x7000, 0x206a, 0x7093, 0x0026, 0x7003, 0x0001,
+	0x20a9, 0x0002, 0x1d04, 0x718a, 0x2091, 0x6000, 0x1f04, 0x718a,
+	0x0804, 0x71d6, 0x2069, 0x0140, 0x20a9, 0x0384, 0x6027, 0x1e00,
+	0x2009, 0x1e00, 0x080c, 0x2a16, 0x6024, 0x910c, 0x0508, 0x9084,
+	0x1a00, 0x11f0, 0x1d04, 0x7196, 0x2091, 0x6000, 0x1f04, 0x7196,
+	0x2011, 0x0003, 0x080c, 0xa15c, 0x2011, 0x0002, 0x080c, 0xa166,
+	0x080c, 0xa026, 0x901e, 0x080c, 0xa0c0, 0x2001, 0x00a0, 0x080c,
+	0x2ac9, 0x080c, 0x72f1, 0x080c, 0x5ca9, 0x9085, 0x0001, 0x00b0,
+	0x2001, 0x0080, 0x080c, 0x2ac9, 0x2069, 0x0140, 0x60e3, 0x0000,
+	0x70ac, 0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001,
+	0x1979, 0x2004, 0x080c, 0x2698, 0x60e2, 0x9006, 0x00ee, 0x00de,
+	0x00ce, 0x003e, 0x002e, 0x001e, 0x015e, 0x0005, 0x0156, 0x0016,
+	0x0026, 0x0036, 0x00c6, 0x00d6, 0x00e6, 0x2061, 0x0100, 0x2071,
+	0x1800, 0x6020, 0x9084, 0x00c0, 0x01c8, 0x2011, 0x0003, 0x080c,
+	0xa15c, 0x2011, 0x0002, 0x080c, 0xa166, 0x080c, 0xa026, 0x901e,
+	0x080c, 0xa0c0, 0x2069, 0x0140, 0x2001, 0x00a0, 0x080c, 0x2ac9,
+	0x080c, 0x72f1, 0x080c, 0x5ca9, 0x0804, 0x7271, 0x2001, 0x180c,
+	0x200c, 0xd1b4, 0x1160, 0xc1b5, 0x2102, 0x080c, 0x6e9c, 0x2069,
+	0x0140, 0x2001, 0x0080, 0x080c, 0x2ac9, 0x60e3, 0x0000, 0x2069,
+	0x0200, 0x6804, 0x9005, 0x1118, 0x6808, 0x9005, 0x0180, 0x6028,
+	0x9084, 0xfdff, 0x602a, 0x6027, 0x0200, 0x2069, 0x1999, 0x7000,
+	0x206a, 0x7093, 0x0027, 0x7003, 0x0001, 0x0804, 0x7271, 0x6027,
+	0x1e00, 0x2009, 0x1e00, 0x080c, 0x2a16, 0x6024, 0x910c, 0x01c8,
+	0x9084, 0x1c00, 0x11b0, 0x1d04, 0x722f, 0x0006, 0x0016, 0x00c6,
+	0x00d6, 0x00e6, 0x080c, 0x804c, 0x00ee, 0x00de, 0x00ce, 0x001e,
+	0x000e, 0x00e6, 0x2071, 0x1a04, 0x7018, 0x00ee, 0x9005, 0x19f8,
+	0x0500, 0x0026, 0x2011, 0x6eb4, 0x080c, 0x80ec, 0x2011, 0x6ea7,
+	0x080c, 0x81c3, 0x002e, 0x2069, 0x0140, 0x60e3, 0x0000, 0x70ac,
+	0x9005, 0x1118, 0x6887, 0x0001, 0x0008, 0x6886, 0x2001, 0x1979,
+	0x2004, 0x080c, 0x2698, 0x60e2, 0x2001, 0x180c, 0x200c, 0xc1b4,
+	0x2102, 0x00ee, 0x00de, 0x00ce, 0x003e, 0x002e, 0x001e, 0x015e,
+	0x0005, 0x0156, 0x0016, 0x0026, 0x0036, 0x0046, 0x00c6, 0x00e6,
+	0x2061, 0x0100, 0x2071, 0x1800, 0x080c, 0xcca3, 0x1904, 0x72df,
+	0x7130, 0xd184, 0x1170, 0x080c, 0x30e8, 0x0138, 0xc18d, 0x7132,
+	0x2011, 0x1854, 0x2214, 0xd2ac, 0x1120, 0x7030, 0xd08c, 0x0904,
+	0x72df, 0x2011, 0x1854, 0x220c, 0xd1a4, 0x0538, 0x0016, 0x2019,
+	0x000e, 0x080c, 0xdf1d, 0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e,
+	0x9186, 0x007e, 0x01a0, 0x9186, 0x0080, 0x0188, 0x080c, 0x6274,
+	0x1170, 0x2120, 0x9006, 0x0016, 0x2009, 0x000e, 0x080c, 0xdfa9,
+	0x2009, 0x0001, 0x2011, 0x0100, 0x080c, 0x82bd, 0x001e, 0x8108,
+	0x1f04, 0x72a8, 0x00be, 0x015e, 0x001e, 0xd1ac, 0x1148, 0x0016,
+	0x2009, 0x0002, 0x2019, 0x0004, 0x080c, 0x2f63, 0x001e, 0x0078,
+	0x0156, 0x00b6, 0x20a9, 0x007f, 0x900e, 0x080c, 0x6274, 0x1110,
+	0x080c, 0x5cc3, 0x8108, 0x1f04, 0x72d5, 0x00be, 0x015e, 0x080c,
+	0x19d2, 0x080c, 0xa8dc, 0x60e3, 0x0000, 0x080c, 0x5ca9, 0x080c,
+	0x6f53, 0x00ee, 0x00ce, 0x004e, 0x003e, 0x002e, 0x001e, 0x015e,
+	0x0005, 0x2001, 0x1989, 0x2003, 0x0001, 0x0005, 0x2001, 0x1989,
+	0x2003, 0x0000, 0x0005, 0x2001, 0x1988, 0x2003, 0xaaaa, 0x0005,
+	0x2001, 0x1988, 0x2003, 0x0000, 0x0005, 0x2071, 0x1906, 0x7003,
+	0x0000, 0x7007, 0x0000, 0x080c, 0x0fe6, 0x090c, 0x0db8, 0xa8ab,
+	0xdcb0, 0x2900, 0x704e, 0x080c, 0x0fe6, 0x090c, 0x0db8, 0xa8ab,
+	0xdcb0, 0x2900, 0x7052, 0xa867, 0x0000, 0xa86b, 0x0001, 0xa89f,
+	0x0000, 0x0005, 0x00e6, 0x2071, 0x0040, 0x6848, 0x9005, 0x1118,
+	0x9085, 0x0001, 0x04b0, 0x6840, 0x9005, 0x0150, 0x04a1, 0x6a50,
+	0x9200, 0x7002, 0x6854, 0x9101, 0x7006, 0x9006, 0x7012, 0x7016,
+	0x6850, 0x7002, 0x6854, 0x7006, 0x6858, 0x700a, 0x685c, 0x700e,
+	0x6840, 0x9005, 0x1110, 0x7012, 0x7016, 0x6848, 0x701a, 0x701c,
+	0x9085, 0x0040, 0x701e, 0x2001, 0x0019, 0x7036, 0x702b, 0x0001,
+	0x2001, 0x0004, 0x200c, 0x918c, 0xfff7, 0x918d, 0x8000, 0x2102,
+	0x00d6, 0x2069, 0x1906, 0x6807, 0x0001, 0x00de, 0x080c, 0x78dd,
+	0x9006, 0x00ee, 0x0005, 0x900e, 0x0156, 0x20a9, 0x0006, 0x8003,
+	0x2011, 0x0100, 0x2214, 0x9296, 0x0008, 0x1110, 0x818d, 0x0010,
+	0x81f5, 0x3e08, 0x1f04, 0x7367, 0x015e, 0x0005, 0x2079, 0x0040,
+	0x2071, 0x1906, 0x7004, 0x0002, 0x7386, 0x7387, 0x73be, 0x7419,
+	0x7529, 0x7384, 0x7384, 0x7553, 0x080c, 0x0db8, 0x0005, 0x2079,
+	0x0040, 0x782c, 0x908c, 0x0780, 0x190c, 0x79bf, 0xd0a4, 0x01f0,
+	0x7824, 0x2048, 0x9006, 0xa802, 0xa806, 0xa864, 0x9084, 0x00ff,
+	0x908a, 0x0040, 0x0608, 0x00b8, 0x2001, 0x1800, 0x200c, 0x9186,
+	0x0003, 0x1160, 0x7104, 0x9186, 0x0004, 0x0140, 0x9186, 0x0007,
+	0x0128, 0x9186, 0x0003, 0x19e8, 0x080c, 0x7419, 0x782c, 0xd09c,
+	0x090c, 0x78dd, 0x0005, 0x9082, 0x005a, 0x1218, 0x2100, 0x003b,
+	0x0c18, 0x080c, 0x744f, 0x0c90, 0x00e3, 0x08f0, 0x0005, 0x744f,
+	0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x7471,
+	0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f,
+	0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f,
+	0x744f, 0x744f, 0x744f, 0x745b, 0x744f, 0x7644, 0x744f, 0x744f,
+	0x744f, 0x744f, 0x744f, 0x745b, 0x7685, 0x76c6, 0x770d, 0x7721,
+	0x744f, 0x744f, 0x7471, 0x745b, 0x7485, 0x744f, 0x74fd, 0x77cc,
+	0x77e7, 0x744f, 0x7471, 0x744f, 0x7485, 0x744f, 0x744f, 0x74f3,
+	0x77e7, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f,
+	0x744f, 0x744f, 0x7499, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f,
+	0x744f, 0x744f, 0x744f, 0x744f, 0x7963, 0x744f, 0x790d, 0x744f,
+	0x790d, 0x744f, 0x74ae, 0x744f, 0x744f, 0x744f, 0x744f, 0x744f,
+	0x744f, 0x2079, 0x0040, 0x7004, 0x9086, 0x0003, 0x1198, 0x782c,
+	0x080c, 0x7906, 0xd0a4, 0x0170, 0x7824, 0x2048, 0x9006, 0xa802,
+	0xa806, 0xa864, 0x9084, 0x00ff, 0x908a, 0x001a, 0x1210, 0x002b,
+	0x0c50, 0x00e9, 0x080c, 0x78dd, 0x0005, 0x744f, 0x745b, 0x7630,
+	0x744f, 0x745b, 0x744f, 0x745b, 0x745b, 0x744f, 0x745b, 0x7630,
+	0x745b, 0x745b, 0x745b, 0x745b, 0x745b, 0x744f, 0x745b, 0x7630,
+	0x744f, 0x744f, 0x745b, 0x744f, 0x744f, 0x744f, 0x745b, 0x00e6,
+	0x2071, 0x1906, 0x2009, 0x0400, 0x0071, 0x00ee, 0x0005, 0x2009,
+	0x1000, 0x0049, 0x0005, 0x2009, 0x2000, 0x0029, 0x0005, 0x2009,
+	0x0800, 0x0009, 0x0005, 0x7007, 0x0001, 0xa868, 0x9084, 0x00ff,
+	0x9105, 0xa86a, 0x0126, 0x2091, 0x8000, 0x080c, 0x68e7, 0x012e,
+	0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0d08, 0x8001, 0x1120,
+	0x7007, 0x0001, 0x0804, 0x75d2, 0x7007, 0x0003, 0x7012, 0x2900,
+	0x7016, 0x701a, 0x704b, 0x75d2, 0x0005, 0xa864, 0x8007, 0x9084,
+	0x00ff, 0x0968, 0x8001, 0x1120, 0x7007, 0x0001, 0x0804, 0x75ed,
+	0x7007, 0x0003, 0x7012, 0x2900, 0x7016, 0x701a, 0x704b, 0x75ed,
+	0x0005, 0xa864, 0x8007, 0x9084, 0x00ff, 0x0904, 0x7457, 0x8001,
+	0x1120, 0x7007, 0x0001, 0x0804, 0x7609, 0x7007, 0x0003, 0x7012,
+	0x2900, 0x7016, 0x701a, 0x704b, 0x7609, 0x0005, 0xa864, 0x8007,
+	0x9084, 0x00ff, 0x9086, 0x0001, 0x1904, 0x7457, 0x7007, 0x0001,
+	0x2009, 0x1833, 0x210c, 0x81ff, 0x11a8, 0xa868, 0x9084, 0x00ff,
+	0xa86a, 0xa883, 0x0000, 0x080c, 0x5f31, 0x1108, 0x0005, 0x0126,
+	0x2091, 0x8000, 0xa867, 0x0139, 0xa87a, 0xa982, 0x080c, 0x68e7,
+	0x012e, 0x0ca0, 0xa994, 0x9186, 0x0071, 0x0d38, 0x9186, 0x0064,
+	0x0d20, 0x9186, 0x007c, 0x0d08, 0x9186, 0x0028, 0x09f0, 0x9186,
+	0x0038, 0x09d8, 0x9186, 0x0078, 0x09c0, 0x9186, 0x005f, 0x09a8,
+	0x9186, 0x0056, 0x0990, 0xa897, 0x4005, 0xa89b, 0x0001, 0x2001,
+	0x0030, 0x900e, 0x08a0, 0xa87c, 0x9084, 0x00c0, 0x9086, 0x00c0,
+	0x1120, 0x7007, 0x0001, 0x0804, 0x77fe, 0x2900, 0x7016, 0x701a,
+	0x20a9, 0x0004, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0030, 0x2098,
+	0x7050, 0x2040, 0xa060, 0x20e8, 0xa05c, 0x9080, 0x0023, 0x20a0,
+	0x4003, 0xa888, 0x7012, 0x9082, 0x0401, 0x1a04, 0x745f, 0xaab4,
+	0x928a, 0x0002, 0x1a04, 0x745f, 0x82ff, 0x1138, 0xa8b8, 0xa9bc,
+	0x9105, 0x0118, 0x2001, 0x7590, 0x0018, 0x9280, 0x7586, 0x2005,
+	0x7056, 0x7010, 0x9015, 0x0904, 0x7571, 0x080c, 0x0fe6, 0x1118,
+	0x7007, 0x0004, 0x0005, 0x2900, 0x7022, 0x7054, 0x2060, 0xe000,
+	0xa866, 0x7050, 0x2040, 0xa95c, 0xe004, 0x9100, 0xa076, 0xa860,
+	0xa072, 0xe008, 0x920a, 0x1210, 0x900e, 0x2200, 0x7112, 0xe20c,
+	0x8003, 0x800b, 0x9296, 0x0004, 0x0108, 0x9108, 0xa17a, 0x810b,
+	0xa17e, 0x080c, 0x10ad, 0xa06c, 0x908e, 0x0100, 0x0170, 0x9086,
+	0x0200, 0x0118, 0x7007, 0x0007, 0x0005, 0x7020, 0x2048, 0x080c,
+	0x0fff, 0x7014, 0x2048, 0x0804, 0x745f, 0x7020, 0x2048, 0x7018,
+	0xa802, 0xa807, 0x0000, 0x2908, 0x2048, 0xa906, 0x711a, 0x0804,
+	0x7529, 0x7014, 0x2048, 0x7007, 0x0001, 0xa8b4, 0x9005, 0x1128,
+	0xa8b8, 0xa9bc, 0x9105, 0x0108, 0x00b9, 0xa864, 0x9084, 0x00ff,
+	0x9086, 0x001e, 0x0904, 0x77fe, 0x0804, 0x75d2, 0x7588, 0x758c,
+	0x0002, 0x001d, 0x0007, 0x0004, 0x000a, 0x001b, 0x0005, 0x0006,
+	0x000a, 0x001d, 0x0005, 0x0004, 0x0076, 0x0066, 0xafb8, 0xaebc,
+	0xa804, 0x2050, 0xb0c0, 0xb0e2, 0xb0bc, 0xb0de, 0xb0b8, 0xb0d2,
+	0xb0b4, 0xb0ce, 0xb6da, 0xb7d6, 0xb0b0, 0xb0ca, 0xb0ac, 0xb0c6,
+	0xb0a8, 0xb0ba, 0xb0a4, 0xb0b6, 0xb6c2, 0xb7be, 0xb0a0, 0xb0b2,
+	0xb09c, 0xb0ae, 0xb098, 0xb0a2, 0xb094, 0xb09e, 0xb6aa, 0xb7a6,
+	0xb090, 0xb09a, 0xb08c, 0xb096, 0xb088, 0xb08a, 0xb084, 0xb086,
+	0xb692, 0xb78e, 0xb080, 0xb082, 0xb07c, 0xb07e, 0xb078, 0xb072,
+	0xb074, 0xb06e, 0xb67a, 0xb776, 0xb004, 0x9055, 0x1958, 0x006e,
+	0x007e, 0x0005, 0x2009, 0x1833, 0x210c, 0x81ff, 0x1178, 0x080c,
+	0x5d3d, 0x1108, 0x0005, 0x080c, 0x6b26, 0x0126, 0x2091, 0x8000,
+	0x080c, 0xc8af, 0x080c, 0x68e7, 0x012e, 0x0ca0, 0x080c, 0xcca3,
+	0x1d70, 0x2001, 0x0028, 0x900e, 0x0c70, 0x2009, 0x1833, 0x210c,
+	0x81ff, 0x1188, 0xa888, 0x9005, 0x0188, 0xa883, 0x0000, 0x080c,
+	0x5dcc, 0x1108, 0x0005, 0xa87a, 0x0126, 0x2091, 0x8000, 0x080c,
+	0x68e7, 0x012e, 0x0cb8, 0x2001, 0x0028, 0x0ca8, 0x2001, 0x0000,
+	0x0c90, 0x2009, 0x1833, 0x210c, 0x81ff, 0x11d8, 0xa888, 0x9005,
+	0x01e0, 0xa883, 0x0000, 0xa87c, 0xd0f4, 0x0120, 0x080c, 0x5e93,
+	0x1138, 0x0005, 0x9006, 0xa87a, 0x080c, 0x5e19, 0x1108, 0x0005,
+	0x0126, 0x2091, 0x8000, 0xa87a, 0xa982, 0x080c, 0x68e7, 0x012e,
+	0x0cb0, 0x2001, 0x0028, 0x900e, 0x0c98, 0x2001, 0x0000, 0x0c80,
+	0x7018, 0xa802, 0x2908, 0x2048, 0xa906, 0x711a, 0x7010, 0x8001,
+	0x7012, 0x0118, 0x7007, 0x0003, 0x0030, 0x7014, 0x2048, 0x7007,
+	0x0001, 0x7048, 0x080f, 0x0005, 0x00b6, 0x7007, 0x0001, 0xa974,
+	0xa878, 0x9084, 0x00ff, 0x9096, 0x0004, 0x0540, 0x20a9, 0x0001,
+	0x9096, 0x0001, 0x0190, 0x900e, 0x20a9, 0x0800, 0x9096, 0x0002,
+	0x0160, 0x9005, 0x11d8, 0xa974, 0x080c, 0x6274, 0x11b8, 0x0066,
+	0xae80, 0x080c, 0x6384, 0x006e, 0x0088, 0x0046, 0x2011, 0x180c,
+	0x2224, 0xc484, 0x2412, 0x004e, 0x00c6, 0x080c, 0x6274, 0x1110,
+	0x080c, 0x6484, 0x8108, 0x1f04, 0x766d, 0x00ce, 0xa87c, 0xd084,
+	0x1120, 0x080c, 0x0fff, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x68e7, 0x012e, 0x00be, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x7007, 0x0001, 0x080c, 0x65d4, 0x0580, 0x2061, 0x1a7b, 0x6100,
+	0xd184, 0x0178, 0xa888, 0x9084, 0x00ff, 0x1550, 0x6000, 0xd084,
+	0x0520, 0x6004, 0x9005, 0x1538, 0x6003, 0x0000, 0x600b, 0x0000,
+	0x00c8, 0x2011, 0x0001, 0xa890, 0x9005, 0x1110, 0x2001, 0x001e,
+	0x8000, 0x6016, 0xa888, 0x9084, 0x00ff, 0x0178, 0x6006, 0xa888,
+	0x8007, 0x9084, 0x00ff, 0x0148, 0x600a, 0xa888, 0x8000, 0x1108,
+	0xc28d, 0x6202, 0x012e, 0x0804, 0x78c7, 0x012e, 0x0804, 0x78c1,
+	0x012e, 0x0804, 0x78bb, 0x012e, 0x0804, 0x78be, 0x0126, 0x2091,
+	0x8000, 0x7007, 0x0001, 0x080c, 0x65d4, 0x05e0, 0x2061, 0x1a7b,
+	0x6000, 0xd084, 0x05b8, 0x6204, 0x6308, 0xd08c, 0x1530, 0xac78,
+	0x9484, 0x0003, 0x0170, 0xa988, 0x918c, 0x00ff, 0x8001, 0x1120,
+	0x2100, 0x9210, 0x0620, 0x0028, 0x8001, 0x1508, 0x2100, 0x9212,
+	0x02f0, 0x9484, 0x000c, 0x0188, 0xa988, 0x810f, 0x918c, 0x00ff,
+	0x9082, 0x0004, 0x1120, 0x2100, 0x9318, 0x0288, 0x0030, 0x9082,
+	0x0004, 0x1168, 0x2100, 0x931a, 0x0250, 0xa890, 0x9005, 0x0110,
+	0x8000, 0x6016, 0x6206, 0x630a, 0x012e, 0x0804, 0x78c7, 0x012e,
+	0x0804, 0x78c4, 0x012e, 0x0804, 0x78c1, 0x0126, 0x2091, 0x8000,
+	0x7007, 0x0001, 0x2061, 0x1a7b, 0x6300, 0xd38c, 0x1120, 0x6308,
+	0x8318, 0x0220, 0x630a, 0x012e, 0x0804, 0x78d5, 0x012e, 0x0804,
+	0x78c4, 0x00b6, 0x0126, 0x00c6, 0x2091, 0x8000, 0x7007, 0x0001,
+	0xa87c, 0xd0ac, 0x0148, 0x00c6, 0x2061, 0x1a7b, 0x6000, 0x9084,
+	0xfcff, 0x6002, 0x00ce, 0x0440, 0xa888, 0x9005, 0x05d8, 0xa88c,
+	0x9065, 0x0598, 0x2001, 0x1833, 0x2004, 0x9005, 0x0118, 0x080c,
+	0xa99c, 0x0068, 0x6017, 0xf400, 0x605b, 0x0000, 0xa97c, 0xd1a4,
+	0x0110, 0xa980, 0x615a, 0x2009, 0x0041, 0x080c, 0xa9e6, 0xa988,
+	0x918c, 0xff00, 0x9186, 0x2000, 0x1138, 0x0026, 0x900e, 0x2011,
+	0xfdff, 0x080c, 0x82bd, 0x002e, 0xa87c, 0xd0c4, 0x0148, 0x2061,
+	0x1a7b, 0x6000, 0xd08c, 0x1120, 0x6008, 0x8000, 0x0208, 0x600a,
+	0x00ce, 0x012e, 0x00be, 0x0804, 0x78c7, 0x00ce, 0x012e, 0x00be,
+	0x0804, 0x78c1, 0xa984, 0x9186, 0x002e, 0x0d30, 0x9186, 0x002d,
+	0x0d18, 0x9186, 0x0045, 0x0510, 0x9186, 0x002a, 0x1130, 0x2001,
+	0x180c, 0x200c, 0xc194, 0x2102, 0x08b8, 0x9186, 0x0020, 0x0158,
+	0x9186, 0x0029, 0x1d10, 0xa974, 0x080c, 0x6274, 0x1968, 0xb800,
+	0xc0e4, 0xb802, 0x0848, 0xa88c, 0x9065, 0x09b8, 0x6007, 0x0024,
+	0x2001, 0x1990, 0x2004, 0x601a, 0x0804, 0x775c, 0xa88c, 0x9065,
+	0x0960, 0x00e6, 0xa890, 0x9075, 0x2001, 0x1833, 0x2004, 0x9005,
+	0x0150, 0x080c, 0xa99c, 0x8eff, 0x0118, 0x2e60, 0x080c, 0xa99c,
+	0x00ee, 0x0804, 0x775c, 0x6024, 0xc0dc, 0xc0d5, 0x6026, 0x2e60,
+	0x6007, 0x003a, 0xa8a0, 0x9005, 0x0130, 0x6007, 0x003b, 0xa8a4,
+	0x602e, 0xa8a8, 0x6016, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x00ee, 0x0804, 0x775c, 0x2061, 0x1a7b, 0x6000, 0xd084,
+	0x0190, 0xd08c, 0x1904, 0x78d5, 0x0126, 0x2091, 0x8000, 0x6204,
+	0x8210, 0x0220, 0x6206, 0x012e, 0x0804, 0x78d5, 0x012e, 0xa883,
+	0x0016, 0x0804, 0x78ce, 0xa883, 0x0007, 0x0804, 0x78ce, 0xa864,
+	0x8007, 0x9084, 0x00ff, 0x0130, 0x8001, 0x1138, 0x7007, 0x0001,
+	0x0069, 0x0005, 0x080c, 0x7457, 0x0040, 0x7007, 0x0003, 0x7012,
+	0x2900, 0x7016, 0x701a, 0x704b, 0x77fe, 0x0005, 0x00b6, 0x00e6,
+	0x0126, 0x2091, 0x8000, 0x903e, 0x2061, 0x1800, 0x61cc, 0x81ff,
+	0x1904, 0x7880, 0x6130, 0xd194, 0x1904, 0x78aa, 0xa878, 0x2070,
+	0x9e82, 0x1cd0, 0x0a04, 0x7874, 0x6060, 0x9e02, 0x1a04, 0x7874,
+	0x7120, 0x9186, 0x0006, 0x1904, 0x7866, 0x7010, 0x905d, 0x0904,
+	0x7880, 0xb800, 0xd0e4, 0x1904, 0x78a4, 0x2061, 0x1a7b, 0x6100,
+	0x9184, 0x0301, 0x9086, 0x0001, 0x15a0, 0x7024, 0xd0dc, 0x1904,
+	0x78ad, 0xa883, 0x0000, 0xa803, 0x0000, 0x2908, 0x7014, 0x9005,
+	0x1198, 0x7116, 0xa87c, 0xd0f4, 0x1904, 0x78b0, 0x080c, 0x53a3,
+	0xd09c, 0x1118, 0xa87c, 0xc0cc, 0xa87e, 0x2e60, 0x080c, 0x81dd,
+	0x012e, 0x00ee, 0x00be, 0x0005, 0x2048, 0xa800, 0x9005, 0x1de0,
+	0xa902, 0x2148, 0xa87c, 0xd0f4, 0x1904, 0x78b0, 0x012e, 0x00ee,
+	0x00be, 0x0005, 0x012e, 0x00ee, 0xa883, 0x0006, 0x00be, 0x0804,
+	0x78ce, 0xd184, 0x0db8, 0xd1c4, 0x1190, 0x00a0, 0xa974, 0x080c,
+	0x6274, 0x15d0, 0xb800, 0xd0e4, 0x15b8, 0x7120, 0x9186, 0x0007,
+	0x1118, 0xa883, 0x0002, 0x0490, 0xa883, 0x0008, 0x0478, 0xa883,
+	0x000e, 0x0460, 0xa883, 0x0017, 0x0448, 0xa883, 0x0035, 0x0430,
+	0x080c, 0x53a7, 0xd0fc, 0x01e8, 0xa878, 0x2070, 0x9e82, 0x1cd0,
+	0x02c0, 0x6060, 0x9e02, 0x12a8, 0x7120, 0x9186, 0x0006, 0x1188,
+	0x7010, 0x905d, 0x0170, 0xb800, 0xd0bc, 0x0158, 0x2039, 0x0001,
+	0x7000, 0x9086, 0x0007, 0x1904, 0x780a, 0x7003, 0x0002, 0x0804,
+	0x780a, 0xa883, 0x0028, 0x0010, 0xa883, 0x0029, 0x012e, 0x00ee,
+	0x00be, 0x0420, 0xa883, 0x002a, 0x0cc8, 0xa883, 0x0045, 0x0cb0,
+	0x2e60, 0x2019, 0x0002, 0x601b, 0x0014, 0x080c, 0xdb41, 0x012e,
+	0x00ee, 0x00be, 0x0005, 0x2009, 0x003e, 0x0058, 0x2009, 0x0004,
+	0x0040, 0x2009, 0x0006, 0x0028, 0x2009, 0x0016, 0x0010, 0x2009,
+	0x0001, 0xa884, 0x9084, 0xff00, 0x9105, 0xa886, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x68e7, 0x012e, 0x0005, 0x080c, 0x0fff, 0x0005,
+	0x00d6, 0x080c, 0x81d4, 0x00de, 0x0005, 0x00d6, 0x00e6, 0x0126,
+	0x2091, 0x8000, 0x2071, 0x0040, 0x702c, 0xd084, 0x01d8, 0x908c,
+	0x0780, 0x190c, 0x79bf, 0xd09c, 0x11a8, 0x2071, 0x1800, 0x70bc,
+	0x90ea, 0x0020, 0x0278, 0x8001, 0x70be, 0x702c, 0x2048, 0xa800,
+	0x702e, 0x9006, 0xa802, 0xa806, 0x2071, 0x0040, 0x2900, 0x7022,
+	0x702c, 0x0c28, 0x012e, 0x00ee, 0x00de, 0x0005, 0x0006, 0x9084,
+	0x0780, 0x190c, 0x79bf, 0x000e, 0x0005, 0xa898, 0x9084, 0x0003,
+	0x05a8, 0x080c, 0xa915, 0x05d8, 0x2900, 0x6016, 0xa864, 0x9084,
+	0x00ff, 0x9086, 0x0035, 0x1138, 0x6008, 0xc0fd, 0x600a, 0x2001,
+	0x1977, 0x2004, 0x0098, 0xa8a0, 0x9084, 0x00ff, 0xa99c, 0x918c,
+	0xff00, 0x9105, 0xa99c, 0x918c, 0x00ff, 0x080c, 0x2624, 0x1540,
+	0x00b6, 0x080c, 0x6274, 0x2b00, 0x00be, 0x1510, 0x6012, 0x6023,
+	0x0001, 0x2009, 0x0040, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0035,
+	0x0110, 0x2009, 0x0041, 0x080c, 0xa9e6, 0x0005, 0xa87b, 0x0101,
+	0x0126, 0x2091, 0x8000, 0x080c, 0x68e7, 0x012e, 0x0005, 0xa87b,
+	0x002c, 0x0126, 0x2091, 0x8000, 0x080c, 0x68e7, 0x012e, 0x0005,
+	0xa87b, 0x0028, 0x0126, 0x2091, 0x8000, 0x080c, 0x68e7, 0x012e,
+	0x080c, 0xa96b, 0x0005, 0x00d6, 0x00c6, 0x0036, 0x0026, 0x0016,
+	0x00b6, 0x7007, 0x0001, 0xaa74, 0x9282, 0x0004, 0x1a04, 0x79b0,
+	0xa97c, 0x9188, 0x1000, 0x2104, 0x905d, 0xb804, 0xd284, 0x0140,
+	0x05e8, 0x8007, 0x9084, 0x00ff, 0x9084, 0x0006, 0x1108, 0x04b0,
+	0x2b10, 0x080c, 0xa915, 0x1118, 0x080c, 0xa9b9, 0x05a8, 0x6212,
+	0xa874, 0x0002, 0x798e, 0x7993, 0x7996, 0x799c, 0x2019, 0x0002,
+	0x080c, 0xdf1d, 0x0060, 0x080c, 0xdeb9, 0x0048, 0x2019, 0x0002,
+	0xa980, 0x080c, 0xded4, 0x0018, 0xa980, 0x080c, 0xdeb9, 0x080c,
+	0xa96b, 0xa887, 0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x68e7,
+	0x012e, 0x00be, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00de, 0x0005,
+	0xa887, 0x0006, 0x0c80, 0xa887, 0x0002, 0x0c68, 0xa887, 0x0005,
+	0x0c50, 0xa887, 0x0004, 0x0c38, 0xa887, 0x0007, 0x0c20, 0x2091,
+	0x8000, 0x0e04, 0x79c1, 0x0006, 0x0016, 0x2001, 0x8003, 0x0006,
+	0x0804, 0x0dc1, 0x0005, 0x00f6, 0x2079, 0x0300, 0x2001, 0x0200,
+	0x200c, 0xc1e5, 0xc1dc, 0x2102, 0x2009, 0x0218, 0x210c, 0xd1ec,
+	0x1120, 0x080c, 0x151b, 0x00fe, 0x0005, 0x2001, 0x020d, 0x2003,
+	0x0020, 0x781f, 0x0300, 0x00fe, 0x0005, 0x781c, 0xd08c, 0x0904,
+	0x7a2b, 0x68bc, 0x90aa, 0x0005, 0x0a04, 0x8013, 0x7d44, 0x7c40,
+	0x9584, 0x00f6, 0x1508, 0x9484, 0x7000, 0x0138, 0x908a, 0x2000,
+	0x1258, 0x9584, 0x0700, 0x8007, 0x04a8, 0x7000, 0x9084, 0xff00,
+	0x9086, 0x8100, 0x0db0, 0x00b0, 0x9484, 0x0fff, 0x1130, 0x7000,
+	0x9084, 0xff00, 0x9086, 0x8100, 0x11c0, 0x080c, 0xe38d, 0x080c,
+	0x7f08, 0x7817, 0x0140, 0x00a8, 0x9584, 0x0076, 0x1118, 0x080c,
+	0x7f66, 0x19c8, 0xd5a4, 0x0148, 0x0046, 0x0056, 0x080c, 0x7a8d,
+	0x080c, 0x211d, 0x005e, 0x004e, 0x0020, 0x080c, 0xe38d, 0x7817,
+	0x0140, 0x080c, 0x7a6e, 0x2001, 0x19fa, 0x2004, 0x9005, 0x090c,
+	0x922b, 0x0005, 0x0002, 0x7a44, 0x7d29, 0x7a3b, 0x7a3b, 0x7a3b,
+	0x7a3b, 0x7a3b, 0x7a3b, 0x7817, 0x0140, 0x2001, 0x19fa, 0x2004,
+	0x9005, 0x090c, 0x922b, 0x0005, 0x7000, 0x908c, 0xff00, 0x9194,
+	0xf000, 0x810f, 0x9484, 0x0fff, 0x688a, 0x9286, 0x2000, 0x1150,
+	0x6800, 0x9086, 0x0001, 0x1118, 0x080c, 0x53c7, 0x0070, 0x080c,
+	0x7aad, 0x0058, 0x9286, 0x3000, 0x1118, 0x080c, 0x7c64, 0x0028,
+	0x9286, 0x8000, 0x1110, 0x080c, 0x7e38, 0x7817, 0x0140, 0x2001,
+	0x19fa, 0x2004, 0x9005, 0x090c, 0x922b, 0x0005, 0x2001, 0x180f,
+	0x2004, 0xd08c, 0x0178, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003,
+	0x1148, 0x0026, 0x0036, 0x2011, 0x8048, 0x2518, 0x080c, 0x47db,
+	0x003e, 0x002e, 0x0005, 0x0036, 0x0046, 0x0056, 0x00f6, 0x2079,
+	0x0200, 0x2019, 0xfffe, 0x7c30, 0x0050, 0x0036, 0x0046, 0x0056,
+	0x00f6, 0x2079, 0x0200, 0x7d44, 0x7c40, 0x2019, 0xffff, 0x2001,
+	0x180f, 0x2004, 0xd08c, 0x0160, 0x2001, 0x1800, 0x2004, 0x9086,
+	0x0003, 0x1130, 0x0026, 0x2011, 0x8048, 0x080c, 0x47db, 0x002e,
+	0x00fe, 0x005e, 0x004e, 0x003e, 0x0005, 0x00b6, 0x00c6, 0x7010,
+	0x9084, 0xff00, 0x8007, 0x9096, 0x0001, 0x0120, 0x9096, 0x0023,
+	0x1904, 0x7c35, 0x9186, 0x0023, 0x15c0, 0x080c, 0x7ecd, 0x0904,
+	0x7c35, 0x6120, 0x9186, 0x0001, 0x0150, 0x9186, 0x0004, 0x0138,
+	0x9186, 0x0008, 0x0120, 0x9186, 0x000a, 0x1904, 0x7c35, 0x7124,
+	0x610a, 0x7030, 0x908e, 0x0200, 0x1130, 0x2009, 0x0015, 0x080c,
+	0xa9e6, 0x0804, 0x7c35, 0x908e, 0x0214, 0x0118, 0x908e, 0x0210,
+	0x1130, 0x2009, 0x0015, 0x080c, 0xa9e6, 0x0804, 0x7c35, 0x908e,
+	0x0100, 0x1904, 0x7c35, 0x7034, 0x9005, 0x1904, 0x7c35, 0x2009,
+	0x0016, 0x080c, 0xa9e6, 0x0804, 0x7c35, 0x9186, 0x0022, 0x1904,
+	0x7c35, 0x7030, 0x908e, 0x0300, 0x1580, 0x68d8, 0xd0a4, 0x0528,
+	0xc0b5, 0x68da, 0x7100, 0x918c, 0x00ff, 0x6976, 0x7004, 0x687a,
+	0x00f6, 0x2079, 0x0100, 0x79e6, 0x78ea, 0x0006, 0x9084, 0x00ff,
+	0x0016, 0x2008, 0x080c, 0x266d, 0x7932, 0x7936, 0x001e, 0x000e,
+	0x00fe, 0x080c, 0x2624, 0x6956, 0x703c, 0x00e6, 0x2071, 0x0140,
+	0x7086, 0x2071, 0x1800, 0x70ae, 0x00ee, 0x7034, 0x9005, 0x1904,
+	0x7c35, 0x2009, 0x0017, 0x0804, 0x7c02, 0x908e, 0x0400, 0x1190,
+	0x7034, 0x9005, 0x1904, 0x7c35, 0x080c, 0x7018, 0x0120, 0x2009,
+	0x001d, 0x0804, 0x7c02, 0x68d8, 0xc0a5, 0x68da, 0x2009, 0x0030,
+	0x0804, 0x7c02, 0x908e, 0x0500, 0x1140, 0x7034, 0x9005, 0x1904,
+	0x7c35, 0x2009, 0x0018, 0x0804, 0x7c02, 0x908e, 0x2010, 0x1120,
+	0x2009, 0x0019, 0x0804, 0x7c02, 0x908e, 0x2110, 0x1120, 0x2009,
+	0x001a, 0x0804, 0x7c02, 0x908e, 0x5200, 0x1140, 0x7034, 0x9005,
+	0x1904, 0x7c35, 0x2009, 0x001b, 0x0804, 0x7c02, 0x908e, 0x5000,
+	0x1140, 0x7034, 0x9005, 0x1904, 0x7c35, 0x2009, 0x001c, 0x0804,
+	0x7c02, 0x908e, 0x1300, 0x1120, 0x2009, 0x0034, 0x0804, 0x7c02,
+	0x908e, 0x1200, 0x1140, 0x7034, 0x9005, 0x1904, 0x7c35, 0x2009,
+	0x0024, 0x0804, 0x7c02, 0x908c, 0xff00, 0x918e, 0x2400, 0x1120,
+	0x2009, 0x002d, 0x0804, 0x7c02, 0x908c, 0xff00, 0x918e, 0x5300,
+	0x1120, 0x2009, 0x002a, 0x0804, 0x7c02, 0x908e, 0x0f00, 0x1120,
+	0x2009, 0x0020, 0x0804, 0x7c02, 0x908e, 0x5300, 0x1108, 0x00e0,
+	0x908e, 0x6104, 0x11c8, 0x2011, 0x026d, 0x8208, 0x2204, 0x9082,
+	0x0004, 0x8004, 0x8004, 0x20a8, 0x2011, 0x8015, 0x211c, 0x8108,
+	0x0046, 0x2124, 0x080c, 0x47db, 0x004e, 0x8108, 0x1f04, 0x7bac,
+	0x2009, 0x0023, 0x0804, 0x7c02, 0x908e, 0x6000, 0x1120, 0x2009,
+	0x003f, 0x0804, 0x7c02, 0x908e, 0x5400, 0x1138, 0x080c, 0x7fc3,
+	0x1904, 0x7c35, 0x2009, 0x0046, 0x04a8, 0x908e, 0x5500, 0x1148,
+	0x080c, 0x7feb, 0x1118, 0x2009, 0x0041, 0x0460, 0x2009, 0x0042,
+	0x0448, 0x908e, 0x7800, 0x1118, 0x2009, 0x0045, 0x0418, 0x908e,
+	0x1000, 0x1118, 0x2009, 0x004e, 0x00e8, 0x908e, 0x6300, 0x1118,
+	0x2009, 0x004a, 0x00b8, 0x908c, 0xff00, 0x918e, 0x5600, 0x1118,
+	0x2009, 0x004f, 0x0078, 0x908c, 0xff00, 0x918e, 0x5700, 0x1118,
+	0x2009, 0x0050, 0x0038, 0x2009, 0x001d, 0x6834, 0xd0d4, 0x0110,
+	0x2009, 0x004c, 0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c,
+	0x080c, 0x2624, 0x1568, 0x080c, 0x6213, 0x1550, 0xbe12, 0xbd16,
+	0x001e, 0x0016, 0xb8c0, 0x9005, 0x1168, 0x9186, 0x0046, 0x1150,
+	0x6874, 0x9606, 0x1138, 0x6878, 0x9506, 0x9084, 0xff00, 0x1110,
+	0x001e, 0x0098, 0x080c, 0xa915, 0x01a8, 0x2b08, 0x6112, 0x6023,
+	0x0004, 0x7120, 0x610a, 0x001e, 0x9186, 0x004c, 0x1110, 0x6023,
+	0x000a, 0x0016, 0x001e, 0x080c, 0xa9e6, 0x00ce, 0x00be, 0x0005,
+	0x001e, 0x0cd8, 0x2001, 0x180d, 0x2004, 0xd0ec, 0x0120, 0x2011,
+	0x8049, 0x080c, 0x47db, 0x080c, 0xa9b9, 0x0d90, 0x2b08, 0x6112,
+	0x6023, 0x0004, 0x7120, 0x610a, 0x001e, 0x0016, 0x9186, 0x0017,
+	0x0118, 0x9186, 0x0030, 0x1128, 0x6007, 0x0009, 0x6017, 0x2900,
+	0x0020, 0x6007, 0x0051, 0x6017, 0x0000, 0x602f, 0x0009, 0x6003,
+	0x0001, 0x080c, 0x8ce9, 0x08a0, 0x080c, 0x30b8, 0x1140, 0x7010,
+	0x9084, 0xff00, 0x8007, 0x908e, 0x0008, 0x1108, 0x0009, 0x0005,
+	0x00b6, 0x00c6, 0x0046, 0x7000, 0x908c, 0xff00, 0x810f, 0x9186,
+	0x0033, 0x11e8, 0x080c, 0x7ecd, 0x0904, 0x7cc1, 0x7124, 0x610a,
+	0x7030, 0x908e, 0x0200, 0x1140, 0x7034, 0x9005, 0x15d0, 0x2009,
+	0x0015, 0x080c, 0xa9e6, 0x04a8, 0x908e, 0x0100, 0x1590, 0x7034,
+	0x9005, 0x1578, 0x2009, 0x0016, 0x080c, 0xa9e6, 0x0450, 0x9186,
+	0x0032, 0x1538, 0x7030, 0x908e, 0x1400, 0x1518, 0x2009, 0x0038,
+	0x0016, 0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2624,
+	0x11b8, 0x080c, 0x6213, 0x11a0, 0xbe12, 0xbd16, 0x080c, 0xa915,
+	0x0178, 0x2b08, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0004, 0x7120,
+	0x610a, 0x001e, 0x080c, 0xa9e6, 0x080c, 0x922b, 0x0010, 0x00ce,
+	0x001e, 0x004e, 0x00ce, 0x00be, 0x0005, 0x00b6, 0x0046, 0x00e6,
+	0x00d6, 0x2028, 0x2130, 0x9696, 0x00ff, 0x11b8, 0x9592, 0xfffc,
+	0x02a0, 0x9596, 0xfffd, 0x1120, 0x2009, 0x007f, 0x0804, 0x7d23,
+	0x9596, 0xfffe, 0x1120, 0x2009, 0x007e, 0x0804, 0x7d23, 0x9596,
+	0xfffc, 0x1118, 0x2009, 0x0080, 0x04f0, 0x2011, 0x0000, 0x2019,
+	0x1836, 0x231c, 0xd3ac, 0x0130, 0x9026, 0x20a9, 0x0800, 0x2071,
+	0x1000, 0x0030, 0x2021, 0x0081, 0x20a9, 0x077f, 0x2071, 0x1081,
+	0x2e1c, 0x93dd, 0x0000, 0x1140, 0x82ff, 0x11d0, 0x9496, 0x00ff,
+	0x01b8, 0x2410, 0xc2fd, 0x00a0, 0xbf10, 0x2600, 0x9706, 0xb814,
+	0x1120, 0x9546, 0x1110, 0x2408, 0x00b0, 0x9745, 0x1148, 0x94c6,
+	0x007e, 0x0130, 0x94c6, 0x007f, 0x0118, 0x94c6, 0x0080, 0x1d20,
+	0x8420, 0x8e70, 0x1f04, 0x7cf8, 0x82ff, 0x1118, 0x9085, 0x0001,
+	0x0018, 0xc2fc, 0x2208, 0x9006, 0x00de, 0x00ee, 0x004e, 0x00be,
+	0x0005, 0x7000, 0x908c, 0xff00, 0x810f, 0x9184, 0x000f, 0x0002,
+	0x7d40, 0x7d40, 0x7d40, 0x7edf, 0x7d40, 0x7d49, 0x7d74, 0x7e03,
+	0x7d40, 0x7d40, 0x7d40, 0x7d40, 0x7d40, 0x7d40, 0x7d40, 0x7d40,
+	0x7817, 0x0140, 0x2001, 0x19fa, 0x2004, 0x9005, 0x090c, 0x922b,
+	0x0005, 0x00b6, 0x7110, 0xd1bc, 0x01e8, 0x7120, 0x2160, 0x9c8c,
+	0x0007, 0x11c0, 0x9c8a, 0x1cd0, 0x02a8, 0x6860, 0x9c02, 0x1290,
+	0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1150,
+	0x700c, 0xb914, 0x9106, 0x1130, 0x7124, 0x610a, 0x2009, 0x0046,
+	0x080c, 0xa9e6, 0x7817, 0x0140, 0x2001, 0x19fa, 0x2004, 0x9005,
+	0x090c, 0x922b, 0x00be, 0x0005, 0x00b6, 0x00c6, 0x9484, 0x0fff,
+	0x0904, 0x7dd9, 0x7110, 0xd1bc, 0x1904, 0x7dd9, 0x7108, 0x700c,
+	0x2028, 0x918c, 0x00ff, 0x2130, 0x9094, 0xff00, 0x15b8, 0x81ff,
+	0x15a8, 0x9080, 0x30f4, 0x200d, 0x918c, 0xff00, 0x810f, 0x2001,
+	0x0080, 0x9106, 0x0904, 0x7dd9, 0x080c, 0x6213, 0x1904, 0x7dd9,
+	0xbe12, 0xbd16, 0xb800, 0xd0ec, 0x15e0, 0xba04, 0x9294, 0xff00,
+	0x9286, 0x0600, 0x11a0, 0x080c, 0xa915, 0x05f0, 0x2b08, 0x7028,
+	0x604a, 0x702c, 0x6046, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a,
+	0x7130, 0x6156, 0x2009, 0x0044, 0x080c, 0xd574, 0x0410, 0x080c,
+	0x65d8, 0x2010, 0x1138, 0xb807, 0x0606, 0x0c28, 0x190c, 0x7cc5,
+	0x11c0, 0x0890, 0x080c, 0xa915, 0x2b08, 0x0198, 0x6112, 0x6023,
+	0x0004, 0x7120, 0x610a, 0x9286, 0x0004, 0x1118, 0x6007, 0x0005,
+	0x0010, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c,
+	0x922b, 0x7817, 0x0140, 0x2001, 0x19fa, 0x2004, 0x9005, 0x090c,
+	0x922b, 0x00ce, 0x00be, 0x0005, 0x2001, 0x180d, 0x2004, 0xd0ec,
+	0x0120, 0x2011, 0x8049, 0x080c, 0x47db, 0x080c, 0xa9b9, 0x0d48,
+	0x2b08, 0x6112, 0x6023, 0x0006, 0x7120, 0x610a, 0x7130, 0x6156,
+	0x6017, 0xf300, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x08b0, 0x00b6, 0x7110, 0xd1bc, 0x01e8, 0x7020,
+	0x2060, 0x9c84, 0x0007, 0x11c0, 0x9c82, 0x1cd0, 0x02a8, 0x6860,
+	0x9c02, 0x1290, 0x7008, 0x9084, 0x00ff, 0x6110, 0x2158, 0xb910,
+	0x9106, 0x1150, 0x700c, 0xb914, 0x9106, 0x1130, 0x7124, 0x610a,
+	0x2009, 0x0045, 0x080c, 0xa9e6, 0x7817, 0x0140, 0x2001, 0x19fa,
+	0x2004, 0x9005, 0x090c, 0x922b, 0x00be, 0x0005, 0x6120, 0x9186,
+	0x0002, 0x0128, 0x9186, 0x0005, 0x0110, 0x9085, 0x0001, 0x0005,
+	0x080c, 0x30b8, 0x1168, 0x7010, 0x9084, 0xff00, 0x8007, 0x9086,
+	0x0000, 0x1130, 0x9184, 0x000f, 0x908a, 0x0006, 0x1208, 0x000b,
+	0x0005, 0x7e4f, 0x7e50, 0x7e4f, 0x7e4f, 0x7eaf, 0x7ebe, 0x0005,
+	0x00b6, 0x7110, 0xd1bc, 0x0120, 0x702c, 0xd084, 0x0904, 0x7ead,
+	0x700c, 0x7108, 0x080c, 0x2624, 0x1904, 0x7ead, 0x080c, 0x6213,
+	0x1904, 0x7ead, 0xbe12, 0xbd16, 0x7110, 0xd1bc, 0x01d8, 0x080c,
+	0x65d8, 0x0118, 0x9086, 0x0004, 0x1588, 0x00c6, 0x080c, 0x7ecd,
+	0x00ce, 0x05d8, 0x080c, 0xa915, 0x2b08, 0x05b8, 0x6112, 0x080c,
+	0xca2d, 0x6023, 0x0002, 0x7120, 0x610a, 0x2009, 0x0088, 0x080c,
+	0xa9e6, 0x0458, 0x080c, 0x65d8, 0x0148, 0x9086, 0x0004, 0x0130,
+	0x080c, 0x65e0, 0x0118, 0x9086, 0x0004, 0x1180, 0x080c, 0xa915,
+	0x2b08, 0x01d8, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0005, 0x7120,
+	0x610a, 0x2009, 0x0088, 0x080c, 0xa9e6, 0x0078, 0x080c, 0xa915,
+	0x2b08, 0x0158, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0004, 0x7120,
+	0x610a, 0x2009, 0x0001, 0x080c, 0xa9e6, 0x00be, 0x0005, 0x7110,
+	0xd1bc, 0x0158, 0x00d1, 0x0148, 0x080c, 0x7e2e, 0x1130, 0x7124,
+	0x610a, 0x2009, 0x0089, 0x080c, 0xa9e6, 0x0005, 0x7110, 0xd1bc,
+	0x0158, 0x0059, 0x0148, 0x080c, 0x7e2e, 0x1130, 0x7124, 0x610a,
+	0x2009, 0x008a, 0x080c, 0xa9e6, 0x0005, 0x7020, 0x2060, 0x9c84,
+	0x0007, 0x1158, 0x9c82, 0x1cd0, 0x0240, 0x2001, 0x1818, 0x2004,
+	0x9c02, 0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x00b6,
+	0x7110, 0xd1bc, 0x11d8, 0x7024, 0x2060, 0x9c84, 0x0007, 0x11b0,
+	0x9c82, 0x1cd0, 0x0298, 0x6860, 0x9c02, 0x1280, 0x7008, 0x9084,
+	0x00ff, 0x6110, 0x2158, 0xb910, 0x9106, 0x1140, 0x700c, 0xb914,
+	0x9106, 0x1120, 0x2009, 0x0051, 0x080c, 0xa9e6, 0x7817, 0x0140,
+	0x2001, 0x19fa, 0x2004, 0x9005, 0x090c, 0x922b, 0x00be, 0x0005,
+	0x2031, 0x0105, 0x0069, 0x0005, 0x2031, 0x0206, 0x0049, 0x0005,
+	0x2031, 0x0207, 0x0029, 0x0005, 0x2031, 0x0213, 0x0009, 0x0005,
+	0x00c6, 0x0096, 0x00f6, 0x7000, 0x9084, 0xf000, 0x9086, 0xc000,
+	0x05d0, 0x080c, 0xa915, 0x05b8, 0x0066, 0x00c6, 0x0046, 0x2011,
+	0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2624, 0x15a0, 0x080c,
+	0x6213, 0x1588, 0xbe12, 0xbd16, 0x2b00, 0x004e, 0x00ce, 0x6012,
+	0x080c, 0xca2d, 0x080c, 0x0fcd, 0x0510, 0x2900, 0x605a, 0x9006,
+	0xa802, 0xa866, 0xac6a, 0xa85c, 0x90f8, 0x001b, 0x20a9, 0x000e,
+	0xa860, 0x20e8, 0x20e1, 0x0000, 0x2fa0, 0x2e98, 0x4003, 0x006e,
+	0x6616, 0x6007, 0x003e, 0x6023, 0x0001, 0x6003, 0x0001, 0x080c,
+	0x8ce9, 0x080c, 0x922b, 0x00fe, 0x009e, 0x00ce, 0x0005, 0x080c,
+	0xa96b, 0x006e, 0x0cc0, 0x004e, 0x00ce, 0x0cc8, 0x00c6, 0x7000,
+	0x908c, 0xff00, 0x9184, 0xf000, 0x810f, 0x9086, 0x2000, 0x1904,
+	0x7fbd, 0x9186, 0x0022, 0x15f0, 0x2001, 0x0111, 0x2004, 0x9005,
+	0x1904, 0x7fbf, 0x7030, 0x908e, 0x0400, 0x0904, 0x7fbf, 0x908e,
+	0x6000, 0x05e8, 0x908e, 0x5400, 0x05d0, 0x908e, 0x0300, 0x11d8,
+	0x2009, 0x1836, 0x210c, 0xd18c, 0x1590, 0xd1a4, 0x1580, 0x080c,
+	0x6596, 0x0558, 0x68a8, 0x9084, 0x00ff, 0x7100, 0x918c, 0x00ff,
+	0x9106, 0x1518, 0x6878, 0x69a8, 0x918c, 0xff00, 0x9105, 0x7104,
+	0x9106, 0x11d8, 0x00e0, 0x2009, 0x0103, 0x210c, 0xd1b4, 0x11a8,
+	0x908e, 0x5200, 0x09e8, 0x908e, 0x0500, 0x09d0, 0x908e, 0x5000,
+	0x09b8, 0x0058, 0x9186, 0x0023, 0x1140, 0x080c, 0x7ecd, 0x0128,
+	0x6004, 0x9086, 0x0002, 0x0118, 0x0000, 0x9006, 0x0010, 0x9085,
+	0x0001, 0x00ce, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038,
+	0x2020, 0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004,
+	0x2019, 0x1805, 0x2011, 0x027a, 0x080c, 0xb8e2, 0x1178, 0xd48c,
+	0x0148, 0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x027e, 0x080c,
+	0xb8e2, 0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e,
+	0x004e, 0x015e, 0x0005, 0x0156, 0x0046, 0x0016, 0x0036, 0x7038,
+	0x2020, 0x8427, 0x94a4, 0x0007, 0xd484, 0x0148, 0x20a9, 0x0004,
+	0x2019, 0x1805, 0x2011, 0x0272, 0x080c, 0xb8e2, 0x1178, 0xd48c,
+	0x0148, 0x20a9, 0x0004, 0x2019, 0x1801, 0x2011, 0x0276, 0x080c,
+	0xb8e2, 0x1120, 0xd494, 0x0110, 0x9085, 0x0001, 0x003e, 0x001e,
+	0x004e, 0x015e, 0x0005, 0x7800, 0xc0e5, 0xc0cc, 0x7802, 0x0005,
+	0x00f6, 0x2079, 0x0200, 0x7800, 0x9085, 0x1200, 0x7802, 0x00fe,
+	0x0005, 0x2071, 0x1a04, 0x7003, 0x0003, 0x700f, 0x0361, 0x9006,
+	0x701a, 0x7076, 0x7012, 0x7017, 0x1cd0, 0x7007, 0x0000, 0x7026,
+	0x702b, 0x9e14, 0x7032, 0x7037, 0x9e77, 0x703f, 0xffff, 0x7043,
+	0xffff, 0x7046, 0x704b, 0x5242, 0x704e, 0x705f, 0x818a, 0x080c,
+	0x0fe6, 0x090c, 0x0db8, 0x2900, 0x703a, 0xa867, 0x0003, 0xa86f,
+	0x0100, 0xa8ab, 0xdcb0, 0x0005, 0x2071, 0x1a04, 0x1d04, 0x80db,
+	0x2091, 0x6000, 0x700c, 0x8001, 0x700e, 0x1500, 0x2001, 0x1875,
+	0x2004, 0xd0c4, 0x0158, 0x3a00, 0xd08c, 0x1140, 0x20d1, 0x0000,
+	0x20d1, 0x0001, 0x20d1, 0x0000, 0x080c, 0x0db8, 0x700f, 0x0361,
+	0x7007, 0x0001, 0x0126, 0x2091, 0x8000, 0x7044, 0x900d, 0x0148,
+	0x8109, 0x7146, 0x1130, 0x7048, 0x080f, 0x0018, 0x0126, 0x2091,
+	0x8000, 0x7024, 0x900d, 0x0188, 0x7020, 0x8001, 0x7022, 0x1168,
+	0x7023, 0x0009, 0x8109, 0x7126, 0x9186, 0x03e8, 0x1110, 0x7028,
+	0x080f, 0x81ff, 0x1110, 0x7028, 0x080f, 0x7030, 0x900d, 0x0180,
+	0x702c, 0x8001, 0x702e, 0x1160, 0x702f, 0x0009, 0x8109, 0x7132,
+	0x0128, 0x9184, 0x007f, 0x090c, 0x9f05, 0x0010, 0x7034, 0x080f,
+	0x703c, 0x9005, 0x0118, 0x0310, 0x8001, 0x703e, 0x7040, 0x9005,
+	0x0118, 0x0310, 0x8001, 0x7042, 0x7050, 0x900d, 0x0168, 0x704c,
+	0x8001, 0x704e, 0x1148, 0x704f, 0x0009, 0x8109, 0x7152, 0x1120,
+	0x7154, 0x7152, 0x705c, 0x080f, 0x7018, 0x900d, 0x01d8, 0x0016,
+	0x7074, 0x900d, 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, 0x8103, 0x8104, 0x8120,
+	0x00e6, 0x2071, 0x1a04, 0x7018, 0x9005, 0x1120, 0x711a, 0x721e,
+	0x700b, 0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0x1a04,
+	0x701c, 0x9206, 0x1120, 0x701a, 0x701e, 0x7076, 0x707a, 0x000e,
+	0x00ee, 0x0005, 0x00e6, 0x2071, 0x1a04, 0xb888, 0x9102, 0x0208,
+	0xb98a, 0x00ee, 0x0005, 0x0005, 0x00b6, 0x7110, 0x080c, 0x6274,
+	0x1168, 0xb888, 0x8001, 0x0250, 0xb88a, 0x1140, 0x0126, 0x2091,
+	0x8000, 0x0016, 0x080c, 0x922b, 0x001e, 0x012e, 0x8108, 0x9182,
+	0x0800, 0x0218, 0x900e, 0x7007, 0x0002, 0x7112, 0x00be, 0x0005,
+	0x7014, 0x2060, 0x0126, 0x2091, 0x8000, 0x6040, 0x9005, 0x0128,
+	0x8001, 0x6042, 0x1110, 0x080c, 0xc8c6, 0x6018, 0x9005, 0x0540,
+	0x8001, 0x601a, 0x1528, 0x6120, 0x9186, 0x0003, 0x0148, 0x9186,
+	0x0006, 0x0130, 0x9186, 0x0009, 0x11c8, 0x611c, 0xd1c4, 0x1100,
+	0x6014, 0x2048, 0xa884, 0x908a, 0x199a, 0x0280, 0x9082, 0x1999,
+	0xa886, 0x908a, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x800b,
+	0x810b, 0x9108, 0x611a, 0xa87c, 0xd0e4, 0x0110, 0x080c, 0xc2ea,
+	0x012e, 0x9c88, 0x0018, 0x7116, 0x2001, 0x1818, 0x2004, 0x9102,
+	0x0220, 0x7017, 0x1cd0, 0x7007, 0x0000, 0x0005, 0x00e6, 0x2071,
+	0x1a04, 0x7027, 0x07d0, 0x7023, 0x0009, 0x00ee, 0x0005, 0x2001,
+	0x1a0d, 0x2003, 0x0000, 0x0005, 0x00e6, 0x2071, 0x1a04, 0x7132,
+	0x702f, 0x0009, 0x00ee, 0x0005, 0x2011, 0x1a10, 0x2013, 0x0000,
+	0x0005, 0x00e6, 0x2071, 0x1a04, 0x711a, 0x721e, 0x700b, 0x0009,
+	0x00ee, 0x0005, 0x0086, 0x0026, 0x7058, 0x8000, 0x705a, 0x2001,
+	0x1a12, 0x2044, 0xa06c, 0x9086, 0x0000, 0x0150, 0x706c, 0xa09a,
+	0x7068, 0xa096, 0x7064, 0xa092, 0x7060, 0xa08e, 0x080c, 0x10ad,
+	0x002e, 0x008e, 0x0005, 0x0006, 0x0016, 0x0096, 0x00a6, 0x00b6,
+	0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x0156, 0x080c, 0x804c, 0x015e,
+	0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x00ae, 0x009e, 0x001e,
+	0x000e, 0x0005, 0x00e6, 0x2071, 0x1a04, 0x7176, 0x727a, 0x7073,
+	0x0009, 0x00ee, 0x0005, 0x00e6, 0x0006, 0x2071, 0x1a04, 0x7078,
+	0x9206, 0x1110, 0x7076, 0x707a, 0x000e, 0x00ee, 0x0005, 0x00c6,
+	0x2061, 0x1a7b, 0x00ce, 0x0005, 0x9184, 0x000f, 0x8003, 0x8003,
+	0x8003, 0x9080, 0x1a7b, 0x2060, 0x0005, 0xa884, 0x908a, 0x199a,
+	0x1638, 0x9005, 0x1150, 0x00c6, 0x2061, 0x1a7b, 0x6014, 0x00ce,
+	0x9005, 0x1130, 0x2001, 0x001e, 0x0018, 0x908e, 0xffff, 0x01b0,
+	0x8003, 0x800b, 0x810b, 0x9108, 0x611a, 0xa87c, 0x908c, 0x00c0,
+	0x918e, 0x00c0, 0x0904, 0x8267, 0xd0b4, 0x1168, 0xd0bc, 0x1904,
+	0x8240, 0x2009, 0x0006, 0x080c, 0x8294, 0x0005, 0x900e, 0x0c60,
+	0x2001, 0x1999, 0x08b0, 0xd0fc, 0x0160, 0x908c, 0x0003, 0x0120,
+	0x918e, 0x0003, 0x1904, 0x828e, 0x908c, 0x2020, 0x918e, 0x2020,
+	0x01a8, 0x6024, 0xd0d4, 0x11e8, 0x2009, 0x1875, 0x2104, 0xd084,
+	0x1138, 0x87ff, 0x1120, 0x2009, 0x0043, 0x0804, 0xa9e6, 0x0005,
+	0x87ff, 0x1de8, 0x2009, 0x0042, 0x0804, 0xa9e6, 0x6110, 0x00b6,
+	0x2158, 0xb900, 0x00be, 0xd1ac, 0x0d20, 0x6024, 0xc0cd, 0x6026,
+	0x0c00, 0xc0d4, 0x6026, 0xa890, 0x602e, 0xa88c, 0x6032, 0x08e0,
+	0xd0fc, 0x0160, 0x908c, 0x0003, 0x0120, 0x918e, 0x0003, 0x1904,
+	0x828e, 0x908c, 0x2020, 0x918e, 0x2020, 0x0170, 0x0076, 0x00f6,
+	0x2c78, 0x080c, 0x1606, 0x00fe, 0x007e, 0x87ff, 0x1120, 0x2009,
+	0x0042, 0x080c, 0xa9e6, 0x0005, 0x6110, 0x00b6, 0x2158, 0xb900,
+	0x00be, 0xd1ac, 0x0d58, 0x6124, 0xc1cd, 0x6126, 0x0c38, 0xd0fc,
+	0x0188, 0x908c, 0x2020, 0x918e, 0x2020, 0x01a8, 0x9084, 0x0003,
+	0x908e, 0x0002, 0x0148, 0x87ff, 0x1120, 0x2009, 0x0041, 0x080c,
+	0xa9e6, 0x0005, 0x00b9, 0x0ce8, 0x87ff, 0x1dd8, 0x2009, 0x0043,
+	0x080c, 0xa9e6, 0x0cb0, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be,
+	0xd1ac, 0x0d20, 0x6124, 0xc1cd, 0x6126, 0x0c00, 0x2009, 0x0004,
+	0x0019, 0x0005, 0x2009, 0x0001, 0x0096, 0x080c, 0xc5d1, 0x0518,
+	0x6014, 0x2048, 0xa982, 0xa800, 0x6016, 0x9186, 0x0001, 0x1188,
+	0xa97c, 0x918c, 0x8100, 0x918e, 0x8100, 0x1158, 0x00c6, 0x2061,
+	0x1a7b, 0x6200, 0xd28c, 0x1120, 0x6204, 0x8210, 0x0208, 0x6206,
+	0x00ce, 0x080c, 0x6722, 0x6014, 0x904d, 0x0076, 0x2039, 0x0000,
+	0x190c, 0x81dd, 0x007e, 0x009e, 0x0005, 0x0156, 0x00c6, 0x2061,
+	0x1a7b, 0x6000, 0x81ff, 0x0110, 0x9205, 0x0008, 0x9204, 0x6002,
+	0x00ce, 0x015e, 0x0005, 0x6800, 0xd08c, 0x1138, 0x6808, 0x9005,
+	0x0120, 0x8001, 0x680a, 0x9085, 0x0001, 0x0005, 0x2071, 0x192f,
+	0x7003, 0x0006, 0x7007, 0x0000, 0x700f, 0x0000, 0x7013, 0x0001,
+	0x080c, 0x0fe6, 0x090c, 0x0db8, 0xa867, 0x0006, 0xa86b, 0x0001,
+	0xa8ab, 0xdcb0, 0xa89f, 0x0000, 0x2900, 0x702e, 0x7033, 0x0000,
+	0x0005, 0x0096, 0x00e6, 0x2071, 0x192f, 0x702c, 0x2048, 0x6a2c,
+	0x721e, 0x6b30, 0x7322, 0x6834, 0x7026, 0xa896, 0x6838, 0x702a,
+	0xa89a, 0x6824, 0x7016, 0x683c, 0x701a, 0x2009, 0x0028, 0x200a,
+	0x9005, 0x0148, 0x900e, 0x9188, 0x000c, 0x8001, 0x1de0, 0x2100,
+	0x9210, 0x1208, 0x8318, 0xaa8e, 0xab92, 0x7010, 0xd084, 0x0178,
+	0xc084, 0x7007, 0x0001, 0x700f, 0x0000, 0x0006, 0x2009, 0x181b,
+	0x2104, 0x9082, 0x0007, 0x2009, 0x1ac8, 0x200a, 0x000e, 0xc095,
+	0x7012, 0x2008, 0x2001, 0x003b, 0x080c, 0x1587, 0x9006, 0x2071,
+	0x1948, 0x7002, 0x7006, 0x702a, 0x00ee, 0x009e, 0x0005, 0x00e6,
+	0x0126, 0x0156, 0x2091, 0x8000, 0x2071, 0x1800, 0x714c, 0x2001,
+	0x0008, 0x910a, 0x0638, 0x2001, 0x1889, 0x20ac, 0x9006, 0x9080,
+	0x0008, 0x1f04, 0x8347, 0x71bc, 0x9102, 0x02e0, 0x2071, 0x1883,
+	0x20a9, 0x0007, 0x00c6, 0x080c, 0xa915, 0x6023, 0x0009, 0x6003,
+	0x0004, 0x601f, 0x0101, 0x0089, 0x0126, 0x2091, 0x8000, 0x080c,
+	0x84b0, 0x012e, 0x1f04, 0x8353, 0x9006, 0x00ce, 0x015e, 0x012e,
+	0x00ee, 0x0005, 0x9085, 0x0001, 0x0cc8, 0x00e6, 0x00b6, 0x0096,
+	0x0086, 0x0056, 0x0046, 0x0026, 0x7118, 0x720c, 0x7620, 0x7004,
+	0xd084, 0x1128, 0x2021, 0x0024, 0x2029, 0x0002, 0x0020, 0x2021,
+	0x002c, 0x2029, 0x000a, 0x080c, 0x0fcd, 0x090c, 0x0db8, 0x2900,
+	0x6016, 0x2058, 0xac66, 0x9006, 0xa802, 0xa806, 0xa86a, 0xa87a,
+	0xa8aa, 0xa887, 0x0005, 0xa87f, 0x0020, 0x7008, 0xa89a, 0x7010,
+	0xa89e, 0xae8a, 0xa8af, 0xffff, 0xa8b3, 0x0000, 0x8109, 0x0160,
+	0x080c, 0x0fcd, 0x090c, 0x0db8, 0xad66, 0x2b00, 0xa802, 0x2900,
+	0xb806, 0x2058, 0x8109, 0x1da0, 0x002e, 0x004e, 0x005e, 0x008e,
+	0x009e, 0x00be, 0x00ee, 0x0005, 0x2079, 0x0000, 0x2071, 0x192f,
+	0x7004, 0x004b, 0x700c, 0x0002, 0x83bf, 0x83b8, 0x83b8, 0x0005,
+	0x83c9, 0x840d, 0x840d, 0x840d, 0x840e, 0x841f, 0x841f, 0x700c,
+	0x0cba, 0x78a0, 0x79a0, 0x9106, 0x0120, 0x78a0, 0x79a0, 0x9106,
+	0x15d8, 0x7018, 0x910a, 0x1130, 0x7030, 0x9005, 0x05a8, 0x080c,
+	0x844e, 0x0490, 0x1210, 0x7114, 0x910a, 0x9192, 0x000a, 0x0210,
+	0x2009, 0x000a, 0x2001, 0x1894, 0x2014, 0x2001, 0x1941, 0x2004,
+	0x9100, 0x9202, 0x0e48, 0x080c, 0x859a, 0x2200, 0x9102, 0x0208,
+	0x2208, 0x0096, 0x702c, 0x2048, 0xa873, 0x0001, 0xa976, 0x080c,
+	0x86a3, 0x2100, 0xa87e, 0xa86f, 0x0000, 0x009e, 0x0126, 0x2091,
+	0x8000, 0x2009, 0x1a23, 0x2104, 0xc085, 0x200a, 0x700f, 0x0002,
+	0x012e, 0x080c, 0x10cc, 0x1de8, 0x0005, 0x0005, 0x700c, 0x0002,
+	0x8413, 0x8416, 0x8415, 0x080c, 0x83c7, 0x0005, 0x8001, 0x700e,
+	0x0096, 0x702c, 0x2048, 0xa974, 0x009e, 0x0011, 0x0ca0, 0x0005,
+	0x0096, 0x702c, 0x2048, 0x7018, 0x9100, 0x7214, 0x921a, 0x1130,
+	0x701c, 0xa88e, 0x7020, 0xa892, 0x9006, 0x0068, 0x0006, 0x080c,
+	0x86a3, 0x2100, 0xaa8c, 0x9210, 0xaa8e, 0x1220, 0xa890, 0x9081,
+	0x0000, 0xa892, 0x000e, 0x009e, 0x2f08, 0x9188, 0x0028, 0x200a,
+	0x701a, 0x0005, 0x00e6, 0x2071, 0x192f, 0x700c, 0x0002, 0x844c,
+	0x844c, 0x844a, 0x700f, 0x0001, 0x00ee, 0x0005, 0x0126, 0x2091,
+	0x8000, 0x7030, 0x9005, 0x0508, 0x2078, 0x7814, 0x2048, 0xae88,
+	0x00b6, 0x2059, 0x0000, 0x080c, 0x84b9, 0x00be, 0x01b0, 0x00e6,
+	0x2071, 0x1948, 0x080c, 0x8500, 0x00ee, 0x0178, 0x0096, 0x080c,
+	0x0fe6, 0x2900, 0x009e, 0x0148, 0xa8aa, 0x04b9, 0x0041, 0x2001,
+	0x1952, 0x2003, 0x0000, 0x012e, 0x08c8, 0x012e, 0x0005, 0x00d6,
+	0x00c6, 0x0086, 0x00a6, 0x2940, 0x2650, 0x2600, 0x9005, 0x0180,
+	0xa864, 0x9084, 0x000f, 0x2068, 0x9d88, 0x1e81, 0x2165, 0x0056,
+	0x2029, 0x0000, 0x080c, 0x8628, 0x080c, 0x1e3f, 0x1dd8, 0x005e,
+	0x00ae, 0x2001, 0x188b, 0x2004, 0xa88a, 0x080c, 0x1606, 0x781f,
+	0x0101, 0x7813, 0x0000, 0x0126, 0x2091, 0x8000, 0x080c, 0x850f,
+	0x012e, 0x008e, 0x00ce, 0x00de, 0x0005, 0x7030, 0x9005, 0x0138,
+	0x2078, 0x780c, 0x7032, 0x2001, 0x1952, 0x2003, 0x0001, 0x0005,
+	0x00e6, 0x2071, 0x192f, 0x7030, 0x600e, 0x2c00, 0x7032, 0x00ee,
+	0x0005, 0x00d6, 0x00c6, 0x0026, 0x9b80, 0x8782, 0x2005, 0x906d,
+	0x090c, 0x0db8, 0x9b80, 0x877a, 0x2005, 0x9065, 0x090c, 0x0db8,
+	0x6114, 0x2600, 0x9102, 0x0248, 0x6828, 0x9102, 0x02f0, 0x9085,
+	0x0001, 0x002e, 0x00ce, 0x00de, 0x0005, 0x6804, 0xd094, 0x0148,
+	0x6854, 0xd084, 0x1178, 0xc085, 0x6856, 0x2011, 0x8026, 0x080c,
+	0x47db, 0x684c, 0x0096, 0x904d, 0x090c, 0x0db8, 0xa804, 0x8000,
+	0xa806, 0x009e, 0x9006, 0x2030, 0x0c20, 0x6854, 0xd08c, 0x1d08,
+	0xc08d, 0x6856, 0x2011, 0x8025, 0x080c, 0x47db, 0x684c, 0x0096,
+	0x904d, 0x090c, 0x0db8, 0xa800, 0x8000, 0xa802, 0x009e, 0x0888,
+	0x7000, 0x2019, 0x0008, 0x8319, 0x7104, 0x9102, 0x1118, 0x2300,
+	0x9005, 0x0020, 0x0210, 0x9302, 0x0008, 0x8002, 0x0005, 0x00d6,
+	0x7814, 0x9005, 0x090c, 0x0db8, 0x781c, 0x9084, 0x0101, 0x9086,
+	0x0101, 0x190c, 0x0db8, 0x2069, 0x1948, 0x6804, 0x9080, 0x194a,
+	0x2f08, 0x2102, 0x6904, 0x8108, 0x9182, 0x0008, 0x0208, 0x900e,
+	0x6906, 0x9180, 0x194a, 0x2003, 0x0000, 0x00de, 0x0005, 0x0096,
+	0x00c6, 0x2060, 0x6014, 0x2048, 0xa8a8, 0x0096, 0x2048, 0x9005,
+	0x190c, 0x0fff, 0x009e, 0xa8ab, 0x0000, 0x080c, 0x0f7f, 0x080c,
+	0xa96b, 0x00ce, 0x009e, 0x0005, 0x6020, 0x9086, 0x0009, 0x1128,
+	0x601c, 0xd0c4, 0x0110, 0x9006, 0x0005, 0x9085, 0x0001, 0x0005,
+	0x6000, 0x9086, 0x0000, 0x0178, 0x6010, 0x9005, 0x0150, 0x00b6,
+	0x2058, 0x080c, 0x88b5, 0x00be, 0x6013, 0x0000, 0x601b, 0x0000,
+	0x0010, 0x2c00, 0x0861, 0x0005, 0x2009, 0x1933, 0x210c, 0xd194,
+	0x0005, 0x00e6, 0x2071, 0x192f, 0x7110, 0xc194, 0xd19c, 0x1118,
+	0xc185, 0x7007, 0x0000, 0x7112, 0x2001, 0x003b, 0x080c, 0x1587,
+	0x00ee, 0x0005, 0x0096, 0x00d6, 0x9006, 0x7006, 0x700e, 0x701a,
+	0x701e, 0x7022, 0x7016, 0x702a, 0x7026, 0x702f, 0x0000, 0x080c,
+	0x8702, 0x0170, 0x080c, 0x8737, 0x0158, 0x2900, 0x7002, 0x700a,
+	0x701a, 0x7013, 0x0001, 0x701f, 0x000a, 0x00de, 0x009e, 0x0005,
+	0x900e, 0x0cd8, 0x00e6, 0x0096, 0x0086, 0x00d6, 0x00c6, 0x2071,
+	0x193c, 0x721c, 0x2100, 0x9202, 0x1618, 0x080c, 0x8737, 0x090c,
+	0x0db8, 0x7018, 0x9005, 0x1160, 0x2900, 0x7002, 0x700a, 0x701a,
+	0x9006, 0x7006, 0x700e, 0xa806, 0xa802, 0x7012, 0x701e, 0x0038,
+	0x2040, 0xa806, 0x2900, 0xa002, 0x701a, 0xa803, 0x0000, 0x7010,
+	0x8000, 0x7012, 0x701c, 0x9080, 0x000a, 0x701e, 0x721c, 0x08d0,
+	0x721c, 0x00ce, 0x00de, 0x008e, 0x009e, 0x00ee, 0x0005, 0x0096,
+	0x0156, 0x0136, 0x0146, 0x00e6, 0x0126, 0x2091, 0x8000, 0x2071,
+	0x193c, 0x7300, 0x831f, 0x831e, 0x831e, 0x9384, 0x003f, 0x20e8,
+	0x939c, 0xffc0, 0x9398, 0x0003, 0x7104, 0x080c, 0x86a3, 0x810c,
+	0x2100, 0x9318, 0x8003, 0x2228, 0x2021, 0x0078, 0x9402, 0x9532,
+	0x0208, 0x2028, 0x2500, 0x8004, 0x20a8, 0x23a0, 0xa001, 0xa001,
+	0x4005, 0x2508, 0x080c, 0x86ac, 0x2130, 0x7014, 0x9600, 0x7016,
+	0x2600, 0x711c, 0x9102, 0x701e, 0x7004, 0x9600, 0x2008, 0x9082,
+	0x000a, 0x1190, 0x7000, 0x2048, 0xa800, 0x9005, 0x1148, 0x2009,
+	0x0001, 0x0026, 0x080c, 0x859a, 0x002e, 0x7000, 0x2048, 0xa800,
+	0x7002, 0x7007, 0x0000, 0x0008, 0x7106, 0x2500, 0x9212, 0x1904,
+	0x85d9, 0x012e, 0x00ee, 0x014e, 0x013e, 0x015e, 0x009e, 0x0005,
+	0x0016, 0x0026, 0x00e6, 0x0126, 0x2091, 0x8000, 0x9580, 0x877a,
+	0x2005, 0x9075, 0x090c, 0x0db8, 0x080c, 0x867e, 0x012e, 0x9580,
+	0x8776, 0x2005, 0x9075, 0x090c, 0x0db8, 0x0156, 0x0136, 0x01c6,
+	0x0146, 0x01d6, 0x831f, 0x831e, 0x831e, 0x9384, 0x003f, 0x20e0,
+	0x9384, 0xffc0, 0x9100, 0x2098, 0xa860, 0x20e8, 0xa95c, 0x2c05,
+	0x9100, 0x20a0, 0x20a9, 0x0002, 0x4003, 0x2e0c, 0x2d00, 0x0002,
+	0x8668, 0x8668, 0x866a, 0x8668, 0x866a, 0x8668, 0x8668, 0x8668,
+	0x8668, 0x8668, 0x8670, 0x8668, 0x8670, 0x8668, 0x8668, 0x8668,
+	0x080c, 0x0db8, 0x4104, 0x20a9, 0x0002, 0x4002, 0x4003, 0x0028,
+	0x20a9, 0x0002, 0x4003, 0x4104, 0x4003, 0x01de, 0x014e, 0x01ce,
+	0x013e, 0x015e, 0x00ee, 0x002e, 0x001e, 0x0005, 0x0096, 0x7014,
+	0x8001, 0x7016, 0x710c, 0x2110, 0x00f1, 0x810c, 0x9188, 0x0003,
+	0x7308, 0x8210, 0x9282, 0x000a, 0x1198, 0x7008, 0x2048, 0xa800,
+	0x9005, 0x0158, 0x0006, 0x080c, 0x8746, 0x009e, 0xa807, 0x0000,
+	0x2900, 0x700a, 0x7010, 0x8001, 0x7012, 0x700f, 0x0000, 0x0008,
+	0x720e, 0x009e, 0x0005, 0x0006, 0x810b, 0x810b, 0x2100, 0x810b,
+	0x9100, 0x2008, 0x000e, 0x0005, 0x0006, 0x0026, 0x2100, 0x9005,
+	0x0158, 0x9092, 0x000c, 0x0240, 0x900e, 0x8108, 0x9082, 0x000c,
+	0x1de0, 0x002e, 0x000e, 0x0005, 0x900e, 0x0cd8, 0x2d00, 0x90b8,
+	0x0008, 0x690c, 0x6810, 0x2019, 0x0001, 0x2031, 0x86ec, 0x9112,
+	0x0220, 0x0118, 0x8318, 0x2208, 0x0cd0, 0x6808, 0x9005, 0x0108,
+	0x8318, 0x233a, 0x6804, 0xd084, 0x2300, 0x2021, 0x0001, 0x1150,
+	0x9082, 0x0003, 0x0967, 0x0a67, 0x8420, 0x9082, 0x0007, 0x0967,
+	0x0a67, 0x0cd0, 0x9082, 0x0002, 0x0967, 0x0a67, 0x8420, 0x9082,
+	0x0005, 0x0967, 0x0a67, 0x0cd0, 0x6c1a, 0x2d00, 0x90b8, 0x0007,
+	0x00e6, 0x2071, 0x1800, 0x7128, 0x6810, 0x2019, 0x0001, 0x910a,
+	0x0118, 0x0210, 0x8318, 0x0cd8, 0x2031, 0x86ff, 0x0870, 0x6c16,
+	0x00ee, 0x0005, 0x0096, 0x0046, 0x0126, 0x2091, 0x8000, 0x2b00,
+	0x9080, 0x877e, 0x2005, 0x9005, 0x090c, 0x0db8, 0x2004, 0x90a0,
+	0x000a, 0x080c, 0x0fe6, 0x01d0, 0x2900, 0x7026, 0xa803, 0x0000,
+	0xa807, 0x0000, 0x080c, 0x0fe6, 0x0188, 0x7024, 0xa802, 0xa807,
+	0x0000, 0x2900, 0x7026, 0x94a2, 0x000a, 0x0110, 0x0208, 0x0c90,
+	0x9085, 0x0001, 0x012e, 0x004e, 0x009e, 0x0005, 0x7024, 0x9005,
+	0x0dc8, 0x2048, 0xac00, 0x080c, 0x0fff, 0x2400, 0x0cc0, 0x0126,
+	0x2091, 0x8000, 0x7024, 0x2048, 0x9005, 0x0130, 0xa800, 0x7026,
+	0xa803, 0x0000, 0xa807, 0x0000, 0x012e, 0x0005, 0x0126, 0x2091,
+	0x8000, 0x7024, 0xa802, 0x2900, 0x7026, 0x012e, 0x0005, 0x0096,
+	0x9e80, 0x0009, 0x2004, 0x9005, 0x0138, 0x2048, 0xa800, 0x0006,
+	0x080c, 0x0fff, 0x000e, 0x0cb8, 0x009e, 0x0005, 0x0096, 0x7008,
+	0x9005, 0x0138, 0x2048, 0xa800, 0x0006, 0x080c, 0x0fff, 0x000e,
+	0x0cb8, 0x9006, 0x7002, 0x700a, 0x7006, 0x700e, 0x701a, 0x701e,
+	0x7022, 0x702a, 0x7026, 0x702e, 0x009e, 0x0005, 0x1a6f, 0x0000,
+	0x0000, 0x0000, 0x193c, 0x0000, 0x0000, 0x0000, 0x1894, 0x0000,
+	0x0000, 0x0000, 0x1883, 0x0000, 0x0000, 0x0000, 0x00e6, 0x00c6,
+	0x00b6, 0x00a6, 0xa8a8, 0x2040, 0x2071, 0x1883, 0x080c, 0x88a0,
+	0xa067, 0x0023, 0x6010, 0x905d, 0x0904, 0x8875, 0xb814, 0xa06e,
+	0xb910, 0xa172, 0xb9a0, 0xa176, 0x2001, 0x0003, 0xa07e, 0xa834,
+	0xa082, 0xa07b, 0x0000, 0xa898, 0x9005, 0x0118, 0xa078, 0xc085,
+	0xa07a, 0x2858, 0x2031, 0x0018, 0xa068, 0x908a, 0x0019, 0x1a0c,
+	0x0db8, 0x2020, 0x2050, 0x2940, 0xa864, 0x90bc, 0x00ff, 0x908c,
+	0x000f, 0x91e0, 0x1e81, 0x2c65, 0x9786, 0x0024, 0x2c05, 0x1590,
+	0x908a, 0x0036, 0x1a0c, 0x0db8, 0x9082, 0x001b, 0x0002, 0x87e2,
+	0x87e2, 0x87e4, 0x87e2, 0x87e2, 0x87e2, 0x87e6, 0x87e2, 0x87e2,
+	0x87e2, 0x87e8, 0x87e2, 0x87e2, 0x87e2, 0x87ea, 0x87e2, 0x87e2,
+	0x87e2, 0x87ec, 0x87e2, 0x87e2, 0x87e2, 0x87ee, 0x87e2, 0x87e2,
+	0x87e2, 0x87f0, 0x080c, 0x0db8, 0xa180, 0x04b8, 0xa190, 0x04a8,
+	0xa1a0, 0x0498, 0xa1b0, 0x0488, 0xa1c0, 0x0478, 0xa1d0, 0x0468,
+	0xa1e0, 0x0458, 0x908a, 0x0034, 0x1a0c, 0x0db8, 0x9082, 0x001b,
+	0x0002, 0x8814, 0x8812, 0x8812, 0x8812, 0x8812, 0x8812, 0x8816,
+	0x8812, 0x8812, 0x8812, 0x8812, 0x8812, 0x8818, 0x8812, 0x8812,
+	0x8812, 0x8812, 0x8812, 0x881a, 0x8812, 0x8812, 0x8812, 0x8812,
+	0x8812, 0x881c, 0x080c, 0x0db8, 0xa180, 0x0038, 0xa198, 0x0028,
+	0xa1b0, 0x0018, 0xa1c8, 0x0008, 0xa1e0, 0x2600, 0x0002, 0x8838,
+	0x883a, 0x883c, 0x883e, 0x8840, 0x8842, 0x8844, 0x8846, 0x8848,
+	0x884a, 0x884c, 0x884e, 0x8850, 0x8852, 0x8854, 0x8856, 0x8858,
+	0x885a, 0x885c, 0x885e, 0x8860, 0x8862, 0x8864, 0x8866, 0x8868,
+	0x080c, 0x0db8, 0xb9e2, 0x0468, 0xb9de, 0x0458, 0xb9da, 0x0448,
+	0xb9d6, 0x0438, 0xb9d2, 0x0428, 0xb9ce, 0x0418, 0xb9ca, 0x0408,
+	0xb9c6, 0x00f8, 0xb9c2, 0x00e8, 0xb9be, 0x00d8, 0xb9ba, 0x00c8,
+	0xb9b6, 0x00b8, 0xb9b2, 0x00a8, 0xb9ae, 0x0098, 0xb9aa, 0x0088,
+	0xb9a6, 0x0078, 0xb9a2, 0x0068, 0xb99e, 0x0058, 0xb99a, 0x0048,
+	0xb996, 0x0038, 0xb992, 0x0028, 0xb98e, 0x0018, 0xb98a, 0x0008,
+	0xb986, 0x8631, 0x8421, 0x0120, 0x080c, 0x1e3f, 0x0804, 0x87bc,
+	0x00ae, 0x00be, 0x00ce, 0x00ee, 0x0005, 0xa86c, 0xa06e, 0xa870,
+	0xa072, 0xa077, 0x00ff, 0x9006, 0x0804, 0x879e, 0x0006, 0x0016,
+	0x00b6, 0x6010, 0x2058, 0xb810, 0x9005, 0x01b0, 0x2001, 0x1930,
+	0x2004, 0x9005, 0x0188, 0x2001, 0x1800, 0x2004, 0x9086, 0x0003,
+	0x1158, 0x0036, 0x0046, 0xbba0, 0x2021, 0x0004, 0x2011, 0x8014,
+	0x080c, 0x47db, 0x004e, 0x003e, 0x00be, 0x001e, 0x000e, 0x0005,
+	0x9016, 0x710c, 0xa834, 0x910a, 0xa936, 0x7008, 0x9005, 0x0120,
+	0x8210, 0x910a, 0x0238, 0x0130, 0x7010, 0x8210, 0x910a, 0x0210,
+	0x0108, 0x0cd8, 0xaa8a, 0xa26a, 0x0005, 0x00f6, 0x00d6, 0x0036,
+	0x2079, 0x0300, 0x781b, 0x0200, 0x7818, 0xd094, 0x1dd8, 0x781b,
+	0x0202, 0xa001, 0xa001, 0x7818, 0xd094, 0x1da0, 0xb8ac, 0x9005,
+	0x01b8, 0x2068, 0x2079, 0x0000, 0x2c08, 0x911e, 0x1118, 0x680c,
+	0xb8ae, 0x0060, 0x9106, 0x0140, 0x2d00, 0x2078, 0x680c, 0x9005,
+	0x090c, 0x0db8, 0x2068, 0x0cb0, 0x6b0c, 0x7b0e, 0x600f, 0x0000,
+	0x2079, 0x0300, 0x781b, 0x0200, 0x003e, 0x00de, 0x00fe, 0x0005,
+	0x00e6, 0x00d6, 0x0096, 0x00c6, 0x0036, 0x0126, 0x2091, 0x8000,
+	0x0156, 0x20a9, 0x01ff, 0x2071, 0x0300, 0x701b, 0x0200, 0x7018,
+	0xd094, 0x0110, 0x1f04, 0x88f5, 0x701b, 0x0202, 0xa001, 0xa001,
+	0x7018, 0xd094, 0x1d90, 0xb8ac, 0x9005, 0x01d0, 0x2060, 0x600c,
+	0xb8ae, 0x6003, 0x0004, 0x601b, 0x0000, 0x6013, 0x0000, 0x601f,
+	0x0101, 0x6014, 0x2048, 0xa88b, 0x0000, 0xa8a8, 0xa8ab, 0x0000,
+	0x904d, 0x090c, 0x0db8, 0x080c, 0x0fff, 0x080c, 0x84b0, 0x0c18,
+	0x2071, 0x0300, 0x701b, 0x0200, 0x015e, 0x012e, 0x003e, 0x00ce,
+	0x009e, 0x00de, 0x00ee, 0x0005, 0x00c6, 0x00b6, 0x0016, 0x0006,
+	0x0156, 0x080c, 0x2624, 0x015e, 0x11b0, 0x080c, 0x6213, 0x190c,
+	0x0db8, 0x000e, 0x001e, 0xb912, 0xb816, 0x080c, 0xa915, 0x0140,
+	0x2b00, 0x6012, 0x6023, 0x0001, 0x2009, 0x0001, 0x080c, 0xa9e6,
+	0x00be, 0x00ce, 0x0005, 0x000e, 0x001e, 0x0cd0, 0x0066, 0x6000,
+	0x90b2, 0x0016, 0x1a0c, 0x0db8, 0x0013, 0x006e, 0x0005, 0x8967,
+	0x8967, 0x8967, 0x8969, 0x89ba, 0x8967, 0x8967, 0x8967, 0x8a1d,
+	0x8967, 0x8a5a, 0x8967, 0x8967, 0x8967, 0x8967, 0x8967, 0x080c,
+	0x0db8, 0x9182, 0x0040, 0x0002, 0x897c, 0x897c, 0x897c, 0x897c,
+	0x897c, 0x897c, 0x897c, 0x897c, 0x897c, 0x897e, 0x8993, 0x897c,
+	0x897c, 0x897c, 0x897c, 0x89a6, 0x080c, 0x0db8, 0x0096, 0x080c,
+	0x91dc, 0x080c, 0x9362, 0x6114, 0x2148, 0xa87b, 0x0000, 0x6010,
+	0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x66ed, 0x080c,
+	0xa96b, 0x009e, 0x0005, 0x080c, 0x91dc, 0x00d6, 0x6114, 0x080c,
+	0xc5d1, 0x0130, 0x0096, 0x6114, 0x2148, 0x080c, 0x68e7, 0x009e,
+	0x00de, 0x080c, 0xa96b, 0x080c, 0x9362, 0x0005, 0x080c, 0x91dc,
+	0x080c, 0x2f98, 0x6114, 0x0096, 0x2148, 0x080c, 0xc5d1, 0x0120,
+	0xa87b, 0x0029, 0x080c, 0x68e7, 0x009e, 0x080c, 0xa96b, 0x080c,
+	0x9362, 0x0005, 0x601b, 0x0000, 0x9182, 0x0040, 0x0096, 0x0002,
+	0x89d5, 0x89d5, 0x89d5, 0x89d5, 0x89d5, 0x89d5, 0x89d5, 0x89d5,
+	0x89d7, 0x89d5, 0x89d5, 0x89d5, 0x8a19, 0x89d5, 0x89d5, 0x89d5,
+	0x89d5, 0x89d5, 0x89d5, 0x89dd, 0x89d5, 0x080c, 0x0db8, 0x6114,
+	0x2148, 0xa938, 0x918e, 0xffff, 0x05e0, 0x00e6, 0x6114, 0x2148,
+	0x080c, 0x8786, 0x0096, 0xa8a8, 0x2048, 0x080c, 0x6685, 0x009e,
+	0xa8ab, 0x0000, 0x6010, 0x9005, 0x0128, 0x00b6, 0x2058, 0x080c,
+	0x88b5, 0x00be, 0xae88, 0x00b6, 0x2059, 0x0000, 0x080c, 0x84b9,
+	0x00be, 0x01e0, 0x2071, 0x1948, 0x080c, 0x8500, 0x01b8, 0x9086,
+	0x0001, 0x1128, 0x2001, 0x1952, 0x2004, 0x9005, 0x1178, 0x0096,
+	0x080c, 0x0fcd, 0x2900, 0x009e, 0x0148, 0xa8aa, 0x00f6, 0x2c78,
+	0x080c, 0x8477, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x080c, 0x84b0,
+	0x0cd0, 0x080c, 0x8ac7, 0x009e, 0x0005, 0x9182, 0x0040, 0x0096,
+	0x0002, 0x8a31, 0x8a31, 0x8a31, 0x8a33, 0x8a31, 0x8a31, 0x8a31,
+	0x8a58, 0x8a31, 0x8a31, 0x8a31, 0x8a31, 0x8a31, 0x8a31, 0x8a31,
+	0x8a31, 0x080c, 0x0db8, 0x6003, 0x0003, 0x6106, 0x6014, 0x2048,
+	0xa8ac, 0xa846, 0xa8b0, 0xa84a, 0xa837, 0x0000, 0xa83b, 0x0000,
+	0xa884, 0x9092, 0x199a, 0x0210, 0x2001, 0x1999, 0x8003, 0x8013,
+	0x8213, 0x9210, 0x621a, 0x2c10, 0x080c, 0x1a3a, 0x080c, 0x8d06,
+	0x0126, 0x2091, 0x8000, 0x080c, 0x9362, 0x012e, 0x009e, 0x0005,
+	0x080c, 0x0db8, 0x080c, 0x91dc, 0x080c, 0x9362, 0x6114, 0x2148,
+	0xa87b, 0x0000, 0x6010, 0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be,
+	0x080c, 0x68e7, 0x080c, 0xa96b, 0x009e, 0x0005, 0x6000, 0x908a,
+	0x0016, 0x1a0c, 0x0db8, 0x0096, 0x0013, 0x009e, 0x0005, 0x8a87,
+	0x8a87, 0x8a87, 0x8a89, 0x8a9a, 0x8a87, 0x8a87, 0x8a87, 0x8a87,
+	0x8a87, 0x8a87, 0x8a87, 0x8a87, 0x8a87, 0x8a87, 0x8a87, 0x080c,
+	0x0db8, 0x080c, 0xa2e9, 0x6114, 0x2148, 0xa87b, 0x0006, 0x6010,
+	0x00b6, 0x2058, 0xb8bb, 0x0500, 0x00be, 0x080c, 0x68e7, 0x080c,
+	0xa96b, 0x0005, 0x0461, 0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c,
+	0x0db8, 0x0096, 0x0013, 0x009e, 0x0005, 0x8ab5, 0x8ab5, 0x8ab5,
+	0x8ab7, 0x8ac7, 0x8ab5, 0x8ab5, 0x8ab5, 0x8ab5, 0x8ab5, 0x8ab5,
+	0x8ab5, 0x8ab5, 0x8ab5, 0x8ab5, 0x8ab5, 0x080c, 0x0db8, 0x0036,
+	0x00e6, 0x2071, 0x19f1, 0x703c, 0x9c06, 0x1120, 0x2019, 0x0000,
+	0x080c, 0xa0c0, 0x080c, 0xa2e9, 0x00ee, 0x003e, 0x0005, 0x00f6,
+	0x00e6, 0x601b, 0x0000, 0x6014, 0x2048, 0x6010, 0x9005, 0x0128,
+	0x00b6, 0x2058, 0x080c, 0x88b5, 0x00be, 0x2071, 0x1948, 0x080c,
+	0x8500, 0x0160, 0x2001, 0x188b, 0x2004, 0xa88a, 0x2031, 0x0000,
+	0x2c78, 0x080c, 0x8477, 0x00ee, 0x00fe, 0x0005, 0x0096, 0xa88b,
+	0x0000, 0xa8a8, 0x2048, 0x080c, 0x0fff, 0x009e, 0xa8ab, 0x0000,
+	0x080c, 0x84b0, 0x0c80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+	0x0000, 0x0000, 0x0000, 0x0000, 0x1886, 0x0000, 0x0000, 0x0000,
+	0x0000, 0x0000, 0x0000, 0x0126, 0x2091, 0x8000, 0x0036, 0x0046,
+	0x20a9, 0x0010, 0x9006, 0x8004, 0x2019, 0x0100, 0x231c, 0x93a6,
+	0x0008, 0x1118, 0x8086, 0x818e, 0x0020, 0x80f6, 0x3e00, 0x81f6,
+	0x3e08, 0x1208, 0x9200, 0x1f04, 0x8b0c, 0x93a6, 0x0008, 0x1118,
+	0x8086, 0x818e, 0x0020, 0x80f6, 0x3e00, 0x81f6, 0x3e08, 0x004e,
+	0x003e, 0x012e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0076, 0x0156,
+	0x20a9, 0x0010, 0x9005, 0x0510, 0x911a, 0x1600, 0x8213, 0x2039,
+	0x0100, 0x273c, 0x97be, 0x0008, 0x1110, 0x818d, 0x0010, 0x81f5,
+	0x3e08, 0x0228, 0x911a, 0x1220, 0x1f04, 0x8b36, 0x0028, 0x911a,
+	0x2308, 0x8210, 0x1f04, 0x8b36, 0x0006, 0x3200, 0x9084, 0xefff,
+	0x2080, 0x000e, 0x015e, 0x007e, 0x012e, 0x0005, 0x0006, 0x3200,
+	0x9085, 0x1000, 0x0ca8, 0x0126, 0x2091, 0x2800, 0x2079, 0x19f1,
+	0x012e, 0x00d6, 0x2069, 0x19f1, 0x6803, 0x0005, 0x0156, 0x0146,
+	0x01d6, 0x20e9, 0x0000, 0x2069, 0x0200, 0x080c, 0xa62d, 0x0401,
+	0x080c, 0xa618, 0x00e9, 0x080c, 0xa61b, 0x00d1, 0x080c, 0xa61e,
+	0x00b9, 0x080c, 0xa621, 0x00a1, 0x080c, 0xa624, 0x0089, 0x080c,
+	0xa627, 0x0071, 0x080c, 0xa62a, 0x0059, 0x01de, 0x014e, 0x015e,
+	0x2069, 0x0004, 0x2d04, 0x9085, 0x8001, 0x206a, 0x00de, 0x0005,
+	0x20a9, 0x0020, 0x20a1, 0x0240, 0x2001, 0x0000, 0x4004, 0x0005,
+	0x00c6, 0x6027, 0x0001, 0x7804, 0x9084, 0x0007, 0x0002, 0x8ba9,
+	0x8bcd, 0x8c12, 0x8baf, 0x8bcd, 0x8ba9, 0x8ba7, 0x8ba7, 0x080c,
+	0x0db8, 0x080c, 0x816f, 0x080c, 0x922b, 0x00ce, 0x0005, 0x62c0,
+	0x82ff, 0x1110, 0x00ce, 0x0005, 0x2011, 0x5b1a, 0x080c, 0x80ec,
+	0x7828, 0x9092, 0x00c8, 0x1228, 0x8000, 0x782a, 0x080c, 0x5b52,
+	0x0c88, 0x62c0, 0x080c, 0xa767, 0x080c, 0x5b1a, 0x7807, 0x0003,
+	0x7827, 0x0000, 0x782b, 0x0000, 0x0c28, 0x080c, 0x816f, 0x6220,
+	0xd2a4, 0x0178, 0x62c0, 0x82ff, 0x1160, 0x782b, 0x0000, 0x7824,
+	0x9065, 0x090c, 0x0db8, 0x2009, 0x0013, 0x080c, 0xa9e6, 0x00ce,
+	0x0005, 0x00c6, 0x7824, 0x9065, 0x090c, 0x0db8, 0x7828, 0x9092,
+	0xc350, 0x1230, 0x8000, 0x782a, 0x00ce, 0x080c, 0x9dda, 0x0c78,
+	0x2011, 0x0130, 0x2214, 0x080c, 0xa767, 0x6104, 0x9186, 0x0003,
+	0x1188, 0x00e6, 0x2071, 0x1800, 0x70e4, 0x00ee, 0xd08c, 0x0150,
+	0x00c6, 0x00e6, 0x2061, 0x0100, 0x2071, 0x1800, 0x080c, 0x5b68,
+	0x00ee, 0x00ce, 0x080c, 0xe3ca, 0x2009, 0x0014, 0x080c, 0xa9e6,
+	0x00ce, 0x0868, 0x2001, 0x1a0d, 0x2003, 0x0000, 0x62c0, 0x82ff,
+	0x1160, 0x782b, 0x0000, 0x7824, 0x9065, 0x090c, 0x0db8, 0x2009,
+	0x0013, 0x080c, 0xaa38, 0x00ce, 0x0005, 0x00b6, 0x00c6, 0x00d6,
+	0x7824, 0x9005, 0x090c, 0x0db8, 0x7828, 0x9092, 0xc350, 0x1240,
+	0x8000, 0x782a, 0x00de, 0x00ce, 0x00be, 0x080c, 0x9dda, 0x0c58,
+	0x2011, 0x0130, 0x2214, 0x080c, 0xa767, 0x080c, 0xe3ca, 0x7824,
+	0x9065, 0x2009, 0x0014, 0x080c, 0xa9e6, 0x00de, 0x00ce, 0x00be,
+	0x08d0, 0x00c6, 0x2001, 0x009b, 0x2004, 0xd0fc, 0x190c, 0x1cc3,
+	0x6024, 0x6027, 0x0002, 0xd0f4, 0x15b8, 0x62c8, 0x60c4, 0x9205,
+	0x1170, 0x783c, 0x9065, 0x0130, 0x2009, 0x0049, 0x080c, 0xa9e6,
+	0x00ce, 0x0005, 0x2011, 0x1a10, 0x2013, 0x0000, 0x0cc8, 0x793c,
+	0x81ff, 0x0dc0, 0x7944, 0x9192, 0x7530, 0x1628, 0x8108, 0x7946,
+	0x793c, 0x9188, 0x0008, 0x210c, 0x918e, 0x0006, 0x1138, 0x6014,
+	0x9084, 0x1984, 0x9085, 0x0012, 0x6016, 0x0c10, 0x793c, 0x9188,
+	0x0008, 0x210c, 0x918e, 0x0009, 0x0d90, 0x6014, 0x9084, 0x1984,
+	0x9085, 0x0016, 0x6016, 0x08a0, 0x793c, 0x2160, 0x2009, 0x004a,
+	0x080c, 0xa9e6, 0x0868, 0x7848, 0xc085, 0x784a, 0x0848, 0x0006,
+	0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f, 0x0000, 0x2c08,
+	0x2061, 0x19f1, 0x6020, 0x8000, 0x6022, 0x6010, 0x9005, 0x0148,
+	0x9080, 0x0003, 0x2102, 0x6112, 0x012e, 0x00ce, 0x001e, 0x000e,
+	0x0005, 0x6116, 0x6112, 0x0cc0, 0x00d6, 0x2069, 0x19f1, 0xb800,
+	0xd0d4, 0x01b8, 0x6820, 0x8000, 0x6822, 0x9086, 0x0001, 0x1110,
+	0x2b00, 0x681e, 0x2001, 0x180c, 0x2004, 0xd0fc, 0x0118, 0x00de,
+	0x0804, 0x922b, 0x6804, 0x9084, 0x0007, 0x0804, 0x9242, 0x00de,
+	0x0005, 0xc0d5, 0xb802, 0x6818, 0x9005, 0x0168, 0xb856, 0xb85b,
+	0x0000, 0x0086, 0x0006, 0x2b00, 0x681a, 0x008e, 0xa05a, 0x008e,
+	0x2069, 0x19f1, 0x08b8, 0xb856, 0xb85a, 0x2b00, 0x681a, 0x681e,
+	0x0888, 0x0006, 0x0016, 0x00c6, 0x0126, 0x2091, 0x8000, 0x600f,
+	0x0000, 0x2c08, 0x2061, 0x19f1, 0x6020, 0x8000, 0x6022, 0x6008,
+	0x9005, 0x0148, 0x9080, 0x0003, 0x2102, 0x610a, 0x012e, 0x00ce,
+	0x001e, 0x000e, 0x0005, 0x610e, 0x610a, 0x0cc0, 0x00c6, 0x600f,
+	0x0000, 0x2c08, 0x2061, 0x19f1, 0x6034, 0x9005, 0x0130, 0x9080,
+	0x0003, 0x2102, 0x6136, 0x00ce, 0x0005, 0x613a, 0x6136, 0x00ce,
+	0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x00b6, 0x0096, 0x0076,
+	0x0066, 0x0056, 0x0036, 0x0026, 0x0016, 0x0006, 0x0126, 0x902e,
+	0x2071, 0x19f1, 0x7638, 0x2660, 0x2678, 0x2091, 0x8000, 0x8cff,
+	0x0904, 0x8d90, 0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x8d8b,
+	0x87ff, 0x0120, 0x6054, 0x9106, 0x1904, 0x8d8b, 0x703c, 0x9c06,
+	0x1178, 0x0036, 0x2019, 0x0001, 0x080c, 0xa0c0, 0x7033, 0x0000,
+	0x9006, 0x703e, 0x7042, 0x7046, 0x704a, 0x003e, 0x2029, 0x0001,
+	0x7038, 0x9c36, 0x1110, 0x660c, 0x763a, 0x7034, 0x9c36, 0x1140,
+	0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7036, 0x0010, 0x7037, 0x0000,
+	0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678,
+	0x600f, 0x0000, 0x080c, 0xc5d1, 0x01c8, 0x6014, 0x2048, 0x6020,
+	0x9086, 0x0003, 0x1590, 0xa867, 0x0103, 0xab7a, 0xa877, 0x0000,
+	0x0016, 0x0036, 0x0076, 0x080c, 0xc8af, 0x080c, 0xe300, 0x080c,
+	0x68e7, 0x007e, 0x003e, 0x001e, 0x080c, 0xc7b3, 0x080c, 0xa99c,
+	0x00ce, 0x0804, 0x8d2f, 0x2c78, 0x600c, 0x2060, 0x0804, 0x8d2f,
+	0x85ff, 0x0120, 0x0036, 0x080c, 0x9362, 0x003e, 0x012e, 0x000e,
+	0x001e, 0x002e, 0x003e, 0x005e, 0x006e, 0x007e, 0x009e, 0x00be,
+	0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x6020, 0x9086, 0x0006,
+	0x1158, 0x0016, 0x0036, 0x0076, 0x080c, 0xe300, 0x080c, 0xdf4c,
+	0x007e, 0x003e, 0x001e, 0x0890, 0x6020, 0x9086, 0x0009, 0x1168,
+	0xa87b, 0x0006, 0x0016, 0x0036, 0x0076, 0x080c, 0x68e7, 0x080c,
+	0xa96b, 0x007e, 0x003e, 0x001e, 0x0818, 0x6020, 0x9086, 0x000a,
+	0x0904, 0x8d75, 0x0804, 0x8d73, 0x0006, 0x0066, 0x0096, 0x00c6,
+	0x00d6, 0x00f6, 0x9036, 0x0126, 0x2091, 0x8000, 0x2079, 0x19f1,
+	0x7838, 0x9065, 0x0904, 0x8e1c, 0x600c, 0x0006, 0x600f, 0x0000,
+	0x783c, 0x9c06, 0x1168, 0x0036, 0x2019, 0x0001, 0x080c, 0xa0c0,
+	0x7833, 0x0000, 0x901e, 0x7b3e, 0x7b42, 0x7b46, 0x7b4a, 0x003e,
+	0x080c, 0xc5d1, 0x0520, 0x6014, 0x2048, 0x6020, 0x9086, 0x0003,
+	0x1568, 0x3e08, 0x918e, 0x0002, 0x1188, 0x6010, 0x9005, 0x0170,
+	0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140, 0x6040, 0x9005,
+	0x1180, 0x2001, 0x1992, 0x2004, 0x6042, 0x0058, 0xa867, 0x0103,
+	0xab7a, 0xa877, 0x0000, 0x080c, 0x68db, 0x080c, 0xc7b3, 0x080c,
+	0xa99c, 0x000e, 0x0804, 0x8dd9, 0x7e3a, 0x7e36, 0x012e, 0x00fe,
+	0x00de, 0x00ce, 0x009e, 0x006e, 0x000e, 0x0005, 0x6020, 0x9086,
+	0x0006, 0x1118, 0x080c, 0xdf4c, 0x0c50, 0x6020, 0x9086, 0x0009,
+	0x1130, 0xab7a, 0x080c, 0x68e7, 0x080c, 0xa96b, 0x0c10, 0x6020,
+	0x9086, 0x000a, 0x09a8, 0x0890, 0x0016, 0x0026, 0x0086, 0x9046,
+	0x0099, 0x080c, 0x8f21, 0x008e, 0x002e, 0x001e, 0x0005, 0x00f6,
+	0x0126, 0x2079, 0x19f1, 0x2091, 0x8000, 0x080c, 0x8fb8, 0x080c,
+	0x903d, 0x012e, 0x00fe, 0x0005, 0x00b6, 0x0096, 0x00f6, 0x00e6,
+	0x00d6, 0x00c6, 0x0066, 0x0016, 0x0006, 0x0126, 0x2091, 0x8000,
+	0x2071, 0x19f1, 0x7614, 0x2660, 0x2678, 0x8cff, 0x0904, 0x8ee3,
+	0x6010, 0x2058, 0xb8a0, 0x9206, 0x1904, 0x8ede, 0x88ff, 0x0120,
+	0x6054, 0x9106, 0x1904, 0x8ede, 0x7024, 0x9c06, 0x1550, 0x2069,
+	0x0100, 0x68c0, 0x9005, 0x0508, 0x080c, 0x816f, 0x080c, 0x9dfe,
+	0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7027, 0x0000, 0x0036, 0x2069,
+	0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c,
+	0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069, 0x0100, 0x6824, 0xd084,
+	0x0110, 0x6827, 0x0001, 0x003e, 0x0020, 0x6003, 0x0009, 0x630a,
+	0x04e8, 0x7014, 0x9c36, 0x1110, 0x660c, 0x7616, 0x7010, 0x9c36,
+	0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013,
+	0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008,
+	0x2678, 0x600f, 0x0000, 0x6014, 0x2048, 0x080c, 0xc5d1, 0x01b8,
+	0x6020, 0x9086, 0x0003, 0x1550, 0xa867, 0x0103, 0xab7a, 0xa877,
+	0x0000, 0x0016, 0x0036, 0x0086, 0x080c, 0xc8af, 0x080c, 0xe300,
+	0x080c, 0x68db, 0x008e, 0x003e, 0x001e, 0x080c, 0xc7b3, 0x080c,
+	0xa99c, 0x080c, 0xa1af, 0x00ce, 0x0804, 0x8e65, 0x2c78, 0x600c,
+	0x2060, 0x0804, 0x8e65, 0x012e, 0x000e, 0x001e, 0x006e, 0x00ce,
+	0x00de, 0x00ee, 0x00fe, 0x009e, 0x00be, 0x0005, 0x6020, 0x9086,
+	0x0006, 0x1158, 0x0016, 0x0036, 0x0086, 0x080c, 0xe300, 0x080c,
+	0xdf4c, 0x008e, 0x003e, 0x001e, 0x08d0, 0x080c, 0xc7d0, 0x19b8,
+	0x080c, 0xb313, 0x6020, 0x9086, 0x0002, 0x1160, 0x6004, 0x0006,
+	0x9086, 0x0085, 0x000e, 0x0904, 0x8ec4, 0x9086, 0x008b, 0x0904,
+	0x8ec4, 0x0828, 0x6020, 0x9086, 0x0005, 0x1908, 0x6004, 0x0006,
+	0x9086, 0x0085, 0x000e, 0x09b0, 0x9086, 0x008b, 0x0998, 0x0804,
+	0x8ed7, 0x00b6, 0x00a6, 0x0096, 0x00c6, 0x0006, 0x0126, 0x2091,
+	0x8000, 0x9280, 0x1000, 0x2004, 0x905d, 0x0904, 0x8fb1, 0x00f6,
+	0x00e6, 0x00d6, 0x0066, 0x2071, 0x19f1, 0xbe54, 0x7018, 0x9b06,
+	0x1108, 0x761a, 0x701c, 0x9b06, 0x1130, 0x86ff, 0x1118, 0x7018,
+	0x701e, 0x0008, 0x761e, 0xb858, 0x904d, 0x0108, 0xae56, 0x96d5,
+	0x0000, 0x0110, 0x2900, 0xb05a, 0xb857, 0x0000, 0xb85b, 0x0000,
+	0xb800, 0xc0d4, 0xc0dc, 0xb802, 0x080c, 0x61a6, 0x0904, 0x8fad,
+	0x7624, 0x86ff, 0x0904, 0x8f9c, 0x9680, 0x0005, 0x2004, 0x9906,
+	0x15d8, 0x00d6, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0560, 0x080c,
+	0x816f, 0x080c, 0x9dfe, 0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7027,
+	0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,
+	0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069,
+	0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x00de,
+	0x00c6, 0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660, 0x080c,
+	0xa99c, 0x00ce, 0x0048, 0x00de, 0x00c6, 0x2660, 0x6003, 0x0009,
+	0x630a, 0x00ce, 0x0804, 0x8f54, 0x89ff, 0x0158, 0xa867, 0x0103,
+	0xab7a, 0xa877, 0x0000, 0x080c, 0xc8af, 0x080c, 0xe300, 0x080c,
+	0x68e7, 0x080c, 0xa1af, 0x0804, 0x8f54, 0x006e, 0x00de, 0x00ee,
+	0x00fe, 0x012e, 0x000e, 0x00ce, 0x009e, 0x00ae, 0x00be, 0x0005,
+	0x0096, 0x0006, 0x0066, 0x00c6, 0x00d6, 0x9036, 0x7814, 0x9065,
+	0x0904, 0x900d, 0x600c, 0x0006, 0x600f, 0x0000, 0x7824, 0x9c06,
+	0x1558, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0508, 0x080c, 0x816f,
+	0x080c, 0x9dfe, 0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7827, 0x0000,
+	0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001,
+	0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069, 0x0100,
+	0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x0028, 0x6003,
+	0x0009, 0x630a, 0x2c30, 0x00b0, 0x6014, 0x2048, 0x080c, 0xc5cf,
+	0x0168, 0x6020, 0x9086, 0x0003, 0x11c0, 0xa867, 0x0103, 0xab7a,
+	0xa877, 0x0000, 0x080c, 0x68db, 0x080c, 0xc7b3, 0x080c, 0xa99c,
+	0x080c, 0xa1af, 0x000e, 0x0804, 0x8fbf, 0x7e16, 0x7e12, 0x00de,
+	0x00ce, 0x006e, 0x000e, 0x009e, 0x0005, 0x6020, 0x9086, 0x0006,
+	0x1118, 0x080c, 0xdf4c, 0x0c50, 0x080c, 0xc7d0, 0x1d38, 0x080c,
+	0xb313, 0x6020, 0x9086, 0x0002, 0x1150, 0x6004, 0x0006, 0x9086,
+	0x0085, 0x000e, 0x0990, 0x9086, 0x008b, 0x0978, 0x08b8, 0x6020,
+	0x9086, 0x0005, 0x1998, 0x6004, 0x0006, 0x9086, 0x0085, 0x000e,
+	0x0d00, 0x9086, 0x008b, 0x09e8, 0x0848, 0x0006, 0x0066, 0x0096,
+	0x00b6, 0x00c6, 0x00d6, 0x7818, 0x905d, 0x0904, 0x90bd, 0xb854,
+	0x0006, 0x9006, 0xb856, 0xb85a, 0xb800, 0xc0d4, 0xc0dc, 0xb802,
+	0x080c, 0x61a6, 0x0904, 0x90ba, 0x7e24, 0x86ff, 0x0904, 0x90ad,
+	0x9680, 0x0005, 0x2004, 0x9906, 0x1904, 0x90ad, 0x00d6, 0x2069,
+	0x0100, 0x68c0, 0x9005, 0x0904, 0x90a4, 0x080c, 0x816f, 0x080c,
+	0x9dfe, 0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7827, 0x0000, 0x0036,
+	0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138, 0x2001, 0x0100,
+	0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069, 0x0100, 0x6824,
+	0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x00de, 0x00c6, 0x3e08,
+	0x918e, 0x0002, 0x1168, 0xb800, 0xd0bc, 0x0150, 0x9680, 0x0010,
+	0x200c, 0x81ff, 0x1518, 0x2009, 0x1992, 0x210c, 0x2102, 0x00f0,
+	0xb83c, 0x9005, 0x0110, 0x8001, 0xb83e, 0x2660, 0x600f, 0x0000,
+	0x080c, 0xa99c, 0x00ce, 0x0048, 0x00de, 0x00c6, 0x2660, 0x6003,
+	0x0009, 0x630a, 0x00ce, 0x0804, 0x9050, 0x89ff, 0x0138, 0xa867,
+	0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x68e7, 0x080c, 0xa1af,
+	0x0804, 0x9050, 0x000e, 0x0804, 0x9044, 0x781e, 0x781a, 0x00de,
+	0x00ce, 0x00be, 0x009e, 0x006e, 0x000e, 0x0005, 0x00e6, 0x00d6,
+	0x0096, 0x0066, 0xb800, 0xd0dc, 0x01a0, 0xb84c, 0x904d, 0x0188,
+	0xa878, 0x9606, 0x1170, 0x2071, 0x19f1, 0x7024, 0x9035, 0x0148,
+	0x9080, 0x0005, 0x2004, 0x9906, 0x1120, 0xb800, 0xc0dc, 0xb802,
+	0x0029, 0x006e, 0x009e, 0x00de, 0x00ee, 0x0005, 0x00f6, 0x2079,
+	0x0100, 0x78c0, 0x9005, 0x1138, 0x00c6, 0x2660, 0x6003, 0x0009,
+	0x630a, 0x00ce, 0x04b8, 0x080c, 0x9dfe, 0x78c3, 0x0000, 0x080c,
+	0xa2d9, 0x7027, 0x0000, 0x0036, 0x2079, 0x0140, 0x7b04, 0x9384,
+	0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c,
+	0x2ac9, 0x2079, 0x0100, 0x7824, 0xd084, 0x0110, 0x7827, 0x0001,
+	0x080c, 0xa2d9, 0x003e, 0x080c, 0x61a6, 0x00c6, 0xb83c, 0x9005,
+	0x0110, 0x8001, 0xb83e, 0x2660, 0x080c, 0xa96b, 0x00ce, 0xa867,
+	0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xc8af, 0x080c, 0x68e7,
+	0x080c, 0xa1af, 0x00fe, 0x0005, 0x00b6, 0x00e6, 0x00c6, 0x2001,
+	0x180c, 0x2014, 0xc2e4, 0x2202, 0x2071, 0x19f1, 0x7004, 0x9084,
+	0x0007, 0x0002, 0x9144, 0x9148, 0x915f, 0x9188, 0x91c6, 0x9144,
+	0x915f, 0x9142, 0x080c, 0x0db8, 0x00ce, 0x00ee, 0x00be, 0x0005,
+	0x7024, 0x9065, 0x0148, 0x7020, 0x8001, 0x7022, 0x600c, 0x9015,
+	0x0158, 0x7216, 0x600f, 0x0000, 0x7007, 0x0000, 0x7027, 0x0000,
+	0x00ce, 0x00ee, 0x00be, 0x0005, 0x7216, 0x7212, 0x0ca8, 0x6010,
+	0x2058, 0x080c, 0x61a6, 0xb800, 0xc0dc, 0xb802, 0x7007, 0x0000,
+	0x7027, 0x0000, 0x7020, 0x8001, 0x7022, 0x1148, 0x2001, 0x180c,
+	0x2014, 0xd2ec, 0x1180, 0x00ce, 0x00ee, 0x00be, 0x0005, 0xb854,
+	0x9015, 0x0120, 0x721e, 0x080c, 0x922b, 0x0ca8, 0x7218, 0x721e,
+	0x080c, 0x922b, 0x0c80, 0xc2ec, 0x2202, 0x080c, 0x9362, 0x0c58,
+	0x7024, 0x9065, 0x05b8, 0x700c, 0x9c06, 0x1160, 0x080c, 0xa1af,
+	0x600c, 0x9015, 0x0120, 0x720e, 0x600f, 0x0000, 0x0448, 0x720e,
+	0x720a, 0x0430, 0x7014, 0x9c06, 0x1160, 0x080c, 0xa1af, 0x600c,
+	0x9015, 0x0120, 0x7216, 0x600f, 0x0000, 0x00d0, 0x7216, 0x7212,
+	0x00b8, 0x6020, 0x9086, 0x0003, 0x1198, 0x6010, 0x2058, 0x080c,
+	0x61a6, 0xb800, 0xc0dc, 0xb802, 0x080c, 0xa1af, 0x701c, 0x9065,
+	0x0138, 0xb854, 0x9015, 0x0110, 0x721e, 0x0010, 0x7218, 0x721e,
+	0x7027, 0x0000, 0x00ce, 0x00ee, 0x00be, 0x0005, 0x7024, 0x9065,
+	0x0140, 0x080c, 0xa1af, 0x600c, 0x9015, 0x0158, 0x720e, 0x600f,
+	0x0000, 0x080c, 0xa2d9, 0x7027, 0x0000, 0x00ce, 0x00ee, 0x00be,
+	0x0005, 0x720e, 0x720a, 0x0ca8, 0x00d6, 0x2069, 0x19f1, 0x6830,
+	0x9084, 0x0003, 0x0002, 0x91e9, 0x91eb, 0x920f, 0x91e7, 0x080c,
+	0x0db8, 0x00de, 0x0005, 0x00c6, 0x6840, 0x9086, 0x0001, 0x01b8,
+	0x683c, 0x9065, 0x0130, 0x600c, 0x9015, 0x0170, 0x6a3a, 0x600f,
+	0x0000, 0x6833, 0x0000, 0x683f, 0x0000, 0x2011, 0x1a10, 0x2013,
+	0x0000, 0x00ce, 0x00de, 0x0005, 0x683a, 0x6836, 0x0c90, 0x6843,
+	0x0000, 0x6838, 0x9065, 0x0d68, 0x6003, 0x0003, 0x0c50, 0x00c6,
+	0x9006, 0x6842, 0x6846, 0x684a, 0x683c, 0x9065, 0x0160, 0x600c,
+	0x9015, 0x0130, 0x6a3a, 0x600f, 0x0000, 0x683f, 0x0000, 0x0018,
+	0x683e, 0x683a, 0x6836, 0x00ce, 0x00de, 0x0005, 0xc1e5, 0x2001,
+	0x180c, 0x2102, 0x0005, 0x2001, 0x180c, 0x200c, 0xd1ec, 0x0138,
+	0xc1ec, 0x2102, 0x080c, 0x9362, 0x2001, 0x180c, 0x200c, 0x9184,
+	0x0600, 0x9086, 0x0600, 0x0d50, 0x00d6, 0x2069, 0x19f1, 0x6804,
+	0x9084, 0x0007, 0x0006, 0x9005, 0x11c8, 0x2001, 0x1836, 0x2004,
+	0x9084, 0x0028, 0x1198, 0x2001, 0x1988, 0x2004, 0x9086, 0xaaaa,
+	0x0168, 0x2001, 0x1897, 0x2004, 0xd08c, 0x1118, 0xd084, 0x1118,
+	0x0028, 0x080c, 0x9362, 0x000e, 0x00de, 0x0005, 0x000e, 0x0002,
+	0x926a, 0x9327, 0x9327, 0x9327, 0x9327, 0x9329, 0x9327, 0x9268,
+	0x080c, 0x0db8, 0x6820, 0x9005, 0x1110, 0x00de, 0x0005, 0x00c6,
+	0x680c, 0x9065, 0x0520, 0x6114, 0x0096, 0x2148, 0xa964, 0x009e,
+	0x918c, 0x00ff, 0x918e, 0x0035, 0x1180, 0x2009, 0x1836, 0x210c,
+	0x918c, 0x0028, 0x1150, 0x080c, 0x7018, 0x0138, 0x0006, 0x2009,
+	0x1897, 0x2104, 0xc095, 0x200a, 0x000e, 0x6807, 0x0004, 0x6826,
+	0x682b, 0x0000, 0x080c, 0x93ff, 0x00ce, 0x00de, 0x0005, 0x6814,
+	0x9065, 0x0150, 0x6807, 0x0001, 0x6826, 0x682b, 0x0000, 0x080c,
+	0x93ff, 0x00ce, 0x00de, 0x0005, 0x00b6, 0x00e6, 0x6a1c, 0x92dd,
+	0x0000, 0x0904, 0x9313, 0xb84c, 0x900d, 0x0118, 0xb888, 0x9005,
+	0x01a0, 0xb854, 0x905d, 0x0120, 0x920e, 0x0904, 0x9313, 0x0028,
+	0x6818, 0x920e, 0x0904, 0x9313, 0x2058, 0xb84c, 0x900d, 0x0d88,
+	0xb888, 0x9005, 0x1d70, 0x2b00, 0x681e, 0xbb3c, 0xb838, 0x9302,
+	0x1e40, 0x080c, 0xa942, 0x0904, 0x9313, 0x8318, 0xbb3e, 0x6116,
+	0x2b10, 0x6212, 0x0096, 0x2148, 0xa880, 0x9084, 0x00ff, 0x605e,
+	0xa883, 0x0000, 0xa884, 0x009e, 0x908a, 0x199a, 0x0210, 0x2001,
+	0x1999, 0x8003, 0x801b, 0x831b, 0x9318, 0x631a, 0x6114, 0x0096,
+	0x2148, 0xa964, 0x009e, 0x918c, 0x00ff, 0x918e, 0x0048, 0x0538,
+	0x00f6, 0x2c78, 0x2061, 0x0100, 0xbac0, 0x629a, 0x2069, 0x0200,
+	0x2071, 0x0240, 0x080c, 0x9941, 0x2069, 0x19f1, 0xbb00, 0xc3dd,
+	0xbb02, 0x6807, 0x0002, 0x2f18, 0x6b26, 0x682b, 0x0000, 0x7823,
+	0x0003, 0x7803, 0x0001, 0x7807, 0x0040, 0x00fe, 0x00ee, 0x00be,
+	0x00ce, 0x00de, 0x0005, 0x00ee, 0x00be, 0x00ce, 0x0cd0, 0xbb00,
+	0xc3dd, 0xbb02, 0x6807, 0x0006, 0x2f18, 0x6b26, 0x682b, 0x0000,
+	0x080c, 0xa787, 0x00ee, 0x00be, 0x00ce, 0x00de, 0x0005, 0x00de,
+	0x0005, 0x00c6, 0x680c, 0x9065, 0x0508, 0x6114, 0x0096, 0x2148,
+	0xa964, 0x009e, 0x918c, 0x00ff, 0x918e, 0x0035, 0x1180, 0x2009,
+	0x1836, 0x210c, 0x918c, 0x0028, 0x1150, 0x080c, 0x7018, 0x0138,
+	0x0006, 0x2009, 0x1897, 0x2104, 0xc095, 0x200a, 0x000e, 0x6807,
+	0x0004, 0x6826, 0x682b, 0x0000, 0x080c, 0x93ff, 0x00ce, 0x00de,
+	0x0005, 0x2001, 0x180c, 0x2014, 0xc2ed, 0x2202, 0x00de, 0x00fe,
+	0x0005, 0x2001, 0x180c, 0x2014, 0xd2e4, 0x0120, 0xc2e4, 0x2202,
+	0x080c, 0x923c, 0x00f6, 0x00d6, 0x2069, 0x19f1, 0x6830, 0x9086,
+	0x0000, 0x1518, 0x2001, 0x180c, 0x200c, 0xd1c4, 0x1508, 0x6838,
+	0x907d, 0x01d8, 0x6a04, 0x9296, 0x0000, 0x1904, 0x93f8, 0x7920,
+	0x918e, 0x0009, 0x0588, 0x6833, 0x0001, 0x683e, 0x6847, 0x0000,
+	0x684b, 0x0000, 0x0126, 0x00f6, 0x2091, 0x2400, 0x002e, 0x080c,
+	0x1ac3, 0x1178, 0x012e, 0x080c, 0x9c4c, 0x00de, 0x00fe, 0x0005,
+	0xc1c4, 0x2102, 0x0066, 0x2031, 0x0001, 0x080c, 0x70ca, 0x006e,
+	0x08b0, 0x012e, 0x6843, 0x0000, 0x7803, 0x0002, 0x780c, 0x9015,
+	0x0140, 0x6a3a, 0x780f, 0x0000, 0x6833, 0x0000, 0x683f, 0x0000,
+	0x0c20, 0x683a, 0x6836, 0x0cc0, 0x7908, 0xd1fc, 0x1198, 0x6833,
+	0x0001, 0x683e, 0x6847, 0x0000, 0x684b, 0x0000, 0x0126, 0x00f6,
+	0x2091, 0x2400, 0x002e, 0x080c, 0x1ac3, 0x19d8, 0x012e, 0x080c,
+	0x9bcf, 0x0858, 0x2001, 0x1836, 0x2004, 0x9084, 0x0028, 0x1188,
+	0x2001, 0x1988, 0x2004, 0x9086, 0xaaaa, 0x0158, 0x2001, 0x19f2,
+	0x2004, 0x9005, 0x11f0, 0x2001, 0x1897, 0x200c, 0xc185, 0xc18c,
+	0x2102, 0x2f00, 0x6833, 0x0001, 0x683e, 0x6847, 0x0000, 0x684b,
+	0x0000, 0x0126, 0x00f6, 0x2091, 0x2400, 0x002e, 0x080c, 0x1ac3,
+	0x1904, 0x9399, 0x012e, 0x6a3c, 0x2278, 0x080c, 0x9b59, 0x0804,
+	0x938d, 0x2011, 0x1897, 0x2204, 0xc08d, 0x2012, 0x0804, 0x938d,
+	0x6a04, 0x9296, 0x0006, 0x0904, 0x9377, 0x0804, 0x9351, 0x6020,
+	0x9084, 0x000f, 0x000b, 0x0005, 0x9413, 0x9418, 0x9885, 0x990a,
+	0x9418, 0x9885, 0x990a, 0x9413, 0x9418, 0x9413, 0x9413, 0x9413,
+	0x9413, 0x9413, 0x9413, 0x080c, 0x912c, 0x080c, 0x922b, 0x0005,
+	0x00b6, 0x0156, 0x0136, 0x0146, 0x01c6, 0x01d6, 0x00c6, 0x00d6,
+	0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240, 0x6004, 0x908a,
+	0x0053, 0x1a0c, 0x0db8, 0x6110, 0x2158, 0xb9c0, 0x2c78, 0x2061,
+	0x0100, 0x619a, 0x908a, 0x0040, 0x1a04, 0x9484, 0x005b, 0x00fe,
+	0x00ee, 0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e,
+	0x00be, 0x0005, 0x9608, 0x9643, 0x966c, 0x9714, 0x9736, 0x973c,
+	0x9749, 0x9751, 0x975d, 0x9763, 0x9774, 0x9763, 0x97cc, 0x9751,
+	0x97d8, 0x97de, 0x975d, 0x97de, 0x97ea, 0x9482, 0x9482, 0x9482,
+	0x9482, 0x9482, 0x9482, 0x9482, 0x9482, 0x9482, 0x9482, 0x9482,
+	0x9f5a, 0x9f7d, 0x9f87, 0x9fa7, 0x9fd9, 0x9749, 0x9482, 0x9749,
+	0x9763, 0x9482, 0x966c, 0x9714, 0x9482, 0xa3c6, 0x9763, 0x9482,
+	0xa3e2, 0x9763, 0x9482, 0x975d, 0x9602, 0x94a5, 0x9482, 0xa3f8,
+	0xa464, 0xa53b, 0x9482, 0xa548, 0x9746, 0xa573, 0x9482, 0x9fe3,
+	0xa5a0, 0x9482, 0x080c, 0x0db8, 0x2100, 0x005b, 0x00fe, 0x00ee,
+	0x00de, 0x00ce, 0x01de, 0x01ce, 0x014e, 0x013e, 0x015e, 0x00be,
+	0x0005, 0xa631, 0xa6e3, 0x94a3, 0x94cb, 0x9577, 0x9582, 0x94a3,
+	0x9749, 0x94a3, 0x95c9, 0x95d5, 0x94e6, 0x94a3, 0x9501, 0x9535,
+	0xa849, 0xa88e, 0x9763, 0x080c, 0x0db8, 0x00d6, 0x0096, 0x080c,
+	0x97fd, 0x7003, 0x2414, 0x7007, 0x0018, 0x700b, 0x0800, 0x7814,
+	0x2048, 0xa83c, 0x700e, 0xa850, 0x7022, 0xa854, 0x7026, 0x60c3,
+	0x0018, 0x080c, 0x9dd2, 0x009e, 0x00de, 0x0005, 0x7810, 0x00b6,
+	0x2058, 0xb8a0, 0x00be, 0x080c, 0xa8d5, 0x1110, 0xd0bc, 0x0110,
+	0x9085, 0x0001, 0x0005, 0x00d6, 0x0096, 0x080c, 0x97fd, 0x7003,
+	0x0500, 0x7814, 0x2048, 0xa874, 0x700a, 0xa878, 0x700e, 0xa87c,
+	0x7012, 0xa880, 0x7016, 0xa884, 0x701a, 0xa888, 0x701e, 0x60c3,
+	0x0010, 0x080c, 0x9dd2, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096,
+	0x080c, 0x97fd, 0x7003, 0x0500, 0x7814, 0x2048, 0xa8cc, 0x700a,
+	0xa8d0, 0x700e, 0xa8d4, 0x7012, 0xa8d8, 0x7016, 0xa8dc, 0x701a,
+	0xa8e0, 0x701e, 0x60c3, 0x0010, 0x080c, 0x9dd2, 0x009e, 0x00de,
+	0x0005, 0x00d6, 0x0096, 0x0126, 0x2091, 0x8000, 0x080c, 0x97fd,
+	0x20e9, 0x0000, 0x2001, 0x19ad, 0x2003, 0x0000, 0x7814, 0x2048,
+	0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c,
+	0x9080, 0x001b, 0x2098, 0x2001, 0x19ad, 0x0016, 0x200c, 0x2001,
+	0x0001, 0x080c, 0x219d, 0x080c, 0xd2d1, 0x9006, 0x080c, 0x219d,
+	0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c28, 0x04d9, 0x080c,
+	0x9dd2, 0x012e, 0x009e, 0x00de, 0x0005, 0x00d6, 0x0096, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x9848, 0x20e9, 0x0000, 0x2001, 0x19ad,
+	0x2003, 0x0000, 0x7814, 0x2048, 0xa86f, 0x0200, 0xa873, 0x0000,
+	0xa814, 0x8003, 0x60c2, 0xa830, 0x20a8, 0xa860, 0x20e0, 0xa85c,
+	0x9080, 0x001b, 0x2098, 0x2001, 0x19ad, 0x0016, 0x200c, 0x080c,
+	0xd2d1, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c60, 0x0051,
+	0x7814, 0x2048, 0x080c, 0x0f7f, 0x080c, 0x9dd2, 0x012e, 0x009e,
+	0x00de, 0x0005, 0x60c0, 0x8004, 0x9084, 0x0003, 0x9005, 0x0130,
+	0x9082, 0x0004, 0x20a3, 0x0000, 0x8000, 0x1de0, 0x0005, 0x080c,
+	0x97fd, 0x7003, 0x7800, 0x7808, 0x8007, 0x700a, 0x60c3, 0x0008,
+	0x0804, 0x9dd2, 0x00d6, 0x00e6, 0x080c, 0x9848, 0x7814, 0x9084,
+	0xff00, 0x2073, 0x0200, 0x8e70, 0x8e70, 0x9095, 0x0010, 0x2272,
+	0x8e70, 0x2073, 0x0034, 0x8e70, 0x2069, 0x1805, 0x20a9, 0x0004,
+	0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x9598, 0x2069, 0x1801, 0x20a9,
+	0x0004, 0x2d76, 0x8d68, 0x8e70, 0x1f04, 0x95a1, 0x2069, 0x19bd,
+	0x9086, 0xdf00, 0x0110, 0x2069, 0x19d7, 0x20a9, 0x001a, 0x9e86,
+	0x0260, 0x1148, 0x00c6, 0x2061, 0x0200, 0x6010, 0x8000, 0x6012,
+	0x00ce, 0x2071, 0x0240, 0x2d04, 0x8007, 0x2072, 0x8d68, 0x8e70,
+	0x1f04, 0x95af, 0x60c3, 0x004c, 0x080c, 0x9dd2, 0x00ee, 0x00de,
+	0x0005, 0x080c, 0x97fd, 0x7003, 0x6300, 0x7007, 0x0028, 0x7808,
+	0x700e, 0x60c3, 0x0008, 0x0804, 0x9dd2, 0x00d6, 0x0026, 0x0016,
+	0x080c, 0x9848, 0x7003, 0x0200, 0x7814, 0x700e, 0x00e6, 0x9ef0,
+	0x0004, 0x2009, 0x0001, 0x2011, 0x000c, 0x2069, 0x192f, 0x6810,
+	0xd084, 0x1148, 0x2073, 0x0500, 0x8e70, 0x2073, 0x0000, 0x8e70,
+	0x8108, 0x9290, 0x0004, 0x2073, 0x0800, 0x8e70, 0x2073, 0x0000,
+	0x00ee, 0x7206, 0x710a, 0x62c2, 0x080c, 0x9dd2, 0x001e, 0x002e,
+	0x00de, 0x0005, 0x2001, 0x1816, 0x2004, 0x609a, 0x0804, 0x9dd2,
+	0x080c, 0x97fd, 0x7003, 0x5200, 0x2069, 0x1853, 0x6804, 0xd084,
+	0x0130, 0x6828, 0x0016, 0x080c, 0x2657, 0x710e, 0x001e, 0x20a9,
+	0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,
+	0x0250, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x0254,
+	0x4003, 0x080c, 0xa8d5, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248,
+	0x2001, 0x181d, 0x2004, 0x7032, 0x2001, 0x181e, 0x2004, 0x7036,
+	0x0030, 0x2001, 0x1816, 0x2004, 0x9084, 0x00ff, 0x7036, 0x60c3,
+	0x001c, 0x0804, 0x9dd2, 0x080c, 0x97fd, 0x7003, 0x0500, 0x080c,
+	0xa8d5, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248, 0x2001, 0x181d,
+	0x2004, 0x700a, 0x2001, 0x181e, 0x2004, 0x700e, 0x0030, 0x2001,
+	0x1816, 0x2004, 0x9084, 0x00ff, 0x700e, 0x20a9, 0x0004, 0x20e1,
+	0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1, 0x0250, 0x4003,
+	0x60c3, 0x0010, 0x0804, 0x9dd2, 0x080c, 0x97fd, 0x9006, 0x080c,
+	0x65a2, 0xb8a0, 0x9086, 0x007e, 0x1130, 0x7003, 0x0400, 0x620c,
+	0xc2b4, 0x620e, 0x0058, 0x7814, 0x0096, 0x904d, 0x0120, 0x9006,
+	0xa89a, 0xa8a6, 0xa8aa, 0x009e, 0x7003, 0x0300, 0xb8a0, 0x9086,
+	0x007e, 0x1904, 0x96db, 0x00d6, 0x2069, 0x1978, 0x2001, 0x1836,
+	0x2004, 0xd0a4, 0x0188, 0x6800, 0x700a, 0x6808, 0x9084, 0x2000,
+	0x7012, 0x080c, 0xa8ec, 0x680c, 0x7016, 0x701f, 0x2710, 0x6818,
+	0x7022, 0x681c, 0x7026, 0x0090, 0x6800, 0x700a, 0x6804, 0x700e,
+	0x6808, 0x080c, 0x7018, 0x1118, 0x9084, 0x37ff, 0x0010, 0x9084,
+	0x3fff, 0x7012, 0x080c, 0xa8ec, 0x680c, 0x7016, 0x00de, 0x20a9,
+	0x0004, 0x20e1, 0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1,
+	0x0256, 0x4003, 0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x025a,
+	0x4003, 0x00d6, 0x080c, 0xa618, 0x2069, 0x1980, 0x2071, 0x024e,
+	0x6800, 0xc0dd, 0x7002, 0x080c, 0x53a7, 0xd0e4, 0x0110, 0x680c,
+	0x700e, 0x00de, 0x04a8, 0x2001, 0x1836, 0x2004, 0xd0a4, 0x0170,
+	0x0016, 0x2001, 0x1979, 0x200c, 0x60e0, 0x9106, 0x0130, 0x2100,
+	0x60e3, 0x0000, 0x080c, 0x2698, 0x61e2, 0x001e, 0x20e1, 0x0001,
+	0x2099, 0x1978, 0x20e9, 0x0000, 0x20a1, 0x024e, 0x20a9, 0x0008,
+	0x4003, 0x20a9, 0x0004, 0x2099, 0x1805, 0x20a1, 0x0256, 0x4003,
+	0x20a9, 0x0004, 0x2099, 0x1801, 0x20a1, 0x025a, 0x4003, 0x080c,
+	0xa618, 0x20a1, 0x024e, 0x20a9, 0x0008, 0x2099, 0x1980, 0x4003,
+	0x60c3, 0x0074, 0x0804, 0x9dd2, 0x080c, 0x97fd, 0x7003, 0x2010,
+	0x7007, 0x0014, 0x700b, 0x0800, 0x700f, 0x2000, 0x9006, 0x00f6,
+	0x2079, 0x1853, 0x7904, 0x00fe, 0xd1ac, 0x1110, 0x9085, 0x0020,
+	0xd1a4, 0x0110, 0x9085, 0x0010, 0x9085, 0x0002, 0x00d6, 0x0804,
+	0x97ad, 0x7026, 0x60c3, 0x0014, 0x0804, 0x9dd2, 0x080c, 0x97fd,
+	0x7003, 0x5000, 0x0804, 0x9686, 0x080c, 0x97fd, 0x7003, 0x2110,
+	0x7007, 0x0014, 0x60c3, 0x0014, 0x0804, 0x9dd2, 0x080c, 0x983f,
+	0x0010, 0x080c, 0x9848, 0x7003, 0x0200, 0x60c3, 0x0004, 0x0804,
+	0x9dd2, 0x080c, 0x9848, 0x7003, 0x0100, 0x700b, 0x0003, 0x700f,
+	0x2a00, 0x60c3, 0x0008, 0x0804, 0x9dd2, 0x080c, 0x9848, 0x7003,
+	0x0200, 0x0804, 0x9686, 0x080c, 0x9848, 0x7003, 0x0100, 0x782c,
+	0x9005, 0x0110, 0x700a, 0x0010, 0x700b, 0x0003, 0x7814, 0x700e,
+	0x60c3, 0x0008, 0x0804, 0x9dd2, 0x00d6, 0x080c, 0x9848, 0x7003,
+	0x0210, 0x7007, 0x0014, 0x700b, 0x0800, 0xb894, 0x9086, 0x0014,
+	0x1198, 0xb99c, 0x9184, 0x0030, 0x0190, 0xb998, 0x9184, 0xc000,
+	0x1140, 0xd1ec, 0x0118, 0x700f, 0x2100, 0x0058, 0x700f, 0x0100,
+	0x0040, 0x700f, 0x0400, 0x0028, 0x700f, 0x0700, 0x0010, 0x700f,
+	0x0800, 0x00f6, 0x2079, 0x1853, 0x7904, 0x00fe, 0xd1ac, 0x1110,
+	0x9085, 0x0020, 0xd1a4, 0x0110, 0x9085, 0x0010, 0x2009, 0x1875,
+	0x210c, 0xd184, 0x1110, 0x9085, 0x0002, 0x0026, 0x2009, 0x1873,
+	0x210c, 0xd1e4, 0x0150, 0xc0c5, 0xbacc, 0xd28c, 0x1108, 0xc0cd,
+	0x9094, 0x0030, 0x9296, 0x0010, 0x0140, 0xd1ec, 0x0130, 0x9094,
+	0x0030, 0x9296, 0x0010, 0x0108, 0xc0bd, 0x002e, 0x7026, 0x60c3,
+	0x0014, 0x00de, 0x0804, 0x9dd2, 0x080c, 0x9848, 0x7003, 0x0210,
+	0x7007, 0x0014, 0x700f, 0x0100, 0x60c3, 0x0014, 0x0804, 0x9dd2,
+	0x080c, 0x9848, 0x7003, 0x0200, 0x0804, 0x960c, 0x080c, 0x9848,
+	0x7003, 0x0100, 0x700b, 0x0003, 0x700f, 0x2a00, 0x60c3, 0x0008,
+	0x0804, 0x9dd2, 0x080c, 0x9848, 0x7003, 0x0100, 0x700b, 0x000b,
+	0x60c3, 0x0008, 0x0804, 0x9dd2, 0x0026, 0x00d6, 0x0036, 0x0046,
+	0x2019, 0x3200, 0x2021, 0x0800, 0x0040, 0x0026, 0x00d6, 0x0036,
+	0x0046, 0x2019, 0x2200, 0x2021, 0x0100, 0x080c, 0xa62d, 0xb810,
+	0x9305, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6874, 0x700a,
+	0x6878, 0x700e, 0x9485, 0x0029, 0x7012, 0x004e, 0x003e, 0x00de,
+	0x080c, 0x9dc0, 0x721a, 0x9f95, 0x0000, 0x7222, 0x7027, 0xffff,
+	0x2071, 0x024c, 0x002e, 0x0005, 0x0026, 0x080c, 0xa62d, 0x7003,
+	0x02ff, 0x7007, 0xfffc, 0x00d6, 0x2069, 0x1800, 0x6874, 0x700a,
+	0x6878, 0x700e, 0x00de, 0x7013, 0x2029, 0x0c10, 0x7003, 0x0100,
+	0x7007, 0x0000, 0x700b, 0xfc02, 0x700f, 0x0000, 0x0005, 0x0026,
+	0x00d6, 0x0036, 0x0046, 0x2019, 0x3300, 0x2021, 0x0800, 0x0040,
+	0x0026, 0x00d6, 0x0036, 0x0046, 0x2019, 0x2300, 0x2021, 0x0100,
+	0x080c, 0xa62d, 0xb810, 0x9305, 0x7002, 0xb814, 0x7006, 0x2069,
+	0x1800, 0xb810, 0x9005, 0x1140, 0xb814, 0x9005, 0x1128, 0x700b,
+	0x00ff, 0x700f, 0xfffe, 0x0020, 0x6874, 0x700a, 0x6878, 0x700e,
+	0x0000, 0x9485, 0x0098, 0x7012, 0x004e, 0x003e, 0x00de, 0x080c,
+	0x9dc0, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071, 0x024c,
+	0x002e, 0x0005, 0x080c, 0x9dc0, 0x721a, 0x7a08, 0x7222, 0x7814,
+	0x7026, 0x2071, 0x024c, 0x002e, 0x0005, 0x00b6, 0x00c6, 0x00d6,
+	0x00e6, 0x00f6, 0x2069, 0x0200, 0x2071, 0x0240, 0x6004, 0x908a,
+	0x0085, 0x0a0c, 0x0db8, 0x908a, 0x0092, 0x1a0c, 0x0db8, 0x6110,
+	0x2158, 0xb9c0, 0x2c78, 0x2061, 0x0100, 0x619a, 0x9082, 0x0085,
+	0x0033, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x00be, 0x0005, 0x98b6,
+	0x98bb, 0x98c6, 0x98b4, 0x98b4, 0x98b4, 0x98b6, 0x98b4, 0x98b4,
+	0x98b4, 0x98b4, 0x98b4, 0x98b4, 0x080c, 0x0db8, 0x00c1, 0x60c3,
+	0x0000, 0x0804, 0x9dd2, 0x0431, 0x7808, 0x700a, 0x7814, 0x700e,
+	0x7017, 0xffff, 0x60c3, 0x000c, 0x0804, 0x9dd2, 0x0479, 0x7003,
+	0x0003, 0x7007, 0x0300, 0x60c3, 0x0004, 0x0804, 0x9dd2, 0x0026,
+	0x080c, 0xa62d, 0xb810, 0x9085, 0x8100, 0x7002, 0xb814, 0x7006,
+	0x2069, 0x1800, 0x6874, 0x700a, 0x6878, 0x700e, 0x7013, 0x0009,
+	0x0804, 0x9818, 0x0026, 0x080c, 0xa62d, 0xb810, 0x9085, 0x8400,
+	0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6874, 0x700a, 0x6878,
+	0x700e, 0x2001, 0x0099, 0x7012, 0x0804, 0x987a, 0x0026, 0x080c,
+	0xa62d, 0xb810, 0x9085, 0x8500, 0x7002, 0xb814, 0x7006, 0x2069,
+	0x1800, 0x6874, 0x700a, 0x6878, 0x700e, 0x2001, 0x0099, 0x7012,
+	0x0804, 0x987a, 0x00b6, 0x00c6, 0x00d6, 0x00e6, 0x00f6, 0x2c78,
+	0x2069, 0x0200, 0x2071, 0x0240, 0x7804, 0x908a, 0x0040, 0x0a0c,
+	0x0db8, 0x908a, 0x0054, 0x1a0c, 0x0db8, 0x7910, 0x2158, 0xb9c0,
+	0x2061, 0x0100, 0x619a, 0x9082, 0x0040, 0x0033, 0x00fe, 0x00ee,
+	0x00de, 0x00ce, 0x00be, 0x0005, 0x9941, 0x99e8, 0x99bb, 0x9b0a,
+	0x993f, 0x993f, 0x993f, 0x993f, 0x993f, 0x993f, 0x993f, 0xa17c,
+	0xa188, 0xa194, 0xa1a0, 0x993f, 0xa57f, 0x993f, 0xa170, 0x080c,
+	0x0db8, 0x0096, 0x780b, 0xffff, 0x080c, 0x9997, 0x7914, 0x2148,
+	0xa978, 0x7956, 0x7132, 0xa97c, 0x9184, 0x000f, 0x1118, 0x2001,
+	0x0005, 0x0040, 0xd184, 0x0118, 0x2001, 0x0004, 0x0018, 0x9084,
+	0x0006, 0x8004, 0x2010, 0x785c, 0x9084, 0x00ff, 0x8007, 0x9205,
+	0x7042, 0xd1ac, 0x0128, 0x7047, 0x0002, 0x080c, 0x1606, 0x0050,
+	0xd1b4, 0x0118, 0x7047, 0x0001, 0x0028, 0x7047, 0x0000, 0x9016,
+	0x2230, 0x0010, 0xaab0, 0xaeac, 0x726a, 0x766e, 0x20a9, 0x0008,
+	0x20e9, 0x0000, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0023, 0x2098,
+	0x20a1, 0x0252, 0x2069, 0x0200, 0x6813, 0x0018, 0x4003, 0x6813,
+	0x0008, 0x60c3, 0x0020, 0x6017, 0x0009, 0x2001, 0x1a0d, 0x2003,
+	0x07d0, 0x2001, 0x1a0c, 0x2003, 0x0009, 0x009e, 0x0005, 0x6813,
+	0x0008, 0xba8c, 0x8210, 0xb8cc, 0xd084, 0x0128, 0x7a46, 0x7b14,
+	0x7b4a, 0x722e, 0x732a, 0x9294, 0x00ff, 0xba8e, 0x8217, 0x721a,
+	0xba10, 0x9295, 0x0600, 0x7202, 0xba14, 0x7206, 0x2069, 0x1800,
+	0x6a74, 0x720a, 0x6a78, 0x720e, 0x7013, 0x0829, 0x2f10, 0x7222,
+	0x7027, 0xffff, 0x0005, 0x00d6, 0x0096, 0x0081, 0x7814, 0x2048,
+	0xa890, 0x7002, 0xa88c, 0x7006, 0xa8b0, 0x700a, 0xa8ac, 0x700e,
+	0x60c3, 0x000c, 0x009e, 0x00de, 0x0804, 0x9dd2, 0x6813, 0x0008,
+	0xb810, 0x9085, 0x0500, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,
+	0x6874, 0x700a, 0x6878, 0x700e, 0x7013, 0x0889, 0x080c, 0x9dc0,
+	0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226, 0x2071, 0x024c, 0x0005,
+	0x00d6, 0x0096, 0x080c, 0x9ae8, 0x7814, 0x2048, 0x080c, 0xc5cf,
+	0x1130, 0x7814, 0x9084, 0x0700, 0x8007, 0x0033, 0x0010, 0x9006,
+	0x001b, 0x009e, 0x00de, 0x0005, 0x9a06, 0x9a6f, 0x9a7f, 0x9aa5,
+	0x9ab1, 0x9ac2, 0x9aca, 0x9a04, 0x080c, 0x0db8, 0x0016, 0x0036,
+	0xa97c, 0x918c, 0x0003, 0x0118, 0x9186, 0x0003, 0x1198, 0xaba8,
+	0x7824, 0xd0cc, 0x1168, 0x7316, 0xa898, 0x701a, 0xa894, 0x701e,
+	0x003e, 0x001e, 0x2001, 0x19bb, 0x2004, 0x60c2, 0x0804, 0x9dd2,
+	0xc3e5, 0x0c88, 0x9186, 0x0001, 0x190c, 0x0db8, 0xaba8, 0x7824,
+	0xd0cc, 0x1904, 0x9a6c, 0x7316, 0xa898, 0x701a, 0xa894, 0x701e,
+	0xa8a4, 0x7026, 0xa8ac, 0x702e, 0x2009, 0x0018, 0x9384, 0x0300,
+	0x0570, 0xd3c4, 0x0110, 0xa8ac, 0x9108, 0xd3cc, 0x0110, 0xa8a4,
+	0x9108, 0x6810, 0x9085, 0x0010, 0x6812, 0x2011, 0x0258, 0x20e9,
+	0x0000, 0x22a0, 0x0156, 0x20a9, 0x0008, 0xa860, 0x20e0, 0xa85c,
+	0x9080, 0x002c, 0x2098, 0x4003, 0x6810, 0x8000, 0x6812, 0x2011,
+	0x0240, 0x22a0, 0x20a9, 0x0005, 0x4003, 0x6810, 0xc084, 0x6812,
+	0x015e, 0x9184, 0x0003, 0x0118, 0x2019, 0x0245, 0x201a, 0x61c2,
+	0x003e, 0x001e, 0x0804, 0x9dd2, 0xc3e5, 0x0804, 0x9a2b, 0x2011,
+	0x0008, 0x2001, 0x180e, 0x2004, 0xd0a4, 0x0110, 0x2011, 0x0028,
+	0x7824, 0xd0cc, 0x1110, 0x7216, 0x0470, 0x0ce8, 0xc2e5, 0x2011,
+	0x0302, 0x0016, 0x782c, 0x701a, 0x7930, 0x711e, 0x9105, 0x0108,
+	0xc2dd, 0x001e, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216, 0x7027,
+	0x0012, 0x702f, 0x0008, 0x7043, 0x7000, 0x7047, 0x0500, 0x704f,
+	0x000a, 0x2069, 0x0200, 0x6813, 0x0009, 0x2071, 0x0240, 0x700b,
+	0x2500, 0x60c3, 0x0032, 0x0804, 0x9dd2, 0x2011, 0x0028, 0x7824,
+	0xd0cc, 0x1128, 0x7216, 0x60c3, 0x0018, 0x0804, 0x9dd2, 0x0cd0,
+	0xc2e5, 0x2011, 0x0100, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216,
+	0x702f, 0x0008, 0x7858, 0x9084, 0x00ff, 0x7036, 0x60c3, 0x0020,
+	0x0804, 0x9dd2, 0x2011, 0x0008, 0x7824, 0xd0cc, 0x0108, 0xc2e5,
+	0x7216, 0x0c08, 0x0036, 0x7b14, 0x9384, 0xff00, 0x7816, 0x9384,
+	0x00ff, 0x8001, 0x1138, 0x7824, 0xd0cc, 0x0108, 0xc2e5, 0x7216,
+	0x003e, 0x0888, 0x0046, 0x2021, 0x0800, 0x0006, 0x7824, 0xd0cc,
+	0x000e, 0x0108, 0xc4e5, 0x7416, 0x004e, 0x701e, 0x003e, 0x0818,
+	0x00d6, 0x6813, 0x0008, 0xb810, 0x9085, 0x0700, 0x7002, 0xb814,
+	0x7006, 0x2069, 0x1800, 0x6874, 0x700a, 0x6878, 0x700e, 0x7824,
+	0xd0cc, 0x1168, 0x7013, 0x0898, 0x080c, 0x9dc0, 0x721a, 0x7a08,
+	0x7222, 0x2f10, 0x7226, 0x2071, 0x024c, 0x00de, 0x0005, 0x7013,
+	0x0889, 0x0c90, 0x0016, 0x7814, 0x9084, 0x0700, 0x8007, 0x0013,
+	0x001e, 0x0005, 0x9b1a, 0x9b1a, 0x9b1c, 0x9b1a, 0x9b1a, 0x9b1a,
+	0x9b36, 0x9b1a, 0x080c, 0x0db8, 0x7914, 0x918c, 0x08ff, 0x918d,
+	0xf600, 0x7916, 0x2009, 0x0003, 0x00b9, 0x2069, 0x1853, 0x6804,
+	0xd0bc, 0x0130, 0x682c, 0x9084, 0x00ff, 0x8007, 0x7032, 0x0010,
+	0x7033, 0x3f00, 0x60c3, 0x0001, 0x0804, 0x9dd2, 0x2009, 0x0003,
+	0x0019, 0x7033, 0x7f00, 0x0cb0, 0x0016, 0x080c, 0xa62d, 0x001e,
+	0xb810, 0x9085, 0x0100, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800,
+	0x6a74, 0x720a, 0x6a78, 0x720e, 0x7013, 0x0888, 0x918d, 0x0008,
+	0x7116, 0x080c, 0x9dc0, 0x721a, 0x7a08, 0x7222, 0x2f10, 0x7226,
+	0x0005, 0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046,
+	0x0036, 0x2061, 0x0100, 0x2071, 0x1800, 0x7158, 0x7810, 0x2058,
+	0x76d8, 0x96b4, 0x0028, 0x0110, 0x7374, 0x7478, 0x2500, 0x76d8,
+	0x96b4, 0x0028, 0x0140, 0x2001, 0x04ff, 0x6062, 0x6067, 0xffff,
+	0x636a, 0x646e, 0x0050, 0x2001, 0x00ff, 0x9085, 0x0400, 0x6062,
+	0x6067, 0xffff, 0x606b, 0x0000, 0x616e, 0xb8b8, 0x6073, 0x0530,
+	0x6077, 0x0008, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007,
+	0x9085, 0x0020, 0x607a, 0x607f, 0x0000, 0x2b00, 0x6082, 0x6087,
+	0xffff, 0x7814, 0x0096, 0x2048, 0xa838, 0x608a, 0xa834, 0x608e,
+	0xa848, 0x60c6, 0xa844, 0x60ca, 0x009e, 0xb86c, 0x60ce, 0x60ab,
+	0x0036, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x2001, 0x1836, 0x2004,
+	0x9084, 0x0028, 0x0128, 0x609f, 0x0000, 0x2001, 0x0092, 0x0048,
+	0x6028, 0xc0bd, 0x602a, 0x609f, 0x00ff, 0x6027, 0xffff, 0x2001,
+	0x00b2, 0x6016, 0x2009, 0x07d0, 0x080c, 0x8174, 0x003e, 0x004e,
+	0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee, 0x00be, 0x0005, 0x00b6,
+	0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056, 0x0046, 0x0036, 0x2061,
+	0x0100, 0x2071, 0x1800, 0x7158, 0x7810, 0x2058, 0xb8a0, 0x2028,
+	0x76d8, 0xd6ac, 0x1160, 0x9582, 0x007e, 0x1248, 0x2500, 0xd0bc,
+	0x1130, 0x9080, 0x30f4, 0x2015, 0x9294, 0x00ff, 0x0020, 0xb910,
+	0xba14, 0x7374, 0x7478, 0x70d8, 0xd0ac, 0x1128, 0x9582, 0x007e,
+	0x1210, 0xd5bc, 0x0138, 0x9185, 0x0400, 0x6062, 0x6266, 0x636a,
+	0x646e, 0x0030, 0x6063, 0x0400, 0x6266, 0x606b, 0x0000, 0x616e,
+	0xb8b8, 0x6072, 0x6077, 0x0000, 0xb864, 0xd0a4, 0x0110, 0x6077,
+	0x0008, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x9085,
+	0x0020, 0x607a, 0x607f, 0x0000, 0x2b00, 0x6082, 0x6087, 0xffff,
+	0x7814, 0x0096, 0x2048, 0xa838, 0x608a, 0xa834, 0x608e, 0xa848,
+	0x60c6, 0xa844, 0x60ca, 0x009e, 0xb86c, 0x60ce, 0x60ab, 0x0036,
+	0x60af, 0x95d5, 0x60d7, 0x0000, 0xbac0, 0x629e, 0x00f6, 0x2079,
+	0x0140, 0x7803, 0x0000, 0x00fe, 0x2009, 0x0092, 0x6116, 0x2009,
+	0x07d0, 0x080c, 0x8174, 0x003e, 0x004e, 0x005e, 0x006e, 0x00ce,
+	0x00de, 0x00ee, 0x00be, 0x0005, 0x00b6, 0x0096, 0x00e6, 0x00d6,
+	0x00c6, 0x0056, 0x0046, 0x0036, 0x2061, 0x0100, 0x2071, 0x1800,
+	0x7158, 0x7810, 0x2058, 0xb8a0, 0x2028, 0xb910, 0xba14, 0x7374,
+	0x7478, 0x7820, 0x90be, 0x0006, 0x0904, 0x9d2f, 0x90be, 0x000a,
+	0x1904, 0x9ceb, 0x609f, 0x0000, 0x7814, 0x2048, 0xa87c, 0xd0fc,
+	0x05c8, 0xaf90, 0x9784, 0xff00, 0x9105, 0x6062, 0x873f, 0x9784,
+	0xff00, 0x0006, 0x7814, 0x2048, 0xa878, 0x9005, 0x000e, 0x1160,
+	0xaf94, 0x87ff, 0x0510, 0x2039, 0x0098, 0x9705, 0x6072, 0x7808,
+	0x6082, 0x2f00, 0x6086, 0x0038, 0x9185, 0x2200, 0x6062, 0x6073,
+	0x0129, 0x6077, 0x0000, 0x609f, 0x0000, 0x2001, 0x1836, 0x2004,
+	0xd0ac, 0x11a8, 0xd09c, 0x0130, 0x7814, 0x2048, 0xa874, 0x9082,
+	0x0080, 0x1268, 0xb814, 0x609e, 0x0050, 0x2039, 0x0029, 0x9705,
+	0x6072, 0x0c48, 0x9185, 0x0200, 0x6062, 0x6073, 0x2029, 0xa87c,
+	0xd0fc, 0x0118, 0xaf94, 0x87ff, 0x1120, 0x2f00, 0x6082, 0x7808,
+	0x6086, 0x6266, 0x636a, 0x646e, 0x6077, 0x0000, 0xb88c, 0x8000,
+	0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0xa838,
+	0x608a, 0xa834, 0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0xb86c,
+	0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0x080c, 0xa612, 0x2009,
+	0x07d0, 0x60c4, 0x9084, 0xfff0, 0x9005, 0x0110, 0x2009, 0x1b58,
+	0x080c, 0x8174, 0x003e, 0x004e, 0x005e, 0x00ce, 0x00de, 0x00ee,
+	0x009e, 0x00be, 0x0005, 0x7804, 0x9086, 0x0040, 0x0904, 0x9d6b,
+	0x9185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x0809,
+	0x6077, 0x0008, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xb88c, 0x8000,
+	0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f, 0x0000, 0x2f00,
+	0x6082, 0x7808, 0x6086, 0x7814, 0x2048, 0xa838, 0x608a, 0xa834,
+	0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0xbac0,
+	0x629e, 0x080c, 0xa612, 0x2009, 0x07d0, 0x60c4, 0x9084, 0xfff0,
+	0x9005, 0x0110, 0x2009, 0x1b58, 0x080c, 0x8174, 0x003e, 0x004e,
+	0x005e, 0x00ce, 0x00de, 0x00ee, 0x009e, 0x00be, 0x0005, 0x7814,
+	0x2048, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002, 0x0904, 0x9d87,
+	0x9185, 0x0100, 0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x0880,
+	0x6077, 0x0008, 0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007,
+	0x607a, 0x7838, 0x607e, 0x2f00, 0x6086, 0x7808, 0x6082, 0xa890,
+	0x608a, 0xa88c, 0x608e, 0xa8b0, 0x60c6, 0xa8ac, 0x60ca, 0xa8ac,
+	0x7930, 0x9108, 0x7932, 0xa8b0, 0x792c, 0x9109, 0x792e, 0xb86c,
+	0x60ce, 0x60af, 0x95d5, 0x60d7, 0x0000, 0xbac0, 0x629e, 0x080c,
+	0xa5ef, 0x0804, 0x9d1b, 0xb8cc, 0xd084, 0x0148, 0xb88c, 0x7814,
+	0x2048, 0xb88c, 0x7846, 0xa836, 0x2900, 0xa83a, 0xb04a, 0x9185,
+	0x0600, 0x6062, 0x6266, 0x636a, 0x646e, 0x6073, 0x0829, 0x6077,
+	0x0000, 0x60af, 0x9575, 0x60d7, 0x0000, 0x0804, 0x9cfe, 0x9185,
+	0x0700, 0x6062, 0x6266, 0x636a, 0x646e, 0x7824, 0xd0cc, 0x7826,
+	0x0118, 0x6073, 0x0889, 0x0010, 0x6073, 0x0898, 0x6077, 0x0000,
+	0xb88c, 0x8000, 0x9084, 0x00ff, 0xb88e, 0x8007, 0x607a, 0x607f,
+	0x0000, 0x2f00, 0x6086, 0x7808, 0x6082, 0xa838, 0x608a, 0xa834,
+	0x608e, 0xa848, 0x60c6, 0xa844, 0x60ca, 0xb86c, 0x60ce, 0x60af,
+	0x95d5, 0x60d7, 0x0000, 0xbac0, 0x629e, 0x7824, 0xd0cc, 0x0120,
+	0x080c, 0xa612, 0x0804, 0x9d1b, 0x080c, 0xa5ef, 0x0804, 0x9d1b,
+	0x7a10, 0x00b6, 0x2258, 0xba8c, 0x8210, 0x9294, 0x00ff, 0xba8e,
+	0x00be, 0x8217, 0x0005, 0x00d6, 0x2069, 0x19f1, 0x6843, 0x0001,
+	0x00de, 0x0005, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x00f1, 0x080c,
+	0x8166, 0x0005, 0x0016, 0x2001, 0x180c, 0x200c, 0x9184, 0x0600,
+	0x9086, 0x0600, 0x0128, 0x0089, 0x080c, 0x8166, 0x001e, 0x0005,
+	0xc1e5, 0x2001, 0x180c, 0x2102, 0x2001, 0x19f2, 0x2003, 0x0000,
+	0x2001, 0x19fa, 0x2003, 0x0000, 0x0c88, 0x0006, 0x6014, 0x9084,
+	0x1804, 0x9085, 0x0009, 0x6016, 0x000e, 0x0005, 0x0016, 0x00c6,
+	0x0006, 0x2061, 0x0100, 0x61a4, 0x60a7, 0x95f5, 0x6014, 0x9084,
+	0x1804, 0x9085, 0x0008, 0x6016, 0x000e, 0xa001, 0xa001, 0xa001,
+	0x61a6, 0x00ce, 0x001e, 0x0005, 0x00c6, 0x00d6, 0x0016, 0x0026,
+	0x2061, 0x0100, 0x2069, 0x0140, 0x080c, 0x7018, 0x1198, 0x2001,
+	0x1a0d, 0x2004, 0x9005, 0x15a8, 0x0066, 0x2031, 0x0001, 0x080c,
+	0x70ca, 0x006e, 0x1118, 0x080c, 0x8166, 0x0458, 0x00c6, 0x2061,
+	0x19f1, 0x00c8, 0x6904, 0x9194, 0x4000, 0x0540, 0x0839, 0x080c,
+	0x2ade, 0x00c6, 0x2061, 0x19f1, 0x6128, 0x9192, 0x0008, 0x1258,
+	0x8108, 0x612a, 0x6124, 0x00ce, 0x81ff, 0x0198, 0x080c, 0x8166,
+	0x080c, 0x9df5, 0x0070, 0x6124, 0x91e5, 0x0000, 0x0140, 0x080c,
+	0xe3ca, 0x080c, 0x816f, 0x2009, 0x0014, 0x080c, 0xa9e6, 0x00ce,
+	0x0000, 0x002e, 0x001e, 0x00de, 0x00ce, 0x0005, 0x2001, 0x1a0d,
+	0x2004, 0x9005, 0x1db0, 0x00c6, 0x2061, 0x19f1, 0x6128, 0x9192,
+	0x0003, 0x1e08, 0x8108, 0x612a, 0x00ce, 0x080c, 0x8166, 0x080c,
+	0x5b68, 0x2009, 0x1852, 0x2114, 0x8210, 0x220a, 0x0c10, 0x0096,
+	0x00c6, 0x00d6, 0x00e6, 0x0016, 0x0026, 0x080c, 0x817c, 0x2071,
+	0x19f1, 0x713c, 0x81ff, 0x0904, 0x9ef9, 0x2061, 0x0100, 0x2069,
+	0x0140, 0x080c, 0x7018, 0x1500, 0x0036, 0x2019, 0x0002, 0x080c,
+	0xa0c0, 0x003e, 0x713c, 0x2160, 0x080c, 0xe3ca, 0x2009, 0x004a,
+	0x6220, 0x9296, 0x0009, 0x1130, 0x6114, 0x2148, 0xa87b, 0x0006,
+	0x2009, 0x004a, 0x080c, 0xa9e6, 0x0066, 0x2031, 0x0001, 0x080c,
+	0x70ca, 0x006e, 0x0804, 0x9ef9, 0x6904, 0xd1f4, 0x0904, 0x9f00,
+	0x080c, 0x2ade, 0x00c6, 0x703c, 0x9065, 0x090c, 0x0db8, 0x6020,
+	0x00ce, 0x9086, 0x0006, 0x1528, 0x61c8, 0x60c4, 0x9105, 0x1508,
+	0x2009, 0x180c, 0x2104, 0xd0d4, 0x01e0, 0x6214, 0x9294, 0x1800,
+	0x1128, 0x6224, 0x9294, 0x0002, 0x1560, 0x0030, 0xc0d4, 0x200a,
+	0xd0cc, 0x0110, 0x080c, 0x2a30, 0x6014, 0x9084, 0xe7fd, 0x9085,
+	0x0010, 0x6016, 0x703c, 0x2060, 0x2009, 0x0049, 0x080c, 0xa9e6,
+	0x00c0, 0x0036, 0x2019, 0x0001, 0x080c, 0xa0c0, 0x003e, 0x713c,
+	0x2160, 0x080c, 0xe3ca, 0x2009, 0x004a, 0x6220, 0x9296, 0x0009,
+	0x1130, 0x6114, 0x2148, 0xa87b, 0x0006, 0x2009, 0x004a, 0x080c,
+	0xa9e6, 0x002e, 0x001e, 0x00ee, 0x00de, 0x00ce, 0x009e, 0x0005,
+	0xd1ec, 0x1904, 0x9eb0, 0x0804, 0x9eb2, 0x0026, 0x00e6, 0x2071,
+	0x19f1, 0x7048, 0xd084, 0x01d8, 0x713c, 0x81ff, 0x01c0, 0x2071,
+	0x0100, 0x9188, 0x0008, 0x2114, 0x928e, 0x0006, 0x1138, 0x7014,
+	0x9084, 0x1984, 0x9085, 0x0012, 0x7016, 0x0048, 0x928e, 0x0009,
+	0x0db0, 0x7014, 0x9084, 0x1984, 0x9085, 0x0016, 0x7016, 0x00ee,
+	0x002e, 0x0005, 0x00b6, 0x00e6, 0x00d6, 0x00c6, 0x0066, 0x0056,
+	0x0046, 0x0006, 0x0126, 0x2091, 0x8000, 0x6010, 0x2058, 0xbca0,
+	0x2071, 0x19f1, 0x7018, 0x2058, 0x8bff, 0x0190, 0xb8a0, 0x9406,
+	0x0118, 0xb854, 0x2058, 0x0cc0, 0x6014, 0x0096, 0x2048, 0xac6c,
+	0xad70, 0xae78, 0x009e, 0x080c, 0x63a6, 0x0110, 0x9085, 0x0001,
+	0x012e, 0x000e, 0x004e, 0x005e, 0x006e, 0x00ce, 0x00de, 0x00ee,
+	0x00be, 0x0005, 0x080c, 0x97fd, 0x7003, 0x1200, 0x7838, 0x7012,
+	0x783c, 0x7016, 0x00c6, 0x7820, 0x9086, 0x0004, 0x1148, 0x7810,
+	0x9005, 0x0130, 0x00b6, 0x2058, 0xb810, 0xb914, 0x00be, 0x0020,
+	0x2061, 0x1800, 0x6074, 0x6178, 0x9084, 0x00ff, 0x700a, 0x710e,
+	0x00ce, 0x60c3, 0x002c, 0x0804, 0x9dd2, 0x080c, 0x97fd, 0x7003,
+	0x0f00, 0x7808, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9dd2, 0x0156,
+	0x080c, 0x9848, 0x7003, 0x0200, 0x2011, 0x1848, 0x63f0, 0x2312,
+	0x20a9, 0x0006, 0x2011, 0x1840, 0x2019, 0x1841, 0x9ef0, 0x0002,
+	0x2376, 0x8e70, 0x2276, 0x8e70, 0x9398, 0x0002, 0x9290, 0x0002,
+	0x1f04, 0x9f98, 0x60c3, 0x001c, 0x015e, 0x0804, 0x9dd2, 0x0016,
+	0x0026, 0x080c, 0x9824, 0x080c, 0x9836, 0x9e80, 0x0004, 0x20e9,
+	0x0000, 0x20a0, 0x7814, 0x0096, 0x2048, 0xa800, 0x2048, 0xa860,
+	0x20e0, 0xa85c, 0x9080, 0x0021, 0x2098, 0x009e, 0x7808, 0x9088,
+	0x0002, 0x21a8, 0x9192, 0x0010, 0x1250, 0x4003, 0x9080, 0x0004,
+	0x8003, 0x60c2, 0x080c, 0x9dd2, 0x002e, 0x001e, 0x0005, 0x20a9,
+	0x0010, 0x4003, 0x080c, 0xa618, 0x20a1, 0x0240, 0x22a8, 0x4003,
+	0x0c68, 0x080c, 0x97fd, 0x7003, 0x6200, 0x7808, 0x700e, 0x60c3,
+	0x0008, 0x0804, 0x9dd2, 0x0016, 0x0026, 0x080c, 0x97fd, 0x20e9,
+	0x0000, 0x20a1, 0x024c, 0x7814, 0x0096, 0x2048, 0xa800, 0x2048,
+	0xa860, 0x20e0, 0xa85c, 0x9080, 0x0023, 0x2098, 0x009e, 0x7808,
+	0x9088, 0x0002, 0x21a8, 0x4003, 0x8003, 0x60c2, 0x080c, 0x9dd2,
+	0x002e, 0x001e, 0x0005, 0x00e6, 0x00c6, 0x0006, 0x0126, 0x2091,
+	0x8000, 0x2071, 0x19f1, 0x700c, 0x2060, 0x8cff, 0x0178, 0x080c,
+	0xc7d0, 0x1110, 0x080c, 0xb313, 0x600c, 0x0006, 0x080c, 0xca25,
+	0x080c, 0xa96b, 0x080c, 0xa1af, 0x00ce, 0x0c78, 0x2c00, 0x700e,
+	0x700a, 0x012e, 0x000e, 0x00ce, 0x00ee, 0x0005, 0x0126, 0x0156,
+	0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026, 0x0016, 0x0006, 0x2091,
+	0x8000, 0x2001, 0x180c, 0x200c, 0x918c, 0xe7ff, 0x2102, 0x2069,
+	0x0100, 0x2079, 0x0140, 0x2071, 0x19f1, 0x7024, 0x2060, 0x8cff,
+	0x05e0, 0x080c, 0x9dfe, 0x6ac0, 0x68c3, 0x0000, 0x080c, 0x816f,
+	0x00c6, 0x2061, 0x0100, 0x080c, 0xa767, 0x00ce, 0x2009, 0x0013,
+	0x080c, 0xa9e6, 0x20a9, 0x01f4, 0x6824, 0xd094, 0x0148, 0x6827,
+	0x0004, 0x7804, 0x9084, 0x4000, 0x01a8, 0x080c, 0x2ade, 0x0090,
+	0xd084, 0x0118, 0x6827, 0x0001, 0x0010, 0x1f04, 0xa054, 0x7804,
+	0x9084, 0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006,
+	0x080c, 0x2ac9, 0x6824, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de,
+	0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005, 0x2001, 0x1800, 0x2004,
+	0x9096, 0x0001, 0x0598, 0x9096, 0x0004, 0x0580, 0x080c, 0x816f,
+	0x6814, 0x9084, 0x0001, 0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008,
+	0x68c3, 0x0000, 0x2011, 0x5b1a, 0x080c, 0x80ec, 0x20a9, 0x01f4,
+	0x6824, 0xd094, 0x0148, 0x6827, 0x0004, 0x7804, 0x9084, 0x4000,
+	0x01a8, 0x080c, 0x2ade, 0x0090, 0xd084, 0x0118, 0x6827, 0x0001,
+	0x0010, 0x1f04, 0xa098, 0x7804, 0x9084, 0x1000, 0x0138, 0x2001,
+	0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x000e, 0x001e,
+	0x002e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x015e, 0x012e, 0x0005,
+	0x0126, 0x0156, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0026, 0x0016,
+	0x0006, 0x2091, 0x8000, 0x2001, 0x180c, 0x200c, 0x918c, 0xdbff,
+	0x2102, 0x2069, 0x0100, 0x2079, 0x0140, 0x2071, 0x19f1, 0x703c,
+	0x2060, 0x8cff, 0x0904, 0xa152, 0x9386, 0x0002, 0x1128, 0x6814,
+	0x9084, 0x0002, 0x0904, 0xa152, 0x68af, 0x95f5, 0x6817, 0x0010,
+	0x2009, 0x00fa, 0x8109, 0x1df0, 0x69c6, 0x68cb, 0x0008, 0x080c,
+	0x817c, 0x080c, 0x1df3, 0x0046, 0x2009, 0x017f, 0x200b, 0x00a5,
+	0x2021, 0x0169, 0x2404, 0x9084, 0x000f, 0x9086, 0x0004, 0x11f8,
+	0x68af, 0x95f5, 0x68c6, 0x68cb, 0x0008, 0x00e6, 0x00f6, 0x2079,
+	0x0090, 0x2071, 0x1a71, 0x6814, 0x9084, 0x1984, 0x9085, 0x0012,
+	0x6816, 0x782b, 0x0008, 0x7003, 0x0000, 0x00fe, 0x00ee, 0x9386,
+	0x0002, 0x1128, 0x7884, 0x9005, 0x1110, 0x7887, 0x0001, 0x2001,
+	0x198b, 0x2004, 0x200a, 0x004e, 0x939d, 0x0000, 0x1140, 0x2009,
+	0x0049, 0x6020, 0x9086, 0x0009, 0x0110, 0x080c, 0xa9e6, 0x20a9,
+	0x03e8, 0x6824, 0xd094, 0x0148, 0x6827, 0x0004, 0x7804, 0x9084,
+	0x4000, 0x01a8, 0x080c, 0x2ade, 0x0090, 0xd08c, 0x0118, 0x6827,
+	0x0002, 0x0010, 0x1f04, 0xa131, 0x7804, 0x9084, 0x1000, 0x0138,
+	0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x6827,
+	0x4000, 0x6824, 0x000e, 0x001e, 0x002e, 0x00ce, 0x00de, 0x00ee,
+	0x00fe, 0x015e, 0x012e, 0x0005, 0x00d6, 0x0126, 0x2091, 0x8000,
+	0x2069, 0x19f1, 0x6a06, 0x012e, 0x00de, 0x0005, 0x00d6, 0x0126,
+	0x2091, 0x8000, 0x2069, 0x19f1, 0x6a32, 0x012e, 0x00de, 0x0005,
+	0x080c, 0x9997, 0x7814, 0x080c, 0x53ab, 0x0108, 0x782c, 0x7032,
+	0x7042, 0x7047, 0x1000, 0x0478, 0x080c, 0x9997, 0x7814, 0x080c,
+	0x53ab, 0x0108, 0x782c, 0x7032, 0x7042, 0x7047, 0x4000, 0x0418,
+	0x080c, 0x9997, 0x7814, 0x080c, 0x53ab, 0x0108, 0x782c, 0x7032,
+	0x7042, 0x7047, 0x2000, 0x00b8, 0x080c, 0x9997, 0x7814, 0x080c,
+	0x53ab, 0x0108, 0x782c, 0x7032, 0x7042, 0x7047, 0x0400, 0x0058,
+	0x080c, 0x9997, 0x7814, 0x080c, 0x53ab, 0x0108, 0x782c, 0x7032,
+	0x7042, 0x7047, 0x0200, 0x60c3, 0x0020, 0x0804, 0x9dd2, 0x00e6,
+	0x2071, 0x19f1, 0x7020, 0x9005, 0x0110, 0x8001, 0x7022, 0x00ee,
+	0x0005, 0x00f6, 0x00e6, 0x00d6, 0x00c6, 0x0076, 0x0066, 0x0006,
+	0x0126, 0x2091, 0x8000, 0x2071, 0x19f1, 0x7614, 0x2660, 0x2678,
+	0x2039, 0x0001, 0x87ff, 0x0904, 0xa254, 0x8cff, 0x0904, 0xa254,
+	0x6020, 0x9086, 0x0006, 0x1904, 0xa24f, 0x88ff, 0x0138, 0x2800,
+	0x9c06, 0x1904, 0xa24f, 0x2039, 0x0000, 0x0050, 0x6010, 0x9b06,
+	0x1904, 0xa24f, 0x85ff, 0x0120, 0x6054, 0x9106, 0x1904, 0xa24f,
+	0x7024, 0x9c06, 0x15b0, 0x2069, 0x0100, 0x68c0, 0x9005, 0x1160,
+	0x6824, 0xd084, 0x0148, 0x6827, 0x0001, 0x080c, 0x816f, 0x080c,
+	0xa2d9, 0x7027, 0x0000, 0x0428, 0x080c, 0x816f, 0x6820, 0xd0b4,
+	0x0110, 0x68a7, 0x95f5, 0x6817, 0x0008, 0x68c3, 0x0000, 0x080c,
+	0xa2d9, 0x7027, 0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384,
+	0x1000, 0x0138, 0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c,
+	0x2ac9, 0x2069, 0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001,
+	0x003e, 0x7014, 0x9c36, 0x1110, 0x660c, 0x7616, 0x7010, 0x9c36,
+	0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7012, 0x0010, 0x7013,
+	0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008,
+	0x2678, 0x89ff, 0x1168, 0x600f, 0x0000, 0x6014, 0x0096, 0x2048,
+	0x080c, 0xc5cf, 0x0110, 0x080c, 0xdf4c, 0x009e, 0x080c, 0xa99c,
+	0x080c, 0xa1af, 0x88ff, 0x1190, 0x00ce, 0x0804, 0xa1ca, 0x2c78,
+	0x600c, 0x2060, 0x0804, 0xa1ca, 0x9006, 0x012e, 0x000e, 0x006e,
+	0x007e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000,
+	0x00ce, 0x98c5, 0x0001, 0x0c88, 0x00f6, 0x00e6, 0x00d6, 0x0096,
+	0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2071,
+	0x19f1, 0x7638, 0x2660, 0x2678, 0x8cff, 0x0904, 0xa2c8, 0x6020,
+	0x9086, 0x0006, 0x1904, 0xa2c3, 0x87ff, 0x0128, 0x2700, 0x9c06,
+	0x1904, 0xa2c3, 0x0040, 0x6010, 0x9b06, 0x15e8, 0x85ff, 0x0118,
+	0x6054, 0x9106, 0x15c0, 0x703c, 0x9c06, 0x1168, 0x0036, 0x2019,
+	0x0001, 0x080c, 0xa0c0, 0x7033, 0x0000, 0x9006, 0x703e, 0x7042,
+	0x7046, 0x704a, 0x003e, 0x7038, 0x9c36, 0x1110, 0x660c, 0x763a,
+	0x7034, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118, 0x2f00, 0x7036,
+	0x0010, 0x7037, 0x0000, 0x660c, 0x0066, 0x2c00, 0x9f06, 0x0110,
+	0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x6014, 0x2048, 0x080c,
+	0xc5cf, 0x0110, 0x080c, 0xdf4c, 0x080c, 0xa99c, 0x87ff, 0x1198,
+	0x00ce, 0x0804, 0xa274, 0x2c78, 0x600c, 0x2060, 0x0804, 0xa274,
+	0x9006, 0x012e, 0x000e, 0x002e, 0x006e, 0x00ce, 0x009e, 0x00de,
+	0x00ee, 0x00fe, 0x0005, 0x601b, 0x0000, 0x00ce, 0x97bd, 0x0001,
+	0x0c80, 0x00e6, 0x2071, 0x19f1, 0x2001, 0x1800, 0x2004, 0x9086,
+	0x0002, 0x1118, 0x7007, 0x0005, 0x0010, 0x7007, 0x0000, 0x00ee,
+	0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126,
+	0x2091, 0x8000, 0x2071, 0x19f1, 0x2c10, 0x7638, 0x2660, 0x2678,
+	0x8cff, 0x0518, 0x2200, 0x9c06, 0x11e0, 0x7038, 0x9c36, 0x1110,
+	0x660c, 0x763a, 0x7034, 0x9c36, 0x1140, 0x2c00, 0x9f36, 0x0118,
+	0x2f00, 0x7036, 0x0010, 0x7037, 0x0000, 0x660c, 0x2c00, 0x9f06,
+	0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f, 0x0000, 0x9085, 0x0001,
+	0x0020, 0x2c78, 0x600c, 0x2060, 0x08d8, 0x012e, 0x000e, 0x002e,
+	0x006e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x0096, 0x00f6, 0x00e6,
+	0x00d6, 0x00c6, 0x0066, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000,
+	0x2071, 0x19f1, 0x760c, 0x2660, 0x2678, 0x8cff, 0x0904, 0xa3b5,
+	0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206, 0x1904, 0xa3b0,
+	0x7024, 0x9c06, 0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904,
+	0xa38c, 0x080c, 0x9dfe, 0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7027,
+	0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,
+	0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069,
+	0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c,
+	0x9c36, 0x1110, 0x660c, 0x760e, 0x7008, 0x9c36, 0x1140, 0x2c00,
+	0x9f36, 0x0118, 0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c,
+	0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
+	0x0000, 0x080c, 0xc7bf, 0x1158, 0x080c, 0x2fbd, 0x080c, 0xc7d0,
+	0x11f0, 0x080c, 0xb313, 0x00d8, 0x080c, 0xa2d9, 0x08c0, 0x080c,
+	0xc7d0, 0x1118, 0x080c, 0xb313, 0x0090, 0x6014, 0x2048, 0x080c,
+	0xc5cf, 0x0168, 0x6020, 0x9086, 0x0003, 0x1508, 0xa867, 0x0103,
+	0xab7a, 0xa877, 0x0000, 0x080c, 0x68db, 0x080c, 0xc7b3, 0x080c,
+	0xca25, 0x080c, 0xa99c, 0x080c, 0xa1af, 0x00ce, 0x0804, 0xa335,
+	0x2c78, 0x600c, 0x2060, 0x0804, 0xa335, 0x012e, 0x000e, 0x002e,
+	0x006e, 0x00ce, 0x00de, 0x00ee, 0x00fe, 0x009e, 0x0005, 0x6020,
+	0x9086, 0x0006, 0x1d20, 0x080c, 0xdf4c, 0x0c08, 0x00d6, 0x080c,
+	0x9848, 0x7003, 0x0200, 0x7007, 0x0014, 0x60c3, 0x0014, 0x20e1,
+	0x0001, 0x2099, 0x1993, 0x20e9, 0x0000, 0x20a1, 0x0250, 0x20a9,
+	0x0004, 0x4003, 0x7023, 0x0004, 0x7027, 0x7878, 0x080c, 0x9dd2,
+	0x00de, 0x0005, 0x080c, 0x9848, 0x7003, 0x0214, 0x7007, 0x0018,
+	0x700b, 0x0800, 0x7814, 0x9084, 0xff00, 0x700e, 0x7814, 0x9084,
+	0x00ff, 0x7022, 0x782c, 0x7026, 0x60c3, 0x0018, 0x0804, 0x9dd2,
+	0x00b6, 0x00d6, 0x0016, 0x00d6, 0x2f68, 0x2009, 0x0035, 0x080c,
+	0xcc2a, 0x00de, 0x1904, 0xa45c, 0x080c, 0x97fd, 0x7003, 0x1300,
+	0x782c, 0x080c, 0xa55e, 0x2068, 0x6820, 0x9086, 0x0003, 0x0558,
+	0x7810, 0x2058, 0xbaa0, 0x080c, 0xa8d5, 0x11d0, 0x9286, 0x007e,
+	0x1128, 0x700b, 0x00ff, 0x700f, 0xfffe, 0x0490, 0x9286, 0x007f,
+	0x1128, 0x700b, 0x00ff, 0x700f, 0xfffd, 0x0450, 0xd2bc, 0x0180,
+	0x9286, 0x0080, 0x1128, 0x700b, 0x00ff, 0x700f, 0xfffc, 0x0400,
+	0x92d8, 0x1000, 0x2b5c, 0xb810, 0x700a, 0xb814, 0x700e, 0x00c0,
+	0x6098, 0x700e, 0x00a8, 0x080c, 0xa8d5, 0x1130, 0x7810, 0x2058,
+	0xb8a0, 0x9082, 0x007e, 0x0250, 0x00d6, 0x2069, 0x181d, 0x2d04,
+	0x700a, 0x8d68, 0x2d04, 0x700e, 0x00de, 0x0010, 0x6034, 0x700e,
+	0x7838, 0x7012, 0x783c, 0x7016, 0x60c3, 0x000c, 0x001e, 0x00de,
+	0x080c, 0x9dd2, 0x00be, 0x0005, 0x781b, 0x0001, 0x7803, 0x0006,
+	0x001e, 0x00de, 0x00be, 0x0005, 0x792c, 0x9180, 0x0008, 0x200c,
+	0x9186, 0x0006, 0x01c0, 0x9186, 0x0003, 0x0904, 0xa4d6, 0x9186,
+	0x0005, 0x0904, 0xa4bf, 0x9186, 0x0004, 0x05d8, 0x9186, 0x0008,
+	0x0904, 0xa4c7, 0x7807, 0x0037, 0x782f, 0x0003, 0x7817, 0x1700,
+	0x080c, 0xa53b, 0x0005, 0x080c, 0xa4fc, 0x00d6, 0x0026, 0x792c,
+	0x2168, 0x2009, 0x4000, 0x6800, 0x0002, 0xa4a0, 0xa4ab, 0xa4a2,
+	0xa4ab, 0xa4a7, 0xa4a0, 0xa4a0, 0xa4ab, 0xa4ab, 0xa4ab, 0xa4ab,
+	0xa4a0, 0xa4a0, 0xa4a0, 0xa4a0, 0xa4a0, 0xa4ab, 0xa4a0, 0xa4ab,
+	0x080c, 0x0db8, 0x6824, 0xd0e4, 0x0110, 0xd0cc, 0x0110, 0x900e,
+	0x0010, 0x2009, 0x2000, 0x682c, 0x7022, 0x6830, 0x7026, 0x0804,
+	0xa4f5, 0x080c, 0xa4fc, 0x00d6, 0x0026, 0x792c, 0x2168, 0x2009,
+	0x4000, 0x6a00, 0x9286, 0x0002, 0x1108, 0x900e, 0x04b0, 0x04e1,
+	0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x0470, 0x04a1,
+	0x00d6, 0x0026, 0x792c, 0x2168, 0x2009, 0x4000, 0x9286, 0x0005,
+	0x0118, 0x9286, 0x0002, 0x1108, 0x900e, 0x00f8, 0x0429, 0x00d6,
+	0x0026, 0x792c, 0x2168, 0x6814, 0x0096, 0x2048, 0xa9ac, 0xa834,
+	0x9112, 0xa9b0, 0xa838, 0x009e, 0x9103, 0x7022, 0x7226, 0x792c,
+	0x9180, 0x0000, 0x2004, 0x908e, 0x0002, 0x0130, 0x908e, 0x0004,
+	0x0118, 0x2009, 0x4000, 0x0008, 0x900e, 0x712a, 0x60c3, 0x0018,
+	0x002e, 0x00de, 0x0804, 0x9dd2, 0x00b6, 0x0036, 0x0046, 0x0056,
+	0x0066, 0x080c, 0x9848, 0x9006, 0x7003, 0x0200, 0x7938, 0x710a,
+	0x793c, 0x710e, 0x7810, 0x2058, 0xb8a0, 0x080c, 0xa8d5, 0x1118,
+	0x9092, 0x007e, 0x0268, 0x00d6, 0x2069, 0x181d, 0x2d2c, 0x8d68,
+	0x2d34, 0x90d8, 0x1000, 0x2b5c, 0xbb10, 0xbc14, 0x00de, 0x0028,
+	0x901e, 0x6498, 0x2029, 0x0000, 0x6634, 0x782c, 0x9080, 0x0008,
+	0x2004, 0x9086, 0x0003, 0x1128, 0x7512, 0x7616, 0x731a, 0x741e,
+	0x0020, 0x7312, 0x7416, 0x751a, 0x761e, 0x006e, 0x005e, 0x004e,
+	0x003e, 0x00be, 0x0005, 0x080c, 0x9848, 0x7003, 0x0100, 0x782c,
+	0x700a, 0x7814, 0x700e, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9dd2,
+	0x080c, 0x97f4, 0x7003, 0x1400, 0x7838, 0x700a, 0x0079, 0x783c,
+	0x700e, 0x782c, 0x7012, 0x7830, 0x7016, 0x7834, 0x9084, 0x00ff,
+	0x8007, 0x701a, 0x60c3, 0x0010, 0x0804, 0x9dd2, 0x00e6, 0x2071,
+	0x0240, 0x0006, 0x00f6, 0x2078, 0x7810, 0x00b6, 0x2058, 0xb8cc,
+	0xd084, 0x0120, 0x7848, 0x702a, 0x7844, 0x702e, 0x00be, 0x00fe,
+	0x000e, 0x00ee, 0x0005, 0x080c, 0x983f, 0x7003, 0x0100, 0x782c,
+	0x700a, 0x7814, 0x700e, 0x60c3, 0x0008, 0x0804, 0x9dd2, 0x0021,
+	0x60c3, 0x0000, 0x0804, 0x9dd2, 0x00d6, 0x080c, 0xa62d, 0xb810,
+	0x9085, 0x0300, 0x7002, 0xb814, 0x7006, 0x2069, 0x1800, 0x6874,
+	0x700a, 0x6878, 0x700e, 0x7013, 0x0819, 0x080c, 0x9dc0, 0x721a,
+	0x2f10, 0x7222, 0x7a08, 0x7226, 0x2071, 0x024c, 0x00de, 0x0005,
+	0x0059, 0x7914, 0x712a, 0x60c3, 0x0000, 0x60a7, 0x9575, 0x080c,
+	0x9df5, 0x080c, 0x8166, 0x0005, 0x0036, 0x0096, 0x00d6, 0x00e6,
+	0x7858, 0x2048, 0xaa7c, 0x9296, 0x00c0, 0x9294, 0xfffd, 0xaa7e,
+	0xaa80, 0x9294, 0x0300, 0xaa82, 0xa96c, 0x9194, 0x00ff, 0xab74,
+	0x9384, 0x00ff, 0x908d, 0xc200, 0xa96e, 0x9384, 0xff00, 0x9215,
+	0xaa76, 0xa870, 0xaa78, 0xa87a, 0xaa72, 0x00d6, 0x2069, 0x0200,
+	0x080c, 0xa62d, 0x00de, 0x20e9, 0x0000, 0x20a1, 0x0240, 0x20a9,
+	0x000a, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x001b, 0x2098, 0x4003,
+	0x60a3, 0x0035, 0xaa68, 0x9294, 0x7000, 0x9286, 0x3000, 0x0110,
+	0x60a3, 0x0037, 0x00ee, 0x00de, 0x009e, 0x003e, 0x0005, 0x900e,
+	0x7814, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x01c0, 0x9084, 0x0003,
+	0x11a8, 0x2001, 0x180c, 0x2004, 0xd0bc, 0x0180, 0x7824, 0xd0cc,
+	0x1168, 0xd0c4, 0x1158, 0xa8a8, 0x9005, 0x1140, 0x2001, 0x180c,
+	0x200c, 0xc1d5, 0x2102, 0x2009, 0x19bc, 0x210c, 0x009e, 0x918d,
+	0x0092, 0x0010, 0x2009, 0x0096, 0x60ab, 0x0036, 0x6116, 0x0005,
+	0x2009, 0x0009, 0x00a0, 0x2009, 0x000a, 0x0088, 0x2009, 0x000b,
+	0x0070, 0x2009, 0x000c, 0x0058, 0x2009, 0x000d, 0x0040, 0x2009,
+	0x000e, 0x0028, 0x2009, 0x000f, 0x0010, 0x2009, 0x0008, 0x6912,
+	0x0005, 0x080c, 0x97fd, 0x0016, 0x0026, 0x0096, 0x00d6, 0x7814,
+	0x2048, 0x7013, 0x0138, 0x2001, 0x1836, 0x2004, 0x9084, 0x0028,
+	0x1138, 0x2001, 0x1988, 0x2004, 0x9086, 0xaaaa, 0x1904, 0xa6d2,
+	0x7003, 0x5400, 0x00c6, 0x2061, 0x1800, 0x6074, 0x9084, 0x00ff,
+	0xa998, 0x810f, 0x918c, 0xff00, 0x9105, 0x700a, 0x6078, 0x700e,
+	0xa998, 0x918c, 0xff00, 0x7112, 0x20a9, 0x0004, 0x2009, 0x1805,
+	0x2e10, 0x9290, 0x0006, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04,
+	0xa663, 0x20a9, 0x0004, 0x2009, 0x1801, 0x2104, 0x2012, 0x8108,
+	0x8210, 0x1f04, 0xa66d, 0xa860, 0x20e0, 0xa85c, 0x9080, 0x0029,
+	0x2098, 0x2009, 0x0006, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012,
+	0x8210, 0x8109, 0x1dc0, 0x00d6, 0x2069, 0x0200, 0x080c, 0xa618,
+	0x00de, 0x2071, 0x0240, 0x2011, 0x0240, 0x2009, 0x0002, 0x20a9,
+	0x0001, 0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dc0, 0x2009,
+	0x0008, 0x20a9, 0x0001, 0x4002, 0x8007, 0x2012, 0x8210, 0x8109,
+	0x1dc0, 0xa85c, 0x9080, 0x0031, 0x2098, 0x2009, 0x0008, 0x20a9,
+	0x0001, 0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dc0, 0x00ce,
+	0x60c3, 0x004c, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x2001, 0x1836,
+	0x2004, 0x9084, 0x0028, 0x1168, 0x080c, 0x7018, 0x0150, 0x6028,
+	0xc0bd, 0x602a, 0x6014, 0x9084, 0x1804, 0x9085, 0x0029, 0x6016,
+	0x0010, 0x080c, 0x9dd2, 0x080c, 0x8166, 0x00de, 0x009e, 0x002e,
+	0x001e, 0x0005, 0x00e6, 0x2071, 0x0240, 0x2001, 0x2200, 0x9085,
+	0x00ff, 0x7002, 0x7007, 0xffff, 0x2071, 0x0100, 0x709b, 0x00ff,
+	0x00ee, 0x0804, 0xa648, 0x080c, 0x97fd, 0x0016, 0x0026, 0x0096,
+	0x00d6, 0x7814, 0x2048, 0x7013, 0x0138, 0x7003, 0x5500, 0x00c6,
+	0xa89c, 0x9084, 0x00ff, 0xa998, 0x810f, 0x918c, 0xff00, 0x9105,
+	0x700a, 0xa99c, 0x918c, 0xff00, 0xa8a0, 0x9084, 0x00ff, 0x9105,
+	0x700e, 0xa998, 0x918c, 0xff00, 0x2061, 0x1800, 0x6074, 0x9084,
+	0x00ff, 0x910d, 0x7112, 0x6178, 0x7116, 0x2009, 0x0008, 0xa860,
+	0x20e0, 0xa85c, 0x9080, 0x0029, 0x2098, 0x2e10, 0x9290, 0x0006,
+	0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dd0, 0x20a9, 0x0004,
+	0x2009, 0x1805, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xa722,
+	0x20a9, 0x0002, 0x2009, 0x1801, 0x2104, 0x2012, 0x8108, 0x8210,
+	0x1f04, 0xa72c, 0x00d6, 0x0016, 0x2069, 0x0200, 0x080c, 0xa618,
+	0x001e, 0x00de, 0x2071, 0x0240, 0x20a9, 0x0002, 0x2009, 0x1803,
+	0x2011, 0x0240, 0x2104, 0x2012, 0x8108, 0x8210, 0x1f04, 0xa742,
+	0x2009, 0x0008, 0x4002, 0x8007, 0x2012, 0x8210, 0x8109, 0x1dd0,
+	0x9006, 0x20a9, 0x0008, 0x2012, 0x8210, 0x1f04, 0xa753, 0x00ce,
+	0x60c3, 0x004c, 0x60a3, 0x0056, 0x60a7, 0x9575, 0x080c, 0x9dd2,
+	0x080c, 0x8166, 0x00de, 0x009e, 0x002e, 0x001e, 0x0005, 0x00d6,
+	0x9290, 0x0018, 0x8214, 0x20e9, 0x0000, 0x2069, 0x0200, 0x6813,
+	0x0000, 0x22a8, 0x9284, 0x00e0, 0x0128, 0x20a9, 0x0020, 0x9292,
+	0x0020, 0x0008, 0x9016, 0x20a1, 0x0240, 0x9006, 0x4004, 0x82ff,
+	0x0120, 0x6810, 0x8000, 0x6812, 0x0c60, 0x00de, 0x0005, 0x00d6,
+	0x0096, 0x6014, 0x2048, 0xa878, 0x6056, 0x9006, 0xa836, 0xa83a,
+	0xa99c, 0xa946, 0xa84a, 0x6023, 0x0003, 0x6007, 0x0040, 0x6003,
+	0x0003, 0x600b, 0xffff, 0xa817, 0x0001, 0xa842, 0xa83e, 0x2900,
+	0xa85a, 0xa813, 0x1e7f, 0x080c, 0x8d06, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x9362, 0x012e, 0x009e, 0x00de, 0x0005, 0x00f6, 0x00e6,
+	0x00d6, 0x00c6, 0x00a6, 0x0096, 0x0066, 0x0126, 0x2091, 0x8000,
+	0x2071, 0x19f1, 0x760c, 0x2660, 0x2678, 0x8cff, 0x0904, 0xa835,
+	0x7024, 0x9c06, 0x1520, 0x2069, 0x0100, 0x68c0, 0x9005, 0x0904,
+	0xa80c, 0x080c, 0x9dfe, 0x68c3, 0x0000, 0x080c, 0xa2d9, 0x7027,
+	0x0000, 0x0036, 0x2069, 0x0140, 0x6b04, 0x9384, 0x1000, 0x0138,
+	0x2001, 0x0100, 0x080c, 0x2ac9, 0x9006, 0x080c, 0x2ac9, 0x2069,
+	0x0100, 0x6824, 0xd084, 0x0110, 0x6827, 0x0001, 0x003e, 0x700c,
+	0x9c36, 0x1110, 0x660c, 0x760e, 0x7008, 0x9c36, 0x1140, 0x2c00,
+	0x9f36, 0x0118, 0x2f00, 0x700a, 0x0010, 0x700b, 0x0000, 0x660c,
+	0x0066, 0x2c00, 0x9f06, 0x0110, 0x7e0e, 0x0008, 0x2678, 0x600f,
+	0x0000, 0x080c, 0xc7bf, 0x1158, 0x080c, 0x2fbd, 0x080c, 0xc7d0,
+	0x11f0, 0x080c, 0xb313, 0x00d8, 0x080c, 0xa2d9, 0x08c0, 0x080c,
+	0xc7d0, 0x1118, 0x080c, 0xb313, 0x0090, 0x6014, 0x2048, 0x080c,
+	0xc5cf, 0x0168, 0x6020, 0x9086, 0x0003, 0x1520, 0xa867, 0x0103,
+	0xab7a, 0xa877, 0x0000, 0x080c, 0x68e7, 0x080c, 0xc7b3, 0x080c,
+	0xca25, 0x080c, 0xa99c, 0x080c, 0xa1af, 0x00ce, 0x0804, 0xa7bd,
+	0x2c78, 0x600c, 0x2060, 0x0804, 0xa7bd, 0x700f, 0x0000, 0x700b,
+	0x0000, 0x012e, 0x006e, 0x009e, 0x00ae, 0x00ce, 0x00de, 0x00ee,
+	0x00fe, 0x0005, 0x6020, 0x9086, 0x0006, 0x1d08, 0x080c, 0xdf4c,
+	0x08f0, 0x00d6, 0x0156, 0x080c, 0x9848, 0x7a14, 0x82ff, 0x0138,
+	0x7003, 0x0100, 0x700b, 0x0003, 0x60c3, 0x0008, 0x0490, 0x7003,
+	0x0200, 0x7007, 0x0000, 0x2069, 0x1800, 0x901e, 0x6800, 0x9086,
+	0x0004, 0x1110, 0xc38d, 0x0060, 0x080c, 0x7018, 0x1110, 0xc3ad,
+	0x0008, 0xc3a5, 0x6ad8, 0xd29c, 0x1110, 0xd2ac, 0x0108, 0xc39d,
+	0x730e, 0x2011, 0x1848, 0x63f0, 0x2312, 0x20a9, 0x0006, 0x2011,
+	0x1840, 0x2019, 0x1841, 0x2071, 0x0250, 0x2376, 0x8e70, 0x2276,
+	0x8e70, 0x9398, 0x0002, 0x9290, 0x0002, 0x1f04, 0xa87d, 0x60c3,
+	0x0040, 0x080c, 0x9dd2, 0x015e, 0x00de, 0x0005, 0x0156, 0x080c,
+	0x9848, 0x7a14, 0x82ff, 0x0168, 0x9286, 0xffff, 0x0118, 0x9282,
+	0x000e, 0x1238, 0x7003, 0x0100, 0x700b, 0x0003, 0x60c3, 0x0008,
+	0x0488, 0x7003, 0x0200, 0x7007, 0x001c, 0x700f, 0x0001, 0x2011,
+	0x19c7, 0x2204, 0x8007, 0x701a, 0x8210, 0x2204, 0x8007, 0x701e,
+	0x0421, 0x1120, 0xb8a0, 0x9082, 0x007f, 0x0248, 0x2001, 0x181d,
+	0x2004, 0x7022, 0x2001, 0x181e, 0x2004, 0x7026, 0x0030, 0x2001,
+	0x1816, 0x2004, 0x9084, 0x00ff, 0x7026, 0x20a9, 0x0004, 0x20e1,
+	0x0001, 0x2099, 0x1805, 0x20e9, 0x0000, 0x20a1, 0x0256, 0x4003,
+	0x60c3, 0x001c, 0x015e, 0x0804, 0x9dd2, 0x0006, 0x2001, 0x1836,
+	0x2004, 0xd0ac, 0x000e, 0x0005, 0x2011, 0x0003, 0x080c, 0xa15c,
+	0x2011, 0x0002, 0x080c, 0xa166, 0x080c, 0xa026, 0x0036, 0x901e,
+	0x080c, 0xa0c0, 0x003e, 0x0005, 0x080c, 0x30ed, 0x0188, 0x0016,
+	0x00b6, 0x00c6, 0x7010, 0x9085, 0x0020, 0x7012, 0x2009, 0x007e,
+	0x080c, 0x6274, 0xb85c, 0xc0ac, 0xb85e, 0x00ce, 0x00be, 0x001e,
+	0x0005, 0x2071, 0x1899, 0x7000, 0x9005, 0x0140, 0x2001, 0x0976,
+	0x2071, 0x1800, 0x706e, 0x7072, 0x7063, 0xffe0, 0x2071, 0x1800,
+	0x706c, 0x704e, 0x7053, 0x1cd0, 0x0005, 0x00e6, 0x0126, 0x2071,
+	0x1800, 0x2091, 0x8000, 0x754c, 0x9582, 0x0010, 0x0608, 0x7050,
+	0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0, 0x0018, 0x7060,
+	0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98, 0x6003, 0x0008,
+	0x8529, 0x754e, 0x9ca8, 0x0018, 0x7060, 0x9502, 0x1230, 0x7552,
+	0x9085, 0x0001, 0x012e, 0x00ee, 0x0005, 0x7053, 0x1cd0, 0x0cc0,
+	0x9006, 0x0cc0, 0x00e6, 0x2071, 0x1800, 0x754c, 0x9582, 0x0010,
+	0x0600, 0x7050, 0x2060, 0x6000, 0x9086, 0x0000, 0x0148, 0x9ce0,
+	0x0018, 0x7060, 0x9c02, 0x1208, 0x0cb0, 0x2061, 0x1cd0, 0x0c98,
+	0x6003, 0x0008, 0x8529, 0x754e, 0x9ca8, 0x0018, 0x7060, 0x9502,
+	0x1228, 0x7552, 0x9085, 0x0001, 0x00ee, 0x0005, 0x7053, 0x1cd0,
+	0x0cc8, 0x9006, 0x0cc8, 0x9c82, 0x1cd0, 0x0a0c, 0x0db8, 0x2001,
+	0x1818, 0x2004, 0x9c02, 0x1a0c, 0x0db8, 0x9006, 0x6006, 0x600a,
+	0x600e, 0x6016, 0x601a, 0x6012, 0x6023, 0x0000, 0x6003, 0x0000,
+	0x601e, 0x6056, 0x605a, 0x6026, 0x602a, 0x602e, 0x6032, 0x6036,
+	0x603a, 0x603e, 0x6042, 0x602a, 0x2061, 0x1800, 0x604c, 0x8000,
+	0x604e, 0x9086, 0x0001, 0x0108, 0x0005, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x922b, 0x012e, 0x0cc0, 0x0006, 0x6000, 0x9086, 0x0000,
+	0x01b0, 0x601c, 0xd084, 0x190c, 0x1931, 0x6017, 0x0000, 0x6023,
+	0x0007, 0x2001, 0x1990, 0x2004, 0x0006, 0x9082, 0x0051, 0x000e,
+	0x0208, 0x8004, 0x601a, 0x080c, 0xe203, 0x6043, 0x0000, 0x000e,
+	0x0005, 0x00e6, 0x0126, 0x2071, 0x1800, 0x2091, 0x8000, 0x754c,
+	0x9582, 0x0001, 0x0608, 0x7050, 0x2060, 0x6000, 0x9086, 0x0000,
+	0x0148, 0x9ce0, 0x0018, 0x7060, 0x9c02, 0x1208, 0x0cb0, 0x2061,
+	0x1cd0, 0x0c98, 0x6003, 0x0008, 0x8529, 0x754e, 0x9ca8, 0x0018,
+	0x7060, 0x9502, 0x1230, 0x7552, 0x9085, 0x0001, 0x012e, 0x00ee,
+	0x0005, 0x7053, 0x1cd0, 0x0cc0, 0x9006, 0x0cc0, 0x6020, 0x9084,
+	0x000f, 0x0002, 0xa9f9, 0xaa02, 0xaa1d, 0xaa38, 0xccd0, 0xcced,
+	0xcd08, 0xa9f9, 0xaa02, 0x894e, 0xaa54, 0xa9f9, 0xa9f9, 0xa9f9,
+	0xa9f9, 0x9186, 0x0013, 0x1128, 0x080c, 0x912c, 0x080c, 0x922b,
+	0x0005, 0x0005, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0db8,
+	0x0013, 0x006e, 0x0005, 0xaa1b, 0xb182, 0xb35a, 0xaa1b, 0xb3f0,
+	0xad35, 0xaa1b, 0xaa1b, 0xb104, 0xb92e, 0xaa1b, 0xaa1b, 0xaa1b,
+	0xaa1b, 0xaa1b, 0xaa1b, 0x080c, 0x0db8, 0x0066, 0x6000, 0x90b2,
+	0x0016, 0x1a0c, 0x0db8, 0x0013, 0x006e, 0x0005, 0xaa36, 0xbfed,
+	0xaa36, 0xaa36, 0xaa36, 0xaa36, 0xaa36, 0xaa36, 0xbf92, 0xc16e,
+	0xaa36, 0xc02e, 0xc0ad, 0xc02e, 0xc0ad, 0xaa36, 0x080c, 0x0db8,
+	0x6000, 0x9082, 0x0016, 0x1a0c, 0x0db8, 0x6000, 0x0002, 0xaa52,
+	0xb975, 0xba54, 0xbb84, 0xbd26, 0xaa52, 0xaa52, 0xaa52, 0xb949,
+	0xbf24, 0xbf27, 0xaa52, 0xaa52, 0xaa52, 0xaa52, 0xbf50, 0xaa52,
+	0xaa52, 0xaa52, 0x080c, 0x0db8, 0x0066, 0x6000, 0x90b2, 0x0016,
+	0x1a0c, 0x0db8, 0x0013, 0x006e, 0x0005, 0xaa6d, 0xaa6d, 0xaab0,
+	0xab4e, 0xabe2, 0xaa6d, 0xaa6d, 0xaa6d, 0xaa6f, 0xaa6d, 0xaa6d,
+	0xaa6d, 0xaa6d, 0xaa6d, 0xaa6d, 0xaa6d, 0x080c, 0x0db8, 0x9186,
+	0x004c, 0x0588, 0x9186, 0x0003, 0x190c, 0x0db8, 0x0096, 0x601c,
+	0xc0ed, 0x601e, 0x6003, 0x0003, 0x6106, 0x6014, 0x2048, 0xa87c,
+	0x9084, 0xa000, 0xc0b5, 0xa87e, 0xa8ac, 0xa846, 0xa8b0, 0xa84a,
+	0x9006, 0xa836, 0xa83a, 0xa884, 0x9092, 0x199a, 0x0210, 0x2001,
+	0x1999, 0x8003, 0x8013, 0x8213, 0x9210, 0x621a, 0x009e, 0x2c10,
+	0x080c, 0x1a3a, 0x080c, 0x8d06, 0x0126, 0x2091, 0x8000, 0x080c,
+	0x9362, 0x012e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be,
+	0x2c00, 0x080c, 0xac04, 0x080c, 0xccc2, 0x6003, 0x0007, 0x0005,
+	0x00d6, 0x0096, 0x00f6, 0x2079, 0x1800, 0x7a88, 0x6014, 0x2048,
+	0xa87c, 0xd0ec, 0x1110, 0x9290, 0x0018, 0xac78, 0x0046, 0xa8e0,
+	0x9005, 0x1140, 0xa8dc, 0x921a, 0x0140, 0x0220, 0xa87b, 0x0007,
+	0x2010, 0x0028, 0xa87b, 0x0015, 0x0010, 0xa87b, 0x0000, 0x8214,
+	0xa883, 0x0000, 0xaa02, 0x0006, 0x0016, 0x0026, 0x00c6, 0x00d6,
+	0x00e6, 0x00f6, 0x2400, 0x9005, 0x1108, 0x009a, 0x2100, 0x9086,
+	0x0015, 0x1118, 0x2001, 0x0001, 0x0038, 0x2100, 0x9086, 0x0016,
+	0x0118, 0x2001, 0x0001, 0x002a, 0x94a4, 0x0007, 0x8423, 0x9405,
+	0x0002, 0xab16, 0xab16, 0xab11, 0xab14, 0xab16, 0xab0e, 0xab01,
+	0xab01, 0xab01, 0xab01, 0xab01, 0xab01, 0xab01, 0xab01, 0xab01,
+	0xab01, 0x00fe, 0x00ee, 0x00de, 0x00ce, 0x002e, 0x001e, 0x000e,
+	0x004e, 0x00fe, 0x009e, 0x00de, 0x080c, 0x0db8, 0x080c, 0xb592,
+	0x0028, 0x080c, 0xb677, 0x0010, 0x080c, 0xb76d, 0x00fe, 0x00ee,
+	0x00de, 0x00ce, 0x002e, 0x001e, 0x2c00, 0xa896, 0x000e, 0x080c,
+	0xacc2, 0x0530, 0xa804, 0xa80e, 0x00a6, 0x2050, 0xb100, 0x00ae,
+	0x8006, 0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080,
+	0x0002, 0xaacc, 0xabd0, 0xacd4, 0xadd8, 0x2031, 0x0000, 0x2041,
+	0x121e, 0x080c, 0xae82, 0x0160, 0x000e, 0x9005, 0x0120, 0x00fe,
+	0x009e, 0x00de, 0x0005, 0x00fe, 0x009e, 0x00de, 0x0804, 0xa96b,
+	0x2001, 0x002c, 0x900e, 0x080c, 0xad28, 0x0c70, 0x91b6, 0x0015,
+	0x0170, 0x91b6, 0x0016, 0x0158, 0x91b2, 0x0047, 0x0a0c, 0x0db8,
+	0x91b2, 0x0050, 0x1a0c, 0x0db8, 0x9182, 0x0047, 0x00ca, 0x2001,
+	0x0109, 0x2004, 0xd08c, 0x0198, 0x0126, 0x2091, 0x2800, 0x0006,
+	0x0016, 0x0026, 0x080c, 0x8c49, 0x002e, 0x001e, 0x000e, 0x012e,
+	0xa001, 0x6000, 0x9086, 0x0002, 0x1110, 0x0804, 0xaab0, 0x0005,
+	0xab81, 0xab81, 0xab83, 0xabb8, 0xab81, 0xab81, 0xab81, 0xab81,
+	0xabcb, 0x080c, 0x0db8, 0x00d6, 0x0016, 0x0096, 0x080c, 0x91dc,
+	0x080c, 0x9362, 0x6003, 0x0004, 0x6114, 0x2148, 0xa87c, 0xd0fc,
+	0x01b8, 0xa878, 0x9005, 0x1158, 0xa894, 0x9005, 0x0140, 0x2001,
+	0x0000, 0x900e, 0x080c, 0xad28, 0x080c, 0xa96b, 0x00a8, 0x6003,
+	0x0002, 0xa8a4, 0xa9a8, 0x9105, 0x1178, 0xa8ae, 0xa8b2, 0x0c78,
+	0xa87f, 0x0020, 0xa88c, 0xa88a, 0xa8a4, 0xa8ae, 0xa8a8, 0xa8b2,
+	0xa8c7, 0x0000, 0xa8cb, 0x0000, 0x009e, 0x001e, 0x00de, 0x0005,
+	0x080c, 0x91dc, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xc5d1,
+	0x0120, 0xa87b, 0x0006, 0x080c, 0x68e7, 0x009e, 0x00de, 0x080c,
+	0xa96b, 0x0804, 0x9362, 0x080c, 0x91dc, 0x080c, 0x2f98, 0x080c,
+	0xccbf, 0x00d6, 0x0096, 0x6114, 0x2148, 0x080c, 0xc5d1, 0x0120,
+	0xa87b, 0x0029, 0x080c, 0x68e7, 0x009e, 0x00de, 0x080c, 0xa96b,
+	0x0804, 0x9362, 0x9182, 0x0047, 0x0002, 0xabf2, 0xabf4, 0xabf2,
+	0xabf2, 0xabf2, 0xabf2, 0xabf2, 0xabf2, 0xabf2, 0xabf2, 0xabf2,
+	0xabf2, 0xabf4, 0x080c, 0x0db8, 0x00d6, 0x0096, 0x601f, 0x0000,
+	0x6114, 0x2148, 0xa87b, 0x0000, 0xa883, 0x0000, 0x080c, 0x68e7,
+	0x009e, 0x00de, 0x0804, 0xa96b, 0x0026, 0x0036, 0x0056, 0x0066,
+	0x0096, 0x00a6, 0x00f6, 0x0006, 0x080c, 0x0fcd, 0x000e, 0x090c,
+	0x0db8, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019, 0x21a0, 0x900e,
+	0x20a9, 0x0020, 0x4104, 0xa87a, 0x2079, 0x1800, 0x7988, 0x9188,
+	0x0018, 0x918c, 0x0fff, 0xa972, 0xac76, 0x2950, 0x00a6, 0x2001,
+	0x0205, 0x2003, 0x0000, 0x901e, 0x2029, 0x0001, 0x9182, 0x0034,
+	0x1228, 0x2011, 0x001f, 0x080c, 0xc1f3, 0x04c0, 0x2130, 0x2009,
+	0x0034, 0x2011, 0x001f, 0x080c, 0xc1f3, 0x96b2, 0x0034, 0xb004,
+	0x904d, 0x0110, 0x080c, 0x0f7f, 0x080c, 0x0fcd, 0x01d0, 0x8528,
+	0xa867, 0x0110, 0xa86b, 0x0000, 0x2920, 0xb406, 0x968a, 0x003d,
+	0x1230, 0x2608, 0x2011, 0x001b, 0x080c, 0xc1f3, 0x00b8, 0x96b2,
+	0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b, 0x080c, 0xc1f3,
+	0x0c18, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad,
+	0x0050, 0xb566, 0xb070, 0xc0fd, 0xb072, 0x0048, 0x2001, 0x0205,
+	0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0050, 0xb566, 0x2a48,
+	0xa804, 0xa807, 0x0000, 0x0006, 0x080c, 0x68e7, 0x000e, 0x2048,
+	0x9005, 0x1db0, 0x00fe, 0x00ae, 0x009e, 0x006e, 0x005e, 0x003e,
+	0x002e, 0x0005, 0x00d6, 0x00f6, 0x0096, 0x0006, 0x080c, 0x0fcd,
+	0x000e, 0x090c, 0x0db8, 0xa960, 0x21e8, 0xa95c, 0x9188, 0x0019,
+	0x21a0, 0x900e, 0x20a9, 0x0020, 0x4104, 0xaa66, 0xa87a, 0x2079,
+	0x1800, 0x7988, 0x810c, 0x9188, 0x000c, 0x9182, 0x001a, 0x0210,
+	0x2009, 0x001a, 0x21a8, 0x810b, 0xa972, 0xac76, 0x2e98, 0xa85c,
+	0x9080, 0x001f, 0x20a0, 0x2001, 0x0205, 0x200c, 0x918d, 0x0080,
+	0x2102, 0x4003, 0x2003, 0x0000, 0x080c, 0x68e7, 0x009e, 0x00fe,
+	0x00de, 0x0005, 0x0016, 0x00d6, 0x00f6, 0x0096, 0x0016, 0x2001,
+	0x0205, 0x200c, 0x918d, 0x0080, 0x2102, 0x001e, 0x2079, 0x0200,
+	0x2e98, 0xa87c, 0xd0ec, 0x0118, 0x9e80, 0x000c, 0x2098, 0x2021,
+	0x003e, 0x901e, 0x9282, 0x0020, 0x0218, 0x2011, 0x0020, 0x2018,
+	0x9486, 0x003e, 0x1170, 0x0096, 0x080c, 0x0fcd, 0x2900, 0x009e,
+	0x05c0, 0xa806, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002,
+	0x20a0, 0x3300, 0x908e, 0x0260, 0x0140, 0x2009, 0x0280, 0x9102,
+	0x920a, 0x0218, 0x2010, 0x2100, 0x9318, 0x2200, 0x9402, 0x1228,
+	0x2400, 0x9202, 0x2410, 0x9318, 0x9006, 0x2020, 0x22a8, 0xa800,
+	0x9200, 0xa802, 0x20e1, 0x0000, 0x4003, 0x83ff, 0x0180, 0x3300,
+	0x9086, 0x0280, 0x1130, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,
+	0x2e98, 0x2310, 0x84ff, 0x0904, 0xacd7, 0x0804, 0xacd9, 0x9085,
+	0x0001, 0x7817, 0x0000, 0x009e, 0x00fe, 0x00de, 0x001e, 0x0005,
+	0x00d6, 0x0036, 0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x080c,
+	0x68db, 0x009e, 0x003e, 0x00de, 0x0005, 0x91b6, 0x0015, 0x1118,
+	0x080c, 0xa96b, 0x0030, 0x91b6, 0x0016, 0x190c, 0x0db8, 0x080c,
+	0xa96b, 0x0005, 0x20a9, 0x000e, 0x20e1, 0x0000, 0x2e98, 0x6014,
+	0x0096, 0x2048, 0xa860, 0x20e8, 0xa85c, 0x20a0, 0x009e, 0x4003,
+	0x0136, 0x9080, 0x001b, 0x2011, 0x0006, 0x20a9, 0x0001, 0x3418,
+	0x8318, 0x23a0, 0x4003, 0x3318, 0x8318, 0x2398, 0x8211, 0x1db8,
+	0x2011, 0x0006, 0x013e, 0x20a0, 0x3318, 0x8318, 0x2398, 0x4003,
+	0x3418, 0x8318, 0x23a0, 0x8211, 0x1db8, 0x0096, 0x080c, 0xc5d1,
+	0x0130, 0x6014, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0x009e,
+	0x0804, 0xa96b, 0x0096, 0x00d6, 0x0036, 0x7330, 0x9386, 0x0200,
+	0x11a8, 0x6010, 0x00b6, 0x2058, 0xb8cf, 0x0000, 0x00be, 0x6014,
+	0x9005, 0x0130, 0x2048, 0xa807, 0x0000, 0xa867, 0x0103, 0xab32,
+	0x080c, 0xa96b, 0x003e, 0x00de, 0x009e, 0x0005, 0x0011, 0x1d48,
+	0x0cc8, 0x0006, 0x0016, 0x080c, 0xccaa, 0x0188, 0x6014, 0x9005,
+	0x1170, 0x600b, 0x0003, 0x601b, 0x0000, 0x6043, 0x0000, 0x2009,
+	0x0022, 0x080c, 0xb15a, 0x9006, 0x001e, 0x000e, 0x0005, 0x9085,
+	0x0001, 0x0cd0, 0x0096, 0x0016, 0x20a9, 0x0014, 0x9e80, 0x000c,
+	0x20e1, 0x0000, 0x2098, 0x6014, 0x2048, 0xa860, 0x20e8, 0xa85c,
+	0x9080, 0x0002, 0x20a0, 0x4003, 0x2001, 0x0205, 0x2003, 0x0001,
+	0x2099, 0x0260, 0x20a9, 0x0016, 0x4003, 0x20a9, 0x000a, 0xa804,
+	0x2048, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0002, 0x20a0, 0x4003,
+	0x2001, 0x0205, 0x2003, 0x0002, 0x2099, 0x0260, 0x20a9, 0x0020,
+	0x4003, 0x2003, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,
+	0x0103, 0x080c, 0xa96b, 0x001e, 0x009e, 0x0005, 0x0096, 0x0016,
+	0x900e, 0x7030, 0x9086, 0x0100, 0x0140, 0x7038, 0x9084, 0x00ff,
+	0x800c, 0x703c, 0x9084, 0x00ff, 0x8004, 0x9080, 0x0004, 0x9108,
+	0x810b, 0x2011, 0x0002, 0x2019, 0x000c, 0x6014, 0x2048, 0x080c,
+	0xc1f3, 0x080c, 0xc5d1, 0x0140, 0x6014, 0x2048, 0xa807, 0x0000,
+	0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xa96b, 0x001e, 0x009e,
+	0x0005, 0x0016, 0x2009, 0x0000, 0x7030, 0x9086, 0x0200, 0x0110,
+	0x2009, 0x0001, 0x0096, 0x6014, 0x904d, 0x090c, 0x0db8, 0xa97a,
+	0x080c, 0x68e7, 0x009e, 0x080c, 0xa96b, 0x001e, 0x0005, 0x0016,
+	0x0096, 0x7030, 0x9086, 0x0100, 0x1118, 0x2009, 0x0004, 0x0010,
+	0x7034, 0x800c, 0x810b, 0x2011, 0x000c, 0x2019, 0x000c, 0x6014,
+	0x2048, 0xa804, 0x0096, 0x9005, 0x0108, 0x2048, 0x080c, 0xc1f3,
+	0x009e, 0x080c, 0xc5d1, 0x0148, 0xa804, 0x9005, 0x1158, 0xa807,
+	0x0000, 0xa864, 0xa8e2, 0xa867, 0x0103, 0x080c, 0xa96b, 0x009e,
+	0x001e, 0x0005, 0x0086, 0x2040, 0xa030, 0x8007, 0x9086, 0x0100,
+	0x1118, 0x080c, 0xb313, 0x00e0, 0xa034, 0x8007, 0x800c, 0x8806,
+	0x8006, 0x8007, 0x90bc, 0x003f, 0x9084, 0xffc0, 0x9080, 0x000c,
+	0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0xaaa0, 0xab9c,
+	0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x1204, 0x0019, 0x0d08,
+	0x008e, 0x0898, 0x0096, 0x0006, 0x080c, 0x0fcd, 0x000e, 0x01b0,
+	0xa8ab, 0x0dcb, 0xa876, 0x000e, 0xa8a2, 0x0006, 0xae6a, 0x2800,
+	0xa89e, 0xa97a, 0xaf72, 0xaa8e, 0xab92, 0xac96, 0xad9a, 0x0086,
+	0x2940, 0x080c, 0x10ad, 0x008e, 0x9085, 0x0001, 0x009e, 0x0005,
+	0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff, 0x6210, 0x00b6,
+	0x2258, 0xba10, 0x00be, 0x9206, 0x1520, 0x700c, 0x6210, 0x00b6,
+	0x2258, 0xba14, 0x00be, 0x9206, 0x11e0, 0x6043, 0x0000, 0x2c68,
+	0x0016, 0x2009, 0x0035, 0x080c, 0xcc2a, 0x001e, 0x1158, 0x622c,
+	0x2268, 0x2071, 0x026c, 0x6b20, 0x9386, 0x0003, 0x0130, 0x9386,
+	0x0006, 0x0128, 0x080c, 0xa96b, 0x0020, 0x0039, 0x0010, 0x080c,
+	0xaf94, 0x002e, 0x00de, 0x00ee, 0x0005, 0x0096, 0x6814, 0x2048,
+	0x9186, 0x0015, 0x0904, 0xaf7c, 0x918e, 0x0016, 0x1904, 0xaf92,
+	0x700c, 0x908c, 0xff00, 0x9186, 0x1700, 0x0120, 0x9186, 0x0300,
+	0x1904, 0xaf56, 0x89ff, 0x1138, 0x6800, 0x9086, 0x000f, 0x0904,
+	0xaf39, 0x0804, 0xaf90, 0x6808, 0x9086, 0xffff, 0x1904, 0xaf7e,
+	0xa87c, 0x9084, 0x0060, 0x9086, 0x0020, 0x1128, 0xa83c, 0xa940,
+	0x9105, 0x1904, 0xaf7e, 0x6824, 0xd0b4, 0x1904, 0xaf7e, 0x080c,
+	0xc7b3, 0x685c, 0xa882, 0xa87c, 0xc0dc, 0xc0f4, 0xc0d4, 0xa87e,
+	0x0026, 0x900e, 0x6a18, 0x2001, 0x000a, 0x080c, 0x8b2b, 0xa884,
+	0x920a, 0x0208, 0x8011, 0xaa86, 0x82ff, 0x002e, 0x1138, 0x00c6,
+	0x2d60, 0x080c, 0xc311, 0x00ce, 0x0804, 0xaf90, 0x00c6, 0xa868,
+	0xd0fc, 0x1118, 0x080c, 0x5d3d, 0x0010, 0x080c, 0x6129, 0x00ce,
+	0x1904, 0xaf7e, 0x00c6, 0x2d60, 0x080c, 0xa96b, 0x00ce, 0x0804,
+	0xaf90, 0x00c6, 0x080c, 0xa9b9, 0x0198, 0x6017, 0x0000, 0x6810,
+	0x6012, 0x080c, 0xca2d, 0x6023, 0x0003, 0x6904, 0x00c6, 0x2d60,
+	0x080c, 0xa96b, 0x00ce, 0x080c, 0xa9e6, 0x00ce, 0x0804, 0xaf90,
+	0x2001, 0x1992, 0x2004, 0x6842, 0x00ce, 0x04d0, 0x7008, 0x9086,
+	0x000b, 0x11c8, 0x6010, 0x00b6, 0x2058, 0xb900, 0xc1bc, 0xb902,
+	0x00be, 0x00c6, 0x2d60, 0xa883, 0x0003, 0x080c, 0xcc6c, 0x6007,
+	0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x00ce, 0x00e8, 0x700c, 0x9086, 0x2a00, 0x1138, 0x2001,
+	0x1992, 0x2004, 0x6842, 0x00a0, 0x0479, 0x00a0, 0x89ff, 0x090c,
+	0x0db8, 0x00c6, 0x00d6, 0x2d60, 0xa867, 0x0103, 0xa87b, 0x0003,
+	0x080c, 0x6703, 0x080c, 0xc7b3, 0x080c, 0xa99c, 0x00de, 0x00ce,
+	0x080c, 0xa96b, 0x009e, 0x0005, 0x9186, 0x0015, 0x1128, 0x2001,
+	0x1992, 0x2004, 0x6842, 0x0068, 0x918e, 0x0016, 0x1160, 0x00c6,
+	0x2d00, 0x2060, 0x080c, 0xe203, 0x080c, 0x8292, 0x080c, 0xa96b,
+	0x00ce, 0x080c, 0xa96b, 0x0005, 0x0026, 0x0036, 0x0046, 0x7228,
+	0xacb0, 0xabac, 0xd2f4, 0x0130, 0x2001, 0x1992, 0x2004, 0x6842,
+	0x0804, 0xb00c, 0x00c6, 0x2d60, 0x080c, 0xc21e, 0x00ce, 0x6804,
+	0x9086, 0x0050, 0x1168, 0x00c6, 0x2d00, 0x2060, 0x6003, 0x0001,
+	0x6007, 0x0050, 0x080c, 0x8c97, 0x080c, 0x922b, 0x00ce, 0x04e0,
+	0x6800, 0x9086, 0x000f, 0x01b0, 0x89ff, 0x090c, 0x0db8, 0x6800,
+	0x9086, 0x0004, 0x1198, 0xa87c, 0xd0ac, 0x0180, 0xa843, 0x0fff,
+	0xa83f, 0x0fff, 0xa880, 0xc0f4, 0xc0fc, 0xa882, 0x2001, 0x0001,
+	0x6832, 0x00e8, 0x2001, 0x0007, 0x6832, 0x00c8, 0xa87c, 0xd0b4,
+	0x1138, 0xd0ac, 0x0db8, 0xa838, 0xa934, 0x9105, 0x0d98, 0x0c30,
+	0xd2ec, 0x1d80, 0x7024, 0x9306, 0x1118, 0x7020, 0x9406, 0x0d50,
+	0x7020, 0x683e, 0x7024, 0x683a, 0x2001, 0x0005, 0x6832, 0x080c,
+	0xc925, 0x080c, 0x922b, 0x0010, 0x080c, 0xa96b, 0x004e, 0x003e,
+	0x002e, 0x0005, 0x00e6, 0x00d6, 0x0026, 0x7008, 0x9084, 0x00ff,
+	0x6210, 0x00b6, 0x2258, 0xba10, 0x00be, 0x9206, 0x1904, 0xb074,
+	0x700c, 0x6210, 0x00b6, 0x2258, 0xba14, 0x00be, 0x9206, 0x1904,
+	0xb074, 0x6038, 0x2068, 0x6a20, 0x9286, 0x0007, 0x0904, 0xb074,
+	0x9286, 0x0002, 0x0904, 0xb074, 0x9286, 0x0000, 0x05e8, 0x6808,
+	0x633c, 0x9306, 0x15c8, 0x2071, 0x026c, 0x9186, 0x0015, 0x0570,
+	0x918e, 0x0016, 0x1100, 0x00c6, 0x6038, 0x2060, 0x6104, 0x9186,
+	0x004b, 0x01c0, 0x9186, 0x004c, 0x01a8, 0x9186, 0x004d, 0x0190,
+	0x9186, 0x004e, 0x0178, 0x9186, 0x0052, 0x0160, 0x6014, 0x0096,
+	0x2048, 0x080c, 0xc5d1, 0x090c, 0x0db8, 0xa883, 0x0003, 0x009e,
+	0x080c, 0xcc6c, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002,
+	0x080c, 0x8c97, 0x080c, 0x922b, 0x00ce, 0x0030, 0x6038, 0x2070,
+	0x2001, 0x1992, 0x2004, 0x7042, 0x080c, 0xa96b, 0x002e, 0x00de,
+	0x00ee, 0x0005, 0x00b6, 0x0096, 0x00f6, 0x6014, 0x2048, 0x6010,
+	0x2058, 0x91b6, 0x0015, 0x0130, 0xba08, 0xbb0c, 0xbc00, 0xc48c,
+	0xbc02, 0x0460, 0x0096, 0x0156, 0x0036, 0x0026, 0x2b48, 0x9e90,
+	0x0010, 0x2019, 0x000a, 0x20a9, 0x0004, 0x080c, 0xb8f6, 0x002e,
+	0x003e, 0x015e, 0x009e, 0x1904, 0xb0e3, 0x0096, 0x0156, 0x0036,
+	0x0026, 0x2b48, 0x9e90, 0x0014, 0x2019, 0x0006, 0x20a9, 0x0004,
+	0x080c, 0xb8f6, 0x002e, 0x003e, 0x015e, 0x009e, 0x15a0, 0x7238,
+	0xba0a, 0x733c, 0xbb0e, 0xbc00, 0xc48d, 0xbc02, 0xa804, 0x9005,
+	0x1128, 0x00fe, 0x009e, 0x00be, 0x0804, 0xad6d, 0x0096, 0x2048,
+	0xaa12, 0xab16, 0xac0a, 0x009e, 0x8006, 0x8006, 0x8007, 0x90bc,
+	0x003f, 0x9084, 0xffc0, 0x9080, 0x0002, 0x2009, 0x002b, 0xaaa0,
+	0xab9c, 0xaca8, 0xada4, 0x2031, 0x0000, 0x2041, 0x1204, 0x080c,
+	0xae82, 0x0130, 0x00fe, 0x009e, 0x080c, 0xa96b, 0x00be, 0x0005,
+	0x080c, 0xb313, 0x0cb8, 0x2b78, 0x00f6, 0x080c, 0x2f98, 0x080c,
+	0xccbf, 0x00fe, 0x00c6, 0x080c, 0xa915, 0x2f00, 0x6012, 0x6017,
+	0x0000, 0x6023, 0x0001, 0x6007, 0x0001, 0x6003, 0x0001, 0x2001,
+	0x0007, 0x080c, 0x61c4, 0x080c, 0x61f0, 0x080c, 0x8ce9, 0x080c,
+	0x922b, 0x00ce, 0x0804, 0xb0b6, 0x2100, 0x91b2, 0x0053, 0x1a0c,
+	0x0db8, 0x91b2, 0x0040, 0x1a04, 0xb16c, 0x0002, 0xb15a, 0xb15a,
+	0xb150, 0xb15a, 0xb15a, 0xb15a, 0xb14e, 0xb14e, 0xb14e, 0xb14e,
+	0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e,
+	0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e,
+	0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb15a, 0xb14e, 0xb15a,
+	0xb15a, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb150, 0xb14e,
+	0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e,
+	0xb15a, 0xb15a, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e, 0xb14e,
+	0xb14e, 0xb14e, 0xb14e, 0xb15a, 0xb14e, 0xb14e, 0x080c, 0x0db8,
+	0x0066, 0x00b6, 0x6610, 0x2658, 0xb8cc, 0xc08c, 0xb8ce, 0x00be,
+	0x006e, 0x0000, 0x6003, 0x0001, 0x6106, 0x9186, 0x0032, 0x0118,
+	0x080c, 0x8ce9, 0x0010, 0x080c, 0x8c97, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x922b, 0x012e, 0x0005, 0x2600, 0x0002, 0xb15a, 0xb15a,
+	0xb180, 0xb15a, 0xb15a, 0xb180, 0xb180, 0xb180, 0xb180, 0xb15a,
+	0xb180, 0xb15a, 0xb180, 0xb15a, 0xb180, 0xb180, 0xb180, 0xb180,
+	0x080c, 0x0db8, 0x6004, 0x90b2, 0x0053, 0x1a0c, 0x0db8, 0x91b6,
+	0x0013, 0x0904, 0xb241, 0x91b6, 0x0027, 0x1904, 0xb1fc, 0x080c,
+	0x912c, 0x6004, 0x080c, 0xc7bf, 0x01b0, 0x080c, 0xc7d0, 0x01a8,
+	0x908e, 0x0021, 0x0904, 0xb1f9, 0x908e, 0x0022, 0x1130, 0x080c,
+	0xad99, 0x0904, 0xb1f5, 0x0804, 0xb1f6, 0x908e, 0x003d, 0x0904,
+	0xb1f9, 0x0804, 0xb1ef, 0x080c, 0x2fbd, 0x2001, 0x0007, 0x080c,
+	0x61c4, 0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xb313,
+	0x9186, 0x007e, 0x1148, 0x2001, 0x1836, 0x2014, 0xc285, 0x080c,
+	0x7018, 0x1108, 0xc2ad, 0x2202, 0x0036, 0x2019, 0x0028, 0x080c,
+	0x30ae, 0x003e, 0x0016, 0x0026, 0x0036, 0x2110, 0x2019, 0x0028,
+	0x080c, 0x8e3c, 0x0076, 0x903e, 0x080c, 0x8d19, 0x6010, 0x00b6,
+	0x905d, 0x0100, 0x00be, 0x2c08, 0x080c, 0xdcf1, 0x007e, 0x003e,
+	0x002e, 0x001e, 0x080c, 0xccbf, 0x0016, 0x080c, 0xca25, 0x080c,
+	0xa96b, 0x001e, 0x080c, 0x3090, 0x080c, 0x922b, 0x0030, 0x080c,
+	0xca25, 0x080c, 0xa96b, 0x080c, 0x922b, 0x0005, 0x080c, 0xb313,
+	0x0cb0, 0x080c, 0xb34f, 0x0c98, 0x9186, 0x0014, 0x1db0, 0x080c,
+	0x912c, 0x6004, 0x908e, 0x0022, 0x1118, 0x080c, 0xad99, 0x0d68,
+	0x080c, 0x2f98, 0x080c, 0xccbf, 0x080c, 0xc7bf, 0x1190, 0x080c,
+	0x2fbd, 0x6010, 0x00b6, 0x2058, 0xb9a0, 0x00be, 0x080c, 0xb313,
+	0x9186, 0x007e, 0x1128, 0x2001, 0x1836, 0x200c, 0xc185, 0x2102,
+	0x0870, 0x080c, 0xc7d0, 0x1118, 0x080c, 0xb313, 0x0840, 0x6004,
+	0x908e, 0x0032, 0x1160, 0x00e6, 0x00f6, 0x2071, 0x18aa, 0x2079,
+	0x0000, 0x080c, 0x3325, 0x00fe, 0x00ee, 0x0804, 0xb1ef, 0x6004,
+	0x908e, 0x0021, 0x0d48, 0x908e, 0x0022, 0x090c, 0xb313, 0x0804,
+	0xb1ef, 0x90b2, 0x0040, 0x1a04, 0xb2ef, 0x2008, 0x0002, 0xb289,
+	0xb28a, 0xb28d, 0xb290, 0xb293, 0xb296, 0xb287, 0xb287, 0xb287,
+	0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287,
+	0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287,
+	0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb299, 0xb2a4, 0xb287,
+	0xb2a6, 0xb2a4, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb2a4,
+	0xb2a4, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287, 0xb287,
+	0xb287, 0xb2d6, 0xb2a4, 0xb287, 0xb2a0, 0xb287, 0xb287, 0xb287,
+	0xb2a1, 0xb287, 0xb287, 0xb287, 0xb2a4, 0xb2cd, 0xb287, 0x080c,
+	0x0db8, 0x00d0, 0x2001, 0x000b, 0x0410, 0x2001, 0x0003, 0x00f8,
+	0x2001, 0x0005, 0x00e0, 0x2001, 0x0001, 0x00c8, 0x2001, 0x0009,
+	0x00b0, 0x080c, 0x912c, 0x6003, 0x0005, 0x080c, 0x922b, 0x0070,
+	0x0018, 0x0010, 0x080c, 0x61c4, 0x0804, 0xb2e7, 0x080c, 0x912c,
+	0x080c, 0xccc2, 0x6003, 0x0004, 0x080c, 0x922b, 0x0005, 0x080c,
+	0x61c4, 0x080c, 0x912c, 0x6003, 0x0002, 0x0036, 0x2019, 0x185e,
+	0x2304, 0x9084, 0xff00, 0x1120, 0x2001, 0x1990, 0x201c, 0x0040,
+	0x8007, 0x909a, 0x0004, 0x0ec0, 0x8003, 0x801b, 0x831b, 0x9318,
+	0x631a, 0x003e, 0x080c, 0x922b, 0x0c08, 0x080c, 0x912c, 0x080c,
+	0xca25, 0x080c, 0xa96b, 0x080c, 0x922b, 0x08c0, 0x00e6, 0x00f6,
+	0x2071, 0x18aa, 0x2079, 0x0000, 0x080c, 0x3325, 0x00fe, 0x00ee,
+	0x080c, 0x912c, 0x080c, 0xa96b, 0x080c, 0x922b, 0x0838, 0x080c,
+	0x912c, 0x6003, 0x0002, 0x080c, 0xccc2, 0x0804, 0x922b, 0x2600,
+	0x2008, 0x0002, 0xb306, 0xb2e7, 0xb304, 0xb2e7, 0xb2e7, 0xb304,
+	0xb304, 0xb304, 0xb304, 0xb2e7, 0xb304, 0xb2e7, 0xb304, 0xb2e7,
+	0xb304, 0xb304, 0xb304, 0xb304, 0x080c, 0x0db8, 0x080c, 0x912c,
+	0x0096, 0x6014, 0x2048, 0x080c, 0x68e7, 0x009e, 0x080c, 0xa96b,
+	0x080c, 0x922b, 0x0005, 0x00e6, 0x0096, 0x0026, 0x0016, 0x080c,
+	0xc5d1, 0x0568, 0x6014, 0x2048, 0xa864, 0x9086, 0x0139, 0x11a8,
+	0xa894, 0x9086, 0x0056, 0x1148, 0x080c, 0x514c, 0x0130, 0x2001,
+	0x0000, 0x900e, 0x2011, 0x4000, 0x0028, 0x2001, 0x0030, 0x900e,
+	0x2011, 0x4005, 0x080c, 0xcb91, 0x0090, 0xa868, 0xd0fc, 0x0178,
+	0xa807, 0x0000, 0x0016, 0x6004, 0x908e, 0x0021, 0x0168, 0x908e,
+	0x003d, 0x0150, 0x001e, 0xa867, 0x0103, 0xa833, 0x0100, 0x001e,
+	0x002e, 0x009e, 0x00ee, 0x0005, 0x001e, 0x0009, 0x0cc0, 0x0096,
+	0x6014, 0x2048, 0xa800, 0x2048, 0xa867, 0x0103, 0xa823, 0x8001,
+	0x009e, 0x0005, 0x00b6, 0x6610, 0x2658, 0xb804, 0x9084, 0x00ff,
+	0x90b2, 0x000c, 0x1a0c, 0x0db8, 0x6604, 0x96b6, 0x004d, 0x1120,
+	0x080c, 0xcab1, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x0043, 0x1120,
+	0x080c, 0xcafa, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x004b, 0x1120,
+	0x080c, 0xcb26, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x0033, 0x1120,
+	0x080c, 0xca47, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x0028, 0x1120,
+	0x080c, 0xc7ff, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x0029, 0x1120,
+	0x080c, 0xc840, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x001f, 0x1120,
+	0x080c, 0xad42, 0x0804, 0xb3df, 0x6604, 0x96b6, 0x0000, 0x1118,
+	0x080c, 0xb07a, 0x04e0, 0x6604, 0x96b6, 0x0022, 0x1118, 0x080c,
+	0xad7a, 0x04a8, 0x6604, 0x96b6, 0x0035, 0x1118, 0x080c, 0xaea0,
+	0x0470, 0x6604, 0x96b6, 0x0039, 0x1118, 0x080c, 0xb012, 0x0438,
+	0x6604, 0x96b6, 0x003d, 0x1118, 0x080c, 0xadb2, 0x0400, 0x6604,
+	0x96b6, 0x0044, 0x1118, 0x080c, 0xadee, 0x00c8, 0x6604, 0x96b6,
+	0x0049, 0x1118, 0x080c, 0xae2f, 0x0090, 0x6604, 0x96b6, 0x0041,
+	0x1118, 0x080c, 0xae19, 0x0058, 0x91b6, 0x0015, 0x1110, 0x0063,
+	0x0030, 0x91b6, 0x0016, 0x1128, 0x00be, 0x0804, 0xb61e, 0x00be,
+	0x0005, 0x080c, 0xaa01, 0x0cd8, 0xb3fc, 0xb3ff, 0xb3fc, 0xb446,
+	0xb3fc, 0xb592, 0xb62b, 0xb3fc, 0xb3fc, 0xb5f4, 0xb3fc, 0xb60a,
+	0x0096, 0x601f, 0x0000, 0x6014, 0x2048, 0xa800, 0x2048, 0xa867,
+	0x0103, 0x009e, 0x0804, 0xa96b, 0xa001, 0xa001, 0x0005, 0x00e6,
+	0x2071, 0x1800, 0x7088, 0x9086, 0x0074, 0x1540, 0x080c, 0xdcc2,
+	0x11b0, 0x6010, 0x00b6, 0x2058, 0x7030, 0xd08c, 0x0128, 0xb800,
+	0xd0bc, 0x0110, 0xc0c5, 0xb802, 0x00f9, 0x00be, 0x2001, 0x0006,
+	0x080c, 0x61c4, 0x080c, 0x2fbd, 0x080c, 0xa96b, 0x0098, 0x2001,
+	0x000a, 0x080c, 0x61c4, 0x080c, 0x2fbd, 0x6003, 0x0001, 0x6007,
+	0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0020, 0x2001, 0x0001,
+	0x080c, 0xb562, 0x00ee, 0x0005, 0x00d6, 0xb800, 0xd084, 0x0160,
+	0x9006, 0x080c, 0x61b0, 0x2069, 0x1853, 0x6804, 0xd0a4, 0x0120,
+	0x2001, 0x0006, 0x080c, 0x61f0, 0x00de, 0x0005, 0x00b6, 0x0096,
+	0x00d6, 0x2011, 0x1822, 0x2204, 0x9086, 0x0074, 0x1904, 0xb544,
+	0x6010, 0x2058, 0xbaa0, 0x9286, 0x007e, 0x1120, 0x080c, 0xb778,
+	0x0804, 0xb4a9, 0x080c, 0xb76d, 0x6010, 0x2058, 0xbaa0, 0x9286,
+	0x0080, 0x1510, 0x6014, 0x9005, 0x01a8, 0x2048, 0xa864, 0x9084,
+	0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011,
+	0x4000, 0x080c, 0xcb91, 0x0030, 0xa807, 0x0000, 0xa867, 0x0103,
+	0xa833, 0x0200, 0x2001, 0x0006, 0x080c, 0x61c4, 0x080c, 0x2fbd,
+	0x080c, 0xa96b, 0x0804, 0xb547, 0x080c, 0xb54b, 0x6014, 0x9005,
+	0x0190, 0x2048, 0xa868, 0xd0f4, 0x0170, 0xa864, 0x9084, 0x00ff,
+	0x9086, 0x0039, 0x1d08, 0x2001, 0x0000, 0x900e, 0x2011, 0x4000,
+	0x080c, 0xcb91, 0x08f8, 0x2001, 0x0004, 0x080c, 0x61c4, 0x6003,
+	0x0001, 0x6007, 0x0003, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0804,
+	0xb547, 0xb85c, 0xd0e4, 0x01d0, 0x080c, 0xc9c7, 0x080c, 0x7018,
+	0x0110, 0xd0dc, 0x1938, 0x2011, 0x1836, 0x2204, 0xc0ad, 0x2012,
+	0x2001, 0x1979, 0x2004, 0x00f6, 0x2079, 0x0100, 0x78e3, 0x0000,
+	0x080c, 0x2698, 0x78e2, 0x00fe, 0x0804, 0xb47a, 0x080c, 0xca04,
+	0x2011, 0x1836, 0x2204, 0xc0a5, 0x2012, 0x0006, 0x080c, 0xde3c,
+	0x000e, 0x1904, 0xb47a, 0xc0b5, 0x2012, 0x2001, 0x0006, 0x080c,
+	0x61c4, 0x9006, 0x080c, 0x61b0, 0x00c6, 0x2001, 0x180e, 0x2004,
+	0xd09c, 0x0520, 0x00f6, 0x2079, 0x0100, 0x00e6, 0x2071, 0x1800,
+	0x700c, 0x9084, 0x00ff, 0x78e6, 0x7076, 0x7010, 0x78ea, 0x707a,
+	0x908c, 0x00ff, 0x00ee, 0x780c, 0xc0b5, 0x780e, 0x00fe, 0x080c,
+	0x266d, 0x00f6, 0x2100, 0x900e, 0x080c, 0x2624, 0x7956, 0x00fe,
+	0x9186, 0x0081, 0x01d8, 0x2009, 0x0081, 0x00c8, 0x2009, 0x00ef,
+	0x00f6, 0x2079, 0x0100, 0x79ea, 0x7932, 0x7936, 0x780c, 0xc0b5,
+	0x780e, 0x00fe, 0x080c, 0x266d, 0x00f6, 0x2079, 0x1800, 0x797a,
+	0x2100, 0x900e, 0x080c, 0x2624, 0x7956, 0x00fe, 0x8108, 0x080c,
+	0x6213, 0x2b00, 0x00ce, 0x1904, 0xb47a, 0x6012, 0x2009, 0x180e,
+	0x210c, 0xd19c, 0x0150, 0x2009, 0x027c, 0x210c, 0x918c, 0x00ff,
+	0xb912, 0x2009, 0x027d, 0x210c, 0xb916, 0x2001, 0x0002, 0x080c,
+	0x61c4, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c,
+	0x8ce9, 0x080c, 0x922b, 0x0018, 0x2001, 0x0001, 0x00d9, 0x00de,
+	0x009e, 0x00be, 0x0005, 0x00e6, 0x080c, 0xe366, 0x0188, 0x2071,
+	0x0260, 0x7108, 0x720c, 0x918c, 0x00ff, 0x1118, 0x9284, 0xff00,
+	0x0138, 0x6010, 0x2058, 0xb8a0, 0xd0bc, 0x1110, 0xb912, 0xba16,
+	0x00ee, 0x0005, 0x2030, 0x9005, 0x0158, 0x2001, 0x0007, 0x080c,
+	0x61c4, 0x080c, 0x53b7, 0x1120, 0x2001, 0x0007, 0x080c, 0x61f0,
+	0x2600, 0x9005, 0x11b0, 0x6014, 0x0096, 0x2048, 0xa868, 0x009e,
+	0xd0fc, 0x1178, 0x0036, 0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0,
+	0x00be, 0x2021, 0x0004, 0x2011, 0x8014, 0x080c, 0x47db, 0x004e,
+	0x003e, 0x080c, 0x2fbd, 0x6020, 0x9086, 0x000a, 0x1108, 0x0005,
+	0x0804, 0xa96b, 0x00b6, 0x00e6, 0x0026, 0x0016, 0x2071, 0x1800,
+	0x7088, 0x9086, 0x0014, 0x1904, 0xb5ea, 0x080c, 0x53b7, 0x1170,
+	0x6014, 0x9005, 0x1158, 0x0036, 0x0046, 0x6010, 0x2058, 0xbba0,
+	0x2021, 0x0006, 0x080c, 0x4992, 0x004e, 0x003e, 0x00d6, 0x6010,
+	0x2058, 0x080c, 0x630f, 0x080c, 0xb434, 0x00de, 0x080c, 0xb83e,
+	0x1588, 0x6010, 0x2058, 0xb890, 0x9005, 0x0560, 0x2001, 0x0006,
+	0x080c, 0x61c4, 0x0096, 0x6014, 0x904d, 0x01d0, 0xa864, 0x9084,
+	0x00ff, 0x9086, 0x0039, 0x1140, 0x2001, 0x0000, 0x900e, 0x2011,
+	0x4000, 0x080c, 0xcb91, 0x0060, 0xa864, 0x9084, 0x00ff, 0x9086,
+	0x0029, 0x0130, 0xa807, 0x0000, 0xa867, 0x0103, 0xa833, 0x0200,
+	0x009e, 0x080c, 0x2fbd, 0x6020, 0x9086, 0x000a, 0x0140, 0x080c,
+	0xa96b, 0x0028, 0x080c, 0xb313, 0x9006, 0x080c, 0xb562, 0x001e,
+	0x002e, 0x00ee, 0x00be, 0x0005, 0x2011, 0x1822, 0x2204, 0x9086,
+	0x0014, 0x1160, 0x2001, 0x0002, 0x080c, 0x61c4, 0x6003, 0x0001,
+	0x6007, 0x0001, 0x080c, 0x8ce9, 0x0804, 0x922b, 0x2001, 0x0001,
+	0x0804, 0xb562, 0x2030, 0x2011, 0x1822, 0x2204, 0x9086, 0x0004,
+	0x1148, 0x96b6, 0x000b, 0x1120, 0x2001, 0x0007, 0x080c, 0x61c4,
+	0x0804, 0xa96b, 0x2001, 0x0001, 0x0804, 0xb562, 0x0002, 0xb3fc,
+	0xb636, 0xb3fc, 0xb677, 0xb3fc, 0xb724, 0xb62b, 0xb3fc, 0xb3fc,
+	0xb738, 0xb3fc, 0xb74a, 0x6604, 0x9686, 0x0003, 0x0904, 0xb592,
+	0x96b6, 0x001e, 0x1110, 0x080c, 0xa96b, 0x0005, 0x00b6, 0x00d6,
+	0x00c6, 0x080c, 0xb75c, 0x11a0, 0x9006, 0x080c, 0x61b0, 0x080c,
+	0x2f98, 0x080c, 0xccbf, 0x2001, 0x0002, 0x080c, 0x61c4, 0x6003,
+	0x0001, 0x6007, 0x0002, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0418,
+	0x2009, 0x026e, 0x2104, 0x9086, 0x0009, 0x1160, 0x6010, 0x2058,
+	0xb840, 0x9084, 0x00ff, 0x9005, 0x0170, 0x8001, 0xb842, 0x601b,
+	0x000a, 0x0088, 0x2009, 0x026f, 0x2104, 0x9084, 0xff00, 0x9086,
+	0x1900, 0x1108, 0x08a0, 0x080c, 0x2f98, 0x080c, 0xccbf, 0x2001,
+	0x0001, 0x080c, 0xb562, 0x00ce, 0x00de, 0x00be, 0x0005, 0x0096,
+	0x00b6, 0x0026, 0x9016, 0x080c, 0xb76a, 0x00d6, 0x2069, 0x1988,
+	0x2d04, 0x9005, 0x0168, 0x6010, 0x2058, 0xb8a0, 0x9086, 0x007e,
+	0x1138, 0x2069, 0x181e, 0x2d04, 0x8000, 0x206a, 0x00de, 0x0010,
+	0x00de, 0x0088, 0x9006, 0x080c, 0x61b0, 0x2001, 0x0002, 0x080c,
+	0x61c4, 0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x8ce9, 0x080c,
+	0x922b, 0x0804, 0xb6f4, 0x080c, 0xc5d1, 0x01b0, 0x6014, 0x2048,
+	0xa864, 0x2010, 0x9086, 0x0139, 0x1138, 0x6007, 0x0016, 0x2001,
+	0x0002, 0x080c, 0xcbeb, 0x00b0, 0x6014, 0x2048, 0xa864, 0xd0fc,
+	0x0118, 0x2001, 0x0001, 0x0ca8, 0x2001, 0x180d, 0x2004, 0xd0dc,
+	0x0148, 0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x1110,
+	0x9006, 0x0c38, 0x080c, 0xb313, 0x2009, 0x026e, 0x2134, 0x96b4,
+	0x00ff, 0x9686, 0x0005, 0x0520, 0x9686, 0x000b, 0x01c8, 0x2009,
+	0x026f, 0x2104, 0x9084, 0xff00, 0x1118, 0x9686, 0x0009, 0x01c0,
+	0x9086, 0x1900, 0x1168, 0x9686, 0x0009, 0x0190, 0x2001, 0x0004,
+	0x080c, 0x61c4, 0x2001, 0x0028, 0x601a, 0x6007, 0x0052, 0x0020,
+	0x2001, 0x0001, 0x080c, 0xb562, 0x002e, 0x00be, 0x009e, 0x0005,
+	0x9286, 0x0139, 0x0160, 0x6014, 0x2048, 0x080c, 0xc5d1, 0x0140,
+	0xa864, 0x9086, 0x0139, 0x0118, 0xa868, 0xd0fc, 0x0108, 0x0c40,
+	0x6010, 0x2058, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0138, 0x8001,
+	0xb842, 0x601b, 0x000a, 0x6007, 0x0016, 0x08f0, 0xb8a0, 0x9086,
+	0x007e, 0x1138, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c3c, 0x00ee,
+	0x0010, 0x080c, 0x2f98, 0x0860, 0x080c, 0xb76a, 0x1160, 0x2001,
+	0x0004, 0x080c, 0x61c4, 0x6003, 0x0001, 0x6007, 0x0003, 0x080c,
+	0x8ce9, 0x0804, 0x922b, 0x080c, 0xb313, 0x9006, 0x0804, 0xb562,
+	0x0489, 0x1160, 0x2001, 0x0008, 0x080c, 0x61c4, 0x6003, 0x0001,
+	0x6007, 0x0005, 0x080c, 0x8ce9, 0x0804, 0x922b, 0x2001, 0x0001,
+	0x0804, 0xb562, 0x00f9, 0x1160, 0x2001, 0x000a, 0x080c, 0x61c4,
+	0x6003, 0x0001, 0x6007, 0x0001, 0x080c, 0x8ce9, 0x0804, 0x922b,
+	0x2001, 0x0001, 0x0804, 0xb562, 0x2009, 0x026e, 0x2104, 0x9086,
+	0x0003, 0x1138, 0x2009, 0x026f, 0x2104, 0x9084, 0xff00, 0x9086,
+	0x2a00, 0x0005, 0x9085, 0x0001, 0x0005, 0x00b6, 0x00c6, 0x0016,
+	0x6110, 0x2158, 0x080c, 0x6283, 0x001e, 0x00ce, 0x00be, 0x0005,
+	0x00b6, 0x00f6, 0x00e6, 0x00d6, 0x0036, 0x0016, 0x6010, 0x2058,
+	0x2009, 0x1836, 0x2104, 0x9085, 0x0003, 0x200a, 0x080c, 0xb810,
+	0x0560, 0x2009, 0x1836, 0x2104, 0xc0cd, 0x200a, 0x080c, 0x65d4,
+	0x0158, 0x9006, 0x2020, 0x2009, 0x002a, 0x080c, 0xdfa9, 0x2001,
+	0x180c, 0x200c, 0xc195, 0x2102, 0x2019, 0x002a, 0x2009, 0x0001,
+	0x080c, 0x2f63, 0x00e6, 0x2071, 0x1800, 0x080c, 0x2d72, 0x00ee,
+	0x00c6, 0x0156, 0x20a9, 0x0781, 0x2009, 0x007f, 0x080c, 0x3090,
+	0x8108, 0x1f04, 0xb7ae, 0x015e, 0x00ce, 0x080c, 0xb76d, 0x2071,
+	0x0260, 0x2079, 0x0200, 0x7817, 0x0001, 0x2001, 0x1836, 0x200c,
+	0xc1c5, 0x7018, 0xd0fc, 0x0110, 0xd0dc, 0x0118, 0x7038, 0xd0dc,
+	0x1108, 0xc1c4, 0x7817, 0x0000, 0x2001, 0x1836, 0x2102, 0x2079,
+	0x0100, 0x2e04, 0x9084, 0x00ff, 0x2069, 0x181d, 0x206a, 0x78e6,
+	0x0006, 0x8e70, 0x2e04, 0x2069, 0x181e, 0x206a, 0x78ea, 0x7832,
+	0x7836, 0x2010, 0x9084, 0xff00, 0x001e, 0x9105, 0x2009, 0x182a,
+	0x200a, 0x2200, 0x9084, 0x00ff, 0x2008, 0x080c, 0x266d, 0x080c,
+	0x7018, 0x0170, 0x2071, 0x0260, 0x2069, 0x198c, 0x7048, 0x206a,
+	0x704c, 0x6806, 0x7050, 0x680a, 0x7054, 0x680e, 0x080c, 0xc9c7,
+	0x0040, 0x2001, 0x0006, 0x080c, 0x61c4, 0x080c, 0x2fbd, 0x080c,
+	0xa96b, 0x001e, 0x003e, 0x00de, 0x00ee, 0x00fe, 0x00be, 0x0005,
+	0x0096, 0x0026, 0x0036, 0x00e6, 0x0156, 0x2019, 0x182a, 0x231c,
+	0x83ff, 0x01f0, 0x2071, 0x0260, 0x7200, 0x9294, 0x00ff, 0x7004,
+	0x9084, 0xff00, 0x9205, 0x9306, 0x1198, 0x2011, 0x0276, 0x20a9,
+	0x0004, 0x2b48, 0x2019, 0x000a, 0x080c, 0xb8f6, 0x1148, 0x2011,
+	0x027a, 0x20a9, 0x0004, 0x2019, 0x0006, 0x080c, 0xb8f6, 0x1100,
+	0x015e, 0x00ee, 0x003e, 0x002e, 0x009e, 0x0005, 0x00e6, 0x2071,
+	0x0260, 0x7034, 0x9086, 0x0014, 0x11a8, 0x7038, 0x9086, 0x0800,
+	0x1188, 0x703c, 0xd0ec, 0x0160, 0x9084, 0x0f00, 0x9086, 0x0100,
+	0x1138, 0x7054, 0xd0a4, 0x1110, 0xd0ac, 0x0110, 0x9006, 0x0010,
+	0x9085, 0x0001, 0x00ee, 0x0005, 0x00e6, 0x0096, 0x00c6, 0x0076,
+	0x0056, 0x0046, 0x0026, 0x0006, 0x0126, 0x2091, 0x8000, 0x2029,
+	0x19fa, 0x252c, 0x2021, 0x1a00, 0x2424, 0x2061, 0x1cd0, 0x2071,
+	0x1800, 0x724c, 0x706c, 0x9202, 0x1a04, 0xb8c2, 0x080c, 0x8544,
+	0x0904, 0xb8bb, 0x080c, 0xdfd5, 0x05f0, 0x6720, 0x9786, 0x0007,
+	0x05d0, 0x2500, 0x9c06, 0x05b8, 0x2400, 0x9c06, 0x05a0, 0x3e08,
+	0x9186, 0x0002, 0x1148, 0x6010, 0x9005, 0x0130, 0x00b6, 0x2058,
+	0xb800, 0x00be, 0xd0bc, 0x1538, 0x00c6, 0x6000, 0x9086, 0x0004,
+	0x1110, 0x080c, 0x1931, 0x9786, 0x000a, 0x0148, 0x080c, 0xc7d0,
+	0x1130, 0x00ce, 0x080c, 0xb313, 0x080c, 0xa99c, 0x00a0, 0x6014,
+	0x2048, 0x080c, 0xc5d1, 0x0160, 0x9786, 0x0003, 0x11e8, 0xa867,
+	0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0x68db, 0x080c, 0xc7b3,
+	0x080c, 0xa99c, 0x00ce, 0x9ce0, 0x0018, 0x7060, 0x9c02, 0x1210,
+	0x0804, 0xb871, 0x012e, 0x000e, 0x002e, 0x004e, 0x005e, 0x007e,
+	0x00ce, 0x009e, 0x00ee, 0x0005, 0x9786, 0x0006, 0x1118, 0x080c,
+	0xdf4c, 0x0c30, 0x9786, 0x0009, 0x1148, 0x6000, 0x9086, 0x0004,
+	0x0d08, 0x2009, 0x004c, 0x080c, 0xa9e6, 0x08e0, 0x9786, 0x000a,
+	0x0980, 0x0868, 0x220c, 0x2304, 0x9106, 0x1130, 0x8210, 0x8318,
+	0x1f04, 0xb8e2, 0x9006, 0x0005, 0x2304, 0x9102, 0x0218, 0x2001,
+	0x0001, 0x0008, 0x9006, 0x918d, 0x0001, 0x0005, 0x0136, 0x01c6,
+	0x0016, 0x8906, 0x8006, 0x8007, 0x908c, 0x003f, 0x21e0, 0x9084,
+	0xffc0, 0x9300, 0x2098, 0x3518, 0x20a9, 0x0001, 0x220c, 0x4002,
+	0x910e, 0x1140, 0x8210, 0x8319, 0x1dc8, 0x9006, 0x001e, 0x01ce,
+	0x013e, 0x0005, 0x220c, 0x9102, 0x0218, 0x2001, 0x0001, 0x0010,
+	0x2001, 0x0000, 0x918d, 0x0001, 0x001e, 0x01ce, 0x013e, 0x0005,
+	0x220c, 0x810f, 0x2304, 0x9106, 0x1130, 0x8210, 0x8318, 0x1f04,
+	0xb920, 0x9006, 0x0005, 0x918d, 0x0001, 0x0005, 0x6004, 0x908a,
+	0x0053, 0x1a0c, 0x0db8, 0x080c, 0xc7bf, 0x0120, 0x080c, 0xc7d0,
+	0x0168, 0x0028, 0x080c, 0x2fbd, 0x080c, 0xc7d0, 0x0138, 0x080c,
+	0x912c, 0x080c, 0xa96b, 0x080c, 0x922b, 0x0005, 0x080c, 0xb313,
+	0x0cb0, 0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a,
+	0x0005, 0xb965, 0xb965, 0xb965, 0xb965, 0xb965, 0xb965, 0xb965,
+	0xb965, 0xb965, 0xb965, 0xb965, 0xb967, 0xb967, 0xb967, 0xb967,
+	0xb965, 0xb965, 0xb965, 0xb967, 0xb965, 0x080c, 0x0db8, 0x600b,
+	0xffff, 0x6003, 0x0001, 0x6106, 0x080c, 0x8c97, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x922b, 0x012e, 0x0005, 0x9186, 0x0013, 0x1128,
+	0x6004, 0x9082, 0x0040, 0x0804, 0xba16, 0x9186, 0x0027, 0x11f0,
+	0x080c, 0x912c, 0x080c, 0x2f98, 0x080c, 0xccbf, 0x0096, 0x6114,
+	0x2148, 0x080c, 0xc5d1, 0x0168, 0xa867, 0x0103, 0xa87b, 0x0029,
+	0xa877, 0x0000, 0xa97c, 0xc1c5, 0xa97e, 0x080c, 0x68e7, 0x080c,
+	0xc7b3, 0x009e, 0x080c, 0xa96b, 0x0804, 0x922b, 0x9186, 0x0014,
+	0x1120, 0x6004, 0x9082, 0x0040, 0x04a0, 0x9186, 0x0046, 0x0150,
+	0x9186, 0x0045, 0x0138, 0x9186, 0x0053, 0x0120, 0x9186, 0x0048,
+	0x190c, 0x0db8, 0x2001, 0x0109, 0x2004, 0xd084, 0x0508, 0x0126,
+	0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x0036, 0x00f6, 0x00e6,
+	0x00c6, 0x2079, 0x19f1, 0x2071, 0x1800, 0x2061, 0x0100, 0x080c,
+	0x8b98, 0x00ce, 0x00ee, 0x00fe, 0x003e, 0x002e, 0x001e, 0x000e,
+	0x012e, 0xa001, 0x6000, 0x9086, 0x0002, 0x1110, 0x0804, 0xba54,
+	0x0005, 0x0002, 0xb9f0, 0xb9ee, 0xb9ee, 0xb9ee, 0xb9ee, 0xb9ee,
+	0xb9ee, 0xb9ee, 0xb9ee, 0xb9ee, 0xb9ee, 0xba0b, 0xba0b, 0xba0b,
+	0xba0b, 0xb9ee, 0xba0b, 0xb9ee, 0xba0b, 0xb9ee, 0x080c, 0x0db8,
+	0x080c, 0x912c, 0x0096, 0x6114, 0x2148, 0x080c, 0xc5d1, 0x0168,
+	0xa867, 0x0103, 0xa87b, 0x0006, 0xa877, 0x0000, 0xa880, 0xc0ec,
+	0xa882, 0x080c, 0x68e7, 0x080c, 0xc7b3, 0x009e, 0x080c, 0xa96b,
+	0x080c, 0x922b, 0x0005, 0x080c, 0x912c, 0x080c, 0xc7d0, 0x090c,
+	0xb313, 0x080c, 0xa96b, 0x080c, 0x922b, 0x0005, 0x0002, 0xba2d,
+	0xba2b, 0xba2b, 0xba2b, 0xba2b, 0xba2b, 0xba2b, 0xba2b, 0xba2b,
+	0xba2b, 0xba2b, 0xba44, 0xba44, 0xba44, 0xba44, 0xba2b, 0xba4e,
+	0xba2b, 0xba44, 0xba2b, 0x080c, 0x0db8, 0x0096, 0x080c, 0x912c,
+	0x6014, 0x2048, 0x2001, 0x1992, 0x2004, 0x6042, 0xa97c, 0xd1ac,
+	0x0140, 0x6003, 0x0004, 0xa87c, 0x9085, 0x0400, 0xa87e, 0x009e,
+	0x0005, 0x6003, 0x0002, 0x0cb8, 0x080c, 0x912c, 0x080c, 0xccc2,
+	0x080c, 0xccc7, 0x6003, 0x000f, 0x0804, 0x922b, 0x080c, 0x912c,
+	0x080c, 0xa96b, 0x0804, 0x922b, 0x9182, 0x0054, 0x1220, 0x9182,
+	0x0040, 0x0208, 0x000a, 0x0005, 0xba70, 0xba70, 0xba70, 0xba70,
+	0xba70, 0xba72, 0xbb4f, 0xba70, 0xbb83, 0xba70, 0xba70, 0xba70,
+	0xba70, 0xba70, 0xba70, 0xba70, 0xba70, 0xba70, 0xba70, 0xbb83,
+	0x080c, 0x0db8, 0x00b6, 0x0096, 0x6114, 0x2148, 0x7644, 0x96b4,
+	0x0fff, 0x86ff, 0x1528, 0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904,
+	0xbb3e, 0xa87b, 0x0000, 0xa867, 0x0103, 0xae76, 0xa87c, 0xd0ac,
+	0x0128, 0xa834, 0xa938, 0x9115, 0x190c, 0xbd18, 0x080c, 0x6703,
+	0x6210, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211, 0xba3e, 0x7044,
+	0xd0e4, 0x1904, 0xbb22, 0x080c, 0xa96b, 0x009e, 0x00be, 0x0005,
+	0x968c, 0x0c00, 0x0150, 0x6010, 0x2058, 0xb800, 0xd0bc, 0x1904,
+	0xbb26, 0x7348, 0xab92, 0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186,
+	0x0002, 0x0508, 0x9186, 0x0028, 0x1118, 0xa87b, 0x001c, 0x00e8,
+	0xd6dc, 0x01a0, 0xa87b, 0x0015, 0xa87c, 0xd0ac, 0x0170, 0xa938,
+	0xaa34, 0x2100, 0x9205, 0x0148, 0x7048, 0x9106, 0x1118, 0x704c,
+	0x9206, 0x0118, 0xa992, 0xaa8e, 0xc6dc, 0x0038, 0xd6d4, 0x0118,
+	0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0xa867, 0x0103, 0xae76,
+	0x901e, 0xd6c4, 0x01d8, 0x9686, 0x0100, 0x1130, 0x7064, 0x9005,
+	0x1118, 0xc6c4, 0x0804, 0xba79, 0x735c, 0xab86, 0x83ff, 0x0170,
+	0x938a, 0x0009, 0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019,
+	0x0018, 0x2011, 0x0025, 0x080c, 0xc1f3, 0x003e, 0xd6cc, 0x0904,
+	0xba8e, 0x7154, 0xa98a, 0x81ff, 0x0904, 0xba8e, 0x9192, 0x0021,
+	0x1278, 0x8304, 0x9098, 0x0018, 0x2011, 0x0029, 0x080c, 0xc1f3,
+	0x2011, 0x0205, 0x2013, 0x0000, 0x080c, 0xcc57, 0x0804, 0xba8e,
+	0xa868, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c50, 0x00a6,
+	0x2950, 0x080c, 0xc192, 0x00ae, 0x080c, 0xcc57, 0x080c, 0xc1e3,
+	0x0804, 0xba90, 0x080c, 0xc8b9, 0x0804, 0xba9d, 0xa87c, 0xd0ac,
+	0x0904, 0xbaa9, 0xa880, 0xd0bc, 0x1904, 0xbaa9, 0x7348, 0xa838,
+	0x9306, 0x11c8, 0x734c, 0xa834, 0x931e, 0x0904, 0xbaa9, 0xd6d4,
+	0x0190, 0xab38, 0x9305, 0x0904, 0xbaa9, 0x0068, 0xa87c, 0xd0ac,
+	0x0904, 0xba81, 0xa838, 0xa934, 0x9105, 0x0904, 0xba81, 0xa880,
+	0xd0bc, 0x1904, 0xba81, 0x080c, 0xc8f3, 0x0804, 0xba9d, 0x0096,
+	0x00f6, 0x6003, 0x0003, 0x6007, 0x0043, 0x2079, 0x026c, 0x7c04,
+	0x7b00, 0x7e0c, 0x7d08, 0x6014, 0x2048, 0xa87c, 0xd0ac, 0x0140,
+	0x6003, 0x0002, 0x00fe, 0x009e, 0x0005, 0x2130, 0x2228, 0x0058,
+	0x2400, 0xa9ac, 0x910a, 0x2300, 0xaab0, 0x9213, 0x2600, 0x9102,
+	0x2500, 0x9203, 0x0e90, 0xac36, 0xab3a, 0xae46, 0xad4a, 0x00fe,
+	0x6043, 0x0000, 0x2c10, 0x080c, 0x1a3a, 0x080c, 0x8d06, 0x080c,
+	0x9362, 0x009e, 0x0005, 0x0005, 0x9182, 0x0054, 0x1220, 0x9182,
+	0x0040, 0x0208, 0x000a, 0x0005, 0xbba0, 0xbba0, 0xbba0, 0xbba0,
+	0xbba0, 0xbba2, 0xbc38, 0xbba0, 0xbba0, 0xbc4f, 0xbcdb, 0xbba0,
+	0xbba0, 0xbba0, 0xbba0, 0xbcf0, 0xbba0, 0xbba0, 0xbba0, 0xbba0,
+	0x080c, 0x0db8, 0x0076, 0x00a6, 0x00e6, 0x0096, 0x2071, 0x0260,
+	0x6114, 0x2150, 0x7644, 0xb676, 0x96b4, 0x0fff, 0xb77c, 0xc7e5,
+	0xb77e, 0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff, 0x0110, 0x8211,
+	0xba3e, 0x00be, 0x86ff, 0x0904, 0xbc33, 0x9694, 0xff00, 0x9284,
+	0x0c00, 0x0120, 0x7048, 0xb092, 0x704c, 0xb08e, 0x9284, 0x0300,
+	0x0904, 0xbc33, 0x080c, 0x0fcd, 0x090c, 0x0db8, 0x2900, 0xb07a,
+	0xb77c, 0xc7cd, 0xb77e, 0xa867, 0x0103, 0xb068, 0xa86a, 0xb06c,
+	0xa86e, 0xb070, 0xa872, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348,
+	0xab92, 0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180,
+	0x9186, 0x0028, 0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118,
+	0xa87b, 0x0015, 0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010,
+	0xa87b, 0x0000, 0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e,
+	0xd6c4, 0x0190, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009,
+	0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011,
+	0x0025, 0x080c, 0xc1f3, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a,
+	0x81ff, 0x01c8, 0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018,
+	0x2011, 0x0029, 0x080c, 0xc1f3, 0x2011, 0x0205, 0x2013, 0x0000,
+	0x0050, 0xb068, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68,
+	0x2950, 0x080c, 0xc192, 0x009e, 0x00ee, 0x00ae, 0x007e, 0x0005,
+	0x00f6, 0x00a6, 0x6003, 0x0003, 0x2079, 0x026c, 0x7c04, 0x7b00,
+	0x7e0c, 0x7d08, 0x6014, 0x2050, 0xb436, 0xb33a, 0xb646, 0xb54a,
+	0x00ae, 0x00fe, 0x2c10, 0x080c, 0x1a3a, 0x0804, 0x9dcb, 0x6003,
+	0x0002, 0x6004, 0x9086, 0x0040, 0x11c8, 0x0096, 0x6014, 0x2048,
+	0xa87c, 0xd0ac, 0x0160, 0x601c, 0xd084, 0x1130, 0x00f6, 0x2c00,
+	0x2078, 0x080c, 0x1606, 0x00fe, 0x6003, 0x0004, 0x0010, 0x6003,
+	0x0002, 0x009e, 0x080c, 0x912c, 0x080c, 0x922b, 0x0096, 0x2001,
+	0x1992, 0x2004, 0x6042, 0x080c, 0x91dc, 0x080c, 0x9362, 0x6114,
+	0x2148, 0xa97c, 0xd1e4, 0x0904, 0xbcd6, 0xd1cc, 0x05a8, 0xa978,
+	0xa868, 0xd0fc, 0x0538, 0x0016, 0xa87c, 0x0006, 0xa880, 0x0006,
+	0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0, 0x810e, 0x810e,
+	0x810f, 0x9184, 0x003f, 0x20e0, 0x9184, 0xffc0, 0x9080, 0x0019,
+	0x2098, 0x0156, 0x20a9, 0x0020, 0x4003, 0x015e, 0x000e, 0xa882,
+	0x000e, 0xa87e, 0x001e, 0xa874, 0x0006, 0x2148, 0x080c, 0x0f7f,
+	0x001e, 0x0440, 0x0016, 0x080c, 0x0f7f, 0x009e, 0xa974, 0x0016,
+	0x080c, 0xc1e3, 0x001e, 0x00f0, 0xa867, 0x0103, 0xa974, 0x9184,
+	0x00ff, 0x90b6, 0x0002, 0x0180, 0x9086, 0x0028, 0x1118, 0xa87b,
+	0x001c, 0x0060, 0xd1dc, 0x0118, 0xa87b, 0x0015, 0x0038, 0xd1d4,
+	0x0118, 0xa87b, 0x0007, 0x0010, 0xa87b, 0x0000, 0x0016, 0x080c,
+	0x6703, 0x001e, 0xd1e4, 0x1120, 0x080c, 0xa96b, 0x009e, 0x0005,
+	0x080c, 0xc8b9, 0x0cd8, 0x6004, 0x9086, 0x0040, 0x1120, 0x080c,
+	0x912c, 0x080c, 0x922b, 0x2019, 0x0001, 0x080c, 0xa0c0, 0x6003,
+	0x0002, 0x080c, 0xccc7, 0x080c, 0x91dc, 0x080c, 0x9362, 0x0005,
+	0x6004, 0x9086, 0x0040, 0x1120, 0x080c, 0x912c, 0x080c, 0x922b,
+	0x2019, 0x0001, 0x080c, 0xa0c0, 0x080c, 0x91dc, 0x080c, 0x2f98,
+	0x080c, 0xccbf, 0x0096, 0x6114, 0x2148, 0x080c, 0xc5d1, 0x0150,
+	0xa867, 0x0103, 0xa87b, 0x0029, 0xa877, 0x0000, 0x080c, 0x68e7,
+	0x080c, 0xc7b3, 0x009e, 0x080c, 0xa96b, 0x080c, 0x9362, 0x0005,
+	0xa87b, 0x0015, 0xd1fc, 0x0138, 0xa87b, 0x0007, 0x8002, 0x8000,
+	0x810a, 0x9189, 0x0000, 0xa992, 0xa88e, 0x0005, 0x9182, 0x0054,
+	0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005, 0xbd42, 0xbd42,
+	0xbd42, 0xbd42, 0xbd42, 0xbd44, 0xbd42, 0xbd42, 0xbdea, 0xbd42,
+	0xbd42, 0xbd42, 0xbd42, 0xbd42, 0xbd42, 0xbd42, 0xbd42, 0xbd42,
+	0xbd42, 0xbf1b, 0x080c, 0x0db8, 0x0076, 0x00a6, 0x00e6, 0x0096,
+	0x2071, 0x0260, 0x6114, 0x2150, 0x7644, 0xb676, 0x96b4, 0x0fff,
+	0xb77c, 0xc7e5, 0xb77e, 0x6210, 0x00b6, 0x2258, 0xba3c, 0x82ff,
+	0x0110, 0x8211, 0xba3e, 0x00be, 0x86ff, 0x0904, 0xbde3, 0x9694,
+	0xff00, 0x9284, 0x0c00, 0x0120, 0x7048, 0xb092, 0x704c, 0xb08e,
+	0x9284, 0x0300, 0x0904, 0xbde3, 0x9686, 0x0100, 0x1130, 0x7064,
+	0x9005, 0x1118, 0xc6c4, 0xb676, 0x0c38, 0x080c, 0x0fcd, 0x090c,
+	0x0db8, 0x2900, 0xb07a, 0xb77c, 0x97bd, 0x0200, 0xb77e, 0xa867,
+	0x0103, 0xb068, 0xa86a, 0xb06c, 0xa86e, 0xb070, 0xa872, 0x7044,
+	0x9084, 0xf000, 0x9635, 0xae76, 0x968c, 0x0c00, 0x0120, 0x7348,
+	0xab92, 0x734c, 0xab8e, 0x968c, 0x00ff, 0x9186, 0x0002, 0x0180,
+	0x9186, 0x0028, 0x1118, 0xa87b, 0x001c, 0x0060, 0xd6dc, 0x0118,
+	0xa87b, 0x0015, 0x0038, 0xd6d4, 0x0118, 0xa87b, 0x0007, 0x0010,
+	0xa87b, 0x0000, 0xaf7e, 0xb080, 0xa882, 0xb084, 0xa886, 0x901e,
+	0xd6c4, 0x0190, 0x735c, 0xab86, 0x83ff, 0x0170, 0x938a, 0x0009,
+	0x0210, 0x2019, 0x0008, 0x0036, 0x2308, 0x2019, 0x0018, 0x2011,
+	0x0025, 0x080c, 0xc1f3, 0x003e, 0xd6cc, 0x01e8, 0x7154, 0xa98a,
+	0x81ff, 0x01c8, 0x9192, 0x0021, 0x1260, 0x8304, 0x9098, 0x0018,
+	0x2011, 0x0029, 0x080c, 0xc1f3, 0x2011, 0x0205, 0x2013, 0x0000,
+	0x0050, 0xb068, 0xd0fc, 0x0120, 0x2009, 0x0020, 0xa98a, 0x0c68,
+	0x2950, 0x080c, 0xc192, 0x080c, 0x190f, 0x009e, 0x00ee, 0x00ae,
+	0x007e, 0x0005, 0x2001, 0x1992, 0x2004, 0x6042, 0x0096, 0x6114,
+	0x2148, 0xa83c, 0xa940, 0x9105, 0x1118, 0xa87c, 0xc0dc, 0xa87e,
+	0x6003, 0x0002, 0xa97c, 0xd1e4, 0x0904, 0xbf16, 0x6043, 0x0000,
+	0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x1500, 0xd1cc,
+	0x0904, 0xbee5, 0xa978, 0xa868, 0xd0fc, 0x0904, 0xbea6, 0x0016,
+	0xa87c, 0x0006, 0xa880, 0x0006, 0x00a6, 0x2150, 0xb174, 0x9184,
+	0x00ff, 0x90b6, 0x0002, 0x0904, 0xbe74, 0x9086, 0x0028, 0x1904,
+	0xbe60, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x0804, 0xbe7c, 0x6024,
+	0xd0f4, 0x11d0, 0xa838, 0xaa34, 0x9205, 0x09c8, 0xa838, 0xaa90,
+	0x9206, 0x1120, 0xa88c, 0xaa34, 0x9206, 0x0988, 0x6024, 0xd0d4,
+	0x1148, 0xa9ac, 0xa834, 0x9102, 0x603a, 0xa9b0, 0xa838, 0x9103,
+	0x603e, 0x6024, 0xc0f5, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb83c,
+	0x8000, 0xb83e, 0x00be, 0x9006, 0xa876, 0xa892, 0xa88e, 0xa87c,
+	0xc0e4, 0xa87e, 0xd0cc, 0x0140, 0xc0cc, 0xa87e, 0x0096, 0xa878,
+	0x2048, 0x080c, 0x0f7f, 0x009e, 0x080c, 0xc8f3, 0x0804, 0xbf16,
+	0xd1dc, 0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xcb7a,
+	0x0118, 0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b,
+	0x0007, 0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834,
+	0xa938, 0x9115, 0x190c, 0xbd18, 0xa87c, 0xb07e, 0xa890, 0xb092,
+	0xa88c, 0xb08e, 0xa860, 0x20e8, 0xa85c, 0x9080, 0x0019, 0x20a0,
+	0x20a9, 0x0020, 0x8a06, 0x8006, 0x8007, 0x9094, 0x003f, 0x22e0,
+	0x9084, 0xffc0, 0x9080, 0x0019, 0x2098, 0x4003, 0x00ae, 0x000e,
+	0xa882, 0x000e, 0xa87e, 0x080c, 0xcc57, 0x001e, 0xa874, 0x0006,
+	0x2148, 0x080c, 0x0f7f, 0x001e, 0x0804, 0xbf12, 0x0016, 0x00a6,
+	0x2150, 0xb174, 0x9184, 0x00ff, 0x90b6, 0x0002, 0x01e0, 0x9086,
+	0x0028, 0x1128, 0xa87b, 0x001c, 0xb07b, 0x001c, 0x00e0, 0xd1dc,
+	0x0158, 0xa87b, 0x0015, 0xb07b, 0x0015, 0x080c, 0xcb7a, 0x0118,
+	0xb174, 0xc1dc, 0xb176, 0x0078, 0xd1d4, 0x0128, 0xa87b, 0x0007,
+	0xb07b, 0x0007, 0x0040, 0xa87c, 0xd0ac, 0x0128, 0xa834, 0xa938,
+	0x9115, 0x190c, 0xbd18, 0xa890, 0xb092, 0xa88c, 0xb08e, 0xa87c,
+	0xb07e, 0x00ae, 0x080c, 0x0f7f, 0x009e, 0x080c, 0xcc57, 0xa974,
+	0x0016, 0x080c, 0xc1e3, 0x001e, 0x0468, 0xa867, 0x0103, 0xa974,
+	0x9184, 0x00ff, 0x90b6, 0x0002, 0x01b0, 0x9086, 0x0028, 0x1118,
+	0xa87b, 0x001c, 0x00d0, 0xd1dc, 0x0148, 0xa87b, 0x0015, 0x080c,
+	0xcb7a, 0x0118, 0xa974, 0xc1dc, 0xa976, 0x0078, 0xd1d4, 0x0118,
+	0xa87b, 0x0007, 0x0050, 0xa87b, 0x0000, 0xa87c, 0xd0ac, 0x0128,
+	0xa834, 0xa938, 0x9115, 0x190c, 0xbd18, 0xa974, 0x0016, 0x080c,
+	0x6703, 0x001e, 0xd1e4, 0x1120, 0x080c, 0xa96b, 0x009e, 0x0005,
+	0x080c, 0xc8b9, 0x0cd8, 0x6114, 0x0096, 0x2148, 0xa97c, 0xd1e4,
+	0x190c, 0x191d, 0x009e, 0x0005, 0x080c, 0x912c, 0x0010, 0x080c,
+	0x91dc, 0x080c, 0xc5d1, 0x01c0, 0x0096, 0x6114, 0x2148, 0xa867,
+	0x0103, 0x2009, 0x180c, 0x210c, 0xd18c, 0x11b8, 0xd184, 0x1190,
+	0x6108, 0xa97a, 0x918e, 0x0029, 0x1110, 0x080c, 0xe300, 0xa877,
+	0x0000, 0x080c, 0x68e7, 0x009e, 0x080c, 0xa96b, 0x080c, 0x922b,
+	0x0804, 0x9362, 0xa87b, 0x0004, 0x0c90, 0xa87b, 0x0004, 0x0c78,
+	0x9182, 0x0054, 0x1220, 0x9182, 0x0040, 0x0208, 0x000a, 0x0005,
+	0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6e, 0xbf6c, 0xbf6c,
+	0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c,
+	0xbf6c, 0xbf6c, 0xbf6c, 0xbf6c, 0x080c, 0x0db8, 0x080c, 0x53ab,
+	0x01f8, 0x6014, 0x7144, 0x918c, 0x0fff, 0x9016, 0xd1c4, 0x0118,
+	0x7264, 0x9294, 0x00ff, 0x0096, 0x904d, 0x0188, 0xa87b, 0x0000,
+	0xa864, 0x9086, 0x0139, 0x0128, 0xa867, 0x0103, 0xa976, 0xaa96,
+	0x0030, 0xa897, 0x4000, 0xa99a, 0xaa9e, 0x080c, 0x68e7, 0x009e,
+	0x0804, 0xa96b, 0x9182, 0x0085, 0x0002, 0xbfa4, 0xbfa2, 0xbfa2,
+	0xbfb0, 0xbfa2, 0xbfa2, 0xbfa2, 0xbfa2, 0xbfa2, 0xbfa2, 0xbfa2,
+	0xbfa2, 0xbfa2, 0x080c, 0x0db8, 0x6003, 0x0001, 0x6106, 0x080c,
+	0x8c97, 0x0126, 0x2091, 0x8000, 0x080c, 0x922b, 0x012e, 0x0005,
+	0x0026, 0x0056, 0x00d6, 0x00e6, 0x2071, 0x0260, 0x7224, 0x6216,
+	0x7220, 0x080c, 0xc5bf, 0x01a0, 0x2268, 0x6800, 0x9086, 0x0000,
+	0x0178, 0x6010, 0x6d10, 0x952e, 0x1158, 0x00c6, 0x2d60, 0x080c,
+	0xc21e, 0x00ce, 0x0128, 0x6803, 0x0002, 0x6007, 0x0086, 0x0010,
+	0x6007, 0x0087, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b,
+	0x9280, 0x0004, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0140,
+	0x6824, 0xd0ec, 0x0128, 0x00c6, 0x2260, 0x080c, 0xc8f3, 0x00ce,
+	0x00ee, 0x00de, 0x005e, 0x002e, 0x0005, 0x9186, 0x0013, 0x1160,
+	0x6004, 0x908a, 0x0085, 0x0a0c, 0x0db8, 0x908a, 0x0092, 0x1a0c,
+	0x0db8, 0x9082, 0x0085, 0x00e2, 0x9186, 0x0027, 0x0120, 0x9186,
+	0x0014, 0x190c, 0x0db8, 0x080c, 0x912c, 0x0096, 0x6014, 0x2048,
+	0x080c, 0xc5d1, 0x0140, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b,
+	0x0029, 0x080c, 0x68e7, 0x009e, 0x080c, 0xa99c, 0x0804, 0x922b,
+	0xc025, 0xc027, 0xc027, 0xc025, 0xc025, 0xc025, 0xc025, 0xc025,
+	0xc025, 0xc025, 0xc025, 0xc025, 0xc025, 0x080c, 0x0db8, 0x080c,
+	0x912c, 0x080c, 0xa99c, 0x080c, 0x922b, 0x0005, 0x9186, 0x0013,
+	0x1128, 0x6004, 0x9082, 0x0085, 0x2008, 0x04b8, 0x9186, 0x0027,
+	0x11f8, 0x080c, 0x912c, 0x080c, 0x2f98, 0x080c, 0xccbf, 0x0096,
+	0x6014, 0x2048, 0x080c, 0xc5d1, 0x0150, 0xa867, 0x0103, 0xa877,
+	0x0000, 0xa87b, 0x0029, 0x080c, 0x68e7, 0x080c, 0xc7b3, 0x009e,
+	0x080c, 0xa96b, 0x080c, 0x922b, 0x0005, 0x080c, 0xaa01, 0x0ce0,
+	0x9186, 0x0014, 0x1dd0, 0x080c, 0x912c, 0x0096, 0x6014, 0x2048,
+	0x080c, 0xc5d1, 0x0d60, 0xa867, 0x0103, 0xa877, 0x0000, 0xa87b,
+	0x0006, 0xa880, 0xc0ec, 0xa882, 0x08f0, 0x0002, 0xc07d, 0xc07b,
+	0xc07b, 0xc07b, 0xc07b, 0xc07b, 0xc095, 0xc07b, 0xc07b, 0xc07b,
+	0xc07b, 0xc07b, 0xc07b, 0x080c, 0x0db8, 0x080c, 0x912c, 0x6034,
+	0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035,
+	0x1118, 0x2001, 0x1990, 0x0010, 0x2001, 0x1991, 0x2004, 0x601a,
+	0x6003, 0x000c, 0x080c, 0x922b, 0x0005, 0x080c, 0x912c, 0x6034,
+	0x908c, 0xff00, 0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035,
+	0x1118, 0x2001, 0x1990, 0x0010, 0x2001, 0x1991, 0x2004, 0x601a,
+	0x6003, 0x000e, 0x080c, 0x922b, 0x0005, 0x9182, 0x0092, 0x1220,
+	0x9182, 0x0085, 0x0208, 0x0012, 0x0804, 0xaa01, 0xc0c3, 0xc0c3,
+	0xc0c3, 0xc0c3, 0xc0c5, 0xc112, 0xc0c3, 0xc0c3, 0xc0c3, 0xc0c3,
+	0xc0c3, 0xc0c3, 0xc0c3, 0x080c, 0x0db8, 0x0096, 0x6010, 0x00b6,
+	0x2058, 0xb800, 0x00be, 0xd0bc, 0x0168, 0x6034, 0x908c, 0xff00,
+	0x810f, 0x9186, 0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x009e,
+	0x0804, 0xc126, 0x080c, 0xc5d1, 0x1118, 0x080c, 0xc7b3, 0x0068,
+	0x6014, 0x2048, 0xa87c, 0xd0e4, 0x1110, 0x080c, 0xc7b3, 0xa867,
+	0x0103, 0x080c, 0xcc8a, 0x080c, 0x68e7, 0x00d6, 0x2c68, 0x080c,
+	0xa915, 0x01d0, 0x6003, 0x0001, 0x6007, 0x001e, 0x600b, 0xffff,
+	0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c, 0x613e,
+	0x6910, 0x6112, 0x080c, 0xca2d, 0x6954, 0x6156, 0x6023, 0x0001,
+	0x080c, 0x8c97, 0x080c, 0x922b, 0x2d60, 0x00de, 0x080c, 0xa96b,
+	0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc,
+	0x0598, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186, 0x0035, 0x0130,
+	0x9186, 0x001e, 0x0118, 0x9186, 0x0039, 0x1530, 0x00d6, 0x2c68,
+	0x080c, 0xcc2a, 0x1904, 0xc16b, 0x080c, 0xa915, 0x01d8, 0x6106,
+	0x6003, 0x0001, 0x6023, 0x0001, 0x6910, 0x6112, 0x692c, 0x612e,
+	0x6930, 0x6132, 0x6934, 0x918c, 0x00ff, 0x6136, 0x6938, 0x613a,
+	0x693c, 0x613e, 0x6954, 0x6156, 0x080c, 0xca2d, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x2d60, 0x00f8, 0x0096, 0x6014, 0x2048, 0x080c,
+	0xc5d1, 0x01c8, 0xa867, 0x0103, 0xa880, 0xd0b4, 0x0128, 0xc0ec,
+	0xa882, 0xa87b, 0x0006, 0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002,
+	0x0020, 0xa87b, 0x0005, 0x080c, 0xc8b5, 0xa877, 0x0000, 0x080c,
+	0x68e7, 0x080c, 0xc7b3, 0x009e, 0x0804, 0xa96b, 0x0016, 0x0096,
+	0x6014, 0x2048, 0x080c, 0xc5d1, 0x0140, 0xa867, 0x0103, 0xa87b,
+	0x0028, 0xa877, 0x0000, 0x080c, 0x68e7, 0x009e, 0x001e, 0x9186,
+	0x0013, 0x0148, 0x9186, 0x0014, 0x0130, 0x9186, 0x0027, 0x0118,
+	0x080c, 0xaa01, 0x0030, 0x080c, 0x912c, 0x080c, 0xa99c, 0x080c,
+	0x922b, 0x0005, 0x0056, 0x0066, 0x0096, 0x00a6, 0x2029, 0x0001,
+	0x9182, 0x0101, 0x1208, 0x0010, 0x2009, 0x0100, 0x2130, 0x8304,
+	0x9098, 0x0018, 0x2009, 0x0020, 0x2011, 0x0029, 0x080c, 0xc1f3,
+	0x96b2, 0x0020, 0xb004, 0x904d, 0x0110, 0x080c, 0x0f7f, 0x080c,
+	0x0fcd, 0x0520, 0x8528, 0xa867, 0x0110, 0xa86b, 0x0000, 0x2920,
+	0xb406, 0x968a, 0x003d, 0x1228, 0x2608, 0x2011, 0x001b, 0x0499,
+	0x00a8, 0x96b2, 0x003c, 0x2009, 0x003c, 0x2950, 0x2011, 0x001b,
+	0x0451, 0x0c28, 0x2001, 0x0205, 0x2003, 0x0000, 0x00ae, 0x852f,
+	0x95ad, 0x0003, 0xb566, 0x95ac, 0x0000, 0x0048, 0x2001, 0x0205,
+	0x2003, 0x0000, 0x00ae, 0x852f, 0x95ad, 0x0003, 0xb566, 0x009e,
+	0x006e, 0x005e, 0x0005, 0x00a6, 0x89ff, 0x0158, 0xa804, 0x9055,
+	0x0130, 0xa807, 0x0000, 0x080c, 0x68e7, 0x2a48, 0x0cb8, 0x080c,
+	0x68e7, 0x00ae, 0x0005, 0x00f6, 0x2079, 0x0200, 0x7814, 0x9085,
+	0x0080, 0x7816, 0xd184, 0x0108, 0x8108, 0x810c, 0x20a9, 0x0001,
+	0xa860, 0x20e8, 0xa85c, 0x9200, 0x20a0, 0x20e1, 0x0000, 0x2300,
+	0x9e00, 0x2098, 0x4003, 0x8318, 0x9386, 0x0020, 0x1148, 0x2018,
+	0x2300, 0x9e00, 0x2098, 0x7814, 0x8000, 0x9085, 0x0080, 0x7816,
+	0x8109, 0x1d80, 0x7817, 0x0000, 0x00fe, 0x0005, 0x0066, 0x0126,
+	0x2091, 0x8000, 0x2031, 0x0001, 0x6020, 0x9084, 0x000f, 0x0083,
+	0x012e, 0x006e, 0x0005, 0x0126, 0x2091, 0x8000, 0x0066, 0x2031,
+	0x0000, 0x6020, 0x9084, 0x000f, 0x001b, 0x006e, 0x012e, 0x0005,
+	0xc259, 0xc259, 0xc254, 0xc27b, 0xc247, 0xc254, 0xc27b, 0xc254,
+	0xc247, 0x8a9c, 0xc254, 0xc254, 0xc254, 0xc247, 0xc247, 0x080c,
+	0x0db8, 0x0036, 0x2019, 0x0010, 0x080c, 0xdb41, 0x6023, 0x0006,
+	0x6003, 0x0007, 0x003e, 0x0005, 0x9006, 0x0005, 0x9085, 0x0001,
+	0x0005, 0x0096, 0x86ff, 0x11d8, 0x6014, 0x2048, 0x080c, 0xc5d1,
+	0x01c0, 0xa864, 0x9086, 0x0139, 0x1128, 0xa87b, 0x0005, 0xa883,
+	0x0000, 0x0028, 0x900e, 0x2001, 0x0005, 0x080c, 0x6b26, 0x080c,
+	0xc8b5, 0x080c, 0x68e7, 0x080c, 0xa99c, 0x9085, 0x0001, 0x009e,
+	0x0005, 0x9006, 0x0ce0, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db8,
+	0x0002, 0xc291, 0xc2b6, 0xc293, 0xc2d4, 0xc2b1, 0xc291, 0xc254,
+	0xc259, 0xc259, 0xc254, 0xc254, 0xc254, 0xc254, 0xc254, 0xc254,
+	0xc254, 0x080c, 0x0db8, 0x86ff, 0x11c8, 0x6020, 0x9086, 0x0006,
+	0x01a8, 0x0096, 0x6014, 0x2048, 0x080c, 0xc5d1, 0x0110, 0x080c,
+	0xc8b5, 0x009e, 0x080c, 0xcc6c, 0x6007, 0x0085, 0x6003, 0x000b,
+	0x6023, 0x0002, 0x080c, 0x8c97, 0x080c, 0x922b, 0x9085, 0x0001,
+	0x0005, 0x0066, 0x080c, 0x1931, 0x006e, 0x08e8, 0x00e6, 0x2071,
+	0x19f1, 0x7024, 0x9c06, 0x1110, 0x080c, 0xa026, 0x6020, 0x9084,
+	0x000f, 0x9086, 0x0006, 0x1150, 0x0086, 0x0096, 0x2049, 0x0001,
+	0x2c40, 0x080c, 0xa1b9, 0x009e, 0x008e, 0x0010, 0x080c, 0x9f2a,
+	0x00ee, 0x1908, 0x0804, 0xc254, 0x0036, 0x00e6, 0x2071, 0x19f1,
+	0x703c, 0x9c06, 0x1138, 0x901e, 0x080c, 0xa0c0, 0x00ee, 0x003e,
+	0x0804, 0xc293, 0x080c, 0xa2e9, 0x00ee, 0x003e, 0x1904, 0xc293,
+	0x0804, 0xc254, 0x00c6, 0x6020, 0x9084, 0x000f, 0x0013, 0x00ce,
+	0x0005, 0xc307, 0xc3b6, 0xc51c, 0xc311, 0xa99c, 0xc307, 0xdb33,
+	0xcccc, 0xc3b6, 0x8a6e, 0xc59b, 0xc300, 0xc300, 0xc300, 0xc300,
+	0x080c, 0x0db8, 0x080c, 0xc7d0, 0x1110, 0x080c, 0xb313, 0x0005,
+	0x080c, 0x912c, 0x080c, 0x922b, 0x0804, 0xa96b, 0x601b, 0x0001,
+	0x0005, 0x080c, 0xc5d1, 0x0130, 0x6014, 0x0096, 0x2048, 0x2c00,
+	0xa896, 0x009e, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db8, 0x0002,
+	0xc330, 0xc332, 0xc356, 0xc36a, 0xc38e, 0xc330, 0xc307, 0xc307,
+	0xc307, 0xc36a, 0xc36a, 0xc330, 0xc330, 0xc330, 0xc330, 0xc374,
+	0x080c, 0x0db8, 0x00e6, 0x6014, 0x0096, 0x2048, 0xa880, 0xc0b5,
+	0xa882, 0x009e, 0x2071, 0x19f1, 0x7024, 0x9c06, 0x01a0, 0x080c,
+	0x9f2a, 0x080c, 0xcc6c, 0x6007, 0x0085, 0x6003, 0x000b, 0x6023,
+	0x0002, 0x2001, 0x1991, 0x2004, 0x601a, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x00ee, 0x0005, 0x601b, 0x0001, 0x0cd8, 0x0096, 0x6014,
+	0x2048, 0xa880, 0xc0b5, 0xa882, 0x009e, 0x080c, 0xcc6c, 0x6007,
+	0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x0005, 0x0096, 0x601b, 0x0001, 0x6014, 0x2048, 0xa880,
+	0xc0b5, 0xa882, 0x009e, 0x0005, 0x080c, 0x53ab, 0x01a8, 0x6014,
+	0x0096, 0x904d, 0x0180, 0xa864, 0xa867, 0x0103, 0xa87b, 0x0006,
+	0x9086, 0x0139, 0x1140, 0xa867, 0x0139, 0xa897, 0x4005, 0xa89b,
+	0x0004, 0x080c, 0x68e7, 0x009e, 0x0804, 0xa96b, 0x6014, 0x0096,
+	0x904d, 0x01f8, 0xa97c, 0xd1e4, 0x01e0, 0x2001, 0x180e, 0x2004,
+	0xd0c4, 0x0110, 0x009e, 0x0005, 0xa884, 0x009e, 0x8003, 0x800b,
+	0x810b, 0x9108, 0x611a, 0x2001, 0x0037, 0x2c08, 0x080c, 0x1587,
+	0x6000, 0x9086, 0x0004, 0x1120, 0x2009, 0x0048, 0x080c, 0xa9e6,
+	0x0005, 0x009e, 0x080c, 0x1931, 0x0804, 0xc356, 0x6000, 0x908a,
+	0x0016, 0x1a0c, 0x0db8, 0x000b, 0x0005, 0xc3cd, 0xc30e, 0xc3cf,
+	0xc3cd, 0xc3cf, 0xc3cf, 0xc308, 0xc3cd, 0xc302, 0xc302, 0xc3cd,
+	0xc3cd, 0xc3cd, 0xc3cd, 0xc3cd, 0xc3cd, 0x080c, 0x0db8, 0x6010,
+	0x00b6, 0x2058, 0xb804, 0x9084, 0x00ff, 0x00be, 0x908a, 0x000c,
+	0x1a0c, 0x0db8, 0x00b6, 0x0013, 0x00be, 0x0005, 0xc3ea, 0xc4b6,
+	0xc3ec, 0xc42c, 0xc3ec, 0xc42c, 0xc3ec, 0xc3fa, 0xc3ea, 0xc42c,
+	0xc3ea, 0xc41b, 0x080c, 0x0db8, 0x6004, 0x908e, 0x0016, 0x05c0,
+	0x908e, 0x0004, 0x05a8, 0x908e, 0x0002, 0x0590, 0x908e, 0x0052,
+	0x0904, 0xc4b2, 0x6004, 0x080c, 0xc7d0, 0x0904, 0xc4cf, 0x908e,
+	0x0004, 0x1110, 0x080c, 0x2fbd, 0x908e, 0x0021, 0x0904, 0xc4d3,
+	0x908e, 0x0022, 0x0904, 0xc517, 0x908e, 0x003d, 0x0904, 0xc4d3,
+	0x908e, 0x0039, 0x0904, 0xc4d7, 0x908e, 0x0035, 0x0904, 0xc4d7,
+	0x908e, 0x001e, 0x0178, 0x908e, 0x0001, 0x1140, 0x6010, 0x2058,
+	0xb804, 0x9084, 0x00ff, 0x9086, 0x0006, 0x0110, 0x080c, 0x2f98,
+	0x080c, 0xb313, 0x0804, 0xa99c, 0x00c6, 0x00d6, 0x6104, 0x9186,
+	0x0016, 0x0904, 0xc4a3, 0x9186, 0x0002, 0x1904, 0xc478, 0x2001,
+	0x1836, 0x2004, 0xd08c, 0x11c8, 0x080c, 0x7018, 0x11b0, 0x080c,
+	0xccaa, 0x0138, 0x080c, 0x703b, 0x1120, 0x080c, 0x6f31, 0x0804,
+	0xc500, 0x2001, 0x1989, 0x2003, 0x0001, 0x2001, 0x1800, 0x2003,
+	0x0001, 0x080c, 0x6f53, 0x0804, 0xc500, 0x6010, 0x2058, 0x2001,
+	0x1836, 0x2004, 0xd0ac, 0x1904, 0xc500, 0xb8a0, 0xd0bc, 0x1904,
+	0xc500, 0xb840, 0x9084, 0x00ff, 0x9005, 0x0190, 0x8001, 0xb842,
+	0x6017, 0x0000, 0x6023, 0x0007, 0x601b, 0x0398, 0x6043, 0x0000,
+	0x080c, 0xa915, 0x0128, 0x2b00, 0x6012, 0x6023, 0x0001, 0x0458,
+	0x00de, 0x00ce, 0x6004, 0x908e, 0x0002, 0x11a0, 0x6010, 0x2058,
+	0xb8a0, 0x9086, 0x007e, 0x1170, 0x2009, 0x1836, 0x2104, 0xc085,
+	0x200a, 0x00e6, 0x2071, 0x1800, 0x080c, 0x5c3c, 0x00ee, 0x080c,
+	0xb313, 0x0030, 0x080c, 0xb313, 0x080c, 0x2f98, 0x080c, 0xccbf,
+	0x00e6, 0x0126, 0x2091, 0x8000, 0x080c, 0x2fbd, 0x012e, 0x00ee,
+	0x080c, 0xa99c, 0x0005, 0x2001, 0x0002, 0x080c, 0x61c4, 0x6003,
+	0x0001, 0x6007, 0x0002, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x00de,
+	0x00ce, 0x0c80, 0x080c, 0x2fbd, 0x0804, 0xc428, 0x00c6, 0x00d6,
+	0x6104, 0x9186, 0x0016, 0x0d38, 0x6010, 0x2058, 0xb840, 0x9084,
+	0x00ff, 0x9005, 0x0904, 0xc478, 0x8001, 0xb842, 0x6003, 0x0001,
+	0x080c, 0x8ce9, 0x080c, 0x922b, 0x00de, 0x00ce, 0x0898, 0x080c,
+	0xb313, 0x0804, 0xc42a, 0x080c, 0xb34f, 0x0804, 0xc42a, 0x00d6,
+	0x2c68, 0x6104, 0x080c, 0xcc2a, 0x00de, 0x0118, 0x080c, 0xa96b,
+	0x00f0, 0x6004, 0x8007, 0x6134, 0x918c, 0x00ff, 0x9105, 0x6036,
+	0x6007, 0x0085, 0x6003, 0x000b, 0x6023, 0x0002, 0x603c, 0x600a,
+	0x2001, 0x1991, 0x2004, 0x601a, 0x602c, 0x2c08, 0x2060, 0x6024,
+	0xc0b5, 0x6026, 0x2160, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0005,
+	0x00de, 0x00ce, 0x080c, 0xb313, 0x080c, 0x2f98, 0x00e6, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x2fbd, 0x6017, 0x0000, 0x6023, 0x0007,
+	0x601b, 0x0398, 0x6043, 0x0000, 0x012e, 0x00ee, 0x0005, 0x080c,
+	0xad99, 0x1904, 0xc4cf, 0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c,
+	0x0db8, 0x0096, 0x00d6, 0x001b, 0x00de, 0x009e, 0x0005, 0xc537,
+	0xc537, 0xc537, 0xc537, 0xc537, 0xc537, 0xc537, 0xc537, 0xc537,
+	0xc307, 0xc537, 0xc30e, 0xc539, 0xc30e, 0xc546, 0xc537, 0x080c,
+	0x0db8, 0x6004, 0x9086, 0x008b, 0x0148, 0x6007, 0x008b, 0x6003,
+	0x000d, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0005, 0x080c, 0xcc9e,
+	0x0118, 0x080c, 0xccb1, 0x0010, 0x080c, 0xccbf, 0x080c, 0xc7b3,
+	0x080c, 0xc5d1, 0x0570, 0x080c, 0x2f98, 0x080c, 0xc5d1, 0x0168,
+	0x6014, 0x2048, 0xa867, 0x0103, 0xa87b, 0x0006, 0xa877, 0x0000,
+	0xa880, 0xc0ed, 0xa882, 0x080c, 0x68e7, 0x2c68, 0x080c, 0xa915,
+	0x0150, 0x6810, 0x6012, 0x080c, 0xca2d, 0x00c6, 0x2d60, 0x080c,
+	0xa99c, 0x00ce, 0x0008, 0x2d60, 0x6017, 0x0000, 0x6023, 0x0001,
+	0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b,
+	0x00c8, 0x080c, 0xcc9e, 0x0138, 0x6034, 0x9086, 0x4000, 0x1118,
+	0x080c, 0x2f98, 0x08d0, 0x6034, 0x908c, 0xff00, 0x810f, 0x9186,
+	0x0039, 0x0118, 0x9186, 0x0035, 0x1118, 0x080c, 0x2f98, 0x0868,
+	0x080c, 0xa99c, 0x0005, 0x6000, 0x908a, 0x0016, 0x1a0c, 0x0db8,
+	0x0002, 0xc5b1, 0xc5b1, 0xc5b3, 0xc5b3, 0xc5b3, 0xc5b1, 0xc5b1,
+	0xa99c, 0xc5b1, 0xc5b1, 0xc5b1, 0xc5b1, 0xc5b1, 0xc5b1, 0xc5b1,
+	0xc5b1, 0x080c, 0x0db8, 0x080c, 0xa2e9, 0x6114, 0x0096, 0x2148,
+	0xa87b, 0x0006, 0x080c, 0x68e7, 0x009e, 0x0804, 0xa96b, 0x9284,
+	0x0007, 0x1158, 0x9282, 0x1cd0, 0x0240, 0x2001, 0x1818, 0x2004,
+	0x9202, 0x1218, 0x9085, 0x0001, 0x0005, 0x9006, 0x0ce8, 0x0096,
+	0x0028, 0x0096, 0x0006, 0x6014, 0x2048, 0x000e, 0x0006, 0x9984,
+	0xf000, 0x9086, 0xf000, 0x0110, 0x080c, 0x1078, 0x000e, 0x009e,
+	0x0005, 0x00e6, 0x00c6, 0x0036, 0x0006, 0x0126, 0x2091, 0x8000,
+	0x2061, 0x1cd0, 0x2071, 0x1800, 0x734c, 0x706c, 0x9302, 0x1640,
+	0x6020, 0x9206, 0x11f8, 0x080c, 0xccaa, 0x0180, 0x9286, 0x0001,
+	0x1168, 0x6004, 0x9086, 0x0004, 0x1148, 0x080c, 0x2f98, 0x080c,
+	0xccbf, 0x00c6, 0x080c, 0xa99c, 0x00ce, 0x0060, 0x080c, 0xc9a7,
+	0x0148, 0x080c, 0xc7d0, 0x1110, 0x080c, 0xb313, 0x00c6, 0x080c,
+	0xa96b, 0x00ce, 0x9ce0, 0x0018, 0x7060, 0x9c02, 0x1208, 0x08a0,
+	0x012e, 0x000e, 0x003e, 0x00ce, 0x00ee, 0x0005, 0x00e6, 0x00c6,
+	0x0016, 0x9188, 0x1000, 0x210c, 0x81ff, 0x0128, 0x2061, 0x1ab0,
+	0x6112, 0x080c, 0x2f98, 0x9006, 0x0010, 0x9085, 0x0001, 0x001e,
+	0x00ce, 0x00ee, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,
+	0xa915, 0x01d8, 0x080c, 0x53ab, 0x0110, 0x662e, 0x0008, 0x6616,
+	0x2b00, 0x6012, 0x080c, 0x53ab, 0x0118, 0x080c, 0xc6f7, 0x0168,
+	0x080c, 0xca2d, 0x6023, 0x0003, 0x2009, 0x004b, 0x080c, 0xa9e6,
+	0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6,
+	0x0126, 0x2091, 0x8000, 0xbaa0, 0x080c, 0xa9b9, 0x0590, 0x080c,
+	0x53ab, 0x0118, 0x602f, 0x0000, 0x0010, 0x6017, 0x0000, 0x2b00,
+	0x6012, 0x080c, 0xca2d, 0x6023, 0x0003, 0x0016, 0x080c, 0x8e3c,
+	0x0076, 0x903e, 0x080c, 0x8d19, 0x2c08, 0x080c, 0xdcf1, 0x007e,
+	0x001e, 0xd184, 0x0128, 0x080c, 0xa96b, 0x9085, 0x0001, 0x0070,
+	0x080c, 0x53ab, 0x0128, 0xd18c, 0x1170, 0x080c, 0xc6f7, 0x0148,
+	0x2009, 0x004c, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x012e, 0x00ce,
+	0x0005, 0x9006, 0x0cd8, 0x2900, 0x6016, 0x0c90, 0x2009, 0x004d,
+	0x0010, 0x2009, 0x004e, 0x00f6, 0x00c6, 0x0046, 0x0016, 0x080c,
+	0xa915, 0x2c78, 0x01d8, 0x080c, 0x53ab, 0x0110, 0x7e2e, 0x0008,
+	0x7e16, 0x2b00, 0x7812, 0x7823, 0x0003, 0x2021, 0x0005, 0x080c,
+	0xc709, 0x2f60, 0x080c, 0x53ab, 0x0118, 0x080c, 0xc6f7, 0x0130,
+	0x001e, 0x0016, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x001e, 0x004e,
+	0x00ce, 0x00fe, 0x0005, 0x00f6, 0x00c6, 0x0046, 0x080c, 0xa915,
+	0x2c78, 0x0530, 0x080c, 0x53ab, 0x0110, 0x7e2e, 0x0008, 0x7e16,
+	0x2b00, 0x7812, 0x7823, 0x0003, 0x0096, 0x2021, 0x0004, 0x0489,
+	0x009e, 0x2001, 0x198a, 0x200c, 0xd1fc, 0x0120, 0x2f60, 0x080c,
+	0xa96b, 0x0060, 0x2f60, 0x080c, 0x53ab, 0x0120, 0xd18c, 0x1160,
+	0x0071, 0x0130, 0x2009, 0x0052, 0x080c, 0xa9e6, 0x9085, 0x0001,
+	0x004e, 0x00ce, 0x00fe, 0x0005, 0x2900, 0x7816, 0x0c98, 0x00c6,
+	0x080c, 0x477b, 0x00ce, 0x1120, 0x080c, 0xa96b, 0x9006, 0x0005,
+	0xa867, 0x0000, 0xa86b, 0x8000, 0x2900, 0x6016, 0x9085, 0x0001,
+	0x0005, 0x0096, 0x0076, 0x0126, 0x2091, 0x8000, 0x080c, 0x63a8,
+	0x0158, 0x2001, 0xc70e, 0x0006, 0x900e, 0x2400, 0x080c, 0x6b26,
+	0x080c, 0x68e7, 0x000e, 0x0807, 0x2418, 0x080c, 0x90c6, 0xbaa0,
+	0x0086, 0x2041, 0x0001, 0x2039, 0x0001, 0x2608, 0x080c, 0x8e54,
+	0x008e, 0x080c, 0x8d19, 0x2f08, 0x2648, 0x080c, 0xdcf1, 0xb93c,
+	0x81ff, 0x090c, 0x8f21, 0x080c, 0x922b, 0x012e, 0x007e, 0x009e,
+	0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c, 0xa915, 0x0190,
+	0x660a, 0x2b08, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0001, 0x2900,
+	0x6016, 0x2009, 0x001f, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x012e,
+	0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126, 0x2091, 0x8000,
+	0x080c, 0xa9b9, 0x01b8, 0x660a, 0x2b08, 0x6112, 0x080c, 0xca2d,
+	0x6023, 0x0008, 0x2900, 0x6016, 0x00f6, 0x2c78, 0x080c, 0x1606,
+	0x00fe, 0x2009, 0x0021, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x012e,
+	0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2009, 0x003d, 0x00c6, 0x0126,
+	0x0016, 0x2091, 0x8000, 0x080c, 0xa915, 0x0198, 0x660a, 0x2b08,
+	0x6112, 0x080c, 0xca2d, 0x6023, 0x0001, 0x2900, 0x6016, 0x001e,
+	0x0016, 0x080c, 0xa9e6, 0x9085, 0x0001, 0x001e, 0x012e, 0x00ce,
+	0x0005, 0x9006, 0x0cd0, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,
+	0xa9b9, 0x0188, 0x2b08, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0001,
+	0x2900, 0x6016, 0x2009, 0x0000, 0x080c, 0xa9e6, 0x9085, 0x0001,
+	0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x2009, 0x0044, 0x0830,
+	0x2009, 0x0049, 0x0818, 0x0026, 0x00b6, 0x6210, 0x2258, 0xba3c,
+	0x82ff, 0x0110, 0x8211, 0xba3e, 0x00be, 0x002e, 0x0005, 0x0006,
+	0x0016, 0x6004, 0x908e, 0x0002, 0x0140, 0x908e, 0x0003, 0x0128,
+	0x908e, 0x0004, 0x0110, 0x9085, 0x0001, 0x001e, 0x000e, 0x0005,
+	0x0006, 0x0096, 0x6014, 0x904d, 0x0148, 0xa864, 0x9086, 0x0139,
+	0x0138, 0xa868, 0xd0fc, 0x0110, 0x9006, 0x0010, 0x9085, 0x0001,
+	0x009e, 0x000e, 0x0005, 0x00c6, 0x0126, 0x2091, 0x8000, 0x080c,
+	0xa9b9, 0x0198, 0x2b08, 0x6112, 0x080c, 0xca2d, 0x6023, 0x0001,
+	0x2900, 0x6016, 0x080c, 0x2f98, 0x2009, 0x0028, 0x080c, 0xa9e6,
+	0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x9186,
+	0x0015, 0x11a8, 0x2011, 0x1822, 0x2204, 0x9086, 0x0074, 0x1178,
+	0x00b6, 0x080c, 0xb54b, 0x00be, 0x080c, 0xb76d, 0x6003, 0x0001,
+	0x6007, 0x0029, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0078, 0x6014,
+	0x0096, 0x2048, 0xa868, 0x009e, 0xd0fc, 0x0148, 0x2001, 0x0001,
+	0x080c, 0xcbeb, 0x080c, 0xb313, 0x080c, 0xa96b, 0x0005, 0x0096,
+	0x6014, 0x904d, 0x090c, 0x0db8, 0xa87b, 0x0030, 0xa883, 0x0000,
+	0xa897, 0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x68e7, 0x012e, 0x009e, 0x080c, 0xa96b, 0x0c30,
+	0x0096, 0x9186, 0x0016, 0x1128, 0x2001, 0x0004, 0x080c, 0x61c4,
+	0x00e8, 0x9186, 0x0015, 0x1510, 0x2011, 0x1822, 0x2204, 0x9086,
+	0x0014, 0x11e0, 0x6010, 0x00b6, 0x2058, 0x080c, 0x630f, 0x00be,
+	0x080c, 0xb83e, 0x1198, 0x6010, 0x00b6, 0x2058, 0xb890, 0x00be,
+	0x9005, 0x0160, 0x2001, 0x0006, 0x080c, 0x61c4, 0x6014, 0x2048,
+	0xa868, 0xd0fc, 0x0170, 0x080c, 0xad6d, 0x0048, 0x6014, 0x2048,
+	0xa868, 0xd0fc, 0x0528, 0x080c, 0xb313, 0x080c, 0xa96b, 0x009e,
+	0x0005, 0x6014, 0x6310, 0x2358, 0x904d, 0x090c, 0x0db8, 0xa87b,
+	0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x900e, 0x080c, 0x6494,
+	0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d, 0xa99a, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x68e7, 0x012e, 0x080c, 0xa96b, 0x08f8,
+	0x6014, 0x904d, 0x090c, 0x0db8, 0xa87b, 0x0030, 0xa883, 0x0000,
+	0xa897, 0x4005, 0xa89b, 0x0004, 0xa867, 0x0139, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x68e7, 0x012e, 0x080c, 0xa96b, 0x0840, 0xa878,
+	0x9086, 0x0005, 0x1108, 0x0009, 0x0005, 0xa880, 0xc0ad, 0xa882,
+	0x0005, 0x6043, 0x0000, 0x6017, 0x0000, 0x6003, 0x0001, 0x6007,
+	0x0050, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0005, 0x00c6, 0x6010,
+	0x00b6, 0x2058, 0xb800, 0x00be, 0xd0bc, 0x0120, 0x6020, 0x9084,
+	0x000f, 0x0013, 0x00ce, 0x0005, 0xc307, 0xc8e5, 0xc8e5, 0xc8e8,
+	0xdff3, 0xe00e, 0xe011, 0xc307, 0xc307, 0xc307, 0xc307, 0xc307,
+	0xc307, 0xc307, 0xc307, 0x080c, 0x0db8, 0xa001, 0xa001, 0x0005,
+	0x0096, 0x6014, 0x904d, 0x0118, 0xa87c, 0xd0e4, 0x1110, 0x009e,
+	0x0010, 0x009e, 0x0005, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,
+	0xd0bc, 0x0550, 0x00f6, 0x2c78, 0x080c, 0xa915, 0x1128, 0x2001,
+	0x1992, 0x2004, 0x7842, 0x00f8, 0x7810, 0x6012, 0x080c, 0xca2d,
+	0x7820, 0x9086, 0x0003, 0x0128, 0x7808, 0x603a, 0x2f00, 0x603e,
+	0x0020, 0x7808, 0x603e, 0x2f00, 0x603a, 0x602e, 0x6023, 0x0001,
+	0x6007, 0x0035, 0x6003, 0x0001, 0x7954, 0x6156, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x2f60, 0x00fe, 0x0005, 0x0016, 0x0096, 0x6814,
+	0x2048, 0xa87c, 0xd0e4, 0x0180, 0xc0e4, 0xa87e, 0xa877, 0x0000,
+	0xa893, 0x0000, 0xa88f, 0x0000, 0xd0cc, 0x0130, 0xc0cc, 0xa87e,
+	0xa878, 0x2048, 0x080c, 0x0f7f, 0x6830, 0x6036, 0x908e, 0x0001,
+	0x0148, 0x6803, 0x0002, 0x9086, 0x0005, 0x0168, 0x9006, 0x602e,
+	0x6032, 0x00c8, 0x681c, 0xc085, 0x681e, 0x6803, 0x0004, 0x6824,
+	0xc0f4, 0xc0d5, 0x6826, 0x6814, 0x2048, 0xa8ac, 0x6938, 0x9102,
+	0xa8b0, 0x693c, 0x9103, 0x1e50, 0x683c, 0x602e, 0x6838, 0x9084,
+	0xfffc, 0x683a, 0x6032, 0x2d00, 0x603a, 0x6808, 0x603e, 0x6910,
+	0x6112, 0x6954, 0x6156, 0x6023, 0x0001, 0x6007, 0x0039, 0x6003,
+	0x0001, 0x080c, 0x8c97, 0x080c, 0x922b, 0x009e, 0x001e, 0x0005,
+	0x6024, 0xd0d4, 0x0510, 0xd0f4, 0x11f8, 0x6038, 0x940a, 0x603c,
+	0x9303, 0x0230, 0x9105, 0x0120, 0x6024, 0xc0d4, 0xc0f5, 0x0098,
+	0x643a, 0x633e, 0xac3e, 0xab42, 0x0046, 0x0036, 0x2400, 0xacac,
+	0x9402, 0xa836, 0x2300, 0xabb0, 0x9303, 0xa83a, 0x003e, 0x004e,
+	0x6024, 0xc0d4, 0x0000, 0x6026, 0x0005, 0xd0f4, 0x1138, 0xa83c,
+	0x603a, 0xa840, 0x603e, 0x6024, 0xc0f5, 0x6026, 0x0005, 0x0006,
+	0x0016, 0x6004, 0x908e, 0x0034, 0x01b8, 0x908e, 0x0035, 0x01a0,
+	0x908e, 0x0036, 0x0188, 0x908e, 0x0037, 0x0170, 0x908e, 0x0038,
+	0x0158, 0x908e, 0x0039, 0x0140, 0x908e, 0x003a, 0x0128, 0x908e,
+	0x003b, 0x0110, 0x9085, 0x0001, 0x001e, 0x000e, 0x0005, 0x0006,
+	0x0016, 0x0026, 0x0036, 0x00e6, 0x2001, 0x198c, 0x200c, 0x8000,
+	0x2014, 0x2001, 0x0032, 0x080c, 0x8b2b, 0x2001, 0x1990, 0x82ff,
+	0x1110, 0x2011, 0x0014, 0x2202, 0x2001, 0x198e, 0x200c, 0x8000,
+	0x2014, 0x2071, 0x1978, 0x711a, 0x721e, 0x2001, 0x0064, 0x080c,
+	0x8b2b, 0x2001, 0x1991, 0x82ff, 0x1110, 0x2011, 0x0014, 0x2202,
+	0x2001, 0x1992, 0x9288, 0x000a, 0x2102, 0x2001, 0x1a92, 0x2102,
+	0x2001, 0x0032, 0x080c, 0x1587, 0x080c, 0x65b9, 0x00ee, 0x003e,
+	0x002e, 0x001e, 0x000e, 0x0005, 0x0006, 0x0016, 0x00e6, 0x2001,
+	0x1990, 0x2003, 0x0028, 0x2001, 0x1991, 0x2003, 0x0014, 0x2071,
+	0x1978, 0x701b, 0x0000, 0x701f, 0x07d0, 0x2001, 0x1992, 0x2009,
+	0x001e, 0x2102, 0x2001, 0x1a92, 0x2102, 0x2001, 0x0032, 0x080c,
+	0x1587, 0x00ee, 0x001e, 0x000e, 0x0005, 0x0096, 0x6058, 0x904d,
+	0x0110, 0x080c, 0x0fff, 0x009e, 0x0005, 0x0005, 0x00c6, 0x0126,
+	0x2091, 0x8000, 0x080c, 0xa915, 0x0180, 0x2b08, 0x6112, 0x0ca9,
+	0x6023, 0x0001, 0x2900, 0x6016, 0x2009, 0x0033, 0x080c, 0xa9e6,
+	0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x0096,
+	0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1500, 0x7088,
+	0x9086, 0x0018, 0x11e0, 0x6014, 0x2048, 0xaa3c, 0xd2e4, 0x1160,
+	0x2c78, 0x080c, 0x94be, 0x01d8, 0x7074, 0xaa50, 0x9206, 0x1160,
+	0x7078, 0xaa54, 0x9206, 0x1140, 0x6210, 0x00b6, 0x2258, 0xbaa0,
+	0x00be, 0x900e, 0x080c, 0x2fdd, 0x080c, 0xad6d, 0x0020, 0x080c,
+	0xb313, 0x080c, 0xa96b, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x7058,
+	0xaa54, 0x9206, 0x0d48, 0x0c80, 0x00c6, 0x0126, 0x2091, 0x8000,
+	0x080c, 0xa915, 0x0188, 0x2b08, 0x6112, 0x080c, 0xca2d, 0x6023,
+	0x0001, 0x2900, 0x6016, 0x2009, 0x004d, 0x080c, 0xa9e6, 0x9085,
+	0x0001, 0x012e, 0x00ce, 0x0005, 0x9006, 0x0cd8, 0x00c6, 0x0126,
+	0x2091, 0x8000, 0x0016, 0x080c, 0xa915, 0x0180, 0x2b08, 0x6112,
+	0x080c, 0xca2d, 0x6023, 0x0001, 0x2900, 0x6016, 0x001e, 0x080c,
+	0xa9e6, 0x9085, 0x0001, 0x012e, 0x00ce, 0x0005, 0x001e, 0x9006,
+	0x0cd0, 0x0016, 0x0026, 0x0036, 0x0046, 0x0056, 0x0066, 0x0096,
+	0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1568, 0x7188,
+	0x6014, 0x2048, 0xa814, 0x8003, 0x9106, 0x1530, 0x20e1, 0x0000,
+	0x2001, 0x19aa, 0x2003, 0x0000, 0x6014, 0x2048, 0xa830, 0x20a8,
+	0x8906, 0x8006, 0x8007, 0x9094, 0x003f, 0x22e8, 0x9084, 0xffc0,
+	0x9080, 0x001b, 0x20a0, 0x2001, 0x19aa, 0x0016, 0x200c, 0x080c,
+	0xd285, 0x001e, 0xa804, 0x9005, 0x0110, 0x2048, 0x0c38, 0x6014,
+	0x2048, 0xa867, 0x0103, 0x0010, 0x080c, 0xb313, 0x080c, 0xa96b,
+	0x00fe, 0x00ee, 0x009e, 0x006e, 0x005e, 0x004e, 0x003e, 0x002e,
+	0x001e, 0x0005, 0x0096, 0x00e6, 0x00f6, 0x2071, 0x1800, 0x9186,
+	0x0015, 0x11b8, 0x7088, 0x9086, 0x0004, 0x1198, 0x6014, 0x2048,
+	0x2c78, 0x080c, 0x94be, 0x01a8, 0x7074, 0xaa74, 0x9206, 0x1130,
+	0x7078, 0xaa78, 0x9206, 0x1110, 0x080c, 0x2f98, 0x080c, 0xad6d,
+	0x0020, 0x080c, 0xb313, 0x080c, 0xa96b, 0x00fe, 0x00ee, 0x009e,
+	0x0005, 0x7058, 0xaa78, 0x9206, 0x0d78, 0x0c80, 0x0096, 0x00e6,
+	0x00f6, 0x2071, 0x1800, 0x9186, 0x0015, 0x1550, 0x7088, 0x9086,
+	0x0004, 0x1530, 0x6014, 0x2048, 0x2c78, 0x080c, 0x94be, 0x05e8,
+	0x7074, 0xaacc, 0x9206, 0x1180, 0x7078, 0xaad0, 0x9206, 0x1160,
+	0x080c, 0x2f98, 0x0016, 0xa998, 0xaab0, 0x9284, 0x1000, 0xc0fd,
+	0x080c, 0x535b, 0x001e, 0x0010, 0x080c, 0x514c, 0x080c, 0xc5d1,
+	0x0500, 0xa87b, 0x0000, 0xa883, 0x0000, 0xa897, 0x4000, 0x0078,
+	0x080c, 0x514c, 0x080c, 0xc5d1, 0x01a0, 0x6014, 0x2048, 0xa87b,
+	0x0030, 0xa883, 0x0000, 0xa897, 0x4005, 0xa89b, 0x0004, 0x0126,
+	0x2091, 0x8000, 0xa867, 0x0139, 0x080c, 0x68e7, 0x012e, 0x080c,
+	0xa96b, 0x00fe, 0x00ee, 0x009e, 0x0005, 0x7058, 0xaad0, 0x9206,
+	0x0938, 0x0890, 0x0016, 0x0026, 0xa87c, 0xd0ac, 0x0178, 0xa938,
+	0xaa34, 0x2100, 0x9205, 0x0150, 0xa890, 0x9106, 0x1118, 0xa88c,
+	0x9206, 0x0120, 0xa992, 0xaa8e, 0x9085, 0x0001, 0x002e, 0x001e,
+	0x0005, 0x00b6, 0x00d6, 0x0036, 0x080c, 0xc5d1, 0x0904, 0xcbe7,
+	0x0096, 0x6314, 0x2348, 0xa87a, 0xa982, 0x929e, 0x4000, 0x1580,
+	0x6310, 0x00c6, 0x2358, 0x2009, 0x0000, 0xa868, 0xd0f4, 0x1140,
+	0x080c, 0x6494, 0x1108, 0xc185, 0xb800, 0xd0bc, 0x0108, 0xc18d,
+	0xaa96, 0xa99a, 0x20a9, 0x0004, 0xa860, 0x20e8, 0xa85c, 0x9080,
+	0x0031, 0x20a0, 0xb8c4, 0x20e0, 0xb8c8, 0x9080, 0x0006, 0x2098,
+	0x080c, 0x0f4a, 0x20a9, 0x0004, 0xa85c, 0x9080, 0x0035, 0x20a0,
+	0xb8c8, 0x9080, 0x000a, 0x2098, 0x080c, 0x0f4a, 0x00ce, 0x0090,
+	0xaa96, 0x3918, 0x9398, 0x0007, 0x231c, 0x6004, 0x9086, 0x0016,
+	0x0110, 0xa89b, 0x0004, 0xaba2, 0x6310, 0x2358, 0xb804, 0x9084,
+	0x00ff, 0xa89e, 0x080c, 0x68db, 0x6017, 0x0000, 0x009e, 0x003e,
+	0x00de, 0x00be, 0x0005, 0x0026, 0x0036, 0x0046, 0x00b6, 0x0096,
+	0x00f6, 0x6214, 0x2248, 0x6210, 0x2258, 0x2079, 0x0260, 0x9096,
+	0x0000, 0x11a0, 0xb814, 0x9084, 0x00ff, 0x900e, 0x080c, 0x2624,
+	0x2118, 0x831f, 0x939c, 0xff00, 0x7838, 0x9084, 0x00ff, 0x931d,
+	0x7c3c, 0x2011, 0x8018, 0x080c, 0x47db, 0x00a8, 0x9096, 0x0001,
+	0x1148, 0x89ff, 0x0180, 0xa89b, 0x000d, 0x7838, 0xa8a6, 0x783c,
+	0xa8aa, 0x0048, 0x9096, 0x0002, 0x1130, 0xa89b, 0x000d, 0x7838,
+	0xa8a6, 0x783c, 0xa8aa, 0x00fe, 0x009e, 0x00be, 0x004e, 0x003e,
+	0x002e, 0x0005, 0x00c6, 0x0026, 0x0016, 0x9186, 0x0035, 0x0110,
+	0x6a38, 0x0008, 0x6a2c, 0x080c, 0xc5bf, 0x01f0, 0x2260, 0x6120,
+	0x9186, 0x0003, 0x0118, 0x9186, 0x0006, 0x1190, 0x6838, 0x9206,
+	0x0140, 0x683c, 0x9206, 0x1160, 0x6108, 0x6838, 0x9106, 0x1140,
+	0x0020, 0x6008, 0x693c, 0x9106, 0x1118, 0x6010, 0x6910, 0x9106,
+	0x001e, 0x002e, 0x00ce, 0x0005, 0x9085, 0x0001, 0x0cc8, 0xa974,
+	0xd1cc, 0x0188, 0x918c, 0x00ff, 0x918e, 0x0002, 0x1160, 0xa9a8,
+	0x918c, 0x0f00, 0x810f, 0x918e, 0x0001, 0x1128, 0xa834, 0xa938,
+	0x9115, 0x190c, 0xbd18, 0x0005, 0x0036, 0x2019, 0x0001, 0x0010,
+	0x0036, 0x901e, 0x0459, 0x01a0, 0x080c, 0xc5d1, 0x0188, 0x6037,
+	0x4000, 0x6014, 0x6017, 0x0000, 0x0096, 0x2048, 0xa87c, 0xa867,
+	0x0103, 0xa877, 0x0000, 0x83ff, 0x1129, 0x080c, 0x68e7, 0x009e,
+	0x003e, 0x0005, 0xa880, 0xd0b4, 0x0128, 0xa87b, 0x0006, 0xc0ec,
+	0xa882, 0x0048, 0xd0bc, 0x0118, 0xa87b, 0x0002, 0x0020, 0xa87b,
+	0x0005, 0x080c, 0xc8b5, 0xa877, 0x0000, 0x0005, 0x2001, 0x180f,
+	0x2004, 0xd0ec, 0x0005, 0x0006, 0x2001, 0x180f, 0x2004, 0xd0f4,
+	0x000e, 0x0005, 0x0006, 0x2001, 0x180f, 0x2004, 0xd0e4, 0x000e,
+	0x0005, 0x0036, 0x0046, 0x6010, 0x00b6, 0x2058, 0xbba0, 0x00be,
+	0x2021, 0x0007, 0x080c, 0x4992, 0x004e, 0x003e, 0x0005, 0x0c51,
+	0x1d81, 0x0005, 0x2001, 0x1990, 0x2004, 0x601a, 0x0005, 0x2001,
+	0x1992, 0x2004, 0x6042, 0x0005, 0x080c, 0xa96b, 0x0804, 0x922b,
+	0x00b6, 0x0066, 0x6000, 0x90b2, 0x0016, 0x1a0c, 0x0db8, 0x001b,
+	0x006e, 0x00be, 0x0005, 0xcceb, 0xd38d, 0xd4ea, 0xcceb, 0xcceb,
+	0xcceb, 0xcceb, 0xcceb, 0xcd22, 0xd568, 0xcceb, 0xcceb, 0xcceb,
+	0xcceb, 0xcceb, 0xcceb, 0x080c, 0x0db8, 0x0066, 0x6000, 0x90b2,
+	0x0016, 0x1a0c, 0x0db8, 0x0013, 0x006e, 0x0005, 0xcd06, 0xdacc,
+	0xcd06, 0xcd06, 0xcd06, 0xcd06, 0xcd06, 0xcd06, 0xda79, 0xdb20,
+	0xcd06, 0xe130, 0xe166, 0xe130, 0xe166, 0xcd06, 0x080c, 0x0db8,
+	0x6000, 0x9082, 0x0016, 0x1a0c, 0x0db8, 0x6000, 0x000a, 0x0005,
+	0xcd20, 0xd746, 0xd836, 0xd858, 0xd917, 0xcd20, 0xd9f0, 0xd99f,
+	0xd574, 0xda4f, 0xda64, 0xcd20, 0xcd20, 0xcd20, 0xcd20, 0xcd20,
+	0x080c, 0x0db8, 0x91b2, 0x0053, 0x1a0c, 0x0db8, 0x2100, 0x91b2,
+	0x0040, 0x1a04, 0xd158, 0x0002, 0xcd6c, 0xcf49, 0xcd6c, 0xcd6c,
+	0xcd6c, 0xcf52, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c,
+	0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c,
+	0xcd6c, 0xcd6c, 0xcd6c, 0xcd6e, 0xcdc4, 0xcdd3, 0xce37, 0xce62,
+	0xcedb, 0xcf34, 0xcd6c, 0xcd6c, 0xcf55, 0xcd6c, 0xcd6c, 0xcf6a,
+	0xcf77, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcd6c, 0xcffa, 0xcd6c,
+	0xcd6c, 0xd00e, 0xcd6c, 0xcd6c, 0xcfc9, 0xcd6c, 0xcd6c, 0xcd6c,
+	0xd026, 0xcd6c, 0xcd6c, 0xcd6c, 0xd0a3, 0xcd6c, 0xcd6c, 0xcd6c,
+	0xcd6c, 0xcd6c, 0xcd6c, 0xd120, 0x080c, 0x0db8, 0x080c, 0x6596,
+	0x1150, 0x2001, 0x1836, 0x2004, 0xd0cc, 0x1128, 0x9084, 0x0009,
+	0x9086, 0x0008, 0x1140, 0x6007, 0x0009, 0x602f, 0x0009, 0x6017,
+	0x0000, 0x0804, 0xcf42, 0x080c, 0x653c, 0x00e6, 0x00c6, 0x0036,
+	0x0026, 0x0016, 0x6210, 0x2258, 0xbaa0, 0x0026, 0x2019, 0x0029,
+	0x080c, 0x8e3c, 0x0076, 0x903e, 0x080c, 0x8d19, 0x2c08, 0x080c,
+	0xdcf1, 0x007e, 0x001e, 0x001e, 0x002e, 0x003e, 0x00ce, 0x00ee,
+	0x6610, 0x2658, 0x080c, 0x6283, 0xbe04, 0x9684, 0x00ff, 0x9082,
+	0x0006, 0x0278, 0x080c, 0xdc28, 0x1904, 0xce2f, 0x080c, 0xdbc4,
+	0x1120, 0x6007, 0x0008, 0x0804, 0xcf42, 0x6007, 0x0009, 0x0804,
+	0xcf42, 0x080c, 0xde3c, 0x0128, 0x080c, 0xdc28, 0x0d78, 0x0804,
+	0xce2f, 0x6017, 0x1900, 0x0c88, 0x080c, 0x30b8, 0x1904, 0xd155,
+	0x6106, 0x080c, 0xdb7b, 0x6007, 0x0006, 0x0804, 0xcf42, 0x6007,
+	0x0007, 0x0804, 0xcf42, 0x080c, 0xe1a2, 0x1904, 0xd155, 0x080c,
+	0x30b8, 0x1904, 0xd155, 0x00d6, 0x6610, 0x2658, 0xbe04, 0x9684,
+	0x00ff, 0x9082, 0x0006, 0x1220, 0x2001, 0x0001, 0x080c, 0x61b0,
+	0x96b4, 0xff00, 0x8637, 0x9686, 0x0006, 0x0188, 0x9686, 0x0004,
+	0x0170, 0xbe04, 0x96b4, 0x00ff, 0x9686, 0x0006, 0x0140, 0x9686,
+	0x0004, 0x0128, 0x9686, 0x0005, 0x0110, 0x00de, 0x0480, 0x00e6,
+	0x2071, 0x0260, 0x7034, 0x9084, 0x0003, 0x1140, 0x7034, 0x9082,
+	0x0014, 0x0220, 0x7030, 0x9084, 0x0003, 0x0130, 0x00ee, 0x6017,
+	0x0000, 0x602f, 0x0007, 0x00b0, 0x00ee, 0x080c, 0xdc87, 0x1190,
+	0x9686, 0x0006, 0x1140, 0x0026, 0x6210, 0x2258, 0xbaa0, 0x900e,
+	0x080c, 0x2fdd, 0x002e, 0x080c, 0x630f, 0x6007, 0x000a, 0x00de,
+	0x0804, 0xcf42, 0x6007, 0x000b, 0x00de, 0x0804, 0xcf42, 0x080c,
+	0x2f98, 0x080c, 0xccbf, 0x6007, 0x0001, 0x0804, 0xcf42, 0x080c,
+	0xe1a2, 0x1904, 0xd155, 0x080c, 0x30b8, 0x1904, 0xd155, 0x2071,
+	0x0260, 0x7034, 0x90b4, 0x0003, 0x1948, 0x90b2, 0x0014, 0x0a30,
+	0x7030, 0x9084, 0x0003, 0x1910, 0x6610, 0x2658, 0xbe04, 0x9686,
+	0x0707, 0x09e8, 0x0026, 0x6210, 0x2258, 0xbaa0, 0x900e, 0x080c,
+	0x2fdd, 0x002e, 0x6007, 0x000c, 0x2001, 0x0001, 0x080c, 0xe36d,
+	0x0804, 0xcf42, 0x080c, 0x6596, 0x1140, 0x2001, 0x1836, 0x2004,
+	0x9084, 0x0009, 0x9086, 0x0008, 0x1110, 0x0804, 0xcd7b, 0x080c,
+	0x653c, 0x6610, 0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082, 0x0006,
+	0x06c8, 0x1138, 0x0026, 0x2001, 0x0006, 0x080c, 0x61f0, 0x002e,
+	0x0050, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0004, 0x0120, 0x9686,
+	0x0006, 0x1904, 0xce2f, 0x080c, 0xdc94, 0x1120, 0x6007, 0x000e,
+	0x0804, 0xcf42, 0x0046, 0x6410, 0x2458, 0xbca0, 0x0046, 0x080c,
+	0x2f98, 0x080c, 0xccbf, 0x004e, 0x0016, 0x9006, 0x2009, 0x1854,
+	0x210c, 0xd1a4, 0x0148, 0x2009, 0x0029, 0x080c, 0xdfa9, 0x6010,
+	0x2058, 0xb800, 0xc0e5, 0xb802, 0x001e, 0x004e, 0x6007, 0x0001,
+	0x0804, 0xcf42, 0x2001, 0x0001, 0x080c, 0x61b0, 0x0156, 0x0016,
+	0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0x1805, 0x2011, 0x0270,
+	0x080c, 0xb8e2, 0x003e, 0x002e, 0x001e, 0x015e, 0x9005, 0x0168,
+	0x96b4, 0xff00, 0x8637, 0x9682, 0x0004, 0x0a04, 0xce2f, 0x9682,
+	0x0007, 0x0a04, 0xce8b, 0x0804, 0xce2f, 0x6017, 0x1900, 0x6007,
+	0x0009, 0x0804, 0xcf42, 0x080c, 0x6596, 0x1140, 0x2001, 0x1836,
+	0x2004, 0x9084, 0x0009, 0x9086, 0x0008, 0x1110, 0x0804, 0xcd7b,
+	0x080c, 0x653c, 0x6610, 0x2658, 0xbe04, 0x9684, 0x00ff, 0x9082,
+	0x0006, 0x0690, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0004, 0x0120,
+	0x9686, 0x0006, 0x1904, 0xce2f, 0x080c, 0xdcc2, 0x1130, 0x080c,
+	0xdbc4, 0x1118, 0x6007, 0x0010, 0x04e8, 0x0046, 0x6410, 0x2458,
+	0xbca0, 0x0046, 0x080c, 0x2f98, 0x080c, 0xccbf, 0x004e, 0x0016,
+	0x9006, 0x2009, 0x1854, 0x210c, 0xd1a4, 0x0148, 0x2009, 0x0029,
+	0x080c, 0xdfa9, 0x6010, 0x2058, 0xb800, 0xc0e5, 0xb802, 0x001e,
+	0x004e, 0x6007, 0x0001, 0x00f0, 0x080c, 0xde3c, 0x0140, 0x96b4,
+	0xff00, 0x8637, 0x9686, 0x0006, 0x0978, 0x0804, 0xce2f, 0x6017,
+	0x1900, 0x6007, 0x0009, 0x0070, 0x080c, 0x30b8, 0x1904, 0xd155,
+	0x080c, 0xe1a2, 0x1904, 0xd155, 0x080c, 0xd320, 0x1904, 0xce2f,
+	0x6007, 0x0012, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b,
+	0x0005, 0x6007, 0x0001, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c,
+	0x922b, 0x0cb0, 0x6007, 0x0005, 0x0c68, 0x080c, 0xe1a2, 0x1904,
+	0xd155, 0x080c, 0x30b8, 0x1904, 0xd155, 0x080c, 0xd320, 0x1904,
+	0xce2f, 0x6007, 0x0020, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c,
+	0x922b, 0x0005, 0x080c, 0x30b8, 0x1904, 0xd155, 0x6007, 0x0023,
+	0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0005, 0x080c,
+	0xe1a2, 0x1904, 0xd155, 0x080c, 0x30b8, 0x1904, 0xd155, 0x080c,
+	0xd320, 0x1904, 0xce2f, 0x0016, 0x0026, 0x00e6, 0x2071, 0x0260,
+	0x7244, 0x9286, 0xffff, 0x0180, 0x2c08, 0x080c, 0xc5bf, 0x01b0,
+	0x2260, 0x7240, 0x6008, 0x9206, 0x1188, 0x6010, 0x9190, 0x0004,
+	0x2214, 0x9206, 0x01b8, 0x0050, 0x7240, 0x2c08, 0x9006, 0x080c,
+	0xdf73, 0x1180, 0x7244, 0x9286, 0xffff, 0x01b0, 0x2160, 0x6007,
+	0x0026, 0x6017, 0x1700, 0x7214, 0x9296, 0xffff, 0x1180, 0x6007,
+	0x0025, 0x0068, 0x6020, 0x9086, 0x0007, 0x1d80, 0x6004, 0x9086,
+	0x0024, 0x1110, 0x080c, 0xa96b, 0x2160, 0x6007, 0x0025, 0x6003,
+	0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x00ee, 0x002e, 0x001e,
+	0x0005, 0x2001, 0x0001, 0x080c, 0x61b0, 0x0156, 0x0016, 0x0026,
+	0x0036, 0x20a9, 0x0004, 0x2019, 0x1805, 0x2011, 0x0276, 0x080c,
+	0xb8e2, 0x003e, 0x002e, 0x001e, 0x015e, 0x0120, 0x6007, 0x0031,
+	0x0804, 0xcf42, 0x080c, 0xb562, 0x080c, 0x7018, 0x1190, 0x0006,
+	0x0026, 0x0036, 0x080c, 0x7032, 0x1138, 0x080c, 0x72f1, 0x080c,
+	0x5ca9, 0x080c, 0x6f53, 0x0010, 0x080c, 0x6ff4, 0x003e, 0x002e,
+	0x000e, 0x0005, 0x080c, 0x30b8, 0x1904, 0xd155, 0x080c, 0xd320,
+	0x1904, 0xce2f, 0x6106, 0x080c, 0xd33c, 0x1120, 0x6007, 0x002b,
+	0x0804, 0xcf42, 0x6007, 0x002c, 0x0804, 0xcf42, 0x080c, 0xe1a2,
+	0x1904, 0xd155, 0x080c, 0x30b8, 0x1904, 0xd155, 0x080c, 0xd320,
+	0x1904, 0xce2f, 0x6106, 0x080c, 0xd340, 0x1120, 0x6007, 0x002e,
+	0x0804, 0xcf42, 0x6007, 0x002f, 0x0804, 0xcf42, 0x080c, 0x30b8,
+	0x1904, 0xd155, 0x00e6, 0x00d6, 0x00c6, 0x6010, 0x2058, 0xb804,
+	0x9184, 0x00ff, 0x9086, 0x0006, 0x0158, 0x9184, 0xff00, 0x8007,
+	0x9086, 0x0006, 0x0128, 0x00ce, 0x00de, 0x00ee, 0x0804, 0xcf49,
+	0x080c, 0x53a7, 0xd0e4, 0x0904, 0xd0a0, 0x2071, 0x026c, 0x7010,
+	0x603a, 0x7014, 0x603e, 0x7108, 0x720c, 0x080c, 0x65d4, 0x0140,
+	0x6010, 0x2058, 0xb810, 0x9106, 0x1118, 0xb814, 0x9206, 0x0510,
+	0x080c, 0x65d0, 0x15b8, 0x2069, 0x1800, 0x6878, 0x9206, 0x1590,
+	0x6874, 0x9106, 0x1578, 0x7210, 0x080c, 0xc5bf, 0x0590, 0x080c,
+	0xd20d, 0x0578, 0x080c, 0xe020, 0x0560, 0x622e, 0x6007, 0x0036,
+	0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b, 0x00ce, 0x00de,
+	0x00ee, 0x0005, 0x7214, 0x9286, 0xffff, 0x0150, 0x080c, 0xc5bf,
+	0x01c0, 0x9280, 0x0002, 0x2004, 0x7110, 0x9106, 0x1190, 0x08e0,
+	0x7210, 0x2c08, 0x9085, 0x0001, 0x080c, 0xdf73, 0x2c10, 0x2160,
+	0x0140, 0x0890, 0x6007, 0x0037, 0x602f, 0x0009, 0x6017, 0x1500,
+	0x08b8, 0x6007, 0x0037, 0x602f, 0x0003, 0x6017, 0x1700, 0x0880,
+	0x6007, 0x0012, 0x0868, 0x080c, 0x30b8, 0x1904, 0xd155, 0x6010,
+	0x2058, 0xb804, 0x9084, 0xff00, 0x8007, 0x9086, 0x0006, 0x1904,
+	0xcf49, 0x00e6, 0x00d6, 0x00c6, 0x080c, 0x53a7, 0xd0e4, 0x0904,
+	0xd118, 0x2069, 0x1800, 0x2071, 0x026c, 0x7008, 0x603a, 0x720c,
+	0x623e, 0x9286, 0xffff, 0x1150, 0x7208, 0x00c6, 0x2c08, 0x9085,
+	0x0001, 0x080c, 0xdf73, 0x2c10, 0x00ce, 0x05e8, 0x080c, 0xc5bf,
+	0x05d0, 0x7108, 0x9280, 0x0002, 0x2004, 0x9106, 0x15a0, 0x00c6,
+	0x0026, 0x2260, 0x080c, 0xc21e, 0x002e, 0x00ce, 0x7118, 0x918c,
+	0xff00, 0x810f, 0x9186, 0x0001, 0x0178, 0x9186, 0x0005, 0x0118,
+	0x9186, 0x0007, 0x1198, 0x9280, 0x0005, 0x2004, 0x9005, 0x0170,
+	0x080c, 0xd20d, 0x0904, 0xd099, 0x0056, 0x7510, 0x7614, 0x080c,
+	0xe039, 0x005e, 0x00ce, 0x00de, 0x00ee, 0x0005, 0x6007, 0x003b,
+	0x602f, 0x0009, 0x6017, 0x2a00, 0x6003, 0x0001, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x0c78, 0x6007, 0x003b, 0x602f, 0x0003, 0x6017,
+	0x0300, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0c10,
+	0x6007, 0x003b, 0x602f, 0x000b, 0x6017, 0x0000, 0x0804, 0xd070,
+	0x00e6, 0x0026, 0x080c, 0x6596, 0x0550, 0x080c, 0x653c, 0x080c,
+	0xe214, 0x1518, 0x2071, 0x1800, 0x70d8, 0x9085, 0x0003, 0x70da,
+	0x00f6, 0x2079, 0x0100, 0x72a8, 0x9284, 0x00ff, 0x7076, 0x78e6,
+	0x9284, 0xff00, 0x7278, 0x9205, 0x707a, 0x78ea, 0x00fe, 0x70e3,
+	0x0000, 0x080c, 0x65d4, 0x0120, 0x2011, 0x1a0a, 0x2013, 0x07d0,
+	0xd0ac, 0x1128, 0x080c, 0x2d72, 0x0010, 0x080c, 0xe246, 0x002e,
+	0x00ee, 0x080c, 0xa96b, 0x0804, 0xcf48, 0x080c, 0xa96b, 0x0005,
+	0x2600, 0x0002, 0xd16c, 0xd19d, 0xd1ae, 0xd16c, 0xd16c, 0xd16e,
+	0xd1bf, 0xd16c, 0xd16c, 0xd16c, 0xd18b, 0xd16c, 0xd16c, 0xd16c,
+	0xd1ca, 0xd1d7, 0xd208, 0xd16c, 0x080c, 0x0db8, 0x080c, 0xe1a2,
+	0x1d20, 0x080c, 0x30b8, 0x1d08, 0x080c, 0xd320, 0x1148, 0x7038,
+	0x6016, 0x6007, 0x0045, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x0005,
+	0x080c, 0x2f98, 0x080c, 0xccbf, 0x6007, 0x0001, 0x6003, 0x0001,
+	0x080c, 0x8ce9, 0x0005, 0x080c, 0xe1a2, 0x1938, 0x080c, 0x30b8,
+	0x1920, 0x080c, 0xd320, 0x1d60, 0x703c, 0x6016, 0x6007, 0x004a,
+	0x6003, 0x0001, 0x080c, 0x8ce9, 0x0005, 0x080c, 0x30b8, 0x1904,
+	0xd155, 0x2009, 0x0041, 0x080c, 0xe24f, 0x6007, 0x0047, 0x6003,
+	0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0005, 0x080c, 0x30b8,
+	0x1904, 0xd155, 0x2009, 0x0042, 0x080c, 0xe24f, 0x6007, 0x0047,
+	0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0005, 0x080c,
+	0x30b8, 0x1904, 0xd155, 0x2009, 0x0046, 0x080c, 0xe24f, 0x080c,
+	0xa96b, 0x0005, 0x080c, 0xd228, 0x0904, 0xd155, 0x6007, 0x004e,
+	0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0005, 0x6007,
+	0x004f, 0x6017, 0x0000, 0x7134, 0x918c, 0x00ff, 0x81ff, 0x0508,
+	0x9186, 0x0001, 0x1160, 0x7140, 0x2001, 0x19c7, 0x2004, 0x9106,
+	0x11b0, 0x7144, 0x2001, 0x19c8, 0x2004, 0x9106, 0x0190, 0x9186,
+	0x0002, 0x1168, 0x2011, 0x0276, 0x20a9, 0x0004, 0x6010, 0x0096,
+	0x2048, 0x2019, 0x000a, 0x080c, 0xb8f6, 0x009e, 0x0110, 0x6017,
+	0x0001, 0x6003, 0x0001, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x0005,
+	0x6007, 0x0050, 0x703c, 0x6016, 0x0ca0, 0x00e6, 0x2071, 0x0260,
+	0x00b6, 0x00c6, 0x2260, 0x6010, 0x2058, 0xb8cc, 0xd084, 0x0150,
+	0x7128, 0x6048, 0x9106, 0x1120, 0x712c, 0x6044, 0x9106, 0x0110,
+	0x9006, 0x0010, 0x9085, 0x0001, 0x00ce, 0x00be, 0x00ee, 0x0005,
+	0x0016, 0x0096, 0x0086, 0x00e6, 0x01c6, 0x01d6, 0x0126, 0x2091,
+	0x8000, 0x2071, 0x1800, 0x7088, 0x908a, 0x00f9, 0x16e8, 0x20e1,
+	0x0000, 0x2001, 0x19aa, 0x2003, 0x0000, 0x080c, 0x0fe6, 0x05a0,
+	0x2900, 0x6016, 0x7088, 0x8004, 0xa816, 0x908a, 0x001e, 0x02d0,
+	0xa833, 0x001e, 0x20a9, 0x001e, 0xa860, 0x20e8, 0xa85c, 0x9080,
+	0x001b, 0x20a0, 0x2001, 0x19aa, 0x0016, 0x200c, 0x0471, 0x001e,
+	0x2940, 0x080c, 0x0fe6, 0x01c0, 0x2900, 0xa006, 0x2100, 0x81ff,
+	0x0180, 0x0c18, 0xa832, 0x20a8, 0xa860, 0x20e8, 0xa85c, 0x9080,
+	0x001b, 0x20a0, 0x2001, 0x19aa, 0x0016, 0x200c, 0x00b1, 0x001e,
+	0x0000, 0x9085, 0x0001, 0x0048, 0x2071, 0x1800, 0x708b, 0x0000,
+	0x6014, 0x2048, 0x080c, 0x0f7f, 0x9006, 0x012e, 0x01de, 0x01ce,
+	0x00ee, 0x008e, 0x009e, 0x001e, 0x0005, 0x0006, 0x0016, 0x0026,
+	0x0036, 0x00c6, 0x918c, 0xffff, 0x11a8, 0x080c, 0x2191, 0x2099,
+	0x026c, 0x2001, 0x0014, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003,
+	0x00f8, 0x20a8, 0x4003, 0x22a8, 0x8108, 0x080c, 0x2191, 0x2099,
+	0x0260, 0x0ca8, 0x080c, 0x2191, 0x2061, 0x19aa, 0x6004, 0x2098,
+	0x6008, 0x3518, 0x9312, 0x1218, 0x23a8, 0x4003, 0x0048, 0x20a8,
+	0x4003, 0x22a8, 0x8108, 0x080c, 0x2191, 0x2099, 0x0260, 0x0ca8,
+	0x2061, 0x19aa, 0x2019, 0x0280, 0x3300, 0x931e, 0x0110, 0x6006,
+	0x0020, 0x2001, 0x0260, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021,
+	0x9296, 0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e,
+	0x0005, 0x0006, 0x0016, 0x0026, 0x0036, 0x00c6, 0x81ff, 0x11b8,
+	0x080c, 0x21a9, 0x20a1, 0x024c, 0x2001, 0x0014, 0x3518, 0x9312,
+	0x1218, 0x23a8, 0x4003, 0x0418, 0x20a8, 0x4003, 0x82ff, 0x01f8,
+	0x22a8, 0x8108, 0x080c, 0x21a9, 0x20a1, 0x0240, 0x0c98, 0x080c,
+	0x21a9, 0x2061, 0x19ad, 0x6004, 0x20a0, 0x6008, 0x3518, 0x9312,
+	0x1218, 0x23a8, 0x4003, 0x0058, 0x20a8, 0x4003, 0x82ff, 0x0138,
+	0x22a8, 0x8108, 0x080c, 0x21a9, 0x20a1, 0x0240, 0x0c98, 0x2061,
+	0x19ad, 0x2019, 0x0260, 0x3400, 0x931e, 0x0110, 0x6006, 0x0020,
+	0x2001, 0x0240, 0x6006, 0x8108, 0x2162, 0x9292, 0x0021, 0x9296,
+	0xffff, 0x620a, 0x00ce, 0x003e, 0x002e, 0x001e, 0x000e, 0x0005,
+	0x00b6, 0x0066, 0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637,
+	0x9686, 0x0006, 0x0170, 0x9686, 0x0004, 0x0158, 0xbe04, 0x96b4,
+	0x00ff, 0x9686, 0x0006, 0x0128, 0x9686, 0x0004, 0x0110, 0x9085,
+	0x0001, 0x006e, 0x00be, 0x0005, 0x00d6, 0x0479, 0x00de, 0x0005,
+	0x00d6, 0x04c1, 0x1520, 0x680c, 0x908c, 0xff00, 0x6820, 0x9084,
+	0x00ff, 0x9115, 0x6216, 0x6824, 0x602e, 0xd1e4, 0x0130, 0x9006,
+	0x080c, 0xe36d, 0x2009, 0x0001, 0x0078, 0xd1ec, 0x0180, 0x6920,
+	0x918c, 0x00ff, 0x6824, 0x080c, 0x2624, 0x1148, 0x2001, 0x0001,
+	0x080c, 0xe36d, 0x2110, 0x900e, 0x080c, 0x2fdd, 0x0018, 0x9085,
+	0x0001, 0x0008, 0x9006, 0x00de, 0x0005, 0x2069, 0x026d, 0x6800,
+	0x9082, 0x0010, 0x1228, 0x6017, 0x0000, 0x9085, 0x0001, 0x0008,
+	0x9006, 0x0005, 0x6017, 0x0000, 0x2069, 0x026c, 0x6808, 0x9084,
+	0xff00, 0x9086, 0x0800, 0x1140, 0x6800, 0x9084, 0x00ff, 0x908e,
+	0x0014, 0x0110, 0x908e, 0x0010, 0x0005, 0x6004, 0x90b2, 0x0053,
+	0x1a0c, 0x0db8, 0x91b6, 0x0013, 0x1130, 0x2008, 0x91b2, 0x0040,
+	0x1a04, 0xd4ba, 0x0092, 0x91b6, 0x0027, 0x0120, 0x91b6, 0x0014,
+	0x190c, 0x0db8, 0x2001, 0x0007, 0x080c, 0x61f0, 0x080c, 0x912c,
+	0x080c, 0xa99c, 0x080c, 0x922b, 0x0005, 0xd3ed, 0xd3ef, 0xd3ed,
+	0xd3ed, 0xd3ed, 0xd3ef, 0xd3fe, 0xd4b3, 0xd450, 0xd4b3, 0xd464,
+	0xd4b3, 0xd3fe, 0xd4b3, 0xd4ab, 0xd4b3, 0xd4ab, 0xd4b3, 0xd4b3,
+	0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed,
+	0xd3ed, 0xd3ed, 0xd3ed, 0xd3ef, 0xd3ed, 0xd4b3, 0xd3ed, 0xd3ed,
+	0xd4b3, 0xd3ed, 0xd4b0, 0xd4b3, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed,
+	0xd4b3, 0xd4b3, 0xd3ed, 0xd4b3, 0xd4b3, 0xd3ed, 0xd3f9, 0xd3ed,
+	0xd3ed, 0xd3ed, 0xd3ed, 0xd4af, 0xd4b3, 0xd3ed, 0xd3ed, 0xd4b3,
+	0xd4b3, 0xd3ed, 0xd3ed, 0xd3ed, 0xd3ed, 0x080c, 0x0db8, 0x080c,
+	0x912c, 0x080c, 0xccc2, 0x6003, 0x0002, 0x080c, 0x922b, 0x0804,
+	0xd4b9, 0x9006, 0x080c, 0x61b0, 0x0804, 0xd4b3, 0x080c, 0x65d0,
+	0x1904, 0xd4b3, 0x9006, 0x080c, 0x61b0, 0x6010, 0x2058, 0xb810,
+	0x9086, 0x00ff, 0x1140, 0x00f6, 0x2079, 0x1800, 0x78a0, 0x8000,
+	0x78a2, 0x00fe, 0x0428, 0x6010, 0x2058, 0xb8c0, 0x9005, 0x1178,
+	0x080c, 0xccaa, 0x1904, 0xd4b3, 0x0036, 0x0046, 0xbba0, 0x2021,
+	0x0007, 0x080c, 0x4992, 0x004e, 0x003e, 0x0804, 0xd4b3, 0x080c,
+	0x30e3, 0x1904, 0xd4b3, 0x2001, 0x1800, 0x2004, 0x9086, 0x0002,
+	0x1138, 0x00f6, 0x2079, 0x1800, 0x78a0, 0x8000, 0x78a2, 0x00fe,
+	0x2001, 0x0002, 0x080c, 0x61c4, 0x080c, 0x912c, 0x6023, 0x0001,
+	0x6003, 0x0001, 0x6007, 0x0002, 0x080c, 0x8ce9, 0x080c, 0x922b,
+	0x6110, 0x2158, 0x2009, 0x0001, 0x080c, 0x80fa, 0x0804, 0xd4b9,
+	0x6610, 0x2658, 0xbe04, 0x96b4, 0xff00, 0x8637, 0x9686, 0x0006,
+	0x0904, 0xd4b3, 0x9686, 0x0004, 0x0904, 0xd4b3, 0x080c, 0x887e,
+	0x2001, 0x0004, 0x0804, 0xd4b1, 0x2001, 0x1800, 0x2004, 0x9086,
+	0x0003, 0x1158, 0x0036, 0x0046, 0x6010, 0x2058, 0xbba0, 0x2021,
+	0x0006, 0x080c, 0x4992, 0x004e, 0x003e, 0x2001, 0x0006, 0x080c,
+	0xd4d7, 0x6610, 0x2658, 0xbe04, 0x0066, 0x96b4, 0xff00, 0x8637,
+	0x9686, 0x0006, 0x006e, 0x0168, 0x2001, 0x0006, 0x080c, 0x61f0,
+	0x9284, 0x00ff, 0x908e, 0x0007, 0x1120, 0x2001, 0x0006, 0x080c,
+	0x61c4, 0x080c, 0x65d0, 0x11f8, 0x2001, 0x1836, 0x2004, 0xd0a4,
+	0x01d0, 0xbe04, 0x96b4, 0x00ff, 0x9686, 0x0006, 0x01a0, 0x00f6,
+	0x2079, 0x1800, 0x78a0, 0x8000, 0x78a2, 0x00fe, 0x0804, 0xd438,
+	0x2001, 0x0004, 0x0030, 0x2001, 0x0006, 0x0449, 0x0020, 0x0018,
+	0x0010, 0x080c, 0x61f0, 0x080c, 0x912c, 0x080c, 0xa96b, 0x080c,
+	0x922b, 0x0005, 0x2600, 0x0002, 0xd4ce, 0xd4ce, 0xd4ce, 0xd4ce,
+	0xd4ce, 0xd4d0, 0xd4ce, 0xd4d0, 0xd4ce, 0xd4ce, 0xd4d0, 0xd4ce,
+	0xd4ce, 0xd4ce, 0xd4d0, 0xd4d0, 0xd4d0, 0xd4d0, 0x080c, 0x0db8,
+	0x080c, 0x912c, 0x080c, 0xa96b, 0x080c, 0x922b, 0x0005, 0x0016,
+	0x00b6, 0x00d6, 0x6110, 0x2158, 0xb900, 0xd184, 0x0138, 0x080c,
+	0x61c4, 0x9006, 0x080c, 0x61b0, 0x080c, 0x2fbd, 0x00de, 0x00be,
+	0x001e, 0x0005, 0x6610, 0x2658, 0xb804, 0x9084, 0xff00, 0x8007,
+	0x90b2, 0x000c, 0x1a0c, 0x0db8, 0x91b6, 0x0015, 0x1110, 0x003b,
+	0x0028, 0x91b6, 0x0016, 0x190c, 0x0db8, 0x006b, 0x0005, 0xb3fc,
+	0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xd552, 0xd517, 0xb3fc,
+	0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc,
+	0xb3fc, 0xd552, 0xd559, 0xb3fc, 0xb3fc, 0xb3fc, 0xb3fc, 0x00f6,
+	0x080c, 0x65d0, 0x11d8, 0x080c, 0xccaa, 0x11c0, 0x6010, 0x905d,
+	0x01a8, 0xb8c0, 0x9005, 0x0190, 0x9006, 0x080c, 0x61b0, 0x2001,
+	0x0002, 0x080c, 0x61c4, 0x6023, 0x0001, 0x6003, 0x0001, 0x6007,
+	0x0002, 0x080c, 0x8ce9, 0x080c, 0x922b, 0x00d0, 0x2011, 0x0263,
+	0x2204, 0x8211, 0x220c, 0x080c, 0x2624, 0x1190, 0x080c, 0x6274,
+	0x0118, 0x080c, 0xa96b, 0x0060, 0xb810, 0x0006, 0xb814, 0x0006,
+	0x080c, 0x5cc3, 0x000e, 0xb816, 0x000e, 0xb812, 0x080c, 0xa96b,
+	0x00fe, 0x0005, 0x6604, 0x96b6, 0x001e, 0x1110, 0x080c, 0xa96b,
+	0x0005, 0x080c, 0xb76a, 0x1148, 0x6003, 0x0001, 0x6007, 0x0001,
+	0x080c, 0x8ce9, 0x080c, 0x922b, 0x0010, 0x080c, 0xa96b, 0x0005,
+	0x6004, 0x908a, 0x0053, 0x1a0c, 0x0db8, 0x080c, 0x912c, 0x080c,
+	0xa99c, 0x080c, 0x922b, 0x0005, 0x9182, 0x0040, 0x0002, 0xd58a,
+	0xd58a, 0xd58a, 0xd58a, 0xd58c, 0xd58a, 0xd58a, 0xd58a, 0xd58a,
+	0xd58a, 0xd58a, 0xd58a, 0xd58a, 0xd58a, 0xd58a, 0xd58a, 0xd58a,
+	0xd58a, 0xd58a, 0x080c, 0x0db8, 0x0096, 0x00b6, 0x00d6, 0x00e6,
+	0x00f6, 0x0046, 0x0026, 0x6210, 0x2258, 0xb8bc, 0x9005, 0x11a8,
+	0x6106, 0x2071, 0x0260, 0x7444, 0x94a4, 0xff00, 0x0904, 0xd5f3,
+	0x080c, 0xe361, 0x1170, 0x9486, 0x2000, 0x1158, 0x2009, 0x0001,
+	0x2011, 0x0200, 0x080c, 0x82bd, 0x0020, 0x9026, 0x080c, 0xe1e7,
+	0x0c38, 0x080c, 0x0fcd, 0x090c, 0x0db8, 0x6003, 0x0007, 0xa867,
+	0x010d, 0x9006, 0xa802, 0xa86a, 0xac8a, 0x2c00, 0xa88e, 0x6008,
+	0xa8e2, 0x6010, 0x2058, 0xb8a0, 0x7130, 0xa97a, 0x0016, 0xa876,
+	0xa87f, 0x0000, 0xa883, 0x0000, 0xa887, 0x0036, 0x080c, 0x68e7,
+	0x001e, 0x080c, 0xe361, 0x1904, 0xd653, 0x9486, 0x2000, 0x1130,
+	0x2019, 0x0017, 0x080c, 0xdf1d, 0x0804, 0xd653, 0x9486, 0x0400,
+	0x1130, 0x2019, 0x0002, 0x080c, 0xded4, 0x0804, 0xd653, 0x9486,
+	0x0200, 0x1110, 0x080c, 0xdeb9, 0x9486, 0x1000, 0x1110, 0x080c,
+	0xdf02, 0x0804, 0xd653, 0x2069, 0x1a7b, 0x6a00, 0xd284, 0x0904,
+	0xd6bd, 0x9284, 0x0300, 0x1904, 0xd6b6, 0x6804, 0x9005, 0x0904,
+	0xd69e, 0x2d78, 0x6003, 0x0007, 0x080c, 0x0fe6, 0x0904, 0xd65f,
+	0x7800, 0xd08c, 0x1118, 0x7804, 0x8001, 0x7806, 0x6017, 0x0000,
+	0x2001, 0x180e, 0x2004, 0xd084, 0x1904, 0xd6c1, 0x9006, 0xa802,
+	0xa867, 0x0116, 0xa86a, 0x6008, 0xa8e2, 0x2c00, 0xa87a, 0x6010,
+	0x2058, 0xb8a0, 0x7130, 0xa9b6, 0xa876, 0xb928, 0xa9ba, 0xb92c,
+	0xa9be, 0xb930, 0xa9c2, 0xb934, 0xa9c6, 0xa883, 0x003d, 0x7044,
+	0x9084, 0x0003, 0x9080, 0xd65b, 0x2005, 0xa87e, 0x20a9, 0x000a,
+	0x2001, 0x0270, 0xaa5c, 0x9290, 0x0021, 0x2009, 0x0205, 0x200b,
+	0x0080, 0x20e1, 0x0000, 0xab60, 0x23e8, 0x2098, 0x22a0, 0x4003,
+	0x200b, 0x0000, 0x2001, 0x027a, 0x200c, 0xa9b2, 0x8000, 0x200c,
+	0xa9ae, 0x080c, 0x68e7, 0x002e, 0x004e, 0x00fe, 0x00ee, 0x00de,
+	0x00be, 0x009e, 0x0005, 0x0000, 0x0080, 0x0040, 0x0000, 0x2001,
+	0x180f, 0x2004, 0xd084, 0x0120, 0x080c, 0x0fcd, 0x1904, 0xd608,
+	0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x0c00, 0x2069, 0x0260, 0x6848, 0x9084, 0xff00,
+	0x9086, 0x1200, 0x1198, 0x686c, 0x9084, 0x00ff, 0x0016, 0x6114,
+	0x918c, 0xf700, 0x910d, 0x6116, 0x001e, 0x6003, 0x0001, 0x6007,
+	0x0043, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0828, 0x6868, 0x602e,
+	0x686c, 0x6032, 0x6017, 0xf200, 0x6003, 0x0001, 0x6007, 0x0041,
+	0x080c, 0x8c97, 0x080c, 0x922b, 0x0804, 0xd653, 0x2001, 0x180d,
+	0x2004, 0xd0ec, 0x0120, 0x2011, 0x8049, 0x080c, 0x47db, 0x6017,
+	0xf300, 0x0010, 0x6017, 0xf100, 0x6003, 0x0001, 0x6007, 0x0041,
+	0x080c, 0x8c97, 0x080c, 0x922b, 0x0804, 0xd653, 0x6017, 0xf500,
+	0x0c98, 0x6017, 0xf600, 0x0804, 0xd673, 0x6017, 0xf200, 0x0804,
+	0xd673, 0xa867, 0x0146, 0xa86b, 0x0000, 0x6008, 0xa886, 0x2c00,
+	0xa87a, 0x7044, 0x9084, 0x0003, 0x9080, 0xd65b, 0x2005, 0xa87e,
+	0x2928, 0x6010, 0x2058, 0xb8a0, 0xa876, 0xb828, 0xa88a, 0xb82c,
+	0xa88e, 0xb830, 0xa892, 0xb834, 0xa896, 0xa883, 0x003d, 0x2009,
+	0x0205, 0x2104, 0x9085, 0x0080, 0x200a, 0x20e1, 0x0000, 0x2011,
+	0x0210, 0x2214, 0x9294, 0x0fff, 0xaaa2, 0x9282, 0x0111, 0x1a0c,
+	0x0db8, 0x8210, 0x821c, 0x2001, 0x026c, 0x2098, 0xa860, 0x20e8,
+	0xa85c, 0x9080, 0x0029, 0x20a0, 0x2011, 0xd73d, 0x2041, 0x0001,
+	0x223d, 0x9784, 0x00ff, 0x9322, 0x1208, 0x2300, 0x20a8, 0x4003,
+	0x931a, 0x0530, 0x8210, 0xd7fc, 0x1130, 0x8d68, 0x2d0a, 0x2001,
+	0x0260, 0x2098, 0x0c68, 0x2950, 0x080c, 0x0fe6, 0x0170, 0x2900,
+	0xb002, 0xa867, 0x0147, 0xa86b, 0x0000, 0xa860, 0x20e8, 0xa85c,
+	0x9080, 0x001b, 0x20a0, 0x8840, 0x08d8, 0x2548, 0xa800, 0x902d,
+	0x0118, 0x080c, 0x0fff, 0x0cc8, 0x080c, 0x0fff, 0x0804, 0xd65f,
+	0x2548, 0x8847, 0x9885, 0x0046, 0xa866, 0x2009, 0x0205, 0x200b,
+	0x0000, 0x080c, 0xdf4c, 0x0804, 0xd653, 0x8010, 0x0004, 0x801a,
+	0x0006, 0x8018, 0x0008, 0x8016, 0x000a, 0x8014, 0x9186, 0x0013,
+	0x1160, 0x6004, 0x908a, 0x0054, 0x1a0c, 0x0db8, 0x9082, 0x0040,
+	0x0a0c, 0x0db8, 0x2008, 0x0804, 0xd7ee, 0x9186, 0x0051, 0x0108,
+	0x00c0, 0x2001, 0x0109, 0x2004, 0xd084, 0x0904, 0xd79f, 0x0126,
+	0x2091, 0x2800, 0x0006, 0x0016, 0x0026, 0x080c, 0x8b98, 0x002e,
+	0x001e, 0x000e, 0x012e, 0x6000, 0x9086, 0x0002, 0x1580, 0x0804,
+	0xd836, 0x9186, 0x0027, 0x0530, 0x9186, 0x0048, 0x0128, 0x9186,
+	0x0014, 0x0500, 0x190c, 0x0db8, 0x2001, 0x0109, 0x2004, 0xd084,
+	0x01f0, 0x00c6, 0x0126, 0x2091, 0x2800, 0x00c6, 0x2061, 0x0100,
+	0x0006, 0x0016, 0x0026, 0x080c, 0x8b98, 0x002e, 0x001e, 0x000e,
+	0x00ce, 0x012e, 0x00ce, 0x6000, 0x9086, 0x0004, 0x190c, 0x0db8,
+	0x0804, 0xd917, 0x6004, 0x9082, 0x0040, 0x2008, 0x001a, 0x080c,
+	0xaa01, 0x0005, 0xd7b5, 0xd7b7, 0xd7b7, 0xd7de, 0xd7b5, 0xd7b5,
+	0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5,
+	0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0xd7b5, 0x080c, 0x0db8, 0x080c,
+	0x912c, 0x080c, 0x922b, 0x0036, 0x0096, 0x6014, 0x904d, 0x01d8,
+	0x080c, 0xc5d1, 0x01c0, 0x6003, 0x0002, 0x6010, 0x00b6, 0x2058,
+	0xb800, 0x00be, 0xd0bc, 0x1178, 0x2019, 0x0004, 0x080c, 0xdf4c,
+	0x6017, 0x0000, 0x6018, 0x9005, 0x1120, 0x2001, 0x1991, 0x2004,
+	0x601a, 0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x0096, 0x080c,
+	0x912c, 0x080c, 0x922b, 0x080c, 0xc5d1, 0x0120, 0x6014, 0x2048,
+	0x080c, 0x0fff, 0x080c, 0xa99c, 0x009e, 0x0005, 0x0002, 0xd802,
+	0xd819, 0xd804, 0xd830, 0xd802, 0xd802, 0xd802, 0xd802, 0xd802,
+	0xd802, 0xd802, 0xd802, 0xd802, 0xd802, 0xd802, 0xd802, 0xd802,
+	0xd802, 0xd802, 0x080c, 0x0db8, 0x0096, 0x080c, 0x912c, 0x6014,
+	0x2048, 0xa87c, 0xd0b4, 0x0138, 0x6003, 0x0007, 0x2009, 0x0043,
+	0x080c, 0xa9e6, 0x0010, 0x6003, 0x0004, 0x080c, 0x922b, 0x009e,
+	0x0005, 0x080c, 0x912c, 0x080c, 0xc5d1, 0x0138, 0x6114, 0x0096,
+	0x2148, 0xa97c, 0x009e, 0xd1ec, 0x1138, 0x080c, 0x8292, 0x080c,
+	0xa96b, 0x080c, 0x922b, 0x0005, 0x080c, 0xe1ab, 0x0db0, 0x0cc8,
+	0x080c, 0x912c, 0x2009, 0x0041, 0x0804, 0xd99f, 0x9182, 0x0040,
+	0x0002, 0xd84c, 0xd84e, 0xd84c, 0xd84c, 0xd84c, 0xd84c, 0xd84c,
+	0xd84c, 0xd84c, 0xd84c, 0xd84c, 0xd84c, 0xd84c, 0xd84c, 0xd84c,
+	0xd84c, 0xd84c, 0xd84f, 0xd84c, 0x080c, 0x0db8, 0x0005, 0x00d6,
+	0x080c, 0x8292, 0x00de, 0x080c, 0xe203, 0x080c, 0xa96b, 0x0005,
+	0x9182, 0x0040, 0x0002, 0xd86e, 0xd86e, 0xd86e, 0xd86e, 0xd86e,
+	0xd86e, 0xd86e, 0xd86e, 0xd86e, 0xd870, 0xd8df, 0xd86e, 0xd86e,
+	0xd86e, 0xd86e, 0xd8df, 0xd86e, 0xd86e, 0xd86e, 0x080c, 0x0db8,
+	0x2001, 0x0105, 0x2004, 0x9084, 0x1800, 0x01c8, 0x2001, 0x0132,
+	0x200c, 0x2001, 0x0131, 0x2004, 0x9105, 0x1904, 0xd8df, 0x2009,
+	0x180c, 0x2104, 0xd0d4, 0x0904, 0xd8df, 0xc0d4, 0x200a, 0x2009,
+	0x0105, 0x2104, 0x9084, 0xe7fd, 0x9085, 0x0010, 0x200a, 0x2001,
+	0x1873, 0x2004, 0xd0e4, 0x1528, 0x603b, 0x0000, 0x080c, 0x91dc,
+	0x6014, 0x0096, 0x2048, 0xa87c, 0xd0fc, 0x0188, 0x908c, 0x0003,
+	0x918e, 0x0002, 0x0508, 0x2001, 0x180c, 0x2004, 0xd0d4, 0x11e0,
+	0x080c, 0x9359, 0x2009, 0x0041, 0x009e, 0x0804, 0xd99f, 0x080c,
+	0x9359, 0x6003, 0x0007, 0x601b, 0x0000, 0x080c, 0x8292, 0x009e,
+	0x0005, 0x2001, 0x0100, 0x2004, 0x9082, 0x0005, 0x0aa8, 0x2001,
+	0x011f, 0x2004, 0x603a, 0x0890, 0x2001, 0x180c, 0x200c, 0xc1d4,
+	0x2102, 0xd1cc, 0x0110, 0x080c, 0x2a30, 0x080c, 0x9359, 0x6014,
+	0x2048, 0xa97c, 0xd1ec, 0x1130, 0x080c, 0x8292, 0x080c, 0xa96b,
+	0x009e, 0x0005, 0x080c, 0xe1ab, 0x0db8, 0x009e, 0x0005, 0x2001,
+	0x180c, 0x200c, 0xc1d4, 0x2102, 0x0036, 0x080c, 0x91dc, 0x080c,
+	0x9359, 0x6014, 0x0096, 0x2048, 0x6010, 0x00b6, 0x2058, 0xb800,
+	0x00be, 0xd0bc, 0x0188, 0xa87c, 0x9084, 0x0003, 0x9086, 0x0002,
+	0x0140, 0xa8ac, 0x6330, 0x931a, 0x6332, 0xa8b0, 0x632c, 0x931b,
+	0x632e, 0x6003, 0x0002, 0x0080, 0x2019, 0x0004, 0x080c, 0xdf4c,
+	0x6018, 0x9005, 0x1128, 0x2001, 0x1991, 0x2004, 0x8003, 0x601a,
+	0x6017, 0x0000, 0x6003, 0x0007, 0x009e, 0x003e, 0x0005, 0x9182,
+	0x0040, 0x0002, 0xd92e, 0xd92e, 0xd92e, 0xd92e, 0xd92e, 0xd92e,
+	0xd92e, 0xd92e, 0xd930, 0xd92e, 0xd92e, 0xd92e, 0xd92e, 0xd92e,
+	0xd92e, 0xd92e, 0xd92e, 0xd92e, 0xd92e, 0xd97b, 0x080c, 0x0db8,
+	0x6014, 0x0096, 0x2048, 0xa834, 0xaa38, 0x6110, 0x00b6, 0x2058,
+	0xb900, 0x00be, 0xd1bc, 0x1190, 0x920d, 0x1518, 0xa87c, 0xd0fc,
+	0x0128, 0x2009, 0x0041, 0x00de, 0x0804, 0xd99f, 0x6003, 0x0007,
+	0x601b, 0x0000, 0x080c, 0x8292, 0x009e, 0x0005, 0x6124, 0xd1f4,
+	0x1d58, 0x0006, 0x0046, 0xacac, 0x9422, 0xa9b0, 0x2200, 0x910b,
+	0x6030, 0x9420, 0x6432, 0x602c, 0x9109, 0x612e, 0x004e, 0x000e,
+	0x08d8, 0x6110, 0x00b6, 0x2158, 0xb900, 0x00be, 0xd1bc, 0x1178,
+	0x2009, 0x180d, 0x210c, 0xd19c, 0x0118, 0x6003, 0x0007, 0x0010,
+	0x6003, 0x0006, 0x00e9, 0x080c, 0x8294, 0x009e, 0x0005, 0x6003,
+	0x0002, 0x009e, 0x0005, 0x6024, 0xd0f4, 0x0128, 0x080c, 0x157e,
+	0x1904, 0xd930, 0x0005, 0x6014, 0x0096, 0x2048, 0xa834, 0xa938,
+	0x009e, 0x9105, 0x1120, 0x080c, 0x157e, 0x1904, 0xd930, 0x0005,
+	0xd2fc, 0x0140, 0x8002, 0x8000, 0x8212, 0x9291, 0x0000, 0x2009,
+	0x0009, 0x0010, 0x2009, 0x0015, 0xaa9a, 0xa896, 0x0005, 0x9182,
+	0x0040, 0x0208, 0x0062, 0x9186, 0x0013, 0x0120, 0x9186, 0x0014,
+	0x190c, 0x0db8, 0x6024, 0xd0dc, 0x090c, 0x0db8, 0x0005, 0xd9c2,
+	0xd9c9, 0xd9d5, 0xd9e1, 0xd9c2, 0xd9c2, 0xd9c2, 0xd9c2, 0xd9c2,
+	0xd9c4, 0xd9c4, 0xd9c2, 0xd9c2, 0xd9c2, 0xd9c2, 0xd9c4, 0xd9c2,
+	0xd9c4, 0xd9c2, 0x080c, 0x0db8, 0x6024, 0xd0dc, 0x090c, 0x0db8,
+	0x0005, 0x6003, 0x0001, 0x6106, 0x080c, 0x8c97, 0x0126, 0x2091,
+	0x8000, 0x080c, 0x922b, 0x012e, 0x0005, 0x6003, 0x0001, 0x6106,
+	0x080c, 0x8c97, 0x0126, 0x2091, 0x8000, 0x080c, 0x922b, 0x012e,
+	0x0005, 0x6003, 0x0003, 0x6106, 0x2c10, 0x080c, 0x1a3a, 0x0126,
+	0x2091, 0x8000, 0x080c, 0x8d06, 0x080c, 0x9362, 0x012e, 0x0005,
+	0x0126, 0x2091, 0x8000, 0x0036, 0x0096, 0x9182, 0x0040, 0x0023,
+	0x009e, 0x003e, 0x012e, 0x0005, 0xda0c, 0xda0e, 0xda20, 0xda3a,
+	0xda0c, 0xda0c, 0xda0c, 0xda0c, 0xda0c, 0xda0c, 0xda0c, 0xda0c,
+	0xda0c, 0xda0c, 0xda0c, 0xda0c, 0x080c, 0x0db8, 0x6014, 0x2048,
+	0xa87c, 0xd0fc, 0x01f8, 0x909c, 0x0003, 0x939e, 0x0003, 0x01d0,
+	0x6003, 0x0001, 0x6106, 0x080c, 0x8c97, 0x080c, 0x922b, 0x0470,
+	0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0168, 0x909c, 0x0003, 0x939e,
+	0x0003, 0x0140, 0x6003, 0x0001, 0x6106, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x00e0, 0x901e, 0x6316, 0x631a, 0x2019, 0x0004, 0x080c,
+	0xdf4c, 0x00a0, 0x6014, 0x2048, 0xa87c, 0xd0fc, 0x0d98, 0x909c,
+	0x0003, 0x939e, 0x0003, 0x0d70, 0x6003, 0x0003, 0x6106, 0x2c10,
+	0x080c, 0x1a3a, 0x080c, 0x8d06, 0x080c, 0x9362, 0x0005, 0x080c,
+	0x912c, 0x6114, 0x81ff, 0x0158, 0x0096, 0x2148, 0x080c, 0xe300,
+	0x0036, 0x2019, 0x0029, 0x080c, 0xdf4c, 0x003e, 0x009e, 0x080c,
+	0xa99c, 0x080c, 0x922b, 0x0005, 0x080c, 0x91dc, 0x6114, 0x81ff,
+	0x0158, 0x0096, 0x2148, 0x080c, 0xe300, 0x0036, 0x2019, 0x0029,
+	0x080c, 0xdf4c, 0x003e, 0x009e, 0x080c, 0xa99c, 0x080c, 0x9362,
+	0x0005, 0x9182, 0x0085, 0x0002, 0xda8b, 0xda89, 0xda89, 0xda97,
+	0xda89, 0xda89, 0xda89, 0xda89, 0xda89, 0xda89, 0xda89, 0xda89,
+	0xda89, 0x080c, 0x0db8, 0x6003, 0x000b, 0x6106, 0x080c, 0x8c97,
+	0x0126, 0x2091, 0x8000, 0x080c, 0x922b, 0x012e, 0x0005, 0x0026,
+	0x00e6, 0x080c, 0xe1a2, 0x0118, 0x080c, 0xa96b, 0x0450, 0x2071,
+	0x0260, 0x7224, 0x6216, 0x2001, 0x180d, 0x2004, 0xd0e4, 0x0150,
+	0x6010, 0x00b6, 0x2058, 0xbca0, 0x00be, 0x2c00, 0x2011, 0x014e,
+	0x080c, 0xac8a, 0x7220, 0x080c, 0xddf2, 0x0118, 0x6007, 0x0086,
+	0x0040, 0x6007, 0x0087, 0x7224, 0x9296, 0xffff, 0x1110, 0x6007,
+	0x0086, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b, 0x080c,
+	0x9362, 0x00ee, 0x002e, 0x0005, 0x9186, 0x0013, 0x1160, 0x6004,
+	0x908a, 0x0085, 0x0a0c, 0x0db8, 0x908a, 0x0092, 0x1a0c, 0x0db8,
+	0x9082, 0x0085, 0x00a2, 0x9186, 0x0027, 0x0130, 0x9186, 0x0014,
+	0x0118, 0x080c, 0xaa01, 0x0050, 0x2001, 0x0007, 0x080c, 0x61f0,
+	0x080c, 0x912c, 0x080c, 0xa99c, 0x080c, 0x922b, 0x0005, 0xdafc,
+	0xdafe, 0xdafe, 0xdafc, 0xdafc, 0xdafc, 0xdafc, 0xdafc, 0xdafc,
+	0xdafc, 0xdafc, 0xdafc, 0xdafc, 0x080c, 0x0db8, 0x080c, 0x912c,
+	0x080c, 0xa99c, 0x080c, 0x922b, 0x0005, 0x9182, 0x0085, 0x0a0c,
+	0x0db8, 0x9182, 0x0092, 0x1a0c, 0x0db8, 0x9182, 0x0085, 0x0002,
+	0xdb1d, 0xdb1d, 0xdb1d, 0xdb1f, 0xdb1d, 0xdb1d, 0xdb1d, 0xdb1d,
+	0xdb1d, 0xdb1d, 0xdb1d, 0xdb1d, 0xdb1d, 0x080c, 0x0db8, 0x0005,
+	0x9186, 0x0013, 0x0148, 0x9186, 0x0014, 0x0130, 0x9186, 0x0027,
+	0x0118, 0x080c, 0xaa01, 0x0030, 0x080c, 0x912c, 0x080c, 0xa99c,
+	0x080c, 0x922b, 0x0005, 0x0036, 0x080c, 0xe203, 0x6043, 0x0000,
+	0x2019, 0x000b, 0x0031, 0x6023, 0x0006, 0x6003, 0x0007, 0x003e,
+	0x0005, 0x0126, 0x0036, 0x2091, 0x8000, 0x0086, 0x2c40, 0x0096,
+	0x904e, 0x080c, 0xa1b9, 0x009e, 0x008e, 0x1550, 0x0076, 0x2c38,
+	0x080c, 0xa264, 0x007e, 0x1520, 0x6000, 0x9086, 0x0000, 0x0500,
+	0x6020, 0x9086, 0x0007, 0x01e0, 0x0096, 0x601c, 0xd084, 0x0140,
+	0x080c, 0xe203, 0x080c, 0xccc2, 0x080c, 0x1931, 0x6023, 0x0007,
+	0x6014, 0x2048, 0x080c, 0xc5d1, 0x0110, 0x080c, 0xdf4c, 0x009e,
+	0x6017, 0x0000, 0x080c, 0xe203, 0x6023, 0x0007, 0x080c, 0xccc2,
+	0x003e, 0x012e, 0x0005, 0x00f6, 0x00c6, 0x00b6, 0x0036, 0x0156,
+	0x2079, 0x0260, 0x7938, 0x783c, 0x080c, 0x2624, 0x15b8, 0x0016,
+	0x00c6, 0x080c, 0x6274, 0x1580, 0x001e, 0x00c6, 0x2160, 0x080c,
+	0xccbf, 0x00ce, 0x002e, 0x0026, 0x0016, 0x2019, 0x0029, 0x080c,
+	0xa325, 0x080c, 0x8e3c, 0x0076, 0x903e, 0x080c, 0x8d19, 0x007e,
+	0x001e, 0x0076, 0x903e, 0x080c, 0xdcf1, 0x007e, 0x0026, 0xba04,
+	0x9294, 0xff00, 0x8217, 0x9286, 0x0006, 0x0118, 0x9286, 0x0004,
+	0x1118, 0xbaa0, 0x080c, 0x3052, 0x002e, 0x001e, 0x080c, 0x5cc3,
+	0xbe12, 0xbd16, 0x9006, 0x0010, 0x00ce, 0x001e, 0x015e, 0x003e,
+	0x00be, 0x00ce, 0x00fe, 0x0005, 0x00c6, 0x00d6, 0x00b6, 0x0016,
+	0x2009, 0x1822, 0x2104, 0x9086, 0x0074, 0x1904, 0xdc1d, 0x2069,
+	0x0260, 0x6944, 0x9182, 0x0100, 0x06e0, 0x6940, 0x9184, 0x8000,
+	0x0904, 0xdc1a, 0x2001, 0x1988, 0x2004, 0x9005, 0x1140, 0x6010,
+	0x2058, 0xb8c0, 0x9005, 0x0118, 0x9184, 0x0800, 0x0598, 0x6948,
+	0x918a, 0x0001, 0x0648, 0x080c, 0xe366, 0x0118, 0x6978, 0xd1fc,
+	0x11b8, 0x2009, 0x0205, 0x200b, 0x0001, 0x693c, 0x81ff, 0x1198,
+	0x6944, 0x9182, 0x0100, 0x02a8, 0x6940, 0x81ff, 0x1178, 0x6948,
+	0x918a, 0x0001, 0x0288, 0x6950, 0x918a, 0x0001, 0x0298, 0x00d0,
+	0x6017, 0x0100, 0x00a0, 0x6017, 0x0300, 0x0088, 0x6017, 0x0500,
+	0x0070, 0x6017, 0x0700, 0x0058, 0x6017, 0x0900, 0x0040, 0x6017,
+	0x0b00, 0x0028, 0x6017, 0x0f00, 0x0010, 0x6017, 0x2d00, 0x9085,
+	0x0001, 0x0008, 0x9006, 0x001e, 0x00be, 0x00de, 0x00ce, 0x0005,
+	0x00c6, 0x00b6, 0x0026, 0x0036, 0x0156, 0x6210, 0x2258, 0xbb04,
+	0x9394, 0x00ff, 0x9286, 0x0006, 0x0178, 0x9286, 0x0004, 0x0160,
+	0x9394, 0xff00, 0x8217, 0x9286, 0x0006, 0x0130, 0x9286, 0x0004,
+	0x0118, 0x080c, 0x6283, 0x04e0, 0x2011, 0x0276, 0x20a9, 0x0004,
+	0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xb8f6, 0x009e, 0x1588,
+	0x2011, 0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006,
+	0x080c, 0xb8f6, 0x009e, 0x1528, 0x0046, 0x0016, 0xbaa0, 0x2220,
+	0x9006, 0x2009, 0x1854, 0x210c, 0xd1a4, 0x0138, 0x2009, 0x0029,
+	0x080c, 0xdfa9, 0xb800, 0xc0e5, 0xb802, 0x2019, 0x0029, 0x080c,
+	0x8e3c, 0x0076, 0x2039, 0x0000, 0x080c, 0x8d19, 0x2c08, 0x080c,
+	0xdcf1, 0x007e, 0x2001, 0x0007, 0x080c, 0x61f0, 0x001e, 0x004e,
+	0x9006, 0x015e, 0x003e, 0x002e, 0x00be, 0x00ce, 0x0005, 0x00d6,
+	0x2069, 0x026e, 0x6800, 0x9086, 0x0800, 0x0118, 0x6017, 0x0000,
+	0x0008, 0x9006, 0x00de, 0x0005, 0x00b6, 0x00f6, 0x0016, 0x0026,
+	0x0036, 0x0156, 0x2079, 0x026c, 0x7930, 0x7834, 0x080c, 0x2624,
+	0x11d0, 0x080c, 0x6274, 0x11b8, 0x2011, 0x0270, 0x20a9, 0x0004,
+	0x0096, 0x2b48, 0x2019, 0x000a, 0x080c, 0xb8f6, 0x009e, 0x1158,
+	0x2011, 0x0274, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006,
+	0x080c, 0xb8f6, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e, 0x00fe,
+	0x00be, 0x0005, 0x00b6, 0x0006, 0x0016, 0x0026, 0x0036, 0x0156,
+	0x2011, 0x0263, 0x2204, 0x8211, 0x220c, 0x080c, 0x2624, 0x11d0,
+	0x080c, 0x6274, 0x11b8, 0x2011, 0x0276, 0x20a9, 0x0004, 0x0096,
+	0x2b48, 0x2019, 0x000a, 0x080c, 0xb8f6, 0x009e, 0x1158, 0x2011,
+	0x027a, 0x20a9, 0x0004, 0x0096, 0x2b48, 0x2019, 0x0006, 0x080c,
+	0xb8f6, 0x009e, 0x015e, 0x003e, 0x002e, 0x001e, 0x000e, 0x00be,
+	0x0005, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066, 0x0056, 0x0046,
+	0x0026, 0x0126, 0x2091, 0x8000, 0x2740, 0x2029, 0x19fa, 0x252c,
+	0x2021, 0x1a00, 0x2424, 0x2061, 0x1cd0, 0x2071, 0x1800, 0x764c,
+	0x706c, 0x81ff, 0x0150, 0x0006, 0x9186, 0x1ab0, 0x000e, 0x0128,
+	0x8001, 0x9602, 0x1a04, 0xdd83, 0x0018, 0x9606, 0x0904, 0xdd83,
+	0x080c, 0x8544, 0x0904, 0xdd7a, 0x2100, 0x9c06, 0x0904, 0xdd7a,
+	0x080c, 0xdfe5, 0x1904, 0xdd7a, 0x080c, 0xe383, 0x0904, 0xdd7a,
+	0x080c, 0xdfd5, 0x0904, 0xdd7a, 0x6720, 0x9786, 0x0001, 0x1148,
+	0x080c, 0x30e3, 0x0904, 0xddc2, 0x6004, 0x9086, 0x0000, 0x1904,
+	0xddc2, 0x9786, 0x0004, 0x0904, 0xddc2, 0x9786, 0x0007, 0x05d0,
+	0x2500, 0x9c06, 0x05b8, 0x2400, 0x9c06, 0x05a0, 0x88ff, 0x0118,
+	0x6054, 0x9906, 0x1578, 0x0096, 0x6000, 0x9086, 0x0004, 0x1120,
+	0x0016, 0x080c, 0x1931, 0x001e, 0x9786, 0x000a, 0x0148, 0x080c,
+	0xc7d0, 0x1130, 0x080c, 0xb313, 0x009e, 0x080c, 0xa99c, 0x00d0,
+	0x6014, 0x2048, 0x080c, 0xc5d1, 0x0190, 0x9786, 0x0003, 0x1528,
+	0xa867, 0x0103, 0xab7a, 0xa877, 0x0000, 0x080c, 0xe300, 0x0016,
+	0x080c, 0xc8af, 0x080c, 0x68db, 0x001e, 0x080c, 0xc7b3, 0x009e,
+	0x080c, 0xa99c, 0x9ce0, 0x0018, 0x2001, 0x1818, 0x2004, 0x9c02,
+	0x1210, 0x0804, 0xdd05, 0x012e, 0x002e, 0x004e, 0x005e, 0x006e,
+	0x007e, 0x008e, 0x00ce, 0x00ee, 0x0005, 0x9786, 0x0006, 0x1150,
+	0x9386, 0x0005, 0x0128, 0x080c, 0xe300, 0x080c, 0xdf4c, 0x08f8,
+	0x009e, 0x0c00, 0x9786, 0x0009, 0x11f8, 0x6000, 0x9086, 0x0004,
+	0x01c0, 0x6000, 0x9086, 0x0003, 0x11a0, 0x080c, 0x91dc, 0x0096,
+	0x6114, 0x2148, 0x080c, 0xc5d1, 0x0118, 0x6010, 0x080c, 0x68e7,
+	0x009e, 0x00c6, 0x080c, 0xa96b, 0x00ce, 0x0036, 0x080c, 0x9362,
+	0x003e, 0x009e, 0x0804, 0xdd7a, 0x9786, 0x000a, 0x0904, 0xdd6a,
+	0x0804, 0xdd68, 0x81ff, 0x0904, 0xdd7a, 0x9180, 0x0001, 0x2004,
+	0x9086, 0x0018, 0x0138, 0x9180, 0x0001, 0x2004, 0x9086, 0x002d,
+	0x1904, 0xdd7a, 0x6000, 0x9086, 0x0002, 0x1904, 0xdd7a, 0x080c,
+	0xc7bf, 0x0138, 0x080c, 0xc7d0, 0x1904, 0xdd7a, 0x080c, 0xb313,
+	0x0038, 0x080c, 0x2fbd, 0x080c, 0xc7d0, 0x1110, 0x080c, 0xb313,
+	0x080c, 0xa99c, 0x0804, 0xdd7a, 0xa864, 0x9084, 0x00ff, 0x9086,
+	0x0039, 0x0005, 0x00c6, 0x00e6, 0x0016, 0x2c08, 0x2170, 0x9006,
+	0x080c, 0xdf73, 0x001e, 0x0120, 0x6020, 0x9084, 0x000f, 0x001b,
+	0x00ee, 0x00ce, 0x0005, 0xde11, 0xde11, 0xde11, 0xde11, 0xde11,
+	0xde11, 0xde13, 0xde11, 0xde11, 0xde11, 0xde11, 0xa99c, 0xa99c,
+	0xde11, 0x9006, 0x0005, 0x0036, 0x0046, 0x0016, 0x7010, 0x00b6,
+	0x2058, 0xbca0, 0x00be, 0x2c00, 0x2009, 0x0020, 0x080c, 0xdfa9,
+	0x001e, 0x004e, 0x2019, 0x0002, 0x080c, 0xdb41, 0x003e, 0x9085,
+	0x0001, 0x0005, 0x0096, 0x080c, 0xc5d1, 0x0140, 0x6014, 0x904d,
+	0x080c, 0xc22b, 0x687b, 0x0005, 0x080c, 0x68e7, 0x009e, 0x080c,
+	0xa99c, 0x9085, 0x0001, 0x0005, 0x2001, 0x0001, 0x080c, 0x61b0,
+	0x0156, 0x0016, 0x0026, 0x0036, 0x20a9, 0x0004, 0x2019, 0x1805,
+	0x2011, 0x0276, 0x080c, 0xb8e2, 0x003e, 0x002e, 0x001e, 0x015e,
+	0x9005, 0x0005, 0x00f6, 0x00e6, 0x00c6, 0x0086, 0x0076, 0x0066,
+	0x00b6, 0x0126, 0x2091, 0x8000, 0x2740, 0x2061, 0x1cd0, 0x2079,
+	0x0001, 0x8fff, 0x0904, 0xdeac, 0x2071, 0x1800, 0x764c, 0x706c,
+	0x8001, 0x9602, 0x1a04, 0xdeac, 0x88ff, 0x0120, 0x2800, 0x9c06,
+	0x1590, 0x2078, 0x080c, 0xdfd5, 0x0570, 0x2400, 0x9c06, 0x0558,
+	0x6720, 0x9786, 0x0006, 0x1538, 0x9786, 0x0007, 0x0520, 0x88ff,
+	0x1140, 0x6010, 0x9b06, 0x11f8, 0x85ff, 0x0118, 0x6054, 0x9106,
+	0x11d0, 0x0096, 0x601c, 0xd084, 0x0140, 0x080c, 0xe203, 0x080c,
+	0xccc2, 0x080c, 0x1931, 0x6023, 0x0007, 0x6014, 0x2048, 0x080c,
+	0xc5d1, 0x0120, 0x0046, 0x080c, 0xdf4c, 0x004e, 0x009e, 0x080c,
+	0xa99c, 0x88ff, 0x1198, 0x9ce0, 0x0018, 0x2001, 0x1818, 0x2004,
+	0x9c02, 0x1210, 0x0804, 0xde61, 0x9006, 0x012e, 0x00be, 0x006e,
+	0x007e, 0x008e, 0x00ce, 0x00ee, 0x00fe, 0x0005, 0x98c5, 0x0001,
+	0x0ca0, 0x00b6, 0x0076, 0x0056, 0x0086, 0x9046, 0x2029, 0x0001,
+	0x2c20, 0x2019, 0x0002, 0x6210, 0x2258, 0x0096, 0x904e, 0x080c,
+	0xa1b9, 0x009e, 0x008e, 0x903e, 0x080c, 0xa264, 0x080c, 0xde52,
+	0x005e, 0x007e, 0x00be, 0x0005, 0x00b6, 0x0046, 0x0056, 0x0076,
+	0x00c6, 0x0156, 0x2c20, 0x2128, 0x20a9, 0x007f, 0x900e, 0x0016,
+	0x0036, 0x080c, 0x6274, 0x1190, 0x0056, 0x0086, 0x9046, 0x2508,
+	0x2029, 0x0001, 0x0096, 0x904e, 0x080c, 0xa1b9, 0x009e, 0x008e,
+	0x903e, 0x080c, 0xa264, 0x080c, 0xde52, 0x005e, 0x003e, 0x001e,
+	0x8108, 0x1f04, 0xdedf, 0x015e, 0x00ce, 0x007e, 0x005e, 0x004e,
+	0x00be, 0x0005, 0x00b6, 0x0076, 0x0056, 0x6210, 0x2258, 0x0086,
+	0x9046, 0x2029, 0x0001, 0x2019, 0x0048, 0x0096, 0x904e, 0x080c,
+	0xa1b9, 0x009e, 0x008e, 0x903e, 0x080c, 0xa264, 0x2c20, 0x080c,
+	0xde52, 0x005e, 0x007e, 0x00be, 0x0005, 0x00b6, 0x0046, 0x0056,
+	0x0076, 0x00c6, 0x0156, 0x2c20, 0x20a9, 0x007f, 0x900e, 0x0016,
+	0x0036, 0x080c, 0x6274, 0x11a0, 0x0086, 0x9046, 0x2828, 0x0046,
+	0x2021, 0x0001, 0x080c, 0xe1e7, 0x004e, 0x0096, 0x904e, 0x080c,
+	0xa1b9, 0x009e, 0x008e, 0x903e, 0x080c, 0xa264, 0x080c, 0xde52,
+	0x003e, 0x001e, 0x8108, 0x1f04, 0xdf27, 0x015e, 0x00ce, 0x007e,
+	0x005e, 0x004e, 0x00be, 0x0005, 0x0016, 0x00f6, 0x080c, 0xc5cf,
+	0x0198, 0xa864, 0x9084, 0x00ff, 0x9086, 0x0046, 0x0180, 0xa800,
+	0x907d, 0x0138, 0xa803, 0x0000, 0xab82, 0x080c, 0x68e7, 0x2f48,
+	0x0cb0, 0xab82, 0x080c, 0x68e7, 0x00fe, 0x001e, 0x0005, 0xa800,
+	0x907d, 0x0130, 0xa803, 0x0000, 0x080c, 0x68e7, 0x2f48, 0x0cb8,
+	0x080c, 0x68e7, 0x0c88, 0x00e6, 0x0046, 0x0036, 0x2061, 0x1cd0,
+	0x9005, 0x1138, 0x2071, 0x1800, 0x744c, 0x706c, 0x8001, 0x9402,
+	0x12f8, 0x2100, 0x9c06, 0x0188, 0x6000, 0x9086, 0x0000, 0x0168,
+	0x6008, 0x9206, 0x1150, 0x6320, 0x9386, 0x0009, 0x01b0, 0x6010,
+	0x91a0, 0x0004, 0x2424, 0x9406, 0x0140, 0x9ce0, 0x0018, 0x2001,
+	0x1818, 0x2004, 0x9c02, 0x1220, 0x0c20, 0x9085, 0x0001, 0x0008,
+	0x9006, 0x003e, 0x004e, 0x00ee, 0x0005, 0x631c, 0xd3c4, 0x1d68,
+	0x0c30, 0x0096, 0x0006, 0x080c, 0x0fcd, 0x000e, 0x090c, 0x0db8,
+	0xa867, 0x010d, 0xa88e, 0x0026, 0x2010, 0x080c, 0xc5bf, 0x2001,
+	0x0000, 0x0120, 0x2200, 0x9080, 0x0015, 0x2004, 0x002e, 0xa87a,
+	0xa986, 0xac76, 0xa87f, 0x0000, 0x2001, 0x1998, 0x2004, 0xa882,
+	0x9006, 0xa8e2, 0xa802, 0xa86a, 0xa88a, 0x0126, 0x2091, 0x8000,
+	0x080c, 0x68e7, 0x012e, 0x009e, 0x0005, 0x6700, 0x9786, 0x0000,
+	0x0158, 0x9786, 0x0001, 0x0140, 0x9786, 0x000a, 0x0128, 0x9786,
+	0x0009, 0x0110, 0x9085, 0x0001, 0x0005, 0x00e6, 0x6010, 0x9075,
+	0x0138, 0x00b6, 0x2058, 0xb8a0, 0x00be, 0x9206, 0x00ee, 0x0005,
+	0x9085, 0x0001, 0x0cd8, 0x0016, 0x6004, 0x908e, 0x001e, 0x11a0,
+	0x8007, 0x6134, 0x918c, 0x00ff, 0x9105, 0x6036, 0x6007, 0x0085,
+	0x6003, 0x000b, 0x6023, 0x0005, 0x2001, 0x1991, 0x2004, 0x601a,
+	0x080c, 0x8c97, 0x080c, 0x922b, 0x001e, 0x0005, 0xa001, 0xa001,
+	0x0005, 0x6024, 0xd0e4, 0x0158, 0xd0cc, 0x0118, 0x080c, 0xc8f3,
+	0x0030, 0x080c, 0xe203, 0x080c, 0x8292, 0x080c, 0xa96b, 0x0005,
+	0x9280, 0x0008, 0x2004, 0x9084, 0x000f, 0x0002, 0xe034, 0xe034,
+	0xe034, 0xe036, 0xe034, 0xe036, 0xe036, 0xe034, 0xe036, 0xe034,
+	0xe034, 0xe034, 0xe034, 0xe034, 0x9006, 0x0005, 0x9085, 0x0001,
+	0x0005, 0x9280, 0x0008, 0x2004, 0x9084, 0x000f, 0x0002, 0xe04d,
+	0xe04d, 0xe04d, 0xe04d, 0xe04d, 0xe04d, 0xe05a, 0xe04d, 0xe04d,
+	0xe04d, 0xe04d, 0xe04d, 0xe04d, 0xe04d, 0x6007, 0x003b, 0x602f,
+	0x0009, 0x6017, 0x2a00, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c,
+	0x922b, 0x0005, 0x0096, 0x00c6, 0x2260, 0x080c, 0xe203, 0x6043,
+	0x0000, 0x6024, 0xc0f4, 0xc0e4, 0x6026, 0x603b, 0x0000, 0x00ce,
+	0x00d6, 0x2268, 0x9186, 0x0007, 0x1904, 0xe0b4, 0x6814, 0x9005,
+	0x0138, 0x2048, 0xa87c, 0xd0fc, 0x1118, 0x00de, 0x009e, 0x08a8,
+	0x6007, 0x003a, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b,
+	0x00c6, 0x2d60, 0x6100, 0x9186, 0x0002, 0x1904, 0xe12c, 0x6014,
+	0x9005, 0x1138, 0x6000, 0x9086, 0x0007, 0x190c, 0x0db8, 0x0804,
+	0xe12c, 0x2048, 0x080c, 0xc5d1, 0x1130, 0x0028, 0x2048, 0xa800,
+	0x9005, 0x1de0, 0x2900, 0x2048, 0xa87c, 0x9084, 0x0003, 0x9086,
+	0x0002, 0x1170, 0xa87c, 0xc0dc, 0xc0f4, 0xa87e, 0xa880, 0xc0f4,
+	0xc0fc, 0xa882, 0x2009, 0x0043, 0x080c, 0xd99f, 0x0804, 0xe12c,
+	0x2009, 0x0041, 0x0804, 0xe126, 0x9186, 0x0005, 0x15a8, 0x6814,
+	0x2048, 0xa87c, 0xd0bc, 0x1120, 0x00de, 0x009e, 0x0804, 0xe04d,
+	0xd0b4, 0x0128, 0xd0fc, 0x090c, 0x0db8, 0x0804, 0xe06e, 0x6007,
+	0x003a, 0x6003, 0x0001, 0x080c, 0x8c97, 0x080c, 0x922b, 0x00c6,
+	0x2d60, 0x6100, 0x9186, 0x0002, 0x0120, 0x9186, 0x0004, 0x1904,
+	0xe12c, 0x6814, 0x2048, 0xa97c, 0xc1f4, 0xc1dc, 0xa97e, 0xa980,
+	0xc1f4, 0xc1fc, 0xc1bc, 0xa982, 0x00f6, 0x2c78, 0x080c, 0x1606,
+	0x00fe, 0x2009, 0x0042, 0x04d0, 0x0036, 0x080c, 0x0fcd, 0x090c,
+	0x0db8, 0xa867, 0x010d, 0x9006, 0xa802, 0xa86a, 0xa88a, 0x2d18,
+	0xab8e, 0xa887, 0x0045, 0x2c00, 0xa892, 0x6038, 0xa8a2, 0x2360,
+	0x6024, 0xc0dd, 0x6026, 0x6010, 0x00b6, 0x2058, 0xb8a0, 0x00be,
+	0x2004, 0x6354, 0xab7a, 0xa876, 0x9006, 0xa87e, 0xa882, 0xad9a,
+	0xae96, 0xa89f, 0x0001, 0x080c, 0x68e7, 0x2019, 0x0045, 0x6008,
+	0x2068, 0x080c, 0xdb41, 0x2d00, 0x600a, 0x6023, 0x0006, 0x6003,
+	0x0007, 0x901e, 0x631a, 0x6342, 0x003e, 0x0038, 0x6043, 0x0000,
+	0x6003, 0x0007, 0x080c, 0xd99f, 0x00ce, 0x00de, 0x009e, 0x0005,
+	0x9186, 0x0013, 0x1128, 0x6004, 0x9082, 0x0085, 0x2008, 0x00c2,
+	0x9186, 0x0027, 0x1178, 0x080c, 0x912c, 0x0036, 0x0096, 0x6014,
+	0x2048, 0x2019, 0x0004, 0x080c, 0xdf4c, 0x009e, 0x003e, 0x080c,
+	0x922b, 0x0005, 0x9186, 0x0014, 0x0d70, 0x080c, 0xaa01, 0x0005,
+	0xe15f, 0xe15d, 0xe15d, 0xe15d, 0xe15d, 0xe15d, 0xe15f, 0xe15d,
+	0xe15d, 0xe15d, 0xe15d, 0xe15d, 0xe15d, 0x080c, 0x0db8, 0x080c,
+	0x912c, 0x6003, 0x000c, 0x080c, 0x922b, 0x0005, 0x9182, 0x0092,
+	0x1220, 0x9182, 0x0085, 0x0208, 0x001a, 0x080c, 0xaa01, 0x0005,
+	0xe17d, 0xe17d, 0xe17d, 0xe17d, 0xe17f, 0xe19f, 0xe17d, 0xe17d,
+	0xe17d, 0xe17d, 0xe17d, 0xe17d, 0xe17d, 0x080c, 0x0db8, 0x00d6,
+	0x2c68, 0x080c, 0xa915, 0x01b0, 0x6003, 0x0001, 0x6007, 0x001e,
+	0x2009, 0x026e, 0x210c, 0x613a, 0x2009, 0x026f, 0x210c, 0x613e,
+	0x600b, 0xffff, 0x6910, 0x6112, 0x6023, 0x0004, 0x080c, 0x8c97,
+	0x080c, 0x922b, 0x2d60, 0x080c, 0xa96b, 0x00de, 0x0005, 0x080c,
+	0xa96b, 0x0005, 0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be,
+	0xd0ec, 0x00ee, 0x0005, 0x2009, 0x1873, 0x210c, 0xd1ec, 0x05b0,
+	0x6003, 0x0002, 0x6024, 0xc0e5, 0x6026, 0xd0cc, 0x0150, 0x2001,
+	0x1992, 0x2004, 0x6042, 0x2009, 0x1873, 0x210c, 0xd1f4, 0x1520,
+	0x00a0, 0x2009, 0x1873, 0x210c, 0xd1f4, 0x0128, 0x6024, 0xc0e4,
+	0x6026, 0x9006, 0x00d8, 0x2001, 0x1992, 0x200c, 0x2001, 0x1990,
+	0x2004, 0x9100, 0x9080, 0x000a, 0x6042, 0x6010, 0x00b6, 0x2058,
+	0xb8bc, 0x00be, 0x0008, 0x2104, 0x9005, 0x0118, 0x9088, 0x0003,
+	0x0cd0, 0x2c0a, 0x600f, 0x0000, 0x9085, 0x0001, 0x0005, 0x0016,
+	0x00c6, 0x00e6, 0x6154, 0xb8bc, 0x2060, 0x8cff, 0x0180, 0x84ff,
+	0x1118, 0x6054, 0x9106, 0x1138, 0x600c, 0x2072, 0x080c, 0x8292,
+	0x080c, 0xa96b, 0x0010, 0x9cf0, 0x0003, 0x2e64, 0x0c70, 0x00ee,
+	0x00ce, 0x001e, 0x0005, 0x00d6, 0x00b6, 0x6010, 0x2058, 0xb8bc,
+	0x2068, 0x9005, 0x0130, 0x9c06, 0x0110, 0x680c, 0x0cd0, 0x600c,
+	0x680e, 0x00be, 0x00de, 0x0005, 0x0026, 0x0036, 0x0156, 0x2011,
+	0x182a, 0x2204, 0x9084, 0x00ff, 0x2019, 0x026e, 0x2334, 0x9636,
+	0x1508, 0x8318, 0x2334, 0x2204, 0x9084, 0xff00, 0x9636, 0x11d0,
+	0x2011, 0x0270, 0x20a9, 0x0004, 0x6010, 0x0096, 0x2048, 0x2019,
+	0x000a, 0x080c, 0xb8f6, 0x009e, 0x1168, 0x2011, 0x0274, 0x20a9,
+	0x0004, 0x6010, 0x0096, 0x2048, 0x2019, 0x0006, 0x080c, 0xb8f6,
+	0x009e, 0x1100, 0x015e, 0x003e, 0x002e, 0x0005, 0x00e6, 0x2071,
+	0x1800, 0x080c, 0x5c3c, 0x080c, 0x2d72, 0x00ee, 0x0005, 0x0096,
+	0x0026, 0x080c, 0x0fcd, 0x090c, 0x0db8, 0xa85c, 0x9080, 0x001a,
+	0x20a0, 0x20a9, 0x000c, 0xa860, 0x20e8, 0x9006, 0x4004, 0x9186,
+	0x0046, 0x1118, 0xa867, 0x0136, 0x0038, 0xa867, 0x0138, 0x9186,
+	0x0041, 0x0110, 0xa87b, 0x0001, 0x7038, 0x9084, 0xff00, 0x7240,
+	0x9294, 0xff00, 0x8007, 0x9215, 0xaa9a, 0x9186, 0x0046, 0x1168,
+	0x7038, 0x9084, 0x00ff, 0x723c, 0x9294, 0xff00, 0x9215, 0xaa9e,
+	0x723c, 0x9294, 0x00ff, 0xaaa2, 0x0060, 0x7040, 0x9084, 0x00ff,
+	0x7244, 0x9294, 0xff00, 0x9215, 0xaa9e, 0x7244, 0x9294, 0x00ff,
+	0xaaa2, 0x9186, 0x0046, 0x1118, 0x9e90, 0x0012, 0x0010, 0x9e90,
+	0x001a, 0x2204, 0x8007, 0xa8a6, 0x8210, 0x2204, 0x8007, 0xa8aa,
+	0x8210, 0x2204, 0x8007, 0xa8ae, 0x8210, 0x2204, 0x8007, 0xa8b2,
+	0x8210, 0x9186, 0x0046, 0x11b8, 0x9e90, 0x0016, 0x2204, 0x8007,
+	0xa8b6, 0x8210, 0x2204, 0x8007, 0xa8ba, 0x8210, 0x2204, 0x8007,
+	0xa8be, 0x8210, 0x2204, 0x8007, 0xa8c2, 0x8210, 0x2011, 0x0205,
+	0x2013, 0x0001, 0x00b0, 0x9e90, 0x001e, 0x2204, 0x8007, 0xa8b6,
+	0x8210, 0x2204, 0x8007, 0xa8ba, 0x2011, 0x0205, 0x2013, 0x0001,
+	0x2011, 0x0260, 0x2204, 0x8007, 0xa8be, 0x8210, 0x2204, 0x8007,
+	0xa8c2, 0x9186, 0x0046, 0x1118, 0x2011, 0x0262, 0x0010, 0x2011,
+	0x026a, 0x0146, 0x01d6, 0x0036, 0x20a9, 0x0001, 0x2019, 0x0008,
+	0xa860, 0x20e8, 0xa85c, 0x9080, 0x0031, 0x20a0, 0x2204, 0x8007,
+	0x4004, 0x8210, 0x8319, 0x1dd0, 0x003e, 0x01ce, 0x013e, 0x2011,
+	0x0205, 0x2013, 0x0000, 0x002e, 0x080c, 0x68e7, 0x009e, 0x0005,
+	0x00e6, 0x6010, 0x00b6, 0x2058, 0xb800, 0x00be, 0xd0fc, 0x0108,
+	0x0011, 0x00ee, 0x0005, 0xa880, 0xc0e5, 0xa882, 0x0005, 0x00e6,
+	0x00c6, 0x0076, 0x0066, 0x0056, 0x0046, 0x0026, 0x0016, 0x0126,
+	0x2091, 0x8000, 0x2029, 0x19fa, 0x252c, 0x2021, 0x1a00, 0x2424,
+	0x2061, 0x1cd0, 0x2071, 0x1800, 0x764c, 0x706c, 0x9606, 0x0578,
+	0x6720, 0x9786, 0x0001, 0x0118, 0x9786, 0x0008, 0x1500, 0x2500,
+	0x9c06, 0x01e8, 0x2400, 0x9c06, 0x01d0, 0x080c, 0xdfd5, 0x01b8,
+	0x080c, 0xdfe5, 0x11a0, 0x6000, 0x9086, 0x0004, 0x1120, 0x0016,
+	0x080c, 0x1931, 0x001e, 0x080c, 0xc7bf, 0x1110, 0x080c, 0x2fbd,
+	0x080c, 0xc7d0, 0x1110, 0x080c, 0xb313, 0x080c, 0xa99c, 0x9ce0,
+	0x0018, 0x2001, 0x1818, 0x2004, 0x9c02, 0x1208, 0x0858, 0x012e,
+	0x001e, 0x002e, 0x004e, 0x005e, 0x006e, 0x007e, 0x00ce, 0x00ee,
+	0x0005, 0x2001, 0x180f, 0x2004, 0xd0dc, 0x0005, 0x0006, 0x2001,
+	0x1836, 0x2004, 0xd09c, 0x000e, 0x0005, 0x0006, 0x0036, 0x0046,
+	0x080c, 0xccaa, 0x0168, 0x2019, 0xffff, 0x9005, 0x0128, 0x6010,
+	0x00b6, 0x2058, 0xbba0, 0x00be, 0x2021, 0x0004, 0x080c, 0x4992,
+	0x004e, 0x003e, 0x000e, 0x6004, 0x9086, 0x0001, 0x1128, 0x080c,
+	0xa325, 0x080c, 0xa99c, 0x9006, 0x0005, 0x0126, 0x0006, 0x00e6,
+	0x0016, 0x2091, 0x8000, 0x2071, 0x1840, 0xd5a4, 0x0118, 0x7034,
+	0x8000, 0x7036, 0xd5b4, 0x0118, 0x7030, 0x8000, 0x7032, 0xd5ac,
+	0x0178, 0x2500, 0x9084, 0x0007, 0x908e, 0x0003, 0x0148, 0x908e,
+	0x0004, 0x0130, 0x908e, 0x0005, 0x0118, 0x2071, 0x184a, 0x0089,
+	0x001e, 0x00ee, 0x000e, 0x012e, 0x0005, 0x0126, 0x0006, 0x00e6,
+	0x2091, 0x8000, 0x2071, 0x1842, 0x0021, 0x00ee, 0x000e, 0x012e,
+	0x0005, 0x2e04, 0x8000, 0x2072, 0x1220, 0x8e70, 0x2e04, 0x8000,
+	0x2072, 0x0005, 0x00e6, 0x2071, 0x1840, 0x0c99, 0x00ee, 0x0005,
+	0x00e6, 0x2071, 0x1844, 0x0c69, 0x00ee, 0x0005, 0x0126, 0x0006,
+	0x00e6, 0x2091, 0x8000, 0x2071, 0x1840, 0x7044, 0x8000, 0x7046,
+	0x00ee, 0x000e, 0x012e, 0x0005, 0x0002, 0x0003, 0x06ce, 0x0000,
+	0x8064, 0x0008, 0x0010, 0x0000, 0x8066, 0x0000, 0x0101, 0x0008,
+	0x4406, 0x000b, 0x8060, 0x0000, 0x0400, 0x0000, 0x580c, 0x0003,
+	0x794e, 0x0003, 0x50a3, 0x000b, 0x4c09, 0x0003, 0xbac0, 0x0009,
+	0x0082, 0x0008, 0x0c09, 0x000b, 0x15fe, 0x0008, 0x3409, 0x0003,
+	0x808c, 0x0008, 0x0001, 0x0000, 0x0000, 0x0007, 0x4028, 0x0000,
+	0x4047, 0x000a, 0x808c, 0x0008, 0x0002, 0x0000, 0x081c, 0x000b,
+	0x4022, 0x0000, 0x0022, 0x000b, 0x4122, 0x0008, 0x94c0, 0x0009,
+	0xff00, 0x0008, 0xffe0, 0x0009, 0x0500, 0x0008, 0x0a2f, 0x0003,
+	0x4447, 0x0002, 0x0e2c, 0x000b, 0x0bfe, 0x0008, 0x11a0, 0x0001,
+	0x120e, 0x0003, 0x0ca0, 0x0001, 0x120e, 0x0003, 0x9180, 0x0001,
+	0x0004, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008,
+	0x8066, 0x0000, 0x0009, 0x0008, 0x4430, 0x000b, 0x808c, 0x0008,
+	0x0000, 0x0008, 0x0060, 0x0008, 0x8062, 0x0008, 0x0004, 0x0000,
+	0x8066, 0x0000, 0x0411, 0x0000, 0x4438, 0x0003, 0x03fe, 0x0000,
+	0x43e0, 0x0001, 0x0e0b, 0x000b, 0xc2c0, 0x0009, 0x00ff, 0x0008,
+	0x02e0, 0x0001, 0x0e0b, 0x000b, 0x9180, 0x0001, 0x0005, 0x0008,
+	0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000,
+	0x0019, 0x0000, 0x4447, 0x000b, 0x0240, 0x0002, 0x0a08, 0x0003,
+	0x00fe, 0x0000, 0x320b, 0x000b, 0x0248, 0x000a, 0x0856, 0x0003,
+	0x9180, 0x0001, 0x0006, 0x0008, 0x7f62, 0x0008, 0x8002, 0x0008,
+	0x0003, 0x0008, 0x8066, 0x0000, 0x020a, 0x0000, 0x4455, 0x000b,
+	0x112a, 0x0000, 0x002e, 0x0008, 0x022c, 0x0008, 0x3a44, 0x0002,
+	0x0c09, 0x000b, 0x808c, 0x0008, 0x0002, 0x0000, 0x1760, 0x0008,
+	0x8062, 0x0008, 0x000f, 0x0008, 0x8066, 0x0000, 0x0011, 0x0008,
+	0x4462, 0x0003, 0x01fe, 0x0008, 0x42e0, 0x0009, 0x0dfc, 0x0003,
+	0x00fe, 0x0000, 0x43e0, 0x0001, 0x0dfc, 0x0003, 0x1734, 0x0000,
+	0x1530, 0x0000, 0x1632, 0x0008, 0x0d2a, 0x0008, 0x9880, 0x0001,
+	0x0010, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008,
+	0x8066, 0x0000, 0x1e0a, 0x0008, 0x4474, 0x000b, 0x808a, 0x0008,
+	0x0003, 0x0008, 0x1a60, 0x0000, 0x8062, 0x0008, 0x0002, 0x0000,
+	0x587a, 0x000b, 0x8066, 0x0000, 0x3679, 0x0000, 0x447d, 0x000b,
+	0x587e, 0x0003, 0x8054, 0x0008, 0x0011, 0x0008, 0x8074, 0x0000,
+	0x1010, 0x0008, 0x1efe, 0x0000, 0x3009, 0x000b, 0x0087, 0x0004,
+	0x0009, 0x000b, 0x1c60, 0x0000, 0x1b62, 0x0000, 0x8066, 0x0000,
+	0x0231, 0x0008, 0x448b, 0x000b, 0x588c, 0x000b, 0x0140, 0x0008,
+	0x0242, 0x0000, 0x1f43, 0x0002, 0x0c96, 0x000b, 0x0d44, 0x0000,
+	0x0d46, 0x0008, 0x0348, 0x0008, 0x044a, 0x0008, 0x009a, 0x000b,
+	0x0344, 0x0008, 0x0446, 0x0008, 0x0548, 0x0008, 0x064a, 0x0000,
+	0x1948, 0x000a, 0x089d, 0x000b, 0x0d4a, 0x0008, 0x589d, 0x000b,
+	0x8054, 0x0008, 0x0001, 0x0000, 0x8074, 0x0000, 0x2020, 0x0008,
+	0x4000, 0x000f, 0x3a40, 0x000a, 0x0c0c, 0x000b, 0x2b24, 0x0008,
+	0x2b24, 0x0008, 0x58a7, 0x000b, 0x8054, 0x0008, 0x0002, 0x0000,
+	0x1242, 0x0002, 0x08eb, 0x0003, 0x3a45, 0x000a, 0x08dc, 0x000b,
+	0x1e10, 0x000a, 0x7f3c, 0x0000, 0x08d9, 0x000b, 0x1d00, 0x0002,
+	0x7f3a, 0x0000, 0x0d60, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000,
+	0x0009, 0x0008, 0x44b7, 0x000b, 0x00fe, 0x0000, 0x34d6, 0x000b,
+	0x1c60, 0x0000, 0x8062, 0x0008, 0x0001, 0x0000, 0x8066, 0x0000,
+	0x0009, 0x0008, 0x44bf, 0x0003, 0x00fe, 0x0000, 0x31e5, 0x000b,
+	0x0038, 0x0000, 0x0060, 0x0008, 0x8062, 0x0008, 0x0019, 0x0000,
+	0x8066, 0x0000, 0x0009, 0x0008, 0x44c8, 0x0003, 0x80c0, 0x0009,
+	0x00ff, 0x0008, 0x7f3e, 0x0008, 0x0d60, 0x0000, 0x0efe, 0x0008,
+	0x1f80, 0x0001, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0009, 0x0008,
+	0x44d2, 0x000b, 0x003a, 0x0008, 0x1dfe, 0x0000, 0x00b3, 0x0003,
+	0x0036, 0x0008, 0x0087, 0x0004, 0x00eb, 0x000b, 0x8074, 0x0000,
+	0x2000, 0x0000, 0x00eb, 0x000b, 0x3a44, 0x0002, 0x0a11, 0x000b,
+	0x8074, 0x0000, 0x1000, 0x0000, 0x2d0e, 0x0000, 0x2d0e, 0x0000,
+	0x35e5, 0x0003, 0x26fe, 0x0008, 0x26fe, 0x0008, 0x2700, 0x0008,
+	0x2700, 0x0008, 0x00d0, 0x0009, 0x0cf9, 0x000b, 0x8074, 0x0000,
+	0x4040, 0x0008, 0x58eb, 0x0003, 0x50a3, 0x000b, 0x3a46, 0x000a,
+	0x0cf9, 0x000b, 0x3a47, 0x0002, 0x08f6, 0x0003, 0x8054, 0x0008,
+	0x0004, 0x0000, 0x8074, 0x0000, 0x8000, 0x0000, 0x0141, 0x0003,
+	0x92c0, 0x0009, 0x0f88, 0x0008, 0x0809, 0x0003, 0x1a60, 0x0000,
+	0x8062, 0x0008, 0x0002, 0x0000, 0x8066, 0x0000, 0x362a, 0x0000,
+	0x44fe, 0x0003, 0x2000, 0x0000, 0x2000, 0x0000, 0x2102, 0x0000,
+	0x2102, 0x0000, 0x2204, 0x0000, 0x2204, 0x0000, 0x2306, 0x0000,
+	0x2306, 0x0000, 0x2408, 0x0000, 0x2408, 0x0000, 0x250a, 0x0000,
+	0x250a, 0x0000, 0x260c, 0x0000, 0x260c, 0x0000, 0x270e, 0x0000,
+	0x270e, 0x0000, 0x2810, 0x0000, 0x2810, 0x0000, 0x2912, 0x0000,
+	0x2912, 0x0000, 0x1a60, 0x0000, 0x8062, 0x0008, 0x0007, 0x0000,
+	0x8066, 0x0000, 0x0052, 0x0000, 0x4518, 0x0003, 0x92c0, 0x0009,
+	0x0780, 0x0008, 0x0df6, 0x0003, 0x124b, 0x0002, 0x0921, 0x000b,
+	0x2e4d, 0x0002, 0x2e4d, 0x0002, 0x09e5, 0x0003, 0x3a46, 0x000a,
+	0x0d31, 0x000b, 0x5923, 0x0003, 0x8054, 0x0008, 0x0004, 0x0000,
+	0x1243, 0x000a, 0x093f, 0x000b, 0x8010, 0x0008, 0x000d, 0x0000,
+	0x01c3, 0x000c, 0x1948, 0x000a, 0x092e, 0x000b, 0x01b8, 0x000c,
+	0x1810, 0x0000, 0x01c3, 0x000c, 0x013f, 0x0003, 0x1948, 0x000a,
+	0x0935, 0x000b, 0x1243, 0x000a, 0x09e5, 0x0003, 0x194d, 0x000a,
+	0x0939, 0x000b, 0x1243, 0x000a, 0x09ec, 0x0003, 0x5939, 0x000b,
+	0x8054, 0x0008, 0x0004, 0x0000, 0x01b8, 0x000c, 0x1810, 0x0000,
+	0x01c3, 0x000c, 0x8074, 0x0000, 0xf000, 0x0008, 0x3a42, 0x0002,
+	0x0d47, 0x0003, 0x15fe, 0x0008, 0x345b, 0x000b, 0x0d30, 0x0000,
+	0x0009, 0x000b, 0x0d30, 0x0000, 0x8074, 0x0000, 0x0501, 0x0000,
+	0x8010, 0x0008, 0x000c, 0x0008, 0x01c3, 0x000c, 0x0009, 0x000b,
+	0xbbe0, 0x0009, 0x0030, 0x0008, 0x0d5e, 0x000b, 0x18fe, 0x0000,
+	0x3ce0, 0x0009, 0x095b, 0x0003, 0x15fe, 0x0008, 0x3ce0, 0x0009,
+	0x095b, 0x0003, 0x01b3, 0x0004, 0x8076, 0x0008, 0x0040, 0x0000,
+	0x01b0, 0x000b, 0x8076, 0x0008, 0x0041, 0x0008, 0x01b0, 0x000b,
+	0xbbe0, 0x0009, 0x0032, 0x0000, 0x0d63, 0x0003, 0x3c1e, 0x0008,
+	0x01b0, 0x000b, 0xbbe0, 0x0009, 0x003b, 0x0000, 0x0d68, 0x000b,
+	0x3c20, 0x0000, 0x01b0, 0x000b, 0xbbe0, 0x0009, 0x0035, 0x0008,
+	0x0d6e, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000, 0x031e, 0x000b,
+	0xbbe0, 0x0009, 0x0036, 0x0008, 0x0a41, 0x000b, 0xbbe0, 0x0009,
+	0x0037, 0x0000, 0x0d8d, 0x0003, 0x18fe, 0x0000, 0x3ce0, 0x0009,
+	0x0d5b, 0x000b, 0x1a60, 0x0000, 0x8062, 0x0008, 0x000d, 0x0000,
+	0x2604, 0x0008, 0x2604, 0x0008, 0x2706, 0x0008, 0x2706, 0x0008,
+	0x2808, 0x0000, 0x2808, 0x0000, 0x290a, 0x0000, 0x290a, 0x0000,
+	0x8066, 0x0000, 0x0422, 0x0000, 0x4584, 0x0003, 0x01b8, 0x000c,
+	0x8054, 0x0008, 0x0004, 0x0000, 0x8074, 0x0000, 0xf000, 0x0008,
+	0x8072, 0x0000, 0x8000, 0x0000, 0x0141, 0x0003, 0xbbe0, 0x0009,
+	0x0038, 0x0000, 0x0d9f, 0x0003, 0x18fe, 0x0000, 0x3ce0, 0x0009,
+	0x099c, 0x000b, 0x15fe, 0x0008, 0x3ce0, 0x0009, 0x0d57, 0x000b,
+	0x01b3, 0x0004, 0x8076, 0x0008, 0x0040, 0x0000, 0x8072, 0x0000,
+	0x8000, 0x0000, 0x0208, 0x000b, 0x8076, 0x0008, 0x0042, 0x0008,
+	0x01b0, 0x000b, 0xbbe0, 0x0009, 0x0016, 0x0000, 0x0db0, 0x000b,
+	0x3a41, 0x0002, 0x0da6, 0x0003, 0x8074, 0x0000, 0x0a0a, 0x0008,
+	0x3a44, 0x0002, 0x0c0b, 0x0003, 0x3a43, 0x000a, 0x09ac, 0x000b,
+	0x8074, 0x0000, 0x0a00, 0x0008, 0x8072, 0x0000, 0x8000, 0x0000,
+	0x8000, 0x000f, 0x0009, 0x000b, 0x8072, 0x0000, 0x8000, 0x0000,
+	0x0009, 0x000b, 0x3d30, 0x000a, 0x7f00, 0x0000, 0xbc80, 0x0001,
+	0x0007, 0x0000, 0x01bc, 0x000b, 0x1930, 0x000a, 0x7f00, 0x0000,
+	0x9880, 0x0001, 0x0007, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000,
+	0x7f62, 0x0008, 0x8066, 0x0000, 0x000a, 0x0008, 0x45c1, 0x000b,
+	0x4000, 0x000f, 0x21c6, 0x000b, 0x0870, 0x0008, 0x4000, 0x000f,
+	0x7dc3, 0x000b, 0xbbe0, 0x0009, 0x0030, 0x0008, 0x0dc3, 0x0003,
+	0x18fe, 0x0000, 0x3ce0, 0x0009, 0x09d4, 0x000b, 0x15fe, 0x0008,
+	0x3ce0, 0x0009, 0x09d4, 0x000b, 0x01b3, 0x0004, 0x8076, 0x0008,
+	0x0040, 0x0000, 0x01d6, 0x000b, 0x8076, 0x0008, 0x0041, 0x0008,
+	0x8072, 0x0000, 0x8000, 0x0000, 0x01c3, 0x0003, 0xbac0, 0x0009,
+	0x0090, 0x0008, 0x09df, 0x0003, 0x8074, 0x0000, 0x0706, 0x0000,
+	0x01e1, 0x0003, 0x8074, 0x0000, 0x0703, 0x0000, 0x4000, 0x000f,
+	0x8010, 0x0008, 0x0008, 0x0000, 0x0216, 0x000b, 0x01b8, 0x000c,
+	0x8010, 0x0008, 0x0007, 0x0000, 0x01c3, 0x000c, 0x1810, 0x0000,
+	0x01c3, 0x000c, 0x0220, 0x000b, 0x01b8, 0x000c, 0x8010, 0x0008,
+	0x001b, 0x0008, 0x01c3, 0x000c, 0x1810, 0x0000, 0x01c3, 0x000c,
+	0x8074, 0x0000, 0xf080, 0x0000, 0x0d30, 0x0000, 0x0009, 0x000b,
+	0x8010, 0x0008, 0x0009, 0x0008, 0x0216, 0x000b, 0x8010, 0x0008,
+	0x0005, 0x0008, 0x0216, 0x000b, 0x1648, 0x000a, 0x0c69, 0x000b,
+	0x808c, 0x0008, 0x0001, 0x0000, 0x8010, 0x0008, 0x0004, 0x0000,
+	0x4143, 0x000a, 0x0869, 0x0003, 0x3a44, 0x0002, 0x0c09, 0x000b,
+	0x0d2a, 0x0008, 0x0216, 0x000b, 0x8010, 0x0008, 0x0003, 0x0008,
+	0x0218, 0x0003, 0x8010, 0x0008, 0x000b, 0x0000, 0x0218, 0x0003,
+	0x8010, 0x0008, 0x0002, 0x0000, 0x0218, 0x0003, 0x3a47, 0x0002,
+	0x0ceb, 0x000b, 0x8010, 0x0008, 0x0006, 0x0008, 0x0218, 0x0003,
+	0x8074, 0x0000, 0xf000, 0x0008, 0x01c3, 0x000c, 0x01d9, 0x0004,
+	0x3a40, 0x000a, 0x0809, 0x0003, 0x8010, 0x0008, 0x000c, 0x0008,
+	0x01c3, 0x000c, 0x0009, 0x000b, 0x8074, 0x0000, 0xf080, 0x0000,
+	0x0d30, 0x0000, 0x2e4d, 0x0002, 0x2e4d, 0x0002, 0x0a29, 0x0003,
+	0x8054, 0x0008, 0x0019, 0x0000, 0x0009, 0x000b, 0x8054, 0x0008,
+	0x0009, 0x0008, 0x0009, 0x000b, 0x3a44, 0x0002, 0x0c09, 0x000b,
+	0x020b, 0x000b, 0x808c, 0x0008, 0x0000, 0x0008, 0x4447, 0x0002,
+	0x0a55, 0x000b, 0xc0c0, 0x0001, 0x00ff, 0x0008, 0xffe0, 0x0009,
+	0x00ff, 0x0008, 0x0e2c, 0x000b, 0xc1e0, 0x0001, 0xffff, 0x0008,
+	0x0e2c, 0x000b, 0x8010, 0x0008, 0x0013, 0x0000, 0x01c3, 0x000c,
+	0x8074, 0x0000, 0x0202, 0x0008, 0x0009, 0x000b, 0x3a40, 0x000a,
+	0x0e52, 0x000b, 0x8074, 0x0000, 0x0200, 0x0000, 0x3d00, 0x0000,
+	0x3cfe, 0x0000, 0x8072, 0x0000, 0x8000, 0x0000, 0x43e0, 0x0001,
+	0x0e50, 0x0003, 0x42fe, 0x0000, 0xffc0, 0x0001, 0x00ff, 0x0008,
+	0x00e0, 0x0009, 0x0a2c, 0x0003, 0x0d08, 0x0008, 0x02a5, 0x0003,
+	0x8072, 0x0000, 0x8000, 0x0000, 0x0009, 0x000b, 0x0327, 0x0004,
+	0x808c, 0x0008, 0x0001, 0x0000, 0x04fe, 0x0008, 0x330a, 0x000b,
+	0x0460, 0x0000, 0x8062, 0x0008, 0x0001, 0x0000, 0x8066, 0x0000,
+	0x0009, 0x0008, 0x465f, 0x0003, 0x0004, 0x0000, 0x80c0, 0x0009,
+	0x00ff, 0x0008, 0x7f00, 0x0000, 0x80e0, 0x0001, 0x0004, 0x0000,
+	0x0a79, 0x0003, 0x80e0, 0x0001, 0x0005, 0x0008, 0x0a79, 0x0003,
+	0x80e0, 0x0001, 0x0006, 0x0008, 0x0a79, 0x0003, 0x82c0, 0x0001,
+	0xff00, 0x0008, 0x7f04, 0x0008, 0x82e0, 0x0009, 0x0600, 0x0008,
+	0x0a79, 0x0003, 0x82e0, 0x0009, 0x0500, 0x0008, 0x0a79, 0x0003,
+	0x82e0, 0x0009, 0x0400, 0x0000, 0x0f0a, 0x000b, 0xc4c0, 0x0009,
+	0x7000, 0x0000, 0xffe0, 0x0009, 0x1000, 0x0000, 0x0aa5, 0x000b,
+	0x0318, 0x0004, 0x3941, 0x0002, 0x0a84, 0x000b, 0x8072, 0x0000,
+	0x0400, 0x0000, 0x0009, 0x000b, 0x0460, 0x0000, 0x80fe, 0x0008,
+	0x002b, 0x0008, 0x7f62, 0x0008, 0x8066, 0x0000, 0x2209, 0x0008,
+	0x468a, 0x000b, 0x11fe, 0x0000, 0x32a0, 0x0003, 0x9180, 0x0001,
+	0x0002, 0x0000, 0x8060, 0x0000, 0x0400, 0x0000, 0x7f62, 0x0008,
+	0x8066, 0x0000, 0x0609, 0x0008, 0x4694, 0x000b, 0x42fe, 0x0000,
+	0xffc0, 0x0001, 0xff00, 0x0008, 0x03e0, 0x0009, 0x0e9d, 0x000b,
+	0x8072, 0x0000, 0x0400, 0x0000, 0x0040, 0x0003, 0x9180, 0x0001,
+	0x0003, 0x0008, 0x0287, 0x0003, 0x8072, 0x0000, 0x0400, 0x0000,
+	0x8010, 0x0008, 0x0010, 0x0000, 0x02fd, 0x000b, 0x0318, 0x0004,
+	0x3941, 0x0002, 0x0aab, 0x0003, 0x8072, 0x0000, 0x0400, 0x0000,
+	0x0009, 0x000b, 0x02e2, 0x000c, 0x11fe, 0x0000, 0x0eb3, 0x000b,
+	0x8072, 0x0000, 0x0400, 0x0000, 0x8010, 0x0008, 0x000e, 0x0000,
+	0x02fd, 0x000b, 0x8060, 0x0000, 0x0400, 0x0000, 0x04fe, 0x0008,
+	0x0ec8, 0x000b, 0x808c, 0x0008, 0x0000, 0x0008, 0x9180, 0x0001,
+	0x0005, 0x0008, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0009, 0x0008,
+	0x46be, 0x0003, 0x0060, 0x0008, 0x8062, 0x0008, 0x001b, 0x0008,
+	0x4304, 0x0008, 0x4206, 0x0008, 0x8066, 0x0000, 0x0412, 0x0000,
+	0x46c6, 0x0003, 0x02df, 0x000b, 0x808c, 0x0008, 0x0001, 0x0000,
+	0x0460, 0x0000, 0x8062, 0x0008, 0x002b, 0x0008, 0x8066, 0x0000,
+	0x0609, 0x0008, 0x46cf, 0x0003, 0x8066, 0x0000, 0x220a, 0x0008,
+	0x46d2, 0x0003, 0x42fe, 0x0000, 0xffc0, 0x0001, 0xff00, 0x0008,
+	0x7f04, 0x0008, 0x8060, 0x0000, 0x0400, 0x0000, 0x9180, 0x0001,
+	0x0002, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x041a, 0x0008,
+	0x46de, 0x0003, 0x8072, 0x0000, 0x0400, 0x0000, 0x0040, 0x0003,
+	0x8060, 0x0000, 0x0400, 0x0000, 0x1362, 0x0008, 0x8066, 0x0000,
+	0x0411, 0x0000, 0x46e7, 0x0003, 0x02fe, 0x0008, 0x03e0, 0x0009,
+	0x0eed, 0x0003, 0x0d22, 0x0000, 0x4000, 0x000f, 0x8280, 0x0009,
+	0x0002, 0x0000, 0x1380, 0x0001, 0x7f62, 0x0008, 0x8066, 0x0000,
+	0x2209, 0x0008, 0x46f3, 0x0003, 0x0200, 0x000a, 0xffc0, 0x0001,
+	0x0007, 0x0000, 0x7f06, 0x0000, 0x1362, 0x0008, 0x8066, 0x0000,
+	0x060a, 0x0008, 0x46fb, 0x000b, 0x4000, 0x000f, 0x3a44, 0x0002,
+	0x0c09, 0x000b, 0x2f44, 0x000a, 0x2f44, 0x000a, 0x0e0b, 0x000b,
+	0x808a, 0x0008, 0x0003, 0x0008, 0x8074, 0x0000, 0xf080, 0x0000,
+	0x5b06, 0x0003, 0x8054, 0x0008, 0x0019, 0x0000, 0x0009, 0x000b,
+	0x3a44, 0x0002, 0x0c09, 0x000b, 0x808c, 0x0008, 0x0000, 0x0008,
+	0x8010, 0x0008, 0x0011, 0x0008, 0x01c3, 0x000c, 0x42fe, 0x0000,
+	0xffc0, 0x0001, 0x00ff, 0x0008, 0x7f10, 0x0008, 0x01c3, 0x000c,
+	0x4310, 0x0008, 0x0218, 0x0003, 0x3941, 0x0002, 0x0b1b, 0x0003,
+	0x4000, 0x000f, 0x8072, 0x0000, 0x0404, 0x0008, 0x4000, 0x000f,
+	0x8010, 0x0008, 0x0012, 0x0008, 0x01c3, 0x000c, 0x02e2, 0x000c,
+	0x1110, 0x0000, 0x01c3, 0x000c, 0x11fe, 0x0000, 0x0f21, 0x000b,
+	0x0009, 0x000b, 0xc2c0, 0x0009, 0x00ff, 0x0008, 0x7f00, 0x0000,
+	0xc3c0, 0x0001, 0xff00, 0x0008, 0x00d0, 0x0009, 0x0b4c, 0x000b,
+	0x0d0a, 0x0000, 0x8580, 0x0001, 0x1000, 0x0000, 0x7f62, 0x0008,
+	0x8060, 0x0000, 0x0400, 0x0000, 0x8066, 0x0000, 0x0809, 0x0000,
+	0x4736, 0x000b, 0x04fe, 0x0008, 0x3345, 0x0003, 0x0460, 0x0000,
+	0x8062, 0x0008, 0x0004, 0x0000, 0x8066, 0x0000, 0x0211, 0x0000,
+	0x473e, 0x0003, 0x01fe, 0x0008, 0x00e0, 0x0009, 0x0f45, 0x0003,
+	0x02fe, 0x0008, 0x43e0, 0x0001, 0x0b4b, 0x0003, 0x0500, 0x0002,
+	0x7f0a, 0x0000, 0xffe0, 0x0009, 0x0800, 0x0000, 0x0f2f, 0x0003,
+	0x0d08, 0x0008, 0x4000, 0x000f, 0x43fe, 0x0008, 0x3e80, 0x0001,
+	0x0d60, 0x0000, 0x7f62, 0x0008, 0x8066, 0x0000, 0x0809, 0x0000,
+	0x4752, 0x0003, 0x8060, 0x0000, 0x0400, 0x0000, 0x84c0, 0x0001,
+	0xff00, 0x0008, 0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a,
+	0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a, 0x7f60, 0x000a,
+	0x7f60, 0x000a, 0xff80, 0x0009, 0x1000, 0x0000, 0x7f62, 0x0008,
+	0x8066, 0x0000, 0x0809, 0x0000, 0x4764, 0x0003, 0x4000, 0x000f,
+	0x4bd7, 0xed7c, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020,
+	0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000,
+	0x4000, 0x8000, 0xef37
+};
+#ifdef UNIQUE_FW_NAME
+unsigned short fw2300ipx_length01 = 0xe2c3;
+#else
+unsigned short risc_code_length01 = 0xe2c3;
+#endif
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfg.c 350-qlogic/drivers/scsi/qla2xxx/qla_cfg.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfg.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_cfg.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,3324 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * QLogic ISP2x00 Multi-path LUN Support Driver
+ *
+ */
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+#include "qlfo.h"
+#include "qlfolimits.h"
+
+/*
+ *  Local Function Prototypes.
+ */
+
+static uint32_t qla2x00_add_portname_to_mp_dev(mp_device_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 *,
+    uint16_t);
+static mp_path_list_t * qla2x00_allocate_path_list(void);
+
+static mp_host_t * qla2x00_find_host_by_name(uint8_t *);
+
+static mp_device_t * qla2x00_find_or_allocate_mp_dev (mp_host_t *, uint16_t,
+    fc_port_t *);
+static mp_path_t * qla2x00_find_or_allocate_path(mp_host_t *, mp_device_t *,
+    uint16_t, uint16_t, fc_port_t *);
+
+static uint32_t qla2x00_cfg_register_failover_lun(mp_device_t *,srb_t *,
+    fc_lun_t *);
+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);
+
+static uint8_t 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 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 *,
+    uint16_t *);
+static mp_device_t *qla2x00_find_dp_by_pn_from_all_hosts(uint8_t *, uint16_t *);
+
+static mp_path_t *qla2x00_get_visible_path(mp_device_t *dp);
+static void qla2x00_map_os_targets(mp_host_t *);
+static void qla2x00_map_os_luns(mp_host_t *, mp_device_t *, uint16_t);
+static uint8_t qla2x00_map_a_oslun(mp_host_t *, mp_device_t *, uint16_t, uint16_t);
+
+static uint8_t qla2x00_is_ww_name_zero(uint8_t *);
+static void qla2x00_add_path(mp_path_list_t *, mp_path_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 *);
+
+/*
+ * Global data items
+ */
+mp_host_t  *mp_hosts_base = NULL;
+uint8_t   mp_config_required = FALSE;
+static int    mp_num_hosts = 0;
+static uint8_t   mp_initialized = FALSE;
+
+
+/*
+ * ENTRY ROUTINES
+ */
+
+/*
+ * qla2x00_cfg_init
+ *      Initialize configuration structures to handle an instance of
+ *      an HBA, QLA2x000 card.
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *
+ * Returns:
+ *      qla2x00 local function return status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_cfg_init(scsi_qla_host_t *ha)
+{
+	int	rval;
+
+	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);
+	}
+	rval = qla2x00_cfg_path_discovery(ha);
+	clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+	LEAVE("qla2x00_cfg_init");
+	return rval;
+}
+
+/*
+ * qla2x00_cfg_path_discovery
+ *      Discover the path configuration from the device configuration
+ *      for the specified host adapter and build the path search tree.
+ *      This function is called after the lower level driver has
+ *      completed its port and lun discovery.
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *
+ * Returns:
+ *      qla2x00 local function return status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_cfg_path_discovery(scsi_qla_host_t *ha)
+{
+	int		rval = QLA_SUCCESS;
+	mp_host_t	*host;
+	uint8_t		*name;
+
+	ENTER("qla2x00_cfg_path_discovery");
+
+	name = 	&ha->init_cb->node_name[0];
+
+	set_bit(CFG_ACTIVE, &ha->cfg_flags);
+	/* Initialize the path tree for this adapter */
+	host = qla2x00_find_host_by_name(name);
+	if ( mp_config_required ) {
+		if (host == NULL ) {
+			DEBUG4(printk("cfg_path_discovery: host not found, "
+				"node name = "
+				"%02x%02x%02x%02x%02x%02x%02x%02x\n",
+				name[0], name[1], name[2], name[3],
+				name[4], name[5], name[6], name[7]);)
+			rval = QLA_FUNCTION_FAILED;
+		} else if (ha->instance != host->instance) {
+			DEBUG4(printk("cfg_path_discovery: host instance "
+				"don't match - instance=%ld.\n",
+				ha->instance);)
+			rval = QLA_FUNCTION_FAILED;
+		}
+	} else if ( host == NULL ) {
+		/* New host adapter so allocate it */
+		DEBUG3(printk("%s: found new ha inst %ld. alloc host.\n",
+		    __func__, ha->instance);)
+		if ( (host = qla2x00_alloc_host(ha)) == NULL ) {
+			printk(KERN_INFO
+				"qla2x00(%d): Couldn't allocate "
+				"host - ha = %p.\n",
+				(int)ha->instance, ha);
+			rval = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	/* Fill in information about host */
+	if (host != NULL ) {
+		host->flags |= MP_HOST_FLAG_NEEDS_UPDATE;
+		host->flags |= MP_HOST_FLAG_LUN_FO_ENABLED;
+		host->fcports = &ha->fcports;
+
+		/* Check if multipath is enabled */
+		DEBUG3(printk("%s: updating mp host for ha inst %ld.\n",
+		    __func__, ha->instance);)
+		if (!qla2x00_update_mp_host(host)) {
+			rval = QLA_FUNCTION_FAILED;
+		}
+		host->flags &= ~MP_HOST_FLAG_LUN_FO_ENABLED;
+	}
+
+	if (rval != QLA_SUCCESS) {
+		/* EMPTY */
+		DEBUG4(printk("qla2x00_path_discovery: Exiting FAILED\n");)
+	} else {
+		LEAVE("qla2x00_cfg_path_discovery");
+	}
+	clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+
+	return rval;
+}
+
+/*
+ * qla2x00_cfg_event_notifiy
+ *      Callback for host driver to notify us of configuration changes.
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *      i_type = event type
+ *
+ * Returns:
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_cfg_event_notify(scsi_qla_host_t *ha, uint32_t i_type)
+{
+	mp_host_t	*host;			/* host adapter pointer */
+
+	ENTER("qla2x00_cfg_event_notify");
+
+	set_bit(CFG_ACTIVE, &ha->cfg_flags);
+	switch (i_type) {
+		case MP_NOTIFY_RESET_DETECTED:
+			DEBUG(printk("scsi%ld: MP_NOTIFY_RESET_DETECTED "
+					"- no action\n",
+					ha->host_no);)
+				break;
+		case MP_NOTIFY_PWR_LOSS:
+			DEBUG(printk("scsi%ld: MP_NOTIFY_PWR_LOSS - "
+					"update tree\n",
+					ha->host_no);)
+			/*
+			 * Update our path tree in case we are
+			 * losing the adapter
+			 */
+			qla2x00_update_mp_tree();
+			/* Free our resources for adapter */
+			break;
+		case MP_NOTIFY_LOOP_UP:
+			DEBUG(printk("scsi%ld: MP_NOTIFY_LOOP_UP - "
+					"update host tree\n",
+					ha->host_no);)
+			/* Adapter is back up with new configuration */
+			if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+				host->flags |= MP_HOST_FLAG_NEEDS_UPDATE;
+				host->fcports = &ha->fcports;
+				qla2x00_update_mp_tree();
+			}
+			break;
+		case MP_NOTIFY_LOOP_DOWN:
+		case MP_NOTIFY_BUS_RESET:
+			DEBUG(printk("scsi%ld: MP_NOTIFY_OTHERS - "
+					"no action\n",
+					ha->host_no);)
+			break;
+		default:
+			break;
+
+	}
+	clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+
+	LEAVE("qla2x00_cfg_event_notify");
+
+	return QLA_SUCCESS;
+}
+
+/*
+ * qla2x00_cfg_failover
+ *      A problem has been detected with the current path for this
+ *      lun.  Select the next available path as the current path
+ *      for this device.
+ *
+ * Inputs:
+ *      ha = pointer to host adapter
+ *      fp - pointer to failed fc_lun (failback lun)
+ *      tgt - pointer to target
+ *
+ * Returns:
+ *      pointer to new fc_lun_t, or NULL if failover fails.
+ */
+fc_lun_t *
+qla2x00_cfg_failover(scsi_qla_host_t *ha, fc_lun_t *fp,
+    os_tgt_t *tgt, srb_t *sp)
+{
+	mp_host_t	*host;			/* host adapter pointer */
+	mp_device_t	*dp;			/* virtual device pointer */
+	mp_path_t	*new_path;		/* new path pointer */
+	fc_lun_t	*new_fp = NULL;
+
+	ENTER("qla2x00_cfg_failover");
+	set_bit(CFG_ACTIVE, &ha->cfg_flags);
+	if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+		if ((dp = qla2x00_find_mp_dev_by_nodename(
+		    host, tgt->node_name)) != NULL ) {
+
+			DEBUG3(printk("qla2x00_cfg_failover: dp = %p\n", dp);)
+			/*
+			 * Point at the next path in the path list if there is
+			 * one, and if it hasn't already been failed over by
+			 * 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);)
+
+			qla2x00_cfg_register_failover_lun(dp, sp, new_fp);
+		} else {
+			printk(KERN_INFO
+				"qla2x00(%d): Couldn't find device "
+				"to failover\n",
+				host->instance);
+		}
+	}
+	clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+
+	LEAVE("qla2x00_cfg_failover");
+
+	return new_fp;
+}
+
+/*
+ * IOCTL support
+ */
+#define CFG_IOCTL
+#if defined(CFG_IOCTL)
+/*
+ * qla2x00_cfg_get_paths
+ *      Get list of paths EXT_FO_GET_PATHS.
+ *
+ * Input:
+ *      ha = pointer to adapter
+ *      bp = pointer to buffer
+ *      cmd = Pointer to kernel copy of EXT_IOCTL.
+ *
+ * Return;
+ *      0 on success or errno.
+ *	driver ioctl errors are returned via cmd->Status.
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_cfg_get_paths(EXT_IOCTL *cmd, FO_GET_PATHS *bp, int mode)
+{
+	int	cnt;
+	int	rval = 0;
+	uint16_t	idx;
+
+	FO_PATHS_INFO	*paths,	*u_paths;
+	FO_PATH_ENTRY	*entry;
+	EXT_DEST_ADDR   *sap = &bp->HbaAddr;
+	mp_host_t	*host = NULL;	/* host adapter pointer */
+	mp_device_t	*dp;		/* virtual device pointer */
+	mp_path_t	*path;		/* path pointer */
+	mp_path_list_t	*path_list;	/* path list pointer */
+	scsi_qla_host_t *ha;
+
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	u_paths = (FO_PATHS_INFO *) cmd->ResponseAdr;
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+
+	if (!ha) {
+		DEBUG2_9_10(printk(KERN_INFO "%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (rval);
+	}
+	DEBUG9(printk("%s(%ld): found matching ha inst %d.\n",
+	    __func__, ha->host_no, bp->HbaInstance);)
+
+	if (ha->flags.failover_enabled)
+		if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+			cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+			cmd->DetailStatus = EXT_DSTATUS_HBA_INST;
+			DEBUG4(printk("%s: cannot find target (%ld)\n",
+			    __func__, ha->instance);)
+			DEBUG9_10(printk("%s: cannot find host inst(%ld).\n",
+			    __func__, ha->instance);)
+
+			return rval;
+		}
+
+	paths = (FO_PATHS_INFO *)qla2x00_kmem_zalloc(
+	    sizeof(FO_PATHS_INFO), GFP_ATOMIC, 20);
+	if (paths == NULL) {
+		DEBUG4(printk("%s: failed to allocate memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_PATHS_INFO));)
+		DEBUG9_10(printk("%s: failed allocate memory size(%d).\n",
+		    __func__, (int)sizeof(FO_PATHS_INFO));)
+
+		cmd->Status = EXT_STATUS_NO_MEMORY;
+
+		return -ENOMEM;
+	}
+	DEBUG9(printk("%s(%ld): found matching ha inst %d.\n",
+	    __func__, ha->host_no, bp->HbaInstance);)
+
+	if (!ha->flags.failover_enabled) {
+		/* non-fo case. There's only one path. */
+
+		mp_path_list_t	*ptmp_plist;
+#define STD_MAX_PATH_CNT	1
+#define STD_VISIBLE_INDEX	0
+		int		found;
+		struct list_head *fcpl;
+		fc_port_t	*fcport;
+
+		DEBUG9(printk("%s: non-fo case.\n", __func__);)
+
+		if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_plist,
+		    sizeof(mp_path_list_t))) {
+			/* not enough memory */
+			DEBUG9_10(printk(
+			    "%s(%ld): inst=%ld scrap not big enough. "
+			    "lun_mask requested=%ld.\n",
+			    __func__, ha->host_no, ha->instance,
+			    (ulong)sizeof(mp_path_list_t));)
+			cmd->Status = EXT_STATUS_NO_MEMORY;
+
+			return -ENOMEM;
+		}
+
+		found = 0;
+		fcport = NULL;
+		list_for_each(fcpl, &ha->fcports) {
+			fcport = list_entry(fcpl, fc_port_t, list);
+
+			if (memcmp(fcport->node_name, sap->DestAddr.WWNN,
+			    EXT_DEF_WWN_NAME_SIZE) == 0) {
+				found++;
+				break;
+			}
+		}
+
+		if (found) {
+			DEBUG9(printk("%s: found fcport:"
+			    "(%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x)\n.",
+			    __func__,
+			    sap->DestAddr.WWNN[0], sap->DestAddr.WWNN[1],
+			    sap->DestAddr.WWNN[2], sap->DestAddr.WWNN[3],
+			    sap->DestAddr.WWNN[4], sap->DestAddr.WWNN[5],
+			    sap->DestAddr.WWNN[6], sap->DestAddr.WWNN[7]);)
+
+			paths->HbaInstance         = bp->HbaInstance;
+			paths->PathCount           = STD_MAX_PATH_CNT;
+			paths->VisiblePathIndex    = STD_VISIBLE_INDEX;
+
+			/* Copy current path, which is the first one (0). */
+			memcpy(paths->CurrentPathIndex,
+			    ptmp_plist->current_path,
+			    sizeof(paths->CurrentPathIndex));
+
+			entry = &(paths->PathEntry[STD_VISIBLE_INDEX]);
+
+			entry->Visible     = TRUE;
+			entry->HbaInstance = bp->HbaInstance;
+
+			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,
+			 	    &paths->PathCount, 4);
+			if (rval == 0)
+				rval = copy_to_user(&u_paths->CurrentPathIndex,
+				    &paths->CurrentPathIndex,
+				    sizeof(paths->CurrentPathIndex));
+			if (rval == 0)
+				rval = copy_to_user(&u_paths->PathEntry,
+				    &paths->PathEntry,
+				    sizeof(paths->PathEntry));
+
+			if (rval) { /* if any of the above failed */
+				DEBUG9_10(printk("%s: data copy failed.\n",
+				    __func__);)
+
+				cmd->Status = EXT_STATUS_COPY_ERR;
+			}
+		} else {
+			cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+			cmd->DetailStatus = EXT_DSTATUS_TARGET;
+
+			DEBUG10(printk("%s: cannot find fcport "
+			    "(%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x)\n.",
+			    __func__,
+			    sap->DestAddr.WWNN[0],
+			    sap->DestAddr.WWNN[1],
+			    sap->DestAddr.WWNN[2],
+			    sap->DestAddr.WWNN[3],
+			    sap->DestAddr.WWNN[4],
+			    sap->DestAddr.WWNN[5],
+			    sap->DestAddr.WWNN[6],
+			    sap->DestAddr.WWNN[7]);)
+			DEBUG4(printk("%s: cannot find fcport "
+			    "(%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x)\n.",
+			    __func__,
+			    sap->DestAddr.WWNN[0],
+			    sap->DestAddr.WWNN[1],
+			    sap->DestAddr.WWNN[2],
+			    sap->DestAddr.WWNN[3],
+			    sap->DestAddr.WWNN[4],
+			    sap->DestAddr.WWNN[5],
+			    sap->DestAddr.WWNN[6],
+			    sap->DestAddr.WWNN[7]);)
+		}
+
+		qla2x00_free_ioctl_scrap_mem(ha);
+		/* end of non-fo case. */
+
+	} else if (sap->DestType != EXT_DEF_DESTTYPE_WWNN &&
+	    sap->DestType != EXT_DEF_DESTTYPE_WWPN) {
+		/* Scan for mp_dev by nodename or portname *ONLY* */
+
+		cmd->Status = EXT_STATUS_INVALID_PARAM;
+		cmd->DetailStatus = EXT_DSTATUS_TARGET;
+
+		DEBUG4(printk("%s: target can be accessed by NodeName only.",
+		    __func__);)
+		DEBUG9_10(printk("%s: target can be accessed by NodeName or "
+		    " PortName only. Got type %d.\n",
+		    __func__, sap->DestType);)
+
+	} else if ((sap->DestType == EXT_DEF_DESTTYPE_WWNN &&
+	    (dp = qla2x00_find_mp_dev_by_nodename(host,
+	    sap->DestAddr.WWNN)) != NULL) ||
+	    (sap->DestType == EXT_DEF_DESTTYPE_WWPN &&
+	    (dp = qla2x00_find_mp_dev_by_portname(host,
+	    sap->DestAddr.WWPN, &idx)) != NULL)) {
+
+		DEBUG9(printk("%s(%ld): Found mp_dev. nodename="
+		    "%02x%02x%02x%02x%02x%02x%02x%02x portname="
+		    "%02x%02x%02x%02x%02x%02x%02x%02x.\n.",
+		    __func__, host->ha->host_no,
+		    sap->DestAddr.WWNN[0], sap->DestAddr.WWNN[1],
+		    sap->DestAddr.WWNN[2], sap->DestAddr.WWNN[3],
+		    sap->DestAddr.WWNN[4], sap->DestAddr.WWNN[5],
+		    sap->DestAddr.WWNN[6], sap->DestAddr.WWNN[7],
+		    sap->DestAddr.WWPN[0], sap->DestAddr.WWPN[1],
+		    sap->DestAddr.WWPN[2], sap->DestAddr.WWPN[3],
+		    sap->DestAddr.WWPN[4], sap->DestAddr.WWPN[5],
+		    sap->DestAddr.WWPN[6], sap->DestAddr.WWPN[7]);)
+
+		path_list = dp->path_list;
+
+		paths->HbaInstance = bp->HbaInstance;
+		paths->PathCount           = path_list->path_cnt;
+		paths->VisiblePathIndex    = path_list->visible;
+
+		/* copy current paths */
+		memcpy(paths->CurrentPathIndex,
+		    path_list->current_path,
+		    sizeof(paths->CurrentPathIndex));
+
+		path = path_list->last;
+		for (cnt = 0; cnt < path_list->path_cnt; cnt++) {
+			entry = &(paths->PathEntry[path->id]);
+
+			entry->Visible    = (path->id == path_list->visible);
+			entry->HbaInstance = path->host->instance;
+			DEBUG9(printk("%s: entry %d ha %d path id %d, pn="
+			    "%02x%02x%02x%02x%02x%02x%02x%02x. visible=%d.\n",
+			    __func__, cnt, path->host->instance, path->id,
+			    path->portname[0], path->portname[1],
+			    path->portname[2], path->portname[3],
+			    path->portname[4], path->portname[5],
+			    path->portname[6], path->portname[7],
+			    entry->Visible);)
+
+			memcpy(entry->PortName,
+			    path->portname,
+			    EXT_DEF_WWP_NAME_SIZE);
+
+			path = path->next;
+		}
+		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);)
+
+		/* copy data to user */
+		if (rval == 0)
+			rval = copy_to_user(&u_paths->PathCount,
+			    &paths->PathCount, 4);
+		if (rval == 0)
+			rval = copy_to_user(&u_paths->CurrentPathIndex,
+			    &paths->CurrentPathIndex,
+			    sizeof(paths->CurrentPathIndex));
+		if (rval == 0)
+			rval = copy_to_user(&u_paths->PathEntry,
+			    &paths->PathEntry,
+			    sizeof(paths->PathEntry));
+
+		if (rval != 0) {  /* if any of the above failed */
+			DEBUG9_10(printk("%s: u_paths %p copy"
+			    " error. paths->PathCount=%d.\n",
+			    __func__, u_paths, paths->PathCount);)
+			cmd->Status = EXT_STATUS_COPY_ERR;
+		}
+
+	} else {
+
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		cmd->DetailStatus = EXT_DSTATUS_TARGET;
+
+		DEBUG9_10(printk("%s: DestType=%x.\n",
+		    __func__, sap->DestType);)
+		DEBUG9_10(printk("%s: return DEV_NOT_FOUND for node=%02x%02x"
+		    "%02x%02x%02x%02x%02x%02x port=%02x%02x%02x%02x%02x%02x"
+		    "%02x%02x.\n",
+		    __func__,
+		    sap->DestAddr.WWNN[0], sap->DestAddr.WWNN[1],
+		    sap->DestAddr.WWNN[2], sap->DestAddr.WWNN[3],
+		    sap->DestAddr.WWNN[4], sap->DestAddr.WWNN[5],
+		    sap->DestAddr.WWNN[6], sap->DestAddr.WWNN[7],
+		    sap->DestAddr.WWPN[0], sap->DestAddr.WWPN[1],
+		    sap->DestAddr.WWPN[2], sap->DestAddr.WWPN[3],
+		    sap->DestAddr.WWPN[4], sap->DestAddr.WWPN[5],
+		    sap->DestAddr.WWPN[6], sap->DestAddr.WWPN[7]);)
+
+		DEBUG4(printk("%s: return DEV_NOT_FOUND for node=%02x%02x"
+		    "%02x%02x%02x%02x%02x%02x port=%02x%02x%02x%02x%02x%02x"
+		    "%02x%02x.\n",
+		    __func__,
+		    sap->DestAddr.WWNN[0], sap->DestAddr.WWNN[1],
+		    sap->DestAddr.WWNN[2], sap->DestAddr.WWNN[3],
+		    sap->DestAddr.WWNN[4], sap->DestAddr.WWNN[5],
+		    sap->DestAddr.WWNN[6], sap->DestAddr.WWNN[7],
+		    sap->DestAddr.WWPN[0], sap->DestAddr.WWPN[1],
+		    sap->DestAddr.WWPN[2], sap->DestAddr.WWPN[3],
+		    sap->DestAddr.WWPN[4], sap->DestAddr.WWPN[5],
+		    sap->DestAddr.WWPN[6], sap->DestAddr.WWPN[7]);)
+	}
+
+	KMEM_FREE(paths, sizeof(FO_PATHS_INFO));
+
+	DEBUG9(printk("%s: exiting. rval=%d.\n", __func__, rval);)
+
+	return rval;
+
+} /* qla2x00_cfg_get_paths */
+
+/*
+ * qla2x00_cfg_set_current_path
+ *      Set the current failover path EXT_FO_GET_PATHS IOCTL call.
+ *
+ * Input:
+ *      ha = pointer to adapter
+ *      bp = pointer to buffer
+ *      cmd = Pointer to kernel copy of EXT_IOCTL.
+ *
+ * Return;
+ *      0 on success or errno.
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_cfg_set_current_path(EXT_IOCTL *cmd, FO_SET_CURRENT_PATH *bp, int mode )
+{
+	uint8_t         orig_id, new_id;
+	uint16_t	idx;
+	mp_host_t       *host, *new_host;
+	mp_device_t     *dp;
+	mp_path_list_t  *path_list;
+	EXT_DEST_ADDR   *sap = &bp->HbaAddr;
+	uint32_t        rval = 0;
+	scsi_qla_host_t *ha;
+	mp_path_t       *new_path, *old_path;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	/* First find the adapter with the instance number. */
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+	if (!ha) {
+		DEBUG2_9_10(printk(KERN_INFO "%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (rval);
+	}
+
+	if (!ha->flags.failover_enabled) {
+		/* non-failover mode. nothing to be done. */
+		DEBUG9_10(printk("%s(%ld): non-failover driver mode.\n",
+		    __func__, ha->host_no);)
+
+		return 0;
+	}
+
+	if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		cmd->DetailStatus = EXT_DSTATUS_HBA_INST;
+		DEBUG4(printk("%s: cannot find adapter.\n",
+		    __func__);)
+		DEBUG9_10(printk("%s(%ld): cannot find mphost.\n",
+		    __func__, ha->host_no);)
+		return (rval);
+	}
+
+	set_bit(CFG_ACTIVE, &ha->cfg_flags);
+	sap = &bp->HbaAddr;
+	/* Scan for mp_dev by nodename *ONLY* */
+	if (sap->DestType != EXT_DEF_DESTTYPE_WWNN &&
+	    sap->DestType != EXT_DEF_DESTTYPE_WWPN) {
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		cmd->DetailStatus = EXT_DSTATUS_TARGET;
+		DEBUG4(printk("%s: target can be accessed by NodeName only.",
+		    __func__);)
+		DEBUG9_10(printk("%s(%ld): target can be accessed by NodeName "
+		    " or PortName only.\n",
+		    __func__, ha->host_no);)
+	} else if ((sap->DestType == EXT_DEF_DESTTYPE_WWNN &&
+	    (dp = qla2x00_find_mp_dev_by_nodename(host,
+	    sap->DestAddr.WWNN)) != NULL) ||
+	    (sap->DestType == EXT_DEF_DESTTYPE_WWPN &&
+	    (dp = qla2x00_find_mp_dev_by_portname(host,
+	    sap->DestAddr.WWPN, &idx)) != NULL)) {
+
+		if (sap->DestType == EXT_DEF_DESTTYPE_WWNN) {
+			DEBUG9_10(printk("%s(%ld): found mpdev with matching "
+			    " NodeName.\n",
+			    __func__, ha->host_no);)
+		} else {
+			DEBUG9_10(printk("%s(%ld): found mpdev with matching "
+			    " PortName.\n",
+			    __func__, ha->host_no);)
+		}
+
+		path_list = dp->path_list;
+
+		if (bp->NewCurrentPathIndex < MAX_PATHS_PER_DEVICE &&
+		    sap->Lun < MAX_LUNS &&
+		    bp->NewCurrentPathIndex < path_list->path_cnt) {
+
+			orig_id = path_list->current_path[sap->Lun];
+
+			DEBUG(printk("%s: dev no  %d, lun %d, "
+			    "newindex %d, oldindex %d "
+			    "nn=%02x%02x%02x%02x%02x%02x%02x%02x\n",
+			    __func__, dp->dev_id, sap->Lun,
+			    bp->NewCurrentPathIndex, orig_id,
+			    host->nodename[0], host->nodename[1],
+			    host->nodename[2], host->nodename[3],
+			    host->nodename[4], host->nodename[5],
+			    host->nodename[6], host->nodename[7]);)
+
+			if (bp->NewCurrentPathIndex != orig_id) {
+				/* Acquire the update spinlock. */
+
+				/* Set the new current path. */
+				new_id = path_list-> current_path[sap->Lun] =
+				    bp->NewCurrentPathIndex;
+
+				/* Release the update spinlock. */
+				old_path = qla2x00_find_path_by_id(
+				    dp, orig_id);
+				new_path = qla2x00_find_path_by_id(dp, new_id);
+				new_host = new_path->host;
+
+				/* remap the lun */
+				qla2x00_map_a_oslun(new_host, dp,
+				    dp->dev_id, sap->Lun);
+
+				qla2x00_send_failover_notify(dp,
+				    sap->Lun, old_path, new_path);
+			} else {
+				/* EMPTY */
+				DEBUG4(printk("%s: path index not changed.\n",
+				    __func__);)
+				DEBUG9(printk("%s(%ld): path id not changed.\n",
+				    __func__, ha->host_no);)
+			}
+		} else {
+			cmd->Status = EXT_STATUS_INVALID_PARAM;
+			cmd->DetailStatus = EXT_DSTATUS_PATH_INDEX;
+			DEBUG4(printk("%s: invalid index for device.\n",
+			    __func__);)
+			DEBUG9_10(printk("%s: invalid index for device.\n",
+			    __func__);)
+		}
+	} else {
+		cmd->Status = EXT_STATUS_DEV_NOT_FOUND;
+		cmd->DetailStatus = EXT_DSTATUS_TARGET;
+		DEBUG4(printk("%s: cannot find device.\n",
+		    __func__);)
+		DEBUG9_10(printk("%s: DestType=%x.\n",
+		    __func__, sap->DestType);)
+		DEBUG9_10(printk("%s: return DEV_NOT_FOUND for node=%02x%02x"
+		    "%02x%02x%02x%02x%02x%02x port=%02x%02x%02x%02x%02x%02x"
+		    "%02x%02x.\n",
+		    __func__,
+		    sap->DestAddr.WWNN[0], sap->DestAddr.WWNN[1],
+		    sap->DestAddr.WWNN[2], sap->DestAddr.WWNN[3],
+		    sap->DestAddr.WWNN[4], sap->DestAddr.WWNN[5],
+		    sap->DestAddr.WWNN[6], sap->DestAddr.WWNN[7],
+		    sap->DestAddr.WWPN[0], sap->DestAddr.WWPN[1],
+		    sap->DestAddr.WWPN[2], sap->DestAddr.WWPN[3],
+		    sap->DestAddr.WWPN[4], sap->DestAddr.WWPN[5],
+		    sap->DestAddr.WWPN[6], sap->DestAddr.WWPN[7]);)
+	}
+	clear_bit(CFG_ACTIVE, &ha->cfg_flags);
+
+	DEBUG9(printk("%s: exiting. rval = %d.\n", __func__, rval);)
+
+	return rval;
+}
+#endif
+
+/*
+ * MP SUPPORT ROUTINES
+ */
+
+/*
+ * qla2x00_add_mp_host
+ *	Add the specified host the host list.
+ *
+ * Input:
+ *	node_name = pointer to node name
+ *
+ * Returns:
+ *
+ * Context:
+ *	Kernel context.
+ */
+mp_host_t *
+qla2x00_add_mp_host(uint8_t *node_name)
+{
+	mp_host_t   *host, *temp;
+
+	host = (mp_host_t *) KMEM_ZALLOC(sizeof(mp_host_t), 1);
+	if (host != NULL) {
+		memcpy(host->nodename, node_name, WWN_SIZE);
+		host->next = NULL;
+		/* add to list */
+		if (mp_hosts_base == NULL) {
+			mp_hosts_base = host;
+		} else {
+			temp = mp_hosts_base;
+			while (temp->next != NULL)
+				temp = temp->next;
+			temp->next = host;
+		}
+		mp_num_hosts++;
+	}
+	return host;
+}
+
+/*
+ * qla2x00_alloc_host
+ *      Allocate and initialize an mp host structure.
+ *
+ * Input:
+ *      ha = pointer to base driver's adapter structure.
+ *
+ * Returns:
+ *      Pointer to host structure or null on error.
+ *
+ * Context:
+ *      Kernel context.
+ */
+mp_host_t   *
+qla2x00_alloc_host(scsi_qla_host_t *ha)
+{
+	mp_host_t	*host, *temp;
+	uint8_t		*name, *portname;
+
+	name = 	&ha->init_cb->node_name[0];
+	portname = &ha->init_cb->port_name[0];
+
+	ENTER("qla2x00_alloc_host");
+
+	host = (mp_host_t *) KMEM_ZALLOC(sizeof(mp_host_t), 2);
+
+	if (host != NULL) {
+		host->ha = ha;
+		memcpy(host->nodename, name, WWN_SIZE);
+		memcpy(host->portname, portname, WWN_SIZE);
+		host->next = NULL;
+		host->flags = MP_HOST_FLAG_NEEDS_UPDATE;
+		host->instance = ha->instance;
+		/* host->MaxLunsPerTarget = qla_fo_params.MaxLunsPerTarget; */
+
+		if (qla2x00_fo_enabled(host->ha, host->instance)) {
+			host->flags |= MP_HOST_FLAG_FO_ENABLED;
+			DEBUG4(printk("%s: Failover enabled.\n",
+			    __func__);)
+		} else {
+			/* EMPTY */
+			DEBUG4(printk("%s: Failover disabled.\n",
+			    __func__);)
+		}
+		/* add to list */
+		if (mp_hosts_base == NULL) {
+			mp_hosts_base = host;
+		} else {
+			temp = mp_hosts_base;
+			while (temp->next != NULL)
+				temp = temp->next;
+			temp->next = host;
+		}
+		mp_num_hosts++;
+
+		DEBUG4(printk("%s: Alloc host @ %p\n", __func__, host);)
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Failed\n", __func__);)
+	}
+
+	return host;
+}
+
+/*
+ * qla2x00_add_portname_to_mp_dev
+ *      Add the specific port name to the list of port names for a
+ *      multi-path device.
+ *
+ * Input:
+ *      dp = pointer ti virtual device
+ *      portname = Port name to add to device
+ *
+ * Returns:
+ *      qla2x00 local function return status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static uint32_t
+qla2x00_add_portname_to_mp_dev(mp_device_t *dp, uint8_t *portname)
+{
+	uint8_t		index;
+	uint32_t	rval = QLA_SUCCESS;
+
+	ENTER("qla2x00_add_portname_to_mp_dev");
+
+	/* Look for an empty slot and add the specified portname.   */
+	for (index = 0; index < MAX_NUMBER_PATHS; index++) {
+		if (qla2x00_is_ww_name_zero(&dp->portnames[index][0])) {
+			DEBUG4(printk("%s: adding portname to dp = "
+			    "%p at index = %d\n",
+			    __func__, dp, index);)
+			memcpy(&dp->portnames[index][0], portname, WWN_SIZE);
+			break;
+		}
+	}
+	if (index == MAX_NUMBER_PATHS) {
+		rval = QLA_FUNCTION_FAILED;
+		DEBUG4(printk("%s: Fail no room\n", __func__);)
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Exit OK\n", __func__);)
+	}
+
+	LEAVE("qla2x00_add_portname_to_mp_dev");
+
+	return rval;
+}
+
+
+/*
+ *  qla2x00_allocate_mp_dev
+ *      Allocate an fc_mp_dev, clear the memory, and log a system
+ *      error if the allocation fails. After fc_mp_dev is allocated
+ *
+ *  Inputs:
+ *      nodename  = pointer to nodename of new device
+ *      portname  = pointer to portname of new device
+ *
+ *  Returns:
+ *      Pointer to new mp_device_t, or NULL if the allocation fails.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_device_t *
+qla2x00_allocate_mp_dev(uint8_t  *nodename, uint8_t *portname)
+{
+	mp_device_t   *dp;            /* Virtual device pointer */
+
+	ENTER("qla2x00_allocate_mp_dev");
+	DEBUG3(printk("%s: entered.\n", __func__);)
+
+	dp = (mp_device_t *)KMEM_ZALLOC(sizeof(mp_device_t), 3);
+
+	if (dp != NULL) {
+		DEBUG3(printk("%s: mp_device_t allocated at %p\n",
+		    __func__, dp);)
+
+		/*
+		 * Copy node name into the mp_device_t.
+		 */
+		if (nodename)
+		{
+			DEBUG3(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],
+			    nodename[5], nodename[6], nodename[7]);)
+			memcpy(dp->nodename, nodename, WWN_SIZE);
+		}
+
+		/*
+		 * 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(&dp->portnames[0][0], portname, PORT_NAME_SIZE);
+		}
+
+		/* Allocate an PATH_LIST for the fc_mp_dev. */
+		if ((dp->path_list = qla2x00_allocate_path_list()) == NULL) {
+			DEBUG4(printk("%s: allocate path_list Failed.\n",
+			    __func__);)
+			KMEM_FREE(dp, sizeof(mp_device_t));
+			dp = NULL;
+		} else {
+			DEBUG4(printk("%s: mp_path_list_t allocated at %p\n",
+			    __func__, dp->path_list);)
+			/* EMPTY */
+			DEBUG4(printk("qla2x00_allocate_mp_dev: Exit Okay\n");)
+		}
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Allocate failed.\n", __func__);)
+	}
+
+	DEBUG3(printk("%s: exiting.\n", __func__);)
+	LEAVE("qla2x00_allocate_mp_dev");
+
+	return dp;
+}
+
+/*
+ *  qla2x00_allocate_path
+ *      Allocate a PATH.
+ *
+ *  Inputs:
+ *     host   Host adapter for the device.
+ *     path_id  path number
+ *     port   port for device.
+ *      dev_id  device number
+ *
+ *  Returns:
+ *      Pointer to new PATH, or NULL if the allocation failed.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_path_t *
+qla2x00_allocate_path(mp_host_t *host, uint16_t path_id,
+    fc_port_t *port, uint16_t dev_id)
+{
+	mp_path_t	*path;
+	uint16_t	lun;
+
+	ENTER("qla2x00_allocate_path");
+
+	path = (mp_path_t *) KMEM_ZALLOC(sizeof(mp_path_t), 4);
+	if (path != NULL) {
+
+		DEBUG3(printk("%s(%ld): allocated path %p at path id %d.\n",
+		    __func__, host->ha->host_no, path, path_id);)
+
+		/* Copy the supplied information into the MP_PATH.  */
+		path->host = host;
+
+		if (!(port->flags & FCF_CONFIG) &&
+		    port->loop_id != FC_NO_LOOP_ID) {
+
+			path->port = port;
+			DEBUG3(printk("%s(%ld): assigned port pointer %p "
+			    "to path id %d.\n",
+			    __func__, host->ha->host_no, port, path_id);)
+		}
+
+		path->id   = path_id;
+		port->cur_path = path->id;
+		path->mp_byte  = port->mp_byte;
+		path->next  = NULL;
+		memcpy(path->portname, port->port_name, WWN_SIZE);
+
+		DEBUG3(printk("%s(%ld): path id %d copied portname "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x. enabling all LUNs.\n",
+		    __func__, host->ha->host_no, path->id,
+		    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]);)
+
+		for (lun = 0; lun < MAX_LUNS; lun++) {
+			path->lun_data.data[lun] |= LUN_DATA_ENABLED;
+		}
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Failed\n", __func__);)
+	}
+
+	return path;
+}
+
+
+/*
+ *  qla2x00_allocate_path_list
+ *      Allocate a PATH_LIST
+ *
+ *  Input:
+ * 		None
+ *
+ *  Returns:
+ *      Pointer to new PATH_LIST, or NULL if the allocation fails.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_path_list_t *
+qla2x00_allocate_path_list( void )
+{
+	mp_path_list_t	*path_list;
+	uint16_t		i;
+	uint8_t			l;
+
+	path_list = (mp_path_list_t *) KMEM_ZALLOC(sizeof(mp_path_list_t), 5);
+
+	if (path_list != NULL) {
+		DEBUG4(printk("%s: allocated at %p\n",
+		    __func__, path_list);)
+
+		path_list->visible = PATH_INDEX_INVALID;
+		/* Initialized current path */
+		for (i = 0; i < MAX_LUNS_PER_DEVICE; i++) {
+			l = (uint8_t)(i & 0xFF);
+			path_list->current_path[l] = PATH_INDEX_INVALID;
+		}
+		path_list->last = NULL;
+
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Alloc pool failed for MP_PATH_LIST.\n",
+		    __func__);)
+	}
+
+	return path_list;
+}
+
+/*
+ *  qla2x00_cfg_find_host
+ *      Look through the existing multipath tree, and find
+ *      a host adapter to match the specified ha.
+ *
+ *  Input:
+ *      ha = pointer to host adapter
+ *
+ *  Return:
+ *      Pointer to new host, or NULL if no match found.
+ *
+ * Context:
+ *      Kernel context.
+ */
+mp_host_t *
+qla2x00_cfg_find_host(scsi_qla_host_t *ha)
+{
+	mp_host_t     *host = NULL;	/* Host found and null if not */
+	mp_host_t     *tmp_host;
+
+	ENTER("qla2x00_cfg_find_host");
+
+	for (tmp_host = mp_hosts_base; (tmp_host); tmp_host = tmp_host->next) {
+		if (tmp_host->ha == ha) {
+			host = tmp_host;
+			DEBUG3(printk("%s: Found host =%p, instance %d\n",
+			    __func__, host, host->instance);)
+			break;
+		}
+	}
+
+	LEAVE("qla2x00_cfg_find_host");
+
+	return host;
+}
+
+/*
+ *  qla2x00_find_host_by_name
+ *      Look through the existing multipath tree, and find
+ *      a host adapter to match the specified name.
+ *
+ *  Input:
+ *      name = node name to match.
+ *
+ *  Return:
+ *      Pointer to new host, or NULL if no match found.
+ *
+ * Context:
+ *      Kernel context.
+ */
+mp_host_t *
+qla2x00_find_host_by_name(uint8_t   *name)
+{
+	mp_host_t     *host;		/* Host found and null if not */
+
+	for (host = mp_hosts_base; (host); host = host->next) {
+		if (memcmp(host->nodename, name, WWN_SIZE) == 0)
+			break;
+	}
+	return host;
+}
+
+/*
+ * qla2x00_found_hidden_path
+ *	This is called only when the port trying to figure out whether
+ *	to bind to this mp_device has mpbyte of zero. It doesn't matter
+ *	if the path we check on is first path or not because if
+ *	more than one path has mpbyte zero and not all are zero, it is
+ *	invalid and unsupported configuration which we don't handle.
+ *
+ * Input:
+ *	dp = mp_device pointer
+ *
+ * Returns:
+ *	TRUE - first path in dp is hidden.
+ *	FALSE - no hidden path.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static inline uint8_t
+qla2x00_found_hidden_path(mp_device_t *dp)
+{
+	uint8_t		ret = FALSE;
+	mp_path_list_t	*path_list = dp->path_list;
+#ifdef QL_DEBUG_LEVEL_2
+	mp_path_t	*tmp_path;
+	uint8_t		cnt = 0;
+#endif
+
+	/* Sanity check */
+	if (path_list == NULL) {
+		/* ERROR? Just print debug and return */
+		DEBUG2_3(printk("%s: ERROR No path list found on dp.\n",
+		    __func__);)
+		return (FALSE);
+	}
+
+	if (path_list->last != NULL &&
+	    path_list->last->mp_byte & MP_MASK_HIDDEN) {
+		ret = TRUE;
+	}
+
+#ifdef QL_DEBUG_LEVEL_2
+	/* If any path is visible, return FALSE right away, otherwise check
+	 * through to make sure all existing paths in this mpdev are hidden.
+	 */
+	for (tmp_path = path_list->last; tmp_path && cnt < path_list->path_cnt;
+	    tmp_path = tmp_path->next, cnt++) {
+		if (!(tmp_path->mp_byte & MP_MASK_HIDDEN)) {
+			printk("%s: found visible path.\n", __func__);
+		}
+	}
+#endif
+
+	return (ret);
+}
+
+/*
+ * 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]);)
+
+		qla2x00_add_portname_to_mp_dev(temp_dp,
+		    port->port_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   */
+	uint8_t		node_found;  /* Found matching node name. */
+	uint8_t		port_found;  /* Found matching port name. */
+	uint8_t		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 & FCF_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.
+						 */
+						qla2x00_add_portname_to_mp_dev(
+						    temp_dp, port->port_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);)
+					/*
+					 * Set the flag that we have
+					 * found the device.
+					 */
+					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 mp_dev with
+				 * matching node name.
+				 */
+				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 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.
+			 */
+			temp_dp = qla2x00_find_mp_dev_by_portname(host,
+			    port->port_name, &j);
+
+			if (temp_dp) {
+				/* Found match. This mpdev port was created
+				 * from config file.
+				 */
+				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 mp_dev with
+				 * matching node name.
+				 */
+				dp = qla2x00_default_bind_mpdev(host, port);
+			}
+		}
+
+	}
+
+	/* If we couldn't find one, allocate one. */
+	if (dp == NULL &&
+	    ((port->flags & FCF_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;
+}
+
+
+/*
+ *  qla2x00_find_or_allocate_path
+ *      Look through the path list for the supplied device, and either
+ *      find the supplied adapter (path) for the adapter, or create
+ *      a new one and add it to the path list.
+ *
+ *  Input:
+ *      host      Adapter (path) for the device.
+ *      dp       Device and path list for the device.
+ *      dev_id    Index of device on adapter.
+ *      port     Device data from port database.
+ *
+ *  Returns:
+ *      Pointer to new PATH, or NULL if the allocation fails.
+ *
+ *  Side Effects:
+ *      1. If the PATH_LIST does not already point to the PATH,
+ *         a new PATH is added to the PATH_LIST.
+ *      2. If the new path is found to be a second visible path, it is
+ *         marked as hidden, and the device database is updated to be
+ *         hidden as well, to keep the miniport synchronized.
+ *
+ * Context:
+ *      Kernel context.
+ */
+/* ARGSUSED */
+static mp_path_t *
+qla2x00_find_or_allocate_path(mp_host_t *host, mp_device_t *dp,
+    uint16_t dev_id, uint16_t pathid, fc_port_t *port)
+{
+	mp_path_list_t	*path_list = dp->path_list;
+	mp_path_t		*path;
+	uint8_t			id;
+
+
+	ENTER("qla2x00_find_or_allocate_path");
+
+	DEBUG4(printk("%s: host =%p, port =%p, dp=%p, dev id = %d\n",
+	    __func__, host, port, dp, dev_id);)
+	/*
+	 * Loop through each known path in the path list.  Look for
+	 * a PATH that matches both the adapter and the port name.
+	 */
+	path = qla2x00_find_path_by_name(host, path_list, port->port_name);
+
+
+	if (path != NULL ) {
+		DEBUG3(printk("%s: Found an existing "
+		    "path %p-  host %p inst=%d, port =%p, path id = %d\n",
+		    __func__, path, host, host->instance, path->port,
+		    path->id);)
+		DEBUG3(printk("%s: Luns for path_id %d, instance %d\n",
+		    __func__, path->id, host->instance);)
+		DEBUG3(qla2x00_dump_buffer(
+		    (char *)&path->lun_data.data[0], 64);)
+
+		/* If we found an existing path, look for any changes to it. */
+		if (path->port == NULL) {
+			DEBUG3(printk("%s: update path %p w/ port %p, path id="
+			    "%d, path mp_byte=0x%x port mp_byte=0x%x.\n",
+			    __func__, path, port, path->id,
+			    path->mp_byte, port->mp_byte);)
+			path->port = port;
+			port->mp_byte = path->mp_byte;
+		} else {
+			DEBUG3(printk("%s: update path %p port %p path id %d, "
+			    "path mp_byte=0x%x port mp_byte=0x%x.\n",
+			    __func__, path, path->port, path->id,
+			    path->mp_byte, port->mp_byte);)
+
+			if ((path->mp_byte & MP_MASK_HIDDEN) &&
+			    !(port->mp_byte & MP_MASK_HIDDEN)) {
+
+				DEBUG3(printk("%s: Adapter(%p) "
+				    "Device (%p) Path (%d) "
+				    "has become visible.\n",
+				    __func__, host, dp, path->id);)
+
+				path->mp_byte &= ~MP_MASK_HIDDEN;
+			}
+
+			if (!(path->mp_byte & MP_MASK_HIDDEN) &&
+			    (port->mp_byte & MP_MASK_HIDDEN)) {
+
+				DEBUG3(printk("%s(%ld): Adapter(%p) "
+				    "Device (%p) Path (%d) "
+				    "has become hidden.\n",
+				    __func__, host->ha->host_no, host,
+				    dp, path->id);)
+
+				path->mp_byte |= MP_MASK_HIDDEN;
+			}
+		}
+
+	} else {
+		/*
+		 * If we couldn't find an existing path, and there is still
+		 * room to add one, allocate one and put it in the list.
+		 */
+		if (path_list->path_cnt < MAX_PATHS_PER_DEVICE &&
+			path_list->path_cnt < qla_fo_params.MaxPathsPerDevice) {
+
+			if (port->flags & FCF_CONFIG) {
+				/* Use id specified in config file. */
+				id = pathid;
+				DEBUG3(printk("%s(%ld): using path id %d from "
+				    "config file.\n",
+				    __func__, host->ha->host_no, id);)
+			} else {
+				/* Assign one. */
+				id = path_list->path_cnt;
+				DEBUG3(printk(
+				    "%s(%ld): assigning path id %d.\n",
+				    __func__, host->ha->host_no, id);)
+			}
+
+			/* 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);
+
+			/* Reconcile the new path against the existing ones. */
+			qla2x00_setup_new_path(dp, path);
+		} else {
+			/* EMPTY */
+			DEBUG4(printk("%s: Err exit, no space to add path.\n",
+			    __func__);)
+		}
+
+	}
+
+	LEAVE("qla2x00_find_or_allocate_path");
+
+	return path;
+}
+
+static uint32_t
+qla2x00_cfg_register_failover_lun(mp_device_t *dp, srb_t *sp, fc_lun_t *new_lp)
+{
+	uint32_t	status = QLA_SUCCESS;
+	os_tgt_t	*tq;
+	os_lun_t	*lq;
+	fc_lun_t 	*old_lp;
+
+	DEBUG2(printk(KERN_INFO "%s: NEW fclun = %p, sp = %p\n",
+	    __func__, new_lp, sp);)
+
+	/*
+	 * Fix lun descriptors to point to new fclun which is a new fcport.
+	 */
+	if (new_lp == NULL) {
+		DEBUG2(printk(KERN_INFO "%s: Failed new lun %p\n",
+		    __func__, new_lp);)
+		return QLA_FUNCTION_FAILED;
+	}
+
+	tq = sp->tgt_queue;
+	lq = sp->lun_queue;
+	if (tq == NULL) {
+		DEBUG2(printk(KERN_INFO "%s: Failed to get old tq %p\n",
+		    __func__, tq);)
+		return QLA_FUNCTION_FAILED;
+	}
+	if (lq == NULL) {
+		DEBUG2(printk(KERN_INFO "%s: Failed to get old lq %p\n",
+		    __func__, lq);)
+		return QLA_FUNCTION_FAILED;
+	}
+	old_lp = lq->fclun;
+	lq->fclun = new_lp;
+
+	/* Log the failover to console */
+	printk(KERN_INFO
+		"qla2x00: FAILOVER device %d from "
+		"%02x%02x%02x%02x%02x%02x%02x%02x -> "
+		"%02x%02x%02x%02x%02x%02x%02x%02x - "
+		"LUN %02x, reason=0x%x\n",
+		dp->dev_id,
+		old_lp->fcport->port_name[0], old_lp->fcport->port_name[1],
+		old_lp->fcport->port_name[2], old_lp->fcport->port_name[3],
+		old_lp->fcport->port_name[4], old_lp->fcport->port_name[5],
+		old_lp->fcport->port_name[6], old_lp->fcport->port_name[7],
+		new_lp->fcport->port_name[0], new_lp->fcport->port_name[1],
+		new_lp->fcport->port_name[2], new_lp->fcport->port_name[3],
+		new_lp->fcport->port_name[4], new_lp->fcport->port_name[5],
+		new_lp->fcport->port_name[6], new_lp->fcport->port_name[7],
+		new_lp->lun, sp->err_id);
+	printk(KERN_INFO
+		"qla2x00: FROM HBA %d to HBA %d\n",
+		(int)old_lp->fcport->ha->instance,
+		(int)new_lp->fcport->ha->instance);
+
+	DEBUG3(printk("%s: NEW fclun = %p , port =%p, "
+	    "loop_id =0x%x, instance %ld\n",
+	    __func__,
+	    new_lp, new_lp->fcport,
+	    new_lp->fcport->loop_id,
+	    new_lp->fcport->ha->instance);)
+
+	return status;
+}
+
+
+/*
+ * qla2x00_send_failover_notify
+ *      A failover operation has just been done from an old path
+ *      index to a new index.  Call lower level driver
+ *      to perform the failover notification.
+ *
+ * Inputs:
+ *      device           Device being failed over.
+ *      lun                LUN being failed over.
+ *      newpath           path that was failed over too.
+ *      oldpath           path that was failed over from.
+ *
+ * Return:
+ *      Local function status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+/* ARGSUSED */
+static uint32_t
+qla2x00_send_failover_notify(mp_device_t *dp,
+    uint8_t lun, mp_path_t *newpath, mp_path_t *oldpath)
+{
+	fc_lun_t	*old_lp, *new_lp;
+	uint32_t	status = QLA_SUCCESS;
+
+	ENTER("qla2x00_send_failover_notify");
+
+	old_lp = qla2x00_find_matching_lun(lun, oldpath);
+	new_lp = qla2x00_find_matching_lun(lun, newpath);
+
+	/*
+	 * If the target is the same target, but a new HBA has been selected,
+	 * send a third party logout if required.
+	 */
+	if ((qla_fo_params.FailoverNotifyType &
+			 FO_NOTIFY_TYPE_LOGOUT_OR_LUN_RESET ||
+			qla_fo_params.FailoverNotifyType &
+			 FO_NOTIFY_TYPE_LOGOUT_OR_CDB) &&
+			qla2x00_is_portname_equal(
+				oldpath->portname, newpath->portname)) {
+
+		status =  qla2x00_send_fo_notification(old_lp, new_lp);
+		if (status == QLA_SUCCESS) {
+			/* EMPTY */
+			DEBUG4(printk("%s: Logout succeded\n",
+			    __func__);)
+		} else {
+			/* EMPTY */
+			DEBUG4(printk("%s: Logout Failed\n",
+			    __func__);)
+		}
+	} else if ((qla_fo_params.FailoverNotifyType &
+			 FO_NOTIFY_TYPE_LUN_RESET) ||
+			(qla_fo_params.FailoverNotifyType &
+			 FO_NOTIFY_TYPE_LOGOUT_OR_LUN_RESET)) {
+
+		/*
+		 * If desired, send a LUN reset as the
+		 * failover notification type.
+		 */
+		if (newpath->lun_data.data[lun] & LUN_DATA_ENABLED) {
+			status = qla2x00_send_fo_notification(old_lp, new_lp);
+			if (status == QLA_SUCCESS) {
+				/* EMPTY */
+				DEBUG4(printk("%s: LUN reset succeeded.\n",
+				    __func__);)
+			} else {
+				/* EMPTY */
+				DEBUG4(printk("%s: Failed reset LUN.\n",
+				    __func__);)
+			}
+		}
+
+	} else if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_CDB ||
+			qla_fo_params.FailoverNotifyType ==
+			FO_NOTIFY_TYPE_LOGOUT_OR_CDB) {
+
+		if (newpath->lun_data.data[lun] & LUN_DATA_ENABLED) {
+			status = qla2x00_send_fo_notification(old_lp, new_lp);
+			if (status == QLA_SUCCESS) {
+				/* EMPTY */
+				DEBUG4(printk("%s: Send CDB succeeded.\n",
+				    __func__);)
+			} else {
+				/* EMPTY */
+				DEBUG4(printk("%s: Send CDB Error "
+				    "lun=(%d).\n", __func__, lun);)
+			}
+		}
+	} else if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_SPINUP) {
+		if (newpath->lun_data.data[lun] & LUN_DATA_ENABLED) {
+			status = qla2x00_send_fo_notification(old_lp, new_lp);
+			if (status == QLA_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;
+}
+
+/*
+ *  qla2x00_select_next_path
+ *      A problem has been detected with the current path for this
+ *      device.  Try to select the next available path as the current
+ *      path for this device.  If there are no more paths, the same
+ *      path will still be selected.
+ *
+ *  Inputs:
+ *      dp           pointer of device structure.
+ *      lun                LUN to failover.
+ *
+ *  Return Value:
+ *      	new path or same path
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_path_t *
+qla2x00_select_next_path(mp_host_t *host, mp_device_t *dp, uint8_t lun)
+{
+	mp_path_t	*path = NULL;
+	mp_path_list_t	*path_list;
+	mp_path_t	*orig_path;
+	int		id;
+	uint32_t	status;
+	mp_host_t *new_host;
+
+	ENTER("qla2x00_select_next_path:");
+
+	path_list = dp->path_list;
+	if (path_list == NULL)
+		return NULL;
+
+	/* Get current path */
+	id = path_list->current_path[lun];
+
+	/* Get path for current path id  */
+	if ((orig_path = qla2x00_find_path_by_id(dp, id)) != NULL) {
+
+		/* select next path */
+		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 " 
+		    "curr idx = %d, new idx = %d\n",
+		    __func__, orig_path, path, orig_path->id, path->id);)
+		DEBUG3(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: "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    orig_path->host->nodename[0],
+		    orig_path->host->nodename[1],
+		    orig_path->host->nodename[2],
+		    orig_path->host->nodename[3],
+		    orig_path->host->nodename[4],
+		    orig_path->host->nodename[5],
+		    orig_path->host->nodename[6],
+		    orig_path->host->nodename[7]);)
+		DEBUG3(printk("   portname: "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    orig_path->port->port_name[0],
+		    orig_path->port->port_name[1],
+		    orig_path->port->port_name[2],
+		    orig_path->port->port_name[3],
+		    orig_path->port->port_name[4],
+		    orig_path->port->port_name[5],
+		    orig_path->port->port_name[6],
+		    orig_path->port->port_name[7]);)
+		DEBUG3(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: "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    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]);)
+
+		path_list->current_path[lun] = path->id;
+
+		/* If we selected a new path, do failover notification. */
+		if (path != orig_path) {
+			status = qla2x00_send_failover_notify(
+					dp, lun, path, orig_path);
+
+			/*
+			 * Currently we ignore the returned status from
+			 * the notify. however, if failover notify fails
+			 */
+		}
+	}
+
+	LEAVE("qla2x00_select_next_path:");
+
+	return  path ;
+}
+
+
+
+/*
+ *  qla2x00_update_mp_host
+ *      Update the multipath control information from the port
+ *      database for that adapter.
+ *
+ *  Input:
+ *      host      Adapter to update. Devices that are new are
+ *                      known to be attached to this adapter.
+ *
+ *  Returns:
+ *      TRUE if updated successfully; FALSE if error.
+ *
+ */
+static uint8_t
+qla2x00_update_mp_host(mp_host_t  *host)
+{
+	uint8_t		success = TRUE;
+	uint16_t	dev_id;
+	struct list_head	*fcpl;
+	fc_port_t 	*fcport;
+	scsi_qla_host_t *ha = host->ha;
+
+	ENTER("qla2x00_update_mp_host");
+
+	/*
+	 * We make sure each port is attached to some virtual device.
+	 */
+	dev_id = 0;
+	fcport = NULL;
+	list_for_each(fcpl, &ha->fcports) {
+		fcport = list_entry(fcpl, fc_port_t, list);
+
+		success |= qla2x00_update_mp_device(host, fcport, dev_id, 0);
+
+		dev_id++;
+	}
+	if (success) {
+		DEBUG2(printk(KERN_INFO "%s: Exit OK\n", __func__);)
+		qla2x00_map_os_targets(host);
+	} else {
+		/* EMPTY */
+		DEBUG2(printk(KERN_INFO "%s: Exit FAILED\n", __func__);)
+	}
+
+	DEBUG3(printk("%s: inst %ld exiting.\n", __func__, ha->instance);)
+	LEAVE("qla2x00_update_mp_host");
+
+	return success;
+}
+
+/*
+ *  qla2x00_update_mp_device
+ *      Update the multipath control information from the port
+ *      database for that adapter.
+ *
+ *  Inputs:
+ *		host   Host adapter structure
+ *      port   Device to add to the path tree.
+ *		dev_id  Device id
+ *
+ *  Synchronization:
+ *      The Adapter Lock should have already been acquired
+ *      before calling this routine.
+ *
+ *  Return
+ *      TRUE if updated successfully; FALSE if error.
+ *
+ */
+uint8_t
+qla2x00_update_mp_device(mp_host_t *host,
+    fc_port_t *port, uint16_t dev_id, uint16_t pathid)
+{
+	uint8_t		success = TRUE;
+	mp_device_t *dp;
+	mp_path_t  *path;
+
+	ENTER("qla2x00_update_mp_device");
+
+	DEBUG3(printk("%s(%ld): entered. host %p inst=%d, port =%p-%02x%02x"
+	    "%02x%02x%02x%02x%02x%02x, dev id = %d\n",
+	    __func__, host->ha->host_no, host, host->instance, 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],
+	    dev_id);)
+
+	if (!qla2x00_is_ww_name_zero(port->port_name)) {
+
+		/*
+		 * Search for a device with a matching node name,
+		 * 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.
+		 */
+		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);)
+			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, port);
+		if (path == NULL) {
+			DEBUG4(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.
+		 */
+		if (port->flags & FCF_CONFIG)
+			path->config = TRUE;
+
+		if (atomic_read(&port->state) != FCS_ONLINE) {
+			path->relogin = TRUE;
+			if (host->relogin_countdown == 0)
+				host->relogin_countdown = 30;
+		} else {
+			path->relogin = FALSE;
+		}
+
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Failed portname empty.\n",
+		    __func__);)
+	}
+
+	DEBUG3(printk("%s(%ld): exiting.\n",
+	    __func__, host->ha->host_no);)
+	LEAVE("qla2x00_update_mp_device");
+
+	return success;
+}
+
+/*
+ * qla2x00_update_mp_tree
+ *      Get port information from each adapter, and build or rebuild
+ *      the multipath control tree from this data.  This is called
+ *      from init and during port database notification.
+ *
+ * Input:
+ *      None
+ *
+ * Return:
+ *      Local function return code.
+ *
+ */
+static uint32_t
+qla2x00_update_mp_tree(void)
+{
+	mp_host_t	*host;
+	uint32_t	rval = QLA_SUCCESS;
+
+	ENTER("qla2x00_update_mp_tree:");
+
+	/* Loop through each adapter and see what needs updating. */
+	for (host = mp_hosts_base; (host) ; host = host->next) {
+
+		DEBUG4(printk("%s: hba(%d) flags (%x)\n",
+		    __func__, host->instance, host->flags);)
+		/* Clear the countdown; it may be reset in the update. */
+		host->relogin_countdown = 0;
+
+		/* Override the NEEDS_UPDATE flag if disabled. */
+		if (host->flags & MP_HOST_FLAG_DISABLE ||
+		    list_empty(host->fcports))
+			host->flags &= ~MP_HOST_FLAG_NEEDS_UPDATE;
+
+		if (host->flags & MP_HOST_FLAG_NEEDS_UPDATE) {
+
+			/*
+			 * Perform the actual updates.  If this succeeds, clear
+			 * the flag that an update is needed, and failback all
+			 * devices that are visible on this path to use this
+			 * path.  If the update fails, leave set the flag that
+			 * an update is needed, and it will be picked back up
+			 * during the next timer routine.
+			 */
+			if (qla2x00_update_mp_host(host)) {
+				host->flags &= ~MP_HOST_FLAG_NEEDS_UPDATE;
+
+				qla2x00_failback_luns(host);
+			} else
+				rval = QLA_FUNCTION_FAILED;
+
+		}
+
+	}
+
+	if (rval != QLA_SUCCESS) {
+		/* EMPTY */
+		DEBUG4(printk("%s: Exit FAILED.\n", __func__);)
+
+	} else {
+		/* EMPTY */
+		DEBUG4(printk("%s: Exit OK.\n", __func__);)
+	}
+	return rval;
+}
+
+
+
+/*
+ * qla2x00_find_matching_lun
+ *      Find the lun in the path that matches the
+ *  specified lun number.
+ *
+ * Input:
+ *      lun  = lun number
+ *      newpath = path to search for lun
+ *
+ * Returns:
+ *      NULL or pointer to lun
+ *
+ * Context:
+ *      Kernel context.
+ * (dg)
+ */
+static fc_lun_t  *
+qla2x00_find_matching_lun(uint8_t lun, mp_path_t *newpath)
+{
+	fc_lun_t *lp = NULL;	/* lun ptr */
+	struct list_head	*fcll;
+	fc_lun_t *nlp;			/* Next lun ptr */
+	fc_port_t *fcport;		/* port ptr */
+
+	if ((fcport = newpath->port) != NULL) {
+		list_for_each(fcll, &fcport->fcluns) {
+			nlp = list_entry(fcll, fc_lun_t, list);
+
+			if (lun == nlp->lun) {
+				lp = nlp;
+				break;
+			}
+		}
+	}
+	return lp;
+}
+
+/*
+ * qla2x00_find_path_by_name
+ *      Find the path specified portname from the pathlist
+ *
+ * Input:
+ *      host = host adapter pointer.
+ * 	pathlist =  multi-path path list
+ *      portname  	portname to search for
+ *
+ * Returns:
+ * pointer to the path or NULL
+ *
+ * Context:
+ *      Kernel context.
+ */
+mp_path_t *
+qla2x00_find_path_by_name(mp_host_t *host, mp_path_list_t *plp,
+    uint8_t *portname)
+{
+	mp_path_t  *path = NULL;		/* match if not NULL */
+	mp_path_t  *tmp_path;
+	int cnt;
+
+	if ((tmp_path = plp->last) != NULL) {
+		for (cnt = 0; cnt < plp->path_cnt; cnt++) {
+			if (tmp_path->host == host &&
+				qla2x00_is_portname_equal(
+					tmp_path->portname, portname)) {
+
+				path = tmp_path;
+				break;
+			}
+			tmp_path = tmp_path->next;
+		}
+	}
+	return path ;
+}
+
+/*
+ * qla2x00_find_path_by_id
+ *      Find the path for the specified path id.
+ *
+ * Input:
+ * 	dp 		multi-path device
+ * 	id 		path id
+ *
+ * Returns:
+ *      pointer to the path or NULL
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_path_t *
+qla2x00_find_path_by_id(mp_device_t *dp, uint8_t id)
+{
+	mp_path_t  *path = NULL;
+	mp_path_t  *tmp_path;
+	mp_path_list_t		*path_list;
+	int cnt;
+
+	path_list = dp->path_list;
+	tmp_path = path_list->last;
+	for (cnt = 0; (tmp_path) && cnt < path_list->path_cnt; cnt++) {
+		if (tmp_path->id == id) {
+			path = tmp_path;
+			break;
+		}
+		tmp_path = tmp_path->next;
+	}
+	return path ;
+}
+
+/*
+ * qla2x00_find_mp_dev_by_id
+ *      Find the mp_dev for the specified target id.
+ *
+ * Input:
+ *      host = host adapter pointer.
+ *      tgt  = Target id
+ *
+ * Returns:
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_device_t  *
+qla2x00_find_mp_dev_by_id(mp_host_t *host, uint8_t id )
+{
+	if (id < MAX_MP_DEVICES)
+		return host->mp_devs[id];
+	else
+		return NULL;
+}
+
+/*
+ * qla2x00_find_mp_dev_by_nodename
+ *      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_nodename(mp_host_t *host, uint8_t *name )
+{
+	int id;
+	mp_device_t *dp;
+
+	ENTER("qla2x00_find_mp_dev_by_nodename");
+
+	for (id= 0; id < MAX_MP_DEVICES; id++) {
+		if ((dp = host->mp_devs[id] ) == NULL)
+			continue;
+
+		if (qla2x00_is_nodename_equal(dp->nodename, name)) {
+			DEBUG3(printk("%s: Found matching device @ index %d:\n",
+			    __func__, id);)
+			return dp;
+		}
+	}
+
+	LEAVE("qla2x00_find_mp_dev_by_name");
+
+	return NULL;
+}
+
+/*
+ * qla2x00_find_mp_dev_by_portname
+ *      Find the mp_dev for the specified target name.
+ *
+ * Input:
+ *      host = host adapter pointer.
+ *      name  = port name
+ *
+ * Returns:
+ *
+ * Context:
+ *      Kernel context.
+ */
+static 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;
+
+	DEBUG3(printk("%s: entered.\n", __func__);)
+
+	for (id= 0; id < MAX_MP_DEVICES; id++) {
+		if ((dp = host->mp_devs[id] ) == NULL)
+			continue;
+
+		if (qla2x00_is_portname_in_device(dp, name)) {
+			DEBUG3(printk("%s: Found matching device @ index %d:\n",
+			    __func__, id);)
+			*pidx = id;
+			return dp;
+		}
+	}
+
+	DEBUG3(printk("%s: exiting.\n", __func__);)
+ 
+ 	return NULL;
+ }
+
+/*
+ * qla2x00_find_dp_by_pn_from_all_hosts
+ *      Search through all mp hosts to find the mp_dev for the
+ *	specified port name.
+ *
+ * Input:
+ *      pn  = port name
+ *
+ * Returns:
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_device_t  *
+qla2x00_find_dp_by_pn_from_all_hosts(uint8_t *pn, uint16_t *pidx)
+{
+	int		id;
+	mp_device_t	*ret_dp = NULL;
+	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 (id= 0; id < MAX_MP_DEVICES; id++) {
+			temp_dp = temp_host->mp_devs[id];
+
+			if (temp_dp == NULL)
+				continue;
+
+			if (qla2x00_is_portname_in_device(temp_dp, pn)) {
+				DEBUG3(printk(
+				    "%s: Found matching dp @ host %p id %d:\n",
+				    __func__, temp_host, id);)
+				ret_dp = temp_dp;
+				*pidx = id;
+				break;
+			}
+		}
+		if (ret_dp != NULL) {
+			/* found a match. */
+			break;
+		}
+	}
+
+	DEBUG3(printk("%s: exiting.\n", __func__);)
+
+	return ret_dp;
+}
+
+/*
+ * qla2x00_get_visible_path
+ * Find the the visible path for the specified device.
+ *
+ * Input:
+ *      dp = device pointer
+ *
+ * Returns:
+ *      NULL or path
+ *
+ * Context:
+ *      Kernel context.
+ */
+static mp_path_t *
+qla2x00_get_visible_path(mp_device_t *dp)
+{
+	uint16_t	id;
+	mp_path_list_t	*path_list;
+	mp_path_t	*path;
+
+	path_list = dp->path_list;
+	/* if we don't have a visible path skip it */
+	if ((id = path_list->visible) == PATH_INDEX_INVALID) {
+		return NULL;
+	}
+
+	if ((path = qla2x00_find_path_by_id(dp,id))== NULL)
+		return NULL;
+
+	return path ;
+}
+
+/*
+ * qla2x00_map_os_targets
+ * Allocate the luns and setup the OS target.
+ *
+ * Input:
+ *      host = host adapter pointer.
+ *
+ * Returns:
+ *      None
+ *
+ * Context:
+ *      Kernel context.
+ */
+static void
+qla2x00_map_os_targets(mp_host_t *host)
+{
+	scsi_qla_host_t *ha = host->ha;
+	mp_path_t	*path;
+	mp_device_t 	*dp;
+	os_tgt_t	*tgt;
+	int		t;
+
+	ENTER("qla2x00_map_os_targets ");
+
+	for (t = 0; t < MAX_TARGETS; t++ ) {
+		dp = host->mp_devs[t];
+		if (dp != NULL) {
+			DEBUG3(printk("%s: (%d) found a dp=%p, "
+			    "host=%p, ha=%p\n",
+			    __func__, t, dp, host,ha);)
+
+			if ((path = qla2x00_get_visible_path(dp)) == NULL) {
+				printk(KERN_INFO
+				    "qla_cfg(%d): No visible path "
+				    "for target %d, dp = %p\n",
+				    host->instance, t, dp);
+				continue;
+			}
+
+			/* if not the visible path skip it */
+			if (path->host == host) {
+				if (TGT_Q(ha, t) == NULL) {
+					tgt = qla2x00_tgt_alloc(ha, t);
+					memcpy(tgt->node_name,
+							dp->nodename,
+							WWN_SIZE);
+					tgt->fcport = path->port;
+				}
+				DEBUG3(printk("%s(%ld): host=%d, "
+				    "device= %p has VISIBLE "
+				    "path=%p, path id=%d\n",
+				    __func__, ha->host_no,
+				    host->instance,
+				    dp, path, path->id);)
+			} else {
+			/* EMPTY */
+				DEBUG3(printk("%s(%ld): host=%d, "
+				    "device= %p has HIDDEN "
+				    "path=%p, path id=%d\n",
+				    __func__, ha->host_no,
+				    host->instance, dp, path,path->id);)
+			}
+			qla2x00_map_os_luns(host, dp, t);
+		} else {
+			if ((tgt= TGT_Q(ha,t)) != NULL) {
+				qla2x00_tgt_free(ha,t);
+			}
+		}
+	}
+
+	LEAVE("qla2x00_map_os_targets ");
+}
+
+/*
+ * qla2x00_map_os_luns
+ *      Allocate the luns for the OS target.
+ *
+ * Input:
+ *      dp = pointer to device
+ *      t  = OS target number.
+ *
+ * Returns:
+ *      None
+ *
+ * Context:
+ *	Kernel context.
+ */
+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;
+			}
+		}
+	}
+}
+
+/*
+ * qla2x00_map_a_osluns
+ *      Map the OS lun to the current path
+ *
+ * Input:
+ *      host = pointer to host
+ *      dp = pointer to device
+ *      lun  = OS lun number.
+ *
+ * Returns:
+ *      None
+ *
+ * Context:
+ *	Kernel context.
+ */
+
+static uint8_t
+qla2x00_map_a_oslun(mp_host_t *host, mp_device_t *dp, uint16_t t, uint16_t lun)
+{
+	fc_port_t	*fcport;
+	fc_lun_t	*fclun;
+	os_lun_t	*lq;
+	uint16_t	id;
+	mp_path_t	*path, *vis_path;
+	mp_host_t 	*vis_host;
+	uint8_t		status = FALSE;
+
+	if ((id = dp->path_list->current_path[lun]) != PATH_INDEX_INVALID) {
+		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);
+
+				/* Always map all luns if they are enabled */
+				if (fclun &&
+					(path->lun_data.data[lun] &
+					 LUN_DATA_ENABLED) ) {
+
+					/*
+					 * Mapped lun on the visible path
+					 */
+					if ((vis_path =
+					    qla2x00_get_visible_path(dp)) ==
+					    NULL ) {
+
+						printk(KERN_INFO
+						    "qla2x00(%d): No visible "
+						    "path for target %d, "
+						    "dp = %p\n",
+						    host->instance,
+						    t, dp);
+
+						return FALSE;
+					}
+
+					vis_host = vis_path->host;
+
+					/* ra 11/30/01 */
+					/*
+					 * Always alloc LUN 0 so kernel
+					 * will scan past LUN 0.
+					 */
+					if (lun != 0 &&
+					    (EXT_IS_LUN_BIT_SET(
+						&(fcport->lun_mask), lun))) {
+
+						/* mask this LUN */
+						return FALSE;
+					}
+
+					if ((lq = qla2x00_lun_alloc(
+							vis_host->ha,
+							t, lun)) != NULL) {
+
+						lq->fclun = fclun;
+					}
+				}
+			}
+			else
+				status = TRUE;
+		}
+	}
+	return status;
+}
+
+/*
+ * qla2x00_is_ww_name_zero
+ *
+ * Input:
+ *      ww_name = Pointer to WW name to check
+ *
+ * Returns:
+ *      TRUE if name is 0 else FALSE
+ *
+ * Context:
+ *      Kernel context.
+ */
+static uint8_t
+qla2x00_is_ww_name_zero(uint8_t *nn)
+{
+	int cnt;
+
+	/* Check for zero node name */
+	for (cnt = 0; cnt < WWN_SIZE ; cnt++, nn++) {
+		if (*nn != 0)
+			break;
+	}
+	/* if zero return TRUE */
+	if (cnt == WWN_SIZE)
+		return TRUE;
+	else
+		return FALSE;
+}
+
+/*
+ * qla2x00_add_path
+ * Add a path to the pathlist
+ *
+ * Input:
+ * pathlist -- path list of paths
+ * path -- path to be added to list
+ *
+ * Returns:
+ *      None
+ *
+ * Context:
+ *      Kernel context.
+ */
+static void
+qla2x00_add_path( mp_path_list_t *pathlist, mp_path_t *path )
+{
+	mp_path_t *last = pathlist->last;
+
+	ENTER("qla2x00_add_path");
+	DEBUG3(printk("%s: entered for path id %d.\n",
+	    __func__, path->id);)
+
+	DEBUG3(printk("%s: pathlist =%p, path =%p, cnt = %d\n",
+	    __func__, pathlist, path, pathlist->path_cnt);)
+	if (last == NULL) {
+		last = path;
+	} else {
+		path->next = last->next;
+	}
+
+	last->next = path;
+	pathlist->last = path;
+	pathlist->path_cnt++;
+
+	DEBUG3(printk("%s: exiting. path cnt=%d.\n",
+	    __func__, pathlist->path_cnt);)
+	LEAVE("qla2x00_add_path");
+}
+
+
+/*
+ * qla2x00_is_portname_in_device
+ *	Search for the specified "portname" in the device list.
+ *
+ * Input:
+ *	dp = device pointer
+ *	portname = portname to searched for in device
+ *
+ * Returns:
+ *      qla2x00 local function return status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+uint8_t
+qla2x00_is_portname_in_device(mp_device_t *dp, uint8_t *portname)
+{
+	int idx;
+
+	for (idx = 0; idx < MAX_PATHS_PER_DEVICE; idx++) {
+		if (memcmp(&dp->portnames[idx][0], portname, WWN_SIZE) == 0)
+			return TRUE;
+	}
+	return FALSE;
+}
+
+
+/*
+ *  qla2x00_set_lun_data_from_bitmask
+ *      Set or clear the LUN_DATA_ENABLED bits in the LUN_DATA from
+ *      a LUN bitmask provided from the miniport driver.
+ *
+ *  Inputs:
+ *      lun_data = Extended LUN_DATA buffer to set.
+ *      lun_mask = Pointer to lun bit mask union.
+ *
+ *  Return Value: none.
+ */
+void
+qla2x00_set_lun_data_from_bitmask(mp_lun_data_t *lun_data,
+    lun_bit_mask_t *lun_mask)
+{
+	int16_t	lun;
+
+	ENTER("qla2x00_set_lun_data_from_bitmask");
+
+	for (lun = 0; lun < MAX_LUNS; lun++) {
+		/* our bit mask is inverted */
+		if (!(EXT_IS_LUN_BIT_SET(lun_mask,lun)))
+			lun_data->data[lun] |= LUN_DATA_ENABLED;
+		else
+			lun_data->data[lun] &= ~LUN_DATA_ENABLED;
+
+		DEBUG5(printk("%s: lun data[%d] = 0x%x\n",
+		    __func__, lun, lun_data->data[lun]);)
+	}
+
+	LEAVE("qla2x00_set_lun_data_from_bitmask");
+
+	return;
+}
+
+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  *host;
+	os_lun_t *lq;
+	mp_path_t	*vis_path;
+	mp_host_t 	*vis_host;
+
+	/* 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, new_path) == NULL)
+		return;
+	if (qla2x00_find_matching_lun(lun, old_path) == NULL)
+		return;
+
+	/* 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. */
+	qla2x00_send_failover_notify(dp, lun, new_path, old_path);
+
+	host = 	new_path->host;
+
+	/* remap the lun */
+	qla2x00_map_a_oslun(host, dp, dp->dev_id, lun);
+
+	/* 7/16
+	 * Reset counts on the visible path
+	 */
+	if ((vis_path = qla2x00_get_visible_path(dp)) == NULL) {
+		printk(KERN_INFO
+			"qla2x00(%d): No visible path for "
+			"target %d, dp = %p\n",
+			host->instance,
+			dp->dev_id, dp);
+		return;
+	}
+
+	vis_host = vis_path->host;
+	if ((lq = qla2x00_lun_alloc(vis_host->ha, dp->dev_id, lun)) != NULL) {
+		qla2x00_delay_lun(vis_host->ha, lq, recoveryTime);
+		qla2x00_flush_failover_q(vis_host->ha, lq);
+		qla2x00_reset_lun_fo_counts(vis_host->ha, lq);
+	}
+}
+
+/*
+*  qla2x00_failback_luns
+*      This routine looks through the devices on an adapter, and
+*      for each device that has this adapter as the visible path,
+*      it forces that path to be the current path.  This allows us
+*      to keep some semblance of static load balancing even after
+*      an adapter goes away and comes back.
+*
+*  Arguments:
+*      host          Adapter that has just come back online.
+*
+*  Return:
+*	None.
+*/
+static void
+qla2x00_failback_luns( mp_host_t  *host)
+{
+	uint16_t          dev_no;
+	uint8_t           l;
+	uint16_t          lun;
+	int i;
+	mp_device_t      *dp;
+	mp_path_list_t   *path_list;
+	mp_path_t        *path;
+	fc_lun_t	*new_fp;
+
+	ENTER("qla2x00_failback_luns");
+
+	for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+		dp = host->mp_devs[dev_no];
+
+		if (dp == NULL)
+			continue;
+
+		path_list = dp->path_list;
+		for (path = path_list->last, i= 0;
+			i < path_list->path_cnt;
+			i++, path = path->next) {
+
+			if (path->host != host )
+				continue;
+
+			if (path->port == NULL)
+				continue;
+
+			if (atomic_read(&path->port->state) == FCS_DEVICE_DEAD)
+				continue;
+
+			/* 
+			 * Failback all the paths for this host,
+			 * the luns could be preferred across all paths 
+			 */
+			DEBUG(printk("%s(%d): Lun Data for device %p, "
+			    "id=%d, path id=%d\n",
+			    __func__, host->instance, dp, dp->dev_id,
+			    path->id);)
+			DEBUG4(qla2x00_dump_buffer(
+			    (char *)&path->lun_data.data[0], 64);)
+			DEBUG4(printk("%s(%d): Perferrred Path data:\n",
+			    __func__, host->instance);)
+			DEBUG4(qla2x00_dump_buffer(
+			    (char *)&path_list->current_path[0], 64);)
+
+			for (lun = 0; lun < MAX_LUNS_PER_DEVICE; lun++) {
+				l = (uint8_t)(lun & 0xFF);
+
+				/*
+				 * if this is the preferred lun and not
+				 * the current path then failback lun.
+				 */
+				DEBUG4(printk("%s: target=%d, cur path id =%d, "
+				    "lun data[%d] = %d)\n",
+				    __func__, dp->dev_id, path->id,
+				    lun, path->lun_data.data[lun]);)
+
+				if ((path->lun_data.data[l] &
+						LUN_DATA_PREFERRED_PATH) &&
+					/* !path->relogin && */
+					path_list->current_path[l] !=
+						path->id) {
+					/* No point in failing back a
+					   disconnected lun */
+					new_fp = qla2x00_find_matching_lun(
+							l, path);
+
+					if (new_fp == NULL)
+						continue;
+
+					qla2x00_failback_single_lun(
+							dp, l, path->id);
+				}
+			}
+		}
+
+	}
+
+	LEAVE("qla2x00_failback_luns");
+
+	return;
+}
+
+/*
+ *  qla2x00_setup_new_path
+ *      Checks the path against the existing paths to see if there
+ *      are any incompatibilities.  It then checks and sets up the
+ *      current path indices.
+ *
+ *  Inputs:
+ *      dp   =  pointer to device
+ *      path = new path
+ *
+ *  Returns:
+ *      None
+ */
+static void
+qla2x00_setup_new_path( mp_device_t *dp, mp_path_t *path)
+{
+	mp_path_list_t  *path_list = dp->path_list;
+	mp_path_t       *tmp_path, *first_path;
+	mp_host_t       *first_host;
+	mp_host_t       *tmp_host;
+
+	uint16_t	lun;
+	uint8_t		l;
+	int		i;
+
+	ENTER("qla2x00_setup_new_path");
+
+	/* If this is a visible path, and there is not already a
+	 * visible path, save it as the visible path.  If there
+	 * is already a visible path, log an error and make this
+	 * path invisible.
+	 */
+	if (!(path->mp_byte & (MP_MASK_HIDDEN | MP_MASK_UNCONFIGURED))) {
+
+		/* No known visible path */
+		if (path_list->visible == PATH_INDEX_INVALID) {
+			DEBUG3(printk("%s: No know visible path - make this "
+			    "path visible\n",
+			    __func__);)
+				
+			path_list->visible = path->id;
+			path->mp_byte &= ~MP_MASK_HIDDEN;
+		} else {
+			DEBUG3(printk("%s: Second visible path found- make "
+			    "this one hidden\n",
+			    __func__);)
+
+			path->mp_byte |= MP_MASK_HIDDEN;
+		}
+		if (path->port)
+			path->port->mp_byte = path->mp_byte;
+	}
+
+	/*
+	 * If this is not the first path added, and the setting for
+	 * MaxLunsPerTarget does not match that of the first path
+	 * then disable qla_cfg for all adapters.
+	 */
+	first_path = qla2x00_find_path_by_id(dp, 0);
+
+	if (first_path != NULL) {
+		first_host = first_path->host;
+		if ((path->id != 0) &&
+			(first_host->MaxLunsPerTarget !=
+			 path->host->MaxLunsPerTarget)) {
+
+			for (tmp_path = path_list->last, i = 0;
+				(tmp_path) && i <= path->id; i++) {
+
+				tmp_host = tmp_path->host;
+				if (!(tmp_host->flags &
+						MP_HOST_FLAG_DISABLE)) {
+
+					DEBUG4(printk("%s: 2nd visible "
+					    "path (%p)\n",
+					    __func__, tmp_host);)
+
+					tmp_host->flags |= MP_HOST_FLAG_DISABLE;
+				}
+			}
+		}
+	}
+
+	/*
+	 * 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.
+		 */
+
+		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.
+			 */
+			path_list->current_path[l] = path->id;
+		}
+	}
+
+	LEAVE("qla2x00_setup_new_path");
+
+	return;
+}
+
+/*
+ * qla2x00_cfg_mem_free
+ *     Free all configuration structures.
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *
+ * Context:
+ *      Kernel context.
+ */
+void
+qla2x00_cfg_mem_free(scsi_qla_host_t *ha)
+{
+	mp_device_t *dp;
+	mp_path_list_t  *path_list;
+	mp_path_t       *tmp_path, *path;
+	mp_host_t       *host, *temp;
+	int	id, cnt;
+
+	if ((host = qla2x00_cfg_find_host(ha)) != NULL) {
+		if( mp_num_hosts == 0 )
+			return;
+
+		for (id= 0; id < MAX_MP_DEVICES; id++) {
+			if ((dp = host->mp_devs[id]) == NULL)
+				continue;
+			if ((path_list = dp->path_list) == NULL)
+				continue;
+			if ((tmp_path = path_list->last) == NULL)
+				continue;
+			for (cnt = 0; cnt < path_list->path_cnt; cnt++) {
+				path = tmp_path;
+				tmp_path = tmp_path->next;
+				DEBUG(printk(KERN_INFO
+						"host%d - Removing path[%d] "
+						"= %p\n",
+						host->instance,
+						cnt, path);)
+				KMEM_FREE(path,sizeof(mp_path_t));
+			}
+			KMEM_FREE(path_list, sizeof(mp_path_list_t));
+			host->mp_devs[id] = NULL;
+			/* remove dp from other hosts */
+			for (temp = mp_hosts_base; (temp); temp = temp->next) {
+				if (temp->mp_devs[id] == dp) {
+					DEBUG(printk(KERN_INFO
+						"host%d - Removing host[%d] = "
+						"%p\n",
+						host->instance,
+						temp->instance,temp);)
+					temp->mp_devs[id] = NULL;
+				}
+			}
+			KMEM_FREE(dp, sizeof(mp_device_t));
+		}
+
+		/* remove this host from host list */
+		temp = mp_hosts_base;
+		if (temp != NULL) {
+			/* Remove from top of queue */
+			if (temp == host) {
+				mp_hosts_base = host->next;
+			} else {
+				/*
+				 * Remove from middle of queue
+				 * or bottom of queue
+				 */
+				for (temp = mp_hosts_base;
+						temp != NULL;
+						temp = temp->next) {
+
+					if (temp->next == host) {
+						temp->next = host->next;
+						break;
+					}
+				}
+			}
+		}
+		KMEM_FREE(host, sizeof(mp_host_t));
+		mp_num_hosts--;
+	}
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfg.h 350-qlogic/drivers/scsi/qla2xxx/qla_cfg.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfg.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_cfg.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,182 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * QLogic ISP2x00 Multi-path LUN Support
+ * Multi-path include file.
+ */
+
+#if !defined(_QLA_CFG_H)
+#define	_QLA_CFG_H
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+
+/*
+ * Failover definitions
+ */
+#define FAILOVER_TYPE_COUNT		4
+#define MP_NOTIFY_RESET_DETECTED	1
+#define MP_NOTIFY_PWR_LOSS		2
+#define MP_NOTIFY_LOOP_UP		3
+#define MP_NOTIFY_LOOP_DOWN		4
+#define MP_NOTIFY_BUS_RESET		5
+#define FAILOVER_TYPE_ERROR_RETRY	1
+#define MAX_NUMBER_PATHS		FO_MAX_PATHS
+#define PORT_NAME_SIZE			WWN_SIZE
+#define FAILOVER_NOTIFY_STATUS_ERROR	QLA_SUCCESS
+#define FAILOVER_NOTIFY_STATUS_SUCCESS  QLA_SUCCESS
+#define FAILOVER_NOTIFY_CDB_LENGTH_MAX	FO_NOTIFY_CDB_LENGTH_MAX
+#define MAX_TARGETS_PER_DEVICE		SDM_DEF_MAX_TARGETS_PER_DEVICE
+
+/*
+ * Limits definitions.
+ */
+#define MAX_LUNS_PER_DEVICE	MAX_LUNS	/* Maximum # of luns */
+#define MAX_MP_DEVICES		MAX_TARGETS	/* Maximum # of virtual devs */
+#define MAX_PATHS_PER_DEVICE	8		/* Maximum # of paths */
+#if !defined(MAX_LUNS)
+#define	MAX_LUNS		256
+#endif
+#define MAX_HOSTS		MAX_HOST_COUNT
+
+/* Async notification types */
+#define NOTIFY_EVENT_LINK_DOWN      1		/* Link went down */
+#define NOTIFY_EVENT_LINK_UP        2		/* Link is back up */
+#define NOTIFY_EVENT_RESET_DETECTED 3		/* Reset detected */
+
+/* MACROS */
+#define qla2x00_is_portname_equal(N1,N2) \
+	((memcmp((N1),(N2),WWN_SIZE)==0?TRUE:FALSE))
+#define qla2x00_is_nodename_equal(N1,N2) \
+	((memcmp((N1),(N2),WWN_SIZE)==0?TRUE:FALSE))
+#if 0
+#define qla2x00_allocate_path_list() \
+    ((mp_path_list_t *)KMEM_ZALLOC(sizeof(mp_path_list_t)))
+#endif
+
+/*
+ * Per-multipath driver parameters
+ */
+typedef struct _mp_lun_data {
+	uint8_t 	data[MAX_LUNS];
+#define LUN_DATA_ENABLED		BIT_7
+#define LUN_DATA_PREFERRED_PATH		BIT_6
+}
+mp_lun_data_t;
+
+
+#define PATH_INDEX_INVALID		0xff
+
+/*
+ * Per-device collection of all paths.
+ */
+typedef struct _mp_path_list {
+	struct _mp_path *last;		/* ptrs to end of circular list of paths */
+	uint8_t		path_cnt;	/* number of paths */
+	uint8_t		visible;	/* visible path */
+	uint16_t	reserved1;	/* Memory alignment */
+	uint32_t	reserved2;	/* Memory alignment */
+	uint8_t		current_path[ MAX_LUNS_PER_DEVICE ]; /* current path for a given lun */
+	uint16_t	failover_cnt[ FAILOVER_TYPE_COUNT ];
+}
+mp_path_list_t;
+
+/*
+ * Definitions for failover notify SRBs.  These SRBs contain failover notify
+ * CDBs to notify a target that a failover has occurred.
+ *
+ */
+typedef struct _failover_notify_srb {
+	srb_t		*srb;
+	uint16_t	status;
+	uint16_t	reserved;
+}
+failover_notify_srb_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. */
+	/* World-wide port names. */
+	uint8_t         portnames[MAX_PATHS_PER_DEVICE][WWN_SIZE];
+}
+mp_device_t;
+
+/*
+ * Per-adapter multipath Host
+ */
+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 */
+	struct list_head *fcports;	/* Port chain for this adapter */
+	mp_device_t	*mp_devs[MAX_MP_DEVICES]; /* Multipath devices */
+
+	uint32_t	flags;
+#define MP_HOST_FLAG_NEEDS_UPDATE  BIT_0  /* Need to update device data. */
+#define MP_HOST_FLAG_FO_ENABLED	   BIT_1  /* Failover enabled for this host */
+#define MP_HOST_FLAG_DISABLE	   BIT_2  /* Bypass qla_cfg. */
+#define MP_HOST_FLAG_LUN_FO_ENABLED   BIT_3  /* lun Failover enabled */
+
+	uint8_t		nodename[WWN_SIZE];
+	uint8_t		portname[WWN_SIZE];
+	uint16_t	MaxLunsPerTarget;
+
+	uint16_t	relogin_countdown;
+}
+mp_host_t;
+
+/*
+ * Describes path a single.
+ */
+typedef struct _mp_path {
+	struct _mp_path	*next;			/* next path in list  */
+	struct _mp_host	*host;			/* Pointer to adapter */
+	fc_port_t	*port;			/* FC port info  */
+	uint16_t	id;			/* Path id (index) */
+	uint8_t		mp_byte;		/* Multipath control byte */
+#define MP_MASK_HIDDEN		0x80
+#define MP_MASK_UNCONFIGURED	0x40
+#define MP_MASK_OVERRIDE	0x10		/* MC_MASK_SEPARATE_TARGETS */
+#define MP_MASK_PRIORITY	0x07
+
+	uint8_t		relogin;		/* Need to relogin to port */
+	uint8_t		config;			/* User configured path	*/
+	uint8_t		reserved[3];
+	mp_lun_data_t	lun_data;		/* Lun data information */
+	uint8_t		portname[WWN_SIZE];	/* Port name of this target. */
+}
+mp_path_t;
+
+/*
+ * Failover notification requests from host driver.
+ */
+typedef struct failover_notify_entry {
+	struct scsi_address		*os_addr;
+}
+failover_notify_t;
+
+#endif /* _QLA_CFG_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfgln.c 350-qlogic/drivers/scsi/qla2xxx/qla_cfgln.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_cfgln.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_cfgln.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,742 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * QLogic ISP2x00 Multi-path LUN Support Driver 
+ * Solaris specific functions
+ *
+ */
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+#include "qlfo.h"
+
+#define MAX_SEARCH_STR_SIZE	512
+
+/*
+ * qla2x00_set_lun_data_from_config
+ * Set lun_data byte from the configuration parameters.
+ *
+ * Input:
+ * host -- pointer to host adapter structure.
+ * port -- pointer to port
+ * tgt  -- target number
+ * dev_no  -- device number
+ */
+void
+qla2x00_set_lun_data_from_config(mp_host_t *host, fc_port_t *port,
+    uint16_t tgt, uint16_t dev_no)
+{
+	char		*propbuf;  /* As big as largest search string */
+	int		rval;
+	int16_t		lun, l;
+	scsi_qla_host_t *ha = host->ha;
+	mp_device_t	*dp;
+	lun_bit_mask_t	*plun_mask;
+	lun_bit_mask_t  *mask_ptr;
+	mp_path_list_t	*pathlist;
+#if 0
+	uint8_t		control_byte;
+#endif
+
+	mp_path_t *path;
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&propbuf,
+	    MAX_SEARCH_STR_SIZE)) {
+		/* not enough memory */
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "propbuf requested=%d.\n",
+		    __func__, ha->host_no, ha->instance,
+		    MAX_SEARCH_STR_SIZE);)
+		return;
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&plun_mask,
+	    sizeof(lun_bit_mask_t))) {
+		/* not enough memory */
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "lun_mask requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(lun_bit_mask_t));)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+	mask_ptr = plun_mask;
+
+	dp = host->mp_devs[tgt];
+	if (dp == NULL) {
+		printk("qla2x00_set_lun_data_from_config: Target %d "
+		    "not found for hba %d\n",tgt, host->instance);
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+	if ( (pathlist = dp->path_list) == NULL ) {
+		printk("qla2x00_set_lun_data_from_config: path list "
+		    "not found for target %d\n", tgt);
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+
+	if ((path = qla2x00_find_path_by_name(host, pathlist,
+	    port->port_name)) == NULL ) {
+		printk("qla2x00_set_lun_data_from_config: No path found "
+		    "for target %d\n", tgt);
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+
+	/* Get "target-N-device-N-preferred" as a 256 bit lun_mask*/
+	sprintf(propbuf, "scsi-qla%ld-tgt-%d-di-%d-preferred",
+	    ha->instance, tgt, dev_no);
+	DEBUG2(printk("build_tree: %s\n",propbuf);)
+
+	rval = qla2x00_get_prop_xstr(ha, propbuf,
+	    (uint8_t *)(plun_mask), sizeof(lun_bit_mask_t));
+
+	if (rval == -1) {
+		/* EMPTY */
+		DEBUG2(printk("%s(%ld): no preferred mask entry found for "
+		    "path id %d on port %02x%02x%02x%02x%02x%02x%02x%02x.\n",
+		    __func__, ha->host_no, path->id,
+		    path->portname[0], path->portname[1],
+		    path->portname[2], path->portname[3],
+		    path->portname[4], path->portname[5],
+		    path->portname[6], path->portname[7]);)
+	} else {
+		if (rval != sizeof(lun_bit_mask_t)) {
+			/* EMPTY */
+			printk("qla2x00_set_lun_data_from_config: "
+			    "Preferred mask len %d is incorrect.\n", rval);
+		}
+
+		DEBUG3(printk("%s(%ld): reading Preferred Mask for path id %d "
+		    "on port %02x%02x%02x%02x%02x%02x%02x%02x:\n",
+		    __func__, ha->host_no, path->id,
+		    path->portname[0], path->portname[1],
+		    path->portname[2], path->portname[3],
+		    path->portname[4], path->portname[5],
+		    path->portname[6], path->portname[7]);)
+		DEBUG3(qla2x00_dump_buffer((char *)plun_mask,
+		    sizeof(lun_bit_mask_t));)
+
+		for (lun = MAX_LUNS-1, l =0; lun >= 0; lun--, l++ ) {
+			if (EXT_IS_LUN_BIT_SET(mask_ptr, lun)) {
+				path->lun_data.data[l] |=
+				    LUN_DATA_PREFERRED_PATH;
+				pathlist->current_path[l] = path->id;
+			} else {
+				path->lun_data.data[l] &=
+				    ~LUN_DATA_PREFERRED_PATH;
+			}
+		}
+
+	}
+
+	/* Get "target-N-device-N-lun-disable" as a 256 bit lun_mask*/
+	sprintf(propbuf, "scsi-qla%ld-tgt-%d-di-%d-lun-disabled",
+	    ha->instance, tgt, dev_no);
+	DEBUG3(printk("build_tree: %s\n",propbuf);)
+
+	rval = qla2x00_get_prop_xstr(ha, propbuf,
+	    (uint8_t *)plun_mask, sizeof(lun_bit_mask_t));
+	if (rval == -1) {
+		/* default: all luns enabled */
+		DEBUG3(printk("%s(%ld): no entry found for path id %d. "
+		    "Assume all LUNs enabled on port %02x%02x%02x%02x%02x%"
+		    "02x%02x%02x.\n",
+		    __func__, ha->host_no, path->id,
+		    path->portname[0], path->portname[1],
+		    path->portname[2], path->portname[3],
+		    path->portname[4], path->portname[5],
+		    path->portname[6], path->portname[7]);)
+
+		for (lun = 0; lun < MAX_LUNS; lun++) {
+			path->lun_data.data[lun] |= LUN_DATA_ENABLED;
+		}
+	} else {
+		if (rval != sizeof(lun_bit_mask_t)) {
+			printk("qla2x00_set_lun_data_from_config: Enable "
+			    "mask has wrong size %d != %ld\n",
+			    rval, (ulong)sizeof(lun_bit_mask_t));
+		} else {
+			for (lun = MAX_LUNS-1, l =0; lun >= 0; lun--, l++) {
+				/* our bit mask is inverted */
+				if (!EXT_IS_LUN_BIT_SET(mask_ptr,lun))
+					path->lun_data.data[l] |=
+					    LUN_DATA_ENABLED;
+				else
+					path->lun_data.data[l] &=
+					    ~LUN_DATA_ENABLED;
+			}
+			DEBUG3(printk("%s(%ld): got lun mask for path id %d "
+			    "port %02x%02x%02x%02x%02x%02x%02x%02x:\n",
+			    __func__, ha->host_no, path->id,
+			    path->portname[0], path->portname[1],
+			    path->portname[2], path->portname[3],
+			    path->portname[4], path->portname[5],
+			    path->portname[6], path->portname[7]);)
+			DEBUG3(qla2x00_dump_buffer(
+			    (uint8_t *)&path->lun_data.data[0], 64);)
+		}
+	}
+
+	DEBUG3(printk("qla2x00_set_lun_data_from_config: Luns data for "
+	    "device %p, instance %d, path id=%d\n",
+	    dp,host->instance,path->id);)
+	DEBUG3(qla2x00_dump_buffer((char *)&path->lun_data.data[0], 64);)
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+	LEAVE("qla2x00_set_lun_data_from_config");
+}
+
+
+
+/*
+ * qla2x00_cfg_build_path_tree
+ *	Find all path properties and build a path tree. The
+ *  resulting tree has no actual port assigned to it
+ *  until the port discovery is done by the lower level.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+void
+qla2x00_cfg_build_path_tree(scsi_qla_host_t *ha)
+{
+	char		*propbuf;
+	uint8_t		node_name[WWN_SIZE];
+	uint8_t		port_name[WWN_SIZE];
+	fc_port_t	*port;
+	uint16_t	dev_no = 0, tgt;
+	int		instance, rval;
+	mp_host_t	*host = NULL;
+	uint8_t		*name;
+	int		done;
+	uint8_t         control_byte;
+
+
+	ENTER("qla2x00_cfg_build_path_tree");
+
+	printk(KERN_INFO
+	    "qla02%d: ConfigRequired is set. \n", (int)ha->instance);
+	DEBUG(printk("qla2x00_cfg_build_path_tree: hba =%d",
+	    (int)ha->instance);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&propbuf,
+	    MAX_SEARCH_STR_SIZE)) {
+		/* not enough memory */
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "propbuf requested=%d.\n",
+		    __func__, ha->host_no, ha->instance,
+		    MAX_SEARCH_STR_SIZE);)
+		return;
+	}
+
+	/* Look for adapter nodename in properties */
+	sprintf(propbuf, "scsi-qla%ld-adapter-port", ha->instance);
+	DEBUG(printk("build_tree: %s\n",propbuf);)
+
+	rval = qla2x00_get_prop_xstr(ha, propbuf, port_name, WWN_SIZE);
+	if (rval != WWN_SIZE) {
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+
+	/* Does nodename match the host adapter nodename? */
+	name = 	&ha->init_cb->port_name[0];
+	if (!qla2x00_is_nodename_equal(name, port_name)) {
+		printk(KERN_INFO
+		    "scsi(%d): Adapter nodenames don't match - ha = %p.\n",
+		    (int)ha->instance,ha);
+		DEBUG(printk("qla(%d): Adapter nodenames don't match - "
+		    "ha=%p. port name=%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    (int)ha->instance,ha,
+		    name[0], name[1], name[2], name[3],
+		    name[4], name[5], name[6], name[7]);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return;
+	}
+
+	DEBUG(printk("%s: found entry for adapter port %02x%02x%02x%02x"
+	    "%02x%02x%02x%02x.\n",
+	    __func__,
+	    port_name[0], port_name[1], port_name[2],
+	    port_name[3], port_name[4], port_name[5],
+	    port_name[6], port_name[7]);)
+
+	instance = ha->instance;
+	if ((host = qla2x00_alloc_host(ha)) == NULL) {
+		printk(KERN_INFO
+		    "scsi(%d): Couldn't allocate host - ha = %p.\n",
+		    (int)instance,ha);
+	} else {
+		/* create a dummy port */
+		port = (fc_port_t *)KMEM_ZALLOC(sizeof (fc_port_t),9);
+		if (port == NULL) {
+			printk(KERN_INFO
+			    "scsi(%d): Couldn't allocate port.\n",
+			    (int)instance);
+			DEBUG(printk("qla(%d): Couldn't allocate port.\n",
+			    (int)host->instance);)
+			/* remove host */
+			qla2x00_free_ioctl_scrap_mem(ha);
+			return;
+		}
+
+		done = 0;
+
+		/* For each target on the host bus adapter */
+		for (tgt= 0; tgt< MAX_MP_DEVICES && !done; tgt++) {
+
+			/* get all paths for this target */
+			for (dev_no = 0; dev_no < MAX_PATHS_PER_DEVICE &&
+			    !done ; dev_no++) {
+
+				/*
+				 * O(N*M) scan, should ideally check if there
+				 * are any tgt entries present, if not, then
+				 * continue.
+				 *
+				 *   sprintf(propbuf,
+				 * 		"scsi-qla%d-tgt-%d-",
+				 *		instance, tgt_no);
+				 *   if (strstr(ha->cmdline, propbuf) == NULL)
+				 *	continue;
+				 *
+				 */
+				memset(port, 0, sizeof (fc_port_t));
+
+				/*
+				 * Get "target-N-device-N-node" is a 16-chars
+				 * number
+				 */
+				sprintf(propbuf, "scsi-qla%d-tgt-%d-di-%d-node",
+				    instance, tgt, dev_no);
+				DEBUG(printk("build_tree: %s\n",propbuf);)
+
+				rval = qla2x00_get_prop_xstr(ha, propbuf,
+				    node_name, WWN_SIZE);
+				if (rval != WWN_SIZE)
+					/*
+					 * di values may not be contiguous for
+					 * override case.
+					 */
+					continue;
+
+				memcpy(port->node_name, node_name, WWN_SIZE);
+
+				/*
+				 * Get "target-N-device-N-port" is a 16-chars
+				 * number
+				 */
+				sprintf(propbuf, "scsi-qla%d-tgt-%d-di-%d-port",
+				    instance, tgt, dev_no);
+				DEBUG(printk("build_tree: %s\n",propbuf);)
+
+				rval = qla2x00_get_prop_xstr(ha, propbuf,
+				    port_name, WWN_SIZE);
+				if (rval != WWN_SIZE)
+					continue;
+
+				memcpy(port->node_name, node_name, WWN_SIZE);
+				memcpy(port->port_name, port_name, WWN_SIZE);
+				port->flags |= FCF_CONFIG;
+
+				/*
+				 * Get "target-N-device-N-control" if property 
+				 * is present then all luns are visible.
+				 */
+				sprintf(propbuf,
+				    "scsi-qla%d-tgt-%d-di-%d-control",
+				    instance, tgt, dev_no);
+				DEBUG3(printk("build_tree: %s\n",propbuf);)
+
+				rval = qla2x00_get_prop_xstr(ha, propbuf,
+				    (uint8_t *)(&control_byte),
+				    sizeof(control_byte));
+				if (rval == -1) {
+					/* error getting string. go to next. */
+					DEBUG2(printk(
+					    "%s: string parsing failed.\n",
+					    __func__);)
+					continue;
+				}
+
+				DEBUG(printk("build_tree: control byte 0x%x\n",
+				    control_byte);)
+
+				port->mp_byte = control_byte;
+				DEBUG(printk("%s(%ld): calling update_mp_device"
+				    " for host %p port %p-%02x%02x%02x%02x%02x"
+				    "%02x%02x%02x tgt=%d mpbyte=%02x.\n",
+				    __func__, ha->host_no, host, 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],
+				    tgt, port->mp_byte);)
+
+				qla2x00_update_mp_device(host,
+				    port, tgt, dev_no);
+				qla2x00_set_lun_data_from_config(host,
+				    port, tgt, dev_no);
+			}
+		}
+		KMEM_FREE(port, sizeof (fc_port_t));
+	}
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	LEAVE("qla2x00_cfg_build_path_tree");
+	DEBUG(printk("Leaving: qla2x00_cfg_build_path_tree\n");)
+}
+
+/*
+ * qla2x00_cfg_display_devices
+ *      This routine will the node names of the different devices found
+ *      after port inquiry.
+ *
+ * Input:
+ *
+ * Returns:
+ *      None.
+ */
+void qla2x00_cfg_display_devices(void)
+{
+	mp_host_t     *host;
+	int     id;
+	mp_device_t	*dp;
+	mp_path_t  *path;
+	mp_path_list_t	*path_list;
+	int cnt, i, dev_no;
+	int instance;
+	lun_bit_mask_t	lun_mask;
+	int	mask_set;
+	uint8_t	l;
+
+	printk("qla2x00_cfg_display_devices\n");
+	for (host = mp_hosts_base; (host); host = host->next) {
+
+		instance = (int) host->instance;
+		/* Display the node name for adapter */
+		printk(KERN_INFO
+			"scsi-qla%d-adapter-port="
+			"%02x%02x%02x%02x%02x%02x%02x%02x\\;\n",
+			instance,
+			host->portname[0],
+			host->portname[1],
+			host->portname[2],
+			host->portname[3],
+			host->portname[4],
+			host->portname[5],
+			host->portname[6],
+			host->portname[7]);
+
+		for (id = 0; id < MAX_MP_DEVICES; id++) {
+			if( (dp = host->mp_devs[id] ) == NULL )
+				continue;
+
+			path_list = dp->path_list;
+
+
+			if( (path = path_list->last) != NULL ) {
+				/* Print out device port names */
+				path = path->next; /* first path */
+				for (dev_no = 0,  cnt = 0;
+					cnt < path_list->path_cnt;
+					path = path->next, cnt++) {
+
+					/* skip others if not our host */
+					if (host != path->host)
+						continue;
+					printk(KERN_INFO
+						"scsi-qla%d-tgt-%d-di-%d-node="
+						"%02x%02x%02x%02x"
+						"%02x%02x%02x%02x\\;\n",
+						instance, id, path->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]);
+
+					/* port_name */
+					printk(KERN_INFO
+						"scsi-qla%d-tgt-%d-di-%d-port="
+						"%02x%02x%02x%02x"
+						"%02x%02x%02x%02x\\;\n",
+						instance, id, path->id,
+						path->portname[0],
+						path->portname[1],
+						path->portname[2],
+						path->portname[3],
+						path->portname[4],
+						path->portname[5],
+						path->portname[6],
+						path->portname[7]);
+
+					/* control byte */
+					printk(KERN_INFO
+						"scsi-qla%d-tgt-%d-di-%d-"
+						"control=%02x\\;\n",
+						instance, id, path->id,
+						path->mp_byte);
+
+					/*
+					 * Build preferred bit mask for this
+					 * path */
+					memset(&lun_mask, 0, sizeof(lun_mask));
+					mask_set = 0;
+					for (i = 0; i < MAX_LUNS; i++) {
+						l = (uint8_t)(i & 0xFF);
+						if (path_list->current_path[l] == path->id ) {
+							EXT_SET_LUN_BIT((&lun_mask),l);
+							mask_set++;
+						}
+					}
+					if (mask_set) {
+						printk(KERN_INFO
+							"scsi-qla%d-tgt-%d-di-%d-preferred=%08x%08x%08x%08x%08x%08x%08x%08x\\;\n",
+							instance,  id, path->id,
+							*((uint32_t *) &lun_mask.mask[28]),
+							*((uint32_t *) &lun_mask.mask[24]),
+							*((uint32_t *) &lun_mask.mask[20]),
+							*((uint32_t *) &lun_mask.mask[16]),
+							*((uint32_t *) &lun_mask.mask[12]),
+							*((uint32_t *) &lun_mask.mask[8]),
+							*((uint32_t *) &lun_mask.mask[4]),
+							*((uint32_t *) &lun_mask.mask[0]) );
+					}
+					/*
+					 * Build disable bit mask for this path
+					 */
+					mask_set = 0;
+					for (i = 0; i < MAX_LUNS; i++) {
+						l = (uint8_t)(i & 0xFF);
+						if (!(path->lun_data.data[l] &
+							LUN_DATA_ENABLED) ) {
+
+							mask_set++;
+						}
+					}
+					if (mask_set) {
+						printk(KERN_INFO
+							"scsi-qla%d-tgt-%d-di-%d-lun-disable=%08x%08x%08x%08x%08x%08x%08x%08x\\;\n",
+							instance,  id, path->id,
+							*((uint32_t *) &lun_mask.mask[28]),
+							*((uint32_t *) &lun_mask.mask[24]),
+							*((uint32_t *) &lun_mask.mask[20]),
+							*((uint32_t *) &lun_mask.mask[16]),
+							*((uint32_t *) &lun_mask.mask[12]),
+							*((uint32_t *) &lun_mask.mask[8]),
+							*((uint32_t *) &lun_mask.mask[4]),
+							*((uint32_t *) &lun_mask.mask[0]) );
+					}
+					dev_no++;
+				}
+
+			}
+		}
+	}
+}
+
+#if 0
+int qla2x00_cfg_build_range( mp_path_t *path, uint8_t *buf, int siz, uint8_t mask )
+{
+        int 	i;
+        int	max, min;
+        int	colonflg = FALSE;
+        int	len = 0;
+
+        max = -1;
+        min = 0;
+        for (i = 0; i < MAX_LUNS; i++) {
+                if( (path->lun_data.data[i] & mask) ) {
+                        max = i;
+                } else {
+                        if( colonflg && max >= min ) {
+                                len += sprintf(&buf[len],":");
+                                if( len > siz)
+                                        return len;
+                                colonflg = FALSE;
+                        }
+                        if (max > min ) {
+                                len += sprintf(&buf[len],"%02x-%02x",min,max);
+                                if( len > siz)
+                                        return len;
+                                colonflg = TRUE;
+                        } else if ( max == min ) {
+                                len += sprintf(&buf[len],"%02x",max);
+                                if( len > siz)
+                                        return len;
+                                colonflg = TRUE;
+                        }
+                        min = i + 1;
+                        max = i;
+                }
+        }
+        DEBUG4(printk("build_range: return len =%d\n",len);)
+        return(len);
+}
+#endif
+
+#if 0
+/*
+ * qla2x00_cfg_proc_display_devices
+ *      This routine will the node names of the different devices found
+ *      after port inquiry.
+ *
+ * Input:
+ *
+ * Returns:
+ *      None.
+ */
+int qla2x00_cfg_proc_display_devices(scsi_qla_host_t *ha)
+{
+        mp_host_t     *host;
+        int     id;
+        mp_device_t	*dp;
+        mp_path_t  *path;
+        mp_path_list_t	*path_list;
+        int cnt, i;
+        int instance;
+        lun_bit_mask_t	lun_mask;
+        int	mask_set;
+        uint8_t	l;
+        fc_port_t 	*port;
+        int len = 0;
+
+        for (host = mp_hosts_base; (host); host = host->next) {
+
+                if( host->ha != ha )
+                        continue;
+
+                instance = (int) host->instance;
+
+                /* Display the node name for adapter */
+                len += sprintf(PROC_BUF,
+                                "scsi-qla%d-adapter-node="
+				"%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+                                instance,
+                                host->nodename[0],
+                                host->nodename[1],
+                                host->nodename[2],
+                                host->nodename[3],
+                                host->nodename[4],
+                                host->nodename[5],
+                                host->nodename[6],
+                                host->nodename[7]);
+
+
+                for (id = 0; id < MAX_MP_DEVICES; id++) {
+                        if( (dp = host->mp_devs[id] ) == NULL )
+                                continue;
+
+                        path_list = dp->path_list;
+
+                        if( (path = path_list->last) != NULL ) {
+                                /* Print out device port names */
+                                path = path->next; /* first path */
+                                for (cnt = 0; cnt < path_list->path_cnt; path = path->next, cnt++) {
+                                        /* skip others if not our host */
+                                        if (host != path->host)
+                                                continue;
+                                        len += sprintf(PROC_BUF,
+                                                       "scsi-qla%d-target-%d-path-%d-node=%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+                                                       instance,  id, path->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]);
+
+                                        /* port_name */
+                                        len += sprintf(PROC_BUF,
+                                                       "scsi-qla%d-target-%d-path-%d-port=%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+                                                       instance,  id, path->id,
+                                                       path->portname[0],
+                                                       path->portname[1],
+                                                       path->portname[2],
+                                                       path->portname[3],
+                                                       path->portname[4],
+                                                       path->portname[5],
+                                                       path->portname[6],
+                                                       path->portname[7]);
+
+                                        if( path_list->visible == path->id ) {
+                                                len += sprintf(PROC_BUF, "scsi-qla%d-target-%d-path-%d-visible=%02x;\n",
+                                                               instance,  id, path->id, path->id);
+                                        }
+
+                                        len +=sprintf(PROC_BUF, "scsi-qla%d-target-%d-path-%d-control=%02x;\n",
+                                                      instance,  id, path->id, path->mp_byte);
+
+                                        /* Build preferred bit mask for this path */
+                                        memset(&lun_mask, 0, sizeof(lun_mask));
+                                        mask_set = 0;
+                                        for (i = 0; i < MAX_LUNS_PER_DEVICE; i++) {
+                                                l = (uint8_t)(i & 0xFF);
+                                                if( path_list->current_path[l] == path->id ) {
+                                                        EXT_SET_LUN_BIT((&lun_mask),l);
+                                                        mask_set++;
+                                                }
+                                        }
+                                        if( mask_set && EXT_DEF_MAX_LUNS <= 256 ) {
+                                                len += sprintf(PROC_BUF,
+                                                               "scsi-qla%d-target-%d-path-%d-preferred=%08x%08x%08x%08x%08x%08x%08x%08x;\n",
+                                                               instance,  id, path->id,
+                                                               *((uint32_t *) &lun_mask.mask[0]),
+                                                               *((uint32_t *) &lun_mask.mask[4]),
+                                                               *((uint32_t *) &lun_mask.mask[8]),
+                                                               *((uint32_t *) &lun_mask.mask[12]),
+                                                               *((uint32_t *) &lun_mask.mask[16]),
+                                                               *((uint32_t *) &lun_mask.mask[20]),
+                                                               *((uint32_t *) &lun_mask.mask[24]),
+                                                               *((uint32_t *) &lun_mask.mask[28]) );
+                                        }
+
+                                        len += sprintf(PROC_BUF,
+                                                       "scsi-qla%d-target-%d-path-%d-lun-enable=%08x%08x%08x%08x%08x%08x%08x%08x;\n",
+                                                       instance,  id, path->id,
+                                                       *((uint32_t *) &path->lun_data.data[0]),
+                                                       *((uint32_t *) &path->lun_data.data[4]),
+                                                       *((uint32_t *) &path->lun_data.data[8]),
+                                                       *((uint32_t *) &path->lun_data.data[12]),
+                                                       *((uint32_t *) &path->lun_data.data[16]),
+                                                       *((uint32_t *) &path->lun_data.data[20]),
+                                                       *((uint32_t *) &path->lun_data.data[24]),
+                                                       *((uint32_t *) &path->lun_data.data[28]) );
+
+                                } /* for */
+                        }
+                }
+        }
+        return( len );
+}
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_dbg.c 350-qlogic/drivers/scsi/qla2xxx/qla_dbg.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_dbg.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_dbg.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,993 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+
+#if defined(ISP2300)
+/**
+ * qla2x00_fw_dump() - Dumps binary data from the 2300 firmware.
+ * @ha: SCSI driver HA context
+ * @hardware_locked: Called with the hardware_lock
+ */
+void
+qla2x00_dump_isp(scsi_qla_host_t *ha, int hardware_locked)
+{
+	int		rval;
+	uint32_t	i;
+	uint32_t	cnt, timer;
+	uint32_t	risc_address;
+	uint16_t	risc_code_size;
+	uint16_t	mb0, mb2;
+
+	uint16_t	data, stat;
+	device_reg_t	*reg;
+	uint16_t	*dmp_reg;
+	unsigned long	flags;
+
+
+	reg = ha->iobase;
+	flags = 0;
+
+	if (!hardware_locked)
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	printk("\n\n[==>BEG]\n");
+
+	printk("HCCR Register:\n");
+	printk("%04x\n\n", RD_REG_WORD(&reg->hccr));
+
+	WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 
+	SYS_DELAY(100);
+
+	printk("PBIU Registers:\n");
+	dmp_reg = (uint16_t *)(reg + 0);
+	for (i = 0; i < 8; i++) 
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+
+	printk("\n\n");
+
+	printk("ReqQ-RspQ-Risc2Host Status registers:\n");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x10);
+	for (i = 0; i < 8; i++) 
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+
+	printk("\n\n");
+
+	printk("Mailbox Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x40);
+	for (i = 0; i < 32; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x40);
+	printk("Auto Request Response DMA Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 32; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x50); 
+	printk("DMA Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 48; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x00); 
+	printk("RISC Hardware Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0xA0);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2000); 
+	printk("RISC GP0 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2200); 
+	printk("RISC GP1 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2400); 
+	printk("RISC GP2 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2600); 
+	printk("RISC GP3 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2800); 
+	printk("RISC GP4 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2A00); 
+	printk("RISC GP5 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2C00); 
+	printk("RISC GP6 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2E00); 
+	printk("RISC GP7 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x10); 
+	printk("Frame Buffer Hardware Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 64; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x20); 
+	printk("FPM B0 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 64; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x30); 
+	printk("FPM B1 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 64; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+
+	data = RD_REG_WORD(&reg->ctrl_status);
+	for (i = 6000000; i && data & CSR_ISP_SOFT_RESET; i--) {
+		SYS_DELAY(5);
+		data = RD_REG_WORD(&reg->ctrl_status);
+	}
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		SYS_DELAY(10);
+	} else {
+		data = RD_REG_WORD(&reg->mailbox0);
+		for (i = 6000000; i && data == MBS_BUSY; i--) {
+			SYS_DELAY(5);
+			data = RD_REG_WORD(&reg->mailbox0);
+		}
+	}
+
+	rval = QLA_SUCCESS;
+	mb0 = mb2 = 0;
+	printk("Code RAM Dump:");
+	risc_address      = 0x800;
+	risc_code_size    = 0xffff - 0x800 + 1;
+	WRT_REG_WORD(&reg->mailbox0, MBC_READ_RAM_WORD);
+	clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+	for (cnt = 0; cnt < risc_code_size && rval == QLA_SUCCESS; cnt++) {
+		if ((cnt % 8) == 0)
+			printk("\n%04x: ", cnt + 0x0800);
+		WRT_REG_WORD(&reg->mailbox1, (uint16_t)risc_address++);
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+
+		for (timer = 6000000; timer != 0; timer--) {
+			/* Check for pending interrupts. */
+			if ((stat = RD_REG_WORD(&reg->host_status_lo)) & HSR_INT) {
+				stat &= 0xff;
+
+				if (stat == 0x1 || stat == 0x2) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					/* Release mailbox registers. */
+					WRT_REG_WORD(&reg->semaphore, 0);
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				} else if (stat == 0x10 || stat == 0x11) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				}
+
+				/* clear this intr; it wasn't a mailbox intr */
+				WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+			}
+
+			mdelay(5);
+		}
+
+		if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) {
+			rval = mb0 & MBS_MASK;
+			printk("%04x ", mb2);
+		} else {
+			rval = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	printk("\n\n");
+
+	mb0 = mb2 = 0;
+	printk("Stack RAM Dump:");
+	risc_address      = 0x10000;
+	risc_code_size    = 0x107ff - 0x10000 + 1;
+	WRT_REG_WORD(&reg->mailbox0, 0xf /* MBC_READ_RAM_EXTENDED */);
+	clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+	for (cnt = 0; cnt < risc_code_size && rval == QLA_SUCCESS; cnt++) {
+		if ((cnt % 8) == 0)
+			printk("\n%05x: ", cnt + 0x10000);
+		WRT_REG_WORD(&reg->mailbox1, LSW(risc_address));
+		WRT_REG_WORD(&reg->mailbox8, MSW(risc_address++));
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+
+		for (timer = 6000000; timer != 0; timer--) {
+			/* Check for pending interrupts. */
+			if ((stat = RD_REG_WORD(&reg->host_status_lo)) & HSR_INT) {
+				stat &= 0xff;
+
+				if (stat == 0x1 || stat == 0x2) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					/* Release mailbox registers. */
+					WRT_REG_WORD(&reg->semaphore, 0);
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				} else if (stat == 0x10 || stat == 0x11) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				}
+
+				/* clear this intr; it wasn't a mailbox intr */
+				WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+			}
+
+			mdelay(5);
+		}
+
+		if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) {
+			rval = mb0 & MBS_MASK;
+			printk("%04x ", mb2);
+		} else {
+			rval = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	printk("\n\n");
+
+	mb0 = mb2 = 0;
+	printk("Data RAM Dump:");
+	risc_address      = 0x10800;
+	risc_code_size    = 0x1ffff - 0x10800 + 1;
+	WRT_REG_WORD(&reg->mailbox0, 0xf /* MBC_READ_RAM_EXTENDED */);
+	clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+	for (cnt = 0; cnt < risc_code_size && rval == QLA_SUCCESS; cnt++) {
+		if ((cnt % 8) == 0)
+			printk("\n%05x: ", cnt + 0x10800);
+		WRT_REG_WORD(&reg->mailbox1, LSW(risc_address));
+		WRT_REG_WORD(&reg->mailbox8, MSW(risc_address++));
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+
+		for (timer = 6000000; timer != 0; timer--) {
+			/* Check for pending interrupts. */
+			if ((stat = RD_REG_WORD(&reg->host_status_lo)) & HSR_INT) {
+				stat &= 0xff;
+
+				if (stat == 0x1 || stat == 0x2) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					/* Release mailbox registers. */
+					WRT_REG_WORD(&reg->semaphore, 0);
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				} else if (stat == 0x10 || stat == 0x11) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				}
+
+				/* clear this intr; it wasn't a mailbox intr */
+				WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+			}
+
+			mdelay(5);
+		}
+
+		if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) {
+			rval = mb0 & MBS_MASK;
+			printk("%04x ", mb2);
+		} else {
+			rval = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	printk("\n[<==END] ISP DEBUG DUMP\n");
+
+	if (!hardware_locked)
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+}
+
+#elif defined(ISP2200)
+
+/**
+ * qla2x00_fw_dump() - Dumps binary data from the 2200 firmware.
+ * @ha: SCSI driver HA context
+ * @hardware_locked: Called with the hardware_lock
+ */
+void
+qla2x00_dump_isp(scsi_qla_host_t *ha, int hardware_locked)
+{
+	int		rval;
+	uint32_t	i;
+	uint32_t	cnt, timer;
+	uint32_t	risc_address;
+	uint16_t	risc_code_size;
+	uint16_t	mb0, mb2;
+
+	uint16_t	data, stat;
+	device_reg_t	*reg;
+	uint16_t	*dmp_reg;
+	unsigned long	flags;
+
+
+	reg = ha->iobase;
+	flags = 0;
+
+	if (!hardware_locked)
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	printk("\n\n[==>BEG]\n");
+
+	printk("HCCR Register:\n");
+	printk("%04x\n\n", RD_REG_WORD(&reg->hccr));
+
+	/* Pause RISC. */
+	WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 
+	for (cnt = 30000; cnt; cnt--) {
+		if ((RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) != 0)
+			break;
+		SYS_DELAY(10);
+	}
+	if (!cnt)
+		goto done;
+
+	printk("PBIU Registers:\n");
+	dmp_reg = (uint16_t *)(reg + 0);
+	for (i = 0; i < 8; i++) 
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+
+	printk("\n\n");
+
+	printk("Mailbox Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x10);
+	for (i = 0; i < 32; i++) {
+		if (i == 8)
+			dmp_reg = (uint16_t *)((uint8_t *)reg + 0xe0);
+
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	printk("DMA Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x20);
+	for (i = 0; i < 48; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x00); 
+	printk("RISC Hardware Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0xA0);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2000); 
+	printk("RISC GP0 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2100); 
+	printk("RISC GP1 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2200); 
+	printk("RISC GP2 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2300); 
+	printk("RISC GP3 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2400); 
+	printk("RISC GP4 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2500); 
+	printk("RISC GP5 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2600); 
+	printk("RISC GP6 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->pcr, 0x2700); 
+	printk("RISC GP7 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x10); 
+	printk("Frame Buffer Hardware Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 16; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x20); 
+	printk("FPM B0 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 64; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, 0x30); 
+	printk("FPM B1 Registers:");
+	dmp_reg = (uint16_t *)((uint8_t *)reg + 0x80);
+	for (i = 0; i < 64; i++) {
+		if ((i % 8) == 0)
+			printk("\n");
+		printk("%04x ", RD_REG_WORD(dmp_reg++));
+	}
+
+	printk("\n\n");
+
+	WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+
+	data = RD_REG_WORD(&reg->ctrl_status);
+	for (i = 6000000; i && data & CSR_ISP_SOFT_RESET; i--) {
+		SYS_DELAY(5);
+		data = RD_REG_WORD(&reg->ctrl_status);
+	}
+	data = RD_REG_WORD(&reg->mailbox0);
+	for (i = 6000000; i && data == MBS_BUSY; i--) {
+		SYS_DELAY(5);
+		data = RD_REG_WORD(&reg->mailbox0);
+	}
+
+	/* Pause RISC. */
+	WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC); 
+	for (cnt = 30000; cnt; cnt--) {
+		if ((RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) != 0)
+			break;
+		SYS_DELAY(10);
+	}
+	if (!cnt)
+		goto done;
+
+	rval = QLA_SUCCESS;
+	mb0 = mb2 = 0;
+	printk("RISC SRAM:");
+	risc_address      = 0x1000;
+	risc_code_size    = 0xffff - 0x1000 + 1;
+	WRT_REG_WORD(&reg->mailbox0, MBC_READ_RAM_WORD);
+	clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+	for (cnt = 0; cnt < risc_code_size && rval == QLA_SUCCESS; cnt++) {
+		if ((cnt % 8) == 0)
+			printk("\n%04x: ", cnt + 0x1000);
+		WRT_REG_WORD(&reg->mailbox1, (uint16_t)risc_address++);
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+
+		for (timer = 6000000; timer != 0; timer--) {
+			/* Check for pending interrupts. */
+			if ((stat = RD_REG_WORD(&reg->istatus)) & ISR_RISC_INT) {
+				stat &= 0xff;
+
+				if (stat == 0x1 || stat == 0x2) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					/* Release mailbox registers. */
+					WRT_REG_WORD(&reg->semaphore, 0);
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				} else if (stat == 0x10 || stat == 0x11) {
+					set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+					mb0 = RD_REG_WORD(&reg->mailbox0);
+					mb2 = RD_REG_WORD(&reg->mailbox2);
+
+					WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+					break;
+				}
+
+				/* clear this intr; it wasn't a mailbox intr */
+				WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+			}
+
+			mdelay(5);
+		}
+
+		if (test_and_clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags)) {
+			rval = mb0 & MBS_MASK;
+			printk("%04x ", mb2);
+		} else {
+			rval = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	printk("\n[<==END] ISP DEBUG DUMP\n");
+
+done:
+	if (!hardware_locked)
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+}
+#else /* if defined(ISP2100) */
+
+/**
+ * qla2x00_fw_dump() - Dumps binary data from the 2100 firmware.
+ * @ha: SCSI driver HA context
+ * @hardware_locked: Called with the hardware_lock
+ *
+ * NOTE: On the ISP2100, this function will not be implemented.
+ */
+void
+qla2x00_dump_isp(scsi_qla_host_t *ha, int hardware_locked)
+{
+	/* NO-OP */
+	printk("\n\n[==>BEG]\n");
+	printk("\n[<==END] ISP DEBUG DUMP\n");
+}
+
+#endif /* if defined(ISP2300) */
+
+//FIXME
+
+/****************************************************************************/
+/*                         Driver Debug Functions.                          */
+/****************************************************************************/
+
+void 
+qla2x00_dump_regs(scsi_qla_host_t *ha) 
+{
+	device_reg_t	*reg;
+
+	reg = ha->iobase;
+
+	printk("Mailbox registers:\n");
+	printk("scsi(%ld): mbox 0 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox0));
+	printk("scsi(%ld): mbox 1 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox1));
+	printk("scsi(%ld): mbox 2 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox2));
+	printk("scsi(%ld): mbox 3 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox3));
+	printk("scsi(%ld): mbox 4 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox4));
+	printk("scsi(%ld): mbox 5 0x%04x \n",
+	    ha->host_no, RD_REG_WORD(&reg->mailbox5));
+}
+
+
+void
+qla2x00_dump_buffer(uint8_t * b, uint32_t size) 
+{
+	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");
+
+	for (cnt = 0; cnt < size;) {
+		c = *b++;
+		printk("%02x",(uint32_t) c);
+		cnt++;
+		if (!(cnt % 16))
+			printk("\n");
+		else
+			printk("  ");
+	}
+	if (cnt % 16)
+		printk("\n");
+}
+
+/**************************************************************************
+ *   qla2x00_print_scsi_cmd
+ *	 Dumps out info about the scsi cmd and srb.
+ *   Input	 
+ *	 cmd : struct scsi_cmnd
+ **************************************************************************/
+void
+qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd) 
+{
+	int i;
+	struct scsi_qla_host *ha;
+	srb_t *sp;
+
+	ha = (struct scsi_qla_host *)cmd->device->host->hostdata;
+
+	sp = (srb_t *) cmd->SCp.ptr;
+	printk("SCSI Command @=0x%p, Handle=0x%p\n", cmd, cmd->host_scribble);
+	printk("  chan=0x%02x, target=0x%02x, lun=0x%02x, cmd_len=0x%02x\n",
+	    cmd->device->channel, cmd->device->id, cmd->device->lun,
+	    cmd->cmd_len);
+	printk(" CDB: ");
+	for (i = 0; i < cmd->cmd_len; i++) {
+		printk("0x%02x ", cmd->cmnd[i]);
+	}
+	printk("\n  seg_cnt=%d, allowed=%d, retries=%d, "
+	    "serial_number_at_timeout=0x%lx\n",
+	    cmd->use_sg, cmd->allowed, cmd->retries,
+	    cmd->serial_number_at_timeout);
+	printk("  request buffer=0x%p, request buffer len=0x%x\n",
+	    cmd->request_buffer, cmd->request_bufflen);
+	printk("  tag=%d, flags=0x%x, transfersize=0x%x\n",
+	    cmd->tag, cmd->flags, cmd->transfersize);
+	printk("  serial_number=%lx, SP=%p\n", cmd->serial_number, sp); 
+	printk("  data direction=%d\n", cmd->sc_data_direction);
+
+	if (!sp)
+		return;
+
+	printk("  sp flags=0x%x\n", sp->flags);
+	printk("  r_start=0x%lx, u_start=0x%lx, f_start=0x%lx, state=%d\n",
+	    sp->r_start, sp->u_start, sp->f_start, sp->state);
+
+	printk(" e_start= 0x%lx, ext_history=%d, fo retry=%d, loopid=%x, "
+	    "port path=%d\n", sp->e_start, sp->ext_history, sp->fo_retry_cnt,
+	    sp->lun_queue->fclun->fcport->loop_id,
+	    sp->lun_queue->fclun->fcport->cur_path);
+}
+
+/*
+ * qla2x00_print_q_info
+ * 	 Prints queue info
+ * Input
+ *      q: lun queue	 
+ */ 
+void 
+qla2x00_print_q_info(struct os_lun *q) 
+{
+	printk("Queue info: flags=0x%lx\n", q->q_flag);
+}
+
+#if defined(QL_DEBUG_ROUTINES)
+/*
+ * qla2x00_formatted_dump_buffer
+ *       Prints string plus buffer.
+ *
+ * Input:
+ *       string  = Null terminated string (no newline at end).
+ *       buffer  = buffer address.
+ *       wd_size = word size 8, 16, 32 or 64 bits
+ *       count   = number of words.
+ */
+void
+qla2x00_formatted_dump_buffer(char *string, uint8_t * buffer, 
+				uint8_t wd_size, uint32_t count) 
+{
+	uint32_t cnt;
+	uint16_t *buf16;
+	uint32_t *buf32;
+
+	if (strcmp(string, "") != 0)
+		printk("%s\n",string);
+
+	switch (wd_size) {
+		case 8:
+			printk(" 0    1    2    3    4    5    6    7    "
+				"8    9    Ah   Bh   Ch   Dh   Eh   Fh\n");
+			printk("-----------------------------------------"
+				"-------------------------------------\n");
+
+			for (cnt = 1; cnt <= count; cnt++, buffer++) {
+				printk("%02x",*buffer);
+				if (cnt % 16 == 0)
+					printk("\n");
+				else
+					printk("  ");
+			}
+			if (cnt % 16 != 0)
+				printk("\n");
+			break;
+		case 16:
+			printk("   0      2      4      6      8      Ah "
+				"	Ch     Eh\n");
+			printk("-----------------------------------------"
+				"-------------\n");
+
+			buf16 = (uint16_t *) buffer;
+			for (cnt = 1; cnt <= count; cnt++, buf16++) {
+				printk("%4x",*buf16);
+
+				if (cnt % 8 == 0)
+					printk("\n");
+				else if (*buf16 < 10)
+					printk("   ");
+				else
+					printk("  ");
+			}
+			if (cnt % 8 != 0)
+				printk("\n");
+			break;
+		case 32:
+			printk("       0          4          8          Ch\n");
+			printk("------------------------------------------\n");
+
+			buf32 = (uint32_t *) buffer;
+			for (cnt = 1; cnt <= count; cnt++, buf32++) {
+				printk("%8x", *buf32);
+
+				if (cnt % 4 == 0)
+					printk("\n");
+				else if (*buf32 < 10)
+					printk("   ");
+				else
+					printk("  ");
+			}
+			if (cnt % 4 != 0)
+				printk("\n");
+			break;
+		default:
+			break;
+	}
+}
+
+#endif
+
+
+#if STOP_ON_ERROR
+/**************************************************************************
+*   qla2x00_panic
+*
+**************************************************************************/
+static void 
+qla2x00_panic(char *cp, struct Scsi_Host *host) 
+{
+	struct scsi_qla_host *ha;
+	long *fp;
+
+	ha = (struct scsi_qla_host *) host->hostdata;
+	DEBUG2(ql2x_debug_print = 1;);
+	printk("qla2100 - PANIC:  %s\n", cp);
+	printk("Current time=0x%lx\n", jiffies);
+	printk("Number of pending commands =0x%lx\n", ha->actthreads);
+	printk("Number of queued commands =0x%lx\n", ha->qthreads);
+	printk("Number of free entries = (%d)\n", ha->req_q_cnt);
+	printk("Request Queue @ 0x%lx, Response Queue @ 0x%lx\n",
+			       ha->request_dma, ha->response_dma);
+	printk("Request In Ptr %d\n", ha->req_ring_index);
+	fp = (long *) &ha->flags;
+	printk("HA flags =0x%lx\n", *fp);
+	qla2x00_dump_requests(ha);
+	qla2x00_dump_regs(ha);
+	cli();
+	for (;;) {
+		udelay(2);
+		barrier();
+		/* cpu_relax();*/
+	}
+	sti();
+}
+
+#endif
+
+/**************************************************************************
+*   qla2x00_dump_requests
+*
+**************************************************************************/
+void
+qla2x00_dump_requests(scsi_qla_host_t *ha) 
+{
+
+	struct scsi_cmnd       *cp;
+	srb_t           *sp;
+	int i;
+
+	printk("Outstanding Commands on controller:\n");
+
+	for (i = 1; i < MAX_OUTSTANDING_COMMANDS; i++) {
+		if ((sp = ha->outstanding_cmds[i]) == NULL)
+			continue;
+		if ((cp = sp->cmd) == NULL)
+			continue;
+
+		printk("(%d): Pid=%d, sp flags=0x%lx, cmd=0x%p\n", 
+			i, 
+			(int)sp->cmd->serial_number, 
+			(long)sp->flags,CMD_SP(sp->cmd));
+	}
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_dbg.h 350-qlogic/drivers/scsi/qla2xxx/qla_dbg.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_dbg.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_dbg.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,138 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+#undef ENTER_TRACE
+/*
+* Macros use for debugging the driver.
+*/
+#if defined(ENTER_TRACE)
+#define ENTER(x)	do { printk("qla2100 : Entering %s()\n", x); } while (0)
+#define LEAVE(x)	do { printk("qla2100 : Leaving %s()\n", x);  } while (0)
+#define ENTER_INTR(x)	do { printk("qla2100 : Entering %s()\n", x); } while (0)
+#define LEAVE_INTR(x)	do { printk("qla2100 : Leaving %s()\n", x);  } while (0)
+#else
+#define ENTER(x)	do {} while (0)
+#define LEAVE(x)	do {} while (0)
+#define ENTER_INTR(x) 	do {} while (0)
+#define LEAVE_INTR(x)   do {} while (0)
+#endif
+
+#if  DEBUG_QLA2100
+#define DEBUG(x)	do {x;} while (0);
+#else
+#define DEBUG(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_1)
+#define DEBUG1(x)	do {x;} while (0);
+#else
+#define DEBUG1(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_2)
+#define DEBUG2(x)       do {x;} while (0);
+#define DEBUG2_3(x)     do {x;} while (0);
+#define DEBUG2_3_11(x)  do {x;} while (0);
+#define DEBUG2_9_10(x)    do {x;} while (0);
+#define DEBUG2_11(x)    do {x;} while (0);
+#else
+#define DEBUG2(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_3)
+#define DEBUG3(x)	do {x;} while (0);
+#define DEBUG2_3(x)	do {x;} while (0);
+#define DEBUG2_3_11(x)	do {x;} while (0);
+#define DEBUG3_11(x)	do {x;} while (0);
+#else
+#define DEBUG3(x)	do {} while (0);
+  #if !defined(QL_DEBUG_LEVEL_2)
+  #define DEBUG2_3(x)	do {} while (0);
+  #endif
+#endif
+
+#if defined(QL_DEBUG_LEVEL_4)
+#define DEBUG4(x)	do {x;} while (0);
+#else
+#define DEBUG4(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_5)
+#define DEBUG5(x)          do {x;} while (0);
+#else
+#define DEBUG5(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_7)
+#define DEBUG7(x)          do {x;} while (0);
+#else
+#define DEBUG7(x)	   do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_9)
+#define DEBUG9(x)       do {x;} while (0);
+#define DEBUG9_10(x)    do {x;} while (0);
+#define DEBUG2_9_10(x)	do {x;} while (0);
+#else
+#define DEBUG9(x)	do {} while (0);
+#endif
+
+#if defined(QL_DEBUG_LEVEL_10)
+#define DEBUG10(x)      do {x;} while (0);
+#define DEBUG2_9_10(x)	do {x;} while (0);
+#define DEBUG9_10(x)	do {x;} while (0);
+#else
+#define DEBUG10(x)	do {} while (0);
+  #if !defined(DEBUG2_9_10)
+  #define DEBUG2_9_10(x)	do {} while (0);
+  #endif
+  #if !defined(DEBUG9_10)
+  #define DEBUG9_10(x)	do {} while (0);
+  #endif
+#endif
+
+#if defined(QL_DEBUG_LEVEL_11)
+#define DEBUG11(x)      do{x;} while(0);
+#if !defined(DEBUG2_11)
+#define DEBUG2_11(x)    do{x;} while(0);
+#endif
+#if !defined(DEBUG2_3_11)
+#define DEBUG2_3_11(x)  do{x;} while(0);
+#endif
+#if !defined(DEBUG3_11)
+#define DEBUG3_11(x)    do{x;} while(0);
+#endif
+#else
+#define DEBUG11(x)	do{} while(0);
+  #if !defined(QL_DEBUG_LEVEL_2)
+  #define DEBUG2_11(x)	do{} while(0);
+    #if !defined(QL_DEBUG_LEVEL_3)
+    #define DEBUG2_3_11(x) do{} while(0);
+    #endif
+  #endif
+  #if !defined(QL_DEBUG_LEVEL_3)
+  #define DEBUG3_11(x)	do{} while(0);
+  #endif
+#endif
+
+#if defined(QL_DEBUG_LEVEL_12)
+#define DEBUG12(x)      do {x;} while (0);
+#else
+#define DEBUG12(x)	do {} while (0);
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_def.h 350-qlogic/drivers/scsi/qla2xxx/qla_def.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_def.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_def.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,2491 @@
+/********************************************************************************
+*                  QLOGIC LINUX SOFTWARE
+*
+* QLogic ISP2x00 device driver for Linux 2.5.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_DEF_H
+#define __QLA_DEF_H
+
+#if defined(qla23xx)
+	#define MAILBOX_REGISTER_COUNT	32
+	#define ISP_NAME		"23xx"
+	#define DRIVER_NAME		"qla2300"
+	#define ISP2300
+	#undef ISP2322
+#elif defined(qla22xx)
+	#define MAILBOX_REGISTER_COUNT	32
+	#define ISP_NAME		"22xx"
+	#define DRIVER_NAME		"qla2200"
+	#define ISP2200
+#elif defined(qla21xx)
+	#define MAILBOX_REGISTER_COUNT	8
+	#define ISP_NAME		"21xx"
+	#define DRIVER_NAME		"qla2100"
+	#define ISP2100
+#else
+#warning Please define an ISP type for compilation!!!
+#endif
+
+/*****************************************/
+/*   ISP Boards supported by this driver */
+/*****************************************/
+#define QLA2X00_VENDOR_ID	0x1077
+
+#define QLA2100_DEVICE_ID	0x2100
+
+#define QLA2200_DEVICE_ID	0x2200
+#define QLA2200A_RISC_ROM_VER	4
+
+#define QLA2300_DEVICE_ID	0x2300
+#define QLA2312_DEVICE_ID	0x2312
+#define QLA2322_DEVICE_ID	0x2322
+#define FPM_2300		6
+#define FPM_2310		7
+
+#include "qla_settings.h"
+#include "exioct.h"
+#include "inioct.h"
+
+#if !defined(ISP2100)
+#undef FC_IP_SUPPORT
+#if defined(FC_IP_SUPPORT)
+#include <linux/ip.h>
+#include <linux/if_arp.h>
+#include <linux/skbuff.h>
+#include "qla_ip.h"
+#endif
+#endif
+
+
+/* 
+ * Data bit definitions
+ */
+#define BIT_0	0x1
+#define BIT_1	0x2
+#define BIT_2	0x4
+#define BIT_3	0x8
+#define BIT_4	0x10
+#define BIT_5	0x20
+#define BIT_6	0x40
+#define BIT_7	0x80
+#define BIT_8	0x100
+#define BIT_9	0x200
+#define BIT_10	0x400
+#define BIT_11	0x800
+#define BIT_12	0x1000
+#define BIT_13	0x2000
+#define BIT_14	0x4000
+#define BIT_15	0x8000
+#define BIT_16	0x10000
+#define BIT_17	0x20000
+#define BIT_18	0x40000
+#define BIT_19	0x80000
+#define BIT_20	0x100000
+#define BIT_21	0x200000
+#define BIT_22	0x400000
+#define BIT_23	0x800000
+#define BIT_24	0x1000000
+#define BIT_25	0x2000000
+#define BIT_26	0x4000000
+#define BIT_27	0x8000000
+#define BIT_28	0x10000000
+#define BIT_29	0x20000000
+#define BIT_30	0x40000000
+#define BIT_31	0x80000000
+
+#define LSB(x)	((uint8_t)(x))
+#define MSB(x)	((uint8_t)((uint16_t)(x) >> 8))
+
+#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)) >> 16) >> 16))
+
+
+/*
+ * I/O register
+*/
+
+#if MEMORY_MAPPED_IO
+#define RD_REG_BYTE(addr)		readb(addr)
+#define RD_REG_WORD(addr)		readw(addr)
+#define RD_REG_DWORD(addr)		readl(addr)
+#define WRT_REG_BYTE(addr, data)	writeb(data,addr)
+#define WRT_REG_WORD(addr, data)	writew(data,addr)
+#define WRT_REG_DWORD(addr, data)	writel(data,addr)
+#else   /* MEMORY_MAPPED_IO */
+#define RD_REG_BYTE(addr)		(inb((unsigned long)addr))
+#define RD_REG_WORD(addr)		(inw((unsigned long)addr))
+#define RD_REG_DWORD(addr)		(inl((unsigned long)addr))
+#define WRT_REG_BYTE(addr, data)	(outb(data,(unsigned long)addr))
+#define WRT_REG_WORD(addr, data)	(outw(data,(unsigned long)addr))
+#define WRT_REG_DWORD(addr, data)	(outl(data,(unsigned long)addr))
+#endif  /* MEMORY_MAPPED_IO */
+
+/*
+ * Fibre Channel device definitions.
+ */
+#define WWN_SIZE		8	/* Size of WWPN, WWN & WWNN */
+#define MAX_FIBRE_DEVICES	256
+#define MAX_FIBRE_LUNS  	256
+#define	MAX_RSCN_COUNT		10
+#define	MAX_HOST_COUNT		16
+
+/*
+ * Host adapter default definitions.
+ */
+#define MAX_BUSES		1  /* We only have one bus today */
+#define MAX_TARGETS_2100	MAX_FIBRE_DEVICES
+#define MAX_TARGETS_2200	MAX_FIBRE_DEVICES
+#define MAX_TARGETS		MAX_FIBRE_DEVICES
+#define MIN_LUNS		8
+#define MAX_LUNS		MAX_FIBRE_LUNS
+#define MAX_CMDS_PER_LUN	255 
+#define MAX_SRBS		4096
+                                    
+/*
+ * 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 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)
+
+/*
+ * Timeout timer counts in seconds
+ */
+#define QLA2100_WDG_TIME_QUANTUM	5	/* In seconds */
+#define PORT_RETRY_TIME			2
+#define LOOP_DOWN_TIMEOUT		60
+#define LOOP_DOWN_TIME			255	/* 240 */
+#define	LOOP_DOWN_RESET			(LOOP_DOWN_TIME - 30)
+
+/* Maximum outstanding commands in ISP queues (1-65535) */
+#define MAX_OUTSTANDING_COMMANDS	1024
+
+/* ISP request and response entry counts (37-65535) */
+#define REQUEST_ENTRY_CNT		1024	/* Number of request entries. */
+#if defined(ISP2100) || defined(ISP2200)
+#define RESPONSE_ENTRY_CNT		64	/* Number of response entries.*/
+#else
+#define RESPONSE_ENTRY_CNT		512	/* Number of response entries.*/
+#endif
+
+/* Calculations for SG segments */
+#define SEGS_PER_REQUEST_32	3 
+#define SEGS_PER_CONT_32	7
+#define SG_SEGMENTS_32 (SEGS_PER_REQUEST_32 + \
+    (SEGS_PER_CONT_32 * (REQUEST_ENTRY_CNT - 2)))     
+#define SEGS_PER_REQUEST_64	2 
+#define SEGS_PER_CONT_64	5
+#define SG_SEGMENTS_64 (SEGS_PER_REQUEST_64 + \
+    (SEGS_PER_CONT_64 * (REQUEST_ENTRY_CNT - 2)))     
+
+/*
+ * SCSI Request Block 
+ */
+typedef struct srb {
+	struct list_head list;
+
+	struct scsi_cmnd *cmd;		/* Linux SCSI command pkt */
+	struct scsi_qla_host *ha;	/* HA the SP is queued on */
+
+	struct timer_list timer;	/* Command timer */
+
+	atomic_t	ref_count;	/* Reference count for this structure */			
+	uint16_t	flags;		/* Status flags - defined below */
+	uint16_t	state;		/* Request state */
+#define SRB_FREE_STATE          0	/*   returned back */
+#define SRB_PENDING_STATE       1	/*   queued in LUN Q */
+#define SRB_ACTIVE_STATE        2	/*   in Active Array */
+#define SRB_DONE_STATE          3	/*   queued in Done Queue */
+#define SRB_RETRY_STATE         4	/*   in Retry Queue */
+#define SRB_SUSPENDED_STATE     5	/*   in suspended state */
+#define SRB_NO_QUEUE_STATE      6	/*   is in between states */
+#define SRB_ACTIVE_TIMEOUT_STATE 7	/*   in Active Array but timed out */
+#define SRB_FAILOVER_STATE 	8	/*   in Failover Queue */
+#define SRB_SCSI_RETRY_STATE    9	/*   in Scsi Retry Queue */
+
+	dma_addr_t	dma_handle;	/* for unmap of single transfers */
+
+	/* 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. */
+
+	uint16_t    magic;		/* SRB magic number */
+#define SRB_MAGIC       0x10CB
+
+	/* Raw completion info for use by failover ? */
+	uint8_t	fo_retry_cnt;		/* Retry count this request */
+	uint8_t	err_id;			/* error id */
+
+	int      delay;			/* delay in seconds */
+	int      ext_history;
+
+	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;	/* jiffies when put in failover queue*/
+
+	uint32_t request_sense_length;
+	uint8_t *request_sense_ptr;
+} srb_t;
+
+/*
+ * SRB flag definitions
+ */
+#define SRB_TIMEOUT		BIT_0	/* Command timed out */
+#define SRB_DMA_VALID		BIT_1	/* Command sent to ISP */
+#define SRB_WATCHDOG		BIT_2	/* Command on watchdog list */
+#define SRB_ABORT_PENDING	BIT_3	/* Command abort sent to device */
+
+#define SRB_ABORTED		BIT_4	/* Command aborted command already */
+#define SRB_RETRY		BIT_5	/* Command needs retrying */
+#define SRB_GOT_SENSE		BIT_6	/* Command has sense data */
+#define SRB_FAILOVER		BIT_7	/* Command in failover state */
+
+#define SRB_BUSY		BIT_8	/* Command is in busy retry state */
+#define SRB_FO_CANCEL		BIT_9	/* Command don't need to do failover */
+#define	SRB_IOCTL		BIT_10	/* IOCTL command. */
+
+
+/*
+ * ISP I/O Register Set structure definitions.
+ */
+typedef volatile struct {
+	volatile uint16_t flash_address; /* Flash BIOS address */
+	volatile uint16_t flash_data;	/* Flash BIOS data */
+	uint16_t unused_1[1];		/* Gap */
+	volatile uint16_t ctrl_status;	/* Control/Status */
+#define CSR_FLASH_64K_BANK	BIT_3	/* Flash upper 64K bank select */ 
+#define CSR_FLASH_ENABLE	BIT_1	/* Flash BIOS Read/Write enable */
+#define CSR_ISP_SOFT_RESET	BIT_0	/* ISP soft reset */
+
+	volatile uint16_t ictrl;	/* Interrupt control */
+#define ICR_EN_INT		BIT_15	/* ISP enable interrupts. */
+#define ICR_EN_RISC		BIT_3	/* ISP enable RISC interrupts. */
+
+	volatile uint16_t istatus;	/* Interrupt status */
+#define ISR_RISC_INT		BIT_3	/* RISC interrupt */
+
+	volatile uint16_t semaphore;	/* Semaphore */
+	volatile uint16_t nvram;	/* NVRAM register. */
+#define NVR_DESELECT		0
+#define NVR_CLOCK		BIT_0
+#define NVR_SELECT		BIT_1
+#define NVR_DATA_OUT		BIT_2
+#define NVR_DATA_IN		BIT_3
+#define NVR_BUSY		BIT_15
+
+#if defined(ISP2100) || defined(ISP2200)
+	volatile uint16_t mailbox0;
+	volatile uint16_t mailbox1;
+	volatile uint16_t mailbox2;
+	volatile uint16_t mailbox3;
+	volatile uint16_t mailbox4;
+#define	ISP_REQ_Q_IN(reg)	(&(reg)->mailbox4)
+#define	ISP_REQ_Q_OUT(reg)	(&(reg)->mailbox4)
+	volatile uint16_t mailbox5;
+#define	ISP_RSP_Q_IN(reg)	(&(reg)->mailbox5)
+#define	ISP_RSP_Q_OUT(reg)	(&(reg)->mailbox5)
+	volatile uint16_t mailbox6;
+	volatile uint16_t mailbox7;
+	uint16_t unused_2[0x3b];	/* Gap */
+#else /* defined(ISP2300) */
+	volatile uint16_t req_q_in;	/* Request Queue In-Pointer */
+#define	ISP_REQ_Q_IN(reg)	(&(reg)->req_q_in)
+	volatile uint16_t req_q_out;	/* Request Queue Out-Pointer */
+#define	ISP_REQ_Q_OUT(reg)	(&(reg)->req_q_out)
+	volatile uint16_t rsp_q_in;	/* Response Queue In-Pointer */
+#define	ISP_RSP_Q_IN(reg)	(&(reg)->rsp_q_in)
+	volatile uint16_t rsp_q_out;	/* Response Queue Out-Pointer */
+#define	ISP_RSP_Q_OUT(reg)	(&(reg)->rsp_q_out)
+
+	volatile uint16_t host_status_lo; /* RISC to Host Status Low */
+#define HSR_INT			BIT_15	/* RISC int */
+#define HSR_RISC_PAUSED		BIT_8	/* RISC Paused */
+	volatile uint16_t host_status_hi; /* RISC to Host Status High */
+
+	volatile uint16_t host_semaphore; /* Host to Host Semaphore */
+	uint16_t unused_3[0x11];	/* Gap */
+	volatile uint16_t mailbox0;
+	volatile uint16_t mailbox1;
+	volatile uint16_t mailbox2;
+	volatile uint16_t mailbox3;
+	volatile uint16_t mailbox4;
+	volatile uint16_t mailbox5;
+	volatile uint16_t mailbox6;
+	volatile uint16_t mailbox7;
+	volatile uint16_t mailbox8;
+	volatile uint16_t mailbox9;
+	volatile uint16_t mailbox10;
+	volatile uint16_t mailbox11;
+	volatile uint16_t mailbox12;
+	volatile uint16_t mailbox13;
+	volatile uint16_t mailbox14;
+	volatile uint16_t mailbox15;
+	volatile uint16_t mailbox16;
+	volatile uint16_t mailbox17;
+	volatile uint16_t mailbox18;
+	volatile uint16_t mailbox19;
+	volatile uint16_t mailbox20;
+	volatile uint16_t mailbox21;
+	volatile uint16_t mailbox22;
+	volatile uint16_t mailbox23;
+	volatile uint16_t mailbox24;
+	volatile uint16_t mailbox25;
+	volatile uint16_t mailbox26;
+	volatile uint16_t mailbox27;
+	volatile uint16_t mailbox28;
+	volatile uint16_t mailbox29;
+	volatile uint16_t mailbox30;
+	volatile uint16_t mailbox31;
+	volatile uint16_t fb_cmd;
+	uint16_t unused_4[0xa];		/* Gap */
+#endif /* defined(ISP2100) || defined(ISP2200) */
+	volatile uint16_t fpm_diag_config;
+	uint16_t unused_5[0x6];		/* Gap */
+	volatile uint16_t pcr;		/* Processor Control Register. */
+	uint16_t unused_6[0x5];		/* Gap */
+	volatile uint16_t mctr;		/* Memory Configuration and Timing. */
+	uint16_t unused_7[0x3];		/* Gap */
+#if defined(ISP2100) || defined(ISP2200)
+	volatile uint16_t fb_cmd;
+#else /* defined(ISP2300) */
+	uint16_t unused_11;
+#endif /* defined(ISP2100) || defined(ISP2200) */
+	uint16_t unused_8[0x3];		/* Gap */
+	volatile uint16_t hccr;		/* Host command & control register. */
+#define HCCR_HOST_INT		BIT_7	/* Host interrupt bit */
+#define HCCR_RISC_PAUSE		BIT_5	/* Pause mode bit */
+					/* HCCR commands */
+#define HCCR_RESET_RISC		0x1000	/* Reset RISC */
+#define HCCR_PAUSE_RISC		0x2000	/* Pause RISC */
+#define HCCR_RELEASE_RISC	0x3000	/* Release RISC from reset. */
+#define HCCR_SET_HOST_INT	0x5000	/* Set host interrupt */
+#define HCCR_CLR_HOST_INT	0x6000	/* Clear HOST interrupt */
+#define HCCR_CLR_RISC_INT	0x7000	/* Clear RISC interrupt */
+#define	HCCR_DISABLE_PARITY_PAUSE 0x4001 /* Disable parity error RISC pause. */
+#define HCCR_ENABLE_PARITY	0xA000	/* Enable PARITY interrupt */
+
+	uint16_t unused_9[5];		/* Gap */
+	volatile uint16_t gpiod;	/* GPIO Data register. */
+	volatile uint16_t gpioe;	/* GPIO Enable register. */
+#define GPIO_LED_MASK			0x00C0
+#define GPIO_LED_GREEN_OFF_AMBER_OFF	0x0000
+#define GPIO_LED_GREEN_ON_AMBER_OFF	0x0040
+#define GPIO_LED_GREEN_OFF_AMBER_ON	0x0080
+#define GPIO_LED_GREEN_ON_AMBER_ON	0x00C0
+
+#if defined(ISP2200)
+	uint16_t unused_10[8];		/* Gap */
+	volatile uint16_t mailbox8;
+	volatile uint16_t mailbox9;
+	volatile uint16_t mailbox10;
+	volatile uint16_t mailbox11;
+	volatile uint16_t mailbox12;
+	volatile uint16_t mailbox13;
+	volatile uint16_t mailbox14;
+	volatile uint16_t mailbox15;
+	volatile uint16_t mailbox16;
+	volatile uint16_t mailbox17;
+	volatile uint16_t mailbox18;
+	volatile uint16_t mailbox19;
+	volatile uint16_t mailbox20;
+	volatile uint16_t mailbox21;
+	volatile uint16_t mailbox22;
+	volatile uint16_t mailbox23;	/* Also probe reg. */
+#endif /* defined(ISP2200) */
+} device_reg_t;
+
+typedef struct {
+	uint32_t	out_mb;		/* outbound from driver */
+	uint32_t	in_mb;			/* Incoming from RISC */
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+	long		buf_size;
+	void		*bufp;
+	uint32_t	tov;
+	uint8_t		flags;
+#define MBX_DMA_IN	BIT_0
+#define	MBX_DMA_OUT	BIT_1
+#define IOCTL_CMD	BIT_2
+} mbx_cmd_t;
+
+#define	MBX_TOV_SECONDS	30
+
+/*
+ *  ISP product identification definitions in mailboxes after reset.
+ */
+#define PROD_ID_1		0x4953
+#define PROD_ID_2		0x0000
+#define PROD_ID_2a		0x5020
+#define PROD_ID_3		0x2020
+
+/*
+ * ISP mailbox Self-Test status codes
+ */
+#define MBS_FRM_ALIVE		0	/* Firmware Alive. */
+#define MBS_CHKSUM_ERR		1	/* Checksum Error. */
+#define MBS_BUSY		4	/* Busy. */
+
+/*
+ * ISP mailbox command complete status codes
+ */
+#define MBS_COMMAND_COMPLETE		0x4000
+#define MBS_INVALID_COMMAND		0x4001
+#define MBS_HOST_INTERFACE_ERROR	0x4002
+#define MBS_TEST_FAILED			0x4003
+#define MBS_COMMAND_ERROR		0x4005
+#define MBS_COMMAND_PARAMETER_ERROR	0x4006
+#define MBS_PORT_ID_USED		0x4007
+#define MBS_LOOP_ID_USED		0x4008
+#define MBS_ALL_IDS_IN_USE		0x4009
+#define MBS_NOT_LOGGED_IN		0x400A
+
+/*
+ * ISP mailbox asynchronous event status codes
+ */
+#define MBA_ASYNC_EVENT		0x8000	/* Asynchronous event. */
+#define MBA_RESET		0x8001	/* Reset Detected. */
+#define MBA_SYSTEM_ERR		0x8002	/* System Error. */
+#define MBA_REQ_TRANSFER_ERR	0x8003	/* Request Transfer Error. */
+#define MBA_RSP_TRANSFER_ERR	0x8004	/* Response Transfer Error. */
+#define MBA_WAKEUP_THRES	0x8005	/* Request Queue Wake-up. */
+#define MBA_LIP_OCCURRED	0x8010	/* Loop Initialization Procedure */
+					/* occurred. */
+#define MBA_LOOP_UP		0x8011	/* FC Loop UP. */
+#define MBA_LOOP_DOWN		0x8012	/* FC Loop Down. */
+#define MBA_LIP_RESET		0x8013	/* LIP reset occurred. */
+#define MBA_PORT_UPDATE		0x8014	/* Port Database update. */
+#define MBA_RSCN_UPDATE		0x8015	/* Register State Chg Notification. */
+#define MBA_LIP_F8		0x8016	/* Received a LIP F8. */
+#define MBA_LOOP_INIT_ERR	0x8017	/* Loop Initialization Error. */
+#define MBA_FABRIC_AUTH_REQ	0x801b	/* Fabric Authentication Required. */
+#define MBA_SCSI_COMPLETION	0x8020	/* SCSI Command Complete. */
+#define MBA_CTIO_COMPLETION	0x8021	/* CTIO Complete. */
+#define MBA_IP_COMPLETION	0x8022	/* IP Transmit Command Complete. */
+#define MBA_IP_RECEIVE		0x8023	/* IP Received. */
+#define MBA_IP_BROADCAST	0x8024	/* IP Broadcast Received. */
+#define MBA_IP_LOW_WATER_MARK	0x8025	/* IP Low Water Mark reached. */
+#define MBA_IP_RCV_BUFFER_EMPTY 0x8026	/* IP receive buffer queue empty. */
+#define MBA_IP_HDR_DATA_SPLIT	0x8027	/* IP header/data splitting feature */
+					/* used. */
+#define MBA_POINT_TO_POINT	0x8030	/* Point to point mode. */
+#define MBA_CMPLT_1_16BIT	0x8031	/* Completion 1 16bit IOSB. */
+#define MBA_CMPLT_2_16BIT	0x8032	/* Completion 2 16bit IOSB. */
+#define MBA_CMPLT_3_16BIT	0x8033	/* Completion 3 16bit IOSB. */
+#define MBA_CMPLT_4_16BIT	0x8034	/* Completion 4 16bit IOSB. */
+#define MBA_CMPLT_5_16BIT	0x8035	/* Completion 5 16bit IOSB. */
+#define MBA_CHG_IN_CONNECTION	0x8036	/* Change in connection mode. */
+#define MBA_RIO_RESPONSE	0x8040	/* RIO response queue update. */
+#define MBA_ZIO_RESPONSE	0x8040	/* ZIO response queue update. */
+#define MBA_CMPLT_2_32BIT	0x8042	/* Completion 2 32bit IOSB. */
+#define MBA_BYPASS_NOTIFICATION	0x8043	/* Auto bypass notification. */
+#define MBA_DISCARD_RND_FRAME	0x8048	/* discard RND frame due to error. */
+#define MBA_REJECTED_FCP_CMD	0x8049	/* rejected FCP_CMD. */
+
+/*
+ * Firmware options 1, 2, 3.
+ */
+#define FO1_AE_ON_LIPF8			BIT_0
+#define FO1_AE_ALL_LIP_RESET		BIT_1
+#define FO1_CTIO_RETRY			BIT_3
+#define FO1_DISABLE_LIP_F7_SW		BIT_4
+#define FO1_DISABLE_100MS_LOS_WAIT	BIT_5
+#define FO1_DISABLE_GPIO6_7		BIT_6
+#define FO1_AE_ON_LOOP_INIT_ERR		BIT_7
+#define FO1_SET_EMPHASIS_SWING		BIT_8
+#define FO1_AE_AUTO_BYPASS		BIT_9
+#define FO1_ENABLE_PURE_IOCB		BIT_10
+#define FO1_AE_PLOGI_RJT		BIT_11
+#define FO1_ENABLE_ABORT_SEQUENCE	BIT_12
+#define FO1_AE_QUEUE_FULL		BIT_13
+
+#define FO2_ENABLE_ATIO_TYPE_3		BIT_0
+#define FO2_REV_LOOPBACK		BIT_1
+
+#define FO3_ENABLE_EMERG_IOCB		BIT_0
+#define FO3_AE_RND_ERROR		BIT_1
+
+/*
+ * ISP mailbox commands
+ */
+#define MBC_LOAD_RAM			1	/* Load RAM. */
+#define MBC_EXECUTE_FIRMWARE		2	/* Execute firmware. */
+#define MBC_WRITE_RAM_WORD		4	/* Write RAM word. */
+#define MBC_READ_RAM_WORD		5	/* Read RAM word. */
+#define MBC_MAILBOX_REGISTER_TEST	6	/* Wrap incoming mailboxes */
+#define MBC_VERIFY_CHECKSUM		7	/* Verify checksum. */
+#define MBC_GET_FIRMWARE_VERSION	8	/* Get firmware revision. */
+#define MBC_LOAD_RISC_RAM		9	/* Load RAM command. */
+#define MBC_DUMP_RISC_RAM		0xa	/* Dump RAM command. */
+#define MBC_LOAD_RISC_RAM_EXTENDED	0xb	/* Load RAM extended. */
+#define MBC_DUMP_RISC_RAM_EXTENDED	0xc	/* Dump RAM extended. */
+#define MBC_WRITE_RAM_WORD_EXTENDED	0xd	/* Write RAM word extended */
+#define MBC_READ_RAM_EXTENDED		0xf	/* Read RAM extended. */
+#define MBC_IOCB_COMMAND		0x12	/* Execute IOCB command. */
+#define MBC_ABORT_COMMAND		0x15	/* Abort IOCB command. */
+#define MBC_ABORT_DEVICE		0x16	/* Abort device (ID/LUN). */
+#define MBC_ABORT_TARGET		0x17	/* Abort target (ID). */
+#define MBC_RESET			0x18	/* Reset. */
+#define MBC_GET_ADAPTER_LOOP_ID		0x20	/* Get loop id of ISP2200. */
+#define MBC_GET_RETRY_COUNT		0x22	/* Get f/w retry cnt/delay. */
+#define MBC_DISABLE_VI			0x24	/* Disable VI operation. */
+#define MBC_ENABLE_VI			0x25	/* Enable VI operation. */
+#define MBC_GET_FIRMWARE_OPTION		0x28	/* Get Firmware Options. */
+#define MBC_SET_FIRMWARE_OPTION		0x38	/* Set Firmware Options. */
+#define MBC_LOOP_PORT_BYPASS		0x40	/* Loop Port Bypass. */
+#define MBC_LOOP_PORT_ENABLE		0x41	/* Loop Port Enable. */
+#define MBC_NON_PARTICIPATE		0x43	/* Non-Participating Mode. */
+#define MBC_DIAGNOSTIC_ECHO		0x44	/* Diagnostic echo. */
+#define MBC_DIAGNOSTIC_LOOP_BACK	0x45	/* Diagnostic loop back. */
+#define MBC_ONLINE_SELF_TEST		0x46	/* Online self-test. */
+#define MBC_ENHANCED_GET_PORT_DATABASE	0x47	/* Get port database + login */
+#define MBC_RESET_LINK_STATUS		0x52	/* Reset Link Error Status */
+#define MBC_IOCB_COMMAND_A64		0x54	/* Execute IOCB command (64) */
+#define MBC_SEND_RNID_ELS		0x57	/* Send RNID ELS request */
+#define MBC_SET_RNID_PARAMS		0x59	/* Set RNID parameters */
+#define MBC_GET_RNID_PARAMS		0x5a	/* Data Rate */
+#define MBC_DATA_RATE			0x5d	/* Get RNID parameters */
+#define MBC_INITIALIZE_FIRMWARE		0x60	/* Initialize firmware */
+#define MBC_INITIATE_LIP		0x62	/* Initiate Loop */
+						/* Initialization Procedure */
+#define MBC_GET_FC_AL_POSITION_MAP	0x63	/* Get FC_AL Position Map. */
+#define MBC_GET_PORT_DATABASE		0x64	/* Get Port Database. */
+#define MBC_CLEAR_ACA			0x65	/* Clear ACA. */
+#define MBC_TARGET_RESET		0x66	/* Target Reset. */
+#define MBC_CLEAR_TASK_SET		0x67	/* Clear Task Set. */
+#define MBC_ABORT_TASK_SET		0x68	/* Abort Task Set. */
+#define MBC_GET_FIRMWARE_STATE		0x69	/* Get firmware state. */
+#define MBC_GET_PORT_NAME		0x6a	/* Get port name. */
+#define MBC_GET_LINK_STATUS		0x6b	/* Get port link status. */
+#define MBC_LIP_RESET			0x6c	/* LIP reset. */
+#define MBC_SEND_SNS_COMMAND		0x6e	/* Send Simple Name Server */
+						/* commandd. */
+#define MBC_LOGIN_FABRIC_PORT		0x6f	/* Login fabric port. */
+#define MBC_SEND_CHANGE_REQUEST		0x70	/* Send Change Request. */
+#define MBC_LOGOUT_FABRIC_PORT		0x71	/* Logout fabric port. */
+#define MBC_LIP_FULL_LOGIN		0x72	/* Full login LIP. */
+#define MBC_LOGIN_LOOP_PORT		0x74	/* Login Loop Port. */
+#define MBC_PORT_NODE_NAME_LIST		0x75	/* Get port/node name list. */
+#define MBC_INITIALIZE_RECEIVE_QUEUE	0x77	/* Initialize receive queue */
+#define MBC_UNLOAD_IP			0x79	/* Shutdown IP */
+#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 */
+
+/* Firmware return data sizes */
+#define FCAL_MAP_SIZE	128
+
+/* Mailbox bit definitions for out_mb and in_mb */
+#define	MBX_31		BIT_31
+#define	MBX_30		BIT_30
+#define	MBX_29		BIT_29
+#define	MBX_28		BIT_28
+#define	MBX_27		BIT_27
+#define	MBX_26		BIT_26
+#define	MBX_25		BIT_25
+#define	MBX_24		BIT_24
+#define	MBX_23		BIT_23
+#define	MBX_22		BIT_22
+#define	MBX_21		BIT_21
+#define	MBX_20		BIT_20
+#define	MBX_19		BIT_19
+#define	MBX_18		BIT_18
+#define	MBX_17		BIT_17
+#define	MBX_16		BIT_16
+#define	MBX_15		BIT_15
+#define	MBX_14		BIT_14
+#define	MBX_13		BIT_13
+#define	MBX_12		BIT_12
+#define	MBX_11		BIT_11
+#define	MBX_10		BIT_10
+#define	MBX_9		BIT_9
+#define	MBX_8		BIT_8
+#define	MBX_7		BIT_7
+#define	MBX_6		BIT_6
+#define	MBX_5		BIT_5
+#define	MBX_4		BIT_4
+#define	MBX_3		BIT_3
+#define	MBX_2		BIT_2
+#define	MBX_1		BIT_1
+#define	MBX_0		BIT_0
+
+/*
+ * Firmware state codes from get firmware state mailbox command
+ */
+#define FSTATE_CONFIG_WAIT      0
+#define FSTATE_WAIT_AL_PA       1
+#define FSTATE_WAIT_LOGIN       2
+#define FSTATE_READY            3
+#define FSTATE_LOSS_OF_SYNC     4
+#define FSTATE_ERROR            5
+#define FSTATE_REINIT           6
+#define FSTATE_NON_PART         7
+
+#define FSTATE_CONFIG_CORRECT      0
+#define FSTATE_P2P_RCV_LIP         1
+#define FSTATE_P2P_CHOOSE_LOOP     2
+#define FSTATE_P2P_RCV_UNIDEN_LIP  3
+#define FSTATE_FATAL_ERROR         4
+#define FSTATE_LOOP_BACK_CONN      5
+
+/*
+ * Port Database structure definition
+ * Little endian except where noted.
+ */
+#define	PORT_DATABASE_SIZE	128	/* bytes */
+typedef struct {
+	uint8_t options;
+	uint8_t control;
+	uint8_t master_state;
+	uint8_t slave_state;
+	uint8_t reserved[2];
+	uint8_t hard_address;
+	uint8_t reserved_1;
+	uint8_t port_id[4];
+	uint8_t node_name[WWN_SIZE];		/* Big endian. */
+	uint8_t port_name[WWN_SIZE];		/* Big endian. */
+	uint16_t execution_throttle;
+	uint16_t execution_count;
+	uint8_t reset_count;
+	uint8_t reserved_2;
+	uint16_t resource_allocation;
+	uint16_t current_allocation;
+	uint16_t queue_head;
+	uint16_t queue_tail;
+	uint16_t transmit_execution_list_next;
+	uint16_t transmit_execution_list_previous;
+	uint16_t common_features;
+	uint16_t total_concurrent_sequences;
+	uint16_t RO_by_information_category;
+	uint8_t recipient;
+	uint8_t initiator;
+	uint16_t receive_data_size;
+	uint16_t concurrent_sequences;
+	uint16_t open_sequences_per_exchange;
+	uint16_t lun_abort_flags;
+	uint16_t lun_stop_flags;
+	uint16_t stop_queue_head;
+	uint16_t stop_queue_tail;
+	uint16_t port_retry_timer;
+	uint16_t next_sequence_id;
+	uint16_t frame_count;
+	uint16_t PRLI_payload_length;
+	uint8_t prli_svc_param_word_0[2];	/* Big endian */
+						/* Bits 15-0 of word 0 */
+	uint8_t prli_svc_param_word_3[2];	/* Big endian */
+						/* Bits 15-0 of word 3 */
+	uint16_t loop_id;
+	uint16_t extended_lun_info_list_pointer;
+	uint16_t extended_lun_stop_list_pointer;
+} port_database_t;
+
+/*
+ * Port database slave/master states
+ */
+#define PD_STATE_DISCOVERY			0
+#define PD_STATE_WAIT_DISCOVERY_ACK		1
+#define PD_STATE_PORT_LOGIN			2
+#define PD_STATE_WAIT_PORT_LOGIN_ACK		3
+#define PD_STATE_PROCESS_LOGIN			4
+#define PD_STATE_WAIT_PROCESS_LOGIN_ACK		5
+#define PD_STATE_PORT_LOGGED_IN			6
+#define PD_STATE_PORT_UNAVAILABLE		7
+#define PD_STATE_PROCESS_LOGOUT			8
+#define PD_STATE_WAIT_PROCESS_LOGOUT_ACK	9
+#define PD_STATE_PORT_LOGOUT			10
+#define PD_STATE_WAIT_PORT_LOGOUT_ACK		11
+
+
+/*
+ * ISP Initialization Control Block.
+ */
+#define SO_DATA_RATE_1GB	0
+#define SO_DATA_RATE_2GB	1
+#define SO_DATA_RATE_AUTO	2
+
+/*
+ * ISP Initialization Control Block.
+ * Little endian except where noted.
+ */
+#define	ICB_VERSION 1
+typedef struct {
+	uint8_t  version;
+	uint8_t  reserved_1;
+
+	/*
+	 * LSB BIT 0  = Enable Hard Loop Id
+	 * LSB BIT 1  = Enable Fairness
+	 * LSB BIT 2  = Enable Full-Duplex
+	 * LSB BIT 3  = Enable Fast Posting
+	 * LSB BIT 4  = Enable Target Mode
+	 * LSB BIT 5  = Disable Initiator Mode
+	 * LSB BIT 6  = Enable ADISC
+	 * LSB BIT 7  = Enable Target Inquiry Data
+	 *
+	 * MSB BIT 0  = Enable PDBC Notify
+	 * MSB BIT 1  = Non Participating LIP
+	 * MSB BIT 2  = Descending Loop ID Search
+	 * MSB BIT 3  = Acquire Loop ID in LIPA
+	 * MSB BIT 4  = Stop PortQ on Full Status
+	 * MSB BIT 5  = Full Login after LIP
+	 * MSB BIT 6  = Node Name Option
+	 * MSB BIT 7  = Ext IFWCB enable bit
+	 */
+	uint8_t  firmware_options[2];
+
+	uint16_t frame_payload_size;
+	uint16_t max_iocb_allocation;
+	uint16_t execution_throttle;
+	uint8_t  retry_count;
+	uint8_t	 retry_delay;			/* unused */
+	uint8_t	 port_name[WWN_SIZE];		/* Big endian. */
+	uint16_t hard_address;
+	uint8_t	 inquiry_data;
+	uint8_t	 login_timeout;
+	uint8_t	 node_name[WWN_SIZE];		/* Big endian. */
+
+	uint16_t request_q_outpointer;
+	uint16_t response_q_inpointer;
+	uint16_t request_q_length;
+	uint16_t response_q_length;
+	uint32_t request_q_address[2];
+	uint32_t response_q_address[2];
+
+	uint16_t lun_enables;
+	uint8_t  command_resource_count;
+	uint8_t  immediate_notify_resource_count;
+	uint16_t timeout;
+	uint8_t  reserved_2[2];
+
+	/*
+	 * LSB BIT 0 = Timer Operation mode bit 0
+	 * LSB BIT 1 = Timer Operation mode bit 1
+	 * LSB BIT 2 = Timer Operation mode bit 2
+	 * LSB BIT 3 = Timer Operation mode bit 3
+	 * LSB BIT 4 = Init Config Mode bit 0
+	 * LSB BIT 5 = Init Config Mode bit 1
+	 * LSB BIT 6 = Init Config Mode bit 2
+	 * LSB BIT 7 = Enable Non part on LIHA failure
+	 *
+	 * MSB BIT 0 = Enable class 2
+	 * MSB BIT 1 = Enable ACK0
+	 * MSB BIT 2 =
+	 * MSB BIT 3 =
+	 * MSB BIT 4 = FC Tape Enable
+	 * MSB BIT 5 = Enable FC Confirm
+	 * MSB BIT 6 = Enable command queuing in target mode
+	 * MSB BIT 7 = No Logo On Link Down
+	 */
+	uint8_t	 add_firmware_options[2];
+
+	uint8_t	 response_accumulation_timer;
+	uint8_t	 interrupt_delay_timer;
+
+	/*
+	 * LSB BIT 0 = Enable Read xfr_rdy
+	 * LSB BIT 1 = Soft ID only
+	 * LSB BIT 2 =
+	 * LSB BIT 3 =
+	 * LSB BIT 4 = FCP RSP Payload [0]
+	 * LSB BIT 5 = FCP RSP Payload [1] / Sbus enable - 2200
+	 * LSB BIT 6 = Enable Out-of-Order frame handling
+	 * LSB BIT 7 = Disable Automatic PLOGI on Local Loop
+	 *
+	 * MSB BIT 0 = Sbus enable - 2300
+	 * MSB BIT 1 =
+	 * MSB BIT 2 =
+	 * MSB BIT 3 =
+	 * MSB BIT 4 =
+	 * MSB BIT 5 = enable 50 ohm termination
+	 * MSB BIT 6 = Data Rate (2300 only)
+	 * MSB BIT 7 = Data Rate (2300 only)
+	 */
+	uint8_t	 special_options[2];
+
+	uint8_t  reserved_3[26];
+} init_cb_t;
+
+/*
+ * ISP Get/Set Target Parameters mailbox command control flags.
+ */
+
+/*
+ * Get Link Status mailbox command return buffer.
+ */
+typedef struct {
+	uint32_t	link_fail_cnt;
+	uint32_t	loss_sync_cnt;
+	uint32_t	loss_sig_cnt;
+	uint32_t	prim_seq_err_cnt;
+	uint32_t	inval_xmit_word_cnt;
+	uint32_t	inval_crc_cnt;
+} link_stat_t;
+
+/*
+ * NVRAM Command values.
+ */
+#define NV_START_BIT            BIT_2
+#define NV_WRITE_OP             (BIT_26+BIT_24)
+#define NV_READ_OP              (BIT_26+BIT_25)
+#define NV_ERASE_OP             (BIT_26+BIT_25+BIT_24)
+#define NV_MASK_OP              (BIT_26+BIT_25+BIT_24)
+#define NV_DELAY_COUNT          10
+
+/*
+ * QLogic ISP2100, ISP2200 and ISP2300 NVRAM structure definition.
+ */
+typedef struct {
+	/*
+	 * NVRAM header
+	 */
+	uint8_t	id[4];
+	uint8_t	nvram_version;
+	uint8_t	reserved_0;
+
+	/*
+	 * NVRAM RISC parameter block
+	 */
+	uint8_t	parameter_block_version;
+	uint8_t	reserved_1;
+
+	/*
+	 * LSB BIT 0  = Enable Hard Loop Id
+	 * LSB BIT 1  = Enable Fairness
+	 * LSB BIT 2  = Enable Full-Duplex
+	 * LSB BIT 3  = Enable Fast Posting
+	 * LSB BIT 4  = Enable Target Mode
+	 * LSB BIT 5  = Disable Initiator Mode
+	 * LSB BIT 6  = Enable ADISC
+	 * LSB BIT 7  = Enable Target Inquiry Data
+	 *
+	 * MSB BIT 0  = Enable PDBC Notify
+	 * MSB BIT 1  = Non Participating LIP
+	 * MSB BIT 2  = Descending Loop ID Search
+	 * MSB BIT 3  = Acquire Loop ID in LIPA
+	 * MSB BIT 4  = Stop PortQ on Full Status
+	 * MSB BIT 5  = Full Login after LIP
+	 * MSB BIT 6  = Node Name Option
+	 * MSB BIT 7  = Ext IFWCB enable bit
+	 */
+	uint8_t	 firmware_options[2];
+
+	uint16_t frame_payload_size;
+	uint16_t max_iocb_allocation;
+	uint16_t execution_throttle;
+	uint8_t	 retry_count;
+	uint8_t	 retry_delay;			/* unused */
+	uint8_t	 port_name[WWN_SIZE];		/* Big endian. */
+	uint16_t hard_address;
+	uint8_t	 inquiry_data;
+	uint8_t	 login_timeout;
+	uint8_t	 node_name[WWN_SIZE];		/* Big endian. */
+
+	/*
+	 * LSB BIT 0 = Timer Operation mode bit 0
+	 * LSB BIT 1 = Timer Operation mode bit 1
+	 * LSB BIT 2 = Timer Operation mode bit 2
+	 * LSB BIT 3 = Timer Operation mode bit 3
+	 * LSB BIT 4 = Init Config Mode bit 0
+	 * LSB BIT 5 = Init Config Mode bit 1
+	 * LSB BIT 6 = Init Config Mode bit 2
+	 * LSB BIT 7 = Enable Non part on LIHA failure
+	 *
+	 * MSB BIT 0 = Enable class 2
+	 * MSB BIT 1 = Enable ACK0
+	 * MSB BIT 2 =
+	 * MSB BIT 3 =
+	 * MSB BIT 4 = FC Tape Enable
+	 * MSB BIT 5 = Enable FC Confirm
+	 * MSB BIT 6 = Enable command queuing in target mode
+	 * MSB BIT 7 = No Logo On Link Down
+	 */
+	uint8_t	 add_firmware_options[2];
+
+	uint8_t	 response_accumulation_timer;
+	uint8_t	 interrupt_delay_timer;
+
+	/*
+	 * LSB BIT 0 = Enable Read xfr_rdy
+	 * LSB BIT 1 = Soft ID only
+	 * LSB BIT 2 =
+	 * LSB BIT 3 =
+	 * LSB BIT 4 = FCP RSP Payload [0]
+	 * LSB BIT 5 = FCP RSP Payload [1] / Sbus enable - 2200
+	 * LSB BIT 6 = Enable Out-of-Order frame handling
+	 * LSB BIT 7 = Disable Automatic PLOGI on Local Loop
+	 *
+	 * MSB BIT 0 = Sbus enable - 2300
+	 * MSB BIT 1 =
+	 * MSB BIT 2 =
+	 * MSB BIT 3 =
+	 * MSB BIT 4 =
+	 * MSB BIT 5 = enable 50 ohm termination
+	 * MSB BIT 6 = Data Rate (2300 only)
+	 * MSB BIT 7 = Data Rate (2300 only)
+	 */
+	uint8_t	 special_options[2];
+
+	/* Reserved for expanded RISC parameter block */
+	uint8_t reserved_2[24];
+
+	/*
+	 * LSB BIT 0 = Output Swing 1G bit 0
+	 * LSB BIT 1 = Output Swing 1G bit 1
+	 * LSB BIT 2 = Output Swing 1G bit 2
+	 * LSB BIT 3 = Output Emphasis 1G bit 0
+	 * LSB BIT 4 = Output Emphasis 1G bit 1
+	 * LSB BIT 5 = Output Swing 2G bit 0
+	 * LSB BIT 6 = Output Swing 2G bit 1
+	 * LSB BIT 7 = Output Swing 2G bit 2
+	 *            
+	 * MSB BIT 0 = Output Emphasis 2G bit 0
+	 * MSB BIT 1 = Output Emphasis 2G bit 1
+	 * MSB BIT 2 = Output Enable
+	 * MSB BIT 3 =
+	 * MSB BIT 4 =
+	 * MSB BIT 5 =
+	 * MSB BIT 6 =
+	 * MSB BIT 7 =
+	 */
+	uint8_t seriallink_options[2];
+
+	/*
+	 * NVRAM host parameter block
+	 *
+	 * LSB BIT 0 = Enable spinup delay
+	 * LSB BIT 1 = Disable BIOS
+	 * LSB BIT 2 = Enable Memory Map BIOS
+	 * LSB BIT 3 = Enable Selectable Boot
+	 * LSB BIT 4 = Disable RISC code load
+	 * LSB BIT 5 = Set cache line size 1
+	 * LSB BIT 6 = PCI Parity Disable
+	 * LSB BIT 7 = Enable extended logging
+	 *
+	 * MSB BIT 0 = Enable 64bit addressing
+	 * MSB BIT 1 = Enable lip reset
+	 * MSB BIT 2 = Enable lip full login
+	 * MSB BIT 3 = Enable target reset
+	 * MSB BIT 4 = Enable database storage
+	 * MSB BIT 5 = Enable cache flush read
+	 * MSB BIT 6 = Enable database load
+	 * MSB BIT 7 = Enable alternate WWN
+	 */
+	uint8_t host_p[2];
+
+	uint8_t boot_node_name[WWN_SIZE];
+	uint8_t boot_lun_number;
+	uint8_t reset_delay;
+	uint8_t port_down_retry_count;
+	uint8_t boot_id_number;
+	uint16_t max_luns_per_target;
+	uint8_t fcode_boot_port_name[WWN_SIZE];
+	uint8_t alternate_port_name[WWN_SIZE];
+	uint8_t alternate_node_name[WWN_SIZE];
+
+	/*
+	 * BIT 0 = Boot Zoning
+	 * BIT 1 = Alt-Boot Enable
+	 * BIT 2 = Report SCSI Path
+	 * BIT 3 = unused
+	 * BIT 4 = unused
+	 * BIT 5 = unused
+	 * BIT 6 = unused
+	 * BIT 7 = unused
+	 */
+	uint8_t efi_parameters;
+
+	uint8_t link_down_timeout;
+
+	uint8_t adapter_id_0[4];
+	uint8_t adapter_id_1[4];
+	uint8_t adapter_id_2[4];
+	uint8_t adapter_id_3[4];
+
+	uint8_t alt1_boot_node_name[WWN_SIZE];
+	uint16_t alt1_boot_lun_number;
+	uint8_t alt2_boot_node_name[WWN_SIZE];
+	uint16_t alt2_boot_lun_number;
+	uint8_t alt3_boot_node_name[WWN_SIZE];
+	uint16_t alt3_boot_lun_number;
+	uint8_t alt4_boot_node_name[WWN_SIZE];
+	uint16_t alt4_boot_lun_number;
+	uint8_t alt5_boot_node_name[WWN_SIZE];
+	uint16_t alt5_boot_lun_number;
+	uint8_t alt6_boot_node_name[WWN_SIZE];
+	uint16_t alt6_boot_lun_number;
+	uint8_t alt7_boot_node_name[WWN_SIZE];
+	uint16_t alt7_boot_lun_number;
+
+	uint8_t reserved_3[2];
+
+	/* Offset 200-215 : Model Number */
+	uint8_t model_number[16];
+
+	/* OEM related items */
+	uint8_t oem_specific[16];
+
+	/*
+	 * NVRAM Adapter Features offset 232-239
+	 *
+	 * LSB BIT 0 = External GBIC
+	 * LSB BIT 1 = Risc RAM parity
+	 * LSB BIT 2 = Buffer Plus Module
+	 * LSB BIT 3 = Multi Chip Adapter
+	 * LSB BIT 4 = Internal connector
+	 * LSB BIT 5 =
+	 * LSB BIT 6 =
+	 * LSB BIT 7 =
+	 *
+	 * MSB BIT 0 =
+	 * MSB BIT 1 =
+	 * MSB BIT 2 =
+	 * MSB BIT 3 =
+	 * MSB BIT 4 =
+	 * MSB BIT 5 =
+	 * MSB BIT 6 =
+	 * MSB BIT 7 =
+	 */
+	uint8_t	adapter_features[2];
+
+	uint8_t reserved_4[16];
+
+	/* Subsystem vendor ID for ISP2200 */
+	uint16_t subsystem_vendor_id_2200;
+
+	/* Subsystem device ID for ISP2200 */
+	uint16_t subsystem_device_id_2200;
+
+	uint8_t	 reserved_5;
+	uint8_t	 checksum;
+} nvram_t;
+
+/*
+ * ISP queue - response queue entry definition.
+ */
+typedef struct {
+	uint8_t		data[60];
+	uint32_t	signature;
+#define RESPONSE_PROCESSED	0xDEADDEAD	/* Signature */
+} response_t;
+
+
+/*
+ * ISP queue - command entry structure definition.
+ */
+#define COMMAND_TYPE	0x11		/* Command entry */
+#define MAX_CMDSZ	16		/* SCSI maximum CDB size. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	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
+#define CF_ORDERED_TAG	BIT_2
+#define CF_SIMPLE_TAG	BIT_3
+#define CF_READ		BIT_5
+#define CF_WRITE	BIT_6
+	uint16_t reserved_1;
+	uint16_t timeout;		/* Command timeout. */
+	uint16_t dseg_count;		/* Data segment count. */
+	uint8_t scsi_cdb[MAX_CMDSZ]; 	/* SCSI command words. */
+	uint32_t byte_count;		/* Total byte count. */
+	uint32_t dseg_0_address;	/* Data segment 0 address. */
+	uint32_t dseg_0_length;		/* Data segment 0 length. */
+	uint32_t dseg_1_address;	/* Data segment 1 address. */
+	uint32_t dseg_1_length;		/* Data segment 1 length. */
+	uint32_t dseg_2_address;	/* Data segment 2 address. */
+	uint32_t dseg_2_length;		/* Data segment 2 length. */
+} cmd_entry_t;
+
+/*
+ * ISP queue - 64-Bit addressing, command entry structure definition.
+ */
+#define COMMAND_A64_TYPE	0x19	/* Command A64 entry */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	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;
+	uint16_t timeout;		/* Command timeout. */
+	uint16_t dseg_count;		/* Data segment count. */
+	uint8_t scsi_cdb[MAX_CMDSZ];	/* SCSI command words. */
+	uint32_t byte_count;		/* Total byte count. */
+	uint32_t dseg_0_address[2];	/* Data segment 0 address. */
+	uint32_t dseg_0_length;		/* Data segment 0 length. */
+	uint32_t dseg_1_address[2];	/* Data segment 1 address. */
+	uint32_t dseg_1_length;		/* Data segment 1 length. */
+} cmd_a64_entry_t, request_t;
+
+/*
+ * ISP queue - continuation entry structure definition.
+ */
+#define CONTINUE_TYPE		0x02	/* Continuation entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t sys_define;		/* System defined. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint32_t reserved;
+	uint32_t dseg_0_address;	/* Data segment 0 address. */
+	uint32_t dseg_0_length;		/* Data segment 0 length. */
+	uint32_t dseg_1_address;	/* Data segment 1 address. */
+	uint32_t dseg_1_length;		/* Data segment 1 length. */
+	uint32_t dseg_2_address;	/* Data segment 2 address. */
+	uint32_t dseg_2_length;		/* Data segment 2 length. */
+	uint32_t dseg_3_address;	/* Data segment 3 address. */
+	uint32_t dseg_3_length;		/* Data segment 3 length. */
+	uint32_t dseg_4_address;	/* Data segment 4 address. */
+	uint32_t dseg_4_length;		/* Data segment 4 length. */
+	uint32_t dseg_5_address;	/* Data segment 5 address. */
+	uint32_t dseg_5_length;		/* Data segment 5 length. */
+	uint32_t dseg_6_address;	/* Data segment 6 address. */
+	uint32_t dseg_6_length;		/* Data segment 6 length. */
+} cont_entry_t;
+
+/*
+ * ISP queue - 64-Bit addressing, continuation entry structure definition.
+ */
+#define CONTINUE_A64_TYPE	0x0A	/* Continuation A64 entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t sys_define;		/* System defined. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint32_t dseg_0_address[2];	/* Data segment 0 address. */
+	uint32_t dseg_0_length;		/* Data segment 0 length. */
+	uint32_t dseg_1_address[2];	/* Data segment 1 address. */
+	uint32_t dseg_1_length;		/* Data segment 1 length. */
+	uint32_t dseg_2_address	[2];	/* Data segment 2 address. */
+	uint32_t dseg_2_length;		/* Data segment 2 length. */
+	uint32_t dseg_3_address[2];	/* Data segment 3 address. */
+	uint32_t dseg_3_length;		/* Data segment 3 length. */
+	uint32_t dseg_4_address[2];	/* Data segment 4 address. */
+	uint32_t dseg_4_length;		/* Data segment 4 length. */
+} cont_a64_entry_t;
+
+/*
+ * ISP queue - status entry structure definition.
+ */
+#define	STATUS_TYPE	0x03		/* Status entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t sys_define;		/* System defined. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint32_t handle;		/* System handle. */
+	uint16_t scsi_status;		/* SCSI status. */
+	uint16_t comp_status;		/* Completion status. */
+	uint16_t state_flags;		/* State flags. */
+	uint16_t status_flags;		/* Status flags. */
+	uint16_t rsp_info_len;		/* Response Info Length. */
+	uint16_t req_sense_length;	/* Request sense data length. */
+	uint32_t residual_length;	/* Residual transfer length. */
+	uint8_t rsp_info[8];		/* FCP response information. */
+	uint8_t req_sense_data[32];	/* Request sense data. */
+} sts_entry_t;
+
+/*
+ * Status entry entry status
+ */
+#define RF_INV_E_ORDER	BIT_5		/* Invalid entry order. */
+#define RF_INV_E_COUNT	BIT_4		/* Invalid entry count. */
+#define RF_INV_E_PARAM	BIT_3		/* Invalid entry parameter. */
+#define RF_INV_E_TYPE	BIT_2		/* Invalid entry type. */
+#define RF_BUSY		BIT_1		/* Busy */
+
+/*
+ * Status entry SCSI status bit definitions.
+ */
+#define SS_MASK			0xfff	/* Reserved bits BIT_12-BIT_15*/
+#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
+#define SS_CONDITION_MET	BIT_2
+#define SS_CHECK_CONDITION	BIT_1
+
+/*
+ * Status entry completion status
+ */
+#define CS_COMPLETE		0x0	/* No errors */
+#define CS_INCOMPLETE		0x1	/* Incomplete transfer of cmd. */
+#define CS_DMA			0x2	/* A DMA direction error. */
+#define CS_TRANSPORT		0x3	/* Transport error. */
+#define CS_RESET		0x4	/* SCSI bus reset occurred */
+#define CS_ABORTED		0x5	/* System aborted command. */
+#define CS_TIMEOUT		0x6	/* Timeout error. */
+#define CS_DATA_OVERRUN		0x7	/* Data overrun. */
+
+#define CS_DATA_UNDERRUN	0x15	/* Data Underrun. */
+#define CS_QUEUE_FULL		0x1C	/* Queue Full. */
+#define CS_PORT_UNAVAILABLE	0x28	/* Port unavailable */
+					/* (selection timeout) */
+#define CS_PORT_LOGGED_OUT	0x29	/* Port Logged Out */
+#define CS_PORT_CONFIG_CHG	0x2A	/* Port Configuration Changed */
+#define CS_PORT_BUSY		0x2B	/* Port Busy */
+#define CS_BAD_PAYLOAD		0x80	/* Driver defined */
+#define CS_UNKNOWN		0x81	/* Driver defined */
+#define CS_RETRY		0x82	/* Driver defined */
+#define CS_LOOP_DOWN_ABORT	0x83	/* Driver defined */
+
+/*
+ * Status entry status flags
+ */
+#define SF_LOGOUT_SENT		BIT_13
+
+/*
+ * ISP queue - status continuation entry structure definition.
+ */
+#define	STATUS_CONT_TYPE	0x10	/* Status continuation entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t sys_define;		/* System defined. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint8_t data[60];		/* data */
+} sts_cont_entry_t;
+
+/*
+ * ISP queue -	RIO Type 1 status entry (32 bit I/O entry handles)
+ *		structure definition.
+ */
+#define	STATUS_TYPE_21 0x21		/* Status entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t handle_count;		/* Handle count. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint32_t handle[15];		/* System handles. */
+} sts21_entry_t;
+
+/*
+ * ISP queue -	RIO Type 2 status entry (16 bit I/O entry handles)
+ *		structure definition.
+ */
+#define	STATUS_TYPE_22	0x22		/* Status entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t handle_count;		/* Handle count. */
+	uint8_t entry_status;		/* Entry Status. */
+	uint16_t handle[30];		/* System handles. */
+} sts22_entry_t;
+
+/*
+ * ISP queue - marker entry structure definition.
+ */
+#define MARKER_TYPE	0x04		/* Marker entry. */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t handle_count;		/* Handle count. */
+	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 */
+#define MK_SYNC_ALL	2		/* Synchronize all ID/LUN */
+#define MK_SYNC_LIP	3		/* Synchronize all ID/LUN, */
+					/* clear port changed, */
+					/* use sequence number. */
+	uint8_t reserved_1;
+	uint16_t sequence_number;	/* Sequence number of event */
+	uint16_t lun;			/* SCSI LUN */
+	uint8_t reserved_2[48];
+} mrk_entry_t;
+
+/*
+ * ISP queue - Management Server entry structure definition.
+ */
+#define MS_IOCB_TYPE		0x29	/* Management Server IOCB entry */
+typedef struct {
+	uint8_t entry_type;		/* Entry type. */
+	uint8_t entry_count;		/* Entry count. */
+	uint8_t handle_count;		/* Handle count. */
+	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. */
+	uint16_t reserved2;
+	uint16_t timeout;
+	uint16_t cmd_dsd_count;
+	uint16_t total_dsd_count;
+	uint8_t type;
+	uint8_t r_ctl;
+	uint16_t rx_id;
+	uint16_t reserved3;
+	uint32_t handle2;
+	uint32_t rsp_bytecount;
+	uint32_t req_bytecount;
+	uint32_t dseg_req_address[2];	/* Data segment 0 address. */
+	uint32_t dseg_req_length;	/* Data segment 0 length. */
+	uint32_t dseg_rsp_address[2];	/* Data segment 1 address. */
+	uint32_t dseg_rsp_length;	/* Data segment 1 length. */
+} ms_iocb_entry_t;
+
+
+/*
+ * ISP queue - Mailbox Command entry structure definition.
+ */
+#define ET_MAILBOX_COMMAND	0x39
+struct mbx_entry {
+	uint8_t		entry_type;
+
+	uint8_t		entry_count;
+	uint8_t		sys_define1;
+	/* Use sys_define1 for source type */
+#define SOURCE_SCSI	0x00
+#define SOURCE_IP	0x01
+#define SOURCE_VI	0x02
+#define SOURCE_SCTP	0x03
+#define SOURCE_MP	0x04
+#define SOURCE_MPIOCTL	0x05
+
+	uint8_t		entry_status;
+
+	uint32_t	handle;
+#if defined(EXTENDED_IDS)
+	uint16_t	loop_id;
+#else
+	uint8_t		reserved_1;
+	uint8_t		loop_id;
+#endif
+
+	uint16_t	status;
+	uint16_t	state_flags;
+	uint16_t	status_flags;
+	uint16_t	sys_define2[4];
+	uint16_t	mb0;
+	/* Mailbox command completion status */
+#define MBS_PORT_ID_IN_USE		0x4007
+#define MBS_LOOP_ID_IN_USE		0x4008
+#define MBS_ALL_LOOP_IDS_IN_USE		0x4009
+#define MBS_NAME_SERVER_NOT_LOGGED_IN	0x400A
+
+	uint16_t	mb1;
+	/* Fabric login mailbox command option bits */
+#define MBC_NO_PLOGI_IF_LOGGED_IN	0x01
+#define MBC_NO_PROCESS_LOGIN		0x02
+
+	uint16_t	mb2;
+	uint16_t	mb3;
+	uint16_t	mb6;
+	uint16_t	mb7;
+#if defined(EXTENDED_IDS)
+	uint16_t	mb9;
+	uint16_t	mb10;
+	uint32_t	reserved_2[6];
+#else
+	uint32_t	reserved_2[7];
+#endif
+};
+
+/*
+ * ISP request and response queue entry sizes
+ */
+#define RESPONSE_ENTRY_SIZE	(sizeof(response_t))
+#define REQUEST_ENTRY_SIZE	(sizeof(request_t))
+
+
+/*
+ * 24 bit port ID type definition.
+ */
+typedef union {
+	uint32_t b24 : 24;
+
+	struct {
+		uint8_t d_id[3];
+		uint8_t rsvd_1;
+	} r;
+
+	struct {
+		uint8_t al_pa;
+		uint8_t area;
+		uint8_t domain;
+		uint8_t rsvd_1;
+	} b;
+} port_id_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;
+
+/*
+ * Inquiry command structure.
+ */
+#define INQ_DATA_SIZE	36
+
+/*
+ * Inquiry mailbox IOCB packet definition.
+ */
+typedef struct {
+	union {
+		cmd_a64_entry_t cmd;
+		sts_entry_t rsp;
+	} p;
+	uint8_t inq[INQ_DATA_SIZE];
+} inq_cmd_rsp_t;
+
+/*
+ * Report LUN command structure.
+ */
+#define CHAR_TO_SHORT(a, b)	(uint16_t)((uint8_t)b << 8 | (uint8_t)a)
+
+typedef struct {
+	uint32_t len;
+	uint32_t rsrv;
+} rpt_hdr_t;
+
+typedef struct {
+	struct {
+		uint8_t b : 6;
+		uint8_t address_method : 2;
+	} msb;
+	uint8_t lsb;
+	uint8_t unused[6];
+} rpt_lun_t;
+
+typedef struct {
+	rpt_hdr_t hdr;
+	rpt_lun_t lst[MAX_LUNS];
+} rpt_lun_lst_t;
+
+/*
+ * Report Lun mailbox IOCB packet definition.
+ */
+typedef struct {
+	union {
+		cmd_a64_entry_t cmd;
+		sts_entry_t rsp;
+	} p;
+	rpt_lun_lst_t list;
+} rpt_lun_cmd_rsp_t;
+
+/*
+ * SCSI Target Queue structure
+ */
+typedef struct os_tgt {
+	struct os_lun *olun[MAX_LUNS]; /* LUN context pointer. */
+	struct fc_port *fcport;
+	uint32_t flags;
+	uint8_t port_down_retry_count;
+    	uint32_t down_timer;
+	struct scsi_qla_host *ha;
+
+	/* Persistent binding information */
+	port_id_t d_id;
+	uint8_t node_name[WWN_SIZE];
+	uint8_t port_name[WWN_SIZE];
+} os_tgt_t;
+
+/*
+ * SCSI Target Queue flags
+ */
+#define TQF_QUEUE_SUSPENDED	BIT_0		/* Queue suspended. */
+#define TQF_BOOT_DEVICE		BIT_1		/* Boot device. */
+#define TQF_ONLINE		BIT_2		/* Device online to OS. */
+#define TQF_TGT_RST_NEEDED	BIT_3
+
+/*
+ * SCSI LUN Queue structure
+ */
+typedef struct os_lun {
+	struct fc_lun *fclun;		/* FC LUN context pointer. */
+    	spinlock_t q_lock;		/* Lun Lock */
+
+	unsigned long q_flag;
+#define LUN_MPIO_BUSY		2	/* Lun is changing paths  */
+#define LUN_SCSI_SCAN_DONE	BIT_3	/* indicates the scsi scan is done */
+#define LUN_EXEC_DELAYED	7	/* Lun execution is delayed */
+
+	u_long q_timeout;		/* total command timeouts */
+	atomic_t q_timer;		/* suspend timer */
+	uint32_t q_count;		/* current count */
+	uint32_t q_max;			/* maxmum count lun can be suspended */
+	uint8_t q_state;		/* lun State */
+#define LUN_STATE_READY		1	/* lun is ready for i/o */
+#define LUN_STATE_RUN		2	/* lun has a timer running */
+#define LUN_STATE_WAIT		3	/* lun is suspended */
+#define LUN_STATE_TIMEOUT	4	/* lun has timed out */
+
+	u_long io_cnt;			/* total xfer count since boot */
+	u_long out_cnt;			/* total outstanding IO count */
+	u_long w_cnt;			/* total writes */
+	u_long r_cnt;			/* total reads */
+	u_long avg_time;		/*  */
+
+#if defined(CMD_PROFILE)
+	unsigned long start_latency;
+	unsigned long done_latency;
+#endif
+} os_lun_t;
+
+
+/* LUN BitMask structure definition, array of 32bit words,
+ * 1 bit per lun.  When bit == 1, the lun is masked.
+ * Most significant bit of mask[0] is lun 0, bit 24 is lun 7.
+ */
+typedef struct lun_bit_mask {
+	/* Must allocate at least enough bits to accomodate all LUNs */
+#if ((MAX_FIBRE_LUNS & 0x7) == 0)
+	uint8_t mask[MAX_FIBRE_LUNS >> 3];
+#else
+	uint8_t mask[(MAX_FIBRE_LUNS + 8) >> 3];
+#endif
+} lun_bit_mask_t;
+
+/*
+ * Fibre channel port type.
+ */
+ typedef enum {
+	FCT_UNKNOWN,
+	FCT_SWITCH,
+	FCT_BROADCAST,
+	FCT_INITIATOR,
+	FCT_TARGET
+} fc_port_type_t;
+
+/*
+ * Fibre channel port structure.
+ */
+typedef struct fc_port {
+	struct list_head list;
+	struct list_head fcluns;
+
+	struct scsi_qla_host *ha;
+	struct scsi_qla_host *vis_ha;	/* only used when suspending lun */
+
+	uint8_t node_name[WWN_SIZE];
+	uint8_t port_name[WWN_SIZE];
+	port_id_t d_id;
+	uint16_t loop_id;
+	uint16_t old_loop_id;
+
+	fc_port_type_t port_type;
+	uint8_t device_type;
+
+	atomic_t state;
+	uint32_t flags;
+
+	uint16_t lun_cnt;
+
+	os_tgt_t *tgt_queue;
+	uint16_t os_target_id;
+
+	int port_login_retry_count;
+	int login_retry;
+	atomic_t port_down_timer;
+
+	uint8_t mp_byte;		/* multi-path byte (not used) */
+    	uint8_t cur_path;		/* current path id */
+
+	lun_bit_mask_t lun_mask;
+} fc_port_t;
+
+/*
+ * Fibre channel port/lun states.
+ */
+#define FCS_UNCONFIGURED	1
+#define FCS_DEVICE_DEAD		2
+#define FCS_DEVICE_LOST		3
+#define FCS_ONLINE		4
+#define FCS_LOGIN_NEEDED	5
+#define FCS_LOGIN_RETRY		6
+#define FCS_NOT_SUPPORTED	7
+#define FCS_FAILOVER		8
+#define FCS_FAILOVER_FAILED	9
+
+/*
+ * FC port flags.
+ */
+#define FCF_FABRIC_DEVICE	BIT_0
+#define FCF_RELOGIN_NEEDED	BIT_1
+#define FCF_FO_MASKED		BIT_2
+#define FCF_FAILOVER_NEEDED	BIT_3
+#define FCF_RESET_NEEDED	BIT_4
+#define FCF_PERSISTENT_BOUND	BIT_5
+#define FCF_TAPE_PRESENT	BIT_6
+#define FCF_FARP_DONE		BIT_7
+#define FCF_FARP_FAILED		BIT_8
+#define FCF_FARP_REPLY_NEEDED	BIT_9
+#define FCF_AUTH_REQ		BIT_10
+#define FCF_SEND_AUTH_REQ	BIT_11
+#define FCF_RECEIVE_AUTH_REQ	BIT_12
+#define FCF_AUTH_SUCCESS	BIT_13
+#define FCF_RLC_SUPPORT		BIT_14
+
+#define FCF_CONFIG		BIT_15	/* Needed? */
+
+/* No loop ID flag. */
+#define FC_NO_LOOP_ID		0x1000
+
+/*
+ * Fibre channel LUN structure.
+ */
+typedef struct fc_lun {
+        struct list_head list;
+
+	fc_port_t *fcport;
+	fc_port_t *o_fcport;
+	uint16_t lun;
+	atomic_t state;
+	uint8_t device_type;
+	uint8_t max_path_retries;
+} fc_lun_t;
+
+/*
+ * Registered State Change Notification structures.
+ */
+typedef struct {
+    port_id_t d_id;
+    uint8_t format;
+} rscn_t;
+
+/*
+ * FC-CT interface
+ *
+ * NOTE: All structures are big-endian in form.
+ */
+
+#define CT_REJECT_RESPONSE	0x8001
+#define CT_ACCEPT_RESPONSE	0x8002
+
+#define NS_N_PORT_TYPE	0x01
+#define NS_NL_PORT_TYPE	0x02
+#define NS_NX_PORT_TYPE	0x7F
+
+#define	GA_NXT_CMD	0x100
+#define	GA_NXT_REQ_SIZE	(16 + 4)
+#define	GA_NXT_RSP_SIZE	(16 + 620)
+
+#define	GID_PT_CMD	0x1A1
+#define	GID_PT_REQ_SIZE	(16 + 4)
+#define	GID_PT_RSP_SIZE	(16 + (MAX_FIBRE_DEVICES * 4))
+
+#define	GPN_ID_CMD	0x112
+#define	GPN_ID_REQ_SIZE	(16 + 4)
+#define	GPN_ID_RSP_SIZE	(16 + 8)
+
+#define	GNN_ID_CMD	0x113
+#define	GNN_ID_REQ_SIZE	(16 + 4)
+#define	GNN_ID_RSP_SIZE	(16 + 8)
+
+#define	GFT_ID_CMD	0x117
+#define	GFT_ID_REQ_SIZE	(16 + 4)
+#define	GFT_ID_RSP_SIZE	(16 + 32)
+
+#define	RFT_ID_CMD	0x217
+#define	RFT_ID_REQ_SIZE	(16 + 4 + 32)
+#define	RFT_ID_RSP_SIZE	16
+
+#define	RFF_ID_CMD	0x21F
+#define	RFF_ID_REQ_SIZE	(16 + 4 + 2 + 1 + 1)
+#define	RFF_ID_RSP_SIZE	16
+
+#define	RNN_ID_CMD	0x213
+#define	RNN_ID_REQ_SIZE	(16 + 4 + 8)
+#define	RNN_ID_RSP_SIZE	16
+
+#define	RSNN_NN_CMD	 0x239
+#define	RSNN_NN_REQ_SIZE (16 + 8 + 1 + 255)
+#define	RSNN_NN_RSP_SIZE 16
+
+/* CT command header -- request/response common fields */
+struct ct_cmd_hdr {
+	uint8_t revision;
+	uint8_t in_id[3];
+	uint8_t gs_type;
+	uint8_t gs_subtype;
+	uint8_t options;
+	uint8_t reserved;
+};
+
+/* CT command request */
+struct ct_sns_req {
+	struct ct_cmd_hdr header;
+	uint16_t command;
+	uint16_t max_rsp_size;
+	uint8_t fragment_id;
+	uint8_t reserved[3];
+
+	union {
+		/* GA_NXT, GPN_ID, GNN_ID, GFT_ID */
+		struct {
+			uint8_t reserved;
+			uint8_t port_id[3];
+		} port_id;
+
+		struct {
+			uint8_t port_type;
+			uint8_t domain;
+			uint8_t area;
+			uint8_t reserved;
+		} gid_pt;
+
+		struct {
+			uint8_t reserved;
+			uint8_t port_id[3];
+			uint8_t fc4_types[32];
+		} rft_id;
+
+		struct {
+			uint8_t reserved;
+			uint8_t port_id[3];
+			uint16_t reserved2;
+			uint8_t fc4_feature;
+			uint8_t fc4_type;
+		} rff_id;
+
+		struct {
+			uint8_t reserved;
+			uint8_t port_id[3];
+			uint8_t node_name[8];
+		} rnn_id;
+
+		struct {
+			uint8_t node_name[8];
+			uint8_t name_len;
+			uint8_t sym_node_name[255];
+		} rsnn_nn;
+	} req;
+};
+
+/* CT command response header */
+struct ct_rsp_hdr {
+	struct ct_cmd_hdr header;
+	uint16_t response;
+	uint16_t residual;
+	uint8_t fragment_id;
+	uint8_t reason_code;
+	uint8_t explanation_code;
+	uint8_t vendor_unique;
+};
+
+struct ct_sns_gid_pt_data {
+	uint8_t control_byte;
+	uint8_t port_id[3];
+};
+
+struct ct_sns_rsp {
+	struct ct_rsp_hdr header;
+
+	union {
+		struct {
+			uint8_t port_type;
+			uint8_t port_id[3];
+			uint8_t port_name[8];
+			uint8_t sym_port_name_len;
+			uint8_t sym_port_name[255];
+			uint8_t node_name[8];
+			uint8_t sym_node_name_len;
+			uint8_t sym_node_name[255];
+			uint8_t init_proc_assoc[8];
+			uint8_t node_ip_addr[16];
+			uint8_t class_of_service[4];
+			uint8_t fc4_types[32];
+			uint8_t ip_address[16];
+			uint8_t fabric_port_name[8];
+			uint8_t reserved;
+			uint8_t hard_address[3];
+		} ga_nxt;
+
+		struct {
+			struct ct_sns_gid_pt_data entries[MAX_FIBRE_DEVICES];
+		} gid_pt;
+
+		struct {
+			uint8_t port_name[8];
+		} gpn_id;
+
+		struct {
+			uint8_t node_name[8];
+		} gnn_id;
+
+		struct {
+			uint8_t fc4_types[32];
+		} gft_id;
+	} rsp;
+};
+
+struct ct_sns_pkt {
+	union {
+		struct ct_sns_req req;
+		struct ct_sns_rsp rsp;
+	} p;
+};
+
+//TODO Complete Formatting...
+
+/* Mailbox command completion status */
+#define MBS_PORT_ID_IN_USE              0x4007
+#define MBS_LOOP_ID_IN_USE              0x4008
+#define MBS_ALL_LOOP_IDS_IN_USE         0x4009
+#define MBS_NAME_SERVER_NOT_LOGGED_IN   0x400A
+
+
+#define MAX_IOCTL_WAIT_THREADS	32
+typedef struct _wait_q_t {
+	uint8_t			flags;
+#define WQ_IN_USE	0x1
+
+	struct semaphore	wait_q_sem;
+	struct _wait_q_t	*pnext;
+} wait_q_t;
+
+typedef struct hba_ioctl{
+
+	/* Ioctl cmd serialization */
+	uint16_t	access_bits; /* bits should be used atomically */
+#define IOCTL_ACTIVE	1 /* first bit */
+#define IOCTL_WANT	2 /* 2nd bit */
+
+	spinlock_t	wait_q_lock; /* IOCTL wait_q Queue Lock */
+	wait_q_t	wait_q_arr[MAX_IOCTL_WAIT_THREADS];
+	wait_q_t	*wait_q_head;
+	wait_q_t	*wait_q_tail;
+
+	/* Passthru cmd/completion */
+	struct semaphore	cmpl_sem;
+	struct timer_list	cmpl_timer;
+	uint8_t		ioctl_tov;
+	uint8_t		SCSIPT_InProgress;
+	uint8_t		MSIOCB_InProgress;
+
+	os_tgt_t	*ioctl_tq;
+	os_lun_t	*ioctl_lq;
+
+	/* AEN queue */
+	void		*aen_tracking_queue;/* points to async events buffer */
+	uint8_t		aen_q_head;	/* index to the current head of q */
+	uint8_t		aen_q_tail;	/* index to the current tail of q */
+
+	/* Misc. */
+	uint32_t	flags;
+#define	IOCTL_OPEN			BIT_0
+#define	IOCTL_AEN_TRACKING_ENABLE	BIT_1
+	uint8_t		*scrap_mem;	/* per ha scrap buf for ioctl usage */
+	uint32_t	scrap_mem_size; /* total size */
+	uint32_t	scrap_mem_used; /* portion used */
+
+} hba_ioctl_context;
+
+/* Mailbox command semaphore queue for command serialization */
+typedef struct _mbx_cmdq_t {
+	struct semaphore	cmd_sem;
+	struct _mbx_cmdq_t	*pnext;
+} mbx_cmdq_t;
+
+
+/* Linux PCI interface definitions */
+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 F/W */
+};
+struct qla_board_info {
+	char name[9];			/* Board ID String */
+	struct qla_fw_info *fwinfo;
+};
+
+
+/*
+ * Linux Host Adapter structure
+ */
+typedef struct scsi_qla_host
+{
+	struct list_head	list;
+
+	/* Linux adapter configuration data */
+	struct Scsi_Host *host;             /* pointer to host data */
+	struct pci_dev   *pdev;
+
+	u_long            host_no;
+	u_long            instance;
+
+	uint16_t		nvram_base;
+
+	struct qla_board_info	*brd_info;
+	uint16_t		fw_major_version;
+	uint16_t		fw_minor_version;
+	uint16_t		fw_subminor_version;
+	uint16_t		fw_attributes;
+	uint32_t		fw_transfer_size;
+
+	uint16_t		fw_options[16];		/* slots: 1,2,3,10,11 */
+	uint8_t			fw_seriallink_options[2];
+
+	ms_iocb_entry_t		*ms_iocb;
+	dma_addr_t		ms_iocb_dma;
+	struct ct_sns_pkt	*ct_sns;
+	dma_addr_t		ct_sns_dma;
+
+	/* 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;
+
+	device_reg_t	*iobase;		/* Base I/O address */
+	unsigned long	pio_address;
+	unsigned long	pio_length;
+	void *		mmio_address;
+	unsigned long	mmio_length;
+#define MIN_IOBASE_LEN		0x100
+
+	/* ISP ring lock, rings, and indexes */
+	dma_addr_t	request_dma;        /* Physical address. */
+	request_t       *request_ring;      /* Base virtual address */
+	request_t       *request_ring_ptr;  /* Current address. */
+	uint16_t        req_ring_index;     /* Current index. */
+	uint16_t        req_q_cnt;          /* Number of available entries. */
+
+	dma_addr_t	response_dma;       /* Physical address. */
+	response_t      *response_ring;     /* Base virtual address */
+	response_t      *response_ring_ptr; /* Current address. */
+	uint16_t        rsp_ring_index;     /* Current index. */
+    
+	/* Outstandings ISP commands. */
+	srb_t		*outstanding_cmds[MAX_OUTSTANDING_COMMANDS];
+	uint32_t	current_outstanding_cmd; 
+
+	uint16_t	(*calc_request_entries)(uint16_t);
+	void		(*build_scsi_iocbs)(srb_t *, cmd_entry_t *, uint16_t);
+
+	uint16_t           revision;
+	uint8_t           ports;
+	u_long            actthreads;
+	u_long            ipreq_cnt;
+	u_long            qthreads;
+	uint32_t        total_isr_cnt;		/* Interrupt count */
+	uint32_t        total_isp_aborts;	/* controller err cnt */
+	uint32_t        total_lip_cnt;		/* LIP cnt */
+	uint32_t	total_dev_errs;		/* device error cnt */
+	uint32_t	total_ios;		/* IO cnt */
+	uint64_t	total_bytes;		/* xfr byte cnt */
+	uint32_t	total_mbx_timeout;	/* mailbox timeout cnt */
+	uint32_t 	total_loop_resync; 	/* loop resyn cnt */
+
+	/* Adapter I/O statistics for failover */
+	uint64_t	IosRequested;
+	uint64_t	BytesRequested;
+	uint64_t	IosExecuted;
+	uint64_t	BytesExecuted;
+
+	/* ISP connection configuration data */
+	uint16_t         max_public_loop_ids;
+	uint16_t         min_external_loopid; /* First external loop Id */
+	uint8_t          current_topology; /* Current ISP configuration */
+	uint8_t          prev_topology;    /* Previous ISP configuration */
+                     #define ISP_CFG_NL     1
+                     #define ISP_CFG_N      2
+                     #define ISP_CFG_FL     4
+                     #define ISP_CFG_F      8
+	uint16_t        loop_id;       /* Host adapter loop id */
+	port_id_t       d_id;           /* Host adapter port id */
+
+	uint8_t         operating_mode;  /* current F/W operating mode */
+		#define LOOP      0
+		#define P2P       1
+		#define LOOP_P2P  2
+		#define P2P_LOOP  3
+
+	uint8_t         active_fc4_types;/* active fc4 types */
+	uint8_t         current_speed;   /* current F/W operating speed */
+
+	/* NVRAM configuration data */
+	uint16_t        loop_reset_delay;   /* Loop reset delay. */
+	uint16_t        minimum_timeout;    /* Minimum timeout. */
+	uint8_t         retry_count;
+	uint8_t         login_timeout;
+	int             port_down_retry_count;
+	uint8_t         loop_down_timeout;
+	uint16_t        max_probe_luns;
+	uint16_t        max_luns;
+	uint16_t        max_targets;
+	
+	/* Fibre Channel Device List. */
+        struct list_head	fcports;
+
+	/* OS target queue pointers. */
+	os_tgt_t		*otgt[MAX_FIBRE_DEVICES];
+
+	/* 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 */
+
+	/* __get_free_pages() srb_t pool */
+	srb_t	*srb_pool;
+	int	srb_pool_order;
+
+	/*
+	 * 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 ____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 */
+        struct list_head        failover_queue; /* failover list link. */
+	struct list_head        free_queue;     /* SRB free queue */
+	struct list_head        scsi_retry_queue;     /* SCSI retry queue */
+	
+	struct list_head        pending_queue;	/* SCSI command pending queue */
+
+        /*********************************************************/
+
+	pid_t			dpc_pid;
+	int			dpc_should_die;
+	struct completion	dpc_inited;
+	struct completion	dpc_exited;
+	struct semaphore	*dpc_wait;
+
+	uint8_t dpc_active;                  /* DPC routine is active */
+
+	/* Received ISP mailbox data. */
+	volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT];
+
+#if defined(FC_IP_SUPPORT)
+	/* Data for IP support */
+	uint8_t		ip_port_name[WWN_SIZE];
+
+	struct risc_rec_entry *risc_rec_q;	/* RISC receive queue */
+	dma_addr_t	risc_rec_q_dma;		/*  physical address */
+	uint16_t	rec_entries_in;
+	uint16_t	rec_entries_out;
+
+	struct send_cb	*active_scb_q[MAX_SEND_PACKETS];
+	uint32_t	current_scb_q_idx;
+
+	uint32_t	mtu;
+	uint16_t	header_size;
+	uint16_t        max_receive_buffers;
+	struct buffer_cb *receive_buffers;
+	uint32_t	receive_buff_data_size;
+
+	void		(*send_completion_routine)
+				(struct send_cb *scb);
+	void		*receive_packets_context;
+	void		(*receive_packets_routine)
+				(void *context, struct buffer_cb *bcb);
+	void		*notify_context;
+	void		(*notify_routine)
+				(void *context, uint32_t type);
+
+	struct ip_device ipdev_db[QLLAN_MAX_IP_DEVICES];
+	struct ip_device *ipdev_db_next_free;
+	struct ip_device *ipdev_db_top;
+	struct ip_device *ipdev_db_bottom;
+#endif
+
+	/* Firmware Initialization Control Block data */
+	dma_addr_t	init_cb_dma;         /* Physical address. */
+	init_cb_t       *init_cb;
+  
+	/* Timeout timers. */
+	uint8_t         queue_restart_timer;   
+	atomic_t        loop_down_timer;         /* loop down timer */
+	uint8_t         loop_down_abort_time;    /* port down timer */
+	uint8_t         link_down_timeout;       /* link down timeout */
+	uint32_t        timer_active;
+	uint32_t        forceLip;
+	struct timer_list        timer;
+
+	/* These are used by mailbox operations. */
+	mbx_cmd_t	*mcp;
+	unsigned long	mbx_cmd_flags;
+#define MBX_CMD_ACTIVE	1 /* first bit */
+#define MBX_CMD_WANT	2 /* 2nd bit */
+#define MBX_INTERRUPT	3 /* 3rd bit */
+#define MBX_INTR_WAIT   4 /* 4rd bit */
+
+	spinlock_t	mbx_reg_lock;   /* Mbx Cmd Register Lock */
+	spinlock_t	mbx_q_lock;     /* Mbx Active Cmd Queue Lock */
+	spinlock_t	mbx_bits_lock;  /* Mailbox access bits Lock */
+
+	uint32_t	mbx_lock_bits;  /* controlled by mbx_bits_lock */
+#define MBX_CMD_LOCK	1 /* first bit */
+#define MBX_CMD_WANT	2 /* 2nd bit */
+
+	struct semaphore  mbx_intr_sem;  /* Used for completion notification */
+
+	mbx_cmdq_t	*mbx_sem_pool_head;  /* Head Pointer to a list of
+			                      * recyclable mbx semaphore pool
+			                      * to be used during run time.
+			                      */
+	mbx_cmdq_t	*mbx_sem_pool_tail;  /* Tail Pointer to semaphore pool*/
+#define MBQ_INIT_LEN	16 /* initial mbx sem pool q len. actual len may vary */
+
+	mbx_cmdq_t	*mbx_q_head; /* Head Pointer to sem q for active cmds */
+	mbx_cmdq_t	*mbx_q_tail; /* Tail Pointer to sem q for active cmds */
+
+
+        uint32_t	retry_q_cnt; 
+        uint32_t	scsi_retry_q_cnt; 
+        uint32_t	failover_cnt; 
+
+	uint8_t	*cmdline;
+
+        uint32_t	login_retry_count; 
+    
+	volatile struct
+	{
+		uint32_t     online                  :1;   /* 0 */
+		uint32_t     enable_64bit_addressing :1;   /* 1 */
+		uint32_t     mbox_int                :1;   /* 2 */
+		uint32_t     mbox_busy               :1;   /* 3 */
+
+		// UNUSED and UNASSIGNED
+		uint32_t     port_name_used          :1;   /* 4 */
+
+		uint32_t     failover_enabled        :1;   /* 5 */
+		uint32_t     watchdog_enabled        :1;   /* 6 */
+		uint32_t     cfg_suspended   	     :1;   /* 7 */
+
+		uint32_t     disable_host_adapter    :1;   /* 8 */
+		uint32_t     rscn_queue_overflow     :1;   /* 9 */
+		uint32_t     reset_active            :1;   /* 10 */
+		uint32_t     link_down_error_enable  :1;   /* 11 */
+
+		uint32_t     disable_risc_code_load  :1;   /* 12 */
+		uint32_t     set_cache_line_size_1   :1;   /* 13 */
+		uint32_t     enable_target_mode      :1;   /* 14 */
+		uint32_t     disable_luns            :1;   /* 15 */
+
+		uint32_t     enable_lip_reset        :1;   /* 16 */
+		uint32_t     enable_lip_full_login   :1;   /* 17 */
+		uint32_t     enable_target_reset     :1;   /* 18 */
+
+		// UNUSED and UNASSIGNED
+		uint32_t     updated_fc_db           :1;   /* 19 */
+
+		uint32_t     enable_flash_db_update  :1;   /* 20 */
+		uint32_t     in_isr                  :1;   /* 21 */
+		uint32_t     dpc_sched               :1;   /* 23 */
+
+		// UNUSED and UNASSIGNED
+		uint32_t     nvram_config_done       :1;   /* 24 */
+
+		// UNUSED and UNASSIGNED
+		uint32_t     update_config_needed    :1;   /* 25 */
+		uint32_t     management_server_logged_in    :1; /* 26 */
+#if defined(FC_IP_SUPPORT)
+                uint32_t     enable_ip               :1;   /* 27 */
+#endif
+                uint32_t     process_response_queue  :1;   /* 28 */
+	} flags;
+
+	uint32_t     device_flags;
+#define DFLG_LOCAL_DEVICES		BIT_0
+#define DFLG_RETRY_LOCAL_DEVICES	BIT_1
+#define DFLG_FABRIC_DEVICES		BIT_2
+#define	SWITCH_FOUND			BIT_3
+#define	DFLG_NO_CABLE			BIT_4
+
+        uint8_t		marker_needed; 
+	uint8_t		sns_retry_cnt;
+	uint8_t		mem_err;
+
+	unsigned long   dpc_flags;
+#define	RESET_MARKER_NEEDED	0	/* initiate sending a marker to ISP */
+#define	RESET_ACTIVE		1
+#define	ISP_ABORT_NEEDED	2	/* initiate ISP Abort */
+#define	ABORT_ISP_ACTIVE	3	/* isp abort in progress */
+
+#define	LOOP_RESYNC_NEEDED	4	/* initiate a configure fabric sequence */
+#define	LOOP_RESYNC_ACTIVE	5
+#define	COMMAND_WAIT_NEEDED	6
+#define	COMMAND_WAIT_ACTIVE	7
+
+#define LOCAL_LOOP_UPDATE       8	/* Perform a local loop update */
+#define RSCN_UPDATE             9	/* Perform a RSCN update */
+#define MAILBOX_RETRY           10
+#define ISP_RESET_NEEDED        11	/* Initiate a ISP reset ??? */
+
+#define FAILOVER_EVENT_NEEDED   12
+#define FAILOVER_EVENT		13
+#define FAILOVER_NEEDED   	14
+
+/* UNUSED BITS */
+/*
+#define LOOP_RESET_NEEDED	15
+#define DEVICE_RESET_NEEDED	16
+#define DEVICE_ABORT_NEEDED	17
+ */
+
+#define SCSI_RESTART_NEEDED	18	/* Processes any requests in scsi retry queue */
+#define PORT_RESTART_NEEDED	19	/* Processes any requests in retry queue */
+
+#define RESTART_QUEUES_NEEDED	20	/* Restarts requeusts in the lun queue */
+#define ABORT_QUEUES_NEEDED	21
+#define RELOGIN_NEEDED	        22
+#define LOGIN_RETRY_NEEDED	23	/* initiates any fabric logins that are required */ 
+#define REGISTER_FC4_NEEDED	24	/* set when need to register again.*/
+
+#define TASKLET_SCHED		25	/* Tasklet is scheduled.  */ 
+#define DONE_RUNNING		26	/* Done task is running. */
+#define ISP_ABORT_RETRY         27      /* ISP aborted. */
+
+	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 */
+
+	mbx_cmd_t 	mc;
+	uint32_t	mbx_flags;
+#define  MBX_IN_PROGRESS  BIT_0
+#define  MBX_BUSY       BIT_1 /* Got the Access */
+#define  MBX_SLEEPING_ON_SEM  BIT_2 
+#define  MBX_POLLING_FOR_COMP  BIT_3
+#define  MBX_COMPLETED      BIT_4
+#define  MBX_TIMEDOUT       BIT_5 
+#define  MBX_ACCESS_TIMEDOUT BIT_6
+
+/* following are new and needed for IOCTL support */
+	hba_ioctl_context *ioctl;
+	uint8_t     node_name[WWN_SIZE];
+
+	uint8_t     optrom_major; 
+	uint8_t     optrom_minor; 
+
+	uint8_t     nvram_version; 
+
+	void        *ioctl_mem;
+	dma_addr_t  ioctl_mem_phys;
+	uint32_t    ioctl_mem_size;
+	uint32_t    isp_abort_cnt;
+
+	/* HBA serial number */
+	uint8_t     serial0;
+	uint8_t     serial1;
+	uint8_t     serial2;
+
+#if defined(ISP2300)
+	uint16_t fb_rev;
+#endif
+
+	/* HBA Model Number */
+	uint8_t model_number[16];
+#define BINZERO		"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+
+	/* OEM related items */
+	uint8_t oem_specific[16];
+
+	uint32_t    dump_done;
+	unsigned long    done_q_cnt;
+	unsigned long    pending_in_q;
+
+	uint32_t failover_type;
+	uint32_t failback_delay;
+	unsigned long   cfg_flags;
+#define	CFG_ACTIVE	0	/* CFG during a failover, event update, or ioctl */
+
+	int	srb_cnt;
+	int	srb_alloc_cnt;	/*Number of allocated SRBs  */
+
+	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 */
+
+	uint32_t	dropped_frame_error_cnt;
+
+#if defined(ISP2300)
+	/* Needed for BEACON */
+	uint16_t	beacon_blink_led;
+	uint16_t	beacon_green_on;
+#endif
+} scsi_qla_host_t;
+
+
+/*
+ * Macros to help code, maintain, etc.
+ */
+#define LOOP_TRANSITION(ha) \
+	(test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \
+	 test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
+
+#define LOOP_NOT_READY(ha) \
+	((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \
+	  test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) || \
+	  test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) || \
+	  test_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags) || \
+	  test_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags) || \
+	  test_bit(COMMAND_WAIT_ACTIVE, &ha->dpc_flags)) || \
+	 ha->loop_state == LOOP_DOWN)
+				 
+#define LOOP_RDY(ha)	(!LOOP_NOT_READY(ha))
+
+#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 KMEM_ZALLOC(siz,id)	qla2x00_kmem_zalloc((siz), GFP_ATOMIC, (id))
+#define KMEM_FREE(ip,siz)	kfree((ip))
+
+/*
+ * qla2x00 local function return status codes
+ */
+#define MBS_MASK		0x3fff
+
+#define QLA_SUCCESS		(MBS_COMMAND_COMPLETE & MBS_MASK)
+#define QLA_INVALID_COMMAND	(MBS_INVALID_COMMAND & MBS_MASK)
+#define QLA_INTERFACE_ERROR	(MBS_HOST_INTERFACE_ERROR & MBS_MASK)
+#define QLA_TEST_FAILED		(MBS_TEST_FAILED & MBS_MASK)
+#define QLA_COMMAND_ERROR	(MBS_COMMAND_ERROR & MBS_MASK)
+#define QLA_PARAMETER_ERROR	(MBS_COMMAND_PARAMETER_ERROR & MBS_MASK)
+#define QLA_PORT_ID_USED	(MBS_PORT_ID_USED & MBS_MASK)
+#define QLA_LOOP_ID_USED	(MBS_LOOP_ID_USED & MBS_MASK)
+#define QLA_ALL_IDS_IN_USE	(MBS_ALL_IDS_IN_USE & MBS_MASK)
+#define QLA_NOT_LOGGED_IN	(MBS_NOT_LOGGED_IN & MBS_MASK)
+
+#define QLA_FUNCTION_TIMEOUT		0x100
+#define QLA_FUNCTION_PARAMETER_ERROR	0x101
+#define QLA_FUNCTION_FAILED		0x102
+#define QLA_MEMORY_ALLOC_FAILED		0x103
+#define QLA_LOCK_TIMEOUT		0x104
+#define QLA_ABORTED			0x105
+#define QLA_SUSPENDED			0x106
+#define QLA_BUSY			0x107
+
+/*
+ * LOCK MACROS
+ */
+#define QLA_MBX_REG_LOCK(ha) \
+	spin_lock_irqsave(&(ha)->mbx_reg_lock, mbx_flags)
+#define QLA_MBX_REG_UNLOCK(ha) \
+	spin_unlock_irqrestore(&(ha)->mbx_reg_lock, mbx_flags)
+
+/*
+* Stat info for all adpaters
+*/
+struct _qla2x00stats  {
+        unsigned long   mboxtout;            /* mailbox timeouts */
+        unsigned long   mboxerr;             /* mailbox errors */
+        unsigned long   ispAbort;            /* ISP aborts */
+        unsigned long   debugNo;
+        unsigned long   loop_resync;
+        unsigned long   outarray_full;
+        unsigned long   retry_q_cnt;
+};
+
+#define SYS_DELAY(x)		udelay(x);barrier()
+#define QLA2100_DELAY(sec)	mdelay(sec * HZ)
+#define NVRAM_DELAY()		udelay(10)
+#define UDELAY(x)		udelay(x)
+
+#define CACHE_FLUSH(a)	(RD_REG_WORD(a))
+#define INVALID_HANDLE	(MAX_OUTSTANDING_COMMANDS+1)
+
+/*
+ * Flash support definitions
+ */
+#define FLASH_IMAGE_SIZE	131072
+
+#include "qla_fo.h"
+#include "qla_cfg.h"
+#include "qla_gbl.h"
+#include "qla_dbg.h"
+#include "qla_inline.h"
+#include "qla_listops.h"
+
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_devtbl.h 350-qlogic/drivers/scsi/qla2xxx/qla_devtbl.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_devtbl.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_devtbl.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,32 @@
+#define QLA_MODEL_NAMES         0x19
+
+/*
+ * Adapter model names.
+ */
+char *qla2x00_model_name[QLA_MODEL_NAMES] = {
+	"QLA2340",	/* 0x100 */
+	"QLA2342",	/* 0x101 */
+	"QLA2344",	/* 0x102 */
+	"QLA2342",	/* 0x103 */
+	"QLA2340",	/* 0x104 */
+	"QLA2342",	/* 0x105 */
+	"QLA2310",	/* 0x106 */
+	"QLA2332",	/* 0x107 */
+	"QCP2332",	/* 0x108 */
+	"QCP2340",	/* 0x109 */
+	"QLA2342",	/* 0x10a */
+	"QCP2342",	/* 0x10b */
+	"QLA2350",	/* 0x10c */
+	"QLA2352",	/* 0x10d */
+	"QLA2352",	/* 0x10e */
+	"HPQSVS ",	/* 0x10f */
+	"HPQSVS ",	/* 0x110 */
+	"QLA4010",	/* 0x111 */
+	"QLA4010",	/* 0x112 */
+	"QLA4010",	/* 0x113 */
+	"QLA4010",	/* 0x114 */
+	"QLA2360",	/* 0x115 */
+	"QLA2362",	/* 0x116 */
+	"QLA2350",	/* 0x117 */
+	"QLA2352"	/* 0x118 */
+};
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.c 350-qlogic/drivers/scsi/qla2xxx/qla_fo.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_fo.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,2459 @@
+/********************************************************************************
+*                  QLOGIC LINUX SOFTWARE
+*
+* QLogic ISP2x00 device driver for Linux 2.5.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.
+*
+******************************************************************************
+* Failover include file
+******************************************************************************/
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+#include "qlfo.h"
+#include "qlfolimits.h"
+
+//TODO Why??
+#include "qla_fo.cfg"
+
+/* This type is used to create a temporary list of port names */
+typedef struct _portname_list {
+	struct _portname_list *pnext;
+	uint8_t 	portname[8];
+} portname_list;
+
+/*
+ * Global variables
+ */
+SysFoParams_t qla_fo_params;
+
+/*
+ * Local routines
+ */
+#if !defined(linux)
+static int qla2x00_sdm_setup(EXT_IOCTL *cmd_stp, void *arg, int mode);
+#endif
+static uint32_t qla2x00_fo_get_params(PFO_PARAMS pp);
+static uint32_t qla2x00_fo_set_params(PFO_PARAMS pp);
+static uint8_t qla2x00_fo_count_retries(scsi_qla_host_t *ha, srb_t *sp);
+static int qla2x00_fo_get_lun_data(EXT_IOCTL *pext,
+    FO_LUN_DATA_INPUT *bp, int mode);
+static int qla2x00_fo_set_lun_data(EXT_IOCTL *pext,
+    FO_LUN_DATA_INPUT *bp, int mode);
+static uint32_t qla2x00_fo_stats(FO_HBA_STAT *stat_p, uint8_t reset);
+static int qla2x00_fo_get_target_data(EXT_IOCTL *pext,
+    FO_TARGET_DATA_INPUT *bp, int mode);
+
+static int qla2x00_std_get_tgt(scsi_qla_host_t *, EXT_IOCTL *,
+    FO_DEVICE_DATA *);
+static int qla2x00_fo_get_tgt(mp_host_t *, scsi_qla_host_t *, EXT_IOCTL *,
+    FO_DEVICE_DATA *);
+static int qla2x00_fo_set_target_data(EXT_IOCTL *pext,
+    FO_TARGET_DATA_INPUT *bp, int mode);
+
+static int qla2x00_port_name_in_list(uint8_t *, portname_list *);
+static int qla2x00_add_to_portname_list(uint8_t *, portname_list **);
+static void qla2x00_free_portname_list(portname_list **);
+
+/*
+ * qla2x00_get_hba
+ *	Searches the hba structure chain for the requested instance
+ *      aquires the mutex and returns a pointer to the hba structure.
+ *
+ * Input:
+ *	inst = adapter instance number.
+ *
+ * Returns:
+ *	Return value is a pointer to the adapter structure or
+ *      NULL if instance not found.
+ *
+ * Context:
+ *	Kernel context.
+ */
+scsi_qla_host_t *
+qla2x00_get_hba(int instance)
+{
+	int	found;
+	struct list_head *hal;
+	scsi_qla_host_t *ha;
+
+	ha = NULL;
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (ha->instance == instance) {
+			found++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	return (found ? ha : NULL);
+}
+
+/*
+ * qla2x00_fo_stats
+ *	Searches the hba structure chan for the requested instance
+ *      aquires the mutex and returns a pointer to the hba structure.
+ *
+ * Input:
+ *	stat_p = Pointer to FO_HBA_STAT union.
+ *      reset  = Flag, TRUE = reset statistics.
+ *                     FALSE = return statistics values.
+ *
+ * Returns:
+ *	0 = success
+ *
+ * Context:
+ *	Kernel context.
+ */
+static uint32_t
+qla2x00_fo_stats(FO_HBA_STAT *stat_p, uint8_t reset)
+{
+	int32_t	inst, idx;
+	uint32_t rval = 0;
+	struct list_head *hal;
+	scsi_qla_host_t *ha;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	inst = stat_p->input.HbaInstance;
+	stat_p->info.HbaCount = 0;
+
+	ha = NULL;
+
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (inst == FO_ADAPTER_ALL) {
+			stat_p->info.HbaCount++;
+			idx = ha->instance;
+		} else if (ha->instance == inst) {
+			stat_p->info.HbaCount = 1;
+			idx = inst;
+		}
+		if (reset == TRUE) {
+			DEBUG9(printk("%s: reset stats.\n", __func__);)
+			ha->IosRequested = 0;
+			ha->BytesRequested = 0;
+			ha->IosExecuted = 0;
+			ha->BytesExecuted = 0;
+		} else {
+ 			DEBUG9(printk("%s: get stats for inst %d.\n",
+ 			    __func__, inst);)
+ 
+#if 0
+			stat_p->info.StatEntry[idx].IosRequested =
+				ha->IosRequested;
+			stat_p->info.StatEntry[idx].BytesRequested =
+				ha->BytesRequested;
+			stat_p->info.StatEntry[idx].IosExecuted =
+				ha->IosExecuted;
+			stat_p->info.StatEntry[idx].BytesExecuted =
+				ha->BytesExecuted;
+#endif
+		}
+		if (inst != FO_ADAPTER_ALL)
+			break;
+	}
+	read_unlock(&qla_hostlist_lock);
+ 
+ 	DEBUG9(printk("%s: exiting.\n", __func__);)
+ 
+	return rval;
+}
+
+/*
+ * qla2x00_fo_get_lun_data
+ *      Get lun data from all devices attached to a HBA (FO_GET_LUN_DATA).
+ *      Gets lun mask if failover not enabled.
+ *
+ * Input:
+ *      ha = pointer to adapter
+ *      bp = pointer to buffer
+ *
+ * Return;
+ *      0 on success or errno.
+ *
+ * Context:
+ *      Kernel context.
+ */
+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, *fcpl;
+	fc_port_t        *fcport;
+	int              ret = 0;
+	mp_host_t        *host = NULL;
+	mp_device_t      *dp;
+	mp_path_t        *path;
+	mp_path_list_t   *pathlist;
+	os_tgt_t         *ostgt;
+	uint8_t          path_id;
+	uint16_t         dev_no;
+	uint16_t         cnt;
+	uint16_t         lun;
+	FO_EXTERNAL_LUN_DATA_ENTRY *u_entry, *entry;
+	FO_LUN_DATA_LIST *u_list, *list;
+
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+
+	if (!ha) {
+		DEBUG2_9_10(printk("%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	DEBUG9(printk("%s: ha inst %ld, buff %p.\n",
+	    __func__, ha->instance, bp);)
+	DEBUG4(printk("%s: hba %p, buff %p bp->HbaInstance(%x).\n",
+	    __func__, ha, bp, (int)bp->HbaInstance));
+
+	if (ha->flags.failover_enabled)
+		if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+			if (!list_empty(&ha->fcports)) {
+				/* Device was unconfigured. Return ok but with
+				 * zero entry.
+				 */
+				uint16_t	entry_cnt = 0;
+
+				u_list = (FO_LUN_DATA_LIST *)pext->ResponseAdr;
+				/* copy number of entries */
+				ret = verify_area(VERIFY_WRITE,
+				    (void *)&u_list->EntryCount,
+				    sizeof(entry_cnt));
+				if (ret) {
+					/* error */
+					DEBUG2_9_10(printk(
+					    "%s: u_list->EntryCount %p verify "
+					    " write error. EntryCount=0.\n",
+					    __func__, &u_list->EntryCount);)
+					pext->Status = EXT_STATUS_COPY_ERR;
+				} else {
+					ret = copy_to_user(&u_list->EntryCount,
+					    &entry_cnt, sizeof(entry_cnt));
+				}
+
+			} else {
+				DEBUG2_9_10(printk(
+				    "%s: no HOST for ha inst %ld.\n",
+				    __func__, ha->instance);)
+				pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			}
+			return (ret);
+		}
+
+	list = (FO_LUN_DATA_LIST *)qla2x00_kmem_zalloc(
+	    sizeof(FO_LUN_DATA_LIST), GFP_ATOMIC, 12);
+	if (list == NULL) {
+		DEBUG2_9_10(printk("%s: failed to alloc memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_LUN_DATA_LIST));)
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		return (-ENOMEM);
+	}
+
+	entry = &list->DataEntry[0];
+
+	u_list = (FO_LUN_DATA_LIST *)pext->ResponseAdr;
+	u_entry = &u_list->DataEntry[0];
+
+	/* find the correct fcport list */
+	if (!ha->flags.failover_enabled)
+		fcports = &ha->fcports;
+	else
+		fcports = host->fcports;
+
+	/* Check thru this adapter's fcport list */
+	fcport = NULL;
+	list_for_each(fcpl, fcports) {
+		fcport = list_entry(fcpl, fc_port_t, list);
+
+		memcpy(entry->NodeName,
+		    fcport->node_name, EXT_DEF_WWN_NAME_SIZE);
+		memcpy(entry->PortName,
+		    fcport->port_name, EXT_DEF_WWN_NAME_SIZE);
+
+		if (!ha->flags.failover_enabled) {
+			/*
+			 * Failover disabled. Just return LUN mask info
+			 * in lun data entry of this port.
+			 */
+			entry->TargetId = 0;
+			for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+				if (!(ostgt = ha->otgt[cnt])) {
+					continue;
+				}
+
+				if (ostgt->fcport == fcport) {
+					entry->TargetId = cnt;
+					break;
+				}
+			}
+			if (cnt == MAX_FIBRE_DEVICES) {
+				/* Not found?  For now just go to next port. */
+#if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_10)
+				uint8_t          *tmp_name;
+
+				tmp_name = fcport->port_name;
+
+ 				printk("%s(%ld): ERROR - port "
+ 				    "%02x%02x%02x%02x%02x%02x%02x%02x "
+ 				    "not configured.\n",
+ 				    __func__, ha->host_no,
+ 				    tmp_name[0], tmp_name[1], tmp_name[2],
+ 				    tmp_name[3], tmp_name[4], tmp_name[5],
+ 				    tmp_name[6], tmp_name[7]);
+#endif /* DEBUG */
+
+				continue;
+			}
+
+			/* Got a valid port */
+			list->EntryCount++;
+
+			for (lun = 0; lun < MAX_LUNS; lun++) {
+				/* set MSB if masked */
+				entry->Data[lun] = LUN_DATA_PREFERRED_PATH;
+				if (!EXT_IS_LUN_BIT_SET(&(fcport->lun_mask),
+				    lun)) {
+					entry->Data[lun] |= LUN_DATA_ENABLED;
+				}
+			}
+
+ 			DEBUG9(printk("%s: got lun_mask for tgt %d\n",
+ 			    __func__, cnt);)
+ 			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));
+ 
+ 			if (ret) {
+ 				/* error */
+ 				DEBUG9_10(printk("%s: u_entry %p copy "
+ 				    "error. list->EntryCount=%d.\n",
+ 				    __func__, u_entry, list->EntryCount);)
+ 				pext->Status = EXT_STATUS_COPY_ERR;
+ 				break;
+ 			}
+
+			copy_to_user(u_entry, entry,
+					sizeof(FO_EXTERNAL_LUN_DATA_ENTRY));
+
+			/* Go to next port */
+			u_entry++;
+			continue;
+		}
+
+		/*
+		 * Failover is enabled. Go through the mp_devs list and return
+		 * lun data in configured path.
+		 */
+		for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+			dp = host->mp_devs[dev_no];
+
+			if (dp == NULL)
+				continue;
+
+			/* Lookup entry name */
+			if (!qla2x00_is_portname_in_device(dp, entry->PortName))
+				continue;
+
+			if ((pathlist = dp->path_list) == NULL)
+				continue;
+
+			path = pathlist->last;
+			for (path_id = 0; path_id < pathlist->path_cnt;
+			    path_id++, path = path->next) {
+
+				if (path->host != host)
+					continue;
+
+				if (!qla2x00_is_portname_equal(path->portname,
+				    entry->PortName))
+					continue;
+
+				/* Got an entry */
+				entry->TargetId = dp->dev_id;
+				entry->Dev_No = path->id;
+				list->EntryCount++;
+
+				for (lun = 0; lun < MAX_LUNS; lun++) {
+					entry->Data[lun] =
+					    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);)
+					pext->Status = EXT_STATUS_COPY_ERR;
+					break;
+				}
+
+				u_entry++;
+
+				DEBUG9(printk("%s: (output) get_lun_data - "
+				    "u_entry(%p) - lun entry[%d] :\n",
+				    __func__, u_entry,list->EntryCount - 1);)
+
+				DEBUG9(qla2x00_dump_buffer((void *)entry, 64);)
+
+				/*
+				 * We found the right path for this port.
+				 * Continue with next port.
+				 */
+				break;
+			}
+
+			/* Continue with next port. */
+			break;
+		}
+	}
+
+	DEBUG9(printk("%s: get_lun_data - entry count = [%d]\n",
+	    __func__, list->EntryCount);)
+	DEBUG4(printk("%s: get_lun_data - entry count = [%d]\n",
+	    __func__, list->EntryCount);)
+
+	if (ret == 0) {
+		ret = verify_area(VERIFY_WRITE, (void *)&u_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;
+		}
+	}
+
+	KMEM_FREE(list, sizeof(FO_LUN_DATA_LIST));
+
+	DEBUG9(printk("%s: exiting. ret=%d.\n", __func__, ret);)
+
+	return ret;
+}
+
+/*
+ * qla2x00_fo_set_lun_data
+ *      Set lun data for the specified device on the attached hba
+ *      (FO_SET_LUN_DATA).
+ *      Sets lun mask if failover not enabled.
+ *
+ * Input:
+ *      bp = pointer to buffer
+ *
+ * Return;
+ *      0 on success or errno.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static int
+qla2x00_fo_set_lun_data(EXT_IOCTL *pext, FO_LUN_DATA_INPUT  *bp, int mode)
+{
+	scsi_qla_host_t  *ha;
+	fc_port_t        *fcport;
+	int              i;
+	int              ret = 0;
+	mp_host_t        *host = NULL;
+	mp_device_t      *dp;
+	mp_path_t        *path;
+	mp_path_list_t   *pathlist;
+	os_tgt_t         *ostgt;
+	uint8_t	         path_id;
+	uint16_t         dev_no;
+	uint16_t         lun;
+	FO_LUN_DATA_LIST *u_list, *list;
+	FO_EXTERNAL_LUN_DATA_ENTRY *u_entry, *entry;
+
+	typedef struct _tagStruct {
+		FO_LUN_DATA_INPUT   foLunDataInput;
+		FO_LUN_DATA_LIST    foLunDataList;
+	}
+	com_struc;
+	com_struc *com_iter;
+
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+
+	if (!ha) {
+		DEBUG2_9_10(printk("%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	DEBUG9(printk("%s: ha inst %ld, buff %p.\n",
+	    __func__, ha->instance, bp);)
+
+	if (ha->flags.failover_enabled)
+		if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+			DEBUG2_9_10(printk("%s: no HOST for ha inst %ld.\n",
+			    __func__, ha->instance);)
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			return (ret);
+		}
+
+	list = (FO_LUN_DATA_LIST *)qla2x00_kmem_zalloc(
+	    sizeof(FO_LUN_DATA_LIST), GFP_ATOMIC, 13);
+	if (list == NULL) {
+		DEBUG2_9_10(printk("%s: failed to alloc memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_LUN_DATA_LIST));)
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		return (-ENOMEM);
+	}
+
+	entry = &list->DataEntry[0];
+
+	/* get lun data list from user */
+	com_iter = (com_struc *)pext->RequestAdr;
+	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 */
+		DEBUG2_9_10(printk("%s: u_list %p copy error.\n",
+		    __func__, u_list);)
+		pext->Status = EXT_STATUS_COPY_ERR;
+		KMEM_FREE(list, FO_LUN_DATA_LIST);
+		return (ret);
+	}
+
+	DEBUG2(printk("qla_fo_set_lun_data: pext->RequestAdr(%p) u_list (%p) "
+			"sizeof(FO_LUN_DATA_INPUT) =(%d) and 64 bytes...\n",
+			pext->RequestAdr, u_list,
+			(int)sizeof(FO_LUN_DATA_INPUT));)
+	DEBUG2(qla2x00_dump_buffer((void *)u_list, 64);)
+
+	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) {
+			/* error */
+			DEBUG2_9_10(printk("%s: u_entry %p copy error.\n",
+			    __func__, u_entry);)
+			pext->Status = EXT_STATUS_COPY_ERR;
+			break;
+		}
+
+		if (!ha->flags.failover_enabled) {
+			/*
+			 * Failover disabled. Just find the port and set
+			 * LUN mask values in lun_mask field of this port.
+			 */
+
+			if (entry->TargetId >= MAX_FIBRE_DEVICES)
+				/* ERROR */
+				continue;
+
+			if (!(ostgt = ha->otgt[entry->TargetId]))
+				/* ERROR */
+				continue;
+
+			if (!(fcport = ostgt->fcport))
+				/* ERROR */
+				continue;
+
+			for (lun = 0; lun < MAX_LUNS; lun++) {
+				/* set MSB if masked */
+				if (entry->Data[lun] | LUN_DATA_ENABLED) {
+					EXT_CLR_LUN_BIT(&(fcport->lun_mask),
+								lun);
+				} else {
+					EXT_SET_LUN_BIT(&(fcport->lun_mask),
+								lun);
+				}
+			}
+
+			/* Go to next entry */
+			continue;
+		}
+
+		/*
+		 * Failover is enabled. Go through the mp_devs list and set lun
+		 * data in configured path.
+		 */
+		for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+			dp = host->mp_devs[dev_no];
+
+			if (dp == NULL)
+				continue;
+
+			/* Lookup entry name */
+			if (!qla2x00_is_portname_in_device(dp, entry->PortName))
+					continue;
+
+			if ((pathlist = dp->path_list) == NULL)
+					continue;
+
+			path = pathlist->last;
+			for (path_id = 0; path_id < pathlist->path_cnt;
+			    path_id++, path = path->next) {
+
+				if (path->host != host)
+					continue;
+
+				if (!qla2x00_is_portname_equal(path->portname,
+				    entry->PortName))
+					continue;
+
+				for (lun = 0; lun < MAX_LUNS; lun++) {
+					path->lun_data.data[lun] =
+					    entry->Data[lun];
+					DEBUG4(printk("cfg_set_lun_data: lun "
+					    "data[%d] = 0x%x \n", lun,
+					    path->lun_data.data[lun]);)
+				}
+
+				break;
+			}
+			break;
+		}
+	}
+
+	KMEM_FREE(list, FO_LUN_DATA_LIST);
+
+	DEBUG9(printk("%s: exiting. ret = %d.\n", __func__, ret);)
+
+	return ret;
+}
+
+/*
+ * qla2x00_fo_get_target_data
+ *      Get the target control byte for all devices attached to a HBA.
+ *
+ * Input:
+ *      bp = pointer to buffer
+ *
+ * Return;
+ *      0 on success or errno.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static int
+qla2x00_fo_get_target_data(EXT_IOCTL *pext, FO_TARGET_DATA_INPUT *bp, int mode)
+{
+	scsi_qla_host_t  *ha;
+	int              ret = 0;
+	mp_host_t        *host = NULL;
+	FO_DEVICE_DATA   *entry;
+
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+
+	if (!ha) {
+		DEBUG2_9_10(printk("%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	DEBUG9(printk("%s: ha inst %ld, buff %p.\n",
+	    __func__, ha->instance, bp);)
+
+	if (ha->flags.failover_enabled)
+		if ((host = qla2x00_cfg_find_host(ha)) == 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;
+			return (ret);
+		}
+
+	if ((entry = (FO_DEVICE_DATA *)kmalloc(sizeof(FO_DEVICE_DATA),
+	    GFP_ATOMIC)) == NULL) {
+		DEBUG2_9_10(printk("%s: failed to alloc memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_DEVICE_DATA));)
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		return (-ENOMEM);
+	}
+
+	/* Return data accordingly. */
+	if (!ha->flags.failover_enabled)
+		ret = qla2x00_std_get_tgt(ha, pext, entry);
+	else
+		ret = qla2x00_fo_get_tgt(host, ha, pext, entry);
+
+
+	if (ret == 0) {
+		pext->ResponseLen = sizeof(FO_DEVICE_DATABASE);
+	}
+
+	KMEM_FREE(entry, sizeof(FO_DEVICE_DATA));
+
+	DEBUG9(printk("%s: exiting. ret = %d.\n", __func__, ret);)
+
+	return (ret);
+}
+
+static int
+qla2x00_std_get_tgt(scsi_qla_host_t *ha, EXT_IOCTL *pext, FO_DEVICE_DATA *entry)
+{
+	int              ret = 0;
+	uint8_t          i, cnt;
+	uint32_t	b;
+	fc_port_t        *fcport;
+	os_tgt_t         *ostgt;
+	FO_DEVICE_DATA   *u_entry;
+
+	DEBUG9(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
+
+	u_entry = (FO_DEVICE_DATA *) pext->ResponseAdr;
+
+	if (pext->ResponseLen < sizeof(FO_DEVICE_DATA)) {
+		pext->Status = EXT_STATUS_BUFFER_TOO_SMALL;
+		DEBUG9_10(printk("%s: ERROR ResponseLen %d too small.\n",
+		    __func__, pext->ResponseLen);)
+
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): user buffer size=%d. Copying fcport list\n",
+	    __func__, ha->host_no, pext->ResponseLen);)
+
+	/* Loop through and return ports found. */
+	/* Check thru this adapter's fcport list */
+	i = 0;
+	fcport = NULL;
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (i >= 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);
+
+		for (b = 0; b < 3 ; b++)
+			entry->PortId[b] = fcport->d_id.r.d_id[2-b];
+
+		DEBUG9(printk("%s(%ld): found fcport %p:%02x%02x%02x%02x"
+		    "%02x%02x%02x%02x.\n",
+		    __func__, ha->host_no,
+		    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]);)
+
+		/*
+		 * Just find the port and return target info.
+		 */
+		for (cnt = 0; cnt < MAX_FIBRE_DEVICES; cnt++) {
+			if (!(ostgt = ha->otgt[cnt])) {
+				continue;
+			}
+
+			if (ostgt->fcport == fcport) {
+				DEBUG9(printk("%s(%ld): Found target %d.\n",
+				    __func__, ha->host_no, cnt);)
+
+				entry->TargetId = cnt;
+				break;
+			}
+		}
+
+		if (cnt == MAX_FIBRE_DEVICES) {
+			/* Not bound, this target is unconfigured. */
+			entry->MultipathControl = MP_MASK_UNCONFIGURED;
+		} else {
+			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));
+		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 fcport list entries.\n",
+	    __func__, ha->host_no);)
+
+	DEBUG9(printk("%s(%ld): exiting. ret = %d.\n",
+	    __func__, ha->host_no, ret);)
+
+	return (ret);
+}
+
+static int
+qla2x00_fo_get_tgt(mp_host_t *host, scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    FO_DEVICE_DATA *entry)
+{
+	int		ret = 0;
+	uint8_t 	i;
+	uint8_t 	path_id;
+	uint16_t	dev_no;
+	uint32_t	b;
+	uint16_t	cnt = 0;
+
+	fc_port_t        *fcport;
+	mp_device_t	*dp;
+	mp_path_list_t	*pathlist;
+	mp_path_t	*path;
+
+	FO_DEVICE_DATA	*u_entry;
+
+	DEBUG9(printk("%s(%ld): entered.\n", __func__, host->ha->host_no);)
+
+	u_entry = (FO_DEVICE_DATA *) pext->ResponseAdr;
+
+	/* If host is NULL then report all fcports of the corresponding
+	 * ha as unconfigured devices.  ha should never be NULL.
+	 */
+	if (host == NULL) {
+		/* Loop through and return ports found. */
+		/* Check thru this adapter's fcport list */
+		i = 0;
+		fcport = NULL;
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			cnt++;
+			if (i >= 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);
+
+			DEBUG10(printk("%s(%ld): found fcport %p:%02x%02x%02x"
+			    "%02x%02x%02x%02x%02x.\n",
+			    __func__, host->ha->host_no,
+			    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]);)
+
+			for (b = 0; b < 3 ; b++)
+				entry->PortId[b] = fcport->d_id.r.d_id[2-b];
+
+			DEBUG9_10(printk("%s(%ld): fcport mpbyte=%02x. "
+			    "return unconfigured. ",
+			    __func__, host->ha->host_no, fcport->mp_byte);)
+
+			entry->TargetId = 0;
+			entry->Dev_No = 0;
+			entry->MultipathControl = MP_MASK_UNCONFIGURED;
+
+			DEBUG9_10(printk("tgtid=%d dev_no=%d, mpdata=0x%x.\n",
+			    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) {
+				/* error */
+				DEBUG2_9_10(printk("%s(%ld): u_entry %p "
+				    "copy out err. no tgt id.\n",
+				    __func__, host->ha->host_no, u_entry);)
+				pext->Status = EXT_STATUS_COPY_ERR;
+				break;
+			}
+
+			u_entry++;
+		}
+
+		DEBUG9(printk("%s(%ld): after returning unconfigured fcport "
+		    "list. got %d entries.\n",
+		    __func__, host->ha->host_no, cnt);)
+
+		return (ret);
+	}
+
+	/* Check thru fcport list on host */
+	/* Loop through and return ports found. */
+	/* Check thru this adapter's fcport list */
+	i = 0;
+	fcport = NULL;
+	list_for_each_entry(fcport, host->fcports, list) {
+		if (i >= 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);
+
+		DEBUG10(printk("%s(%ld): found fcport %p:%02x%02x%02x%02x"
+		    "%02x%02x%02x%02x.\n",
+		    __func__, host->ha->host_no,
+		    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]);)
+
+		for (b = 0; b < 3 ; b++)
+			entry->PortId[b] = fcport->d_id.r.d_id[2-b];
+
+		if (fcport->mp_byte & MP_MASK_UNCONFIGURED) {
+			DEBUG9_10(printk("%s(%ld): fcport mpbyte=%02x. "
+			    "return unconfigured. ",
+			    __func__, host->ha->host_no, fcport->mp_byte);)
+
+			entry->TargetId = fcport->os_target_id;
+			entry->Dev_No = 0;
+			entry->MultipathControl = MP_MASK_UNCONFIGURED;
+
+			DEBUG9_10(printk("tgtid=%d dev_no=%d, mpdata=0x%x.\n",
+			    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->os_target_id);)
+				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__, host->ha->host_no, u_entry,
+				    fcport->os_target_id);)
+				pext->Status = EXT_STATUS_COPY_ERR;
+				break;
+			}
+
+			u_entry++;
+			continue;
+		}
+
+		/*
+		 * Port was configured. Go through the mp_devs list and
+		 * get target data in configured path.
+		 */
+		for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+			dp = host->mp_devs[dev_no];
+
+			if (dp == NULL)
+				continue;
+
+			/* Lookup entry name */
+			if (!qla2x00_is_portname_in_device(dp, entry->PortName))
+				continue;
+
+			if ((pathlist = dp->path_list) == NULL)
+				continue;
+
+			path = pathlist->last;
+			for (path_id = 0; path_id < pathlist->path_cnt;
+			    path_id++, path= path->next) {
+
+				if (path->host != host)
+					continue;
+
+				if (!qla2x00_is_portname_equal(path->portname,
+				    entry->PortName))
+					continue;
+
+				entry->TargetId = dp->dev_id;
+				entry->Dev_No = path->id;
+				entry->MultipathControl = path->mp_byte;
+
+				if (path->config == TRUE ||
+				    !mp_config_required) {
+					entry->MultipathControl = path->mp_byte;
+				} else {
+					entry->MultipathControl =
+					    MP_MASK_UNCONFIGURED;
+				}
+
+				DEBUG9_10(printk("%s(%ld): fcport path->id "
+				    "= %d, target/mpbyte data = 0x%02x.\n",
+				    __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) {
+					/* error */
+					DEBUG2_9_10(printk("%s(%ld): u_entry %p "
+					    "copy out err. tgt id=%d.\n",
+					    __func__, host->ha->host_no,
+					    u_entry, dp->dev_id);)
+					pext->Status = EXT_STATUS_COPY_ERR;
+					break;
+				}
+
+				u_entry++;
+
+				/* Path found. Continue with next fcport */
+				break;
+			}
+			break;
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): after checking fcport list. got %d entries.\n",
+	    __func__, host->ha->host_no, cnt);)
+
+	/* 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 (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;
+
+		if ((pathlist = dp->path_list) == NULL)
+			continue;
+
+		path = pathlist->last;
+		for (path_id = 0; path_id < pathlist->path_cnt;
+		    path_id++, path = path->next) {
+
+			/* Sanity check */
+			if (qla2x00_is_wwn_zero(path->portname))
+				continue;
+
+			if (path->port == NULL) {
+				if (path->host != host) {
+					/* path on other host. no need to
+					 * report
+					 */
+					DEBUG10(printk("%s(%ld): path host %p "
+					    "not for current host %p.\n",
+					    __func__, host->ha->host_no,
+					    path->host, host);)
+
+					continue;
+				}
+
+				/* clear for a new entry */
+				memset(entry, 0, sizeof(FO_DEVICE_DATA));
+
+				/* This device was not found. Return
+				 * unconfigured.
+				 */
+				memcpy(entry->WorldWideName,
+				    dp->nodename, EXT_DEF_WWN_NAME_SIZE);
+				memcpy(entry->PortName,
+				    path->portname, EXT_DEF_WWN_NAME_SIZE);
+
+				entry->TargetId = dp->dev_id;
+				entry->Dev_No = path->id;
+				/*
+				entry->MultipathControl = path->mp_byte
+				    | MP_MASK_UNCONFIGURED;
+				    */
+				entry->MultipathControl = MP_MASK_UNCONFIGURED;
+				cnt++;
+
+				DEBUG9(printk("%s: found missing device. "
+				    "return tgtid=%d dev_no=%d, mpdata=0x%x for"
+				    " port %02x%02x%02x%02x%02x%02x%02x%02x\n",
+				    __func__, entry->TargetId, entry->Dev_No,
+				    entry->MultipathControl,
+				    path->portname[0], path->portname[1],
+				    path->portname[2], path->portname[3],
+				    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) {
+					/* error */
+					DEBUG2_9_10(printk("%s: u_entry %p "
+					    "copy out err. tgt id=%d.\n",
+					    __func__, u_entry, dp->dev_id);)
+					pext->Status = EXT_STATUS_COPY_ERR;
+					break;
+				}
+
+				u_entry++;
+			}
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): after checking missing devs. got %d entries.\n",
+	    __func__, host->ha->host_no, cnt);)
+
+	DEBUG9(printk("%s(%ld): exiting. ret = %d.\n",
+	    __func__, host->ha->host_no, ret);)
+
+	return (ret);
+
+} /* qla2x00_get_fo_tgt */
+
+/*
+ * qla2x00_fo_set_target_data
+ *      Set multipath control byte for all devices on the attached hba
+ *
+ * Input:
+ *      bp = pointer to buffer
+ *
+ * Return;
+ *      0 on success or errno.
+ *
+ * Context:
+ *      Kernel context.
+ */
+static int
+qla2x00_fo_set_target_data(EXT_IOCTL *pext, FO_TARGET_DATA_INPUT  *bp, int mode)
+{
+	scsi_qla_host_t  *ha;
+	int              i;
+	int              ret = 0;
+	mp_host_t        *host;
+	mp_device_t      *dp;
+	mp_path_t        *path;
+	mp_path_list_t   *pathlist;
+	uint16_t         dev_no;
+	uint8_t	         path_id;
+	FO_DEVICE_DATA *entry, *u_entry;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	ha = qla2x00_get_hba((int)bp->HbaInstance);
+
+	if (!ha) {
+		DEBUG2_9_10(printk("%s: no ha matching inst %d.\n",
+		    __func__, bp->HbaInstance);)
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	DEBUG9(printk("%s: ha inst %ld, buff %p.\n",
+	    __func__, ha->instance, bp);)
+
+	if (!ha->flags.failover_enabled)
+		/* non-failover mode. nothing to be done. */
+		return 0;
+
+	if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+		DEBUG2_9_10(printk("%s: no HOST for ha inst %ld.\n",
+		    __func__, ha->instance);)
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	entry = (FO_DEVICE_DATA *)qla2x00_kmem_zalloc(
+	    sizeof(FO_DEVICE_DATA), GFP_ATOMIC, 15);
+	if (entry == NULL) {
+		DEBUG2_9_10(printk("%s: failed to alloc memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_DEVICE_DATA));)
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		return (-ENOMEM);
+	}
+
+	u_entry = (FO_DEVICE_DATA *)(pext->RequestAdr +
+	    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",
+			    __func__, u_entry);)
+			pext->Status = EXT_STATUS_COPY_ERR;
+			break;
+		}
+
+		for (dev_no = 0; dev_no < MAX_MP_DEVICES; dev_no++) {
+			dp = host->mp_devs[dev_no];
+
+			if (dp == NULL)
+				continue;
+
+			/* Lookup entry name */
+			if (!qla2x00_is_portname_in_device(dp, entry->PortName))
+				continue;
+
+			if ((pathlist = dp->path_list) == NULL)
+				continue;
+
+			path = pathlist->last;
+			for (path_id = 0; path_id < pathlist->path_cnt;
+			    path_id++, path= path->next) {
+
+				if (path->host != host)
+					continue;
+
+				if (!qla2x00_is_portname_equal(path->portname,
+				    entry->PortName))
+					continue;
+
+				path->mp_byte = entry->MultipathControl;
+
+				DEBUG9(printk("cfg_set_target_data: %d target "
+				    "data = 0x%x \n",
+				    path->id,path->mp_byte);)
+
+				/*
+				 * If this is the visible path, then make it
+				 * available on next reboot.
+				 */
+				if (!((path->mp_byte & MP_MASK_HIDDEN) ||
+				    (path->mp_byte & MP_MASK_UNCONFIGURED))) {
+					pathlist->visible = path->id;
+				}
+
+				/* Found path. Go to next entry. */
+				break;
+			}
+			break;
+		}
+	}
+
+	KMEM_FREE(entry, sizeof(FO_DEVICE_DATA));
+
+	DEBUG9(printk("%s: exiting. ret = %d.\n", __func__, ret);)
+
+	return (ret);
+
+}
+
+/*
+ * qla2x00_fo_ioctl
+ *	Provides functions for failover ioctl() calls.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	ioctl_code = ioctl function to perform
+ *	arg = Address of application EXT_IOCTL cmd data
+ *	mode = flags
+ *
+ * Returns:
+ *	Return value is the ioctl rval_p return value.
+ *	0 = success
+ *
+ * Context:
+ *	Kernel context.
+ */
+/* ARGSUSED */
+int
+qla2x00_fo_ioctl(scsi_qla_host_t *ha, int ioctl_code, EXT_IOCTL *pext, int mode)
+{
+	int	rval = 0;
+	size_t	in_size, out_size;
+	static	union {
+		FO_PARAMS params;
+		FO_GET_PATHS path;
+		FO_SET_CURRENT_PATH set_path;
+		/* FO_HBA_STAT_INPUT stat; */
+		FO_HBA_STAT stat;
+		FO_LUN_DATA_INPUT lun_data;
+		FO_TARGET_DATA_INPUT target_data;
+	} buff;
+
+	ENTER("qla2x00_fo_ioctl");
+	DEBUG9(printk("%s: entered. arg (%p):\n", __func__, pext);)
+
+	/*
+	 * default case for this switch not needed,
+	 * ioctl_code validated by caller.
+	 */
+	in_size = out_size = 0;
+	switch (ioctl_code) {
+		case FO_CC_GET_PARAMS:
+			out_size = sizeof(FO_PARAMS);
+			break;
+		case FO_CC_SET_PARAMS:
+			in_size = sizeof(FO_PARAMS);
+			break;
+		case FO_CC_GET_PATHS:
+			in_size = sizeof(FO_GET_PATHS);
+			break;
+		case FO_CC_SET_CURRENT_PATH:
+			in_size = sizeof(FO_SET_CURRENT_PATH);
+			break;
+		case FO_CC_GET_HBA_STAT:
+		case FO_CC_RESET_HBA_STAT:
+			in_size = sizeof(FO_HBA_STAT_INPUT);
+			break;
+		case FO_CC_GET_LUN_DATA:
+			in_size = sizeof(FO_LUN_DATA_INPUT);
+			break;
+		case FO_CC_SET_LUN_DATA:
+			in_size = sizeof(FO_LUN_DATA_INPUT);
+			break;
+		case FO_CC_GET_TARGET_DATA:
+			in_size = sizeof(FO_TARGET_DATA_INPUT);
+			break;
+		case FO_CC_SET_TARGET_DATA:
+			in_size = sizeof(FO_TARGET_DATA_INPUT);
+			break;
+
+	}
+	if (in_size != 0) {
+		if ((int)pext->RequestLen < in_size) {
+			pext->Status = EXT_STATUS_INVALID_PARAM;
+			pext->DetailStatus = EXT_DSTATUS_REQUEST_LEN;
+			DEBUG10(printk("%s: got invalie req len (%d).\n",
+			    __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);
+
+			if (rval) {
+				DEBUG2_9_10(printk("%s: req buf copy error. "
+				    "size=%ld.\n",
+				    __func__, (ulong)in_size);)
+
+				pext->Status = EXT_STATUS_COPY_ERR;
+			} else {
+				DEBUG9(printk("qla2x00_fo_ioctl: req buf "
+				    "copied ok.\n"));
+			}
+		}
+	} else if (out_size != 0 && (ulong)pext->ResponseLen < out_size) {
+		pext->Status = EXT_STATUS_BUFFER_TOO_SMALL;
+		pext->DetailStatus = out_size;
+		DEBUG10(printk("%s: got invalie resp len (%d).\n",
+		    __func__, pext->ResponseLen);)
+	}
+
+	if (rval != 0 || pext->Status != 0)
+		goto done_fo_ioctl;
+
+	pext->Status = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	switch (ioctl_code) {
+		case FO_CC_GET_PARAMS:
+			rval = qla2x00_fo_get_params(&buff.params);
+			break;
+		case FO_CC_SET_PARAMS:
+			rval = qla2x00_fo_set_params(&buff.params);
+			break;
+		case FO_CC_GET_PATHS:
+			rval = qla2x00_cfg_get_paths(pext,
+			    &buff.path,mode);
+			if (rval != 0)
+				out_size = 0;
+			break;
+		case FO_CC_SET_CURRENT_PATH:
+			rval = qla2x00_cfg_set_current_path(pext,
+			    &buff.set_path,mode);
+			break;
+		case FO_CC_RESET_HBA_STAT:
+			rval = qla2x00_fo_stats(&buff.stat, TRUE);
+			break;
+		case FO_CC_GET_HBA_STAT:
+			rval = qla2x00_fo_stats(&buff.stat, FALSE);
+			break;
+		case FO_CC_GET_LUN_DATA:
+
+			DEBUG4(printk("calling qla2x00_fo_get_lun_data\n");)
+			DEBUG4(printk("pext->RequestAdr (%p):\n",
+			    pext->RequestAdr);)
+
+			rval = qla2x00_fo_get_lun_data(pext,
+			    &buff.lun_data, mode);
+
+			if (rval != 0)
+				out_size = 0;
+			break;
+		case FO_CC_SET_LUN_DATA:
+
+			DEBUG4(printk("calling qla2x00_fo_set_lun_data\n");)
+			DEBUG4(printk("	pext->RequestAdr (%p):\n",
+			    pext->RequestAdr);)
+
+			rval = qla2x00_fo_set_lun_data(pext,
+			    &buff.lun_data, mode);
+			break;
+		case FO_CC_GET_TARGET_DATA:
+			DEBUG4(printk("calling qla2x00_fo_get_target_data\n");)
+			DEBUG4(printk("pext->RequestAdr (%p):\n",
+			    pext->RequestAdr);)
+
+			rval = qla2x00_fo_get_target_data(pext,
+			    &buff.target_data, mode);
+
+			if (rval != 0) {
+				out_size = 0;
+			}
+			break;
+		case FO_CC_SET_TARGET_DATA:
+			DEBUG4(printk("calling qla2x00_fo_set_target_data\n");)
+			DEBUG4(printk("	pext->RequestAdr (%p):\n",
+			    pext->RequestAdr);)
+			rval = qla2x00_fo_set_target_data(pext,
+			    &buff.target_data, mode);
+			break;
+
+	}
+
+	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) {
+			DEBUG10(printk("%s: resp buf copy error. size=%ld.\n",
+			    __func__, (ulong)out_size);)
+			pext->Status = EXT_STATUS_COPY_ERR;
+		}
+	}
+
+done_fo_ioctl:
+
+	if (rval != 0) {
+		/*EMPTY*/
+		DEBUG10(printk("%s: **** FAILED ****\n", __func__);)
+	} else {
+		/*EMPTY*/
+		DEBUG9(printk("%s: exiting normally\n", __func__);)
+	}
+
+	return rval;
+}
+
+
+/*
+ * qla2x00_fo_count_retries
+ *	Increment the retry counter for the command.
+ *      Set or reset the SRB_RETRY flag.
+ *
+ * Input:
+ *	sp = Pointer to command.
+ *
+ * Returns:
+ *	TRUE -- retry
+ * 	FALSE -- don't retry
+ *
+ * Context:
+ *	Kernel context.
+ */
+static uint8_t
+qla2x00_fo_count_retries(scsi_qla_host_t *ha, srb_t *sp)
+{
+	uint8_t		retry = TRUE;
+	os_lun_t	*lq;
+	os_tgt_t	*tq;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	if (++sp->fo_retry_cnt >  qla_fo_params.MaxRetriesPerIo) {
+		/* no more failovers for this request */
+		retry = FALSE;
+		sp->fo_retry_cnt = 0;
+		printk(KERN_INFO
+		    "qla2x00: no more failovers for request - "
+		    "pid= %ld\n", sp->cmd->serial_number);
+	} else {
+		/*
+		 * We haven't exceeded the max retries for this request, check
+		 * max retries this path
+		 */
+		if ((sp->fo_retry_cnt % qla_fo_params.MaxRetriesPerPath) == 0) {
+			DEBUG(printk(" qla2x00_fo_count_retries: FAILOVER - "
+			    "queuing ha=%ld, sp=%p, pid =%ld, "
+			    "fo retry= %d \n",
+			    ha->host_no,
+			    sp, sp->cmd->serial_number,
+			    sp->fo_retry_cnt);)
+
+			/*
+			 * Note: we don't want it to timeout, so it is
+			 * recycling on the retry queue and the fialover queue.
+			 */
+			lq = sp->lun_queue;
+			tq = sp->tgt_queue;
+			set_bit(LUN_MPIO_BUSY, &lq->q_flag);
+
+			/*
+			 * ??? We can get a path error on any ha, but always
+			 * queue failover on originating ha. This will allow us
+			 * to syncronized the requests for a given lun.
+			 */
+			sp->f_start=jiffies;/*ra 10/29/01*/
+			/* Now queue it on to be failover */
+			sp->ha = ha;
+			add_to_failover_queue(ha,sp);
+		}
+	}
+
+	DEBUG9(printk("%s: exiting. retry = %d.\n", __func__, retry);)
+
+	return retry ;
+}
+
+
+/*
+ * qla2x00_fo_check
+ *	This function is called from the done routine to see if
+ *  the SRB requires a failover.
+ *
+ *	This function examines the available os returned status and
+ *  if meets condition, the command(srb) is placed ont the failover
+ *  queue for processing.
+ *
+ * Input:
+ *	sp  = Pointer to the SCSI Request Block
+ *
+ * Output:
+ *      sp->flags SRB_RETRY bit id command is to
+ *      be retried otherwise bit is reset.
+ *
+ * Returns:
+ *      None.
+ *
+ * Context:
+ *	Kernel/Interrupt context.
+ */
+uint8_t
+qla2x00_fo_check(scsi_qla_host_t *ha, srb_t *sp)
+{
+	uint8_t		retry = FALSE;
+	int host_status;
+#if DEBUG_QLA2100
+	static char *reason[] = {
+		"DID_OK",
+		"DID_NO_CONNECT",
+		"DID_BUS_BUSY",
+		"DID_TIME_OUT",
+		"DID_BAD_TARGET",
+		"DID_ABORT",
+		"DID_PARITY",
+		"DID_ERROR",
+		"DID_RESET",
+		"DID_BAD_INTR"
+	};
+#endif
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	/* we failover on selction timeouts only */
+	host_status = host_byte(sp->cmd->result);
+	if( host_status == DID_NO_CONNECT) {
+		if( qla2x00_fo_count_retries(ha,sp) ) {
+			/* Force a retry  on this request, it will
+			 * cause the LINUX timer to get reset, while we
+			 * we are processing the failover.
+			 */
+			sp->cmd->result = DID_BUS_BUSY << 16;
+			retry = TRUE;
+		}
+		DEBUG(printk("qla2x00_fo_check: pid= %ld sp %p "
+				"retry count=%d, retry flag = %d, "
+				"host status (%s)\n\r",
+				sp->cmd->serial_number,
+				sp, sp->fo_retry_cnt,
+				retry, reason[host_status]);)
+	}
+
+	DEBUG9(printk("%s: exiting. retry = %d.\n", __func__, retry);)
+
+	return retry;
+}
+
+/*
+ * qla2x00_fo_path_change
+ *	This function is called from configuration mgr to notify
+ *	of a path change.
+ *
+ * Input:
+ *      type    = Failover notify type, FO_NOTIFY_LUN_RESET or FO_NOTIFY_LOGOUT
+ *      newlunp = Pointer to the fc_lun struct for current path.
+ *      oldlunp = Pointer to fc_lun struct for previous path.
+ *
+ * Returns:
+ *
+ * Context:
+ *	Kernel context.
+ */
+uint32_t
+qla2x00_fo_path_change(uint32_t type, fc_lun_t *newlunp, fc_lun_t *oldlunp)
+{
+	uint32_t	ret = QLA_SUCCESS;
+
+	newlunp->max_path_retries = 0;
+	return ret;
+}
+
+/*
+ * qla2x00_fo_get_params
+ *	Process an ioctl request to get system wide failover parameters.
+ *
+ * Input:
+ *	pp = Pointer to FO_PARAMS structure.
+ *
+ * Returns:
+ *	EXT_STATUS code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static uint32_t
+qla2x00_fo_get_params(PFO_PARAMS pp)
+{
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	pp->MaxPathsPerDevice = qla_fo_params.MaxPathsPerDevice;
+	pp->MaxRetriesPerPath = qla_fo_params.MaxRetriesPerPath;
+	pp->MaxRetriesPerIo = qla_fo_params.MaxRetriesPerIo;
+	pp->Flags = qla_fo_params.Flags;
+	pp->FailoverNotifyType = qla_fo_params.FailoverNotifyType;
+	pp->FailoverNotifyCdbLength = qla_fo_params.FailoverNotifyCdbLength;
+	memset(pp->FailoverNotifyCdb, 0, sizeof(pp->FailoverNotifyCdb));
+	memcpy(pp->FailoverNotifyCdb,
+	    &qla_fo_params.FailoverNotifyCdb[0], sizeof(pp->FailoverNotifyCdb));
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+	return EXT_STATUS_OK;
+}
+
+/*
+ * qla2x00_fo_set_params
+ *	Process an ioctl request to set system wide failover parameters.
+ *
+ * Input:
+ *	pp = Pointer to FO_PARAMS structure.
+ *
+ * Returns:
+ *	EXT_STATUS code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static uint32_t
+qla2x00_fo_set_params(PFO_PARAMS pp)
+{
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	/* Check values for defined MIN and MAX */
+	if ((pp->MaxPathsPerDevice > SDM_DEF_MAX_PATHS_PER_DEVICE) ||
+	    (pp->MaxRetriesPerPath < FO_MAX_RETRIES_PER_PATH_MIN) ||
+	    (pp->MaxRetriesPerPath > FO_MAX_RETRIES_PER_PATH_MAX) ||
+	    (pp->MaxRetriesPerIo < FO_MAX_RETRIES_PER_IO_MIN) ||
+	    (pp->MaxRetriesPerPath > FO_MAX_RETRIES_PER_IO_MAX)) {
+		DEBUG2_9_10(printk("%s: got invalid params.\n", __func__);)
+		return EXT_STATUS_INVALID_PARAM;
+	}
+
+	/* Update the global structure. */
+	qla_fo_params.MaxPathsPerDevice = pp->MaxPathsPerDevice;
+	qla_fo_params.MaxRetriesPerPath = pp->MaxRetriesPerPath;
+	qla_fo_params.MaxRetriesPerIo = pp->MaxRetriesPerIo;
+	qla_fo_params.Flags = pp->Flags;
+	qla_fo_params.FailoverNotifyType = pp->FailoverNotifyType;
+	qla_fo_params.FailoverNotifyCdbLength = pp->FailoverNotifyCdbLength;
+	if (pp->FailoverNotifyType & FO_NOTIFY_TYPE_CDB) {
+		if (pp->FailoverNotifyCdbLength >
+		    sizeof(qla_fo_params.FailoverNotifyCdb)) {
+			DEBUG2_9_10(printk("%s: got invalid cdb length.\n",
+			    __func__);)
+			return EXT_STATUS_INVALID_PARAM;
+		}
+
+		memcpy(qla_fo_params.FailoverNotifyCdb,
+		    pp->FailoverNotifyCdb,
+		    sizeof(qla_fo_params.FailoverNotifyCdb));
+	}
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+	return EXT_STATUS_OK;
+}
+
+
+/*
+ * qla2x00_fo_init_params
+ *	Gets driver configuration file failover properties to initalize
+ *	the global failover parameters structure.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+void
+qla2x00_fo_init_params(scsi_qla_host_t *ha)
+{
+	DEBUG3(printk("%s: entered.\n", __func__);)
+
+	/* For parameters that are not completely implemented yet, */
+
+	memset(&qla_fo_params, 0, sizeof(qla_fo_params));
+
+	if(MaxPathsPerDevice) {
+		qla_fo_params.MaxPathsPerDevice = MaxPathsPerDevice;
+	} else
+		qla_fo_params.MaxPathsPerDevice =FO_MAX_PATHS_PER_DEVICE_DEF ;
+	if(MaxRetriesPerPath) {
+		qla_fo_params.MaxRetriesPerPath = MaxRetriesPerPath;
+	} else
+		qla_fo_params.MaxRetriesPerPath =FO_MAX_RETRIES_PER_PATH_DEF;
+	if(MaxRetriesPerIo) {
+		qla_fo_params.MaxRetriesPerIo =MaxRetriesPerIo;
+	} else
+		qla_fo_params.MaxRetriesPerIo =FO_MAX_RETRIES_PER_IO_DEF;
+
+	qla_fo_params.Flags =  0;
+	qla_fo_params.FailoverNotifyType = FO_NOTIFY_TYPE_NONE;
+	
+	/* Set it to whatever user specified on the cmdline */
+	if (qlFailoverNotifyType != FO_NOTIFY_TYPE_NONE)
+		qla_fo_params.FailoverNotifyType = qlFailoverNotifyType;
+	
+
+	DEBUG3(printk("%s: exiting.\n", __func__);)
+}
+
+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;
+	dma_addr_t	phys_address = 0;
+	uint16_t	comp_status;
+	uint16_t	scsi_status;
+
+	ENTER(__func__);
+
+	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);
+	}
+
+	count = 100; 
+	retry = 10;
+	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);
+		pkt->p.cmd.target = (uint8_t)fcport->loop_id;
+		/* 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.byte_count = __constant_cpu_to_le32(0);
+
+		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);
+
+		if ( (scsi_status & SS_CHECK_CONDITION) ) {
+			DEBUG2(printk("%s(%ld): SS_CHECK_CONDITION "
+			    "Sense Data "
+			    "%02x %02x %02x %02x "
+			    "%02x %02x %02x %02x\n",
+			    __func__,
+			    ha->host_no,
+			    pkt->p.rsp.req_sense_data[0],
+			    pkt->p.rsp.req_sense_data[1],
+			    pkt->p.rsp.req_sense_data[2],
+			    pkt->p.rsp.req_sense_data[3],
+			    pkt->p.rsp.req_sense_data[4],
+			    pkt->p.rsp.req_sense_data[5],
+			    pkt->p.rsp.req_sense_data[6],
+			    pkt->p.rsp.req_sense_data[7]);)
+				if (pkt->p.rsp.req_sense_data[2] ==
+				    NOT_READY  &&
+				    (pkt->p.rsp.req_sense_data[12] == 4 ) &&
+				    (pkt->p.rsp.req_sense_data[13] == 3 ) ) {
+
+					current->state = TASK_UNINTERRUPTIBLE;
+					schedule_timeout(HZ);
+					printk(".");
+					count--;
+				} else
+					retry--;
+		}
+
+		printk("qla_fo: Sending Start - count %d, retry=%d"
+		    "comp status 0x%x, "
+		    "scsi status 0x%x, rval=%d\n",
+		    count,
+		    retry,
+		    comp_status,
+		    scsi_status, 
+		    rval);
+
+		if (rval != QLA_SUCCESS || comp_status != CS_COMPLETE)
+			retry--;
+
+	} while ( count && retry  &&
+	    (rval != QLA_SUCCESS || comp_status != CS_COMPLETE ||
+		(scsi_status & SS_CHECK_CONDITION)));
+
+	if (rval != QLA_SUCCESS ||
+	    comp_status != CS_COMPLETE ||
+	    (scsi_status & SS_CHECK_CONDITION)) {
+
+		DEBUG(printk("qla_fo: Failed spinup - "
+		    "comp status 0x%x, "
+		    "scsi status 0x%x. loop_id=%d\n",
+		    comp_status,
+		    scsi_status, 
+		    fcport->loop_id);)
+	}
+
+	pci_free_consistent(ha->pdev, sizeof(rpt_lun_cmd_rsp_t),
+	    pkt, phys_address);
+
+
+	LEAVE(__func__);
+
+	return( rval );
+
+}
+
+
+/*
+ * qla2x00_send_fo_notification
+ *      Sends failover notification if needed.  Change the fc_lun pointer
+ *      in the old path lun queue.
+ *
+ * Input:
+ *      old_lp = Pointer to old fc_lun.
+ *      new_lp = Pointer to new fc_lun.
+ *
+ * Returns:
+ *      Local function status code.
+ *
+ * Context:
+ *      Kernel context.
+ */
+uint32_t
+qla2x00_send_fo_notification(fc_lun_t *old_lp, fc_lun_t *new_lp)
+{
+	scsi_qla_host_t	*old_ha = old_lp->fcport->ha;
+	int		rval = QLA_SUCCESS;
+	inq_cmd_rsp_t	*pkt;
+	uint16_t	loop_id, lun;
+	dma_addr_t	phys_address;
+
+
+	ENTER("qla2x00_send_fo_notification");
+	DEBUG3(printk("%s: entered.\n", __func__);)
+
+	loop_id = new_lp->fcport->loop_id;
+	lun = new_lp->lun;
+
+	if (qla_fo_params.FailoverNotifyType == FO_NOTIFY_TYPE_LUN_RESET) {
+		rval = qla2x00_lun_reset(old_ha, loop_id, lun);
+		if (rval == QLA_SUCCESS) {
+			DEBUG4(printk("qla2x00_send_fo_notification: LUN "
+			    "reset succeded\n");)
+		} else {
+			DEBUG4(printk("qla2x00_send_fo_notification: LUN "
+			    "reset failed\n");)
+		}
+
+	}
+	if ( (qla_fo_params.FailoverNotifyType ==
+	     FO_NOTIFY_TYPE_LOGOUT_OR_LUN_RESET) ||
+	    (qla_fo_params.FailoverNotifyType ==
+	     FO_NOTIFY_TYPE_LOGOUT_OR_CDB) )  {
+
+		rval = qla2x00_fabric_logout(old_ha, loop_id);
+		if (rval == QLA_SUCCESS) {
+			DEBUG4(printk("qla2x00_send_fo_failover_notify: "
+			    "logout succeded\n");)
+		} else {
+			DEBUG4(printk("qla2x00_send_fo_failover_notify: "
+			    "logout failed\n");)
+		}
+
+	}
+
+	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_CDB) {
+		pkt = pci_alloc_consistent(old_ha->pdev,
+		    sizeof(inq_cmd_rsp_t), &phys_address);
+		if (pkt == NULL) {
+			DEBUG4(printk("qla2x00_send_fo_failover_notify: "
+			    "memory allocation failed\n");)
+
+			return(QLA_FUNCTION_FAILED);
+		}
+
+		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(loop_id);
+#else
+		pkt->p.cmd.target = loop_id;
+#endif
+		/* FIXME: How do you know the direction ???? */
+		/* This has same issues as passthur commands - you 
+		 * need more than just the CDB.
+		 */
+		pkt->p.cmd.control_flags =
+		    __constant_cpu_to_le16(CF_SIMPLE_TAG);
+		memcpy(pkt->p.cmd.scsi_cdb,
+		    qla_fo_params.FailoverNotifyCdb,
+		    qla_fo_params.FailoverNotifyCdbLength);
+		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(
+		    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(0);
+
+		rval = qla2x00_issue_iocb(old_ha,
+		    pkt, phys_address, sizeof (inq_cmd_rsp_t));
+
+		if (rval != QLA_SUCCESS ||
+		    pkt->p.rsp.comp_status != CS_COMPLETE ||
+		    pkt->p.rsp.scsi_status & SS_CHECK_CONDITION ||
+		    pkt->inq[0] == 0x7f) {
+
+			DEBUG4(printk("qla2x00_fo_notification: send CDB "
+			    "failed: comp_status = %x"
+			    "scsi_status = %x inq[0] = %x\n",
+			    pkt->p.rsp.comp_status,
+			    pkt->p.rsp.scsi_status,
+			    pkt->inq[0]);)
+		}
+
+		pci_free_consistent(old_ha->pdev,
+		    sizeof(inq_cmd_rsp_t), pkt, phys_address);
+	}
+
+	DEBUG3(printk("%s: exiting. rval = %d.\n", __func__, rval);)
+
+	return rval;
+}
+
+
+/*
+ * qla2100_fo_enabled
+ *      Reads and validates the failover enabled property.
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *      instance = HBA number.
+ *
+ * Returns:
+ *      TRUE when failover is authorized else FALSE
+ *
+ * Context:
+ *      Kernel context.
+ */
+uint8_t
+qla2x00_fo_enabled(scsi_qla_host_t *ha, int instance)
+{
+	uint8_t enable = FALSE;
+
+	if (ha->flags.failover_enabled)
+		enable = TRUE;
+
+	return enable;
+}
+
+/*
+ * qla2x00_fo_missing_port_summary
+ *	Returns values of devices not connected but found in configuration
+ *	file in user's dd_entry list.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pdd_entry = pointer to a temporary EXT_DEVICEDATAENTRY struct
+ *	pstart_of_entry_list = start of user addr of buffer for dd_entry entries
+ *	max_entries = max number of entries allowed by user buffer
+ *	pentry_cnt = pointer to total number of entries so far
+ *	ret_status = pointer to ioctl status field
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_fo_missing_port_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)
+{
+	int		ret = 0;
+	uint8_t 	path_id;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint16_t	dev_no;
+	uint32_t	b;
+	uint32_t	current_offset;
+	uint32_t	transfer_size;
+	mp_device_t	*dp;
+	mp_host_t	*host;
+	mp_path_list_t	*pathlist;
+	mp_path_t	*path;
+	portname_list 	*portname_used = NULL;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if ((host = qla2x00_cfg_find_host(ha)) == NULL) {
+		DEBUG2_9_10(printk("%s(%ld): no HOST for ha inst %ld.\n",
+		    __func__, ha->host_no, ha->instance);)
+		*ret_status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	/* Assumption: each port name cannot appear in more than one mpdev
+	 * structure.
+	 */
+	for (dev_no = 0; dev_no < MAX_MP_DEVICES && *pentry_cnt < max_entries;
+	    dev_no++) {
+		dp = host->mp_devs[dev_no];
+
+		if (dp == NULL)
+			continue;
+
+		/* Sanity check */
+		if (qla2x00_is_wwn_zero(dp->nodename))
+			continue;
+
+		if ((pathlist = dp->path_list) == NULL)
+			continue;
+
+		path = pathlist->last;
+		for (path_id = 0; path_id < pathlist->path_cnt &&
+		    *pentry_cnt < max_entries; path_id++, path = path->next) {
+
+			/* Sanity check */
+			if (qla2x00_is_wwn_zero(path->portname))
+				continue;
+
+			if (path->config == TRUE && path->port == NULL) {
+				/* This path was created from config file
+				 * but has not been configured.
+				 */
+				if (path->host != host) {
+					/* path on other host. don't report */
+					DEBUG10(printk("%s(%ld): path host %p "
+					    "not for current host %p.\n",
+					    __func__, ha->host_no, path->host,
+					    host);)
+
+					continue;
+				}
+
+				/* Check whether we've copied info on this
+				 * port name before.  If this is a new port
+				 * name, save the port name so we won't copy
+				 * it again if it's also found on other hosts.
+				 */
+				if (qla2x00_port_name_in_list(path->portname,
+				    portname_used)) {
+					DEBUG10(printk("%s(%ld): found previously "
+					    "reported portname=%02x%02x%02x"
+					    "%02x%02x%02x%02x%02x.\n",
+					    __func__, ha->host_no,
+					    path->portname[0],
+					    path->portname[1],
+					    path->portname[2],
+					    path->portname[3],
+					    path->portname[4],
+					    path->portname[5],
+					    path->portname[6],
+					    path->portname[7]);)
+					continue;
+				}
+
+				if ((ret = qla2x00_add_to_portname_list(
+				    path->portname, &portname_used))) {
+					/* mem alloc error? */
+					*ret_status = EXT_STATUS_NO_MEMORY;
+					break;
+				}
+
+				DEBUG10(printk("%s(%ld): returning missing device "
+				    "%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+				    __func__, ha->host_no,
+				    path->portname[0], path->portname[1],
+				    path->portname[2], path->portname[3],
+				    path->portname[4], path->portname[5],
+				    path->portname[6], path->portname[7]);)
+
+				/* This device was not found. Return
+				 * as unconfigured.
+				 */
+				memcpy(pdd_entry->NodeWWN, dp->nodename,
+				    WWN_SIZE);
+				memcpy(pdd_entry->PortWWN, path->portname,
+				    WWN_SIZE);
+
+				for (b = 0; b < 3 ; b++)
+					pdd_entry->PortID[b] = 0;
+
+				/* assume fabric dev so api won't translate the portid from loopid */
+				pdd_entry->ControlFlags = EXT_DEF_GET_FABRIC_DEVICE;
+
+				pdd_entry->TargetAddress.Bus    = 0;
+				pdd_entry->TargetAddress.Target = dp->dev_id;
+				pdd_entry->TargetAddress.Lun    = 0;
+				pdd_entry->DeviceFlags          = 0;
+				pdd_entry->LoopID               = 0;
+				pdd_entry->BaseLunNumber        = 0;
+
+				current_offset = *pentry_cnt *
+				    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 +
+				    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;
+				}
+				*pentry_cnt+=1;
+			}
+
+		}
+
+		if (ret || *ret_status) {
+			break;
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): ending entry cnt=%d.\n",
+	    __func__, ha->host_no, *pentry_cnt);)
+
+	qla2x00_free_portname_list(&portname_used);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting. ret=%d.\n",
+	    __func__, ha->host_no, ha->instance, ret);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_port_name_in_list
+ *	Returns whether we found the specified port name in the list given.
+ *
+ * Input:
+ *	wwpn = pointer to ww port name.
+ *	list = pointer to a portname_list list.
+ *
+ * Returns:
+ *	1 = found portname in list
+ *	0 = portname not in list
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_port_name_in_list(uint8_t *wwpn, portname_list *list)
+{
+	int	found_name = 0;
+	portname_list	*ptmp;
+
+	for (ptmp = list; ptmp; ptmp = ptmp->pnext) {
+		if (qla2x00_is_nodename_equal(ptmp->portname, wwpn)) {
+		    found_name = 1;
+		    break;
+		}
+	}
+
+	return (found_name);
+}
+
+/*
+ * qla2x00_add_to_portname_list
+ *	Allocates a portname_list member and adds it to the list given
+ *	with the specified port name.
+ *
+ * Input:
+ *	wwpn = pointer to ww port name.
+ *	plist = pointer to a pointer of portname_list list.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno indicating error
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_add_to_portname_list(uint8_t *wwpn, portname_list **plist)
+{
+	int		ret = 0;
+	portname_list	*ptmp;
+	portname_list	*plast;
+
+	if ((ptmp = (portname_list *)KMEM_ZALLOC(sizeof(portname_list), 50))) {
+
+		memcpy(ptmp->portname, wwpn, EXT_DEF_WWN_NAME_SIZE);
+
+		if (*plist) {
+			/* Add to tail of list */
+			for (plast = *plist; plast->pnext; plast=plast->pnext) {
+				/* empty */
+			}
+			plast->pnext = ptmp;
+		} else {
+			*plist = ptmp;
+		}
+
+	} else {
+		DEBUG2_9_10(printk("%s: failed to alloc memory of size (%d)\n",
+		    __func__, (int)sizeof(FO_LUN_DATA_LIST));)
+		ret = -ENOMEM;
+	}
+
+	return (ret);
+}
+
+/*
+ * qla2x00_free_portname_list
+ *	Free the list given.
+ *
+ * Input:
+ *	plist = pointer to a pointer of portname_list list to free.
+ *
+ * Returns:
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_free_portname_list(portname_list **plist)
+{
+	portname_list	*ptmp;
+	portname_list	*ptmpnext;
+
+	for (ptmp = *plist; ptmp; ptmp = ptmpnext) {
+		ptmpnext = ptmp->pnext;
+		KMEM_FREE(ptmp, sizeof(portname_list));
+	}
+	*plist = NULL;
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.cfg 350-qlogic/drivers/scsi/qla2xxx/qla_fo.cfg
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.cfg	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_fo.cfg	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,33 @@
+/******************************************************************************
+ *                  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.
+ *
+ ******************************************************************************/
+
+/*
+ * QLogic ISP2x00 Multi-path LUN Support Driver
+ */
+int	MaxPathsPerDevice = 0;
+int	MaxRetriesPerPath = 0;
+int	MaxRetriesPerIo = 0;
+int	qlFailoverNotifyType = 0;
+#if defined(MODULE)
+/* insmod qla2100 <options> ql2xopts=<string> */
+MODULE_PARM(MaxPathsPerDevice, "i");
+MODULE_PARM(MaxRetriesPerPath, "i");
+MODULE_PARM(MaxRetriesPerIo, "i");
+MODULE_PARM(qlFailoverNotifyType, "i");
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.h 350-qlogic/drivers/scsi/qla2xxx/qla_fo.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_fo.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_fo.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,75 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * QLogic ISP2x00 Failover Header 
+ *
+ */
+#ifndef _QLA_FO_H
+#define _QLA_FO_H
+
+#if defined(__cplusplus)
+extern "C"
+{
+#endif
+
+#include "qlfo.h"
+        /*
+         * This structure definition is for a scsi I/O request NOT subject to
+         * failover re-routing.  It is for the use of configuration operations
+         * and diagnostics functions as definted in ExIoct.h
+         */
+        typedef struct scsi_cdb_request {
+                struct adapter_state		*ha;
+                uint16_t	target;
+                uint16_t	lun;
+                uint8_t		*cdb_ptr;	/* Pointer to cdb to be sent */
+                uint8_t		cdb_len;	/* cdb length */
+                uint8_t		direction;	/* Direction of I/O for buffer */
+                uint8_t		scb_len;	/* Scsi completion block length */
+                uint8_t		*scb_ptr;	/* Scsi completion block pointer */
+                uint8_t		*buf_ptr;	/* Pointer to I/O buffer */
+                uint16_t	buf_len;	/* Buffer size */
+        }
+        SCSI_REQ_t, *SCSI_REQ_p;
+
+
+        /*
+        * Special defines
+        */
+        typedef	union	_FO_HBA_STAT {
+                FO_HBA_STAT_INPUT	input;
+                FO_HBA_STAT_INFO	info;
+        } FO_HBA_STAT;
+
+        typedef	union	_FO_LUN_DATA {
+                FO_LUN_DATA_INPUT	input;
+                FO_LUN_DATA_LIST	list;
+        } FO_LUN_DATA;
+
+        typedef union	_FO_TARGET_DATA {
+                FO_TARGET_DATA_INPUT    input;
+                FO_DEVICE_DATABASE    list;
+        } FO_TARGET_DATA;
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif	/* ifndef _QLA_FO_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_gbl.h 350-qlogic/drivers/scsi/qla2xxx/qla_gbl.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_gbl.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_gbl.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,428 @@
+/********************************************************************************
+*                  QLOGIC LINUX SOFTWARE
+*
+* QLogic ISP2x00 device driver for Linux 2.5.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.
+*
+******************************************************************************
+* Global include file.
+******************************************************************************/
+
+
+#ifndef __QLA_GBL_H
+#define	__QLA_GBL_H
+
+/*
+ * Global Data in FW files.
+ */
+extern unsigned char  fw2100tp_version[];
+extern unsigned char  fw2100tp_version_str[];
+extern unsigned short fw2100tp_addr01;
+extern unsigned short fw2100tp_code01[];
+extern unsigned short fw2100tp_length01;
+
+extern unsigned char  fw2200ip_version[];
+extern unsigned char  fw2200ip_version_str[];
+extern unsigned short fw2200ip_addr01;
+extern unsigned short fw2200ip_code01[];
+extern unsigned short fw2200ip_length01;
+
+extern unsigned char  fw2300ipx_version[];
+extern unsigned char  fw2300ipx_version_str[];
+extern unsigned short fw2300ipx_addr01;
+extern unsigned short fw2300ipx_code01[];
+extern unsigned short fw2300ipx_length01;
+
+#if defined(ISP2322)
+extern unsigned char  fw2322tpx_version[];
+extern unsigned char  fw2322tpx_version_str[];
+extern unsigned short fw2322tpx_addr01;
+extern unsigned short fw2322tpx_code01[];
+extern unsigned short fw2322tpx_length01;
+extern unsigned long rseqtpx_code_addr01;
+extern unsigned short rseqtpx_code01[];
+extern unsigned short rseqtpx_code_length01;
+extern unsigned long xseqtpx_code_addr01;
+extern unsigned short xseqtpx_code01[];
+extern unsigned short xseqtpx_code_length01;
+
+extern unsigned char  fw2322ipx_version[];
+extern unsigned char  fw2322ipx_version_str[];
+extern unsigned short fw2322ipx_addr01;
+extern unsigned short fw2322ipx_code01[];
+extern unsigned short fw2322ipx_length01;
+extern unsigned long rseqipx_code_addr01;
+extern unsigned short rseqipx_code01[];
+extern unsigned short rseqipx_code_length01;
+extern unsigned long xseqipx_code_addr01;
+extern unsigned short xseqipx_code01[];
+extern unsigned short xseqipx_code_length01;
+#endif
+
+/*
+ * Global Function Prototypes in qla_init.c source file.
+ */
+extern int qla2x00_initialize_adapter(scsi_qla_host_t *);
+extern int qla2x00_loop_resync(scsi_qla_host_t *);
+extern void qla2x00_tgt_free(scsi_qla_host_t *ha, uint16_t t);
+extern int qla2x00_fabric_login(scsi_qla_host_t *, fc_port_t *, uint16_t *);
+extern int qla2x00_local_device_login(scsi_qla_host_t *, uint16_t);
+
+extern void qla2x00_restart_queues(scsi_qla_host_t *, uint8_t);
+
+extern os_tgt_t *qla2x00_tgt_alloc(scsi_qla_host_t *, uint16_t);
+extern os_lun_t * qla2x00_lun_alloc(scsi_qla_host_t *, uint16_t, uint16_t);
+
+extern int qla2x00_abort_isp(scsi_qla_host_t *);
+
+
+/*
+ * Global Data in qla_os.c source file.
+ */
+extern char qla2x00_version_str[];
+extern unsigned long qla2x00_verbose;
+extern unsigned long qla2x00_quiet;
+extern unsigned long qla2x00_reinit;
+extern unsigned long qla2x00_req_dmp;
+
+extern int num_hosts;
+extern int apiHBAInstance;
+
+extern struct _qla2x00stats qla2x00_stats;
+extern char *ql2xdevconf;
+extern int ql2xretrycount;
+extern int qla2xenbinq;
+extern int max_srbs;
+extern int ql2xlogintimeout;
+extern int qlport_down_retry;
+extern int ql2xmaxqdepth;
+extern int displayConfig;
+#if defined(ISP2300)
+extern int ql2xintrdelaytimer;
+#endif
+
+extern int ql2xfailover;
+
+extern int ConfigRequired;
+extern int recoveryTime;
+extern int failbackTime;
+
+extern int Bind;
+extern int ql2xsuspendcount;
+extern int qla2x00_retryq_dmp;
+#if defined(MODULE)
+extern char *ql2xopts;
+#endif
+extern struct list_head qla_hostlist;
+extern rwlock_t qla_hostlist_lock;
+
+extern int qla2x00_queuecommand(struct scsi_cmnd *,
+    void (*)(struct scsi_cmnd *));
+
+extern int __qla2x00_suspend_lun(scsi_qla_host_t *, os_lun_t *, int, int, int);
+
+extern int qla2x00_done(scsi_qla_host_t *);
+extern void qla2x00_next(scsi_qla_host_t *);
+extern void qla2x00_flush_failover_q(scsi_qla_host_t *, os_lun_t *);
+extern void qla2x00_reset_lun_fo_counts(scsi_qla_host_t *, os_lun_t *);
+
+extern int qla2x00_check_tgt_status(scsi_qla_host_t *, struct scsi_cmnd *);
+extern int qla2x00_check_port_status(scsi_qla_host_t *, fc_port_t *);
+
+extern void qla2x00_extend_timeout(struct scsi_cmnd *, int);
+extern srb_t * qla2x00_get_new_sp (scsi_qla_host_t *ha);
+
+extern void qla2x00_mark_device_lost(scsi_qla_host_t *, fc_port_t *, int);
+extern void qla2x00_mark_all_devices_lost(scsi_qla_host_t *);
+
+extern int qla2x00_get_prop_xstr(scsi_qla_host_t *, char *, uint8_t *, int);
+
+extern void qla2x00_abort_queues(scsi_qla_host_t *, uint8_t);
+
+extern void qla2x00_blink_led(scsi_qla_host_t *);
+
+/*
+ * Global Function Prototypes in qla_iocb.c source file.
+ */
+extern request_t *qla2x00_req_pkt(scsi_qla_host_t *);
+extern request_t *qla2x00_ms_req_pkt(scsi_qla_host_t *, srb_t *);
+extern void qla2x00_isp_cmd(scsi_qla_host_t *);
+
+extern uint16_t qla2x00_calc_iocbs_32(uint16_t);
+extern uint16_t qla2x00_calc_iocbs_64(uint16_t);
+extern void qla2x00_build_scsi_iocbs_32(srb_t *, cmd_entry_t *, uint16_t);
+extern void qla2x00_build_scsi_iocbs_64(srb_t *, cmd_entry_t *, uint16_t);
+extern int qla2x00_start_scsi(srb_t *sp);
+int qla2x00_marker(scsi_qla_host_t *, uint16_t, uint16_t, uint8_t);
+int __qla2x00_marker(scsi_qla_host_t *, uint16_t, uint16_t, uint8_t);
+
+/*
+ * Global Function Prototypes in qla_mbx.c source file.
+ */
+extern int
+qla2x00_mailbox_command(scsi_qla_host_t *, mbx_cmd_t *);
+
+extern int
+qla2x00_load_ram(scsi_qla_host_t *, dma_addr_t, uint16_t, uint16_t);
+
+extern int
+qla2x00_load_ram_ext(scsi_qla_host_t *, dma_addr_t, uint32_t, uint16_t);
+
+extern int
+qla2x00_execute_fw(scsi_qla_host_t *);
+
+extern void
+qla2x00_get_fw_version(scsi_qla_host_t *, uint16_t *,
+    uint16_t *, uint16_t *, uint16_t *);
+
+extern int
+qla2x00_get_fw_options(scsi_qla_host_t *, uint16_t *);
+
+extern int
+qla2x00_set_fw_options(scsi_qla_host_t *, uint16_t *);
+
+extern int
+qla2x00_read_ram_word(scsi_qla_host_t *, uint16_t, uint16_t *);
+extern int
+qla2x00_write_ram_word(scsi_qla_host_t *, uint16_t, uint16_t);
+extern int
+qla2x00_write_ram_word_ext(scsi_qla_host_t *, uint32_t, uint16_t);
+
+extern int
+qla2x00_mbx_reg_test(scsi_qla_host_t *);
+
+extern int
+qla2x00_verify_checksum(scsi_qla_host_t *);
+
+extern int
+qla2x00_issue_iocb(scsi_qla_host_t *, void *, dma_addr_t, size_t);
+
+extern int
+qla2x00_abort_command(scsi_qla_host_t *, srb_t *);
+
+extern int
+qla2x00_abort_device(scsi_qla_host_t *, uint16_t, uint16_t);
+
+#if USE_ABORT_TGT
+extern int
+qla2x00_abort_target(fc_port_t *fcport);
+#endif
+
+extern int
+qla2x00_target_reset(scsi_qla_host_t *, uint16_t, uint16_t);
+
+extern int
+qla2x00_get_adapter_id(scsi_qla_host_t *, uint16_t *, uint8_t *, uint8_t *,
+    uint8_t *, uint16_t *);
+
+extern int
+qla2x00_get_retry_cnt(scsi_qla_host_t *, uint8_t *, uint8_t *);
+
+extern int
+qla2x00_loopback_test(scsi_qla_host_t *, INT_LOOPBACK_REQ *, uint16_t *);
+
+extern int
+qla2x00_echo_test(scsi_qla_host_t *, INT_LOOPBACK_REQ *, uint16_t *);
+
+extern int
+qla2x00_init_firmware(scsi_qla_host_t *, uint16_t);
+
+extern int
+qla2x00_get_port_database(scsi_qla_host_t *, fc_port_t *, uint8_t);
+
+extern int
+qla2x00_get_firmware_state(scsi_qla_host_t *, uint16_t *);
+
+extern int
+qla2x00_get_port_name(scsi_qla_host_t *, uint16_t, uint8_t *, uint8_t);
+
+extern uint8_t
+qla2x00_get_link_status(scsi_qla_host_t *, uint8_t, void *, uint16_t *);
+
+extern int
+qla2x00_lip_reset(scsi_qla_host_t *);
+
+extern int
+qla2x00_send_sns(scsi_qla_host_t *, dma_addr_t, uint16_t, size_t);
+
+extern int
+qla2x00_login_fabric(scsi_qla_host_t *, uint16_t, uint8_t, uint8_t, uint8_t,
+    uint16_t *, uint8_t);
+
+extern int
+qla2x00_login_local_device(scsi_qla_host_t *, uint16_t, uint16_t *, uint8_t);
+
+extern int
+qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id);
+
+extern int
+qla2x00_full_login_lip(scsi_qla_host_t *ha);
+
+extern int
+qla2x00_get_id_list(scsi_qla_host_t *, void *, dma_addr_t, uint16_t *);
+
+#if 0 /* not yet needed */
+extern int
+qla2x00_dump_ram(scsi_qla_host_t *, uint32_t, dma_addr_t, uint32_t);
+#endif
+
+extern int
+qla2x00_lun_reset(scsi_qla_host_t *, uint16_t, uint16_t);
+
+extern int
+qla2x00_send_rnid_mbx(scsi_qla_host_t *, uint16_t, uint8_t, dma_addr_t,
+    size_t, uint16_t *);
+
+extern int
+qla2x00_set_rnid_params_mbx(scsi_qla_host_t *, dma_addr_t, size_t, uint16_t *);
+
+extern int
+qla2x00_get_rnid_params_mbx(scsi_qla_host_t *, dma_addr_t, size_t, uint16_t *);
+
+#if defined(QL_DEBUG_LEVEL_3)
+extern int
+qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map);
+#endif
+
+/*
+ * Global Data in qla_fo.c source file.
+ */
+extern SysFoParams_t qla_fo_params;
+
+/*
+ * Global Function Prototypes in qla_fo.c source file.
+ */
+extern scsi_qla_host_t *qla2x00_get_hba(int);
+extern uint32_t qla2x00_send_fo_notification(fc_lun_t *fclun_p, fc_lun_t *olun_p);
+extern void qla2x00_fo_init_params(scsi_qla_host_t *ha);
+extern uint8_t qla2x00_fo_enabled(scsi_qla_host_t *ha, int instance);
+
+/*
+ * Global Data in qla_cfg.c source file.
+ */
+extern mp_host_t  *mp_hosts_base;
+extern uint8_t   mp_config_required;
+/*
+ * Global Function Prototypes in qla_cfg.c source file.
+ */
+extern mp_host_t * qla2x00_cfg_find_host(scsi_qla_host_t *);
+extern uint8_t qla2x00_is_portname_in_device(mp_device_t *, uint8_t *);
+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 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);
+extern int qla2x00_cfg_set_current_path( EXT_IOCTL *,
+			FO_SET_CURRENT_PATH *, int);
+extern void qla2x00_fo_properties(scsi_qla_host_t *ha);
+extern mp_host_t * qla2x00_add_mp_host(uint8_t *);
+extern void qla2x00_cfg_mem_free(scsi_qla_host_t *ha);
+extern mp_host_t * qla2x00_alloc_host(scsi_qla_host_t *);
+extern uint8_t 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);
+
+/*
+ * Global Function Prototypes in qla_cfgln.c source file.
+ */
+extern void qla2x00_cfg_build_path_tree( scsi_qla_host_t *ha);
+extern uint8_t qla2x00_update_mp_device(mp_host_t *,
+    fc_port_t  *, uint16_t, uint16_t);
+extern void qla2x00_cfg_display_devices(void);
+
+/*
+ * Global Function Prototypes in qla_xioctl.c source file.
+ */
+extern void qla2x00_enqueue_aen(scsi_qla_host_t *, uint16_t, void *);
+extern int qla2x00_fo_ioctl(scsi_qla_host_t *, int, EXT_IOCTL *, int);
+extern int qla2x00_fo_missing_port_summary(scsi_qla_host_t *,
+    EXT_DEVICEDATAENTRY *, void *, uint32_t, uint32_t *, uint32_t *);
+extern int qla2x00_alloc_ioctl_mem(scsi_qla_host_t *);
+extern void qla2x00_free_ioctl_mem(scsi_qla_host_t *);
+extern int qla2x00_get_ioctl_scrap_mem(scsi_qla_host_t *, void **, uint32_t);
+extern void qla2x00_free_ioctl_scrap_mem(scsi_qla_host_t *);
+
+/*
+ * Global Function Prototypes in qla_inioctl.c source file.
+ */
+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);
+
+
+/*
+ * Global Function Prototypes in qla_isr.c source file.
+ */
+extern irqreturn_t qla2x00_intr_handler(int, void *, struct pt_regs *);
+extern void qla2x00_process_response_queue(struct scsi_qla_host *);
+
+
+/*
+ * Global Function Prototypes in qla_sup.c source file.
+ */
+
+extern uint16_t qla2x00_get_nvram_word(scsi_qla_host_t *, uint32_t);
+extern void qla2x00_nv_write(scsi_qla_host_t *, uint16_t);
+extern void qla2x00_nv_deselect(scsi_qla_host_t *);
+extern void qla2x00_flash_enable(scsi_qla_host_t *);
+extern void qla2x00_flash_disable(scsi_qla_host_t *);
+extern uint8_t qla2x00_read_flash_byte(scsi_qla_host_t *, uint32_t);
+extern uint8_t qla2x00_get_flash_manufacturer(scsi_qla_host_t *);
+extern uint16_t qla2x00_get_flash_version(scsi_qla_host_t *);
+extern uint16_t qla2x00_get_flash_image(scsi_qla_host_t *, uint8_t *);
+extern uint16_t qla2x00_set_flash_image(scsi_qla_host_t *, uint8_t *);
+
+/*
+ * Global Function Prototypes in qla_vendor.c source file.
+ */
+void qla2x00_set_vend_direction(scsi_qla_host_t *, struct scsi_cmnd *,
+    cmd_entry_t *);
+
+/*
+ * Global Function Prototypes in qla_dbg.c source file.
+ */
+extern void qla2x00_dump_isp(scsi_qla_host_t *, int);
+extern void qla2x00_dump_regs(scsi_qla_host_t *);
+extern void qla2x00_dump_buffer(uint8_t *, uint32_t);
+extern void qla2x00_print_scsi_cmd(struct scsi_cmnd *);
+extern void qla2x00_print_q_info(struct os_lun *);
+
+/*
+ * Global Function Prototypes in qla_ip.c source file.
+ */
+extern int qla2x00_ip_initialize(scsi_qla_host_t *);
+extern int qla2x00_update_ip_device_data(scsi_qla_host_t *, fc_port_t *);
+extern void qla2x00_ip_send_complete(scsi_qla_host_t *, uint32_t, uint16_t);
+extern void qla2x00_ip_receive(scsi_qla_host_t *, sts_entry_t *);
+extern void qla2x00_ip_receive_fastpost(scsi_qla_host_t *, uint16_t);
+extern void qla2x00_ip_mailbox_iocb_done(scsi_qla_host_t *, struct mbx_entry *);
+
+/*
+ * Global Function Prototypes in qla_gs.c source file.
+ */
+extern int qla2x00_ga_nxt(scsi_qla_host_t *, fc_port_t *);
+extern int qla2x00_gid_pt(scsi_qla_host_t *, sw_info_t *);
+extern int qla2x00_gpn_id(scsi_qla_host_t *, sw_info_t *);
+extern int qla2x00_gnn_id(scsi_qla_host_t *, sw_info_t *);
+extern int qla2x00_gft_id(scsi_qla_host_t *, sw_info_t *);
+extern int qla2x00_rft_id(scsi_qla_host_t *);
+extern int qla2x00_rff_id(scsi_qla_host_t *);
+extern int qla2x00_rnn_id(scsi_qla_host_t *);
+extern int qla2x00_rsnn_nn(scsi_qla_host_t *);
+
+#endif /* _QLA_GBL_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_gs.c 350-qlogic/drivers/scsi/qla2xxx/qla_gs.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_gs.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_gs.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,683 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+
+static inline ms_iocb_entry_t *
+qla2x00_prep_ms_iocb(scsi_qla_host_t *, uint32_t, uint32_t);
+
+static inline struct ct_sns_req *
+qla2x00_prep_ct_req(struct ct_sns_req *, uint16_t, uint16_t);
+
+/**
+ * qla2x00_prep_ms_iocb() - Prepare common MS IOCB fields for SNS CT query.
+ * @ha: HA context
+ * @req_size: request size in bytes
+ * @rsp_size: response size in bytes
+ *
+ * Returns a pointer to the @ha's ms_iocb.
+ */
+static inline ms_iocb_entry_t *
+qla2x00_prep_ms_iocb(scsi_qla_host_t *ha, uint32_t req_size, uint32_t rsp_size)
+{
+	ms_iocb_entry_t *ms_pkt;
+
+	ms_pkt = ha->ms_iocb;
+	memset(ms_pkt, 0, sizeof(ms_iocb_entry_t));
+
+	ms_pkt->entry_type = MS_IOCB_TYPE;
+	ms_pkt->entry_count = 1;
+#if defined(EXTENDED_IDS)
+	ms_pkt->loop_id = __constant_cpu_to_le16(SIMPLE_NAME_SERVER);
+#else
+	ms_pkt->loop_id = SIMPLE_NAME_SERVER;
+#endif
+	ms_pkt->control_flags = __constant_cpu_to_le16(CF_READ | CF_HEAD_TAG);
+	ms_pkt->timeout = __constant_cpu_to_le16(25);
+	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_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_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_length = ms_pkt->rsp_bytecount;
+
+	return (ms_pkt);
+}
+
+/**
+ * qla2x00_prep_ct_req() - Prepare common CT request fields for SNS query.
+ * @ct_req: CT request buffer
+ * @cmd: GS command
+ * @rsp_size: response size in bytes
+ *
+ * Returns a pointer to the intitialized @ct_req.
+ */
+static inline struct ct_sns_req *
+qla2x00_prep_ct_req(struct ct_sns_req *ct_req, uint16_t cmd, uint16_t rsp_size)
+{
+	memset(ct_req, 0, sizeof(struct ct_sns_pkt));
+
+	ct_req->header.revision = 0x01;
+	ct_req->header.gs_type = 0xFC;
+	ct_req->header.gs_subtype = 0x02;
+	ct_req->command = cpu_to_be16(cmd);
+	ct_req->max_rsp_size = cpu_to_be16((rsp_size - 16) / 4);
+
+	return (ct_req);
+}
+
+/**
+ * qla2x00_ga_nxt() - SNS scan for fabric devices via GA_NXT command.
+ * @ha: HA context
+ * @fcport: fcport entry to updated
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_ga_nxt(scsi_qla_host_t *ha, fc_port_t *fcport)
+{
+	int		rval;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	/* Issue GA_NXT */
+	/* Prepare common MS IOCB */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, GA_NXT_REQ_SIZE, GA_NXT_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, GA_NXT_CMD,
+	    GA_NXT_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- port_id */
+	ct_req->req.port_id.port_id[0] = fcport->d_id.b.domain;
+	ct_req->req.port_id.port_id[1] = fcport->d_id.b.area;
+	ct_req->req.port_id.port_id[2] = fcport->d_id.b.al_pa;
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): GA_NXT issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): GA_NXT failed, rejected request, "
+		    "ga_nxt_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		/* Populate fc_port_t entry. */
+		fcport->d_id.b.domain = ct_rsp->rsp.ga_nxt.port_id[0];
+		fcport->d_id.b.area = ct_rsp->rsp.ga_nxt.port_id[1];
+		fcport->d_id.b.al_pa = ct_rsp->rsp.ga_nxt.port_id[2];
+
+		memcpy(fcport->node_name, ct_rsp->rsp.ga_nxt.node_name,
+		    WWN_SIZE);
+		memcpy(fcport->port_name, ct_rsp->rsp.ga_nxt.port_name,
+		    WWN_SIZE);
+
+		if (ct_rsp->rsp.ga_nxt.port_type != NS_N_PORT_TYPE &&
+		    ct_rsp->rsp.ga_nxt.port_type != NS_NL_PORT_TYPE)
+			fcport->d_id.b.domain = 0xf0;
+
+		DEBUG2_3(printk("scsi(%ld): GA_NXT entry - "
+		    "nn %02x%02x%02x%02x%02x%02x%02x%02x "
+		    "pn %02x%02x%02x%02x%02x%02x%02x%02x "
+		    "portid=%02x%02x%02x.\n",
+		    ha->host_no,
+		    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],
+		    fcport->d_id.b.domain, fcport->d_id.b.area,
+		    fcport->d_id.b.al_pa));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_gid_pt() - SNS scan for fabric devices via GID_PT command.
+ * @ha: HA context
+ * @list: switch info entries to populate
+ *
+ * NOTE: Non-Nx_Ports are not requested.
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_gid_pt(scsi_qla_host_t *ha, sw_info_t *list)
+{
+	int		rval;
+	uint16_t	i;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	struct ct_sns_gid_pt_data *gid_data;
+
+	gid_data = NULL;
+
+	/* Issue GID_PT */
+	/* Prepare common MS IOCB */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, GID_PT_REQ_SIZE, GID_PT_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, GID_PT_CMD,
+	    GID_PT_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- port_type */
+	ct_req->req.gid_pt.port_type = NS_NX_PORT_TYPE;
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): GID_PT issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): GID_PT failed, rejected request, "
+		    "gid_pt_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		/* Set port IDs in switch info list. */
+		for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+			memset(&list[i], 0, sizeof(sw_info_t));
+			gid_data = &ct_rsp->rsp.gid_pt.entries[i];
+			list[i].d_id.b.domain = gid_data->port_id[0];
+			list[i].d_id.b.area = gid_data->port_id[1];
+			list[i].d_id.b.al_pa = gid_data->port_id[2];
+
+			/* Last one exit. */
+			if (gid_data->control_byte & BIT_7) {
+				list[i].d_id.b.rsvd_1 = gid_data->control_byte;
+				break;
+			}
+		}
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_gpn_id() - SNS Get Port Name (GPN_ID) query.
+ * @ha: HA context
+ * @list: switch info entries to populate
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_gpn_id(scsi_qla_host_t *ha, sw_info_t *list)
+{
+	int		rval;
+	uint16_t	i;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+		/* Issue GPN_ID */
+		/* Prepare common MS IOCB */
+		ms_pkt = qla2x00_prep_ms_iocb(ha, GPN_ID_REQ_SIZE,
+		    GPN_ID_RSP_SIZE);
+
+		/* Prepare CT request */
+		ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, GPN_ID_CMD,
+		    GPN_ID_RSP_SIZE);
+		ct_rsp = &ha->ct_sns->p.rsp;
+
+		/* Prepare CT arguments -- port_id */
+		ct_req->req.port_id.port_id[0] = list[i].d_id.b.domain;
+		ct_req->req.port_id.port_id[1] = list[i].d_id.b.area;
+		ct_req->req.port_id.port_id[2] = list[i].d_id.b.al_pa;
+
+		/* Execute MS IOCB */
+		rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+		    sizeof(ms_iocb_entry_t));
+		if (rval != QLA_SUCCESS) {
+			/*EMPTY*/
+			DEBUG2_3(printk("scsi(%ld): GPN_ID issue IOCB failed "
+			    "(%d).\n", ha->host_no, rval));
+		} else if (ct_rsp->header.response !=
+		    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+			DEBUG2_3(printk("scsi(%ld): GPN_ID failed, rejected "
+			    "request, gpn_id_rsp:\n", ha->host_no));
+			DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+			    sizeof(struct ct_rsp_hdr)));
+			rval = QLA_FUNCTION_FAILED;
+		} else {
+			/* Save portname */
+			memcpy(list[i].port_name,
+			    ct_rsp->rsp.gpn_id.port_name, WWN_SIZE);
+		}
+
+		/* Last device exit. */
+		if (list[i].d_id.b.rsvd_1 != 0)
+			break;
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_gnn_id() - SNS Get Node Name (GPN_ID) query.
+ * @ha: HA context
+ * @list: switch info entries to populate
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_gnn_id(scsi_qla_host_t *ha, sw_info_t *list)
+{
+	int		rval;
+	uint16_t	i;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+		/* Issue GNN_ID */
+		/* Prepare common MS IOCB */
+		ms_pkt = qla2x00_prep_ms_iocb(ha, GNN_ID_REQ_SIZE,
+		    GNN_ID_RSP_SIZE);
+
+		/* Prepare CT request */
+		ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, GNN_ID_CMD,
+		    GNN_ID_RSP_SIZE);
+		ct_rsp = &ha->ct_sns->p.rsp;
+
+		/* Prepare CT arguments -- port_id */
+		ct_req->req.port_id.port_id[0] = list[i].d_id.b.domain;
+		ct_req->req.port_id.port_id[1] = list[i].d_id.b.area;
+		ct_req->req.port_id.port_id[2] = list[i].d_id.b.al_pa;
+
+		/* Execute MS IOCB */
+		rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+		    sizeof(ms_iocb_entry_t));
+		if (rval != QLA_SUCCESS) {
+			/*EMPTY*/
+			DEBUG2_3(printk("scsi(%ld): GNN_ID issue IOCB failed "
+			    "(%d).\n", ha->host_no, rval));
+		} else if (ct_rsp->header.response !=
+		    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+			DEBUG2_3(printk("scsi(%ld): GNN_ID failed, rejected "
+			    "request, gnn_id_rsp:\n", ha->host_no));
+			DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+			    sizeof(struct ct_rsp_hdr)));
+			rval = QLA_FUNCTION_FAILED;
+		} else {
+			/* Save nodename */
+			memcpy(list[i].node_name,
+			    ct_rsp->rsp.gnn_id.node_name, WWN_SIZE);
+
+			DEBUG2_3(printk("scsi(%ld): GID_PT entry - "
+			    "nn %02x%02x%02x%02x%02x%02x%02x%02x "
+			    "pn %02x%02x%02x%02x%02x%02x%02x%02x "
+			    "portid=%02x%02x%02x.\n",
+			    ha->host_no,
+			    list[i].node_name[0], list[i].node_name[1],
+			    list[i].node_name[2], list[i].node_name[3],
+			    list[i].node_name[4], list[i].node_name[5],
+			    list[i].node_name[6], list[i].node_name[7],
+			    list[i].port_name[0], list[i].port_name[1],
+			    list[i].port_name[2], list[i].port_name[3],
+			    list[i].port_name[4], list[i].port_name[5],
+			    list[i].port_name[6], list[i].port_name[7],
+			    list[i].d_id.b.domain, list[i].d_id.b.area,
+			    list[i].d_id.b.al_pa));
+		}
+
+		/* Last device exit. */
+		if (list[i].d_id.b.rsvd_1 != 0)
+			break;
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_gft_id() - SNS Get FC-4 TYPEs (GFT_ID) query.
+ * @ha: HA context
+ * @list: switch info entries to populate
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_gft_id(scsi_qla_host_t *ha, sw_info_t *list)
+{
+	int		rval;
+	uint16_t	i;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	for (i = 0; i < MAX_FIBRE_DEVICES; i++) {
+		/* Issue GFT_ID */
+		/* Prepare common MS IOCB */
+		ms_pkt = qla2x00_prep_ms_iocb(ha, GFT_ID_REQ_SIZE,
+		    GFT_ID_RSP_SIZE);
+
+		/* Prepare CT request */
+		ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, GFT_ID_CMD,
+		    GFT_ID_RSP_SIZE);
+		ct_rsp = &ha->ct_sns->p.rsp;
+
+		/* Prepare CT arguments -- port_id */
+		ct_req->req.port_id.port_id[0] = list[i].d_id.b.domain;
+		ct_req->req.port_id.port_id[1] = list[i].d_id.b.area;
+		ct_req->req.port_id.port_id[2] = list[i].d_id.b.al_pa;
+
+		/* Execute MS IOCB */
+		rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+		    sizeof(ms_iocb_entry_t));
+		if (rval != QLA_SUCCESS) {
+			/*EMPTY*/
+			DEBUG2_3(printk("scsi(%ld): GFT_ID issue IOCB failed "
+			    "(%d).\n", ha->host_no, rval));
+		} else if (ct_rsp->header.response !=
+		    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+			DEBUG2_3(printk("scsi(%ld): GFT_ID failed, rejected "
+			    "request, gft_id_rsp:\n", ha->host_no));
+			DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+			    sizeof(struct ct_rsp_hdr)));
+			rval = QLA_FUNCTION_FAILED;
+		} else {
+			/* FCP-3 check necessary?  No, assume FCP-3 */
+			/*if (ct_rsp->rsp.gft_id.fc4_types[2] & 0x01)*/
+			list[i].type = SW_TYPE_SCSI;
+			if (ct_rsp->rsp.gft_id.fc4_types[3] & 0x20)
+				list[i].type |= SW_TYPE_IP;
+		}
+
+		/* Last device exit. */
+		if (list[i].d_id.b.rsvd_1 != 0)
+			break;
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_rft_id() - SNS Register FC-4 TYPEs (RFT_ID) supported by the HBA.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_rft_id(scsi_qla_host_t *ha)
+{
+	int		rval;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	/* Issue RFT_ID */
+	/* Prepare common MS IOCB */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, RFT_ID_REQ_SIZE, RFT_ID_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, RFT_ID_CMD,
+	    RFT_ID_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- port_id, FC-4 types */
+	ct_req->req.rft_id.port_id[0] = ha->d_id.b.domain;
+	ct_req->req.rft_id.port_id[1] = ha->d_id.b.area;
+	ct_req->req.rft_id.port_id[2] = ha->d_id.b.al_pa;
+
+	ct_req->req.rft_id.fc4_types[2] = 0x01;		/* FCP-3 */
+	ha->active_fc4_types = EXT_DEF_FC4_TYPE_SCSI;
+
+#if defined(FC_IP_SUPPORT)
+	if (ha->flags.enable_ip) {
+		ct_req->req.rft_id.fc4_types[3] = 0x20; /* IP over FC */
+		ha->active_fc4_types |= EXT_DEF_FC4_TYPE_IP;
+	}
+#endif
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): RFT_ID issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): RFT_ID failed, rejected "
+		    "request, rft_id_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		DEBUG2(printk("scsi(%ld): RFT_ID exiting normally.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_rff_id() - SNS Register FC-4 Features (RFF_ID) supported by the HBA.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_rff_id(scsi_qla_host_t *ha)
+{
+	int		rval;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	/* Issue RFF_ID */
+	/* Prepare common MS IOCB */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, RFF_ID_REQ_SIZE, RFF_ID_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, RFF_ID_CMD,
+	    RFF_ID_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- port_id, FC-4 feature, FC-4 type */
+	ct_req->req.rff_id.port_id[0] = ha->d_id.b.domain;
+	ct_req->req.rff_id.port_id[1] = ha->d_id.b.area;
+	ct_req->req.rff_id.port_id[2] = ha->d_id.b.al_pa;
+
+	if (!ha->flags.enable_target_mode)
+		ct_req->req.rff_id.fc4_feature = 0x02;	/* SCSI Initiator */
+
+	ct_req->req.rff_id.fc4_type = 0x08;		/* SCSI - FCP */
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): RFF_ID issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): RFF_ID failed, rejected "
+		    "request, rff_id_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		DEBUG2(printk("scsi(%ld): RFF_ID exiting normally.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_rnn_id() - SNS Register Node Name (RNN_ID) of the HBA.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_rnn_id(scsi_qla_host_t *ha)
+{
+	int		rval;
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	/* Issue RNN_ID */
+	/* Prepare common MS IOCB */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, RNN_ID_REQ_SIZE, RNN_ID_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, RNN_ID_CMD,
+	    RNN_ID_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- port_id, node_name */
+	ct_req->req.rnn_id.port_id[0] = ha->d_id.b.domain;
+	ct_req->req.rnn_id.port_id[1] = ha->d_id.b.area;
+	ct_req->req.rnn_id.port_id[2] = ha->d_id.b.al_pa;
+
+	memcpy(ct_req->req.rnn_id.node_name, ha->init_cb->node_name, WWN_SIZE);
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): RNN_ID issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): RNN_ID failed, rejected "
+		    "request, rnn_id_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		DEBUG2(printk("scsi(%ld): RNN_ID exiting normally.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_rsnn_nn() - SNS Register Symbolic Node Name (RSNN_NN) of the HBA.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+int
+qla2x00_rsnn_nn(scsi_qla_host_t *ha)
+{
+	int		rval;
+	uint8_t		*snn;
+	uint8_t		version[20];
+
+	ms_iocb_entry_t	*ms_pkt;
+	struct ct_sns_req	*ct_req;
+	struct ct_sns_rsp	*ct_rsp;
+
+	/* Issue RSNN_NN */
+	/* Prepare common MS IOCB */
+	/*   Request size adjusted after CT preparation */
+	ms_pkt = qla2x00_prep_ms_iocb(ha, 0, RSNN_NN_RSP_SIZE);
+
+	/* Prepare CT request */
+	ct_req = qla2x00_prep_ct_req(&ha->ct_sns->p.req, RSNN_NN_CMD,
+	    RSNN_NN_RSP_SIZE);
+	ct_rsp = &ha->ct_sns->p.rsp;
+
+	/* Prepare CT arguments -- node_name, symbolic node_name, size */
+	memcpy(ct_req->req.rsnn_nn.node_name, ha->init_cb->node_name, WWN_SIZE);
+	
+	/* Prepare the Symbolic Node Name */
+	/* Board type */
+	snn = ct_req->req.rsnn_nn.sym_node_name;
+	strcpy(snn, ha->model_number);
+	/* Firmware version */
+	strcat(snn, " FW:v");
+	sprintf(version, "%d.%02d.%02d", ha->fw_major_version,
+	    ha->fw_minor_version, ha->fw_subminor_version);
+	strcat(snn, version);
+	/* Driver version */
+	strcat(snn, " DVR:v");
+	strcat(snn, qla2x00_version_str);
+
+	/* Calculate SNN length */
+	ct_req->req.rsnn_nn.name_len = (uint8_t)strlen(snn);
+
+	/* Update MS IOCB request */
+	ms_pkt->req_bytecount =
+	    cpu_to_le32(24 + 1 + ct_req->req.rsnn_nn.name_len);
+	ms_pkt->dseg_req_length = ms_pkt->req_bytecount;
+
+	/* Execute MS IOCB */
+	rval = qla2x00_issue_iocb(ha, ha->ms_iocb, ha->ms_iocb_dma,
+	    sizeof(ms_iocb_entry_t));
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3(printk("scsi(%ld): RSNN_NN issue IOCB failed (%d).\n",
+		    ha->host_no, rval));
+	} else if (ct_rsp->header.response !=
+	    __constant_cpu_to_be16(CT_ACCEPT_RESPONSE)) {
+		DEBUG2_3(printk("scsi(%ld): RSNN_NN failed, rejected "
+		    "request, rsnn_id_rsp:\n", ha->host_no));
+		DEBUG2_3(qla2x00_dump_buffer((uint8_t *)&ct_rsp->header,
+		    sizeof(struct ct_rsp_hdr)));
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		DEBUG2(printk("scsi(%ld): RSNN_NN exiting normally.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_inioct.c 350-qlogic/drivers/scsi/qla2xxx/qla_inioct.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_inioct.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_inioct.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,602 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+#include "inioct.h"
+
+extern int qla2x00_loopback_test(scsi_qla_host_t *ha, INT_LOOPBACK_REQ *req,
+    uint16_t *ret_mb);
+
+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);
+
+int
+qla2x00_read_nvram(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int	ret = 0;
+	char	*ptmp_buf;
+#if defined(ISP2300)
+	device_reg_t	*reg = ha->iobase;
+	uint16_t data;
+#endif
+	uint16_t cnt;
+ 	uint16_t *wptr;
+	uint32_t transfer_size;
+
+	DEBUG9(printk("qla2x00_read_nvram: entered.\n");)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_buf,
+	    sizeof(nvram_t))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%d.\n",
+		    __func__, ha->host_no, ha->instance,
+		    sizeof(nvram_t));)
+		return (ret);
+	}
+
+	if (pext->ResponseLen < sizeof(nvram_t))
+		transfer_size = pext->ResponseLen / 2;
+	else
+		transfer_size = sizeof(nvram_t) / 2;
+
+	/* Dump NVRAM. */
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		data = RD_REG_WORD(&reg->nvram);
+		while (data & NVR_BUSY) {
+			udelay(100);
+			data = RD_REG_WORD(&reg->nvram);
+		}
+
+		/* Lock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0x1);
+		udelay(5);
+		data = RD_REG_WORD(&reg->host_semaphore);
+		while ((data & BIT_0) == 0) {
+			/* Lock failed */
+			udelay(100);
+			WRT_REG_WORD(&reg->host_semaphore, 0x1);
+			udelay(5);
+			data = RD_REG_WORD(&reg->host_semaphore);
+		}
+	}
+#endif
+
+ 	wptr = (uint16_t *)ptmp_buf;
+ 	for (cnt = 0; cnt < transfer_size; cnt++) {
+		*wptr = cpu_to_le16(qla2x00_get_nvram_word(ha,
+		    cnt+ha->nvram_base));
+		wptr++;
+ 	}
+
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		/* Unlock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0);
+	}
+#endif
+
+	ret = copy_to_user((uint8_t *)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",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("qla2x00_read_nvram: exiting.\n");)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_update_nvram
+ *	Write data to NVRAM.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	pext = pointer to driver internal IOCTL structure.
+ *
+ * Returns:
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_update_nvram(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+#if defined(ISP2300)
+	device_reg_t	*reg = ha->iobase;
+#endif
+	uint8_t i, cnt;
+	uint8_t *usr_tmp, *kernel_tmp;
+	nvram_t *pnew_nv;
+	uint16_t *wptr;
+	uint16_t data;
+	uint32_t transfer_size;
+	uint8_t chksum = 0;
+	int ret = 0;
+
+	DEBUG9(printk("qla2x00_update_nvram: entered.\n");)
+
+	if (pext->RequestLen < sizeof(nvram_t))
+		transfer_size = pext->RequestLen;
+	else
+		transfer_size = sizeof(nvram_t);
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pnew_nv,
+	    sizeof(nvram_t))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(nvram_t));)
+		return (ret);
+	}
+
+	/* Read from user buffer */
+	kernel_tmp = (uint8_t *)pnew_nv;
+	usr_tmp = (uint8_t *)pext->RequestAdr;
+
+	ret = verify_area(VERIFY_READ, (void *)usr_tmp, transfer_size);
+	if (ret) {
+		DEBUG9_10(printk(
+		    "qla2x00_update_nvram: ERROR in buffer verify 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 */
+	for (i = 0; i < sizeof(nvram_t) - 1; i++) {
+		chksum += *kernel_tmp;
+		kernel_tmp++;
+	}
+
+	chksum = ~chksum + 1;
+
+	*kernel_tmp = chksum;
+
+	/* Write to NVRAM */
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		data = RD_REG_WORD(&reg->nvram);
+		while (data & NVR_BUSY) {
+			udelay(100);
+			data = RD_REG_WORD(&reg->nvram);
+		}
+
+		/* Lock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0x1);
+		udelay(5);
+		data = RD_REG_WORD(&reg->host_semaphore);
+		while ((data & BIT_0) == 0) {
+			/* Lock failed */
+			udelay(100);
+			WRT_REG_WORD(&reg->host_semaphore, 0x1);
+			udelay(5);
+			data = RD_REG_WORD(&reg->host_semaphore);
+		}
+	}
+#endif
+
+	wptr = (uint16_t *)pnew_nv;
+	for (cnt = 0; cnt < transfer_size / 2; cnt++) {
+		data = cpu_to_le16(*wptr++);
+		qla2x00_write_nvram_word(ha, cnt+ha->nvram_base, data);
+	}
+
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		/* Unlock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0);
+	}
+#endif
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("qla2x00_update_nvram: exiting.\n");)
+
+	return 0;
+}
+
+int
+qla2x00_write_nvram_word(scsi_qla_host_t *ha, uint8_t addr, uint16_t data)
+{
+	int count;
+	uint16_t word;
+	uint32_t nv_cmd;
+	device_reg_t *reg = ha->iobase;
+
+	qla2x00_nv_write(ha, NVR_DATA_OUT);
+	qla2x00_nv_write(ha, 0);
+	qla2x00_nv_write(ha, 0);
+
+	for (word = 0; word < 8; word++)
+		qla2x00_nv_write(ha, NVR_DATA_OUT);
+
+	qla2x00_nv_deselect(ha);
+
+	/* Erase Location */
+	nv_cmd = (addr << 16) | NV_ERASE_OP;
+	nv_cmd <<= 5;
+	for (count = 0; count < 11; count++) {
+		if (nv_cmd & BIT_31)
+			qla2x00_nv_write(ha, NVR_DATA_OUT);
+		else
+			qla2x00_nv_write(ha, 0);
+
+		nv_cmd <<= 1;
+	}
+
+	qla2x00_nv_deselect(ha);
+
+	/* Wait for Erase to Finish */
+	WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+	do {
+		NVRAM_DELAY();
+		word = RD_REG_WORD(&reg->nvram);
+	} while ((word & NVR_DATA_IN) == 0);
+
+	qla2x00_nv_deselect(ha);
+
+	/* Write data */
+	nv_cmd = (addr << 16) | NV_WRITE_OP;
+	nv_cmd |= data;
+	nv_cmd <<= 5;
+	for (count = 0; count < 27; count++) {
+		if (nv_cmd & BIT_31)
+			qla2x00_nv_write(ha, NVR_DATA_OUT);
+		else
+			qla2x00_nv_write(ha, 0);
+
+		nv_cmd <<= 1;
+	}
+
+	qla2x00_nv_deselect(ha);
+
+	/* Wait for NVRAM to become ready */
+	WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+	do {
+		NVRAM_DELAY();
+		word = RD_REG_WORD(&reg->nvram);
+	} while ((word & NVR_DATA_IN) == 0);
+
+	qla2x00_nv_deselect(ha);
+
+	/* Disable writes */
+	qla2x00_nv_write(ha, NVR_DATA_OUT);
+	for (count = 0; count < 10; count++)
+		qla2x00_nv_write(ha, 0);
+
+	qla2x00_nv_deselect(ha);
+
+	DEBUG9(printk("qla2x00_write_nvram_word: exiting.\n");)
+
+	return 0;
+}
+
+int
+qla2x00_send_loopback(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		status;
+	uint16_t	ret_mb[MAILBOX_REGISTER_COUNT];
+	INT_LOOPBACK_REQ req;
+	INT_LOOPBACK_RSP rsp;
+
+	DEBUG9(printk("qla2x00_send_loopback: entered.\n");)
+
+
+	if (pext->RequestLen != sizeof(INT_LOOPBACK_REQ)) {
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk(
+		    "qla2x00_send_loopback: invalid RequestLen =%d.\n",
+		    pext->RequestLen);)
+		return pext->Status;
+	}
+
+	if (pext->ResponseLen != sizeof(INT_LOOPBACK_RSP)) {
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk(
+		    "qla2x00_send_loopback: invalid ResponseLen =%d.\n",
+		    pext->ResponseLen);)
+		return pext->Status;
+	}
+
+	status = verify_area(VERIFY_READ, (void *)pext->RequestAdr,
+	    pext->RequestLen);
+	if (status) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify 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);
+	if (status) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify read of "
+		    "response buffer.\n");)
+		return pext->Status;
+	}
+
+	copy_from_user((uint8_t *)&rsp, (uint8_t *)pext->ResponseAdr,
+	    pext->ResponseLen);
+
+	if (req.TransferCount > req.BufferLength ||
+	    req.TransferCount > rsp.BufferLength) {
+
+		/* Buffer lengths not large enough. */
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		DEBUG9_10(printk(
+		    "qla2x00_send_loopback: invalid TransferCount =%d. "
+		    "req BufferLength =%d rspBufferLength =%d.\n",
+		    req.TransferCount, req.BufferLength, rsp.BufferLength);)
+
+		return pext->Status;
+	}
+
+	status = verify_area(VERIFY_READ, (void *)req.BufferAddress,
+	    req.TransferCount);
+	if (status) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify 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,
+	    rsp.BufferAddress, rsp.BufferLength);)
+
+	/*
+	 * AV - the caller of this IOCTL expects the FW to handle
+	 * a loopdown situation and return a good status for the
+	 * call function and a LOOPDOWN status for the test operations
+	 */
+	/*if (ha->loop_state != LOOP_READY || */
+	if (test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("qla2x00_send_loopback(%ld): "
+		    "loop not ready.\n", ha->host_no);)
+		return pext->Status;
+	}
+
+	if (ha->current_topology == ISP_CFG_F) {
+#if defined(ISP2300)
+		status = qla2x00_echo_test(ha, &req, ret_mb);
+#else
+		pext->Status = EXT_STATUS_INVALID_REQUEST ;
+		DEBUG9_10(printk("qla2x00_send_loopback: ERROR "
+		    "command only supported for QLA23xx.\n");)
+		return 0;
+#endif
+	} else {
+		status = qla2x00_loopback_test(ha, &req, ret_mb);
+	}
+
+	if (status) {
+		if (status == QLA_FUNCTION_TIMEOUT ) {
+			pext->Status = EXT_STATUS_BUSY;
+			DEBUG9_10(printk("qla2x00_send_loopback: ERROR "
+			    "command timed out.\n");)
+			return 0;
+		} else {
+			/* EMPTY. Just proceed to copy back mailbox reg
+			 * values for users to interpret.
+			 */
+			DEBUG10(printk("qla2x00_send_loopback: ERROR "
+			    "loopback command failed 0x%x.\n", ret_mb[0]);)
+		}
+	}
+
+	status = verify_area(VERIFY_WRITE, (void *)rsp.BufferAddress,
+	    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;
+	}
+
+	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) {
+		rsp.CommandSent = INT_DEF_LB_ECHO_CMD;
+	} else {
+		if (rsp.CompletionStatus == INT_DEF_LB_COMPLETE ||
+		    rsp.CompletionStatus == INT_DEF_LB_CMD_ERROR) {
+			rsp.CrcErrorCount = ret_mb[1];
+			rsp.DisparityErrorCount = ret_mb[2];
+			rsp.FrameLengthErrorCount = ret_mb[3];
+			rsp.IterationCountLastError =
+			    (ret_mb[19] << 16) | ret_mb[18];
+		}
+	}
+
+	status = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+	    pext->ResponseLen);
+	if (status) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("qla2x00_send_loopback: ERROR verify "
+		    "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;
+
+	DEBUG9(printk("qla2x00_send_loopback: exiting.\n");)
+
+	return pext->Status;
+}
+
+int qla2x00_read_option_rom(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	uint8_t		*usr_tmp;
+	uint32_t	addr;
+	uint32_t	midpoint;
+	uint32_t	transfer_size;
+	uint8_t		data;
+	device_reg_t	*reg = ha->iobase;
+	unsigned long	cpu_flags;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	if (pext->ResponseLen != FLASH_IMAGE_SIZE) {
+		pext->Status = EXT_STATUS_BUFFER_TOO_SMALL;
+		return (1);
+	}
+
+	transfer_size = FLASH_IMAGE_SIZE;
+
+	midpoint = FLASH_IMAGE_SIZE / 2;
+	usr_tmp = (uint8_t *)pext->ResponseAdr;
+
+	/* Dump FLASH. */
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	qla2x00_flash_enable(ha);
+	WRT_REG_WORD(&reg->nvram, 0);
+	for (addr = 0; addr < transfer_size; addr++, usr_tmp++) {
+		if (addr == midpoint)
+			WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+
+		data = qla2x00_read_flash_byte(ha, addr);
+		if (addr % 100)
+			udelay(10);
+		__put_user(data, usr_tmp);
+	}
+	qla2x00_flash_disable(ha);
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	pext->Status = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+	return (0);
+}
+
+int qla2x00_update_option_rom(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret;
+	uint8_t		*usr_tmp;
+	uint8_t		*kern_tmp;
+	uint16_t	status;
+	unsigned long	cpu_flags;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	if (pext->RequestLen != FLASH_IMAGE_SIZE) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		return (1);
+	}
+
+	pext->Status = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	/* 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) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		printk(KERN_WARNING
+			"%s: ERROR in flash allocation.\n", __func__);
+		return (1);
+	}
+	copy_from_user(kern_tmp, usr_tmp, FLASH_IMAGE_SIZE);
+
+	/* Go with update */
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	status = qla2x00_set_flash_image(ha, kern_tmp);
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	/* Schedule DPC to restart the RISC */
+	set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+	up(ha->dpc_wait);
+
+	KMEM_FREE(kern_tmp, FLASH_IMAGE_SIZE);
+
+	if (status) {
+		ret = 1;
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s: ERROR updating flash.\n", __func__);)
+	}
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+	return (ret);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_init.c 350-qlogic/drivers/scsi/qla2xxx/qla_init.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_init.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_init.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,4306 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+#if defined(ISP2300)
+#include "qla_devtbl.h"
+#endif
+
+/*
+*  QLogic ISP2x00 Hardware Support Function Prototypes.
+*/
+int qla2x00_initialize_adapter(scsi_qla_host_t *);
+static int qla2x00_pci_config(scsi_qla_host_t *);
+static int qla2x00_isp_firmware(scsi_qla_host_t *);
+static void qla2x00_reset_chip(scsi_qla_host_t *);
+static int qla2x00_chip_diag(scsi_qla_host_t *);
+static int qla2x00_setup_chip(scsi_qla_host_t *);
+static void qla2x00_init_response_q_entries(scsi_qla_host_t *);
+static int qla2x00_init_rings(scsi_qla_host_t *);
+static int qla2x00_fw_ready(scsi_qla_host_t *);
+static int qla2x00_configure_hba(scsi_qla_host_t *);
+static int qla2x00_nvram_config(scsi_qla_host_t *);
+static void qla2x00_init_tgt_map(scsi_qla_host_t *);
+static int qla2x00_configure_loop(scsi_qla_host_t *);
+static int qla2x00_configure_local_loop(scsi_qla_host_t *);
+static void qla2x00_update_fcport(scsi_qla_host_t *, fc_port_t *);
+static void qla2x00_lun_discovery(scsi_qla_host_t *, fc_port_t *);
+static int qla2x00_rpt_lun_discovery(scsi_qla_host_t *, fc_port_t *,
+    inq_cmd_rsp_t *, dma_addr_t);
+static int qla2x00_report_lun(scsi_qla_host_t *, fc_port_t *,
+    rpt_lun_cmd_rsp_t *, dma_addr_t);
+static fc_lun_t *qla2x00_cfg_lun(scsi_qla_host_t *, fc_port_t *, uint16_t,
+    inq_cmd_rsp_t *, dma_addr_t);
+static fc_lun_t * qla2x00_add_lun(fc_port_t *, uint16_t);
+static int qla2x00_inquiry(scsi_qla_host_t *, fc_port_t *, uint16_t,
+    inq_cmd_rsp_t *, dma_addr_t);
+static int qla2x00_configure_fabric(scsi_qla_host_t *);
+static int qla2x00_find_all_fabric_devs(scsi_qla_host_t *, struct list_head *);
+static int qla2x00_find_new_loop_id(scsi_qla_host_t *, fc_port_t *);
+static void qla2x00_device_resync(scsi_qla_host_t *);
+static int qla2x00_fabric_dev_login(scsi_qla_host_t *, fc_port_t *,
+    uint16_t *);
+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 os_lun_t * qla2x00_fclun_bind(scsi_qla_host_t *, fc_port_t *,
+    fc_lun_t *);
+static void qla2x00_lun_free(scsi_qla_host_t *, uint16_t, uint16_t);
+static void qla2x00_get_lun_mask_from_config(scsi_qla_host_t *, fc_port_t *,
+    uint16_t, uint16_t);
+
+static int qla2x00_bstr_to_hex(char *, uint8_t *, int);
+static int qla2x00_find_propname(scsi_qla_host_t *,
+    char *, char *, char *, int);
+static int qla2x00_get_prop_16chars(scsi_qla_host_t *,
+    char *, char *, char *);
+static void qla2x00_get_properties(scsi_qla_host_t *, char *);
+
+static void qla2x00_cfg_persistent_binding(scsi_qla_host_t *);
+static os_tgt_t *qla2x00_persistent_bind(scsi_qla_host_t *, uint8_t *,
+    uint8_t *, port_id_t *, uint16_t);
+
+static int qla2x00_restart_isp(scsi_qla_host_t *);
+static void qla2x00_reset_adapter(scsi_qla_host_t *);
+
+/****************************************************************************/
+/*                QLogic ISP2x00 Hardware Support Functions.                */
+/****************************************************************************/
+
+/*
+* qla2x00_initialize_adapter
+*      Initialize board.
+*
+* Input:
+*      ha = adapter block pointer.
+*
+* Returns:
+*      0 = success
+*/
+int
+qla2x00_initialize_adapter(scsi_qla_host_t *ha)
+{
+	int	rval;
+	uint8_t	isp_init = 0;
+	uint8_t	restart_risc = 0;
+	uint8_t	retry;
+
+	/* Clear adapter flags. */
+	ha->forceLip = 0;
+	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;
+	ha->device_flags = 0;
+	ha->sns_retry_cnt = 0;
+	ha->device_flags = 0;
+	ha->dpc_flags = 0;
+	ha->sns_retry_cnt = 0;
+	ha->failback_delay = 0;
+	ha->flags.management_server_logged_in = 0;
+	ha->marker_needed = 0;
+	ha->mbx_flags = 0;
+	ha->isp_abort_cnt = 0;
+#if defined(ISP2300)
+	ha->beacon_blink_led = 0;
+#endif
+
+	rval = qla2x00_pci_config(ha);
+	if (rval) {
+		DEBUG2(printk("scsi(%ld): Unable to configure PCI space=n",
+		    ha->host_no));
+		return (rval);
+	}
+
+	qla2x00_reset_chip(ha);
+
+	/* Initialize target map database. */
+	qla2x00_init_tgt_map(ha);
+
+	/* Get Flash Version */
+	qla2x00_get_flash_version(ha);
+
+	if (qla2x00_verbose)
+		printk("scsi(%ld): Configure NVRAM parameters...\n",
+		    ha->host_no);
+
+	qla2x00_nvram_config(ha);
+
+	ha->retry_count = ql2xretrycount;
+
+	if (qla2x00_verbose)
+		printk("scsi(%ld): Verifying loaded RISC code...\n",
+		    ha->host_no);
+
+	/*
+	 * If the user specified a device configuration on the command line
+	 * then use it as the configuration.  Otherwise, we scan for all
+	 * devices.
+	 */
+
+	if (ql2xdevconf) {
+		ha->cmdline = ql2xdevconf;
+		if (!ha->flags.failover_enabled)
+			qla2x00_get_properties(ha, ql2xdevconf);
+	}
+
+	retry = 10;
+	/*
+	 * Try to configure the loop.
+	 */
+	do {
+		restart_risc = 0;
+		isp_init = 0;
+
+		/* If firmware needs to be loaded */
+		if (qla2x00_isp_firmware(ha) != QLA_SUCCESS) {
+			if ((rval = qla2x00_chip_diag(ha)) == QLA_SUCCESS) {
+				rval = qla2x00_setup_chip(ha);
+			}
+		}
+
+		/* Retrieve firmware information */
+		qla2x00_get_fw_version(ha, &ha->fw_major_version,
+		    &ha->fw_minor_version, &ha->fw_subminor_version,
+		    &ha->fw_attributes);
+
+		if (rval == QLA_SUCCESS &&
+		    (rval = qla2x00_init_rings(ha)) == QLA_SUCCESS) {
+check_fw_ready_again:
+			/*
+			 * Wait for a successful LIP up to a maximum 
+			 * of (in seconds): RISC login timeout value,
+			 * RISC retry count value, and port down retry
+			 * value OR a minimum of 4 seconds OR If no 
+			 * cable, only 5 seconds.
+			 */
+			if (!qla2x00_fw_ready(ha)) {
+				clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+				clear_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+
+				/*
+				 * Go setup flash database devices with proper
+				 * Loop ID's.
+				 */
+				do {
+					clear_bit(LOOP_RESYNC_NEEDED,
+							&ha->dpc_flags);
+					rval = qla2x00_configure_loop(ha);
+
+					if (test_bit(ISP_ABORT_NEEDED,
+					    &ha->dpc_flags)) {
+
+						restart_risc = 1;
+						break;
+					}
+
+					/*
+					 * If loop state change while we were
+					 * discoverying devices then wait for
+					 * LIP to complete
+					 */
+
+					if (ha->loop_state == LOOP_DOWN && retry--) {
+						goto check_fw_ready_again;
+					}
+				} while (!atomic_read(&ha->loop_down_timer) &&
+				    retry &&
+				    (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)));
+			}
+
+			if (ha->mem_err) {
+				restart_risc = 1;
+			}
+			isp_init = 1;
+
+		}
+	} while (restart_risc && retry--);
+
+	if (isp_init) {
+		clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+		ha->marker_needed = 1;
+		qla2x00_marker(ha, 0, 0, MK_SYNC_ALL);
+		ha->marker_needed = 0;
+
+		ha->flags.online = TRUE;
+	}
+
+	if (rval) {
+		DEBUG2_3(printk("%s(): **** FAILED ****\n", __func__));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_pci_config() - Setup device PCI configuration registers.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_pci_config(scsi_qla_host_t *ha)
+{
+	uint16_t	w, mwi;
+#if defined(ISP2300)
+	uint32_t	cnt;
+	unsigned long   flags = 0;
+#endif
+
+	if (qla2x00_verbose)
+		printk("scsi(%ld): Configuring PCI space...\n", ha->host_no);
+
+	/* 
+	 * Turn on PCI master; for system BIOSes that don't turn it on by
+	 * default.
+	 */
+	pci_set_master(ha->pdev);
+	mwi = 0;
+	if (pci_set_mwi(ha->pdev))
+		mwi = PCI_COMMAND_INVALIDATE;
+	pci_read_config_word(ha->pdev, PCI_REVISION_ID, &ha->revision);
+
+	if (!ha->iobase)
+		return (QLA_FUNCTION_FAILED);
+
+	/*
+	 * We want to respect framework's setting of PCI configuration space
+	 * command register and also want to make sure that all bits of
+	 * interest to us are properly set in command register.
+	 */
+	pci_read_config_word(ha->pdev, PCI_COMMAND, &w);
+	w |= mwi | (PCI_COMMAND_PARITY | PCI_COMMAND_SERR);
+
+#if defined(ISP2300)
+	pci_write_config_byte(ha->pdev, PCI_LATENCY_TIMER, 0x80);
+
+	/* PCI Specification Revision 2.3 changes */
+	if (ha->pdev->device == QLA2322_DEVICE_ID) {
+		/* Command Register -- Reset Interrupt Disable -- BIT_10 */
+		w &= ~BIT_10;
+	}
+
+	/*
+	 * If this is a 2300 card and not 2312, reset the COMMAND_INVALIDATE
+	 * due to a bug in the 2300. Unfortunately, the 2310 also reports
+	 * itself as a 2300 so we need to get the fb revision level -- a 6
+	 * indicates it really is a 2300 and not a 2310.
+	 */
+	if (ha->pdev->device == QLA2300_DEVICE_ID) {
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+		/* Pause RISC. */
+		WRT_REG_WORD(&ha->iobase->hccr, HCCR_PAUSE_RISC);
+		for (cnt = 0; cnt < 30000; cnt++) {
+			if ((RD_REG_WORD(&ha->iobase->hccr) &
+			    HCCR_RISC_PAUSE) != 0)
+				break;
+
+			udelay(10);
+		}
+
+		/* Select FPM registers. */
+		WRT_REG_WORD(&ha->iobase->ctrl_status, 0x20);
+
+		/* Get the fb rev level */
+		ha->fb_rev = RD_REG_WORD(&ha->iobase->fb_cmd);
+
+		if (ha->fb_rev == FPM_2300)
+			w &= ~PCI_COMMAND_INVALIDATE;
+
+		/* Deselect FPM registers. */
+		WRT_REG_WORD(&ha->iobase->ctrl_status, 0x0);
+
+		/* Release RISC module. */
+		WRT_REG_WORD(&ha->iobase->hccr, HCCR_RELEASE_RISC);
+		for (cnt = 0; cnt < 30000; cnt++) {
+			if ((RD_REG_WORD(&ha->iobase->hccr) &
+			    HCCR_RISC_PAUSE) == 0)
+				break;
+
+			udelay(10);
+		}
+
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+	}
+#endif
+
+	pci_write_config_word(ha->pdev, PCI_COMMAND, w);
+
+	/* Reset expansion ROM address decode enable */
+	pci_read_config_word(ha->pdev, PCI_ROM_ADDRESS, &w);
+	w &= ~PCI_ROM_ADDRESS_ENABLE;
+	pci_write_config_word(ha->pdev, PCI_ROM_ADDRESS, w);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_isp_firmware() - Choose firmware image.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_isp_firmware(scsi_qla_host_t *ha)
+{
+	int  rval;
+
+	/* Assume loading risc code */
+	rval = QLA_FUNCTION_FAILED; 
+
+	if (ha->flags.disable_risc_code_load) {
+		DEBUG2(printk("scsi(%ld): RISC CODE NOT loaded\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): RISC CODE NOT loaded\n", ha->host_no);
+
+		/* Verify checksum of loaded RISC code. */
+		rval = qla2x00_verify_checksum(ha);
+	}
+
+	if (rval) {
+		DEBUG2_3(printk("scsi(%ld): **** Load RISC code ****\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_reset_chip() - Reset ISP chip.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static void
+qla2x00_reset_chip(scsi_qla_host_t *ha) 
+{
+	unsigned long   flags = 0;
+	device_reg_t	*reg = ha->iobase;
+	uint32_t	cnt;
+	unsigned long	mbx_flags = 0;
+	uint16_t	cmd;
+
+	/* Disable ISP interrupts. */
+	qla2x00_disable_intrs(ha);
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	/* Turn off master enable */
+	cmd = 0;
+	pci_read_config_word(ha->pdev, PCI_COMMAND, &cmd);
+	cmd &= ~PCI_COMMAND_MASTER;
+	pci_write_config_word(ha->pdev, PCI_COMMAND, cmd);
+
+#if defined(ISP2200) || defined(ISP2300)
+	/* Pause RISC. */
+	WRT_REG_WORD(&reg->hccr, HCCR_PAUSE_RISC);
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		for (cnt = 0; cnt < 30000; cnt++) {
+			if ((RD_REG_WORD(&reg->hccr) & HCCR_RISC_PAUSE) != 0)
+				break;
+			udelay(100);
+		}
+	} else {
+		udelay(10);
+	}
+
+	/* Select FPM registers. */
+	WRT_REG_WORD(&reg->ctrl_status, 0x20);
+
+	/* FPM Soft Reset. */
+	WRT_REG_WORD(&reg->fpm_diag_config, 0x100);
+
+#if defined(ISP2300)
+	/* Toggle Fpm Reset. */
+	WRT_REG_WORD(&reg->fpm_diag_config, 0x0);
+#endif
+
+	/* Select frame buffer registers. */
+	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 /* defined(ISP2200) */
+
+	/* Select RISC module registers. */
+	WRT_REG_WORD(&reg->ctrl_status, 0);
+
+	/* Reset RISC processor. */
+	WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
+
+	/* Release RISC processor. */
+	WRT_REG_WORD(&reg->hccr, HCCR_RELEASE_RISC);
+
+#endif /* defined(ISP2200) || defined(ISP2300) */
+
+	WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+	WRT_REG_WORD(&reg->hccr, HCCR_CLR_HOST_INT);
+
+	/* Reset ISP chip. */
+	WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+
+	/* Wait for RISC to recover from reset. */
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		udelay(10);
+	} else {
+		for (cnt = 30000; cnt; cnt--) {
+			if ((RD_REG_WORD(&reg->ctrl_status) &
+			    CSR_ISP_SOFT_RESET) == 0)
+				break;
+			udelay(100);
+		}
+	}
+
+	/* Reset RISC processor. */
+	WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
+
+	WRT_REG_WORD(&reg->semaphore, 0);
+
+	/* Release RISC processor. */
+	WRT_REG_WORD(&reg->hccr, HCCR_RELEASE_RISC);
+
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		udelay(100);
+	} else {
+		for (cnt = 0; cnt < 30000; cnt++) {
+			if (!(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)))
+				QLA_MBX_REG_LOCK(ha);
+
+			if (RD_REG_WORD(&reg->mailbox0) != MBS_BUSY) {
+				if (!(test_bit(ABORT_ISP_ACTIVE,
+				    &ha->dpc_flags)))
+					QLA_MBX_REG_UNLOCK(ha);
+				break;
+			}
+
+			if (!(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)))
+				QLA_MBX_REG_UNLOCK(ha);
+
+			udelay(100);
+		}
+	}
+
+	/* Turn on master enable */
+	cmd |= PCI_COMMAND_MASTER;
+	pci_write_config_word(ha->pdev, PCI_COMMAND, cmd);
+
+#if defined(ISP2200) || defined(ISP2300)
+	/* Disable RISC pause on FPM parity error. */
+	WRT_REG_WORD(&reg->hccr, HCCR_DISABLE_PARITY_PAUSE);
+#endif
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+}
+
+/**
+ * qla2x00_chip_diag() - Test chip for proper operation.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_chip_diag(scsi_qla_host_t *ha)
+{
+	int		rval;
+	device_reg_t	*reg = ha->iobase;
+	unsigned long	flags = 0;
+	uint16_t	data;
+	uint32_t	cnt;
+	uint16_t	mb[5];
+
+	/* Assume a failed state */
+	rval = QLA_FUNCTION_FAILED;
+
+	DEBUG3(printk("scsi(%ld): Testing device at %lx.\n",
+	    ha->host_no, (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);
+	data = qla2x00_debounce_register(&reg->ctrl_status);
+	for (cnt = 6000000 ; cnt && (data & CSR_ISP_SOFT_RESET); cnt--) {
+		udelay(5);
+		data = RD_REG_WORD(&reg->ctrl_status);
+		barrier();
+	}
+
+	if (!cnt)
+		goto chip_diag_failed;
+
+	DEBUG3(printk("scsi(%ld): Reset register cleared by chip reset\n",
+	    ha->host_no));
+
+	/* Reset RISC processor. */
+	WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
+	WRT_REG_WORD(&reg->hccr, HCCR_RELEASE_RISC);
+
+#if defined(ISP2300)
+	/* Workaround for QLA2312 PCI parity error */
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		udelay(10);
+	} else {
+		data = qla2x00_debounce_register(&reg->mailbox0);
+		for (cnt = 6000000; cnt && (data == MBS_BUSY); cnt--) {
+			udelay(5);
+			data = RD_REG_WORD(&reg->mailbox0);
+			barrier(); 
+		}
+	}
+#else
+	data = qla2x00_debounce_register(&reg->mailbox0);
+	for (cnt = 6000000; cnt && (data == MBS_BUSY); cnt--) {
+		udelay(5);
+		data = RD_REG_WORD(&reg->mailbox0);
+		barrier(); 
+	}
+#endif
+	if (!cnt)
+		goto chip_diag_failed;
+
+	/* Check product ID of chip */
+	DEBUG3(printk("scsi(%ld): Checking product ID of chip\n", ha->host_no));
+
+	mb[1] = RD_REG_WORD(&reg->mailbox1);
+	mb[2] = RD_REG_WORD(&reg->mailbox2);
+	mb[3] = RD_REG_WORD(&reg->mailbox3);
+
+	if (mb[1] != PROD_ID_1 || (mb[2] != PROD_ID_2 && mb[2] != PROD_ID_2a) ||
+	    mb[3] != PROD_ID_3) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Wrong product ID = 0x%x,0x%x,0x%x\n",
+		    ha->host_no, mb[1], mb[2], mb[3]);
+
+		goto chip_diag_failed;
+	}
+
+	/* Adjust fw RISC transfer size */
+	ha->fw_transfer_size = REQUEST_ENTRY_SIZE * REQUEST_ENTRY_CNT;
+#if defined(ISP2200)
+	if (ha->pdev->device == QLA2200_DEVICE_ID &&
+	    RD_REG_WORD(&reg->mailbox7) == QLA2200A_RISC_ROM_VER) {
+
+		/* Limit firmware transfer size with a 2200A */
+		DEBUG3(printk("scsi(%ld): Found QLA2200A chip.\n",
+		    ha->host_no));
+
+		ha->fw_transfer_size = 128;
+	}
+#endif
+
+	/* Wrap Incoming Mailboxes Test. */
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	DEBUG3(printk("scsi(%ld): Checking mailboxes.\n", ha->host_no));
+	rval = qla2x00_mbx_reg_test(ha);
+	if (rval) {
+		DEBUG(printk("scsi(%ld): Failed mailbox send register test\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): Failed mailbox send register test\n",
+		    ha->host_no);
+	}
+	else {
+		/* Flag a successful rval */
+		rval = QLA_SUCCESS;
+	}
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+chip_diag_failed:
+	if (rval)
+		DEBUG2_3(printk("scsi(%ld): Chip diagnostics **** FAILED "
+		    "****\n", ha->host_no));
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (rval);
+}
+
+/**
+ * qla2x00_setup_chip() - Load and start RISC firmware.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_setup_chip(scsi_qla_host_t *ha)
+{
+	int		rval;
+	uint16_t	cnt;
+	uint16_t	*risc_code;
+	unsigned long	risc_address;
+	unsigned long	risc_code_size;
+	int		num;
+	int		i;
+	uint16_t	*req_ring;
+	struct qla_fw_info	*fw_iter;
+
+	rval = QLA_SUCCESS;
+
+	/* Load firmware sequences */
+	fw_iter = ha->brd_info->fwinfo;
+	while (fw_iter->addressing != FW_INFO_ADDR_NOMORE) {
+		risc_code = fw_iter->fwcode;
+		risc_code_size = *fw_iter->fwlen;
+
+		if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) {
+			risc_address = *fw_iter->fwstart;
+		} else {
+			/* Extended address */
+			risc_address = *fw_iter->lfwstart;
+		}
+
+		num = 0;
+		rval = 0;
+		while (risc_code_size > 0 && !rval) {
+			cnt = (uint16_t)(ha->fw_transfer_size >> 1);
+			if (cnt > risc_code_size)
+				cnt = risc_code_size;
+
+			DEBUG7(printk("scsi(%ld): Loading risc segment@ "
+			    "addr %p, number of bytes 0x%x, offset 0x%lx.\n",
+			    ha->host_no, risc_code, cnt, risc_address));
+
+			req_ring = (uint16_t *)ha->request_ring;
+			for (i = 0; i < cnt; i++)
+				req_ring[i] = cpu_to_le16(risc_code[i]);
+
+			/*
+			 * Flush written firmware to the ha->request_ring buffer
+			 * before DMA.
+			 */
+			flush_cache_all();
+
+			if (fw_iter->addressing == FW_INFO_ADDR_NORMAL) {
+				rval = qla2x00_load_ram(ha,
+				    ha->request_dma, risc_address, cnt);
+			} else {
+				rval = qla2x00_load_ram_ext(ha,
+				    ha->request_dma, risc_address, cnt);
+			}
+			if (rval) {
+				DEBUG(printk("scsi(%ld): [ERROR] Failed to "
+				    "load segment %d of firmware\n",
+				    ha->host_no, num));
+				printk(KERN_WARNING
+				    "scsi(%ld): [ERROR] Failed to load "
+				    "segment %d of firmware\n",
+				    ha->host_no, num);
+
+				qla2x00_dump_regs(ha);
+				break;
+			}
+
+			risc_code += cnt;
+			risc_address += cnt;
+			risc_code_size -= cnt;
+			num++;
+		}
+
+		/* Next firmware sequence */
+		fw_iter++;
+	}
+
+	/* Verify checksum of loaded RISC code. */
+	if (!rval) {
+		DEBUG(printk("scsi(%ld): Verifying Checksum of loaded RISC "
+		    "code.\n", ha->host_no));
+
+		rval = qla2x00_verify_checksum(ha);
+		if (rval == QLA_SUCCESS) {
+			/* Start firmware execution. */
+			DEBUG(printk("scsi(%ld): Checksum OK, start "
+			    "firmware.\n", ha->host_no));
+
+			rval = qla2x00_execute_fw(ha);
+		}
+		else {
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld): ISP Firmware failed checksum.\n",
+			    ha->host_no));
+		}
+	}
+
+	if (rval) {
+		DEBUG2_3(printk("scsi(%ld): Setup chip **** FAILED ****.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_init_response_q_entries() - Initializes response queue entries.
+ * @ha: HA context
+ *
+ * Beginning of request ring has initialization control block already built
+ * by nvram config routine.
+ *
+ * Returns 0 on success.
+ */
+static void
+qla2x00_init_response_q_entries(scsi_qla_host_t *ha)
+{
+	uint16_t cnt;
+	response_t *pkt;
+
+	pkt = ha->response_ring_ptr;
+	for (cnt = 0; cnt < RESPONSE_ENTRY_CNT; cnt++) {
+		pkt->signature = RESPONSE_PROCESSED;
+		pkt++;
+	}
+
+}
+
+/**
+ * qla2x00_init_rings() - Initializes firmware.
+ * @ha: HA context
+ *
+ * Beginning of request ring has initialization control block already built
+ * by nvram config routine.
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_init_rings(scsi_qla_host_t *ha)
+{
+	int	rval;
+	unsigned long flags = 0;
+	int cnt;
+	device_reg_t *reg = ha->iobase;
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	/* Clear outstanding commands array. */
+	for (cnt = 0; cnt < MAX_OUTSTANDING_COMMANDS; cnt++)
+		ha->outstanding_cmds[cnt] = 0;
+
+	ha->current_outstanding_cmd = 0;
+
+	/* Clear RSCN queue. */
+	ha->rscn_in_ptr = 0;
+	ha->rscn_out_ptr = 0;
+
+	/* Initialize firmware. */
+	ha->request_ring_ptr  = ha->request_ring;
+	ha->req_ring_index    = 0;
+	ha->req_q_cnt         = REQUEST_ENTRY_CNT;
+	ha->response_ring_ptr = ha->response_ring;
+	ha->rsp_ring_index    = 0;
+
+	/* Initialize response queue entries */
+	qla2x00_init_response_q_entries(ha);
+
+	WRT_REG_WORD(ISP_REQ_Q_IN(reg), 0);
+	WRT_REG_WORD(ISP_REQ_Q_OUT(reg), 0);
+	WRT_REG_WORD(ISP_RSP_Q_IN(reg), 0);
+	WRT_REG_WORD(ISP_RSP_Q_OUT(reg), 0);
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	DEBUG(printk("scsi(%ld): Issue init firmware.\n", ha->host_no));
+	rval = qla2x00_init_firmware(ha, sizeof(init_cb_t));
+	if (rval) {
+		DEBUG2_3(printk("scsi(%ld): Init firmware **** FAILED ****.\n",
+		    ha->host_no));
+	} else {
+		/* Setup seriallink options */
+		uint16_t swing, emphasis;
+
+		DEBUG3(printk("scsi(%ld): Serial link options:\n",
+		    ha->host_no));
+		DEBUG3(qla2x00_dump_buffer(
+		    (uint8_t *)&ha->fw_seriallink_options,
+		    sizeof(ha->fw_seriallink_options)));
+
+		memset(ha->fw_options, 0, sizeof(ha->fw_options));
+		qla2x00_get_fw_options(ha, ha->fw_options);
+
+		ha->fw_options[1] &= ~FO1_SET_EMPHASIS_SWING;
+		if (ha->fw_seriallink_options[1] & BIT_2)
+			ha->fw_options[1] |= FO1_SET_EMPHASIS_SWING;
+
+		/* 1G settings */
+		swing = ha->fw_seriallink_options[0] & (BIT_2 | BIT_1 | BIT_0);
+		emphasis = ha->fw_seriallink_options[0] & (BIT_4 | BIT_3);
+		emphasis >>= 3;
+		ha->fw_options[10] = (emphasis << 14) | (swing << 8) | 0x3;
+
+		/* 2G settings */
+		swing = ha->fw_seriallink_options[0] & (BIT_7 | BIT_6 | BIT_5);
+		swing >>= 5;
+		emphasis = ha->fw_seriallink_options[1] & (BIT_1 | BIT_0);
+		ha->fw_options[11] = (emphasis << 14) | (swing << 8) | 0x3;
+
+		qla2x00_set_fw_options(ha, ha->fw_options);
+
+		DEBUG3(printk("scsi(%ld): Init firmware -- success.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/**
+ * qla2x00_fw_ready() - Waits for firmware ready.
+ * @ha: HA context
+ *
+ * Returns 0 on success.
+ */
+static int
+qla2x00_fw_ready(scsi_qla_host_t *ha)
+{
+	int		rval;
+	unsigned long	wtime, mtime;
+	uint16_t	min_wait;	/* Minimum wait time if loop is down */
+	uint16_t	wait_time;	/* Wait time if loop is coming ready */
+	uint16_t	fw_state;
+
+	rval = QLA_SUCCESS;
+
+	/* 20 seconds for loop down. */
+	min_wait = 20;		
+
+	/*
+	 * Firmware should take at most one RATOV to login, plus 5 seconds for
+	 * our own processing.
+	 */
+	if ((wait_time = (ha->retry_count*ha->login_timeout) + 5) < min_wait) {
+		wait_time = min_wait;
+	}
+
+	/* Min wait time if loop down */
+	mtime = jiffies + (min_wait * HZ);
+
+	/* wait time before firmware ready */
+	wtime = jiffies + (wait_time * HZ);
+
+	/* Wait for ISP to finish LIP */
+	if (!qla2x00_quiet)
+		printk(KERN_INFO
+		    "scsi(%ld): Waiting for LIP to complete...\n", ha->host_no);
+
+	DEBUG3(printk("scsi(%ld): Waiting for LIP to complete...\n",
+	    ha->host_no));
+
+	do {
+		rval = qla2x00_get_firmware_state(ha, &fw_state);
+		if (rval == QLA_SUCCESS) {
+			if (fw_state < FSTATE_LOSS_OF_SYNC) {
+				ha->device_flags &= ~DFLG_NO_CABLE;
+			}
+			if (fw_state == FSTATE_READY) {
+				DEBUG(printk("scsi(%ld): F/W Ready - OK \n",
+				    ha->host_no));
+
+				qla2x00_get_retry_cnt(ha, &ha->retry_count,
+				    &ha->login_timeout);
+
+				rval = QLA_SUCCESS;
+				break;
+			}
+
+			rval = QLA_FUNCTION_FAILED;
+
+			if (atomic_read(&ha->loop_down_timer) &&
+			    fw_state >= FSTATE_LOSS_OF_SYNC) {
+				/* Loop down. Timeout on min_wait for states
+				 * other than Wait for Login. 
+				 */	
+				if (time_after_eq(jiffies, mtime)) {
+					printk(KERN_INFO
+					    "scsi(%ld): Cable is "
+					    "unplugged...\n",
+					    ha->host_no);
+
+					ha->device_flags |= DFLG_NO_CABLE;
+					break;
+				}
+			}
+		} else {
+			/* Mailbox cmd failed. Timeout on min_wait. */
+			if (time_after_eq(jiffies, mtime))
+				break;
+		}
+
+		if (time_after_eq(jiffies, wtime))
+			break;
+
+		/* Delay for a while */
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(HZ / 2);
+
+		DEBUG3(printk("scsi(%ld): fw_state=%x curr time=%lx.\n",
+		    ha->host_no, fw_state, jiffies));
+	} while (1);
+
+	DEBUG(printk("scsi(%ld): fw_state=%x curr time=%lx.\n",
+	    ha->host_no, fw_state, jiffies));
+
+	if (rval) {
+		DEBUG2_3(printk("scsi(%ld): Firmware ready **** FAILED ****.\n",
+		    ha->host_no));
+	}
+
+	return (rval);
+}
+
+/*
+*  qla2x00_configure_hba
+*      Setup adapter context.
+*
+* Input:
+*      ha = adapter state pointer.
+*
+* Returns:
+*      0 = success
+*
+* Context:
+*      Kernel context.
+*/
+static int
+qla2x00_configure_hba(scsi_qla_host_t *ha)
+{
+	int       rval;
+	uint16_t      loop_id;
+	uint16_t      topo;
+	uint8_t       al_pa;
+	uint8_t       area;
+	uint8_t       domain;
+	char		connect_type[22];
+
+	/* Get host addresses. */
+	rval = qla2x00_get_adapter_id(ha,
+	    &loop_id, &al_pa, &area, &domain, &topo);
+	if (rval != QLA_SUCCESS) {
+		printk(KERN_WARNING
+		    "scsi(%ld): ERROR -- Unable to get host loop ID.\n",
+		    ha->host_no);
+		return (rval);
+	}
+
+	if (topo == 4) {
+		printk(KERN_INFO
+			"scsi(%ld): Cannot get topology - retrying.\n",
+			ha->host_no);
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	ha->loop_id = loop_id;
+
+#if defined(ISP2100)
+	/* Make sure 2100 only has loop, in case of any firmware bug. */
+	topo = 0;
+#endif
+
+	/* initialize */
+	ha->min_external_loopid = SNS_FIRST_LOOP_ID;
+	ha->operating_mode = LOOP;
+
+	switch (topo) {
+	case 0:
+		DEBUG3(printk("scsi(%ld): HBA in NL topology.\n",
+		    ha->host_no));
+		ha->current_topology = ISP_CFG_NL;
+		strcpy(connect_type, "(Loop)");
+		break;
+
+	case 1:
+		DEBUG3(printk("scsi(%ld): HBA in FL topology.\n",
+		    ha->host_no));
+		ha->current_topology = ISP_CFG_FL;
+		strcpy(connect_type, "(FL_Port)");
+		break;
+
+	case 2:
+		DEBUG3(printk("scsi(%ld): HBA in N P2P topology.\n",
+		    ha->host_no));
+		ha->operating_mode = P2P;
+		ha->current_topology = ISP_CFG_N;
+		strcpy(connect_type, "(N_Port-to-N_Port)");
+		break;
+
+	case 3:
+		DEBUG3(printk("scsi(%ld): HBA in F P2P topology.\n",
+		    ha->host_no));
+		ha->operating_mode = P2P;
+		ha->current_topology = ISP_CFG_F;
+		strcpy(connect_type, "(F_Port)");
+		break;
+
+	default:
+		DEBUG3(printk("scsi(%ld): HBA in unknown topology %x. "
+		    "Using NL.\n",
+		    ha->host_no, topo));
+		ha->current_topology = ISP_CFG_NL;
+		strcpy(connect_type, "(Loop)");
+		break;
+	}
+
+	/* Save Host port and loop ID. */
+	/* byte order - Big Endian */
+	ha->d_id.b.domain = domain;
+	ha->d_id.b.area = area;
+	ha->d_id.b.al_pa = al_pa;
+
+	if (!qla2x00_quiet)
+		printk(KERN_INFO
+		    "scsi(%ld): Topology - %s, Host Loop address 0x%x\n",
+		    ha->host_no, connect_type, ha->loop_id);
+
+	if (rval) {
+		DEBUG2_3(printk("scsi(%ld): FAILED.\n", ha->host_no));
+	} else {
+		DEBUG3(printk("scsi(%ld): exiting normally.\n", ha->host_no));
+	}
+
+	return(rval);
+}
+
+/*
+* NVRAM configuration for ISP 2xxx
+*
+* Input:
+*      ha                = adapter block pointer.
+*
+* Output:
+*      initialization control block in response_ring
+*      host adapters parameters in host adapter block
+*
+* Returns:
+*      0 = success.
+*/
+static int
+qla2x00_nvram_config(scsi_qla_host_t *ha)
+{
+	int   rval;
+	uint8_t   chksum = 0;
+	uint16_t  cnt;
+	uint8_t   *dptr1, *dptr2;
+	init_cb_t *icb   = ha->init_cb;
+	nvram_t *nv    = (nvram_t *)ha->request_ring;
+	uint16_t  *wptr  = (uint16_t *)ha->request_ring;
+#if defined(ISP2300)
+	device_reg_t *reg = ha->iobase;
+	uint16_t  data;
+	uint16_t  timer_mode;
+#endif
+
+	rval = QLA_SUCCESS;
+
+	if (ha->init_done)
+		return (rval);
+
+	/* Determine NVRAM starting address. */
+	ha->nvram_base = 0;
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		data = RD_REG_WORD(&reg->ctrl_status);
+		if ((data >> 14) == 1)
+			ha->nvram_base = 0x80;
+
+		data = RD_REG_WORD(&reg->nvram);
+		while (data & NVR_BUSY) {
+			udelay(100);
+			data = RD_REG_WORD(&reg->nvram);
+		}
+
+		/* Lock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0x1);
+		udelay(5);
+		data = RD_REG_WORD(&reg->host_semaphore);
+		while ((data & BIT_0) == 0) {
+			/* Lock failed */
+			udelay(100);
+			WRT_REG_WORD(&reg->host_semaphore, 0x1);
+			udelay(5);
+			data = RD_REG_WORD(&reg->host_semaphore);
+		}
+	}
+#endif
+
+	/* Get NVRAM data and calculate checksum. */
+	for (cnt = 0; cnt < sizeof(nvram_t)/2; cnt++) {
+		*wptr = cpu_to_le16(qla2x00_get_nvram_word(ha,
+		    (cnt+ha->nvram_base)));
+		chksum += (uint8_t)*wptr;
+		chksum += (uint8_t)(*wptr >> 8);
+		wptr++;
+	}
+
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID) {
+		/* Unlock resource */
+		WRT_REG_WORD(&reg->host_semaphore, 0);
+	}
+#endif
+
+	DEBUG5(printk("scsi(%ld): Contents of NVRAM\n", ha->host_no));
+	DEBUG5(qla2x00_dump_buffer((uint8_t *)ha->request_ring,
+	    sizeof(nvram_t)));
+
+	/* Bad NVRAM data, set defaults parameters. */
+	if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' ||
+	    nv->id[2] != 'P' || nv->id[3] != ' ' || nv->nvram_version < 1) {
+
+		/* Reset NVRAM data. */
+		DEBUG(printk("scsi(%ld): Using defaults for NVRAM - "
+		    "checksum=0x%x, Id=%c, version=0x%x\n",
+		    ha->host_no, chksum, nv->id[0], nv->nvram_version));
+
+		memset(nv, 0, sizeof(nvram_t));
+
+		/*
+		 * Set default initialization control block.
+		 */
+		nv->parameter_block_version = ICB_VERSION;
+
+#if defined(ISP2300)
+		nv->firmware_options[0] = BIT_2 | BIT_1;
+		nv->firmware_options[1] = BIT_7 | BIT_5;
+		nv->add_firmware_options[0] = BIT_5;
+		nv->add_firmware_options[1] = BIT_5 | BIT_4;
+		nv->frame_payload_size  = __constant_cpu_to_le16(2048);
+#elif defined(ISP2200)
+		nv->firmware_options[0] = BIT_2 | BIT_1;
+		nv->firmware_options[1] = BIT_7 | BIT_5;
+		nv->add_firmware_options[0] = BIT_5 | BIT_4;
+		nv->add_firmware_options[1] = BIT_5 | BIT_4;
+		nv->frame_payload_size  = __constant_cpu_to_le16(1024);
+#else /* defined(ISP2100) */
+		nv->firmware_options[0] = BIT_3 | BIT_1;
+		nv->firmware_options[1] = BIT_5;
+		nv->frame_payload_size  = __constant_cpu_to_le16(1024);
+#endif
+
+		nv->max_iocb_allocation = __constant_cpu_to_le16(256);
+		nv->execution_throttle  = __constant_cpu_to_le16(16);
+		nv->retry_count = 8;
+		nv->retry_delay = 1;
+
+		nv->port_name[0] = 33;
+		nv->port_name[3] = 224;
+		nv->port_name[4] = 139;
+
+		nv->login_timeout = 4;
+
+		/*
+		 * Set default host adapter parameters
+		 */
+		nv->host_p[1] = BIT_2;
+		nv->reset_delay = 5;
+		nv->port_down_retry_count = 8;
+		nv->max_luns_per_target = __constant_cpu_to_le16(8);
+		nv->link_down_timeout = 60;
+
+		rval = 1;
+	}
+
+	/* Reset Initialization control block */
+	memset(icb, 0, sizeof(init_cb_t));
+
+	/*
+	 * Setup driver NVRAM options.
+	 */
+	nv->firmware_options[0] |= (BIT_6 | BIT_1);
+	nv->firmware_options[0] &= ~(BIT_5 | BIT_4);
+	nv->firmware_options[1] |= (BIT_5 | BIT_0);
+	nv->firmware_options[1] &= ~BIT_4;
+#if defined(ISP2300)
+	nv->firmware_options[0] |= BIT_2;
+	nv->firmware_options[0] &= ~BIT_3;
+
+	if (ha->pdev->subsystem_device == 0x9) {
+		strcpy(ha->model_number, "QLA2300");
+		if (ha->fb_rev == FPM_2310)
+			strcpy(ha->model_number, "QLA2310");
+	} else {
+		if (rval == 0 &&
+		    memcmp(nv->model_number, BINZERO,
+			    sizeof(nv->model_number)) != 0) {
+			strncpy(ha->model_number, nv->model_number,
+			    sizeof(nv->model_number));
+		} else {
+			uint16_t        index;
+
+			index = (ha->pdev->subsystem_device & 0xff);
+			if (index < QLA_MODEL_NAMES) {
+				strcpy(ha->model_number,
+				    qla2x00_model_name[index]);
+			} else {
+				strcpy(ha->model_number, "QLA23xx");
+			}
+		}
+	}
+#elif defined(ISP2200)
+	nv->firmware_options[0] |= BIT_2;
+	strcpy(ha->model_number, "QLA22xx");
+#else /* defined(ISP2100) */
+	strcpy(ha->model_number, "QLA2100");
+#endif
+
+#if !defined(FC_IP_SUPPORT)
+	/* Enable FC-Tape support */
+	nv->firmware_options[1] |= BIT_7;
+	nv->add_firmware_options[1] |= (BIT_5 | BIT_4);
+#endif
+
+	/*
+	 * Copy over NVRAM RISC parameter block to initialization control block.
+	 */
+	dptr1 = (uint8_t *)icb;
+	dptr2 = (uint8_t *)&nv->parameter_block_version;
+	cnt = (uint8_t *)&icb->request_q_outpointer - (uint8_t *)&icb->version;
+	while (cnt--)
+		*dptr1++ = *dptr2++;
+
+	/* Copy 2nd half. */
+	dptr1 = (uint8_t *)icb->add_firmware_options;
+	cnt = (uint8_t *)icb->reserved_3 - (uint8_t *)icb->add_firmware_options;
+	while (cnt--)
+		*dptr1++ = *dptr2++;
+
+	/* Prepare nodename */
+	if ((icb->firmware_options[1] & BIT_6) == 0) {
+		/*
+		 * Firmware will apply the following mask if the nodename was
+		 * not provided.
+		 */
+		memcpy(icb->node_name, icb->port_name, WWN_SIZE);
+		icb->node_name[0] &= 0xF0;
+	}
+
+	/*
+	 * Set host adapter parameters.
+	 */
+	ha->nvram_version = nv->nvram_version;
+
+	ha->flags.disable_luns = ((nv->host_p[0] & BIT_2) ? 1 : 0);
+	ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0);
+	ha->flags.set_cache_line_size_1 = ((nv->host_p[0] & BIT_5) ? 1 : 0);
+	ha->flags.enable_64bit_addressing = ((nv->host_p[1] & BIT_0) ? 1 : 0);
+	ha->flags.enable_lip_reset = ((nv->host_p[1] & BIT_1) ? 1 : 0);
+	ha->flags.enable_lip_full_login = ((nv->host_p[1] & BIT_2) ? 1 : 0);
+	ha->flags.enable_target_reset = ((nv->host_p[1] & BIT_3) ? 1 : 0);
+	ha->flags.enable_flash_db_update = ((nv->host_p[1] & BIT_4) ? 1 : 0);
+
+	ha->flags.link_down_error_enable  = 1;
+
+	ha->flags.enable_target_mode =
+	    ((icb->firmware_options[0] & BIT_4) ? 1 : 0);
+	ha->operating_mode =
+	    (icb->add_firmware_options[0] & (BIT_6 | BIT_5 | BIT_4)) >> 4;
+
+	qla2x00_config_dma_addressing(ha);
+
+	ha->fw_seriallink_options[0] = nv->seriallink_options[0];
+	ha->fw_seriallink_options[1] = nv->seriallink_options[1];
+
+	/* save HBA serial number */
+	ha->serial0 = icb->port_name[5];
+	ha->serial1 = icb->port_name[6];
+	ha->serial2 = icb->port_name[7];
+	memcpy(ha->node_name, icb->node_name, WWN_SIZE);
+#if defined(FC_IP_SUPPORT)
+	memcpy(ha->ip_port_name, icb->port_name, WWN_SIZE);
+#endif
+
+	icb->execution_throttle = __constant_cpu_to_le16(0xFFFF);
+
+	ha->retry_count = nv->retry_count;
+
+	/* Set minimum login_timeout to 4 seconds. */
+	if (nv->login_timeout < ql2xlogintimeout)
+		nv->login_timeout = ql2xlogintimeout;
+	if (nv->login_timeout < 4)
+		nv->login_timeout = 4;
+	ha->login_timeout = nv->login_timeout;
+	icb->login_timeout = nv->login_timeout;
+
+/* FIXME
+ *
+ * port_down_retry_count updated twice
+ *
+ */
+	ha->port_down_retry_count = nv->port_down_retry_count;
+	ha->minimum_timeout =
+	    (ha->login_timeout * ha->retry_count) + ha->port_down_retry_count;
+	ha->loop_reset_delay = nv->reset_delay;
+
+	/* Will get the value from NVRAM. */
+	ha->loop_down_timeout = LOOP_DOWN_TIMEOUT;
+
+	/* Link Down Timeout = 0:
+	 *
+	 * 	When Port Down timer expires we will start returning
+	 *	I/O's to OS with "DID_NO_CONNECT".
+	 *
+	 * Link Down Timeout != 0:
+	 *
+	 *	 The driver waits for the link to come up after link down
+	 *	 before returning I/Os to OS with "DID_NO_CONNECT".
+	 */						
+	if (nv->link_down_timeout == 0) {
+		ha->loop_down_abort_time =
+		    (LOOP_DOWN_TIME - ha->loop_down_timeout);
+	} else {
+		ha->link_down_timeout =	 nv->link_down_timeout;
+		ha->loop_down_abort_time =
+		    (LOOP_DOWN_TIME - ha->link_down_timeout);
+	} 
+
+	/* save OEM related items for QLA2200s and QLA2300s */
+	memcpy(ha->oem_specific, nv->oem_specific, sizeof(ha->oem_specific));
+
+	ha->max_probe_luns = le16_to_cpu(nv->max_luns_per_target);
+	if (ha->max_probe_luns == 0)
+		ha->max_probe_luns = MIN_LUNS;
+
+#if USE_BIOS_MAX_LUNS
+	ha->max_luns = le16_to_cpu(nv->max_luns_per_target);
+	if (ha->max_luns == 0)
+		ha->max_luns = MAX_LUNS;
+	else if (ha->max_luns > MAX_LUNS)
+		ha->max_luns = MAX_LUNS;
+#else
+	ha->max_luns = MAX_LUNS;
+#endif
+
+/* FIXME
+ *
+ * port_down_retry_count updated twice
+ *
+ */
+	/*
+	 * Need enough time to try and get the port back.
+	 */
+	if (qlport_down_retry)
+		ha->port_down_retry_count = qlport_down_retry;
+	/* Set login_retry_count */
+	ha->login_retry_count  = nv->retry_count;
+	if (ha->port_down_retry_count == nv->port_down_retry_count &&
+	    ha->port_down_retry_count > 3)
+		ha->login_retry_count = ha->port_down_retry_count;
+	else if (ha->port_down_retry_count > (int)ha->login_retry_count)
+		ha->login_retry_count = ha->port_down_retry_count;
+
+	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)) {
+
+		printk(KERN_WARNING
+		    "scsi(%ld): Invalid binding type specified (%d), "
+		    "defaulting to BIND_BY_PORT_NAME!!!\n",
+		    ha->host_no, ha->binding_type);
+
+		ha->binding_type = BIND_BY_PORT_NAME;
+	}
+
+	/*
+	 * Setup ring parameters in initialization control block
+	 */
+	icb->request_q_outpointer = __constant_cpu_to_le16(0);
+	icb->response_q_inpointer = __constant_cpu_to_le16(0);
+	icb->request_q_length = __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(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;
+	icb->immediate_notify_resource_count = 0;
+	icb->timeout = __constant_cpu_to_le16(0);
+
+#if defined(ISP2100) || defined(ISP2200)
+	/* Enable RIO */
+	icb->firmware_options[0] &= ~BIT_3;
+	icb->add_firmware_options[0] &= ~(BIT_3 | BIT_2 | BIT_1 | BIT_0);
+	icb->add_firmware_options[0] |= (BIT_1 | BIT_0);
+	icb->response_accumulation_timer = 3;
+	icb->interrupt_delay_timer = 5;
+
+	ha->flags.process_response_queue = 1;
+#elif defined(ISP2300)
+	/* TEST ZIO:
+	 *
+	 * icb->add_firmware_options[0] &= ~(BIT_3 | BIT_2 | BIT_1 | BIT_0);
+	 * icb->add_firmware_options[0] |= (BIT_2 | BIT_0);
+	 */
+	timer_mode  = icb->add_firmware_options[0] &
+	    (BIT_3 | BIT_2 | BIT_1 | BIT_0);
+	if (timer_mode == 5) {
+		DEBUG2(printk("scsi(%ld): ZIO enabled; timer delay (%d).\n",
+		    ha->host_no, ql2xintrdelaytimer));
+		printk(KERN_INFO
+		    "scsi(%ld): ZIO enabled; timer delay (%d).\n",
+		    ha->host_no, ql2xintrdelaytimer);
+
+		icb->interrupt_delay_timer = ql2xintrdelaytimer;
+
+		ha->flags.process_response_queue = 1;
+	}
+#endif
+
+	if (rval) {
+		DEBUG2_3(printk(KERN_WARNING
+		    "scsi(%ld): NVRAM configuration failed!\n", ha->host_no));
+	}
+
+	LEAVE(__func__);
+
+	return (rval);
+}
+
+/*
+* qla2x00_init_tgt_map
+*      Initializes target map.
+*
+* Input:
+*      ha = adapter block pointer.
+*
+* Output:
+*      TGT_Q initialized
+*/
+static void
+qla2x00_init_tgt_map(scsi_qla_host_t *ha)
+{
+	uint32_t t;
+
+	ENTER(__func__);
+
+	for (t = 0; t < MAX_TARGETS; t++)
+		TGT_Q(ha, t) = (os_tgt_t *)NULL;
+
+	LEAVE(__func__);
+}
+
+/*
+ * qla2x00_configure_loop
+ *      Updates Fibre Channel Device Database with what is actually on loop.
+ *
+ * Input:
+ *      ha                = adapter block pointer.
+ *
+ * Returns:
+ *      0 = success.
+ *      1 = error.
+ *      2 = database was full and device was not configured.
+ */
+static int
+qla2x00_configure_loop(scsi_qla_host_t *ha) 
+{
+	int  rval;
+	uint8_t  rval1 = 0;
+	static unsigned long  flags, save_flags;
+
+	rval = QLA_SUCCESS;
+
+	/* Get Initiator ID */
+	if (qla2x00_configure_hba(ha)) {
+		DEBUG(printk("scsi(%ld): Unable to configure HBA.\n",
+		    ha->host_no));
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	save_flags = flags = ha->dpc_flags;
+	DEBUG(printk("scsi(%ld): Configure loop -- dpc flags =0x%lx\n",
+	    ha->host_no, flags));
+
+	/* dg 02/26/02 ha->dpc_flags &= ~(LOCAL_LOOP_UPDATE | RSCN_UPDATE); */
+
+	/*
+	 * 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);
+	ha->mem_err = 0 ;
+
+	/* Determine what we need to do */
+	if (ha->current_topology == ISP_CFG_FL &&
+	    (test_bit(LOCAL_LOOP_UPDATE, &flags))) {
+
+		ha->flags.rscn_queue_overflow = TRUE;
+		set_bit(RSCN_UPDATE, &flags);
+
+	} else if (ha->current_topology == ISP_CFG_F &&
+	    (test_bit(LOCAL_LOOP_UPDATE, &flags))) {
+
+		ha->flags.rscn_queue_overflow = TRUE;
+		set_bit(RSCN_UPDATE, &flags);
+		clear_bit(LOCAL_LOOP_UPDATE, &flags);
+
+	} else if (!ha->flags.online ||
+	    (test_bit(ABORT_ISP_ACTIVE, &flags))) {
+
+		ha->flags.rscn_queue_overflow = TRUE;
+		set_bit(RSCN_UPDATE, &flags);
+		set_bit(LOCAL_LOOP_UPDATE, &flags);
+	}
+
+	do {
+		if (test_bit(LOCAL_LOOP_UPDATE, &flags)) {
+			rval = rval | qla2x00_configure_local_loop(ha);
+		}
+
+		if (test_bit(RSCN_UPDATE, &flags)) {
+			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);
+			}
+		}
+
+		/* Isolate error status. */
+		if (rval & BIT_0) {
+			rval = 1;
+		} else {
+			rval = QLA_SUCCESS;
+		}
+
+	} while (rval != QLA_SUCCESS);
+
+	if (!atomic_read(&ha->loop_down_timer) &&
+	    !(test_bit(LOOP_RESYNC_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("scsi(%ld): schedule FAILBACK "
+				    "EVENT\n", 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;
+			}
+
+			DEBUG(printk("scsi(%ld): LOOP READY\n", 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))
+				set_bit(RSCN_UPDATE, &ha->dpc_flags);
+		}
+	} else {
+		DEBUG(printk("scsi(%ld): Loop down counter running= %d or "
+		    "Resync needed- dpc flags= %ld\n",
+		    ha->host_no,
+		    atomic_read(&ha->loop_down_timer), ha->dpc_flags));
+		/* ???? dg 02/26/02  rval = 1; */
+	}
+
+	if (rval) {
+		DEBUG2_3(printk("%s(%ld): *** FAILED ***\n",
+		    __func__, ha->host_no));
+	} else {
+		DEBUG3(printk("%s: exiting normally\n", __func__));
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_configure_local_loop
+ *	Updates Fibre Channel Device Database with local loop devices.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	0 = success.
+ *	BIT_0 = error.
+ */
+static int
+qla2x00_configure_local_loop(scsi_qla_host_t *ha) 
+{
+	int		rval, rval2;
+	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;
+	fc_port_t	dev;
+
+	rval = QLA_SUCCESS;
+	localdevices = 0;
+
+	/*
+	 * No point in continuing if the loop is in a volatile state -- 
+	 * reschedule LOCAL_LOOP_UPDATE for later processing
+	 */
+	if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {
+		set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+		return (rval);
+	}
+
+	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));
+
+		printk(KERN_WARNING
+		    "scsi(%ld): Memory Allocation failed - port_list",
+		    ha->host_no);
+
+		ha->mem_err++;
+		return (BIT_0);
+	}
+	memset(id_list, 0, MAX_ID_LIST_SIZE);
+
+	DEBUG3(printk("scsi(%ld): Getting FCAL position map\n", ha->host_no));
+	DEBUG3(qla2x00_get_fcal_position_map(ha, NULL));
+
+	/* Get list of logged in devices. */
+	rval = qla2x00_get_id_list(ha, id_list, id_list_dma, &entries);
+	if (rval) {
+		rval = BIT_0;
+		goto cleanup_allocation;
+	}
+
+	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)));
+
+	/*
+	 * Mark local devices that were present with FCF_DEVICE_LOST for now.
+	 */
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (atomic_read(&fcport->state) == FCS_ONLINE &&
+		    fcport->port_type != FCT_BROADCAST &&
+		    (fcport->flags & FCF_FABRIC_DEVICE) == 0) {
+
+			DEBUG(printk("scsi(%ld): Marking port lost, "
+			    "loop_id=0x%04x\n",
+			    ha->host_no, fcport->loop_id));
+
+			atomic_set(&fcport->state, FCS_DEVICE_LOST);
+			fcport->flags &= ~FCF_FARP_DONE;
+		}
+	}
+
+	/* Add devices to port list. */
+	for (index = 0; index < entries; index++) {
+		/* Bypass reserved domain fields. */
+		if ((id_list[index].domain & 0xf0) == 0xf0)
+			continue;
+
+		/* 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;
+
+		memset(&dev, 0, sizeof(fc_port_t));
+		dev.ha = ha;
+		dev.d_id.b.domain = id_list[index].domain;
+		dev.d_id.b.area = id_list[index].area;
+		dev.d_id.b.al_pa = id_list[index].al_pa;
+		dev.loop_id = loop_id;
+		dev.port_type = FCT_UNKNOWN;
+		atomic_set(&dev.state, FCS_UNCONFIGURED);
+ 		dev.flags = FCF_RLC_SUPPORT;
+
+		rval2 = qla2x00_get_port_database(ha, &dev, 0);
+		if (rval2 != QLA_SUCCESS) {
+			DEBUG2(printk("scsi(%ld): Failed to retrieve fcport "
+			    "information -- get_port_database=%x, "
+			    "loop_id=0x%04x\n",
+			    ha->host_no, rval2, dev.loop_id));
+			continue;
+		}
+
+		/* Check for matching device in port list. */
+		found = 0;
+		fcport = NULL;
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			if (memcmp(dev.port_name, fcport->port_name, WWN_SIZE))
+				continue;
+
+			fcport->flags &= ~(FCF_FABRIC_DEVICE |
+			    FCF_PERSISTENT_BOUND);
+			fcport->loop_id = dev.loop_id;
+			fcport->port_type = dev.port_type;
+			fcport->d_id.b24 = dev.d_id.b24;
+			memcpy(fcport->node_name, dev.node_name, WWN_SIZE);
+
+			found++;
+			break;
+		}
+
+		/* New device, add to port list. */
+		if (!found) {
+			fcport = kmalloc(sizeof(fc_port_t), GFP_ATOMIC);
+			if (fcport == NULL)
+				goto cleanup_allocation;
+
+			memcpy(fcport, &dev, sizeof(fc_port_t));
+			INIT_LIST_HEAD(&fcport->fcluns);
+
+			list_add_tail(&fcport->list, &ha->fcports);
+		}
+
+		qla2x00_update_fcport(ha, fcport);
+
+		localdevices++;
+	}
+
+cleanup_allocation:
+	pci_free_consistent(ha->pdev, MAX_ID_LIST_SIZE, id_list, id_list_dma);
+
+	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;
+	}
+
+	return (rval);
+}
+
+/*
+ * 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 void
+qla2x00_update_fcport(scsi_qla_host_t *ha, fc_port_t *fcport)
+{
+	uint16_t	index;
+	unsigned long flags;
+	srb_t *sp;
+
+	fcport->ha = ha;
+	fcport->login_retry = 0;
+	fcport->port_login_retry_count = ha->port_down_retry_count *
+	    PORT_RETRY_TIME;
+	atomic_set(&fcport->port_down_timer, ha->port_down_retry_count *
+	    PORT_RETRY_TIME);
+	fcport->flags &= ~FCF_FAILOVER_NEEDED;
+
+	/*
+	 * Check for outstanding cmd on tape Bypass LUN discovery if active
+	 * command on tape.
+	 */
+	if (fcport->flags & FCF_TAPE_PRESENT) {
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+		for (index = 1; index < MAX_OUTSTANDING_COMMANDS; index++) {
+			if ((sp = ha->outstanding_cmds[index]) != 0) {
+				if (sp->fclun->fcport == fcport) {
+					atomic_set(&fcport->state, FCS_ONLINE);
+					spin_unlock_irqrestore(
+					    &ha->hardware_lock, flags);
+					return;
+				}
+			}
+		}
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+	}
+
+	/* Do LUN discovery. */
+	if (fcport->port_type == FCT_INITIATOR ||
+	    fcport->port_type == FCT_BROADCAST) {
+		fcport->device_type = TYPE_PROCESSOR;
+	} else {
+		qla2x00_lun_discovery(ha, fcport);
+	}
+	atomic_set(&fcport->state, FCS_ONLINE);
+}
+
+/*
+ * qla2x00_lun_discovery
+ *	Issue SCSI inquiry command for LUN discovery.
+ *
+ * Input:
+ *	ha:		adapter state pointer.
+ *	fcport:		FC port structure pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport)
+{
+	inq_cmd_rsp_t	*inq;
+	dma_addr_t	inq_dma;
+	uint16_t	lun;
+
+	inq = pci_alloc_consistent(ha->pdev, sizeof(inq_cmd_rsp_t), &inq_dma);
+	if (inq == NULL) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Memory Allocation failed - INQ\n",
+		    ha->host_no);
+		return;
+	}
+
+	/* If report LUN works, exit. */
+	if (qla2x00_rpt_lun_discovery(ha, fcport, inq, inq_dma) !=
+	    QLA_SUCCESS) {
+		for (lun = 0; lun < ha->max_probe_luns; lun++) {
+			/* Configure LUN. */
+			qla2x00_cfg_lun(ha, fcport, lun, inq, inq_dma);
+		}
+	}
+
+	pci_free_consistent(ha->pdev, sizeof(inq_cmd_rsp_t), inq, inq_dma);
+}
+
+/*
+ * qla2x00_rpt_lun_discovery
+ *	Issue SCSI report LUN command for LUN discovery.
+ *
+ * Input:
+ *	ha:		adapter state pointer.
+ *	fcport:		FC port structure pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_rpt_lun_discovery(scsi_qla_host_t *ha, fc_port_t *fcport,
+    inq_cmd_rsp_t *inq, dma_addr_t inq_dma)
+{
+	int			rval;
+	uint32_t		len, cnt;
+	uint16_t		lun;
+	rpt_lun_cmd_rsp_t	*rlc;
+	dma_addr_t		rlc_dma;
+
+	/* Assume a failed status */
+	rval = QLA_FUNCTION_FAILED;
+
+	/* No point in continuing if the device doesn't support RLC */
+	if ((fcport->flags & FCF_RLC_SUPPORT) == 0)
+		return (rval);
+
+	rlc = pci_alloc_consistent(ha->pdev, sizeof(rpt_lun_cmd_rsp_t),
+	    &rlc_dma);
+	if (rlc == NULL) {
+		printk(KERN_WARNING
+			"scsi(%ld): Memory Allocation failed - RLC",
+			ha->host_no);
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+
+	rval = qla2x00_report_lun(ha, fcport, rlc, rlc_dma);
+	if (rval != QLA_SUCCESS) {
+		pci_free_consistent(ha->pdev, sizeof(rpt_lun_cmd_rsp_t), rlc,
+		    rlc_dma);
+		return (rval);
+	}
+
+	/* Always add a fc_lun_t structure for lun 0 -- mid-layer requirement */
+	qla2x00_add_lun(fcport, 0);
+
+	/* Configure LUN list. */
+	len = be32_to_cpu(rlc->list.hdr.len);
+	len /= 8;
+	for (cnt = 0; cnt < len; cnt++) {
+		lun = CHAR_TO_SHORT(rlc->list.lst[cnt].lsb,
+		    rlc->list.lst[cnt].msb.b);
+
+		DEBUG3(printk("scsi(%ld): RLC lun = (%d)\n", ha->host_no, lun));
+
+		/* We only support 0 through MAX_LUNS-1 range */
+		if (lun < MAX_LUNS) {
+			qla2x00_cfg_lun(ha, fcport, lun, inq, inq_dma);
+		}
+	}
+	atomic_set(&fcport->state, FCS_ONLINE);
+
+	pci_free_consistent(ha->pdev, sizeof(rpt_lun_cmd_rsp_t), rlc, rlc_dma);
+
+	return (rval);
+}
+
+/*
+ * qla2x00_report_lun
+ *	Issue SCSI report LUN command.
+ *
+ * Input:
+ *	ha:		adapter state pointer.
+ *	fcport:		FC port structure pointer.
+ *	mem:		pointer to dma memory object for report LUN IOCB
+ *			packet.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_report_lun(scsi_qla_host_t *ha,
+    fc_port_t *fcport, rpt_lun_cmd_rsp_t *rlc, dma_addr_t rlc_dma)
+{
+	int rval;
+	uint16_t retries;
+	uint16_t comp_status;
+	uint16_t scsi_status;
+
+	rval = QLA_FUNCTION_FAILED;
+
+	for (retries = 4; retries; retries--) {
+		memset(rlc, 0, sizeof(rpt_lun_cmd_rsp_t));
+		rlc->p.cmd.entry_type = COMMAND_A64_TYPE;
+		rlc->p.cmd.entry_count = 1;
+#if defined(EXTENDED_IDS)
+		rlc->p.cmd.target = cpu_to_le16(fcport->loop_id);
+#else
+		rlc->p.cmd.target = (uint8_t)fcport->loop_id;
+#endif
+		rlc->p.cmd.control_flags =
+		    __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
+		rlc->p.cmd.scsi_cdb[0] = REPORT_LUNS;
+		rlc->p.cmd.scsi_cdb[8] = MSB(sizeof(rpt_lun_lst_t));
+		rlc->p.cmd.scsi_cdb[9] = LSB(sizeof(rpt_lun_lst_t));
+		rlc->p.cmd.dseg_count = __constant_cpu_to_le16(1);
+		rlc->p.cmd.timeout = __constant_cpu_to_le16(10);
+		rlc->p.cmd.byte_count =
+		    __constant_cpu_to_le32(sizeof(rpt_lun_lst_t));
+		rlc->p.cmd.dseg_0_address[0] = cpu_to_le32(
+		    LSD(rlc_dma + sizeof(sts_entry_t)));
+		rlc->p.cmd.dseg_0_address[1] = cpu_to_le32(
+		    MSD(rlc_dma + sizeof(sts_entry_t)));
+		rlc->p.cmd.dseg_0_length =
+		    __constant_cpu_to_le32(sizeof(rpt_lun_lst_t));
+
+		rval = qla2x00_issue_iocb(ha, rlc, rlc_dma,
+		    sizeof(rpt_lun_cmd_rsp_t));
+
+		comp_status = le16_to_cpu(rlc->p.rsp.comp_status);
+		scsi_status = le16_to_cpu(rlc->p.rsp.scsi_status);
+
+		if (rval != QLA_SUCCESS || comp_status != CS_COMPLETE ||
+		    scsi_status & SS_CHECK_CONDITION) {
+
+			/* Device underrun, treat as OK. */
+			if (rval == QLA_SUCCESS &&
+			    comp_status == CS_DATA_UNDERRUN &&
+			    scsi_status & SS_RESIDUAL_UNDER) {
+
+				rval = QLA_SUCCESS;
+				break;
+			}
+
+			DEBUG(printk("scsi(%ld): RLC failed to issue iocb! "
+			    "fcport = %p rval = %x cs = %x ss = %x\n",
+			    ha->host_no, fcport, rval, comp_status,
+			    scsi_status));
+
+			rval = QLA_FUNCTION_FAILED;
+			if (scsi_status & SS_CHECK_CONDITION) {
+				DEBUG2(printk("scsi(%ld): RLC "
+				    "SS_CHECK_CONDITION Sense Data "
+				    "%02x %02x %02x %02x %02x %02x %02x %02x\n",
+				    ha->host_no,
+				    rlc->p.rsp.req_sense_data[0],
+				    rlc->p.rsp.req_sense_data[1],
+				    rlc->p.rsp.req_sense_data[2],
+				    rlc->p.rsp.req_sense_data[3],
+				    rlc->p.rsp.req_sense_data[4],
+				    rlc->p.rsp.req_sense_data[5],
+				    rlc->p.rsp.req_sense_data[6],
+				    rlc->p.rsp.req_sense_data[7]));
+				if (rlc->p.rsp.req_sense_data[2] ==
+				    ILLEGAL_REQUEST) {
+					fcport->flags &= ~(FCF_RLC_SUPPORT);
+					break;
+				}
+			}
+		} else {
+			break;
+		}
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_cfg_lun
+ *	Configures LUN into fcport LUN list.
+ *
+ * Input:
+ *	fcport:		FC port structure pointer.
+ *	lun:		LUN number.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static fc_lun_t *
+qla2x00_cfg_lun(scsi_qla_host_t *ha, fc_port_t *fcport, uint16_t lun,
+    inq_cmd_rsp_t *inq, dma_addr_t inq_dma) 
+{
+	fc_lun_t *fclun;
+
+	/* Bypass LUNs that failed. */
+	if (qla2x00_inquiry(ha, fcport, lun, inq, inq_dma) != QLA_SUCCESS) {
+		DEBUG(printk("scsi(%ld): Failed inquiry - loop id=0x%04x "
+		    "lun=%d\n", ha->host_no, fcport->loop_id, lun));
+
+		return (NULL);
+	}
+
+	switch (inq->inq[0]) {
+	case TYPE_DISK:
+	case TYPE_PROCESSOR:
+	case TYPE_WORM:
+	case TYPE_ROM:
+	case TYPE_SCANNER:
+	case TYPE_MOD:
+	case TYPE_MEDIUM_CHANGER:
+	case TYPE_ENCLOSURE:
+	case 0x20:
+		break;
+	case TYPE_TAPE:
+		fcport->flags |= FCF_TAPE_PRESENT;
+		break;
+	default:
+		DEBUG(printk("scsi(%ld): Unsupported lun type -- "
+		    "loop id=0x%04x lun=%d type=%x\n",
+		    ha->host_no, fcport->loop_id, lun, inq->inq[0]));
+		return (NULL);
+	}
+
+	fcport->device_type = inq->inq[0];
+	fclun = qla2x00_add_lun(fcport, lun);
+
+	if (fclun != NULL) {
+		atomic_set(&fcport->state, FCS_ONLINE);
+	}
+
+	return (fclun);
+}
+
+/*
+ * qla2x00_add_lun
+ *	Adds LUN to database
+ *
+ * Input:
+ *	fcport:		FC port structure pointer.
+ *	lun:		LUN number.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static fc_lun_t *
+qla2x00_add_lun(fc_port_t *fcport, uint16_t lun)
+{
+	int		found;
+	fc_lun_t	*fclun;
+
+	if (fcport == NULL) {
+		DEBUG(printk("scsi: Unable to add lun to NULL port\n"));
+		return (NULL);
+	}
+
+	/* Allocate LUN if not already allocated. */
+	found = 0;
+	list_for_each_entry(fclun, &fcport->fcluns, list) {
+		if (fclun->lun == lun) {
+			found++;
+			break;
+		}
+	}
+	if (found)
+		return (NULL);
+
+	fclun = kmalloc(sizeof(fc_lun_t), GFP_ATOMIC);
+	if (fclun == NULL) {
+		printk(KERN_WARNING
+		    "%s(): Memory Allocation failed - FCLUN\n",
+		    __func__);
+		return (NULL);
+	}
+
+	fcport->lun_cnt++;
+
+	/* Setup LUN structure. */
+	memset(fclun, 0, sizeof(fc_lun_t));
+	fclun->lun = lun;
+	fclun->fcport = fcport;
+	fclun->o_fcport = fcport;
+	fclun->device_type = fcport->device_type;
+	atomic_set(&fcport->state, FCS_UNCONFIGURED);
+
+	list_add_tail(&fclun->list, &fcport->fcluns);
+
+	return (fclun);
+}
+
+/*
+ * qla2x00_inquiry
+ *	Issue SCSI inquiry command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	fcport = FC port structure pointer.
+ *
+ * Return:
+ *	0  - Success
+ *  BIT_0 - error
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_inquiry(scsi_qla_host_t *ha,
+    fc_port_t *fcport, uint16_t lun, inq_cmd_rsp_t *inq, dma_addr_t inq_dma)
+{
+	int rval;
+	uint16_t retries;
+	uint16_t comp_status;
+	uint16_t scsi_status;
+
+	rval = QLA_FUNCTION_FAILED;
+
+	for (retries = 4; retries; retries--) {
+		memset(inq, 0, sizeof(inq_cmd_rsp_t));
+		inq->p.cmd.entry_type = COMMAND_A64_TYPE;
+		inq->p.cmd.entry_count = 1;
+		inq->p.cmd.lun = cpu_to_le16(lun);
+#if defined(EXTENDED_IDS)
+		inq->p.cmd.target = cpu_to_le16(fcport->loop_id);
+#else
+		inq->p.cmd.target = (uint8_t)fcport->loop_id;
+#endif
+		inq->p.cmd.control_flags =
+		    __constant_cpu_to_le16(CF_READ | CF_SIMPLE_TAG);
+		inq->p.cmd.scsi_cdb[0] = INQUIRY;
+		inq->p.cmd.scsi_cdb[4] = INQ_DATA_SIZE;
+		inq->p.cmd.dseg_count = __constant_cpu_to_le16(1);
+		inq->p.cmd.timeout = __constant_cpu_to_le16(10);
+		inq->p.cmd.byte_count =
+		    __constant_cpu_to_le32(INQ_DATA_SIZE);
+		inq->p.cmd.dseg_0_address[0] = cpu_to_le32(
+		    LSD(inq_dma + sizeof(sts_entry_t)));
+		inq->p.cmd.dseg_0_address[1] = cpu_to_le32(
+		    MSD(inq_dma + sizeof(sts_entry_t)));
+		inq->p.cmd.dseg_0_length =
+		    __constant_cpu_to_le32(INQ_DATA_SIZE);
+
+		DEBUG5(printk("scsi(%ld): Lun Inquiry - fcport=%p,"
+		    " lun (%d)\n",
+		    ha->host_no, fcport, lun));
+
+		rval = qla2x00_issue_iocb(ha, inq, inq_dma,
+		    sizeof(inq_cmd_rsp_t));
+
+		comp_status = le16_to_cpu(inq->p.rsp.comp_status);
+		scsi_status = le16_to_cpu(inq->p.rsp.scsi_status);
+
+		DEBUG5(printk("scsi(%ld): lun (%d) inquiry - "
+		    "inq[0]= 0x%x, comp status 0x%x, scsi status 0x%x, "
+		    "rval=%d\n",
+		    ha->host_no, lun, inq->inq[0], comp_status, scsi_status,
+		    rval));
+
+		if (rval != QLA_SUCCESS || comp_status != CS_COMPLETE ||
+		    scsi_status & SS_CHECK_CONDITION) {
+
+			DEBUG(printk("scsi(%ld): INQ failed to issue iocb! "
+			    "fcport = %p rval = %x cs = %x ss = %x\n",
+			    ha->host_no, fcport, rval, comp_status,
+			    scsi_status));
+
+			if (rval == QLA_SUCCESS)
+				rval = QLA_FUNCTION_FAILED;
+
+			if (scsi_status & SS_CHECK_CONDITION) {
+				DEBUG2(printk("scsi(%ld): INQ "
+				    "SS_CHECK_CONDITION Sense Data "
+				    "%02x %02x %02x %02x %02x %02x %02x %02x\n",
+				    ha->host_no,
+				    inq->p.rsp.req_sense_data[0],
+				    inq->p.rsp.req_sense_data[1],
+				    inq->p.rsp.req_sense_data[2],
+				    inq->p.rsp.req_sense_data[3],
+				    inq->p.rsp.req_sense_data[4],
+				    inq->p.rsp.req_sense_data[5],
+				    inq->p.rsp.req_sense_data[6],
+				    inq->p.rsp.req_sense_data[7]));
+			}
+
+			/* Device underrun drop LUN. */
+			if (comp_status == CS_DATA_UNDERRUN &&
+			    scsi_status & SS_RESIDUAL_UNDER) {
+				break;
+			}
+		} else {
+			break;
+		}
+	}
+
+	return (rval);
+}
+
+
+/*
+ * qla2x00_configure_fabric
+ *      Setup SNS devices with loop ID's.
+ *
+ * Input:
+ *      ha = adapter block pointer.
+ *
+ * Returns:
+ *      0 = success.
+ *      BIT_0 = error
+ */
+static int
+qla2x00_configure_fabric(scsi_qla_host_t *ha)
+{
+	int	rval;
+	fc_port_t	*fcport, *fcptemp;
+	uint16_t	next_loopid;
+	LIST_HEAD(new_fcports);
+
+	/* If FL port exists, then SNS is present */
+	rval = qla2x00_get_port_name(ha, SNS_FL_PORT, NULL, 0);
+	if (rval != QLA_SUCCESS) {
+		DEBUG2(printk("scsi(%ld): MBC_GET_PORT_NAME Failed, No FL "
+		    "Port\n", ha->host_no));
+
+		ha->device_flags &= ~SWITCH_FOUND;
+		return (QLA_SUCCESS);
+	}
+
+	/* Mark devices that need re-synchronization. */
+	qla2x00_device_resync(ha);
+	do {
+		if (test_and_clear_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags)) {
+			if (qla2x00_rft_id(ha)) {
+				/* EMPTY */
+				DEBUG2(printk("scsi(%ld): Register FC-4 "
+				    "TYPE failed.\n", ha->host_no));
+			}
+			if (qla2x00_rff_id(ha)) {
+				/* EMPTY */
+				DEBUG2(printk("scsi(%ld): Register FC-4 "
+				    "Features failed.\n", ha->host_no));
+			}
+			if (qla2x00_rnn_id(ha)) {
+				/* EMPTY */
+				DEBUG2(printk("scsi(%ld): Register Node Name "
+				    "failed.\n", ha->host_no));
+			} else if (qla2x00_rsnn_nn(ha)) {
+				/* EMPTY */
+				DEBUG2(printk("scsi(%ld): Register Symbolic "
+				    "Node Name failed.\n", ha->host_no));
+			}
+		}
+
+		rval = qla2x00_find_all_fabric_devs(ha, &new_fcports);
+		if (rval != QLA_SUCCESS)
+			break;
+
+		/*
+		 * Logout all previous fabric devices marked lost, except
+		 * tape devices.
+		 */
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
+				break;
+
+			if ((fcport->flags & FCF_FABRIC_DEVICE) == 0)
+				continue;
+
+			if (atomic_read(&fcport->state) == FCS_DEVICE_LOST) {
+				atomic_set(&fcport->state, FCS_LOGIN_RETRY);
+				if (fcport->loop_id != FC_NO_LOOP_ID &&
+				    (fcport->flags & FCF_TAPE_PRESENT) == 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;
+				}
+			}
+		}
+
+		/* Starting free loop ID. */
+		next_loopid = ha->min_external_loopid;
+
+		/*
+		 * Scan through our port list and login entries that need to be
+		 * logged in.
+		 */
+		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 ((fcport->flags & FCF_FABRIC_DEVICE) == 0 ||
+			    atomic_read(&fcport->state) != FCS_LOGIN_NEEDED)
+				continue;
+
+			if (fcport->loop_id == FC_NO_LOOP_ID) {
+				fcport->loop_id = next_loopid;
+				rval = qla2x00_find_new_loop_id(ha, fcport);
+				if (rval != QLA_SUCCESS) {
+					/* Ran out of IDs to use */
+					break;
+				}
+			}
+
+			/* Login and update database */
+			qla2x00_fabric_dev_login(ha, fcport, &next_loopid);
+		}
+
+		/* Exit if out of loop IDs. */
+		if (rval != QLA_SUCCESS) {
+			break;
+		}
+
+		/*
+		 * Login and add the new devices to our port list.
+		 */
+		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;
+
+			/* Find a new loop ID to use. */
+			fcport->loop_id = next_loopid;
+			rval = qla2x00_find_new_loop_id(ha, fcport);
+			if (rval != QLA_SUCCESS) {
+				/* Ran out of IDs to use */
+				break;
+			}
+
+			/* Login and update database */
+			qla2x00_fabric_dev_login(ha, fcport, &next_loopid);
+
+			/* Remove device from the new list and add it to DB */
+			list_del(&fcport->list);
+			list_add_tail(&fcport->list, &ha->fcports);
+		}
+	} while (0);
+
+	/* 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("scsi(%ld): Configure fabric error exit: "
+		    "rval=%d\n", ha->host_no, rval));
+	}
+
+	return(rval);
+}
+
+
+/*
+ * qla2x00_find_all_fabric_devs
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	dev = database device entry pointer.
+ *
+ * Returns:
+ *	0 = success.
+ *	BIT_0 = error.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_find_all_fabric_devs(scsi_qla_host_t *ha, struct list_head *new_fcports)
+{
+	int		rval;
+	uint16_t	loop_id;
+	fc_port_t	*fcport;
+	fc_port_t	dev;
+	int		found;
+
+	sw_info_t	*swl;
+	sw_info_t	swl_entry;
+	int		swl_idx;
+	int		first_dev, last_dev;
+	port_id_t	wrap;
+	int		ip_dev;
+
+	rval = QLA_SUCCESS;
+
+	/* Try GID_PT to get device list, else GAN. */
+	swl = kmalloc(sizeof(sw_info_t) * MAX_FIBRE_DEVICES, GFP_ATOMIC);
+	if (swl == NULL) {
+		/*EMPTY*/
+		DEBUG2(printk("scsi(%ld): GID_PT allocations failed, fallback "
+		    "on GAN\n", ha->host_no));
+	} else if (qla2x00_gid_pt(ha, swl) != QLA_SUCCESS) {
+		kfree(swl);
+		swl = NULL;
+	} else if (qla2x00_gpn_id(ha, swl) != QLA_SUCCESS) {
+		kfree(swl);
+		swl = NULL;
+	} else if (qla2x00_gnn_id(ha, swl) != QLA_SUCCESS) {
+		kfree(swl);
+		swl = NULL;
+	}
+	swl_idx = 0;
+
+	/* Setup device template structure. */
+	memset(&dev, 0, sizeof (fc_port_t));
+	dev.ha = ha;
+	dev.port_type = FCT_UNKNOWN;
+	dev.flags = FCF_FABRIC_DEVICE | FCF_RLC_SUPPORT;
+	dev.loop_id = FC_NO_LOOP_ID;
+	atomic_set(&dev.state, FCS_LOGIN_NEEDED);
+
+	/* Set start port ID scan at adapter ID. */
+	swl_entry.d_id.b24 = ha->d_id.b24;
+	first_dev = 1;
+	last_dev = 0;
+
+	/* Starting free loop ID. */
+	loop_id = ha->min_external_loopid;
+
+	for (; loop_id <= SNS_LAST_LOOP_ID; loop_id++) {
+		if (RESERVED_LOOP_ID(loop_id))
+			continue;
+
+		if (atomic_read(&ha->loop_down_timer) ||
+		    test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
+			break;
+
+		ip_dev = 0;
+		if (swl != NULL) {
+			if (last_dev) {
+				wrap.b24 = dev.d_id.b24;
+			} else {
+				dev.d_id.b24 = swl[swl_idx].d_id.b24;
+				memcpy(dev.node_name, swl[swl_idx].node_name,
+				    WWN_SIZE);
+				memcpy(dev.port_name, swl[swl_idx].port_name,
+				    WWN_SIZE);
+
+				if (swl[swl_idx].d_id.b.rsvd_1 != 0) {
+					last_dev = 1;
+				}
+				swl_idx++;
+			}
+		} else {
+			/* Send GA_NXT to the switch */
+			rval = qla2x00_ga_nxt(ha, &dev);
+			if (rval != QLA_SUCCESS) {
+				break;
+			}
+		}
+
+		/* If wrap on switch device list, exit. */
+		if (first_dev) {
+			wrap.b24 = dev.d_id.b24;
+			first_dev = 0;
+		} else if (dev.d_id.b24 == wrap.b24) {
+			DEBUG2(printk("scsi(%ld): device wrap (%02x%02x%02x)\n",
+			    ha->host_no, dev.d_id.b.domain, dev.d_id.b.area,
+			    dev.d_id.b.al_pa));
+			break;
+		}
+
+		/* Bypass if host adapter. */
+		if (dev.d_id.b24 == ha->d_id.b24)
+			continue;
+
+		/* Bypass reserved domain fields. */
+		if ((dev.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))
+			continue;
+
+		/* Locate matching device in database. */
+		found = 0;
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			if (memcmp(dev.port_name, fcport->port_name, WWN_SIZE))
+				continue;
+
+			found++;
+
+			/*
+			 * If device was not a fabric device before.
+			 */
+			if ((fcport->flags & FCF_FABRIC_DEVICE) == 0) {
+				fcport->d_id.b24 = dev.d_id.b24;
+				fcport->loop_id = FC_NO_LOOP_ID;
+				atomic_set(&fcport->state, FCS_LOGIN_NEEDED);
+				fcport->flags |= FCF_FABRIC_DEVICE;
+				fcport->flags &= ~FCF_PERSISTENT_BOUND;
+				break;
+			}
+
+			/*
+			 * If address the same and state FCS_ONLINE, nothing
+			 * changed.
+			 */
+			if (fcport->d_id.b24 == dev.d_id.b24 &&
+			    atomic_read(&fcport->state) == FCS_ONLINE) {
+				break;
+			}
+
+			/*
+			 * Port ID changed or device was marked to be updated;
+			 * Log it out if still logged in and mark it for
+			 * relogin later.
+			 */
+			if (atomic_read(&fcport->state) != FCS_NOT_SUPPORTED) {
+				fcport->d_id.b24 = dev.d_id.b24;
+				atomic_set(&fcport->state, FCS_LOGIN_NEEDED);
+				if (fcport->loop_id != FC_NO_LOOP_ID &&
+				    (fcport->flags & FCF_TAPE_PRESENT) == 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 (found)
+			continue;
+
+		/*
+		 * If device was not in the database then it is a new device.
+		 */
+		/* Add device to the new device list. */
+		fcport = kmalloc(sizeof(fc_port_t), GFP_ATOMIC);
+		if (fcport == NULL) {
+			rval = QLA_MEMORY_ALLOC_FAILED;
+		} else {
+			memcpy(fcport, &dev, sizeof(fc_port_t));
+			INIT_LIST_HEAD(&fcport->fcluns);
+
+			list_add_tail(&fcport->list, new_fcports);
+		}
+	}
+
+	if (swl)
+		kfree(swl);
+
+	if (!list_empty(new_fcports))
+		ha->device_flags |= DFLG_FABRIC_DEVICES;
+
+	return (rval);
+}
+
+/*
+ * qla2x00_find_new_loop_id
+ *	Scan through our port list and find a new usable loop ID.
+ *
+ * Input:
+ *	ha:	adapter state pointer.
+ *	dev:	port structure pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_find_new_loop_id(scsi_qla_host_t *ha, fc_port_t *dev)
+{
+	int	rval;
+	int	found;
+	fc_port_t *fcport;
+	uint16_t first_loop_id;
+
+	rval = QLA_SUCCESS;
+
+	/* Save starting loop ID. */
+	first_loop_id = dev->loop_id;
+
+	for (;;) {
+		/* Skip loop ID if already used by adapter. */
+		if (dev->loop_id == ha->loop_id) {
+			dev->loop_id++;
+		}
+
+		/* Skip reserved loop IDs. */
+		while (RESERVED_LOOP_ID(dev->loop_id)) {
+			dev->loop_id++;
+		}
+
+		/* 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;
+		}
+
+		/* 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;
+			}
+		}
+
+		/* 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 = QLA_FUNCTION_FAILED;
+			break;
+		}
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_device_resync
+ *	Marks devices in the database that needs resynchronization.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_device_resync(scsi_qla_host_t *ha) 
+{
+	uint32_t mask;
+	rscn_t dev;
+	fc_port_t *fcport;
+
+	while (ha->rscn_out_ptr != ha->rscn_in_ptr ||
+	    ha->flags.rscn_queue_overflow) {
+
+		memcpy(&dev, &ha->rscn_queue[ha->rscn_out_ptr], sizeof(rscn_t));
+
+		DEBUG(printk("scsi(%ld): device_resync: rscn_queue[%d], "
+		    "portID=%02x%02x%02x.\n",
+		    ha->host_no, ha->rscn_out_ptr,
+		    ha->rscn_queue[ha->rscn_out_ptr].d_id.b.domain,
+		    ha->rscn_queue[ha->rscn_out_ptr].d_id.b.area,
+		    ha->rscn_queue[ha->rscn_out_ptr].d_id.b.al_pa));
+
+		ha->rscn_out_ptr++;
+		if (ha->rscn_out_ptr == MAX_RSCN_COUNT)
+			ha->rscn_out_ptr = 0;
+
+		/* Queue overflow, set switch default case. */
+		if (ha->flags.rscn_queue_overflow) {
+			DEBUG(printk("scsi(%ld): device_resync: rscn "
+			    "overflow.\n", ha->host_no));
+
+			dev.format = 3;
+			ha->flags.rscn_queue_overflow = 0;
+		}
+
+		switch (dev.format) {
+		case 0:
+			mask = 0xffffff;
+			break;
+		case 1:
+			mask = 0xffff00;
+			break;
+		case 2:
+			mask = 0xff0000;
+			break;
+		default:
+			mask = 0x0;
+			dev.d_id.b24 = 0;
+			ha->rscn_out_ptr = ha->rscn_in_ptr;
+			break;
+		}
+
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			if ((fcport->flags & FCF_FABRIC_DEVICE) == 0 ||
+			    (fcport->d_id.b24 & mask) != dev.d_id.b24 ||
+			    fcport->port_type == FCT_BROADCAST)
+				continue;
+
+			if (atomic_read(&fcport->state) == FCS_ONLINE) {
+				if (dev.format != 3 ||
+				    fcport->port_type != FCT_INITIATOR) {
+					atomic_set(&fcport->state,
+					    FCS_DEVICE_LOST);
+					fcport->flags &= ~FCF_RELOGIN_NEEDED;
+				}
+			}
+			fcport->flags &= ~FCF_FARP_DONE;
+		}
+	}
+}
+
+/*
+ * 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 = QLA_SUCCESS;
+	retry = 0;
+
+	rval = qla2x00_fabric_login(ha, fcport, next_loopid);
+	if (rval == QLA_SUCCESS) {
+		rval = qla2x00_get_port_database(ha, fcport, BIT_1 | BIT_0);
+		if (rval != QLA_SUCCESS) {
+			atomic_set(&fcport->state, FCS_LOGIN_RETRY);
+			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
+ */
+int
+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] == 0x4007) {
+			/*
+			 * 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] == 0x4000) {
+			/*
+			 * 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 |= FCF_TAPE_PRESENT;
+				}
+			}
+
+			rval = QLA_SUCCESS;
+			break;
+		} else if (mb[0] == 0x4008) {
+			/*
+			 * Loop ID already used, try next loop ID.
+			 */
+			fcport->loop_id++;
+			rval = qla2x00_find_new_loop_id(ha, fcport);
+			if (rval != QLA_SUCCESS) {
+				/* Ran out of loop IDs to use */
+				break;
+			}
+		} else if (mb[0] == 0x4005) {
+			/*
+			 * Firmware possibly timed out during login. If NO
+			 * retries are left to do then the device is declared
+			 * dead.
+			 */
+			atomic_set(&fcport->state, FCS_LOGIN_RETRY);
+			*next_loopid = fcport->loop_id;
+			qla2x00_fabric_logout(ha, fcport->loop_id);
+			fcport->loop_id = FC_NO_LOOP_ID;
+
+			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));
+
+			*next_loopid = fcport->loop_id;
+			qla2x00_fabric_logout(ha, fcport->loop_id);
+			fcport->loop_id = FC_NO_LOOP_ID;
+			atomic_set(&fcport->state, FCS_DEVICE_DEAD);
+
+			rval = 1;
+			break;
+		}
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_local_device_login
+ *	Issue local device login command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = loop id of device to login to.
+ *
+ * Returns (Where's the #define!!!!):
+ *      0 - Login successfully
+ *      1 - Login failed
+ *      3 - Fatal error
+ */
+int
+qla2x00_local_device_login(scsi_qla_host_t *ha, uint16_t loop_id)
+{
+	int		rval;
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+
+	memset(mb, 0, sizeof(mb));
+	rval = qla2x00_login_local_device(ha, loop_id, mb, BIT_0);
+	if (rval == QLA_SUCCESS) {
+		/* Interrogate mailbox registers for any errors */
+		if (mb[0] == 0x4005)
+			rval = 1;
+		else if (mb[0] == 0x4006)
+			/* device not in PCB table */
+			rval = 3;
+	}
+
+	return (rval);
+}
+
+/*
+ *  qla2x00_loop_resync
+ *      Resync with fibre channel devices.
+ *
+ * Input:
+ *      ha = adapter block pointer.
+ *
+ * Returns:
+ *      0 = success
+ */
+int
+qla2x00_loop_resync(scsi_qla_host_t *ha) 
+{
+	int   rval;
+
+	rval = QLA_SUCCESS;
+
+	ha->loop_state = LOOP_UPDATE;
+	qla2x00_stats.loop_resync++;
+	clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
+	if (ha->flags.online) {
+		if (!(rval = qla2x00_fw_ready(ha))) {
+			do {
+				/* v2.19.05b6 */
+				ha->loop_state = LOOP_UPDATE;
+
+				/*
+				 * Issue marker command only when we are going
+				 * to start the I/O .
+				 */
+				ha->marker_needed = 1;
+
+				/* Remap devices on Loop. */
+				clear_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+
+				qla2x00_configure_loop(ha);
+
+			} while (!atomic_read(&ha->loop_down_timer) &&
+				!(test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) &&
+				(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)));
+		}
+		qla2x00_restart_queues(ha,TRUE);
+	}
+
+	if (test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	if (rval) {
+		DEBUG2_3(printk("%s(): **** FAILED ****\n", __func__));
+	}
+
+	return (rval);
+}
+
+/*
+ *  qla2x00_restart_queues
+ *	Restart device queues.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel/Interrupt context.
+ */
+void
+qla2x00_restart_queues(scsi_qla_host_t *ha, uint8_t flush) 
+{
+	srb_t  		*sp;
+	int		retry_q_cnt = 0;
+	int		pending_q_cnt = 0;
+	struct list_head *list, *temp;
+	unsigned long flags = 0;
+	struct list_head *hal;
+	scsi_qla_host_t *vis_ha;
+
+
+	ENTER(__func__);
+
+	clear_bit(RESTART_QUEUES_NEEDED, &ha->dpc_flags);
+
+	/*
+	 * start pending queue
+	 */
+	pending_q_cnt = ha->qthreads;
+	if (flush) {
+		spin_lock_irqsave(&ha->list_lock,flags);
+		list_for_each_safe(list, temp, &ha->pending_queue) {
+			sp = list_entry(list, srb_t, list);
+			/* 
+			 * When time expire return request back to OS as BUSY 
+			 */
+			__del_from_pending_queue(ha, sp);
+			sp->cmd->result = DID_BUS_BUSY << 16;
+			sp->cmd->host_scribble = (unsigned char *)NULL;
+			__add_to_done_queue(ha, sp);
+		}
+		spin_unlock_irqrestore(&ha->list_lock, flags);
+	} else {
+		if (!list_empty(&ha->pending_queue))
+			qla2x00_next(ha);
+	}
+
+	/*
+	 * Clear out our retry queue
+	 */
+	if (flush) {
+		spin_lock_irqsave(&ha->list_lock, flags);
+		retry_q_cnt = ha->retry_q_cnt;
+		list_for_each_safe(list, temp, &ha->retry_queue) {
+			sp = list_entry(list, srb_t, list);
+			/* when time expire return request back to OS as BUSY */
+			__del_from_retry_queue(ha, sp);
+			sp->cmd->result = DID_BUS_BUSY << 16;
+			sp->cmd->host_scribble = (unsigned char *)NULL;
+			__add_to_done_queue(ha, sp);
+		}
+		spin_unlock_irqrestore(&ha->list_lock, flags);
+
+		DEBUG2(printk("%s(%ld): callback %d commands.\n",
+				__func__,
+				ha->host_no,
+				retry_q_cnt);)
+	}
+
+	DEBUG2(printk("%s(%ld): active=%ld, retry=%d, pending=%d, "
+			"done=%ld, failover=%d, scsi retry=%d commands.\n",
+			__func__,
+			ha->host_no,
+			ha->actthreads,
+			ha->retry_q_cnt,
+			pending_q_cnt,
+			ha->done_q_cnt,
+			ha->failover_cnt,
+			ha->scsi_retry_q_cnt);)
+
+	if (ha->flags.failover_enabled) {
+		/* Try and start all visible adapters */
+		read_lock(&qla_hostlist_lock);
+		list_for_each(hal, &qla_hostlist) {
+			vis_ha = list_entry(hal, scsi_qla_host_t, list);
+
+			if (!list_empty(&vis_ha->pending_queue))
+				qla2x00_next(vis_ha);
+
+			DEBUG2(printk("host(%ld):Commands busy=%d "
+					"failed=%d\nin_recovery=%d "
+					"eh_active=%d\n ",
+					vis_ha->host_no,
+					vis_ha->host->host_busy,
+					vis_ha->host->host_failed,
+					vis_ha->host->in_recovery,
+					vis_ha->host->eh_active);)	
+		}
+		read_unlock(&qla_hostlist_lock);
+	}
+
+	if (!list_empty(&ha->done_queue))
+		qla2x00_done(ha);
+
+	LEAVE(__func__);
+}
+
+/*
+ * qla2x00_config_os
+ *	Setup OS target and LUN structures.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_config_os(scsi_qla_host_t *ha) 
+{
+	fc_port_t	*fcport;
+	fc_lun_t	*fclun;
+	os_tgt_t	*tq;
+	uint16_t	tgt;
+
+
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if ((tq = TGT_Q(ha, tgt)) == NULL)
+			continue;
+
+		tq->flags &= ~TQF_ONLINE;
+	}
+
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (atomic_read(&fcport->state) != FCS_ONLINE ||
+		    fcport->port_type == FCT_INITIATOR ||
+		    fcport->port_type == FCT_BROADCAST) {
+			fcport->os_target_id = MAX_TARGETS;
+			continue;
+		}
+
+		if (fcport->flags & FCF_FO_MASKED) {
+			continue;
+		}
+
+		/* Bind FC port to OS target number. */
+		if (qla2x00_fcport_bind(ha, fcport) == MAX_TARGETS) {
+			continue;
+		}
+
+		/* Bind FC LUN to OS LUN number. */
+		list_for_each_entry(fclun, &fcport->fcluns, list) {
+			qla2x00_fclun_bind(ha, fcport, fclun);
+		}
+	}
+}
+
+/*
+ * qla2x00_fcport_bind
+ *	Locates a target number for FC port.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	fcport = FC port structure pointer.
+ *
+ * Returns:
+ *	target number
+ *
+ * Context:
+ *	Kernel context.
+ */
+static uint16_t
+qla2x00_fcport_bind(scsi_qla_host_t *ha, fc_port_t *fcport) 
+{
+	uint16_t	tgt;
+	os_tgt_t	*tq;
+
+	/* Check for persistent binding. */
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if ((tq = TGT_Q(ha, tgt)) == NULL)
+			continue;
+
+		if (ha->binding_type == BIND_BY_PORT_ID &&
+		    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);
+			break;
+		}
+
+		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);
+			break;
+		}
+	}
+
+	/* TODO: honor the ConfigRequired flag */
+	if (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;
+			}
+		}
+	}
+
+	/* Reset target numbers incase it changed. */
+	fcport->os_target_id = tgt;
+	if (tgt != MAX_TARGETS && tq != NULL) {
+		DEBUG(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)));
+
+		fcport->tgt_queue = tq;
+		tq->fcport = fcport;
+		tq->flags |= TQF_ONLINE;
+		tq->port_down_retry_count = ha->port_down_retry_count;
+
+		if (!ha->flags.failover_enabled)
+			qla2x00_get_lun_mask_from_config(ha, fcport, tgt, 0);
+	}
+
+	if (tgt == MAX_TARGETS) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Unable to bind fcport, loop_id=%x\n",
+		    ha->host_no, fcport->loop_id);
+	}
+
+	return (tgt);
+}
+
+/*
+ * 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;
+
+	tgt = fcport->os_target_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);
+	}
+
+	/* 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 ((lq = qla2x00_lun_alloc(ha, tgt, lun)) == NULL) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Unable to bind fclun, loop_id=%x lun=%x\n",
+		    ha->host_no, fcport->loop_id, lun);
+		return (NULL);
+	}
+
+	lq->fclun = fclun;
+
+	return (lq);
+}
+
+/*
+ * qla2x00_tgt_alloc
+ *	Allocate and pre-initialize target queue.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	t = SCSI target number.
+ *
+ * Returns:
+ *	NULL = failure
+ *
+ * Context:
+ *	Kernel context.
+ */
+os_tgt_t *
+qla2x00_tgt_alloc(scsi_qla_host_t *ha, uint16_t tgt) 
+{
+	os_tgt_t	*tq;
+
+	/*
+	 * If SCSI addressing OK, allocate TGT queue and lock.
+	 */
+	if (tgt >= MAX_TARGETS) {
+		DEBUG2(printk("scsi(%ld): Unable to allocate target, invalid "
+		    "target number %d.\n", ha->host_no, tgt));
+		return (NULL);
+	}
+
+	tq = TGT_Q(ha, tgt);
+	if (tq == NULL) {
+		tq = kmalloc(sizeof(os_tgt_t), GFP_ATOMIC);
+		if (tq != NULL) {
+			DEBUG(printk("scsi(%ld): Alloc Target %d @ %p\n",
+			    ha->host_no, tgt, tq));
+
+			memset(tq, 0, sizeof(os_tgt_t));
+			tq->ha = ha;
+
+			TGT_Q(ha, tgt) = tq;
+		}
+	}
+	if (tq != NULL) {
+		tq->port_down_retry_count = ha->port_down_retry_count;
+	} else {
+		printk(KERN_WARNING
+		    "scsi(%ld): Unable to allocate target.\n", ha->host_no);
+		ha->mem_err++;
+	}
+
+	return (tq);
+}
+
+/*
+ * qla2x00_tgt_free
+ *	Frees target and LUN queues.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	t = SCSI target number.
+ *
+ * Context:
+ *	Kernel context.
+ */
+void
+qla2x00_tgt_free(scsi_qla_host_t *ha, uint16_t tgt) 
+{
+	os_tgt_t	*tq;
+	uint16_t	lun;
+
+	/*
+	 * If SCSI addressing OK, allocate TGT queue and lock.
+	 */
+	if (tgt >= MAX_TARGETS) {
+		DEBUG2(printk("scsi(%ld): Unable to de-allocate target, "
+		    "invalid target number %d.\n", ha->host_no, tgt));
+
+		return;
+	}
+
+	tq = TGT_Q(ha, tgt);
+	if (tq != NULL) {
+		TGT_Q(ha, tgt) = NULL;
+
+		/* Free LUN structures. */
+		for (lun = 0; lun < MAX_LUNS; lun++)
+			qla2x00_lun_free(ha, tgt, lun);
+
+		kfree(tq);
+	}
+
+	return;
+}
+
+/*
+ * qla2x00_lun_alloc
+ *	Allocate and initialize LUN queue.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	t = SCSI target number.
+ *	l = LUN number.
+ *
+ * Returns:
+ *	NULL = failure
+ *
+ * Context:
+ *	Kernel context.
+ */
+os_lun_t *
+qla2x00_lun_alloc(scsi_qla_host_t *ha, uint16_t tgt, uint16_t lun) 
+{
+	os_lun_t	*lq;
+
+	/*
+	 * If SCSI addressing OK, allocate LUN queue.
+	 */
+	if (tgt >= MAX_TARGETS || lun >= MAX_LUNS || TGT_Q(ha, tgt) == NULL) {
+		DEBUG2(printk("scsi(%ld): Unable to allocate lun, invalid "
+		    "parameter.\n", ha->host_no));
+
+		return (NULL);
+	}
+
+	lq = LUN_Q(ha, tgt, lun);
+	if (lq == NULL) {
+		lq = kmalloc(sizeof(os_lun_t), GFP_ATOMIC);
+		if (lq != NULL) {
+			DEBUG(printk("scsi(%ld): Alloc Lun %d @ tgt %d.\n",
+			    ha->host_no, lun, tgt));
+
+			memset(lq, 0, sizeof (os_lun_t));
+			LUN_Q(ha, tgt, lun) = lq;
+
+			/*
+			 * The following lun queue initialization code
+			 * must be duplicated in alloc_ioctl_mem function
+			 * for ioctl_lq.
+			 */
+			lq->q_state = LUN_STATE_READY;
+			spin_lock_init(&lq->q_lock);
+		}
+	}
+
+	if (lq == NULL) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Unable to allocate lun.\n", ha->host_no);
+	}
+
+	return (lq);
+}
+
+/*
+ * qla2x00_lun_free
+ *	Frees LUN queue.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	t = SCSI target number.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_lun_free(scsi_qla_host_t *ha, uint16_t tgt, uint16_t lun) 
+{
+	os_lun_t	*lq;
+
+	/*
+	 * If SCSI addressing OK, allocate TGT queue and lock.
+	 */
+	if (tgt >= MAX_TARGETS || lun >= MAX_LUNS) {
+		DEBUG2(printk("scsi(%ld): Unable to deallocate lun, invalid "
+		    "parameter.\n", ha->host_no));
+
+		return;
+	}
+
+	if (TGT_Q(ha, tgt) != NULL && (lq = LUN_Q(ha, tgt, lun)) != NULL) {
+		LUN_Q(ha, tgt, lun) = NULL;
+		kfree(lq);
+	}
+
+	return;
+}
+
+
+/*
+ * qla2x00_get_lun_mask_from_config
+ *      Get lun mask from the configuration parameters.
+ *      Bit order is little endian.
+ *
+ * Input:
+ * ha  -- Host adapter
+ * tgt  -- target/device number
+ * port -- pointer to port
+ */
+static void
+qla2x00_get_lun_mask_from_config(scsi_qla_host_t *ha,
+    fc_port_t *fcport, uint16_t tgt, uint16_t dev_no) 
+{
+	char		propbuf[60]; /* size of search string */
+	int		rval, lun, bit;
+	lun_bit_mask_t	lun_mask, *mask_ptr = &lun_mask;
+
+	/* Get "target-N-device-N-lun-mask" as a 256 bit lun_mask*/
+	sprintf(propbuf, "scsi-qla%ld-tgt-%d-di-%d-lun-disabled",
+	    ha->instance, tgt, dev_no);
+
+	rval = qla2x00_get_prop_xstr(ha, propbuf,
+	    (uint8_t *)&lun_mask, sizeof(lun_bit_mask_t));
+	if (rval == sizeof(lun_bit_mask_t)) {
+		memset(&fcport->lun_mask, 0, sizeof(lun_bit_mask_t));
+		for (lun = 8 * sizeof(lun_bit_mask_t) - 1, bit = 0;
+		    lun >= 0; lun--, bit++) {
+			if (EXT_IS_LUN_BIT_SET(mask_ptr, lun))
+				EXT_SET_LUN_BIT((&fcport->lun_mask), bit);
+		}
+
+		DEBUG3(printk("scsi(%ld): returning lun mask for fcport "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x:\n",
+		    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]));
+		DEBUG3(qla2x00_dump_buffer((uint8_t *)&fcport->lun_mask,
+		    sizeof(lun_bit_mask_t));)
+	}
+}
+
+/*
+ * qla2x00_bstr_to_hex
+ *	Convert hex byte string to number.
+ *
+ * Input:
+ *	s = byte string pointer.
+ *	bp = byte pointer for number.
+ *	size = number of bytes.
+ *
+ * Context:
+ *	Kernel/Interrupt context.
+ */
+static int
+qla2x00_bstr_to_hex(char *s, uint8_t *bp, int size) 
+{
+	int		cnt;
+	uint8_t		n;
+
+	for (cnt = 0; *s != '\0' && cnt / 2 < size; cnt++) {
+		if (*s >= 'A' && *s <= 'F') {
+			n = (*s++ - 'A') + 10;
+		} else if (*s >= 'a' && *s <= 'f') {
+			n = (*s++ - 'a') + 10;
+		} else if (*s >= '0' && *s <= '9') {
+			n = *s++ - '0';
+		} else {
+			cnt = 0;
+			break;
+		}
+
+		if (cnt & BIT_0)
+			*bp++ |= n;
+		else
+			*bp = n << 4;
+	}
+
+	/* fixme(dg) Need to swap data little endian */
+
+	return (cnt / 2);
+}
+
+/*
+ * qla2x00_get_prop_xstr
+ *      Get a string property value for the specified property name and
+ *      convert from the property string found in the configuration file,
+ *      which are ASCII characters representing nibbles, 2 characters represent
+ *      the hexdecimal value for a byte in the byte array.
+ *      The byte array is initialized to zero.
+ *      The resulting converted value is in big endian format (MSB at byte0).
+ *
+ * Input:
+ *      ha = adapter state pointer.
+ *      propname = property name pointer.
+ *      propval  = pointer where to store converted property val.
+ *      size = max or expected size of 'propval' array.
+ *
+ * Returns:
+ *      0 = empty value string or invalid character in string
+ *      >0 = count of characters converted
+ *      -1 = property not found
+ *
+ * Context:
+ *      Kernel context.
+ */
+int
+qla2x00_get_prop_xstr(scsi_qla_host_t *ha, 
+		char *propname, uint8_t *propval, int size) 
+{
+	char		*propstr;
+	int		rval = -1;
+	static char	buf[LINESIZE];
+
+	/* Get the requested property string */
+	rval = qla2x00_find_propname(ha, propname, buf, ha->cmdline, size*2);
+	DEBUG3(printk("%s(): Ret rval from find propname = %d\n",
+			__func__,
+			rval);)
+
+	propstr = &buf[0];
+	if (*propstr == '=')
+		propstr++;   /* ignore equal sign */
+
+	if (rval == 0) {  /* not found */
+		LEAVE(__func__);
+		return (-1);
+	}
+
+	rval = qla2x00_bstr_to_hex(propstr, (uint8_t *)propval, size);
+	if (rval == 0) {
+		/* Invalid character in value string */
+		printk(KERN_INFO
+			"%s(): %s Invalid hex string for property\n",
+			__func__,
+			propname);
+		printk(KERN_INFO
+			" Invalid string - %s\n", 
+			propstr);
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_find_propname
+ *	Get property in database.
+ *
+ * Input:
+ *	ha = adapter structure pointer.
+ *      db = pointer to database
+ *      propstr = pointer to dest array for string
+ *	propname = name of property to search for.
+ *	siz = size of property
+ *
+ * Returns:
+ *	0 = no property
+ *      size = index of property
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_find_propname(scsi_qla_host_t *ha, 
+			char *propname, char *propstr, 
+			char *db, int siz) 
+{
+	char	*cp;
+
+	/* find the specified string */
+	if (db) {
+		/* find the property name */
+		if ((cp = strstr(db,propname)) != NULL) {
+			while ((*cp)  && *cp != '=')
+				cp++;
+			if (*cp) {
+				strncpy(propstr, cp, siz+1);
+				propstr[siz+1] = '\0';
+				DEBUG(printk("qla2x00_find_propname: found "
+						"property = {%s}\n",
+						propstr);)
+				return (siz);   /* match */
+			}
+		}
+	}
+
+	return (0);
+}
+
+
+/*
+ * qla2x00_get_prop_16chars
+ *	Get an 8-byte property value for the specified property name by
+ *      converting from the property string found in the configuration file.
+ *      The resulting converted value is in big endian format (MSB at byte0).
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	propname = property name pointer.
+ *	propval  = pointer to location for the converted property val.
+ *      db = pointer to database
+ *
+ * Returns:
+ *	0 = value returned successfully.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_prop_16chars(scsi_qla_host_t *ha,
+				char *propname, char *propval, char *db) 
+{
+	char		*propstr;
+	int		i, k;
+	int		rval;
+	uint8_t		nval;
+	uint8_t		*pchar;
+	uint8_t		*ret_byte;
+	uint8_t		*tmp_byte;
+	uint8_t		*retval = (uint8_t*)propval;
+	uint8_t		tmpval[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+	uint16_t	max_byte_cnt = 8; /* 16 chars = 8 bytes */
+	uint16_t	max_strlen = 16;
+	static char	buf[LINESIZE];
+
+	rval = qla2x00_find_propname(ha, propname, buf, db, max_strlen);
+
+	propstr = &buf[0];
+	if (*propstr == '=')
+		propstr++;   /* ignore equal sign */
+
+	if (rval == 0) {
+		return (1);
+	}
+
+	/* Convert string to numbers. */
+	pchar = (uint8_t *)propstr;
+	tmp_byte = (uint8_t *)tmpval;
+
+	rval = 0;
+	for (i = 0; i < max_strlen; i++) {
+		/*
+		 * Check for invalid character, two at a time,
+		 * then convert them starting with first byte.
+		 */
+
+		if ((pchar[i] >= '0') && (pchar[i] <= '9')) {
+			nval = pchar[i] - '0';
+		} else if ((pchar[i] >= 'A') && (pchar[i] <= 'F')) {
+			nval = pchar[i] - 'A' + 10;
+		} else if ((pchar[i] >= 'a') && (pchar[i] <= 'f')) {
+			nval = pchar[i] - 'a' + 10;
+		} else {
+			/* invalid character */
+			rval = 1;
+			break;
+		}
+
+		if (i & BIT_0) {
+			*tmp_byte = *tmp_byte | nval;
+			tmp_byte++;
+		} else {
+			*tmp_byte = *tmp_byte | nval << 4;
+		}
+	}
+
+	if (rval != 0) {
+		/* Encountered invalid character. */
+		return (rval);
+	}
+
+	/* Copy over the converted value. */
+	ret_byte = retval;
+	tmp_byte = tmpval;
+
+	i = max_byte_cnt;
+	k = 0;
+	while (i--) {
+		*ret_byte++ = *tmp_byte++;
+	}
+
+	/* big endian retval[0]; */
+	return (0);
+}
+
+/*
+* qla2x00_get_properties
+*	Find all properties for the specified adapeter in
+*      command line.
+*
+* Input:
+*	ha = adapter block pointer.
+*	cmdline = pointer to command line string
+*
+* Context:
+*	Kernel context.
+*/
+static void
+qla2x00_get_properties(scsi_qla_host_t *ha, char *cmdline) 
+{
+	int	rval;
+	static char propbuf[LINESIZE];
+	uint8_t fc_name[8];
+
+	/* Adapter FC node names. */
+	sprintf(propbuf, "scsi-qla%d-adapter-node", (int) ha->instance);
+	rval = qla2x00_get_prop_16chars(ha, propbuf, fc_name, cmdline);
+	if (rval == QLA_SUCCESS)
+		memcpy(ha->init_cb->node_name, fc_name, WWN_SIZE);
+
+	/* DG 04/07 check portname of adapter */
+	sprintf(propbuf, "scsi-qla%d-adapter-port", (int)ha->instance);
+	rval = qla2x00_get_prop_16chars(ha, propbuf, fc_name, cmdline);
+	if (rval == QLA_SUCCESS &&
+	    memcmp(ha->init_cb->port_name, fc_name, WWN_SIZE)) {
+		/*
+		 * Adapter port name is WWN, and cannot be changed.
+		 * Inform users of the mismatch, then just continue driver
+		 * loading using the original adapter port name in NVRAM.
+		 */
+		printk(KERN_WARNING
+		    "scsi(%ld): Found mismatch in adapter port names.\n",
+		    ha->host_no);
+		printk(KERN_INFO
+		    "       qla%ld port name found in NVRAM -> "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    ha->instance,
+		    ha->init_cb->port_name[0],
+		    ha->init_cb->port_name[1],
+		    ha->init_cb->port_name[2],
+		    ha->init_cb->port_name[3],
+		    ha->init_cb->port_name[4],
+		    ha->init_cb->port_name[5],
+		    ha->init_cb->port_name[6],
+		    ha->init_cb->port_name[7]);
+		printk(KERN_INFO
+		    "      qla%ld port name found on command line -> "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x\n",
+		    ha->instance,
+		    fc_name[0], fc_name[1], fc_name[2], fc_name[3],
+		    fc_name[4], fc_name[5], fc_name[6], fc_name[7]);
+		printk(KERN_INFO
+		    "      Using port name from NVRAM.\n");
+	}
+
+	qla2x00_cfg_persistent_binding(ha);
+}
+
+/*
+ * qla2x00_cfg_persistent_binding
+ *	Get driver configuration file target persistent binding entries.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_cfg_persistent_binding(scsi_qla_host_t *ha) 
+{
+	int		rval;
+	static char	propbuf[LINESIZE];
+	char		*cmdline = ha->cmdline;
+	uint16_t	tgt;
+	port_id_t	d_id;
+	uint8_t		portid[3];
+	uint8_t		port_name[8];
+
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if (ha->binding_type == BIND_BY_PORT_ID) {
+			sprintf(propbuf, "scsi-qla%d-tgt-%d-di-0-pid",
+			    (int)ha->instance, tgt);
+			rval = qla2x00_get_prop_xstr(ha,
+			    propbuf, portid, sizeof(portid));
+			if (rval != sizeof(portid))
+				continue;
+			
+			memset(&d_id, 0, sizeof(port_id_t));
+			d_id.r.d_id[0] = portid[2];
+			d_id.r.d_id[1] = portid[1];
+			d_id.r.d_id[2] = portid[0];
+		} else {
+			sprintf(propbuf, "scsi-qla%d-tgt-%d-di-0-port",
+			    (int)ha->instance, tgt);
+			rval = qla2x00_get_prop_16chars(ha,
+			    propbuf, port_name, cmdline);
+			if (rval != QLA_SUCCESS)
+				continue;
+
+			/* Fallthru since port_name already populated */
+		}
+
+		/*
+		 * Create target context for device.
+		 */
+		if (ha->binding_type == BIND_BY_PORT_ID) {
+			qla2x00_persistent_bind(ha, NULL, NULL, &d_id, tgt);
+		} else {
+			qla2x00_persistent_bind(ha, NULL, port_name, NULL, tgt);
+		}
+	}
+}
+
+/*
+ * qla2x00_persistent_bind
+ *	Allocates target and fcport.
+ *
+ * Input:
+ *	ha:		adapter state pointer.
+ *	node_name:	node name pointer.
+ *	port_name:	port name pointer.
+ *	d_id:		port ID pointer.
+ *	tgt:		OS target number.
+ *
+ * Returns:
+ *	success = target queue pointer.
+ *	failure = NULL.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static os_tgt_t *
+qla2x00_persistent_bind(scsi_qla_host_t *ha, uint8_t *node_name,
+    uint8_t *port_name, port_id_t *d_id, uint16_t tgt)
+{
+	os_tgt_t	*tq;
+	uint16_t	tgt2;
+
+	/*
+	 * Check for duplicates.
+	 */
+	for (tgt2 = 0; tgt2 < MAX_TARGETS; tgt2++) {
+		if ((tq = TGT_Q(ha, tgt2)) == NULL) {
+			continue;
+		}
+
+		if (ha->binding_type == BIND_BY_PORT_ID) {
+			if (tq->d_id.b24 != d_id->b24) {
+				continue;
+			}
+		} else if (memcmp(tq->port_name, port_name, WWN_SIZE) != 0) {
+			continue;
+		}
+
+		printk(KERN_WARNING
+		    "scsi(%ld): Duplicate persistent bindings found for "
+		    "WWPN: %02x%02x%02x%02x%02x%02x%02x%02x.\n", 
+		    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]);
+
+		return (tq);
+	}
+
+	tq = qla2x00_tgt_alloc(ha, tgt);
+	if (tq == NULL) {
+		return (NULL);
+	}
+
+	if (node_name != NULL) {
+		memcpy(tq->node_name, node_name, WWN_SIZE);
+	}
+	if (port_name != NULL) {
+		memcpy(tq->port_name, port_name, WWN_SIZE);
+	}
+	if (d_id != NULL) {
+		tq->d_id.b24 = d_id->b24;
+	}
+
+	return (tq);
+}
+
+/*
+*  qla2x00_abort_isp
+*      Resets ISP and aborts all outstanding commands.
+*
+* Input:
+*      ha           = adapter block pointer.
+*
+* Returns:
+*      0 = success
+*/
+int
+qla2x00_abort_isp(scsi_qla_host_t *ha)
+{
+	unsigned long flags = 0;
+	uint16_t       cnt;
+	srb_t          *sp;
+	uint8_t        status = 0;
+
+	ENTER("qla2x00_abort_isp");
+
+	if (ha->flags.online) {
+		ha->flags.online = FALSE;
+		clear_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+		clear_bit(COMMAND_WAIT_ACTIVE, &ha->dpc_flags);
+		clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		qla2x00_stats.ispAbort++;
+		ha->total_isp_aborts++;  /* used by ioctl */
+		ha->sns_retry_cnt = 0;
+
+		printk(KERN_INFO
+		    "scsi(%ld): Performing ISP error recovery - ha= %p.\n",
+		    ha->host_no, ha);
+		qla2x00_reset_chip(ha);
+
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;
+			atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+#if defined(FC_IP_SUPPORT)
+		/* Return all IP send packets */
+		for (cnt = 0; cnt < MAX_SEND_PACKETS; cnt++) {
+			if (ha->active_scb_q[cnt] != NULL) {
+				/* Via IP callback */
+				(*ha->send_completion_routine)
+					(ha->active_scb_q[cnt]);
+
+				ha->active_scb_q[cnt] = NULL;
+			}
+		}
+#endif
+
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+		/* Requeue all commands in outstanding command list. */
+		for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
+			sp = ha->outstanding_cmds[cnt];
+			if (sp) {
+				ha->outstanding_cmds[cnt] = 0;
+				if( ha->actthreads )
+					ha->actthreads--;
+				sp->lun_queue->out_cnt--;
+				sp->flags = 0;
+
+				/*
+				 * Set the cmd host_byte status depending on
+				 * whether the scsi_error_handler is
+				 * active or not.
+ 				 */
+				if (ha->host->eh_active != EH_ACTIVE) {
+					sp->cmd->result = DID_BUS_BUSY << 16;
+				} else {
+					sp->cmd->result = DID_RESET << 16;
+				}
+				sp->cmd->host_scribble = (unsigned char *)NULL;
+				add_to_done_queue(ha, sp);
+			}
+		}
+
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		qla2x00_nvram_config(ha);
+
+		if (!qla2x00_restart_isp(ha)) {
+			clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+
+			if (!atomic_read(&ha->loop_down_timer)) {
+				/*
+				 * Issue marker command only when we are going
+				 * to start the I/O .
+				 */
+				ha->marker_needed = 1;
+			}
+
+			ha->flags.online = TRUE;
+
+#if defined(FC_IP_SUPPORT)
+			/* Reenable IP support */
+			if (ha->flags.enable_ip) {
+				set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
+				qla2x00_ip_initialize(ha);
+			}
+#endif
+			/* Enable ISP interrupts. */
+			qla2x00_enable_intrs(ha);
+
+			/* v2.19.5b6 Return all commands */
+			qla2x00_abort_queues(ha, TRUE);
+
+			/* Restart queues that may have been stopped. */
+			qla2x00_restart_queues(ha,TRUE);
+			ha->isp_abort_cnt = 0; 
+			clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
+		} else {	/* failed the ISP abort */
+			ha->flags.online = TRUE;
+			if( test_bit(ISP_ABORT_RETRY, &ha->dpc_flags) ){
+				if( ha->isp_abort_cnt == 0 ){
+					printk(KERN_WARNING
+					"qla2x00(%ld): ISP error recovery failed - "
+					"board disabled\n",ha->host_no);
+					/* 
+					 * The next call disables the board
+					 * completely.
+					 */
+					qla2x00_reset_adapter(ha);
+					qla2x00_abort_queues(ha, FALSE);
+					ha->flags.online = FALSE;
+					clear_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
+					status = 0;
+				} else { /* schedule another ISP abort */
+					ha->isp_abort_cnt--;
+					DEBUG(printk("qla%ld: ISP abort - retry remainning %d\n",
+					ha->host_no, 
+					ha->isp_abort_cnt);)
+					status = 1;
+				}
+			} else {
+				ha->isp_abort_cnt = MAX_RETRIES_OF_ISP_ABORT;
+				DEBUG(printk( "qla2x00(%ld): ISP error recovery - "
+				"retrying (%d) more times\n",ha->host_no,
+				ha->isp_abort_cnt);)
+				set_bit(ISP_ABORT_RETRY, &ha->dpc_flags);
+				status = 1;
+			}
+		}
+		       
+	}
+
+	if (status) {
+		printk(KERN_INFO
+			"qla2x00_abort_isp(%ld): **** FAILED ****\n",
+			ha->host_no);
+	} else {
+		DEBUG(printk(KERN_INFO
+				"qla2x00_abort_isp(%ld): exiting.\n",
+				ha->host_no);)
+	}
+
+	return(status);
+}
+
+/*
+*  qla2x00_restart_isp
+*      restarts the ISP after a reset
+*
+* Input:
+*      ha = adapter block pointer.
+*
+* Returns:
+*      0 = success
+*/
+static int
+qla2x00_restart_isp(scsi_qla_host_t *ha)
+{
+	uint8_t		status = 0;
+#if defined(ISP2300)
+	device_reg_t	*reg;
+	unsigned long	flags = 0;
+#endif
+
+	/* If firmware needs to be loaded */
+	if (qla2x00_isp_firmware(ha)) {
+		ha->flags.online = FALSE;
+		if (!(status = qla2x00_chip_diag(ha))) {
+#if defined(ISP2300)
+			reg = ha->iobase;
+			spin_lock_irqsave(&ha->hardware_lock, flags);
+			/* Disable SRAM, Instruction RAM and GP RAM parity. */
+			WRT_REG_WORD(&reg->hccr, (HCCR_ENABLE_PARITY + 0x0));
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+#endif
+			status = qla2x00_setup_chip(ha);
+#if defined(ISP2300)
+			spin_lock_irqsave(&ha->hardware_lock, flags);
+ 
+ 			/* Enable proper parity */
+ 			if (ha->pdev->device == QLA2312_DEVICE_ID ||
+			    ha->pdev->device == QLA2322_DEVICE_ID)
+ 				/* SRAM, Instruction RAM and GP RAM parity */
+ 				WRT_REG_WORD(&reg->hccr,
+ 				    (HCCR_ENABLE_PARITY + 0x7));
+ 			else
+ 				/* SRAM parity */
+ 				WRT_REG_WORD(&reg->hccr,
+ 				    (HCCR_ENABLE_PARITY + 0x1));
+
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+#endif
+		}
+	}
+	if (!status && !(status = qla2x00_init_rings(ha))) {
+		clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+		clear_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+		if (!(status = qla2x00_fw_ready(ha))) {
+			DEBUG(printk("%s(): Start configure loop, "
+					"status = %d\n",
+					__func__,
+					status);)
+			ha->flags.online = TRUE;
+			do {
+				clear_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+				qla2x00_configure_loop(ha);
+			} while (!atomic_read(&ha->loop_down_timer) &&
+				!(test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) &&
+				(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)));
+		}
+
+		/* if no cable then assume it's good */
+		if ((ha->device_flags & DFLG_NO_CABLE)) 
+			status = 0;
+
+		DEBUG(printk("%s(): Configure loop done, status = 0x%x\n",
+				__func__,
+				status);)
+	}
+	return (status);
+}
+
+/*
+* qla2x00_reset_adapter
+*      Reset adapter.
+*
+* Input:
+*      ha = adapter block pointer.
+*/
+static void
+qla2x00_reset_adapter(scsi_qla_host_t *ha)
+{
+	unsigned long flags = 0;
+	device_reg_t *reg = ha->iobase;
+
+	ENTER(__func__);
+
+	ha->flags.online = FALSE;
+	qla2x00_disable_intrs(ha);
+	/* Reset RISC processor. */
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
+	WRT_REG_WORD(&reg->hccr, HCCR_RELEASE_RISC);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	LEAVE(__func__);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_inline.h 350-qlogic/drivers/scsi/qla2xxx/qla_inline.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_inline.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_inline.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,298 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+
+
+static __inline__ uint16_t qla2x00_debounce_register(volatile uint16_t *);
+/*
+ * qla2x00_debounce_register
+ *      Debounce register.
+ *
+ * Input:
+ *      port = register address.
+ *
+ * Returns:
+ *      register value.
+ */
+static __inline__ uint16_t
+qla2x00_debounce_register(volatile uint16_t *addr) 
+{
+	volatile uint16_t first;
+	volatile uint16_t second;
+
+	do {
+		first = RD_REG_WORD(addr);
+		barrier();
+		cpu_relax();
+		second = RD_REG_WORD(addr);
+	} while (first != second);
+
+	return (first);
+}
+
+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;
+	ha->calc_request_entries = qla2x00_calc_iocbs_32;
+	ha->build_scsi_iocbs = qla2x00_build_scsi_iocbs_32;
+
+	/*
+	 * Given the two variants pci_set_dma_mask(), allow the compiler to
+	 * assist in setting the proper dma mask.
+	 */
+	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;
+			ha->calc_request_entries = qla2x00_calc_iocbs_64;
+			ha->build_scsi_iocbs = qla2x00_build_scsi_iocbs_64;
+			ha->host->sg_tablesize = SG_SEGMENTS_64;
+		} else {
+			printk(KERN_DEBUG
+			    "scsi(%ld): Failed to set 64 bit PCI DMA mask, "
+			    "falling back to 32 bit MASK.\n", ha->host_no);
+			pci_set_dma_mask(ha->pdev, 0xffffffff);
+		}
+	} else {
+		pci_set_dma_mask(ha->pdev, 0xffffffff);
+	}
+	printk(KERN_INFO
+	    "scsi(%ld): %d Bit DMA Addressing Enabled.\n",
+	    ha->host_no, (ha->flags.enable_64bit_addressing ? 64 : 32));
+}
+
+
+static __inline__ int qla2x00_normalize_dma_addr(
+    dma_addr_t *e_addr,  uint32_t *e_len,
+    dma_addr_t *ne_addr, uint32_t *ne_len);
+
+/**
+ * qla2x00_normalize_dma_addr() - Normalize an DMA address.
+ * @e_addr: Raw DMA address
+ * @e_len: Raw DMA length
+ * @ne_addr: Normalized second DMA address
+ * @ne_len: Normalized second DMA length
+ *
+ * If the address does not span a 4GB page boundary, the contents of @ne_addr
+ * and @ne_len are undefined.  @e_len is updated to reflect a normalization.
+ *
+ * Example:
+ *
+ * 	ffffabc0ffffeeee	(e_addr) start of DMA address
+ * 	0000000020000000	(e_len)  length of DMA transfer
+ *	ffffabc11fffeeed	end of DMA transfer
+ *
+ * Is the 4GB boundary crossed?
+ *
+ * 	ffffabc0ffffeeee	(e_addr)
+ *	ffffabc11fffeeed	(e_addr + e_len - 1)
+ *	00000001e0000003	((e_addr ^ (e_addr + e_len - 1))
+ *	0000000100000000	((e_addr ^ (e_addr + e_len - 1)) & ~(0xffffffff)
+ *
+ * Compute start of second DMA segment:
+ *
+ * 	ffffabc0ffffeeee	(e_addr)
+ *	ffffabc1ffffeeee	(0x100000000 + e_addr)
+ *	ffffabc100000000	(0x100000000 + e_addr) & ~(0xffffffff)
+ *	ffffabc100000000	(ne_addr)
+ *	
+ * Compute length of second DMA segment:
+ *
+ *	00000000ffffeeee	(e_addr & 0xffffffff)
+ *	0000000000001112	(0x100000000 - (e_addr & 0xffffffff))
+ *	000000001fffeeee	(e_len - (0x100000000 - (e_addr & 0xffffffff))
+ *	000000001fffeeee	(ne_len)
+ *
+ * Adjust length of first DMA segment
+ *
+ * 	0000000020000000	(e_len)
+ *	0000000000001112	(e_len - ne_len)
+ *	0000000000001112	(e_len)
+ *
+ * Returns non-zero if the specified address was normalized, else zero.
+ */
+static __inline__ int
+qla2x00_normalize_dma_addr(
+    dma_addr_t *e_addr,  uint32_t *e_len,
+    dma_addr_t *ne_addr, uint32_t *ne_len)
+{
+	int normalized;
+
+	normalized = 0;
+	if ((*e_addr ^ (*e_addr + *e_len - 1)) & ~(0xFFFFFFFFULL)) {
+		/* Compute normalized crossed address and len */
+		*ne_addr = (0x100000000ULL + *e_addr) & ~(0xFFFFFFFFULL);
+		*ne_len = *e_len - (0x100000000ULL - (*e_addr & 0xFFFFFFFFULL));
+		*e_len -= *ne_len;
+
+		normalized++;
+	}
+	return (normalized);
+}
+
+static __inline__ void qla2x00_poll(scsi_qla_host_t *);
+static inline void 
+qla2x00_poll(scsi_qla_host_t *ha)
+{
+	qla2x00_intr_handler(0, ha, NULL);
+}
+
+
+static __inline__ void qla2x00_enable_intrs(scsi_qla_host_t *);
+static __inline__ void qla2x00_disable_intrs(scsi_qla_host_t *);
+
+static inline void 
+qla2x00_enable_intrs(scsi_qla_host_t *ha)
+{
+	unsigned long flags = 0;
+	device_reg_t *reg;
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	reg = ha->iobase;
+	ha->interrupts_on = 1;
+	/* enable risc and host interrupts */
+	WRT_REG_WORD(&reg->ictrl, ICR_EN_INT | ICR_EN_RISC);
+	CACHE_FLUSH(&reg->ictrl);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+}
+
+static inline void 
+qla2x00_disable_intrs(scsi_qla_host_t *ha)
+{
+	unsigned long flags = 0;
+	device_reg_t *reg;
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	reg = ha->iobase;
+	ha->interrupts_on = 0;
+	/* disable risc and host interrupts */
+	WRT_REG_WORD(&reg->ictrl, 0);
+	CACHE_FLUSH(&reg->ictrl);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+}
+
+
+static __inline__ int qla2x00_is_wwn_zero(uint8_t *);
+
+/*
+ * qla2x00_is_wwn_zero - Check for zero node name
+ *
+ * Input:
+ *      wwn = Pointer to WW name to check
+ *
+ * Returns:
+ *      TRUE if name is 0 else FALSE
+ *
+ * Context:
+ *      Kernel context.
+ */
+static __inline__ int
+qla2x00_is_wwn_zero(uint8_t *wwn)
+{
+	int cnt;
+
+	for (cnt = 0; cnt < WWN_SIZE ; cnt++, wwn++) {
+		if (*wwn != 0)
+			break;
+	}
+	/* if zero return TRUE */
+	if (cnt == WWN_SIZE)
+		return (1);
+	else
+		return (0);
+}
+
+static __inline__ uint8_t
+qla2x00_suspend_lun(scsi_qla_host_t *, os_lun_t *, int, int);
+static __inline__ uint8_t
+qla2x00_delay_lun(scsi_qla_host_t *, os_lun_t *, int);
+
+static __inline__ uint8_t
+qla2x00_suspend_lun(scsi_qla_host_t *ha, os_lun_t *lq, int time, int count)
+{
+	return (__qla2x00_suspend_lun(ha, lq, time, count, 0));
+}
+
+static __inline__ uint8_t
+qla2x00_delay_lun(scsi_qla_host_t *ha, os_lun_t *lq, int time)
+{
+	return (__qla2x00_suspend_lun(ha, lq, time, 1, 1));
+}
+
+static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *);
+/*
+ * This routine will wait for fabric devices for
+ * the reset delay.
+ */
+static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *ha) 
+{
+	uint16_t	fw_state;
+
+	qla2x00_get_firmware_state(ha, &fw_state);
+}
+
+static inline void qla2x00_filter_command(scsi_qla_host_t *ha, srb_t *sp);
+static inline void
+qla2x00_filter_command(scsi_qla_host_t *ha, srb_t *sp)
+{
+	struct scsi_cmnd *cp = sp->cmd;
+	uint8_t		*strp;
+
+	/*
+	 * Special case considertaion on an Inquiry command (0x12) for Lun 0,
+	 * device responds with no devices (0x7F), then Linux will not scan
+	 * further Luns. While reporting that some device exists on Lun 0 Linux
+	 * will scan all devices on this target.
+	 */
+	if (qla2xenbinq && cp->cmnd[0] == INQUIRY && cp->device->lun == 0) {
+		strp = (uint8_t *)cp->request_buffer;
+		if (*strp == 0x7f) {
+			/* Make lun unassigned and processor type */
+			*strp = 0x23;
+		}
+	}
+}
+
+static __inline__ void * qla2x00_kmem_zalloc(int, int, int);
+/*
+ * qla2x00_kmem_zalloc
+ * Allocate and zero out the block of memory
+ */
+static __inline__ void *
+qla2x00_kmem_zalloc(int siz, int code, int id) 
+{
+	uint8_t *bp;
+
+	if ((bp = kmalloc(siz, code)) != NULL) {
+		memset(bp, 0, siz);
+	}
+
+	return ((void *)bp);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_iocb.c 350-qlogic/drivers/scsi/qla2xxx/qla_iocb.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_iocb.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_iocb.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,1032 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+static inline uint16_t qla2x00_get_cmd_direction(struct scsi_cmnd *cmd);
+static inline cont_entry_t *qla2x00_prep_cont_type0_iocb(scsi_qla_host_t *);
+static inline cont_a64_entry_t *qla2x00_prep_cont_type1_iocb(scsi_qla_host_t *);
+
+/**
+ * qla2x00_get_cmd_direction() - Determine control_flag data direction.
+ * @cmd: SCSI command
+ *
+ * Returns the proper CF_* direction based on CDB.
+ */
+static inline uint16_t
+qla2x00_get_cmd_direction(struct scsi_cmnd *cmd)
+{
+	uint16_t cflags;
+
+	cflags = 0;
+
+	/* Set transfer direction */
+	if (cmd->sc_data_direction == SCSI_DATA_WRITE)
+		cflags = CF_WRITE;
+	else if (cmd->sc_data_direction == SCSI_DATA_READ)
+		cflags = CF_READ;
+	else {
+		switch (cmd->data_cmnd[0]) {
+		case WRITE_6:
+		case WRITE_10:
+		case WRITE_12:
+		case WRITE_BUFFER:
+		case WRITE_LONG:
+		case WRITE_SAME:
+		case WRITE_VERIFY:
+		case WRITE_VERIFY_12:
+		case FORMAT_UNIT:
+		case SEND_VOLUME_TAG:
+		case MODE_SELECT:
+		case SEND_DIAGNOSTIC:
+		case MODE_SELECT_10:
+			cflags = CF_WRITE;
+			break;
+		default:
+			cflags = CF_READ;
+			break;
+		}
+	}
+	return (cflags);
+}
+
+/**
+ * qla2x00_calc_iocbs_32() - Determine number of Command Type 2 and
+ * Continuation Type 0 IOCBs to allocate.
+ *
+ * @dsds: number of data segment decriptors needed
+ *
+ * Returns the number of IOCB entries needed to store @dsds.
+ */
+uint16_t
+qla2x00_calc_iocbs_32(uint16_t dsds)
+{
+	uint16_t iocbs;
+
+	iocbs = 1;
+	if (dsds > 3) {
+		iocbs += (dsds - 3) / 7;
+		if ((dsds - 3) % 7)
+			iocbs++;
+	}
+	return (iocbs);
+}
+
+/**
+ * qla2x00_calc_iocbs_64() - Determine number of Command Type 3 and
+ * Continuation Type 1 IOCBs to allocate.
+ *
+ * @dsds: number of data segment decriptors needed
+ *
+ * Returns the number of IOCB entries needed to store @dsds.
+ */
+uint16_t
+qla2x00_calc_iocbs_64(uint16_t dsds)
+{
+	uint16_t iocbs;
+
+	iocbs = 1;
+	if (dsds > 2) {
+		iocbs += (dsds - 2) / 5;
+		if ((dsds - 2) % 5)
+			iocbs++;
+	}
+	return (iocbs);
+}
+
+/**
+ * qla2x00_prep_cont_type0_iocb() - Initialize a Continuation Type 0 IOCB.
+ * @ha: HA context
+ *
+ * Returns a pointer to the Continuation Type 0 IOCB packet.
+ */
+static inline cont_entry_t *
+qla2x00_prep_cont_type0_iocb(scsi_qla_host_t *ha)
+{
+	cont_entry_t *cont_pkt;
+
+	/* Adjust ring index. */
+	ha->req_ring_index++;
+	if (ha->req_ring_index == REQUEST_ENTRY_CNT) {
+		ha->req_ring_index = 0;
+		ha->request_ring_ptr = ha->request_ring;
+	} else {
+		ha->request_ring_ptr++;
+	}
+
+	cont_pkt = (cont_entry_t *)ha->request_ring_ptr;
+
+	/* Load packet defaults. */
+	*((uint32_t *)(&cont_pkt->entry_type)) =
+	    __constant_cpu_to_le32(CONTINUE_TYPE);
+
+	return (cont_pkt);
+}
+
+/**
+ * qla2x00_prep_cont_type1_iocb() - Initialize a Continuation Type 1 IOCB.
+ * @ha: HA context
+ *
+ * Returns a pointer to the continuation type 1 IOCB packet.
+ */
+static inline cont_a64_entry_t *
+qla2x00_prep_cont_type1_iocb(scsi_qla_host_t *ha)
+{
+	cont_a64_entry_t *cont_pkt;
+
+	/* Adjust ring index. */
+	ha->req_ring_index++;
+	if (ha->req_ring_index == REQUEST_ENTRY_CNT) {
+		ha->req_ring_index = 0;
+		ha->request_ring_ptr = ha->request_ring;
+	} else {
+		ha->request_ring_ptr++;
+	}
+
+	cont_pkt = (cont_a64_entry_t *)ha->request_ring_ptr;
+
+	/* Load packet defaults. */
+	*((uint32_t *)(&cont_pkt->entry_type)) =
+	    __constant_cpu_to_le32(CONTINUE_A64_TYPE);
+
+	return (cont_pkt);
+}
+
+/**
+ * qla2x00_build_scsi_iocbs_32() - Build IOCB command utilizing 32bit
+ * capable IOCB types.
+ *
+ * @sp: SRB command to process
+ * @cmd_pkt: Command type 2 IOCB
+ * @tot_dsds: Total number of segments to transfer
+ */
+void qla2x00_build_scsi_iocbs_32(srb_t *sp, cmd_entry_t *cmd_pkt,
+    uint16_t tot_dsds)
+{
+	uint16_t	avail_dsds;
+	uint32_t	*cur_dsd;
+	scsi_qla_host_t	*ha;
+	struct scsi_cmnd *cmd;
+
+	cmd = sp->cmd;
+
+	/* Update entry type to indicate Command Type 2 IOCB */
+	*((uint32_t *)(&cmd_pkt->entry_type)) =
+	    __constant_cpu_to_le32(COMMAND_TYPE);
+
+	/* No data transfer */
+	if (cmd->request_bufflen == 0 ||
+	    cmd->sc_data_direction == SCSI_DATA_NONE) {
+		cmd_pkt->byte_count = __constant_cpu_to_le32(0);
+		return;
+	}
+
+	ha = sp->lun_queue->fclun->fcport->ha;
+
+	cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(cmd));
+
+	/* Three DSDs are available in the Command Type 2 IOCB */
+	avail_dsds = 3;
+	cur_dsd = (uint32_t *)&cmd_pkt->dseg_0_address;
+
+	/* Load data segments */
+	if (cmd->use_sg != 0) {
+		struct	scatterlist *cur_seg;
+		struct	scatterlist *end_seg;
+
+		cur_seg = (struct scatterlist *)cmd->request_buffer;
+		end_seg = cur_seg + tot_dsds;
+		while (cur_seg < end_seg) {
+			cont_entry_t	*cont_pkt;
+
+			/* Allocate additional continuation packets? */
+			if (avail_dsds == 0) {
+				/*
+				 * Seven DSDs are available in the Continuation
+				 * Type 0 IOCB.
+				 */
+				cont_pkt = qla2x00_prep_cont_type0_iocb(ha);
+				cur_dsd = (uint32_t *)&cont_pkt->dseg_0_address;
+				avail_dsds = 7;
+			}
+
+			*cur_dsd++ = cpu_to_le32(sg_dma_address(cur_seg));
+			*cur_dsd++ = cpu_to_le32(sg_dma_len(cur_seg));
+			avail_dsds--;
+
+			cur_seg++;
+		}
+	}
+	else {
+		dma_addr_t	req_dma;
+		struct page	*page;
+		unsigned long	offset;
+
+		page = virt_to_page(cmd->request_buffer);
+		offset = ((unsigned long)cmd->request_buffer & ~PAGE_MASK);
+		req_dma = pci_map_page(ha->pdev, page, offset,
+		    cmd->request_bufflen,
+		    scsi_to_pci_dma_dir(cmd->sc_data_direction));
+
+		sp->dma_handle = req_dma;
+
+		*cur_dsd++ = cpu_to_le32(req_dma);
+		*cur_dsd++ = cpu_to_le32(cmd->request_bufflen);
+	}
+}
+
+/**
+ * qla2x00_build_scsi_iocbs_64() - Build IOCB command utilizing 64bit
+ * capable IOCB types.
+ *
+ * @sp: SRB command to process
+ * @cmd_pkt: Command type 3 IOCB
+ * @tot_dsds: Total number of segments to transfer
+ */
+void qla2x00_build_scsi_iocbs_64(srb_t *sp, cmd_entry_t *cmd_pkt,
+    uint16_t tot_dsds)
+{
+	uint16_t	avail_dsds;
+	uint32_t	*cur_dsd;
+	scsi_qla_host_t	*ha;
+	struct scsi_cmnd *cmd;
+
+	cmd = sp->cmd;
+
+	/* Update entry type to indicate Command Type 3 IOCB */
+	*((uint32_t *)(&cmd_pkt->entry_type)) =
+	    __constant_cpu_to_le32(COMMAND_A64_TYPE);
+
+	/* No data transfer */
+	if (cmd->request_bufflen == 0 ||
+	    cmd->sc_data_direction == SCSI_DATA_NONE) {
+		cmd_pkt->byte_count = __constant_cpu_to_le32(0);
+		return;
+	}
+
+	ha = sp->lun_queue->fclun->fcport->ha;
+
+	cmd_pkt->control_flags |= cpu_to_le16(qla2x00_get_cmd_direction(cmd));
+
+	/* Two DSDs are available in the Command Type 3 IOCB */
+	avail_dsds = 2;
+	cur_dsd = (uint32_t *)&cmd_pkt->dseg_0_address;
+
+	/* Load data segments */
+	if (cmd->use_sg != 0) {
+		struct	scatterlist *cur_seg;
+		struct	scatterlist *end_seg;
+
+		cur_seg = (struct scatterlist *)cmd->request_buffer;
+		end_seg = cur_seg + tot_dsds;
+		while (cur_seg < end_seg) {
+			dma_addr_t	sle_dma;
+			cont_a64_entry_t *cont_pkt;
+
+			/* Allocate additional continuation packets? */
+			if (avail_dsds == 0) {
+				/*
+				 * Five DSDs are available in the Continuation
+				 * Type 1 IOCB.
+				 */
+				cont_pkt = qla2x00_prep_cont_type1_iocb(ha);
+				cur_dsd = (uint32_t *)cont_pkt->dseg_0_address;
+				avail_dsds = 5;
+			}
+
+			sle_dma = sg_dma_address(cur_seg);
+			*cur_dsd++ = cpu_to_le32(LSD(sle_dma));
+			*cur_dsd++ = cpu_to_le32(MSD(sle_dma));
+			*cur_dsd++ = cpu_to_le32(sg_dma_len(cur_seg));
+			avail_dsds--;
+
+			cur_seg++;
+		}
+	}
+	else {
+		dma_addr_t	req_dma;
+		struct page	*page;
+		unsigned long	offset;
+
+		page = virt_to_page(cmd->request_buffer);
+		offset = ((unsigned long)cmd->request_buffer & ~PAGE_MASK);
+		req_dma = pci_map_page(ha->pdev, page, offset,
+		    cmd->request_bufflen,
+		    scsi_to_pci_dma_dir(cmd->sc_data_direction));
+
+		sp->dma_handle = req_dma;
+
+		*cur_dsd++ = cpu_to_le32(LSD(req_dma));
+		*cur_dsd++ = cpu_to_le32(MSD(req_dma));
+		*cur_dsd++ = cpu_to_le32(cmd->request_bufflen);
+	}
+}
+
+/**
+ * qla2x00_start_scsi() - Send a SCSI command to the ISP
+ * @sp: command to send to the ISP
+ *
+ * Returns non-zero if a failure occured, else zero.
+ */
+int
+qla2x00_start_scsi(srb_t *sp)
+{
+	int		ret;
+	unsigned long   flags;
+	scsi_qla_host_t	*ha;
+	fc_lun_t	*fclun;
+	struct scsi_cmnd *cmd;
+	uint32_t	*clr_ptr;
+	uint32_t        index;
+	uint32_t	handle;
+	uint16_t	cnt, tot_dsds, req_cnt;
+	cmd_entry_t	*cmd_pkt;
+	uint32_t        timeout;
+	struct scatterlist *sg;
+
+	device_reg_t	*reg;
+	uint16_t        reg_flushed;
+
+	/* Setup device pointers. */
+	ret = 0;
+	fclun = sp->lun_queue->fclun;
+	ha = fclun->fcport->ha;
+	cmd = sp->cmd;
+	reg = ha->iobase;
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if (qla2x00_marker(ha, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS) {
+			return (QLA_FUNCTION_FAILED);
+		}
+		ha->marker_needed = 0;
+	}
+
+	/* Calculate number of segments and entries required */
+	tot_dsds = 0;
+	if (cmd->use_sg) {
+		sg = (struct scatterlist *) cmd->request_buffer;
+		tot_dsds = pci_map_sg(ha->pdev, sg, cmd->use_sg,
+		    scsi_to_pci_dma_dir(cmd->sc_data_direction));
+	} else if (cmd->request_bufflen) {   /* Single segment transfer */
+		tot_dsds++;
+	}
+	req_cnt = (ha->calc_request_entries)(tot_dsds);
+
+	/* Acquire ring specific lock */
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	if (ha->req_q_cnt < (req_cnt + 2)) {
+		/* Calculate number of free request entries */
+		cnt = RD_REG_WORD(ISP_REQ_Q_OUT(reg));
+		if (ha->req_ring_index < cnt)
+			ha->req_q_cnt = cnt - ha->req_ring_index;
+		else
+			ha->req_q_cnt = REQUEST_ENTRY_CNT -
+			    (ha->req_ring_index - cnt);
+	}
+
+	/* If no room for request in request ring */
+	if (ha->req_q_cnt < (req_cnt + 2)) {
+		DEBUG5(printk("scsi(%ld): in-ptr=%x req_q_cnt=%x "
+		    "tot_dsds=%x.\n",
+		    ha->host_no, ha->req_ring_index, ha->req_q_cnt, tot_dsds));
+
+		goto queuing_error;
+	}
+
+	/* Check for room in outstanding command list. */
+	handle = ha->current_outstanding_cmd;
+	for (index = 1; index < MAX_OUTSTANDING_COMMANDS; index++) {
+		handle++;
+		if (handle == MAX_OUTSTANDING_COMMANDS)
+			handle = 1;
+		if (ha->outstanding_cmds[handle] == 0) {
+			ha->current_outstanding_cmd = handle;
+			break;
+		}
+	}
+	if (index == MAX_OUTSTANDING_COMMANDS) {
+		DEBUG5(printk("scsi(%ld): Unable to queue command -- NO ROOM "
+		    "IN OUTSTANDING ARRAY (req_q_cnt=%x).\n",
+		    ha->host_no, ha->req_q_cnt));
+		goto queuing_error;
+	}
+
+	/* Build command packet */
+	ha->outstanding_cmds[handle] = sp;
+	sp->cmd->host_scribble = (unsigned char *)(unsigned long)handle;
+	ha->req_q_cnt -= req_cnt;
+
+	cmd_pkt = (cmd_entry_t *)ha->request_ring_ptr;
+	cmd_pkt->handle = handle;
+	/* Zero out remaining portion of packet. */
+	clr_ptr = (uint32_t *)cmd_pkt + 2;
+	memset(clr_ptr, 0, REQUEST_ENTRY_SIZE - 8);
+	cmd_pkt->dseg_count = cpu_to_le16(tot_dsds);
+
+	/* 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*/
+	cmd_pkt->lun = cpu_to_le16(fclun->lun);
+
+	/* Update tagged queuing modifier */
+	cmd_pkt->control_flags = __constant_cpu_to_le16(CF_SIMPLE_TAG);
+	if (cmd->device->simple_tags) {
+		switch (cmd->tag) {
+		case HEAD_OF_QUEUE_TAG:
+			cmd_pkt->control_flags =
+			    __constant_cpu_to_le16(CF_HEAD_TAG);
+			break;
+		case ORDERED_QUEUE_TAG:
+			cmd_pkt->control_flags =
+			    __constant_cpu_to_le16(CF_ORDERED_TAG);
+			break;
+		}
+	}
+
+	/*
+	 * Allocate at least 5 (+ QLA_CMD_TIMER_DELTA) seconds for RISC timeout.
+	 */
+	timeout = (uint32_t)(cmd->timeout_per_command / HZ);
+	if (timeout > 65535)
+		cmd_pkt->timeout = __constant_cpu_to_le16(0);
+	if (timeout > 25)
+		cmd_pkt->timeout = cpu_to_le16((uint16_t)timeout -
+		    (5 + QLA_CMD_TIMER_DELTA));
+	else
+		cmd_pkt->timeout = cpu_to_le16((uint16_t)timeout);
+
+	/* Load SCSI command packet. */
+	memcpy(cmd_pkt->scsi_cdb, cmd->cmnd, cmd->cmd_len);
+	cmd_pkt->byte_count = cpu_to_le32((uint32_t)cmd->request_bufflen);
+
+	/* Build IOCB segments */
+	(ha->build_scsi_iocbs)(sp, cmd_pkt, tot_dsds);
+
+	/* Set total data segment count. */
+	cmd_pkt->entry_count = (uint8_t)req_cnt;
+
+	/* Adjust ring index. */
+	ha->req_ring_index++;
+	if (ha->req_ring_index == REQUEST_ENTRY_CNT) {
+		ha->req_ring_index = 0;
+		ha->request_ring_ptr = ha->request_ring;
+	} else
+		ha->request_ring_ptr++;
+
+	ha->actthreads++;
+	ha->total_ios++;
+	sp->ha = ha;
+	sp->lun_queue->out_cnt++;
+	sp->flags |= SRB_DMA_VALID;
+	sp->state = SRB_ACTIVE_STATE;
+	sp->u_start = jiffies;
+
+#if defined(CMD_PROFILE)
+	{
+	unsigned long	latency;
+
+	latency = jiffies - sp->r_start;
+	if (latency > sp->lun_queue->start_latency)
+		sp->lun_queue->start_latency = latency;
+	}
+#endif
+
+	/* Set chip new ring index. */
+	reg_flushed = CACHE_FLUSH(ISP_REQ_Q_IN(reg));
+	WRT_REG_WORD(ISP_REQ_Q_IN(reg), ha->req_ring_index);
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+	return (QLA_SUCCESS);
+
+queuing_error:
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	if (cmd->use_sg) {
+		pci_unmap_sg(ha->pdev, sg, cmd->use_sg,
+		    scsi_to_pci_dma_dir(cmd->sc_data_direction));
+	}
+
+	return (QLA_FUNCTION_FAILED);
+}
+
+/**
+ * qla2x00_marker() - Send a marker IOCB to the firmware.
+ * @ha: HA context
+ * @loop_id: loop ID
+ * @lun: LUN
+ * @type: marker modifier
+ *
+ * Can be called from both normal and interrupt context.
+ *
+ * Returns non-zero if a failure occured, else zero.
+ */
+int
+__qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
+    uint8_t type)
+{
+	mrk_entry_t	*pkt;
+
+	ENTER(__func__);
+
+	pkt = (mrk_entry_t *)qla2x00_req_pkt(ha);
+	if (pkt == NULL) {
+		DEBUG2_3(printk("%s(): **** FAILED ****\n", __func__));
+
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	pkt->entry_type = MARKER_TYPE;
+	pkt->modifier = type;
+
+	if (type != MK_SYNC_ALL) {
+		pkt->lun = cpu_to_le16(lun);
+#if defined(EXTENDED_IDS)
+		pkt->target = cpu_to_le16(loop_id);
+#else
+		pkt->target = (uint8_t)loop_id;
+#endif
+	}
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	LEAVE(__func__);
+
+	return (QLA_SUCCESS);
+}
+
+int 
+qla2x00_marker(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun,
+    uint8_t type)
+{
+	int ret;
+	unsigned long flags = 0;
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	ret = __qla2x00_marker(ha, loop_id, lun, type);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (ret);
+}
+
+/**
+ * qla2x00_req_pkt() - Retrieve a request packet from the request ring.
+ * @ha: HA context
+ *
+ * Note: The caller must hold the hardware lock before calling this routine.
+ *
+ * Returns NULL if function failed, else, a pointer to the request packet.
+ */
+request_t *
+qla2x00_req_pkt(scsi_qla_host_t *ha)
+{
+	device_reg_t	*reg = ha->iobase;
+	request_t	*pkt = NULL;
+	uint16_t	cnt;
+	uint32_t	*dword_ptr;
+	uint32_t	timer;
+	uint16_t	req_cnt = 1;
+
+	ENTER(__func__);
+
+	/* Wait 1 second for slot. */
+	for (timer = HZ; timer; timer--) {
+		if ((req_cnt + 2) >= ha->req_q_cnt) {
+			/* Calculate number of free request entries. */
+			cnt = qla2x00_debounce_register(ISP_REQ_Q_OUT(reg));
+			if  (ha->req_ring_index < cnt)
+				ha->req_q_cnt = cnt - ha->req_ring_index;
+			else
+				ha->req_q_cnt = REQUEST_ENTRY_CNT -
+				    (ha->req_ring_index - cnt);
+		}
+		/* If room for request in request ring. */
+		if ((req_cnt + 2) < ha->req_q_cnt) {
+			ha->req_q_cnt--;
+			pkt = ha->request_ring_ptr;
+
+			/* Zero out packet. */
+			dword_ptr = (uint32_t *)pkt;
+			for (cnt = 0; cnt < REQUEST_ENTRY_SIZE / 4; cnt++)
+				*dword_ptr++ = 0;
+
+			/* Set system defined field. */
+			pkt->sys_define = (uint8_t)ha->req_ring_index;
+
+			/* Set entry count. */
+			pkt->entry_count = 1;
+
+			break;
+		}
+
+		/* Release ring specific lock */
+		spin_unlock(&ha->hardware_lock);
+
+		udelay(2);   /* 2 us */
+
+		/* Check for pending interrupts. */
+		/* During init we issue marker directly */
+		if (!ha->marker_needed)
+			qla2x00_poll(ha);
+
+		spin_lock_irq(&ha->hardware_lock);
+	}
+	if (!pkt) {
+		DEBUG2_3(printk("%s(): **** FAILED ****\n", __func__));
+	}
+
+	LEAVE(__func__);
+
+	return (pkt);
+}
+
+/**
+ * qla2x00_ms_req_pkt() - Retrieve a Management Server request packet from
+ * 				the request ring.
+ * @ha: HA context
+ * @sp: pointer to handle post function call
+ *
+ * Note: The caller must hold the hardware lock before calling this routine.
+ *
+ * Returns NULL if function failed, else, a pointer to the request packet.
+ */
+request_t *
+qla2x00_ms_req_pkt(scsi_qla_host_t *ha, srb_t  *sp)
+{
+	device_reg_t	*reg = ha->iobase;
+	request_t	*pkt = NULL;
+	uint16_t	cnt, i, index;
+	uint32_t	*dword_ptr;
+	uint32_t	timer;
+	uint8_t		found = 0;
+	uint16_t	req_cnt = 1;
+
+	ENTER(__func__);
+
+	/* Wait 1 second for slot. */
+	for (timer = HZ; timer; timer--) {
+		if ((req_cnt + 2) >= ha->req_q_cnt) {
+			/* Calculate number of free request entries. */
+			cnt = qla2x00_debounce_register(ISP_REQ_Q_OUT(reg));
+			if (ha->req_ring_index < cnt) {
+				ha->req_q_cnt = cnt - ha->req_ring_index;
+			} else {
+				ha->req_q_cnt = REQUEST_ENTRY_CNT -
+				    (ha->req_ring_index - cnt);
+			}
+		}
+
+		/* Check for room in outstanding command list. */
+		cnt = ha->current_outstanding_cmd;
+		for (index = 1; index < MAX_OUTSTANDING_COMMANDS; index++) {
+			cnt++;
+			if (cnt == MAX_OUTSTANDING_COMMANDS)
+				cnt = 1;
+
+			if (ha->outstanding_cmds[cnt] == 0) {
+				found = 1;
+				ha->current_outstanding_cmd = cnt;
+				break;
+			}
+		}
+
+		/* If room for request in request ring. */
+		if (found && (req_cnt + 2) < ha->req_q_cnt) {
+			pkt = ha->request_ring_ptr;
+
+			/* Zero out packet. */
+			dword_ptr = (uint32_t *)pkt;
+			for (i = 0; i < REQUEST_ENTRY_SIZE / 4; i++ )
+				*dword_ptr++ = 0;
+
+			DEBUG5(printk("%s(): putting sp=%p in "
+			    "outstanding_cmds[%x]\n",
+			    __func__,
+			    sp, cnt));
+
+			ha->outstanding_cmds[cnt] = sp;
+
+			/* save the handle */
+			sp->cmd->host_scribble = (unsigned char *) (u_long) cnt;
+			CMD_SP(sp->cmd) = (void *)sp;
+
+			ha->req_q_cnt--;
+			pkt->handle = (uint32_t)cnt;
+
+			/* Set system defined field. */
+			pkt->sys_define = (uint8_t)ha->req_ring_index;
+			pkt->entry_status = 0;
+
+			break;
+		}
+
+		/* Release ring specific lock */
+		spin_unlock(&ha->hardware_lock);
+		udelay(20);
+
+		/* Check for pending interrupts. */
+		qla2x00_poll(ha);
+
+		spin_lock_irq(&ha->hardware_lock);
+	}
+	if (!pkt) {
+		DEBUG2_3(printk("%s(): **** FAILED ****\n", __func__));
+	}
+
+	LEAVE(__func__);
+
+	return (pkt);
+}
+
+/**
+ * qla2x00_isp_cmd() - Modify the request ring pointer.
+ * @ha: HA context
+ *
+ * Note: The caller must hold the hardware lock before calling this routine.
+ */
+void
+qla2x00_isp_cmd(scsi_qla_host_t *ha)
+{
+	device_reg_t *reg = ha->iobase;
+
+	ENTER(__func__);
+
+	DEBUG5(printk("%s(): IOCB data:\n", __func__));
+	DEBUG5(qla2x00_dump_buffer(
+	    (uint8_t *)ha->request_ring_ptr, REQUEST_ENTRY_SIZE));
+
+	/* Adjust ring index. */
+	ha->req_ring_index++;
+	if (ha->req_ring_index == REQUEST_ENTRY_CNT) {
+		ha->req_ring_index = 0;
+		ha->request_ring_ptr = ha->request_ring;
+	} else
+		ha->request_ring_ptr++;
+
+	/* Set chip new ring index. */
+	WRT_REG_WORD(ISP_REQ_Q_IN(reg), ha->req_ring_index);
+
+	LEAVE(__func__);
+}
+
+// TODO: Complete implementation.
+// TODO: Add support for EXTENDED_IDS.
+#ifdef COMPLETE_IMPLEMENTATION
+
+/* MAILBOX IOCB stuff */
+
+/**
+ * qla2x00_send_login_port_iocb() - Login to a device.
+ * @ha: SCSI driver HA context
+ * @ipdev: IP device to login to
+ *
+ * This routine will build and send a mailbox IOCB to login to a fabric port.
+ *
+ * The qla2x00_mailbox_iocb_done() routine will be called upon IOCB
+ * completion, where further processing is performed.
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+static int
+qla2x00_send_login_port_iocb(scsi_qla_host_t *ha, fcdev_t *device)
+{
+	unsigned long	flags = 0;
+	struct mbx_entry *mbxentry;
+
+	DEBUG2(printk("%s(): port ID: %x\n",
+			__func__,
+			device->port_id[2]<<16 |
+			device->port_id[1]<<8 |
+			device->port_id[0]);)
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if (qla2x00_marker(ha, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+			return (QLA_FUNCTION_FAILED);
+		ha->marker_needed = 0;
+	}
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	mbxentry = (struct mbx_entry *)qla2x00_req_pkt(ha);
+	if (mbxentry == NULL) {
+		DEBUG2(printk("%s(): failed\n", __func__);)
+
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	/* Build fabric login MBX IOCB */
+	mbxentry->entry_type = ET_MAILBOX_COMMAND;
+	mbxentry->entry_count = 1;
+	mbxentry->sys_define1 = SOURCE_SCSI;
+	mbxentry->entry_status = 0;
+	mbxentry->handle = cpu_to_le32(device->dev_id |
+				(MBC_LOGIN_FABRIC_PORT << 16));
+	mbxentry->loop_id = device->loop_id;
+	mbxentry->mb0 = __constant_cpu_to_le16(MBC_LOGIN_FABRIC_PORT);
+	mbxentry->mb1 = cpu_to_le16((device->loop_id << 8) | 
+				(MBC_NO_PROCESS_LOGIN |
+				 MBC_NO_PLOGI_IF_LOGGED_IN));
+	mbxentry->mb2 = cpu_to_le16(device->port_id[2]);
+	mbxentry->mb3 = cpu_to_le16((device->port_id[1] << 8) |
+				device->port_id[0]);
+	mbxentry->mb6 = __constant_cpu_to_le16(0);
+	mbxentry->mb7 = __constant_cpu_to_le16(0);
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_send_logout_port_iocb() - Logout an FC device.
+ * @ha: SCSI driver HA context
+ * @device: FC device to logout
+ *
+ * This routine will build and send a mailbox IOCB to logout a fabric port.
+ *
+ * The qla2x00_mailbox_iocb_done() routine will be called upon IOCB
+ * completion, where further processing is performed.
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+static int
+qla2x00_send_logout_port_iocb(scsi_qla_host_t *ha, fcdev_t *device)
+{
+	unsigned long	flags = 0;
+	struct mbx_entry *mbxentry;
+
+	DEBUG2(printk("%s(): port ID: %x\n",
+			__func__,
+			device->port_id[2]<<16 |
+			device->port_id[1]<<8 |
+			device->port_id[0]);)
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if (qla2x00_marker(ha, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+			return (QLA_FUNCTION_FAILED);
+		ha->marker_needed = 0;
+	}
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	mbxentry = (struct mbx_entry *)qla2x00_req_pkt(ha);
+	if (mbxentry == NULL) {
+		DEBUG3(printk("%s(): failed\n", __func__);)
+
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	/* Build fabric logout MBX IOCB */
+	mbxentry->entry_type = ET_MAILBOX_COMMAND;
+	mbxentry->entry_count = 1;
+	mbxentry->sys_define1 = SOURCE_SCSI;
+	mbxentry->entry_status = 0;
+	mbxentry->handle = cpu_to_le32(device->dev_id |
+				(MBC_LOGOUT_FABRIC_PORT << 16));
+	mbxentry->loop_id = device->loop_id;
+	mbxentry->mb0 = __constant_cpu_to_le16(MBC_LOGOUT_FABRIC_PORT);
+	mbxentry->mb1 = cpu_to_le16(device->loop_id << 8);
+	mbxentry->mb2 = __constant_cpu_to_le16(0);
+	mbxentry->mb3 = __constant_cpu_to_le16(0);
+	mbxentry->mb6 = __constant_cpu_to_le16(0);
+	mbxentry->mb7 = __constant_cpu_to_le16(0);
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_mailbox_iocb_done() - Process an mailbox IOCB completion.
+ * @ha: SCSI driver HA context
+ * @mbxentry: completed mailbox IOCB entry
+ *
+ * This routine is currently used for fabric login and logouts only.
+ */
+static void
+qla2x00_mailbox_iocb_done(scsi_qla_host_t *ha, struct mbx_entry *mbxentry)
+{
+	int		status;
+	uint16_t	cmd;
+	uint16_t	index;
+	fcdev		*device;
+
+// FIXME: endianess?
+	/* Parse-out originating mailbox command */
+	cmd = MSW(mbxentry->handle);
+
+	DEBUG2(printk("%s: cmd %x, status %x, mb0 %x, mb1 %x, mb2 %x\n",
+			__func__,
+			cmd,
+			mbxentry->status,
+			mbxentry->mb0,
+			mbxentry->mb1,
+			mbxentry->mb2);)
+
+	/* Get device block pointer */
+	index = LSW(mbxentry->handle);
+	if (index >= QLLAN_MAX_IP_DEVICES) {
+		/* Bad handle from ISP */
+		DEBUG3(printk("%s: bad handle from isp\n", __func__);)
+
+		/* TODO: Cleanup??? */
+
+		return;
+	}
+// FIXME FROM HERE!!!
+	ipdev = &ha->ipdev_db[index];
+
+	if (cmd == MBC_LOGOUT_FABRIC_PORT) {
+		/* Check fabric logout completion status */
+		if (/*mbxentry->status == CS_COMPLETE && */
+			mbxentry->mb0 == MBS_COMMAND_COMPLETE) {
+
+			/* Logout successful -- do nothing */
+		}
+		else {
+			DEBUG12(printk("%s: fabric logout failed\n", __func__);)
+		}
+	}
+	else {
+		/* Check fabric login completion status */
+		/* Note: sometimes ISP returns Status=0x30 and MB0=0x4000 */
+		/* Therefore, only check mb0 for now */
+		if (/* mbxentry->status == CS_COMPLETE && */
+			mbxentry->mb0 == MBS_COMMAND_COMPLETE) {
+
+			/* Login successful */
+			ipdev->flags |= IP_DEV_FLAG_PRESENT;
+		}
+		else if (mbxentry->mb0 == MBS_PORT_ID_IN_USE) {
+			/* Different loop ID already assigned to port ID */
+			/* Use the one that is already assigned */
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+			ipdev->loop_id = mbxentry->mb1;
+
+			/* Do logout first and then relogin */
+			qla2x00_ip_send_logout_port_iocb(ha, ipdev, 1);
+			qla2x00_ip_send_login_port_iocb(ha, ipdev, 1);
+		}
+		else if (mbxentry->mb0 == MBS_LOOP_ID_IN_USE) {
+			/* Loop ID already used for different port ID */
+			/* Get a new loop ID and reissue login request */
+			status = qla2x00_reserve_loopid(ha, &ipdev->loop_id);
+			if (status == QLA_SUCCESS) {
+				qla2x00_ip_send_login_port_iocb(ha, ipdev, 1);
+			}
+			else {
+				DEBUG12(printk("%s: out of loop IDs\n",
+						__func__);)
+
+				qla2x00_free_ip_block(ha, ipdev);
+			}
+		}
+		else {
+			/* Login failed, return resources */
+			DEBUG12(printk("%s: fabric login failed\n", __func__);)
+
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+			qla2x00_free_ip_block(ha, ipdev);
+		}
+	}
+}
+
+#endif
+
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_ip.c 350-qlogic/drivers/scsi/qla2xxx/qla_ip.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_ip.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_ip.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,1820 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/****************************************************************************
+              Please see revision.notes for revision history.
+*****************************************************************************/
+
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+// FIXME
+#if defined(FC_IP_SUPPORT)
+
+static __u8	hwbroadcast_addr[ETH_ALEN] = { [0 ... ETH_ALEN-1] = 0xFF };
+
+/* IP device list manipulation routines */
+static int qla2x00_convert_to_arp(scsi_qla_host_t *, struct send_cb *);
+static int qla2x00_get_ip_loopid(scsi_qla_host_t *,
+    struct packet_header *, uint16_t *);
+static int qla2x00_reserve_loopid(scsi_qla_host_t *, uint16_t *);
+static void qla2x00_free_loopid(scsi_qla_host_t *, uint16_t);
+
+static int qla2x00_add_new_ip_device(scsi_qla_host_t *, uint16_t, uint8_t *,
+    uint8_t *, int, uint32_t);
+static void qla2x00_free_ip_block(scsi_qla_host_t *, struct ip_device *);
+static int qla2x00_reserve_ip_block(scsi_qla_host_t *, struct ip_device **);
+static int qla2x00_ip_send_login_port_iocb(scsi_qla_host_t *,
+    struct ip_device *, uint32_t);
+static int qla2x00_ip_send_logout_port_iocb(scsi_qla_host_t *,
+    struct ip_device *, uint32_t);
+
+/* Network driver callback routines */
+static int  qla2x00_ip_enable(scsi_qla_host_t *, struct bd_enable *);
+static void qla2x00_ip_disable(scsi_qla_host_t *);
+static void qla2x00_add_buffers(scsi_qla_host_t *, uint16_t, int);
+static int  qla2x00_send_packet(scsi_qla_host_t *, struct send_cb *);
+static int  qla2x00_tx_timeout(scsi_qla_host_t *);
+
+/* Entry point network driver */
+#if defined(ISP2200)
+int  qla2200_ip_inquiry(uint16_t, struct bd_inquiry *);
+EXPORT_SYMBOL(qla2200_ip_inquiry);
+#elif defined(ISP2300)
+int  qla2300_ip_inquiry(uint16_t, struct bd_inquiry *);
+EXPORT_SYMBOL(qla2300_ip_inquiry);
+#endif
+
+/**
+ * qla2x00_ip_initialize() - Initialize RISC IP support.
+ * @ha: SCSI driver HA context
+ *
+ * Prior to RISC IP initialization, this routine, if necessary, will reset all
+ * buffers in the receive buffer ring.
+ *
+ * Returns TRUE if the RISC IP initialization succeeds.
+ */
+int
+qla2x00_ip_initialize(scsi_qla_host_t *ha)
+{
+	int		i;
+	int		status;
+	unsigned long	flags;
+	device_reg_t	*reg;
+	static mbx_cmd_t mc;
+	mbx_cmd_t	*mcp = &mc;
+	struct ip_init_cb *ipinit_cb;
+	dma_addr_t	ipinit_cb_dma;
+
+	DEBUG12(printk("%s: enter\n", __func__);)
+
+	status = FALSE;
+
+	/* Initialize IP data in ha */
+	ha->ipdev_db_top = NULL;
+	ha->ipdev_db_bottom = NULL;
+	ha->ipdev_db_next_free = &ha->ipdev_db[0];
+	for (i = 0; i < QLLAN_MAX_IP_DEVICES; i++) {
+		ha->ipdev_db[i].index = i;
+		ha->ipdev_db[i].next = &ha->ipdev_db[i+1];
+	}
+	ha->ipdev_db[QLLAN_MAX_IP_DEVICES-1].next = NULL;
+
+	/* Reset/pack buffers owned by RISC in receive buffer ring */
+	if (ha->rec_entries_in != ha->rec_entries_out) {
+		struct buffer_cb	*bcb;
+		uint16_t		rec_out;
+		struct risc_rec_entry	*rec_entry;
+
+		bcb = ha->receive_buffers;
+		rec_out = ha->rec_entries_out;
+
+		/*
+		 * Must locate all RISC owned buffers and pack them in the
+		 * buffer ring.
+		 */
+		/* between IpBufferOut and IpBufferIN */
+		for (i = 0; i < ha->max_receive_buffers; i++, bcb++) {
+			if (test_bit(BCB_RISC_OWNS_BUFFER, &bcb->state)) {
+				/*
+				 * Set RISC owned buffer into receive buffer
+				 * ring.
+				 */
+				rec_entry = &ha->risc_rec_q[rec_out];
+				rec_entry->handle = bcb->handle;
+				rec_entry->data_addr_low =
+					LSD(bcb->skb_data_dma);
+			       	rec_entry->data_addr_high =
+					MSD(bcb->skb_data_dma);
+				if (rec_out < IP_BUFFER_QUEUE_DEPTH - 1)
+					rec_out++;
+				else
+					rec_out = 0;
+			}
+		}
+
+		/* Verify correct number of RISC owned buffers were found */
+		if (rec_out != ha->rec_entries_in) {
+			/* Incorrect number of RISC owned buffers?? */
+			DEBUG12(printk("%s: incorrect number of RISC "
+					"owned buffers, disable IP\n",
+					__func__);)
+			ha->flags.enable_ip = FALSE;
+			return (FALSE);
+		}
+	}
+
+	/* Init RISC buffer pointer */
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	reg = ha->iobase;
+	WRT_REG_WORD(&reg->mailbox8, ha->rec_entries_in);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	/* Wait for a ready state from the adapter */
+	while (!ha->init_done || ha->dpc_active) {
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(HZ);
+	}
+
+	/* Setup IP initialization control block */
+	ipinit_cb = pci_alloc_consistent(ha->pdev,
+				sizeof(struct ip_init_cb), 
+				&ipinit_cb_dma);
+	if (ipinit_cb) {
+		memset(ipinit_cb, 0, sizeof(struct ip_init_cb));
+		ipinit_cb->version = IPICB_VERSION;
+		ipinit_cb->firmware_options =
+			__constant_cpu_to_le16(
+				IPICB_OPTION_NO_BROADCAST_FASTPOST |
+				 IPICB_OPTION_64BIT_ADDRESSING);
+		ipinit_cb->header_size = cpu_to_le16(ha->header_size);
+		ipinit_cb->mtu = cpu_to_le16((uint16_t)ha->mtu);
+		ipinit_cb->receive_buffer_size =
+			cpu_to_le16((uint16_t)ha->receive_buff_data_size);
+		ipinit_cb->receive_queue_size =
+			 __constant_cpu_to_le16(IP_BUFFER_QUEUE_DEPTH);
+		ipinit_cb->low_water_mark =
+			 __constant_cpu_to_le16(IPICB_LOW_WATER_MARK);
+		ipinit_cb->receive_queue_addr[0] =
+			cpu_to_le16(LSW(ha->risc_rec_q_dma));
+		ipinit_cb->receive_queue_addr[1] =
+			cpu_to_le16(MSW(ha->risc_rec_q_dma));
+		ipinit_cb->receive_queue_addr[2] =
+			cpu_to_le16(LSW(MSD(ha->risc_rec_q_dma)));
+		ipinit_cb->receive_queue_addr[3] =
+			cpu_to_le16(MSW(MSD(ha->risc_rec_q_dma)));
+		ipinit_cb->receive_queue_in = cpu_to_le16(ha->rec_entries_out);
+		ipinit_cb->fast_post_count =
+			 __constant_cpu_to_le16(IPICB_FAST_POST_COUNT);
+		ipinit_cb->container_count =
+			 __constant_cpu_to_le16(IPICB_BUFFER_CONTAINER_COUNT);
+		ipinit_cb->resource_allocation =
+			 __constant_cpu_to_le16(IPICB_IOCB_RESERVE_COUNT);
+
+		/* Issue mailbox command to initialize IP firmware */
+		mcp->mb[0] = MBC_INITIALIZE_IP;
+		mcp->mb[2] = MSW(ipinit_cb_dma);
+		mcp->mb[3] = LSW(ipinit_cb_dma);
+		mcp->mb[6] = MSW(MSD(ipinit_cb_dma));
+		mcp->mb[7] = LSW(MSD(ipinit_cb_dma));
+		mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0;
+		mcp->in_mb = MBX_0;
+		mcp->tov = 30;
+		mcp->buf_size = sizeof(struct ip_init_cb);
+		mcp->flags = MBX_DMA_OUT;
+
+		status = qla2x00_mailbox_command(ha, mcp);
+		if (status == QLA_SUCCESS) {
+			/* IP initialization successful */
+			DEBUG12(printk("%s: successful\n", __func__);)
+
+			ha->flags.enable_ip = TRUE;
+
+			/* Force database update */
+			set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+			set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+			set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
+
+			/* qla2x00_loop_resync(ha); */
+			if (ha->dpc_wait && !ha->dpc_active) {
+				up(ha->dpc_wait);
+			}
+			status = TRUE;
+		}
+		else {
+			DEBUG12(printk("%s: MBC_INITIALIZE_IP "
+					"failed %x MB0 %x\n",
+					__func__, 
+					status,
+					mcp->mb[0]);)
+			status = FALSE;
+		}
+		pci_free_consistent(ha->pdev, sizeof(struct ip_init_cb),
+					ipinit_cb, ipinit_cb_dma);
+
+	}
+	else {
+		DEBUG12(printk("%s: memory allocation error\n", __func__);)
+	}
+
+	return (status);
+}
+
+/**
+ * qla2x00_ip_send_complete() - Handle IP send completion.
+ * @ha: SCSI driver HA context
+ * @handle: handle to completed send_cb
+ * @comp_status: Firmware completion status of send_cb
+ *
+ * Upon cleanup of the internal active-scb queue, the IP driver is notified of
+ * the completion.
+ */
+void
+qla2x00_ip_send_complete(scsi_qla_host_t *ha,
+			uint32_t handle, uint16_t comp_status)
+{
+	struct send_cb *scb;
+
+	/* Set packet pointer from queue entry handle */
+	if (handle < MAX_SEND_PACKETS) {
+		scb = ha->active_scb_q[handle];
+		if (scb) {
+			ha->ipreq_cnt--;
+			ha->active_scb_q[handle] = NULL;
+
+			scb->comp_status = comp_status;
+			pci_unmap_single(ha->pdev,
+					scb->skb_data_dma,
+					scb->skb->len,
+					PCI_DMA_TODEVICE);
+	
+			/* Return send packet to IP driver */
+			(*ha->send_completion_routine)(scb);
+			return;
+		}
+	}
+
+	/* Invalid handle from RISC, reset RISC firmware */
+	printk(KERN_WARNING
+		"%s: Bad IP send handle %x - aborting ISP\n",
+		__func__, handle);
+
+	set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+}
+
+/**
+ * qla2x00_ip_receive() - Handle IP receive IOCB.
+ * @ha: SCSI driver HA context
+ * @pkt: RISC IP receive packet
+ *
+ * Upon preparation of one or more buffer_cbs, the IP driver is notified of
+ * the received packet.
+ */
+void
+qla2x00_ip_receive(scsi_qla_host_t *ha, sts_entry_t *pkt)
+{
+	uint32_t	handle;
+	uint32_t	packet_size;
+	uint16_t	linked_bcb_cnt;
+	uint32_t	rec_data_size;
+	uint16_t	comp_status;
+	struct buffer_cb *bcb;
+	struct buffer_cb *nbcb;
+	struct ip_rec_entry *iprec_entry;
+
+	DEBUG12(printk("%s: enter\n", __func__);)
+
+	iprec_entry = (struct ip_rec_entry *)pkt;
+	comp_status = le16_to_cpu(iprec_entry->comp_status);
+
+	/* If split buffer, set header size for 1st buffer */
+	if (comp_status & IPREC_STATUS_SPLIT_BUFFER)
+		rec_data_size = ha->header_size;
+	else
+		rec_data_size = ha->receive_buff_data_size;
+
+	handle = iprec_entry->buffer_handles[0];
+	if (handle >= ha->max_receive_buffers) {
+		/* Invalid handle from RISC, reset RISC firmware */
+		printk(KERN_WARNING
+			"%s: Bad IP buffer handle %x (> buffer_count)...Post "
+			"ISP Abort\n",
+			__func__,
+			handle);
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		return;
+	}
+
+	bcb = &ha->receive_buffers[handle];
+
+	if (!test_and_clear_bit(BCB_RISC_OWNS_BUFFER, &bcb->state)) {
+		/* Invalid handle from RISC, reset RISC firmware */
+		printk(KERN_WARNING
+			"%s: Bad IP buffer handle %x (!RISC_owned)...Post "
+			"ISP Abort\n",
+			__func__,
+			handle);
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		return;
+	}
+
+	packet_size = le16_to_cpu(iprec_entry->sequence_length);
+	bcb->comp_status = comp_status;
+	bcb->packet_size = packet_size;
+	nbcb = bcb;
+
+	/* Prepare any linked buffers */
+	for (linked_bcb_cnt = 1; ; linked_bcb_cnt++) {
+		if (packet_size > rec_data_size) {
+			nbcb->rec_data_size = rec_data_size;
+			packet_size -= rec_data_size;
+
+			/*
+			 * If split buffer, only use header size on 1st buffer
+			 */
+			rec_data_size = ha->receive_buff_data_size;
+
+			handle = iprec_entry->buffer_handles[linked_bcb_cnt];
+			if (handle >= ha->max_receive_buffers) {
+				/*
+				 * Invalid handle from RISC reset RISC firmware
+				 */
+				printk(KERN_WARNING
+					"%s: Bad IP buffer handle %x (> "
+					"buffer_count - PS)...Post ISP Abort\n",
+					__func__,
+					handle);
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+				return;
+			}
+			nbcb->next_bcb = &ha->receive_buffers[handle];
+			nbcb = nbcb->next_bcb;
+
+			if (!test_and_clear_bit(BCB_RISC_OWNS_BUFFER,
+							&nbcb->state)) {
+				/*
+				 * Invalid handle from RISC reset RISC firmware
+				 */
+				printk(KERN_WARNING
+					"%s: Bad IP buffer handle %x "
+					"(!RISC_owned - PS)...Post ISP Abort\n",
+					__func__,
+					handle);
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+				return;
+			}
+		}
+		else {
+			/* Single buffer_cb */
+			nbcb->rec_data_size = packet_size;
+			nbcb->next_bcb = NULL;
+			break;
+		}
+	}
+
+	/* Check for incoming ARP packet with matching IP address */
+	if (le16_to_cpu(iprec_entry->service_class) == 0) {
+		uint8_t	port_id[3];
+		struct ip_device *ipdev;
+		struct packet_header *packethdr;
+
+		packethdr = (struct packet_header *)bcb->skb_data;
+
+		/* Scan list of IP devices to see if login needed */
+		for (ipdev = ha->ipdev_db_top; ipdev; ipdev = ipdev->next) {
+			if (!memcmp(&ipdev->port_name[2],
+				packethdr->networkh.s.na.addr, ETH_ALEN)) {
+				/* Device already in IP list, skip login */
+				goto skip_device_login;
+			}
+		}
+
+		/* Device not in list, need to do login */
+		port_id[2] = iprec_entry->s_idhigh;
+// FIXME: endianess?
+		port_id[1] = MSB(iprec_entry->s_idlow);
+		port_id[0] = LSB(iprec_entry->s_idlow);
+
+		/* Make sure its not a local device */
+		if (port_id[2] == ha->d_id.b.domain &&
+			port_id[1] == ha->d_id.b.area) {
+
+			goto skip_device_login;
+		}
+
+		if (qla2x00_add_new_ip_device(ha,
+					PUBLIC_LOOP_DEVICE,
+					port_id,
+					packethdr->networkh.s.fcaddr,
+					TRUE,
+					1) == QLA_FUNCTION_FAILED) {
+
+			/* Fatal error, reinitialize */
+			set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		}
+
+	}
+
+skip_device_login:
+
+	/* Pass received packet to IP driver */
+	bcb->linked_bcb_cnt = linked_bcb_cnt;
+	(*ha->receive_packets_routine)(ha->receive_packets_context, bcb);
+
+	/* Keep track of RISC buffer pointer (for IP reinit) */
+	ha->rec_entries_out += linked_bcb_cnt;
+	if (ha->rec_entries_out >= IP_BUFFER_QUEUE_DEPTH)
+		ha->rec_entries_out -= IP_BUFFER_QUEUE_DEPTH;
+}
+
+/**
+ * qla2x00_ip_receive_fastpost() - Handle IP receive fastpost.
+ * @ha: SCSI driver HA context
+ * @type: RISC fastpost type
+ *
+ * Upon preparation of one or more buffer_cbs, the IP driver is notified of
+ * the received packet.
+ */
+void
+qla2x00_ip_receive_fastpost(scsi_qla_host_t *ha, uint16_t type)
+{
+	uint32_t	handle;
+	uint32_t	packet_size;
+	uint16_t	linked_bcb_cnt;
+	uint32_t	rec_data_size;
+	volatile uint16_t *next_mb;
+	device_reg_t	*reg = ha->iobase;
+	struct buffer_cb *bcb;
+	struct buffer_cb *nbcb;
+
+	DEBUG12(printk("%s: enter\n", __func__);)
+
+	next_mb = &reg->mailbox10;
+
+	/* If split buffer, set header size for 1st buffer */
+	if (type == MBA_IP_RECEIVE_COMPLETE_SPLIT)
+		rec_data_size = ha->header_size;
+	else
+		rec_data_size = ha->receive_buff_data_size;
+
+	handle = RD_REG_WORD(next_mb);
+	if (handle >= ha->max_receive_buffers) {
+		goto invalid_handle;
+	}
+
+	bcb = &ha->receive_buffers[handle];
+
+	if (!test_and_clear_bit(BCB_RISC_OWNS_BUFFER, &bcb->state)) {
+		goto invalid_handle;
+	}
+
+	packet_size = RD_REG_WORD(&reg->mailbox3);
+	/* Fastpost entries are always successfully transferred */
+	bcb->comp_status = CS_COMPLETE;
+	bcb->packet_size = packet_size;
+	nbcb = bcb;
+
+	/* Prepare any linked buffers */
+	for (linked_bcb_cnt = 1; ; linked_bcb_cnt++) {
+		if (packet_size > rec_data_size) {
+			nbcb->rec_data_size = rec_data_size;
+			packet_size -= rec_data_size;
+			/*
+			 * If split buffer, only use header size on 1st buffer
+			 */
+			rec_data_size = ha->receive_buff_data_size;
+
+			next_mb++;
+			handle = RD_REG_WORD(next_mb);
+			if (handle >= ha->max_receive_buffers) {
+invalid_handle:
+				printk(KERN_WARNING
+					"%s: bad IP receive fast post handle "
+					"%x\n", 
+					__func__,
+					handle);
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+				return;
+			}
+
+			nbcb->next_bcb = &ha->receive_buffers[handle];
+			nbcb = nbcb->next_bcb;
+
+			if (!test_and_clear_bit(BCB_RISC_OWNS_BUFFER,
+							&nbcb->state)) {
+				goto invalid_handle;
+			}
+		}
+		else {
+			/* Single buffer_cb */
+			nbcb->rec_data_size = packet_size;
+			nbcb->next_bcb = NULL;
+			break;
+		}
+	}
+
+	/* Pass received packet to IP driver */
+	bcb->linked_bcb_cnt = linked_bcb_cnt;
+	(*ha->receive_packets_routine)(ha->receive_packets_context, bcb);
+
+	/* Keep track of RISC buffer pointer (for IP reinit) */
+	ha->rec_entries_out += linked_bcb_cnt;
+	if (ha->rec_entries_out >= IP_BUFFER_QUEUE_DEPTH)
+		ha->rec_entries_out -= IP_BUFFER_QUEUE_DEPTH;
+}
+
+/**
+ * qla2x00_convert_to_arp() - Convert an IP send packet to an ARP packet
+ * @ha: SCSI driver HA context
+ * @scb: The send_cb structure to convert
+ *
+ * Returns TRUE if conversion successful.
+ */
+static int
+qla2x00_convert_to_arp(scsi_qla_host_t *ha, struct send_cb *scb)
+{
+	struct sk_buff		*skb;
+	struct packet_header	*packethdr;
+	struct arp_header	*arphdr;
+	struct ip_header	*iphdr;
+
+	DEBUG12(printk("%s: convert packet to ARP\n", __func__);)
+
+	skb = scb->skb;
+	packethdr = scb->header;
+	arphdr = (struct arp_header *)skb->data;
+	iphdr  = (struct ip_header *)skb->data;
+
+	if (packethdr->snaph.ethertype == __constant_htons(ETH_P_IP)) {
+		/* Convert IP packet to ARP packet */
+		packethdr->networkh.d.na.naa = NAA_IEEE_MAC_TYPE;
+		packethdr->networkh.d.na.unused = 0;
+		memcpy(packethdr->networkh.d.na.addr,
+				hwbroadcast_addr, ETH_ALEN);
+		packethdr->snaph.ethertype = __constant_htons(ETH_P_ARP);
+
+		arphdr->ar_tip = iphdr->iph.daddr;
+		arphdr->ar_sip = iphdr->iph.saddr;
+		arphdr->arph.ar_hrd = __constant_htons(ARPHRD_IEEE802);
+		arphdr->arph.ar_pro = __constant_htons(ETH_P_IP);
+		arphdr->arph.ar_hln = ETH_ALEN;
+		arphdr->arph.ar_pln = sizeof(iphdr->iph.daddr); /* 4 */
+		arphdr->arph.ar_op = __constant_htons(ARPOP_REQUEST);
+		memcpy(arphdr->ar_sha, packethdr->networkh.s.na.addr, ETH_ALEN);
+		memset(arphdr->ar_tha, 0, ETH_ALEN);
+
+		skb->len = sizeof(struct arp_header);
+
+		return (TRUE);
+	}
+	else {
+		return (FALSE);
+	}
+}
+
+/**
+ * qla2x00_get_ip_loopid() - Retrieve loop id of an IP device.
+ * @ha: SCSI driver HA context
+ * @packethdr: IP device to remove
+ * @loop_id: loop id of discovered device
+ *
+ * This routine will interrogate the packet header to determine if the sender is
+ * in the list of active IP devices.  The first two bytes of the destination
+ * address will be modified to match the port name stored in the active IP
+ * device list.
+ *
+ * Returns TRUE if a valid loop id is returned.
+ */
+static int
+qla2x00_get_ip_loopid(scsi_qla_host_t *ha,
+		struct packet_header *packethdr, uint16_t *loop_id)
+{
+	struct ip_device *ipdev;
+
+	/* Scan list of logged in IP devices for match */
+	for (ipdev = ha->ipdev_db_top; ipdev; ipdev = ipdev->next) {
+		if (memcmp(&ipdev->port_name[2],
+				&(packethdr->networkh.d.fcaddr[2]), ETH_ALEN))
+			continue;
+
+		/* Found match, return loop ID  */
+		*loop_id = ipdev->loop_id & 0xff;
+
+		/* Update first 2 bytes of port name */
+		packethdr->networkh.d.fcaddr[0] = ipdev->port_name[0];
+		packethdr->networkh.d.fcaddr[1] = ipdev->port_name[1];
+
+		if (ipdev != ha->ipdev_db_top) {
+			/* Device not at top, move it to top of list */
+			/* Unhook it first */
+			if (ipdev == ha->ipdev_db_bottom) {
+				ha->ipdev_db_bottom = ipdev->last;
+				ipdev->last->next = NULL;
+			}
+			else {
+				ipdev->last->next = ipdev->next;
+				ipdev->next->last = ipdev->last;
+			}
+
+			/* Now put it at top of list */
+			ipdev->next = ha->ipdev_db_top;
+			ipdev->last = NULL;
+			ha->ipdev_db_top->last = ipdev;
+			ha->ipdev_db_top = ipdev;
+		}
+		return (TRUE);
+	}
+
+	/* Check for broadcast packet */
+	if (!memcmp(packethdr->networkh.d.na.addr,
+				hwbroadcast_addr, ETH_ALEN)) {
+		/* Broadcast packet, return broadcast loop ID  */
+		*loop_id = BROADCAST;
+
+		/* Update destination NAA of header */
+		packethdr->networkh.d.na.naa = NAA_IEEE_MAC_TYPE;
+		packethdr->networkh.d.na.unused = 0;
+
+		return (TRUE);
+	}
+
+	/* Check for multicast packet */
+	if (packethdr->networkh.d.na.addr[0] & 0x01) {
+		/* Use broadcast loop ID for multicast packets  */
+		*loop_id = BROADCAST;
+
+		/* Update destination NAA of header */
+		packethdr->networkh.d.na.naa = NAA_IEEE_MAC_TYPE;
+		packethdr->networkh.d.na.unused = 0;
+
+		return (TRUE);
+	}
+
+	/* TODO */
+	/* Try sending FARP IOCB to request login */
+
+	DEBUG12(printk("%s: ID not found for "
+			"XX XX %02x %02x %02x %02x %02x %02x\n",
+			__func__,
+			packethdr->networkh.d.na.addr[0],
+			packethdr->networkh.d.na.addr[1],
+			packethdr->networkh.d.na.addr[2],
+			packethdr->networkh.d.na.addr[3],
+			packethdr->networkh.d.na.addr[4],
+			packethdr->networkh.d.na.addr[5]);)
+
+	return (FALSE);
+}
+
+/**
+ * qla2x00_reserve_loopid() - Reserve an unused public loop id.
+ * @ha: SCSI driver HA context
+ * @loop_id: loop id reserved
+ *
+ * Returns QLA_SUCCESS if a valid loop id is returned.
+ */
+static int
+qla2x00_reserve_loopid(scsi_qla_host_t *ha, uint16_t *loop_id)
+{
+	int i;
+
+	/* Look for unused loop ID */
+	for (i = ha->min_external_loopid; i < ha->max_public_loop_ids; i++) {
+		if (ha->fabricid[i].in_use)
+			continue;
+
+		/* Found free loop ID */
+		ha->fabricid[i].in_use = TRUE;
+		*loop_id = i;
+
+		DEBUG12(printk("%s: assigned loop ID %x\n",
+				__func__,
+				*loop_id);)
+
+		return (QLA_SUCCESS);
+	}
+
+	/* Out of loop IDs */
+	*loop_id = ha->max_public_loop_ids + 1;     /* Set out of range */
+
+	DEBUG12(printk("%s: out of loop IDs\n", __func__);)
+
+	return (QLA_MEMORY_ALLOC_FAILED);
+}
+
+/**
+ * qla2x00_free_loopid() - Free a public loop id.
+ * @ha: SCSI driver HA context
+ * @loop_id: loop id to free
+ */
+static void
+qla2x00_free_loopid(scsi_qla_host_t *ha, uint16_t loop_id)
+{
+	if (loop_id < ha->max_public_loop_ids) {
+		ha->fabricid[loop_id].in_use = FALSE;
+		DEBUG12(printk("%s: free loop ID %x\n",
+				__func__,
+				loop_id);)
+	}
+	else {
+		DEBUG12(printk("%s: loop ID %x out of range\n",
+				__func__,
+				loop_id);)
+	}
+}
+
+
+/**
+ * qla2x00_add_new_ip_device() - Add a new IP capable device to the list.
+ * @ha: SCSI driver HA context
+ * @loop_id: loop id, if a private loop, of the new device
+ * @port_id: port id of the new device
+ * @port_name: port name of the new device
+ * @force_add: should the function force the addition of the device
+ * @ha_locked: Flag indicating if the function is called with the hardware lock
+ *
+ * Prior to RISC IP initialization, this routine, if necessary, will reset all
+ * buffers in the receive buffer ring.
+ *
+ * Returns QLA_SUCCESS if there were no errors adding the device.
+ */
+static int
+qla2x00_add_new_ip_device(scsi_qla_host_t *ha,
+			     uint16_t loop_id,
+			     uint8_t *port_id,
+			     uint8_t *port_name,
+			     int force_add,
+			     uint32_t ha_locked)
+{
+	int	status;
+	struct ip_device *ipdev;
+
+	/* Get free IP device block */
+	status = qla2x00_reserve_ip_block(ha, &ipdev);
+	if (status == QLA_MEMORY_ALLOC_FAILED) {
+		if (!force_add)
+			return (status);
+
+		/*
+		 * Out of IP blocks, bump public device at bottom of list
+		 */
+		DEBUG12(printk("%s: bump device from IP list\n", __func__);)
+
+		for (ipdev = ha->ipdev_db_bottom; ipdev; ipdev = ipdev->last) {
+			if (!(ipdev->flags & IP_DEV_FLAG_PUBLIC_DEVICE))
+				continue;
+
+			/* Do fabric logout and free loop ID */
+			qla2x00_ip_send_logout_port_iocb(ha, ipdev, ha_locked);
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+
+			/* Move device to top of list */
+			qla2x00_free_ip_block(ha, ipdev);
+			status = qla2x00_reserve_ip_block(ha, &ipdev);
+			break;
+		}
+		if (status != QLA_SUCCESS)
+			return (status);
+	}
+
+	/* Save IP port name */
+	memcpy(ipdev->port_name, port_name, WWN_SIZE);
+
+	if (loop_id != PUBLIC_LOOP_DEVICE) {
+		/* Private loop device */
+		ipdev->loop_id = loop_id;
+		ipdev->flags = IP_DEV_FLAG_PRESENT;
+
+		DEBUG12(printk("%s: WWN:%02x%02x%02x%02x%02x%02x%02x%02x, "
+				"LoopID:%x\n",
+				__func__,
+				ipdev->port_name[0],
+				ipdev->port_name[1],
+				ipdev->port_name[2],
+				ipdev->port_name[3],
+				ipdev->port_name[4],
+				ipdev->port_name[5],
+				ipdev->port_name[6],
+				ipdev->port_name[7],
+				ipdev->loop_id);)
+	}
+	else {
+		/* Public device */
+		/* Reserve public loop ID, save it in database */
+		status = qla2x00_reserve_loopid(ha, &ipdev->loop_id);
+		if (status == QLA_MEMORY_ALLOC_FAILED) {
+			struct ip_device *ipdev_bump;
+
+			if (!force_add) { 
+				/* Failed to get loop ID */
+				DEBUG12(printk("%s: failed to get loop ID\n",
+						__func__);)
+				qla2x00_free_ip_block(ha, ipdev);
+
+				return (status);
+			}
+
+			/*
+			 * Out of loop IDs, bump public device at bottom of
+			 * list.
+			 */
+			DEBUG12(printk("%s: bump device from IP list\n",
+					__func__);)
+
+			for (ipdev_bump = ha->ipdev_db_bottom;
+				ipdev_bump;
+				ipdev_bump = ipdev_bump->last) {
+
+				if (!(ipdev_bump->flags &
+						IP_DEV_FLAG_PUBLIC_DEVICE))
+					continue;
+
+				/*
+				 * Do fabric logout, steal loop ID, free bumped
+				 * IP block.
+				 */
+				qla2x00_ip_send_logout_port_iocb(ha,
+						ipdev_bump, ha_locked);
+				ipdev->loop_id = ipdev_bump->loop_id;
+				qla2x00_free_ip_block(ha, ipdev_bump);
+
+				status = QLA_SUCCESS;
+				break;
+			}
+
+			if (status != QLA_SUCCESS) {
+				/* Failed to get loop ID */
+				DEBUG12(printk("%s: failed to get loop ID\n",
+						__func__);)
+				qla2x00_free_ip_block(ha, ipdev);
+
+				return (status);
+			}
+		}
+
+		/* Save device data */
+		ipdev->port_id[0] = port_id[0];
+		ipdev->port_id[1] = port_id[1];
+		ipdev->port_id[2] = port_id[2];
+		ipdev->flags = IP_DEV_FLAG_PUBLIC_DEVICE;
+
+		/* Login public device */
+		status = qla2x00_ip_send_login_port_iocb(ha, ipdev, ha_locked);
+		if (status == QLA_SUCCESS) {
+			DEBUG12(printk("%s: "
+					"WWN:%02x%02x%02x%02x%02x%02x%02x%02x, "
+					"LoopID:%x, PortID:%x\n",
+					__func__,
+					ipdev->port_name[0],
+					ipdev->port_name[1],
+					ipdev->port_name[2],
+					ipdev->port_name[3],
+					ipdev->port_name[4],
+					ipdev->port_name[5],
+					ipdev->port_name[6],
+					ipdev->port_name[7],
+					ipdev->loop_id,
+					ipdev->port_id[2]<<16 |
+					ipdev->port_id[1]<<8 |
+					ipdev->port_id[0]);)
+		}
+		else {
+			/* Login failed, return resources */
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+			qla2x00_free_ip_block(ha, ipdev);
+		}
+	}
+
+	return (status);
+}
+
+/**
+ * qla2x00_free_ip_block() - Remove an IP device from the active IP list.
+ * @ha: SCSI driver HA context
+ * @ipdev: IP device to remove
+ */
+static void
+qla2x00_free_ip_block(scsi_qla_host_t *ha, struct ip_device *ipdev)
+{
+	/* Unhook IP device block from active list */
+	if (ipdev->last == NULL)
+		ha->ipdev_db_top = ipdev->next;
+	else
+		ipdev->last->next = ipdev->next;
+
+	if (ipdev->next == NULL)
+		ha->ipdev_db_bottom = ipdev->last;
+	else
+		ipdev->next->last = ipdev->last;
+
+	/* Add IP device block to free list */
+	ipdev->next = ha->ipdev_db_next_free;
+	ha->ipdev_db_next_free = ipdev;
+}
+
+/**
+ * qla2x00_reserve_ip_block() - Move an IP device to the IP device list.
+ * @ha: SCSI driver HA context
+ * @ipdevblk: reserved IP device to add 
+ *
+ * This routine will move the unused @ipdevblk from the free list to the top of
+ * the active IP device list.
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+static int
+qla2x00_reserve_ip_block(scsi_qla_host_t *ha, struct ip_device **ipdevblk)
+{
+	struct ip_device *ipdev;
+
+	/* Get free IP device block */
+	ipdev = ha->ipdev_db_next_free;
+	if (ipdev) { 
+		/* Remove IP device block from free list */
+		ha->ipdev_db_next_free = ipdev->next;
+
+		/* Add IP device block to top of IP device list */
+		ipdev->next = ha->ipdev_db_top;
+		ipdev->last = NULL;
+		if (ha->ipdev_db_top == NULL)
+			ha->ipdev_db_bottom = ipdev;
+		else
+			ha->ipdev_db_top->last = ipdev;
+		ha->ipdev_db_top = ipdev;
+
+		*ipdevblk = ipdev;
+
+		return (QLA_SUCCESS);
+	}
+
+	/* Out of IP blocks */
+	DEBUG12(printk("%s: out of IP blocks\n", __func__);)
+
+	return (QLA_MEMORY_ALLOC_FAILED);
+}
+
+/**
+ * qla2x00_update_ip_device_data() - Update IP device list with driver data.
+ * @ha: SCSI driver HA context
+ * @fcdev: SCSI driver FC device list
+ *
+ * This routine searchs for the device port name in the current IP database and
+ * updates the IP device list.
+ *
+ * If device found:
+ *	- Handle device movement between public and private loops
+ *	- Mark device present
+ *	- Log in device if necessary
+ * If device not found and private loop device:
+ *	- Insert the new entry in database
+ * If device not found and public IP device:
+ * 	- Ignore device until packet received from device
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+int
+qla2x00_update_ip_device_data(scsi_qla_host_t *ha, fcdev_t *fcdev)
+{
+	int	status;
+	struct ip_device *ipdev;
+
+	status = 0;
+
+	if (!ha->flags.enable_ip) {
+		/* IP not enabled, just return */
+		return (QLA_SUCCESS);
+	}
+
+	/* Scan list of IP devices for match */
+	for (ipdev = ha->ipdev_db_top; ipdev; ipdev = ipdev->next) {
+		if (memcmp(fcdev->wwn, ipdev->port_name, WWN_SIZE))
+			continue;
+
+		/* Found device in IP device list */
+		DEBUG12(printk("%s: already in IP list, port ID: %x\n",
+				__func__,
+				ipdev->port_id[2] << 16 |
+				 ipdev->port_id[1] << 8 |
+				 ipdev->port_id[0]);)
+
+		if (fcdev->flag != DEV_PUBLIC &&
+			!(ipdev->flags & IP_DEV_FLAG_PUBLIC_DEVICE)) {
+			/*
+			 * Device on private loop now, was on private loop
+			 * before.
+			 */
+			DEBUG12(printk("%s: was private loop, now "
+					"private loop\n",
+					__func__);)
+
+			/* Update private loop ID in database */
+			ipdev->loop_id = fcdev->loop_id;
+			ipdev->flags |= IP_DEV_FLAG_PRESENT;
+		}
+		else if (fcdev->flag != DEV_PUBLIC &&
+				(ipdev->flags & IP_DEV_FLAG_PUBLIC_DEVICE)) {
+			/*
+			 * Device on private loop now, was public device before.
+			 */
+			DEBUG12(printk("%s: was public, now private loop\n",
+					__func__);)
+
+			/*
+			 * If loop ID changed, logout device and free loop ID.
+			 */
+			if (fcdev->loop_id != ipdev->loop_id) { 
+				qla2x00_ip_send_logout_port_iocb(ha, ipdev, 0);
+				qla2x00_free_loopid(ha, ipdev->loop_id);
+
+				/*
+				 * Clear public device flag and save private
+				 * loop ID in database.
+				 */
+				ipdev->flags &= ~IP_DEV_FLAG_PUBLIC_DEVICE;
+				ipdev->loop_id = fcdev->loop_id;
+			}
+			ipdev->flags |= IP_DEV_FLAG_PRESENT;
+		}
+		else if (fcdev->flag == DEV_PUBLIC &&
+				!(ipdev->flags & IP_DEV_FLAG_PUBLIC_DEVICE)) {
+			/*
+			 * Device public now, was on private loop before.
+			 */
+			DEBUG12(printk("%s: was private loop, now public\n",
+					__func__);)
+
+			/*
+			 * Reserve public loop ID, save it in database.
+			 */
+			status = qla2x00_reserve_loopid(ha, &ipdev->loop_id);
+			if (status == QLA_SUCCESS) { 
+				/*
+				 * Save port ID and set public device flag.
+				 */
+				ipdev->port_id[0] = fcdev->d_id.r.d_id[0];
+				ipdev->port_id[1] = fcdev->d_id.r.d_id[1];
+				ipdev->port_id[2] = fcdev->d_id.r.d_id[2];
+				ipdev->flags |= IP_DEV_FLAG_PUBLIC_DEVICE;
+
+				/* Login public device */
+				status = qla2x00_ip_send_login_port_iocb(ha,
+							ipdev, 0);
+			}
+			if (status == QLA_MEMORY_ALLOC_FAILED) {
+				/* Out of loop IDs */
+				ipdev->flags &= ~IP_DEV_FLAG_PUBLIC_DEVICE;
+			}
+		}
+		else {
+			/*
+			 * Device public now, was public device before.
+			 */
+			DEBUG12(printk("%s: was public, now public\n",
+					__func__);)
+
+			/* Check if port ID changed */
+			if (ipdev->port_id[0] != fcdev->d_id.r.d_id[0] ||
+				ipdev->port_id[1] != fcdev->d_id.r.d_id[1] ||
+				ipdev->port_id[2] != fcdev->d_id.r.d_id[2]) {
+
+				/* Save new port ID */
+				ipdev->port_id[0] = fcdev->d_id.r.d_id[0];
+				ipdev->port_id[1] = fcdev->d_id.r.d_id[1];
+				ipdev->port_id[2] = fcdev->d_id.r.d_id[2];
+
+				DEBUG12(printk("%s: Port ID changed\n",
+						__func__);)
+
+				/* Logout public device */
+				qla2x00_ip_send_logout_port_iocb(ha, ipdev, 0);
+			}
+
+			/* Login public device */
+			status = qla2x00_ip_send_login_port_iocb(ha, ipdev, 0);
+			if (status == QLA_MEMORY_ALLOC_FAILED) {
+				/* Out of loop IDs */
+				ipdev->flags &= ~IP_DEV_FLAG_PUBLIC_DEVICE;
+			}
+		}
+		return (status);
+	}
+
+	/* Device not found in database */
+	DEBUG12(printk("%s: device NOT in list\n", __func__);)
+
+	/* If private loop device, add device to IP list */
+	/* Public devices will be added as needed when packet received */
+	if (fcdev->flag != DEV_PUBLIC) {
+		/* Add (force) new private loop device to IP list */
+		status = qla2x00_add_new_ip_device(ha,
+					fcdev->loop_id,
+					NULL,
+					fcdev->wwn,
+					TRUE,
+					0);
+	}
+
+	/* The following code is temporary, until FARP supported */
+	/* Login all IP public devices for now */
+	if (fcdev->flag == DEV_PUBLIC) {
+		/* Add (don't force) new public device to IP list */
+		status = qla2x00_add_new_ip_device(ha,
+					PUBLIC_LOOP_DEVICE,
+					(uint8_t *)&fcdev->d_id,
+					fcdev->wwn,
+					FALSE,
+					0);
+	}
+
+	return (status);
+}
+
+/**
+ * qla2x00_ip_send_login_port_iocb() - Login to an IP device.
+ * @ha: SCSI driver HA context
+ * @ipdev: IP device to login to
+ * @ha_locked: Flag indicating if the function is called with the hardware lock
+ *
+ * This routine will build and send a mailbox IOCB to login to a fabric port.
+ *
+ * The qla2x00_ip_mailbox_iocb_done() routine will be called upon IOCB
+ * completion, where further processing is performed.
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+static int
+qla2x00_ip_send_login_port_iocb(scsi_qla_host_t *ha,
+				struct ip_device *ipdev, uint32_t ha_locked)
+{
+	unsigned long	flags = 0;
+	struct mbx_entry *mbxentry;
+
+	DEBUG12(printk("%s: port ID: %x\n",
+			__func__,
+			ipdev->port_id[2]<<16 |
+			ipdev->port_id[1]<<8 |
+			ipdev->port_id[0]);)
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if (ha_locked) {
+			if(__qla2x00_marker(ha,
+					0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+				return (QLA_FUNCTION_FAILED);
+		}
+		else {
+			if(qla2x00_marker(ha,
+					0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+				return (QLA_FUNCTION_FAILED);
+		}
+		ha->marker_needed = 0;
+	}
+
+	if (!ha_locked)
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	mbxentry = (struct mbx_entry *)qla2x00_req_pkt(ha);
+	if (mbxentry == NULL) {
+		DEBUG12(printk("%s: failed\n", __func__);)
+
+		if (!ha_locked)
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	/* Build fabric login MBX IOCB */
+	mbxentry->entry_type = ET_MAILBOX_COMMAND;
+	mbxentry->entry_count = 1;
+	mbxentry->sys_define1 = SOURCE_IP;
+	mbxentry->entry_status = 0;
+	mbxentry->handle = cpu_to_le32(ipdev->index |
+				(MBC_LOGIN_FABRIC_PORT << 16));
+	mbxentry->loop_id = ipdev->loop_id;
+	mbxentry->mb0 = __constant_cpu_to_le16(MBC_LOGIN_FABRIC_PORT);
+#if defined(EXTENDED_IDS)
+	mbxentry->mb1 = cpu_to_le16(ipdev->loop_id & 0xff);
+	mbxentry->mb10 = cpu_to_le16(MBC_NO_PROCESS_LOGIN |
+	    MBC_NO_PLOGI_IF_LOGGED_IN);
+#else
+	mbxentry->mb1 = cpu_to_le16((ipdev->loop_id << 8) |
+	    (MBC_NO_PROCESS_LOGIN | MBC_NO_PLOGI_IF_LOGGED_IN));
+#endif
+	mbxentry->mb2 = cpu_to_le16(ipdev->port_id[2]);
+	mbxentry->mb3 = cpu_to_le16((ipdev->port_id[1] << 8) |
+				ipdev->port_id[0]);
+	mbxentry->mb6 = __constant_cpu_to_le16(0);
+	mbxentry->mb7 = __constant_cpu_to_le16(0);
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	if (!ha_locked)
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_ip_send_logout_port_iocb() - Logout an IP device.
+ * @ha: SCSI driver HA context
+ * @ipdev: IP device to logout
+ * @ha_locked: Flag indicating if the function is called with the hardware lock
+ *
+ * This routine will build and send a mailbox IOCB to logout a fabric port.
+ *
+ * The qla2x00_ip_mailbox_iocb_done() routine will be called upon IOCB
+ * completion, where further processing is performed.
+ *
+ * Returns QLA_SUCCESS if the operation succeeded.
+ */
+static int
+qla2x00_ip_send_logout_port_iocb(scsi_qla_host_t *ha,
+				struct ip_device *ipdev, uint32_t ha_locked)
+{
+	unsigned long	flags = 0;
+	struct mbx_entry *mbxentry;
+
+	DEBUG12(printk("%s: port ID: %x\n",
+			__func__,
+			ipdev->port_id[2]<<16 |
+			ipdev->port_id[1]<<8 |
+			ipdev->port_id[0]);)
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if (ha_locked) {
+			if(__qla2x00_marker(ha,
+					0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+				return (QLA_FUNCTION_FAILED);
+		}
+		else {
+			if(qla2x00_marker(ha,
+					0, 0, MK_SYNC_ALL) != QLA_SUCCESS)
+				return (QLA_FUNCTION_FAILED);
+		}
+		ha->marker_needed = 0;
+	}
+
+	if (!ha_locked)
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	mbxentry = (struct mbx_entry *)qla2x00_req_pkt(ha);
+	if (mbxentry == NULL) {
+		DEBUG12(printk("%s: failed\n", __func__);)
+
+		if (!ha_locked)
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	/* Build fabric logout MBX IOCB */
+	mbxentry->entry_type = ET_MAILBOX_COMMAND;
+	mbxentry->entry_count = 1;
+	mbxentry->sys_define1 = SOURCE_IP;
+	mbxentry->entry_status = 0;
+	mbxentry->handle = cpu_to_le32(ipdev->index |
+				(MBC_LOGOUT_FABRIC_PORT << 16));
+	mbxentry->loop_id = ipdev->loop_id;
+	mbxentry->mb0 = __constant_cpu_to_le16(MBC_LOGOUT_FABRIC_PORT);
+	mbxentry->mb1 = cpu_to_le16(ipdev->loop_id << 8);
+	mbxentry->mb2 = __constant_cpu_to_le16(0);
+	mbxentry->mb3 = __constant_cpu_to_le16(0);
+	mbxentry->mb6 = __constant_cpu_to_le16(0);
+	mbxentry->mb7 = __constant_cpu_to_le16(0);
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	if (!ha_locked)
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_ip_mailbox_iocb_done() - Process an mailbox IOCB completion.
+ * @ha: SCSI driver HA context
+ * @mbxentry: completed mailbox IOCB entry
+ *
+ * This routine is currently used for fabric login and logouts only.
+ */
+void
+qla2x00_ip_mailbox_iocb_done(scsi_qla_host_t *ha, struct mbx_entry *mbxentry)
+{
+	int		status;
+	uint16_t	cmd;
+	uint16_t	index;
+	struct ip_device *ipdev;
+// FIXME: endianess?
+	/* Parse-out originating mailbox command */
+	cmd = MSW(mbxentry->handle);
+
+	DEBUG12(printk("%s: cmd %x, status %x, mb0 %x, mb1 %x, mb2 %x\n",
+			__func__,
+			cmd,
+			mbxentry->status,
+			mbxentry->mb0,
+			mbxentry->mb1,
+			mbxentry->mb2);)
+
+	/* Get device block pointer */
+	index = LSW(mbxentry->handle);
+	if (index >= QLLAN_MAX_IP_DEVICES) {
+		/* Bad handle from ISP */
+		DEBUG12(printk("%s: bad handle from isp\n", __func__);)
+
+		/* TODO: Cleanup??? */
+
+		return;
+	}
+
+	ipdev = &ha->ipdev_db[index];
+
+	if (cmd == MBC_LOGOUT_FABRIC_PORT) {
+		/* Check fabric logout completion status */
+		if (/*mbxentry->status == CS_COMPLETE && */
+			mbxentry->mb0 == MBS_COMMAND_COMPLETE) {
+
+			/* Logout successful -- do nothing */
+		}
+		else {
+			DEBUG12(printk("%s: fabric logout failed\n", __func__);)
+		}
+	}
+	else {
+		/* Check fabric login completion status */
+		/* Note: sometimes ISP returns Status=0x30 and MB0=0x4000 */
+		/* Therefore, only check mb0 for now */
+		if (/* mbxentry->status == CS_COMPLETE && */
+			mbxentry->mb0 == MBS_COMMAND_COMPLETE) {
+
+			/* Login successful */
+			ipdev->flags |= IP_DEV_FLAG_PRESENT;
+		}
+		else if (mbxentry->mb0 == MBS_PORT_ID_IN_USE) {
+			/* Different loop ID already assigned to port ID */
+			/* Use the one that is already assigned */
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+			ipdev->loop_id = mbxentry->mb1;
+
+			/* Do logout first and then relogin */
+			qla2x00_ip_send_logout_port_iocb(ha, ipdev, 1);
+			qla2x00_ip_send_login_port_iocb(ha, ipdev, 1);
+		}
+		else if (mbxentry->mb0 == MBS_LOOP_ID_IN_USE) {
+			/* Loop ID already used for different port ID */
+			/* Get a new loop ID and reissue login request */
+			status = qla2x00_reserve_loopid(ha, &ipdev->loop_id);
+			if (status == QLA_SUCCESS) {
+				qla2x00_ip_send_login_port_iocb(ha, ipdev, 1);
+			}
+			else {
+				DEBUG12(printk("%s: out of loop IDs\n",
+						__func__);)
+
+				qla2x00_free_ip_block(ha, ipdev);
+			}
+		}
+		else {
+			/* Login failed, return resources */
+			DEBUG12(printk("%s: fabric login failed\n", __func__);)
+
+			qla2x00_free_loopid(ha, ipdev->loop_id);
+			qla2x00_free_ip_block(ha, ipdev);
+		}
+	}
+}
+
+
+/**
+ * qla2x00_ip_inquiry() - Discover IP-capable adapters.
+ * @adapter_num: adapter number to check (instance)
+ * @inq_data: return bd_inquiry data of the discovered adapter
+ *
+ * This routine is called by the IP driver to discover adapters that support IP
+ * and to get adapter parameters from the SCSI driver.
+ *
+ * Returns TRUE if the specified adapter supports IP.
+ */
+#if defined (ISP2200)
+int
+qla2200_ip_inquiry(uint16_t adapter_num, struct bd_inquiry *inq_data)
+#elif defined(ISP2300)
+int
+qla2300_ip_inquiry(uint16_t adapter_num, struct bd_inquiry *inq_data)
+#endif
+{
+	int	found;
+	struct list_head *hal;
+	scsi_qla_host_t *ha;
+
+	/* Verify structure size and version */
+	if ((inq_data->length != BDI_LENGTH) ||
+		(inq_data->version != BDI_VERSION)) {
+
+		DEBUG12(printk("%s: incompatable structure\n", __func__);)
+		return (FALSE);
+	}
+
+	/* Find the specified host adapter */
+	ha = NULL;
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (ha->instance == adapter_num) {
+			found++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	if (found) {
+		if (!ha->flags.online)
+			return (FALSE);
+
+		DEBUG12(printk("%s: found adapter %d\n",
+				__func__,
+				adapter_num);)
+
+		/* Return inquiry data to backdoor IP driver */
+		set_bit(BDI_IP_SUPPORT, &inq_data->options);
+		if (ha->flags.enable_64bit_addressing)
+			set_bit(BDI_64BIT_ADDRESSING, &inq_data->options);
+		inq_data->ha = ha;                
+		inq_data->risc_rec_q = ha->risc_rec_q;
+		inq_data->risc_rec_q_size = IP_BUFFER_QUEUE_DEPTH;
+		inq_data->link_speed = ha->current_speed;
+		memcpy(inq_data->port_name, ha->ip_port_name, WWN_SIZE);
+		inq_data->pdev = ha->pdev;
+		inq_data->ip_enable_routine = qla2x00_ip_enable;
+		inq_data->ip_disable_routine = qla2x00_ip_disable;
+		inq_data->ip_add_buffers_routine = qla2x00_add_buffers;
+		inq_data->ip_send_packet_routine = qla2x00_send_packet;
+		inq_data->ip_tx_timeout_routine = qla2x00_tx_timeout;
+		return (TRUE);
+	}
+	return (FALSE);
+}
+
+/**
+ * qla2x00_ip_enable() - Create IP-driver/SCSI-driver IP connection.
+ * @ha: SCSI driver HA context
+ * @enable_data: bd_enable data describing the IP connection
+ *
+ * This routine is called by the IP driver to enable an IP connection to the
+ * SCSI driver and to pass in IP driver parameters.
+ *
+ * The HA context is propagated with the specified @enable_data and the
+ * Firmware is initialized for IP support.
+ * 
+ * Returns TRUE if the IP connection was successfully enabled.
+ */
+static int
+qla2x00_ip_enable(scsi_qla_host_t *ha, struct bd_enable *enable_data)
+{
+	int status;
+
+	DEBUG12(printk("%s: enable adapter %d\n", __func__, (int)ha->host_no);)
+
+	status = FALSE;
+
+	/* Verify structure size and version and adapter online */
+	if (!(ha->flags.online) ||
+		(enable_data->length != BDE_LENGTH) ||
+		(enable_data->version != BDE_VERSION)) {
+
+		DEBUG12(printk("%s: incompatable structure or offline\n",
+				__func__);)
+		return (status);
+	}
+
+	/* Save parameters from IP driver */
+	ha->mtu = enable_data->mtu;
+	ha->header_size = enable_data->header_size;
+	ha->receive_buffers = enable_data->receive_buffers;
+	ha->max_receive_buffers = enable_data->max_receive_buffers;
+	ha->receive_buff_data_size = enable_data->receive_buff_data_size;
+	if (test_bit(BDE_NOTIFY_ROUTINE, &enable_data->options)) {
+		ha->notify_routine = enable_data->notify_routine;
+		ha->notify_context = enable_data->notify_context;
+	}
+	ha->send_completion_routine = enable_data->send_completion_routine;
+	ha->receive_packets_routine = enable_data->receive_packets_routine;
+	ha->receive_packets_context = enable_data->receive_packets_context;
+
+	/* Enable RISC IP support */
+	status = qla2x00_ip_initialize(ha);
+	if (!status) {
+		DEBUG12(printk("%s: IP initialization failed", __func__);)
+		ha->notify_routine = NULL;
+	}
+	return (status);
+}
+
+/**
+ * qla2x00_ip_disable() - Remove IP-driver/SCSI-driver IP connection.
+ * @ha: SCSI driver HA context
+ *
+ * This routine is called by the IP driver to disable a previously created IP
+ * connection.
+ *
+ * A Firmware call to disable IP support is issued.
+ */
+static void
+qla2x00_ip_disable(scsi_qla_host_t *ha)
+{
+	int	rval;
+	static mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG12(printk("%s: disable adapter %d\n", __func__, (int)ha->host_no);)
+
+	/* Wait for a ready state from the adapter */
+	while (!ha->init_done || ha->dpc_active) {
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(HZ);
+	}
+
+	/* Disable IP support */
+	ha->flags.enable_ip = FALSE;
+
+	mcp->mb[0] = MBC_DISABLE_IP;
+	mcp->out_mb = MBX_0;
+	mcp->in_mb = MBX_0;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+	if (rval == QLA_SUCCESS) {
+		/* IP disabled successful */
+		DEBUG12(printk(KERN_INFO
+				"%s: successful\n", __func__);)
+	}
+	else {
+		DEBUG12(printk(KERN_WARNING
+				"%s: MBC_DISABLE_IP failed\n", __func__);)
+	}
+
+	/* Reset IP parameters */
+	ha->rec_entries_in = 0;
+	ha->rec_entries_out = 0;
+	ha->notify_routine = NULL;
+}
+
+/**
+ * qla2x00_add_buffers() - Adds buffers to the receive buffer queue.
+ * @ha: SCSI driver HA context
+ * @rec_count: The number of receive buffers to add to the queue
+ * @ha_locked: Flag indicating if the function is called with the hardware lock
+ *
+ * This routine is called by the IP driver to pass new buffers to the receive
+ * buffer queue.
+ */
+static void
+qla2x00_add_buffers(scsi_qla_host_t *ha, uint16_t rec_count, int ha_locked)
+{
+	int		i;
+	uint16_t	rec_in;
+	uint16_t	handle;
+	unsigned long	flags = 0;
+	device_reg_t	*reg;
+	struct risc_rec_entry *risc_rec_q;
+	struct buffer_cb *bcbs;
+
+	flags = 0;
+	risc_rec_q = ha->risc_rec_q;
+	rec_in = ha->rec_entries_in;
+	bcbs = ha->receive_buffers;
+
+	/* Set RISC owns buffer flag on new entries */
+	for (i = 0; i < rec_count; i++) {
+		handle = risc_rec_q[rec_in].handle;
+		set_bit(BCB_RISC_OWNS_BUFFER, &(bcbs[handle].state));
+		if (rec_in < IP_BUFFER_QUEUE_DEPTH - 1)
+			rec_in++;
+		else
+			rec_in = 0;
+	}
+	
+	/* Update RISC buffer pointer */
+	if (!ha_locked)
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	reg = ha->iobase;
+	WRT_REG_WORD(&reg->mailbox8, rec_in);
+	ha->rec_entries_in = rec_in;
+
+	if (!ha_locked)
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+}
+
+/**
+ * qla2x00_send_packet() - Transmit a send_cb.
+ * @ha: SCSI driver HA context
+ * @scb: The send_cb structure to send
+ *
+ * This routine is called by the IP driver to pass @scb (IP packet) to the ISP
+ * for transmission.
+ *
+ * Returns QLA_SUCCESS if @scb was sent, QLA_MEMORY_ALLOC_FAILED if the
+ * RISC was too busy to send, or QLA_FUNCTION_FAILED.
+ */
+static int
+qla2x00_send_packet(scsi_qla_host_t *ha, struct send_cb *scb)
+{
+	int		i;
+	uint16_t	cnt;
+	uint16_t	temp;
+	uint16_t	loop_id;
+	uint32_t	handle;
+	unsigned long	flags;
+	struct ip_cmd_entry *ipcmd_entry;
+	struct sk_buff	*skb;
+	device_reg_t	*reg;
+
+	DEBUG12(printk("%s: enter\n", __func__);)
+
+	skb = scb->skb;
+	reg = ha->iobase;
+
+	/* Check adapter state */
+	if (!ha->flags.online) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	/* Send marker if required */
+	if (ha->marker_needed != 0) {
+		if(qla2x00_marker(ha, 0, 0, MK_SYNC_ALL) != QLA_SUCCESS) {
+			printk(KERN_WARNING
+				"%s: Unable to issue marker.\n",
+				__func__);
+			return (QLA_FUNCTION_FAILED);
+		}
+		ha->marker_needed = 0;
+	}
+
+	/* Acquire ring specific lock */
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	if (ha->req_q_cnt < 4) {
+		/* Update number of free request entries */
+		cnt = qla2x00_debounce_register(ISP_REQ_Q_OUT(reg));
+		if (ha->req_ring_index < cnt)
+			ha->req_q_cnt = cnt - ha->req_ring_index;
+		else
+			ha->req_q_cnt = REQUEST_ENTRY_CNT -
+						(ha->req_ring_index - cnt);
+	}
+
+	if (ha->req_q_cnt >= 4) {
+		/* Get tag handle for command */
+		handle = ha->current_scb_q_idx;
+		for (i = 0; i < MAX_SEND_PACKETS; i++) {
+			handle++;
+			if (handle == MAX_SEND_PACKETS)
+				handle = 0;
+			if (ha->active_scb_q[handle] == NULL) {
+				ha->current_scb_q_idx = handle;
+				goto found_handle;
+			}
+		}
+	}
+
+	/* Low on resources, try again later */
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+	printk(KERN_WARNING
+		"%s: Low on resources, try again later...\n",
+		__func__);
+
+	return (QLA_MEMORY_ALLOC_FAILED);
+
+found_handle:
+
+	/* Build ISP command packet */
+	ipcmd_entry = (struct ip_cmd_entry *)ha->request_ring_ptr;
+
+	/* OPTIMIZATION ??? */
+	/* Throughput increases an additional 10 Mbps with the following code */
+	*((uint32_t *)(&ipcmd_entry->entry_type)) = 
+			 __constant_cpu_to_le32(ET_IP_COMMAND_64 | (1 << 8));
+	//ipcmd_entry->entry_type = ET_IP_COMMAND_64;
+	//ipcmd_entry->entry_count = 1;
+	//ipcmd_entry->sys_define = 0;
+	//ipcmd_entry->entry_status = 0;
+	
+	ipcmd_entry->handle = handle;
+
+	/* Get destination loop ID for packet */
+	if (!qla2x00_get_ip_loopid(ha, scb->header, &loop_id)) {
+		ipcmd_entry->loop_id = ~0;
+		/* Failed to get loop ID, convert packet to ARP */
+		if (qla2x00_convert_to_arp(ha, scb)) {
+			/* Broadcast ARP */
+			ipcmd_entry->loop_id = BROADCAST;
+		}
+		else {
+			/* Return packet */
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+			printk(KERN_WARNING
+				"%s: Unable to determine loop id for "
+				"destination.\n",
+				__func__);
+			return (QLA_FUNCTION_FAILED);
+		}
+	}
+#if defined(EXTENDED_IDS)
+	ipcmd_entry->loop_id = cpu_to_le16(loop_id);
+#else
+	ipcmd_entry->reserved_1 = 0;
+	ipcmd_entry->loop_id = loop_id & 0xff;
+#endif
+
+	/* Default five second firmware timeout */
+	ipcmd_entry->timeout = __constant_cpu_to_le16(5);
+	ipcmd_entry->control_flags = __constant_cpu_to_le16(CF_WRITE);
+	ipcmd_entry->reserved_2 = 0;
+	ipcmd_entry->service_class = __constant_cpu_to_le16(0);
+
+	ipcmd_entry->data_seg_count = __constant_cpu_to_le16(2);
+	ipcmd_entry->ds.data_segs64[0].address[0] =
+			cpu_to_le32(LSD(scb->header_dma));
+	ipcmd_entry->ds.data_segs64[0].address[1] =
+			cpu_to_le32(MSD(scb->header_dma));
+	ipcmd_entry->ds.data_segs64[0].length =
+			__constant_cpu_to_le32(sizeof(struct packet_header));
+	scb->skb_data_dma = pci_map_single(ha->pdev,
+					skb->data, skb->len,
+					PCI_DMA_TODEVICE);
+	ipcmd_entry->ds.data_segs64[1].address[0] =
+			cpu_to_le32(LSD(scb->skb_data_dma));
+	ipcmd_entry->ds.data_segs64[1].address[1] =
+			cpu_to_le32(MSD(scb->skb_data_dma));
+	ipcmd_entry->ds.data_segs64[1].length = cpu_to_le32(skb->len);
+
+	ipcmd_entry->byte_count =
+			cpu_to_le32(skb->len + sizeof(struct packet_header));
+
+	/* Adjust ring index. */
+	ha->req_ring_index++;
+	if (ha->req_ring_index == REQUEST_ENTRY_CNT) {
+		ha->req_ring_index = 0;
+		ha->request_ring_ptr = ha->request_ring;
+	} else
+		ha->request_ring_ptr++;
+
+	ha->ipreq_cnt++;
+	ha->req_q_cnt--;
+	ha->active_scb_q[handle] = scb;
+
+	/* Set chip new ring index. */
+	temp = CACHE_FLUSH(ISP_REQ_Q_IN(reg));
+	WRT_REG_WORD(ISP_REQ_Q_IN(reg), ha->req_ring_index);
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_tx_timeout() - Handle transmission timeout.
+ * @ha: SCSI driver HA context
+ *
+ * This routine is called by the IP driver to handle packet transmission
+ * timeouts.
+ *
+ * Returns QLA_SUCCESS if timeout handling completed successfully.
+ */
+static int
+qla2x00_tx_timeout(scsi_qla_host_t *ha)
+{
+	/* TODO: complete interface */
+
+	/* Reset RISC firmware for basic recovery */
+	printk(KERN_WARNING
+		"%s: A transmission timeout occured - aborting ISP\n",
+		__func__);
+	set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+
+	return (QLA_SUCCESS);
+}
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_ip.h 350-qlogic/drivers/scsi/qla2xxx/qla_ip.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_ip.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_ip.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,418 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 IP network driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/****************************************************************************
+              Please see revision.notes for revision history.
+*****************************************************************************/
+
+#if !defined(_QLA_IP_H_)
+#define _QLA_IP_H_
+
+#define MAX_SEND_PACKETS		32	/* Maximum # send packets */
+#define MAX_RECEIVE_BUFFERS		64	/* Maximum # receive buffers */
+#define MIN_RECEIVE_BUFFERS		8	/* Minimum # receive buffers */
+#define IP_BUFFER_QUEUE_DEPTH		(MAX_RECEIVE_BUFFERS+1)
+
+/* Async notification types */
+#define NOTIFY_EVENT_LINK_DOWN		1	/* Link went down */
+#define NOTIFY_EVENT_LINK_UP		2	/* Link is back up */
+#define NOTIFY_EVENT_RESET_DETECTED	3	/* Reset detected */
+
+/************************************************************************/
+/* RFC 2625 -- networking structure definitions                         */
+/************************************************************************/
+
+/* Network header definitions */
+struct network_address
+{
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+	__u16	unused:12,
+		naa:4;
+#elif defined (__BIG_ENDIAN_BITFIELD)
+	__u16	naa:4,
+		unused:12;
+#else
+#error  "Please fix <asm/byteorder.h>"
+#endif
+
+#define NAA_IEEE_MAC_TYPE	1		/* NAA code - IEEE MAC addr */
+
+	__u8	addr[6];
+};
+
+struct network_header
+{
+	union
+	{
+		struct network_address	na;
+		__u8	fcaddr[8];
+	} d;
+
+	union
+	{
+		struct network_address	na;
+		__u8	fcaddr[8];
+	} s;
+};
+
+/* SNAP header definitions */
+/* from linux/if_fc.h */
+struct snap_header
+{
+	__u8  dsap;				/* destination SAP */
+	__u8  ssap;				/* source SAP */
+#define LLC_SAP_IEEE_802DOT2	0xAA		/* LLC SAP code - IEEE 802.2 */
+
+	__u8  llc;				/* LLC control field */
+#define LLC_CONTROL		0x03		/* LLC control code */
+
+	__u8  protid[3];			/* protocol id */
+#define SNAP_OUI		0x00		/* SNAP OUI code */
+
+	__u16 ethertype;			/* ether type field */
+};
+
+/* Packet header definitions */
+struct packet_header
+{
+	struct network_header	networkh;
+	struct snap_header	snaph;
+};
+
+/* ARP header definitions */
+/* from linux/if_arp.h */
+struct arp_header
+{
+	struct arphdr	arph;
+	__u8		ar_sha[ETH_ALEN];	/* sender hardware address */
+	__u32		ar_sip;			/* sender IP address */
+        __u8		ar_tha[ETH_ALEN];	/* target hardware address */
+	__u32		ar_tip;			/* target IP address */
+};
+
+/* IP header definitions */
+struct ip_header
+{
+	struct iphdr	iph;
+	__u32		options;		/* IP packet options */
+};
+
+
+/************************************************************************/
+/* Support structures.                                                  */
+/************************************************************************/
+
+/* Definitions for IP support */
+#define LOOP_ID_MASK		0x00FF
+#define PLE_NOT_SCSI_DEVICE	0x8000		/* Upper bit of loop ID set */
+						/*  if not SCSI */
+
+/* Receive buffer control block definitions */
+struct buffer_cb
+{
+	uint16_t	handle;			/* ISP buffer handle */
+	uint16_t	comp_status;		/* completion status from FW */
+
+	unsigned long	state;			/* Buffer CB state */
+#define BCB_RISC_OWNS_BUFFER	1
+
+	struct sk_buff	*skb;			/* Socket buffer */
+	uint8_t		*skb_data;		/* Socket buffer data */
+	dma_addr_t	skb_data_dma;		/* SKB data physical address */
+	uint32_t	rec_data_size;		/* Size of received data */
+	uint32_t	packet_size;		/* Size of packet received */
+
+	uint16_t	linked_bcb_cnt;		/* # of linked CBs for packet */
+	uint16_t	unused2;
+	struct buffer_cb *next_bcb;		/* Next buffer CB */
+};
+
+/* Send control block definitions */
+struct send_cb
+{
+	uint16_t	comp_status;		/* completion status from FW */
+#define SCB_CS_COMPLETE		0x0		
+#define SCB_CS_INCOMPLETE	0x1
+#define SCB_CS_RESET		0x4
+#define SCB_CS_ABORTED		0x5
+#define SCB_CS_TIMEOUT		0x6
+#define SCB_CS_PORT_UNAVAILABLE	0x28
+#define SCB_CS_PORT_LOGGED_OUT	0x29
+#define SCB_CS_PORT_CONFIG_CHG	0x2A
+#define SCB_CS_FW_RESOURCE_UNAVAILABLE	0x2C
+
+	uint16_t	unused1;
+
+	void		*qdev;			/* netdev private structure */
+
+	struct packet_header *header;		/* Network and SNAP headers */
+	dma_addr_t	header_dma;		/* Header physical address */
+
+	struct sk_buff	*skb;			/* socket buffer to send */
+	dma_addr_t	skb_data_dma;		/* skb data physical address */
+};
+
+/* IP device data structure */
+#define QLLAN_MAX_IP_DEVICES	64	/* Maximum number of IP devices */
+
+struct ip_device
+{
+	uint16_t	index;
+	uint16_t	unused1;
+
+	uint32_t	flags;
+#define IP_DEV_FLAG_PRESENT		0x00000001 
+#define IP_DEV_FLAG_PUBLIC_DEVICE	0x00000002
+
+	uint16_t	loop_id;
+#define PUBLIC_LOOP_DEVICE		((uint16_t)-1)
+
+	uint16_t	unused2;
+	uint8_t		port_id[3];
+	uint8_t		unused3;
+	uint8_t		port_name[8]; 
+
+	struct ip_device *next;
+	struct ip_device *last;
+};
+
+/************************************************************************/
+/* Definitions for Backdoor Inquiry.                                   */
+/************************************************************************/
+
+struct bd_inquiry
+{
+	uint16_t	length;			/* Length of structure */
+#define BDI_LENGTH		sizeof(struct bd_inquiry)
+
+	uint16_t	version;		/* Structure version number */
+/* NOTE: Update this value anytime the structure changes */
+#define BDI_VERSION		2
+
+						/* Exports */
+	unsigned long	options;		/*  supported options */
+#define BDI_IP_SUPPORT		1		/*   IP supported */
+#define BDI_64BIT_ADDRESSING	2		/*   64bit address supported */
+
+	void		*ha;			/*  Driver ha pointer */
+	void		*risc_rec_q;		/*  RISC receive queue */
+	uint16_t	risc_rec_q_size;	/*   size */
+
+	uint16_t	link_speed;		/* Current link speed */
+#define BDI_1GBIT_PORTSPEED	1		/*   operating at 1GBIT */
+#define BDI_2GBIT_PORTSPEED	2		/*   operating at 2GBIT */
+#define BDI_10GBIT_PORTSPEED	4		/*   operating at 10GBIT */
+
+	uint8_t		port_name[8];		/*  Adapter port name */
+
+	struct pci_dev	*pdev;			/* PCI device information */
+
+	/* Pointers to SCSI-backdoor callbacks */
+	void            *ip_enable_routine;
+	void            *ip_disable_routine;
+	void            *ip_add_buffers_routine;
+	void            *ip_send_packet_routine;
+	void            *ip_tx_timeout_routine;
+
+	uint32_t        unused2[9];
+};
+
+/************************************************************************/
+/* Definitions for Backdoor Enable.                                    */
+/************************************************************************/
+
+struct bd_enable
+{
+	uint16_t	length;			/* Length of structure */
+#define BDE_LENGTH		sizeof(struct bd_enable)
+
+	uint16_t	version;		/* Structure version number */
+/* NOTE: Update this value anytime the structure changes */
+#define BDE_VERSION		2
+
+						/* Imports */
+	unsigned long	options;		/*  supported options */
+#define BDE_NOTIFY_ROUTINE	1		/*  notify routine imported */
+
+	uint32_t	mtu;			/*  maximum transfer size */
+	uint16_t	header_size;		/*  split header size */
+	uint16_t	unused1;
+
+	void		*receive_buffers;	/*  receive buffers array */
+	uint16_t	max_receive_buffers;	/*  max # receive buffers */
+	uint16_t	unused2;
+	uint32_t	receive_buff_data_size;	/*  buffer size */
+
+	/* Pointers to IP-backdoor callbacks */
+	void		*notify_routine;
+	void		*notify_context;
+	void		*send_completion_routine;
+	void		*receive_packets_routine;
+	void		*receive_packets_context;
+
+	uint32_t        unused3[9];
+};
+
+
+/************************************************************************/
+/* RISC interface structures                                            */
+/************************************************************************/
+
+/* IP mailbox commands */
+#define MBC_INITIALIZE_IP               0x0077
+#define MBC_DISABLE_IP                  0x0079
+
+/* IP async events */
+#define MBA_IP_TRANSMIT_COMPLETE        0x8022
+#define MBA_IP_RECEIVE_COMPLETE         0x8023
+#define MBA_IP_BROADCAST_RECEIVED       0x8024
+#define MBA_IP_RECEIVE_BUFFERS_LOW      0x8025
+#define MBA_IP_OUT_OF_BUFFERS           0x8026
+#define MBA_IP_RECEIVE_COMPLETE_SPLIT   0x8027
+
+/* IP fast post completions for 2300 */
+#define RHS_IP_SEND_COMPLETE            0x18
+#define RHS_IP_RECV_COMPLETE            0x19
+#define RHS_IP_RECV_DA_COMPLETE         0x1B
+
+/* RISC IP receive buffer queue entry structure */
+struct risc_rec_entry
+{
+	uint32_t        data_addr_low;
+	uint32_t        data_addr_high;
+	uint16_t        handle;
+	uint16_t        unused;
+};
+
+/* Firmware IP initialization control block definitions */
+struct ip_init_cb
+{
+	uint8_t		version;
+#define IPICB_VERSION				0x01
+
+	uint8_t		reserved_1;
+
+	uint16_t	firmware_options;
+#define IPICB_OPTION_64BIT_ADDRESSING		0x0001
+#define IPICB_OPTION_NO_BROADCAST_FASTPOST	0x0002
+#define IPICB_OPTION_OUT_OF_BUFFERS_EVENT	0x0004
+
+	uint16_t	header_size;
+	uint16_t	mtu;
+	uint16_t	receive_buffer_size;
+	uint16_t	reserved_2;
+	uint16_t	reserved_3;
+	uint16_t	reserved_4;
+	uint16_t	reserved_5;
+
+	uint16_t	receive_queue_size;
+	uint16_t	low_water_mark;
+#define IPICB_LOW_WATER_MARK			0
+
+	uint16_t	receive_queue_addr[4];
+	uint16_t	receive_queue_in;
+	uint16_t	fast_post_count;
+#define IPICB_FAST_POST_COUNT			4
+
+	uint16_t	container_count;
+#define IPICB_BUFFER_CONTAINER_COUNT		64
+
+	uint16_t	resource_allocation;
+#define IPICB_IOCB_RESERVE_COUNT		250
+};
+
+
+/* IP IOCB types */
+
+/* Data segment descriptor structures */
+struct data_seg
+{
+	uint32_t	address;
+	uint32_t	length;
+};
+
+struct data_seg_a64
+{
+	uint32_t	address[2];
+	uint32_t	length;
+};
+
+/* IP Command IOCB structure */
+struct ip_cmd_entry
+{
+	uint8_t		entry_type;
+#define ET_IP_COMMAND_32		0x13
+#define ET_IP_COMMAND_64		0x1B
+
+	uint8_t		entry_count;
+	uint8_t		sys_define;
+	uint8_t		entry_status;
+
+	uint32_t	handle;
+
+#if defined(EXTENDED_IDS)
+	uint16_t        loop_id;
+#else
+	uint8_t         reserved_1;
+	uint8_t         loop_id;
+#endif
+
+	uint16_t	comp_status;
+	uint16_t	control_flags;
+	uint16_t	reserved_2;
+	uint16_t	timeout;
+	uint16_t	data_seg_count;
+	uint16_t	service_class;
+	uint16_t	reserved_3[7];
+	uint32_t	byte_count;
+	union
+	{
+		struct data_seg		data_segs[3];
+		struct data_seg_a64	data_segs64[2];
+	} ds;
+};
+
+/* IP Receive IOCB structure */
+#define ET_IP_RECEIVE_CONTINUATION  0x2B
+
+struct ip_rec_entry
+{
+	uint8_t		entry_type;
+#define ET_IP_RECEIVE			0x23
+
+	uint8_t		entry_count;
+	uint8_t		segment_count;
+	uint8_t		entry_status;
+
+	uint16_t	s_idlow;
+	uint8_t		s_idhigh;
+	uint8_t		reserved_1;
+	uint8_t		reserved_2;
+	uint8_t		loop_id;
+	uint16_t	comp_status;
+#define IPREC_STATUS_SPLIT_BUFFER	0x0001
+
+	uint16_t	service_class;
+	uint16_t	sequence_length;
+
+#define IPREC_MAX_HANDLES		24
+	uint16_t	buffer_handles[IPREC_MAX_HANDLES];
+};
+
+#endif /* _QLA_IP_H_ */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_isr.c 350-qlogic/drivers/scsi/qla2xxx/qla_isr.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_isr.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_isr.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,1496 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+static void qla2x00_mbx_completion(scsi_qla_host_t *, uint16_t);
+static void qla2x00_async_event(scsi_qla_host_t *, uint32_t);
+static void qla2x00_process_completed_request(struct scsi_qla_host *, int);
+void qla2x00_process_response_queue(struct scsi_qla_host *);
+static void qla2x00_status_entry(scsi_qla_host_t *, sts_entry_t *);
+static void qla2x00_status_cont_entry(scsi_qla_host_t *, sts_cont_entry_t *);
+static void qla2x00_error_entry(scsi_qla_host_t *, sts_entry_t *);
+static void qla2x00_ms_entry(scsi_qla_host_t *, ms_iocb_entry_t *);
+
+static int qla2x00_check_sense(struct scsi_cmnd *cp, os_lun_t *);
+
+/**
+ * qla2x00_intr_handler() - Process interrupts for the ISP.
+ * @irq:
+ * @dev_id: SCSI driver HA context
+ * @regs:
+ *
+ * Called by system whenever the host adapter generates an interrupt.
+ *
+ * Returns handled flag.
+ */
+irqreturn_t
+qla2x00_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
+{
+	scsi_qla_host_t	*ha;
+	device_reg_t	*reg;
+	uint32_t	mbx;
+	int		status = 0;
+	unsigned long	flags = 0;
+	unsigned long	mbx_flags = 0;
+	unsigned long	intr_iter;
+#if defined(ISP2300)
+	uint16_t	stat;
+	uint16_t	hccr;
+#endif
+
+	/* Don't loop forever, interrupt are OFF */
+	intr_iter = 50; 
+
+	ha = (scsi_qla_host_t *) dev_id;
+	if (!ha) {
+		printk(KERN_INFO
+		    "%s(): NULL host pointer\n", __func__);
+		return (IRQ_NONE);
+	}
+
+	reg = ha->iobase;
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	for (;;) {
+		/* Relax CPU! */
+		if (!(intr_iter--))
+			break;
+
+#if defined(ISP2100) || defined(ISP2200)
+		if ((RD_REG_WORD(&reg->istatus) & ISR_RISC_INT) == 0) {
+			break;
+		}
+
+		if (RD_REG_WORD(&reg->semaphore) & BIT_0) {
+			WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+
+			/* Get mailbox data. */
+			mbx = RD_REG_WORD(&reg->mailbox0);
+			if (mbx > 0x3fff && mbx < 0x8000) {
+				qla2x00_mbx_completion(ha, (uint16_t)mbx);
+				status |= MBX_INTERRUPT;
+			} else if (mbx > 0x7fff && mbx < 0xc000) {
+				qla2x00_async_event(ha, mbx);
+			} else {
+				/*EMPTY*/
+				DEBUG2(printk("scsi(%ld): Unrecognized "
+				    "interrupt type (%d)\n",
+				    ha->host_no, mbx));
+			}
+			/* Release mailbox registers. */
+			WRT_REG_WORD(&reg->semaphore, 0);
+		} else {
+			qla2x00_process_response_queue(ha);
+
+			WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+		}
+
+#else /* ISP2300 */
+		if ((ha->pdev->device == QLA2312_DEVICE_ID ||
+		    ha->pdev->device == QLA2322_DEVICE_ID) &&
+		    (RD_REG_WORD(&reg->istatus) & ISR_RISC_INT) == 0) {
+			break;
+		}
+
+		stat = RD_REG_WORD(&reg->host_status_lo);
+		if ((stat & HSR_INT) == 0) {
+			break;
+		}
+
+		mbx = RD_REG_WORD(&reg->host_status_hi);
+		switch (stat & 0xff) {
+		case 0x13:
+			qla2x00_process_response_queue(ha);
+			break;
+		case 0x1:
+		case 0x2:
+		case 0x10:
+		case 0x11:
+			qla2x00_mbx_completion(ha, (uint16_t)mbx);
+			status |= MBX_INTERRUPT;
+
+			/* Release mailbox registers. */
+			WRT_REG_WORD(&reg->semaphore, 0);
+			break;
+		case 0x12:
+			qla2x00_async_event(ha, mbx);
+			break;
+		case 0x15:
+			mbx = mbx << 16 | MBA_CMPLT_1_16BIT;
+			qla2x00_async_event(ha, mbx);
+			break;
+		case 0x16:
+			mbx = mbx << 16 | MBA_SCSI_COMPLETION;
+			qla2x00_async_event(ha, mbx);
+			break;
+
+#if defined(FC_IP_SUPPORT)
+		case 0x18:
+			WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+			qla2x00_ip_send_complete(ha, mbx, CS_COMPLETE);
+			continue;
+			break;
+		case 0x19:
+			qla2x00_ip_receive_fastpost(ha,
+			    MBA_IP_RECEIVE_COMPLETE);
+			break;
+		case 0x1b:
+			qla2x00_ip_receive_fastpost(ha,
+			    MBA_IP_RECEIVE_COMPLETE_SPLIT);
+			break;
+#endif
+		default:
+			hccr = RD_REG_WORD(&reg->hccr);
+			if (hccr & HCCR_RISC_PAUSE) {
+				printk(KERN_INFO
+				    "scsi(%ld): RISC paused, dumping HCCR "
+				    "(%x)\n",
+				    ha->host_no,
+				    hccr);
+
+				/*
+				 * Issue a "HARD" reset in order for the RISC
+				 * interrupt bit to be cleared.  Schedule a big
+				 * hammmer to get out of the RISC PAUSED state.
+				 */
+				WRT_REG_WORD(&reg->hccr, HCCR_RESET_RISC);
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+				break;
+			} else {
+				DEBUG2(printk("scsi(%ld): Unrecognized "
+				    "interrupt type (%d)\n",
+				    ha->host_no, stat & 0xff));
+			}
+			break;
+		}
+
+		WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+#endif
+	}
+
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	qla2x00_next(ha);
+	ha->last_irq_cpu = smp_processor_id();
+	ha->total_isr_cnt++;
+
+	if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) &&
+	    (status & MBX_INTERRUPT) && ha->flags.mbox_int) {
+
+		/* There was a mailbox completion */
+		DEBUG3(printk("%s(%ld): Going to get mbx reg lock.\n",
+		    __func__, ha->host_no));
+
+		QLA_MBX_REG_LOCK(ha);
+
+		if (ha->mcp == NULL) {
+			DEBUG3(printk("%s(%ld): Error mbx pointer.\n",
+			    __func__, ha->host_no));
+		} else {
+			DEBUG3(printk("%s(%ld): Going to set mbx intr flags. "
+			    "cmd=%x.\n",
+			    __func__, ha->host_no, ha->mcp->mb[0]));
+		}
+		set_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+		DEBUG3(printk("%s(%ld): Going to wake up mbx function for "
+		    "completion.\n",
+		    __func__, ha->host_no));
+
+		up(&ha->mbx_intr_sem);
+
+		DEBUG3(printk("%s(%ld): Going to release mbx reg lock.\n",
+		    __func__, ha->host_no));
+		QLA_MBX_REG_UNLOCK(ha);
+	}
+
+	if (!list_empty(&ha->done_queue))
+		qla2x00_done(ha);
+
+	/* Wakeup the DPC routine */
+	if ((!ha->flags.mbox_busy &&
+	    (test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+		test_bit(RESET_MARKER_NEEDED, &ha->dpc_flags) ||
+		test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))) &&
+		    ha->dpc_wait && !ha->dpc_active) {
+
+		up(ha->dpc_wait);
+	}
+
+	return (IRQ_HANDLED);
+}
+
+/**
+ * qla2x00_mbx_completion() - Process mailbox command completions.
+ * @ha: SCSI driver HA context
+ * @mb0: Mailbox0 register
+ */
+static void
+qla2x00_mbx_completion(scsi_qla_host_t *ha, uint16_t mb0)
+{
+	uint16_t                cnt;
+	uint16_t                *wptr;
+	device_reg_t            *reg = ha->iobase;
+
+	/* Load return mailbox registers. */
+	ha->flags.mbox_int = TRUE;
+	ha->mailbox_out[0] = mb0;
+	wptr = (uint16_t *)&reg->mailbox1;
+
+	for (cnt = 1; cnt < MAILBOX_REGISTER_COUNT; cnt++) {
+#if defined(ISP2200)
+		if (cnt == 8) 
+			wptr = (uint16_t *)&reg->mailbox8;
+#endif
+		if (cnt == 4 || cnt == 5)
+			ha->mailbox_out[cnt] = qla2x00_debounce_register(wptr);
+		else
+			ha->mailbox_out[cnt] = RD_REG_WORD(wptr);
+	
+		wptr++;
+	}
+
+	if (ha->mcp) {
+		DEBUG3(printk("%s(%ld): Got mailbox completion. cmd=%x.\n",
+		    __func__, ha->host_no, ha->mcp->mb[0]));
+	} else {
+		DEBUG2_3(printk("%s(%ld): MBX pointer ERROR!\n",
+		    __func__, ha->host_no));
+	}
+}
+
+/**
+ * qla2x00_async_event() - Process aynchronous events.
+ * @ha: SCSI driver HA context
+ * @mb0: Mailbox0 register
+ */
+static void
+qla2x00_async_event(scsi_qla_host_t *ha, uint32_t mbx)
+{
+	uint16_t	mb[4];
+	uint16_t	handle_cnt;
+	uint16_t	cnt;
+	uint32_t	handles[5];
+	device_reg_t	*reg = ha->iobase;
+	uint8_t		rscn_queue_index;
+
+	/* Setup to process RIO completion. */
+	handle_cnt = 0;
+	mb[0] = LSW(mbx);
+	switch (mb[0]) {
+	case MBA_SCSI_COMPLETION:
+#if defined(ISP2100) || defined(ISP2200)
+		handles[0] = RD_REG_WORD(&reg->mailbox1);
+#else
+		handles[0] = MSW(mbx);
+#endif
+		handles[0] |= (uint32_t)(RD_REG_WORD(&reg->mailbox2) << 16);
+		handle_cnt = 1;
+		break;
+	case MBA_CMPLT_1_16BIT:
+#if defined(ISP2100) || defined(ISP2200)
+		handles[0] = (uint32_t)RD_REG_WORD(&reg->mailbox1);
+#else
+		handles[0] = MSW(mbx);
+#endif
+		handle_cnt = 1;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	case MBA_CMPLT_2_16BIT:
+		handles[0] = (uint32_t)RD_REG_WORD(&reg->mailbox1);
+		handles[1] = (uint32_t)RD_REG_WORD(&reg->mailbox2);
+		handle_cnt = 2;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	case MBA_CMPLT_3_16BIT:
+		handles[0] = (uint32_t)RD_REG_WORD(&reg->mailbox1);
+		handles[1] = (uint32_t)RD_REG_WORD(&reg->mailbox2);
+		handles[2] = (uint32_t)RD_REG_WORD(&reg->mailbox3);
+		handle_cnt = 3;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	case MBA_CMPLT_4_16BIT:
+		handles[0] = (uint32_t)RD_REG_WORD(&reg->mailbox1);
+		handles[1] = (uint32_t)RD_REG_WORD(&reg->mailbox2);
+		handles[2] = (uint32_t)RD_REG_WORD(&reg->mailbox3);
+		handles[3] = (uint32_t)RD_REG_WORD(&reg->mailbox6);
+		handle_cnt = 4;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	case MBA_CMPLT_5_16BIT:
+		handles[0] = (uint32_t)RD_REG_WORD(&reg->mailbox1);
+		handles[1] = (uint32_t)RD_REG_WORD(&reg->mailbox2);
+		handles[2] = (uint32_t)RD_REG_WORD(&reg->mailbox3);
+		handles[3] = (uint32_t)RD_REG_WORD(&reg->mailbox6);
+		handles[4] = (uint32_t)RD_REG_WORD(&reg->mailbox7);
+		handle_cnt = 5;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	case MBA_CMPLT_2_32BIT:
+		handles[0] = (uint32_t)((RD_REG_WORD(&reg->mailbox2) << 16) |
+		    RD_REG_WORD(&reg->mailbox1));
+		handles[1] = (uint32_t)((RD_REG_WORD(&reg->mailbox7) << 16) |
+		    RD_REG_WORD(&reg->mailbox6));
+		handle_cnt = 2;
+		mb[0] = MBA_SCSI_COMPLETION;
+		break;
+	default:
+		break;
+	}
+
+	mb[0] = LSW(mbx);
+	switch (mb[0]) {
+	case MBA_SCSI_COMPLETION:	/* Fast Post */
+		if (!ha->flags.online)
+			break;
+
+		for (cnt = 0; cnt < handle_cnt; cnt++)
+			qla2x00_process_completed_request(ha, handles[cnt]);
+		break;
+
+#if defined(FC_IP_SUPPORT)
+	case MBA_IP_TRANSMIT_COMPLETE:	/* IP Completion */
+		mb[1] = RD_REG_WORD(&reg->mailbox1);
+
+		qla2x00_ip_send_complete(ha, mb[1], CS_COMPLETE);
+		break;
+
+	case MBA_IP_RECEIVE_COMPLETE:
+	case MBA_IP_RECEIVE_COMPLETE_SPLIT:
+		qla2x00_ip_receive_fastpost(ha, mb[0]);
+		break;
+#endif /* FC_IP_SUPPORT */
+
+	case MBA_RESET:			/* Reset */
+		DEBUG2(printk("scsi(%ld): Asynchronous RESET.\n", ha->host_no));
+
+		set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+		break;
+
+	case MBA_SYSTEM_ERR:		/* System Error */
+		mb[1] = RD_REG_WORD(&reg->mailbox1);
+		mb[2] = RD_REG_WORD(&reg->mailbox2);
+		mb[3] = RD_REG_WORD(&reg->mailbox3);
+
+		printk(KERN_INFO
+		    "scsi(%ld): ISP System Error - mbx1=%xh mbx2=%xh "
+		    "mbx3=%xh.\n",
+		    ha->host_no, mb[1], mb[2], mb[3]);
+
+    		qla2x00_dump_isp(ha, 1);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		break;
+
+	case MBA_REQ_TRANSFER_ERR:	/* Request Transfer Error */
+		DEBUG2(printk("scsi(%ld): ISP Request Transfer Error.\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): ISP Request Transfer Error.\n", ha->host_no);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		break;
+
+	case MBA_RSP_TRANSFER_ERR:	/* Response Transfer Error */
+		DEBUG2(printk("scsi(%ld): ISP Response Transfer Error.\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): ISP Response Transfer Error.\n", ha->host_no);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		break;
+
+	case MBA_WAKEUP_THRES:		/* Request Queue Wake-up */
+		DEBUG2(printk("scsi(%ld): Asynchronous WAKEUP_THRES.\n",
+		    ha->host_no));
+		break;
+
+	case MBA_LIP_OCCURRED:		/* Loop Initialization Procedure */
+		DEBUG2(printk("scsi(%ld): Asynchronous LIP Occured.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): Asynchronous LIP Occured.\n", ha->host_no);
+
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;
+			atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+		set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+		set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
+
+		ha->flags.management_server_logged_in = 0;
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_LIP_OCCURRED, NULL);
+		}
+
+		ha->total_lip_cnt++;
+		break;
+
+	case MBA_LOOP_UP:		/* Loop Up Event */
+		mb[1] = RD_REG_WORD(&reg->mailbox1);
+
+		DEBUG2(printk("scsi(%ld): Asynchronous LOOP UP.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): LOOP UP detected.\n", ha->host_no);
+
+		ha->flags.management_server_logged_in = 0;
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_LOOP_UP, NULL);
+		}
+
+		/* Save the current speed for use by ioctl and IP driver */
+		ha->current_speed = EXT_DEF_PORTSPEED_1GBIT;
+#if defined(ISP2300)
+		if (mb[1] == 1)
+			ha->current_speed = EXT_DEF_PORTSPEED_2GBIT;
+#endif
+		break;
+
+	case MBA_LOOP_DOWN:		/* Loop Down Event */
+		DEBUG2(printk("scsi(%ld): Asynchronous LOOP DOWN.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): LOOP DOWN detected.\n", ha->host_no);
+
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;
+			atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+		ha->flags.management_server_logged_in = 0;
+		ha->current_speed = 0; /* reset value */
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_LOOP_DOWN, NULL);
+		}
+		break;
+
+	case MBA_LIP_RESET:		/* LIP reset occurred */
+		DEBUG2(printk("scsi(%ld): Asynchronous LIP RESET.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): LIP reset occured.\n", ha->host_no);
+
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;
+			atomic_set(&ha->loop_down_timer, LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+		set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+		set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+
+		ha->operating_mode = LOOP;
+		ha->flags.management_server_logged_in = 0;
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_LIP_RESET, NULL);
+		}
+
+		ha->total_lip_cnt++;
+		break;
+
+#if !defined(ISP2100)
+	case MBA_POINT_TO_POINT:	/* Point-to-Point */
+		DEBUG2(printk("scsi(%ld): Asynchronous P2P MODE received.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): P2P mode received.\n",
+		    ha->host_no);
+
+		/*
+		 * Until there's a transition from loop down to loop up, treat
+		 * this as loop down only.
+		 */
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;
+			if (!atomic_read(&ha->loop_down_timer))
+				atomic_set(&ha->loop_down_timer,
+				    LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+		if (!(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags))) {
+			set_bit(COMMAND_WAIT_NEEDED, &ha->dpc_flags);
+			set_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+		}
+		set_bit(REGISTER_FC4_NEEDED, &ha->dpc_flags);
+		break;
+
+	case MBA_CHG_IN_CONNECTION:	/* Change in connection mode */
+		mb[1] = RD_REG_WORD(&reg->mailbox1);
+
+		DEBUG2(printk("scsi(%ld): Asynchronous Change In Connection "
+		    "received.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): Configuration change detected: value=%x.\n",
+		    ha->host_no, mb[1]);
+
+		if (ha->loop_state != LOOP_DOWN) {
+			ha->loop_state = LOOP_DOWN;  
+			if (!atomic_read(&ha->loop_down_timer))
+				atomic_set(&ha->loop_down_timer,
+				    LOOP_DOWN_TIME);
+			qla2x00_mark_all_devices_lost(ha);
+		}
+
+		set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+		set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+		break;
+#endif	/* #if !defined(ISP2100) */
+
+	case MBA_PORT_UPDATE:		/* Port database update */
+		/*
+		 * If PORT UPDATE is global (recieved LIP_OCCURED/LIP_RESET
+		 * event etc. earlier indicating loop is down) then process
+		 * it.  Otherwise ignore it and Wait for RSCN to come in.
+		 */
+		if (ha->loop_state != LOOP_DOWN) {
+			DEBUG2(printk("scsi(%ld): Asynchronous PORT UPDATE "
+			    "ignored.\n", ha->host_no));
+			printk(KERN_INFO
+			    "scsi(%ld): Asynchronous PORT UPDATE ignored.\n",
+			    ha->host_no);
+			break;
+		}
+
+		DEBUG2(printk("scsi(%ld): Asynchronous PORT UPDATE.\n",
+		    ha->host_no));
+		printk(KERN_INFO
+		    "scsi(%ld): Port database changed.\n", ha->host_no);
+
+		/*
+		 * Mark all devices as missing so we will login again.
+		 */
+		ha->loop_state = LOOP_UP;
+
+		atomic_set(&ha->loop_down_timer, 0);
+		qla2x00_mark_all_devices_lost(ha);
+
+		ha->flags.rscn_queue_overflow = 1;
+
+		set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+		set_bit(LOCAL_LOOP_UPDATE, &ha->dpc_flags);
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_PORT_UPDATE, NULL);
+		}
+		break;
+
+	case MBA_RSCN_UPDATE:		/* State Change Registration */
+		mb[1] = RD_REG_WORD(&reg->mailbox1);
+		mb[2] = RD_REG_WORD(&reg->mailbox2);
+
+		DEBUG2(printk("scsi(%ld): Asynchronous RSCR UPDATE.\n",
+		    ha->host_no));
+		DEBUG(printk(KERN_INFO
+		    "scsi(%ld): RSCN database changed - 0x%x, 0x%x.\n",
+		    ha->host_no, mb[1], mb[2]));
+
+		rscn_queue_index = ha->rscn_in_ptr + 1;
+		if (rscn_queue_index == MAX_RSCN_COUNT)
+			rscn_queue_index = 0;
+		if (rscn_queue_index != ha->rscn_out_ptr) {
+			ha->rscn_queue[ha->rscn_in_ptr].format =
+			    MSB(mb[1]);
+			ha->rscn_queue[ha->rscn_in_ptr].d_id.b.domain =
+			    LSB(mb[1]);
+			ha->rscn_queue[ha->rscn_in_ptr].d_id.b.area =
+			    MSB(mb[2]);
+			ha->rscn_queue[ha->rscn_in_ptr].d_id.b.al_pa =
+			    LSB(mb[2]);
+			ha->rscn_in_ptr = rscn_queue_index;
+		} else {
+			ha->flags.rscn_queue_overflow = 1;
+		}
+
+		ha->loop_state = LOOP_UPDATE;
+		atomic_set(&ha->loop_down_timer, 0);
+		ha->flags.management_server_logged_in = 0;
+
+		set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+		set_bit(RSCN_UPDATE, &ha->dpc_flags);
+
+		/* Update AEN queue. */
+		if (ha->ioctl->flags & IOCTL_AEN_TRACKING_ENABLE) {
+			qla2x00_enqueue_aen(ha, MBA_RSCN_UPDATE, &mb[0]);
+		}
+		break;
+
+	/* case MBA_RIO_RESPONSE: */
+	case MBA_ZIO_RESPONSE:
+		DEBUG2(printk("scsi(%ld): [R|Z]IO update completion.\n",
+		    ha->host_no));
+		DEBUG(printk(KERN_INFO
+		    "scsi(%ld): [R|Z]IO update completion.\n",
+		    ha->host_no));
+
+		qla2x00_process_response_queue(ha);
+		break;
+	}
+}
+
+/**
+ * qla2x00_process_completed_request() - Process a Fast Post response.
+ * @ha: SCSI driver HA context
+ * @index: SRB index
+ */
+static void
+qla2x00_process_completed_request(struct scsi_qla_host *ha, int index)
+{
+	srb_t *sp;
+
+	/* Validate handle. */
+	if (index >= MAX_OUTSTANDING_COMMANDS) {
+		DEBUG2(printk("scsi(%ld): Invalid SCSI completion handle %d.\n",
+		    ha->host_no, index));
+		printk(KERN_WARNING
+		    "scsi(%ld): Invalid SCSI completion handle %d.\n",
+		    ha->host_no, index);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		return;
+	}
+
+	sp = ha->outstanding_cmds[index];
+	if (sp) {
+		/* Free outstanding command slot. */
+		ha->outstanding_cmds[index] = 0;
+
+		/* Perform any post command processing */
+		qla2x00_filter_command(ha, sp);
+
+		if (ha->actthreads)
+			ha->actthreads--;
+		sp->lun_queue->out_cnt--;
+		CMD_COMPL_STATUS(sp->cmd) = 0L;
+		CMD_SCSI_STATUS(sp->cmd) = 0L;
+
+		/* Save ISP completion status */
+		sp->cmd->result = DID_OK << 16;
+		sp->fo_retry_cnt = 0;
+		add_to_done_queue(ha, sp);
+	} else {
+		DEBUG2(printk("scsi(%ld): Invalid ISP SCSI completion handle\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): Invalid ISP SCSI completion handle\n",
+		    ha->host_no);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+	}
+}
+
+/**
+ * qla2x00_process_response_queue() - Process response queue entries.
+ * @ha: SCSI driver HA context
+ */
+void
+qla2x00_process_response_queue(struct scsi_qla_host *ha)
+{
+	device_reg_t	*reg = ha->iobase;
+	sts_entry_t	*pkt;
+
+	if (!ha->flags.online)
+		return;
+
+	while (ha->response_ring_ptr->signature != RESPONSE_PROCESSED) {
+		pkt = (sts_entry_t *)ha->response_ring_ptr;
+
+		ha->rsp_ring_index++;
+		if (ha->rsp_ring_index == RESPONSE_ENTRY_CNT) {
+			ha->rsp_ring_index = 0;
+			ha->response_ring_ptr = ha->response_ring;
+		} else {
+			ha->response_ring_ptr++;
+		}
+
+#if defined(FC_IP_SUPPORT)
+		/* This code is temporary until FW is fixed.  FW is mistakenly
+		 * setting bit 6 on Mailbox IOCB response */
+		pkt->entry_status &= 0x3f;
+#endif
+
+		if (pkt->entry_status != 0) {
+			DEBUG3(printk(KERN_INFO
+			    "scsi(%ld): Process error entry.\n", ha->host_no));
+
+			qla2x00_error_entry(ha, pkt);
+			((response_t *)pkt)->signature = RESPONSE_PROCESSED;
+			continue;
+		}
+
+		switch (pkt->entry_type) {
+		case STATUS_TYPE:
+		case STATUS_TYPE_21:
+		case STATUS_TYPE_22:
+			qla2x00_status_entry(ha, pkt);
+			break;
+
+		case STATUS_CONT_TYPE:
+			qla2x00_status_cont_entry(ha, (sts_cont_entry_t *)pkt);
+			break;
+
+		case MS_IOCB_TYPE:
+			qla2x00_ms_entry(ha, (ms_iocb_entry_t *)pkt);
+			break;
+
+#if defined(FC_IP_SUPPORT)
+		case ET_IP_COMMAND_64:
+			/* Handle IP send completion */
+			qla2x00_ip_send_complete(ha,
+			    pkt->handle, le16_to_cpu(pkt->comp_status));
+			break;
+
+		case ET_IP_RECEIVE:
+			/* Handle IP receive packet */
+			qla2x00_ip_receive(ha, pkt);
+			break;
+
+		case ET_MAILBOX_COMMAND:
+		    if (pkt->sys_define == SOURCE_IP) {
+			    qla2x00_ip_mailbox_iocb_done(ha,
+				(struct mbx_entry *)pkt);
+			    break;
+		    }       
+#endif  /* FC_IP_SUPPORT */
+
+		default:
+			/* Type Not Supported. */
+			DEBUG4(printk(KERN_WARNING
+			    "scsi(%ld): Received unknown response pkt type %x "
+			    "entry status=%x.\n",
+			    ha->host_no, pkt->entry_type, pkt->entry_status));
+			break;
+		}
+		((response_t *)pkt)->signature = RESPONSE_PROCESSED;
+	}
+
+	/* Adjust ring index */
+	WRT_REG_WORD(ISP_RSP_Q_OUT(reg), ha->rsp_ring_index);
+}
+
+/**
+ * qla2x00_status_entry() - Process a Status IOCB entry.
+ * @ha: SCSI driver HA context
+ * @pkt: Entry pointer
+ */
+static void
+qla2x00_status_entry(scsi_qla_host_t *ha, sts_entry_t *pkt)
+{
+	int		ret;
+	uint32_t        handles[30];
+	uint16_t        handle_cnt;
+	uint16_t        cnt;
+	uint16_t        index;
+	unsigned	b, t, l;
+	srb_t		*sp;
+	os_lun_t	*lq;
+	os_tgt_t	*tq;
+	fc_port_t	*fcport;
+	struct scsi_cmnd *cp;
+	uint16_t	comp_status;
+	uint16_t	scsi_status;
+	uint8_t		lscsi_status;
+	uint32_t	resid;
+	uint8_t		sense_sz = 0;
+
+	handle_cnt = 0;
+	switch (pkt->entry_type) {
+	case STATUS_TYPE:
+		handle_cnt = 1;
+		handles[0] = pkt->handle;
+		break;
+#if defined(ISP2100) || defined(ISP2200)
+	case STATUS_TYPE_22:
+		handle_cnt = ((sts22_entry_t *)pkt)->handle_count;
+		for (cnt = 0; cnt < handle_cnt; cnt++) {
+			handles[cnt] =
+			    (uint32_t)((sts22_entry_t *)pkt)->handle[cnt];
+		}
+		break;
+	case STATUS_TYPE_21:
+		handle_cnt = ((sts21_entry_t *)pkt)->handle_count;
+		for (cnt = 0; cnt < handle_cnt; cnt++) {
+			handles[cnt] =
+			    (uint32_t)((sts21_entry_t *)pkt)->handle[cnt];
+		}
+		break;
+#endif
+	}
+
+	for (cnt = 0; cnt < handle_cnt; cnt++) {
+		/* Get outstanding command index. */
+		index = handles[cnt];
+
+		if (pkt->entry_type == STATUS_TYPE_22 ||
+		    pkt->entry_type == STATUS_TYPE_21 ||
+		    (le16_to_cpu(pkt->comp_status) == CS_COMPLETE &&
+			(le16_to_cpu(pkt->scsi_status) & SS_MASK) == 0)) {
+
+			qla2x00_process_completed_request(ha, index);
+			continue;
+		}
+
+		/* Validate handle. */
+		if (index < MAX_OUTSTANDING_COMMANDS) {
+			sp = ha->outstanding_cmds[index];
+			ha->outstanding_cmds[index] = 0;
+		} else
+			sp = NULL;
+
+		if (sp == NULL) {
+			DEBUG2(printk("scsi(%ld): Status Entry invalid "
+			    "handle.\n", ha->host_no));
+			printk(KERN_WARNING
+			    "scsi(%ld): Status Entry invalid handle.\n",
+			    ha->host_no);
+
+			set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			if (ha->dpc_wait && !ha->dpc_active) 
+				up(ha->dpc_wait);
+
+			return;
+		}
+		cp = sp->cmd;
+		if (cp == NULL) {
+			DEBUG2(printk("scsi(%ld): Command already returned "
+			    "back to OS pkt->handle=%d sp=%p sp->state:%d\n",
+			    ha->host_no, pkt->handle, sp, sp->state));
+			printk(KERN_WARNING
+			    "scsi(%ld): Command is NULL: already returned to "
+			    "OS (sp=%p)\n", ha->host_no, sp);
+
+			continue;
+		}
+
+		if (ha->actthreads)
+			ha->actthreads--;
+
+		if (sp->lun_queue == NULL) {
+			DEBUG2(printk("scsi(%ld): Status Entry invalid lun "
+			    "pointer.\n", ha->host_no));
+			printk(KERN_WARNING
+			    "scsi(%ld): Status Entry invalid lun pointer.\n",
+			    ha->host_no);
+
+			set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			if (ha->dpc_wait && !ha->dpc_active) 
+				up(ha->dpc_wait);
+
+			return;
+		}
+
+		sp->lun_queue->out_cnt--;
+
+		comp_status = le16_to_cpu(pkt->comp_status);
+		/*
+		 * Mask of reserved bits 12-15, before we examine the scsi
+		 * status
+		 */
+		scsi_status = le16_to_cpu(pkt->scsi_status) & SS_MASK;
+		lscsi_status = scsi_status & STATUS_MASK;
+
+		CMD_ENTRY_STATUS(cp) = pkt->entry_status;
+		CMD_COMPL_STATUS(cp) = comp_status;
+		CMD_SCSI_STATUS(cp) = scsi_status;
+
+		/* Generate LU queue on cntrl, target, LUN */
+		b = cp->device->channel;
+		t = cp->device->id;
+		l = cp->device->lun,
+
+		tq = sp->tgt_queue;
+		lq = sp->lun_queue;
+
+		/*
+		 * If loop is in transient state Report DID_BUS_BUSY
+		 */
+		if ((comp_status != CS_COMPLETE || scsi_status != 0)) {
+			if (!(sp->flags & SRB_IOCTL) &&
+			    (atomic_read(&ha->loop_down_timer) ||
+				ha->loop_state != LOOP_READY)) {
+
+				DEBUG2(printk("scsi(%ld:%d:%d:%d): Loop Not "
+				    "Ready - pid=%lx.\n",
+				    ha->host_no, b, t, l,
+				    sp->cmd->serial_number));
+
+				qla2x00_extend_timeout(sp->cmd,
+				    EXTEND_CMD_TIMEOUT);
+				add_to_retry_queue(ha, sp);
+				continue;
+			}
+		}
+
+		/*
+		 * Based on Host and scsi status generate status code for Linux
+		 */
+		switch (comp_status) {
+		case CS_COMPLETE:
+			if (scsi_status == 0) {
+				cp->result = DID_OK << 16;
+
+				/* Perform any post command processing */
+				qla2x00_filter_command(ha, sp);
+				break;
+			}
+			if (lscsi_status == SS_BUSY_CONDITION) {
+				cp->result = DID_BUS_BUSY << 16 |
+				    lscsi_status;
+				break;
+			}
+
+			cp->result = DID_OK << 16 | lscsi_status;
+
+			if (lscsi_status != SS_CHECK_CONDITION)
+				break;
+
+			/*
+			 * Copy Sense Data into sense buffer
+			 */
+			memset(cp->sense_buffer, 0, sizeof(cp->sense_buffer));
+
+			if (!(scsi_status & SS_SENSE_LEN_VALID))
+				break;
+
+			if (le16_to_cpu(pkt->req_sense_length) <
+			    sizeof(cp->sense_buffer))
+				sense_sz = le16_to_cpu(pkt->req_sense_length);
+			else
+				sense_sz = sizeof(cp->sense_buffer) - 1;
+
+			CMD_ACTUAL_SNSLEN(cp) = sense_sz;
+			sp->request_sense_length = sense_sz;
+			sp->request_sense_ptr = cp->sense_buffer;
+
+			if (sp->request_sense_length > 32)
+				sense_sz = 32;
+
+			memcpy(cp->sense_buffer, pkt->req_sense_data, sense_sz);
+
+			sp->request_sense_ptr += sense_sz;
+			sp->request_sense_length -= sense_sz;
+			if (sp->request_sense_length != 0)
+				ha->status_srb = sp;
+
+			if (!(sp->flags & SRB_IOCTL) &&
+			    qla2x00_check_sense(cp, lq) == QLA_SUCCESS) {
+				/*
+				 * Throw away status_cont if any
+				 */
+				ha->status_srb = NULL;
+				add_to_scsi_retry_queue(ha, sp);
+				continue;
+			}
+
+			DEBUG5(printk("%s(): Check condition Sense data, "
+			    "scsi(%ld:%d:%d:%d) cmd=%p pid=%ld\n",
+			    __func__, ha->host_no, b, t, l, cp,
+			    cp->serial_number));
+			if (sense_sz)
+				DEBUG5(qla2x00_dump_buffer(cp->sense_buffer,
+				    CMD_ACTUAL_SNSLEN(cp)));
+			break;
+
+		case CS_DATA_UNDERRUN:
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld:%d:%d) UNDERRUN status detected "
+			    "0x%x-0x%x.\n", ha->host_no, t, l, comp_status,
+			    scsi_status));
+
+			resid = le32_to_cpu(pkt->residual_length);
+			CMD_RESID_LEN(cp) = resid;
+
+			/*
+			 * Check to see if SCSI Status is non zero. If so
+			 * report SCSI Status.
+			 */
+			if (lscsi_status != 0) {
+				if (lscsi_status == SS_BUSY_CONDITION) {
+					cp->result = DID_BUS_BUSY << 16 |
+					    lscsi_status;
+					break;
+				}
+
+				cp->result = DID_OK << 16 | lscsi_status;
+
+				if (lscsi_status != SS_CHECK_CONDITION)
+					break;
+
+				/*
+				 * Copy Sense Data into sense buffer
+				 */
+				memset(cp->sense_buffer, 0,
+				    sizeof(cp->sense_buffer));
+
+				if (!(scsi_status & SS_SENSE_LEN_VALID))
+					break;
+
+				if (le16_to_cpu(pkt->req_sense_length) <
+				    sizeof(cp->sense_buffer))
+					sense_sz =
+					    le16_to_cpu(pkt->req_sense_length);
+				else
+					sense_sz = sizeof(cp->sense_buffer) - 1;
+
+				CMD_ACTUAL_SNSLEN(cp) = sense_sz;
+				sp->request_sense_length = sense_sz;
+				sp->request_sense_ptr = cp->sense_buffer;
+
+				if (sp->request_sense_length > 32) 
+					sense_sz = 32;
+
+				memcpy(cp->sense_buffer, pkt->req_sense_data,
+				    sense_sz);
+
+				sp->request_sense_ptr += sense_sz;
+				sp->request_sense_length -= sense_sz;
+				if (sp->request_sense_length != 0)
+					ha->status_srb = sp;
+
+				if (!(sp->flags & SRB_IOCTL) &&
+				    (qla2x00_check_sense(cp, lq) ==
+					QLA_SUCCESS)) {
+					ha->status_srb = NULL;
+					add_to_scsi_retry_queue(ha,sp);
+					continue;
+				}
+#if defined(QL_DEBUG_LEVEL_5)
+				printk("%s(): Check condition Sense data, "
+				    "scsi(%ld:%d:%d:%d) cmd=%p pid=%ld\n",
+				    __func__, ha->host_no, b, t, l,
+				    cp, cp->serial_number);
+				if (sense_sz)
+					qla2x00_dump_buffer(cp->sense_buffer,
+					    CMD_ACTUAL_SNSLEN(cp));
+#endif
+			} else {
+				/*
+				 * If RISC reports underrun and target does
+				 * not report it then we must have a lost
+				 * frame, so tell upper layer to retry it by
+				 * reporting a bus busy.
+				 */
+				if (!(scsi_status & SS_RESIDUAL_UNDER)) {
+					DEBUG2(printk("scsi(%ld:%d:%d:%d) "
+					    "Dropped frame(s) detected "
+					    "(%x of %x bytes)...retrying "
+					    "command.\n", ha->host_no, b, t, l,
+					    resid, cp->request_bufflen));
+
+					cp->result = DID_BUS_BUSY << 16;
+					ha->dropped_frame_error_cnt++;
+					break;
+				}
+
+				/* Handle mid-layer underflow */
+				cp->resid = resid;
+				if ((unsigned)(cp->request_bufflen - resid) <
+				    cp->underflow) {
+					printk(KERN_INFO
+					    "scsi(%ld:%d:%d:%d) Mid-layer "
+					    "underflow detected (%x of %x "
+					    "bytes)...returning error "
+					    "status.\n", ha->host_no, b, t, l,
+					    resid, cp->request_bufflen);
+
+					cp->result = DID_ERROR << 16;
+					break;
+				}
+
+				/* Everybody online, looking good... */
+				cp->result = DID_OK << 16;
+
+				/* Perform any post command processing */
+				qla2x00_filter_command(ha, sp);
+			}
+			break;
+
+		case CS_DATA_OVERRUN:
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld:%d:%d): OVERRUN status detected "
+			    "0x%x-0x%x\n", ha->host_no, t, l, comp_status,
+			    scsi_status));
+			DEBUG2(printk(KERN_INFO
+			    "CDB: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
+			    sp->cmd->cmnd[0], sp->cmd->cmnd[1],
+			    sp->cmd->cmnd[2], sp->cmd->cmnd[3],
+			    sp->cmd->cmnd[4], sp->cmd->cmnd[5]));
+			DEBUG2(printk(KERN_INFO
+			    "PID=0x%lx req=0x%x xtra=0x%x -- returning "
+			    "DID_ERROR status!\n", sp->cmd->serial_number,
+			    cp->request_bufflen,
+			    le32_to_cpu(pkt->residual_length)));
+
+			cp->result = DID_ERROR << 16;
+			break;
+
+		case CS_PORT_LOGGED_OUT:
+		case CS_PORT_CONFIG_CHG:
+		case CS_PORT_BUSY:
+		case CS_INCOMPLETE:
+		case CS_PORT_UNAVAILABLE:
+			/*
+			 * If the port is in Target Down state, return all IOs
+			 * for this Target with DID_NO_CONNECT ELSE Queue the
+			 * IOs in the retry_queue.
+			 */
+			fcport = sp->fclun->fcport;
+			DEBUG2(printk("scsi(%ld:%d:%d): 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) ||
+			    (atomic_read(&fcport->state) == FCS_DEVICE_DEAD)) {
+				cp->result = DID_NO_CONNECT << 16;
+				add_to_done_queue(ha, sp);
+			} else {
+				qla2x00_extend_timeout(cp, EXTEND_CMD_TIMEOUT);
+				add_to_retry_queue(ha, sp);
+			}
+
+			if (atomic_read(&fcport->state) == FCS_ONLINE) {
+				qla2x00_mark_device_lost(ha, fcport, 1);
+			}
+
+			continue;
+			break;
+
+		case CS_RESET:
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld): RESET status detected 0x%x-0x%x.\n",
+			    ha->host_no, comp_status, scsi_status));
+
+			if (sp->flags & SRB_IOCTL) {
+				cp->result = DID_RESET << 16;
+			} else {
+				qla2x00_extend_timeout(cp, EXTEND_CMD_TIMEOUT);
+				add_to_retry_queue(ha, sp);
+				continue;
+			}
+			break;
+
+		case CS_ABORTED:
+			/* 
+			 * hv2.19.12 - DID_ABORT does not retry the request if
+			 * we aborted this request then abort otherwise it
+			 * must be a reset.
+			 */
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld): ABORT status detected 0x%x-0x%x.\n",
+			    ha->host_no, comp_status, scsi_status));
+
+			cp->result = DID_RESET << 16;
+			break;
+
+		case CS_TIMEOUT:
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld:%d:%d:%d): TIMEOUT status detected "
+			    "0x%x-0x%x.\n", ha->host_no, b, t, l, comp_status,
+			    scsi_status));
+
+			cp->result = DID_BUS_BUSY << 16;
+
+			fcport = lq->fclun->fcport;
+
+			/* 
+			 * Check to see if logout occurred
+			 */
+			if ((le16_to_cpu(pkt->status_flags) & SF_LOGOUT_SENT)) {
+				qla2x00_mark_device_lost(ha, fcport, 1);
+			}
+			break;
+
+		case CS_QUEUE_FULL:
+			DEBUG2(printk(KERN_INFO
+			    "scsi(%ld): QUEUE FULL status detected "
+			    "0x%x-0x%x.\n", ha->host_no, comp_status,
+			    scsi_status));
+
+			/*
+			 * SCSI Mid-Layer handles device queue full.
+			 */				 
+			cp->result = DID_OK << 16 | lscsi_status;
+
+			/* TODO: ??? */
+			/* Adjust queue depth */
+			ret = scsi_track_queue_full(cp->device,
+			sp->lun_queue->out_cnt - 1);
+			if (ret) {
+				printk(KERN_INFO
+				    "scsi(%ld:%d:%d:%d): Queue depth adjusted "
+				    "to %d.\n", ha->host_no,
+				    cp->device->channel, cp->device->id,
+				    cp->device->lun, ret);
+			}
+			break;
+
+		default:
+			DEBUG3(printk("scsi(%ld): Error detected (unknown "
+			    "status) 0x%x-0x%x.\n", ha->host_no, comp_status,
+			    scsi_status));
+			printk(KERN_INFO
+			    "scsi(%ld): Unknown status detected 0x%x-0x%x.\n",
+			    ha->host_no, comp_status, scsi_status);
+
+			cp->result = DID_ERROR << 16;
+			break;
+		}
+
+		/* Place command on done queue. */
+		if (ha->status_srb == NULL)
+			add_to_done_queue(ha, sp);
+	}
+}
+
+/**
+ * qla2x00_status_cont_entry() - Process a Status Continuations entry.
+ * @ha: SCSI driver HA context
+ * @pkt: Entry pointer
+ *
+ * Extended sense data.
+ */
+static void
+qla2x00_status_cont_entry(scsi_qla_host_t *ha, sts_cont_entry_t *pkt)
+{
+	uint8_t		sense_sz = 0;
+	srb_t		*sp = ha->status_srb;
+	struct scsi_cmnd *cp;
+
+	if (sp != NULL && sp->request_sense_length != 0) {
+		cp = sp->cmd;
+		if (cp == NULL) {
+			DEBUG2(printk("%s(): Cmd already returned back to OS "
+			    "sp=%p sp->state:%d\n",
+			    __func__, sp, sp->state));
+			printk(KERN_INFO
+			    "%s(): cmd is NULL: already returned to OS "
+			    "(sp=%p)\n",
+			    __func__, sp); 
+
+			ha->status_srb = NULL;
+			return;
+		}
+
+		if (sp->request_sense_length > sizeof (pkt->data)) {
+			sense_sz = sizeof(pkt->data);
+		} else {
+			sense_sz = sp->request_sense_length;
+		}
+
+		/* Move sense data. */
+		memcpy(sp->request_sense_ptr, pkt->data, sense_sz);
+		DEBUG5(qla2x00_dump_buffer(sp->request_sense_ptr, sense_sz));
+
+		sp->request_sense_ptr += sense_sz;
+		sp->request_sense_length -= sense_sz;
+
+		/* Place command on done queue. */
+		if (sp->request_sense_length == 0) {
+			add_to_done_queue(ha, sp);
+			ha->status_srb = NULL;
+		}
+	}
+}
+
+/**
+ * qla2x00_error_entry() - Process an error entry.
+ * @ha: SCSI driver HA context
+ * @pkt: Entry pointer
+ */
+static void
+qla2x00_error_entry(scsi_qla_host_t *ha, sts_entry_t *pkt) 
+{
+	srb_t *sp;
+
+#if defined(QL_DEBUG_LEVEL_2)
+	if (pkt->entry_status & RF_INV_E_ORDER)
+		printk("%s(%ld): Invalid Entry Order\n",
+		    __func__, ha->host_no);
+	else if (pkt->entry_status & RF_INV_E_COUNT)
+		printk("%s(%ld): Invalid Entry Count\n",
+		    __func__, ha->host_no);
+	else if (pkt->entry_status & RF_INV_E_PARAM)
+		printk("%s(%ld): Invalid Entry Parameter\n",
+		    __func__, ha->host_no);
+	else if (pkt->entry_status & RF_INV_E_TYPE)
+		printk("%s(%ld): Invalid Entry Type\n",
+		    __func__, ha->host_no);
+	else if (pkt->entry_status & RF_BUSY)
+		printk("%s(%ld): Busy\n",
+		    __func__, ha->host_no);
+	else
+		printk("%s(%ld): UNKNOWN flag error\n",
+		    __func__, ha->host_no);
+#endif
+
+	/* Validate handle. */
+	if (pkt->handle < MAX_OUTSTANDING_COMMANDS)
+		sp = ha->outstanding_cmds[pkt->handle];
+	else
+		sp = NULL;
+
+	if (sp) {
+		/* Free outstanding command slot. */
+		ha->outstanding_cmds[pkt->handle] = 0;
+		if (ha->actthreads)
+			ha->actthreads--;
+		sp->lun_queue->out_cnt--;
+
+		/* Bad payload or header */
+		if (pkt->entry_status &
+		    (RF_INV_E_ORDER | RF_INV_E_COUNT |
+		     RF_INV_E_PARAM | RF_INV_E_TYPE)) {
+			sp->cmd->result = DID_ERROR << 16;
+		} else if (pkt->entry_status & RF_BUSY) {
+			sp->cmd->result = DID_BUS_BUSY << 16;
+		} else {
+			sp->cmd->result = DID_ERROR << 16;
+		}
+		/* Place command on done queue. */
+		add_to_done_queue(ha, sp);
+
+	} else if (pkt->entry_type == COMMAND_A64_TYPE ||
+	    pkt->entry_type == COMMAND_TYPE) {
+		DEBUG2(printk("scsi(%ld): Error entry - invalid handle\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): Error entry - invalid handle\n",
+		    ha->host_no);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		if (ha->dpc_wait && !ha->dpc_active) 
+			up(ha->dpc_wait);
+	}
+}
+
+/**
+ * qla2x00_ms_entry() - Process a Management Server entry.
+ * @ha: SCSI driver HA context
+ * @index: Response queue out pointer
+ */
+static void
+qla2x00_ms_entry(scsi_qla_host_t *ha, ms_iocb_entry_t *pkt) 
+{
+	srb_t          *sp;
+
+	DEBUG3(printk("%s(%ld): pkt=%p pkthandle=%d.\n",
+	    __func__, ha->host_no, pkt, pkt->handle1));
+
+	/* Validate handle. */
+ 	if (pkt->handle1 < MAX_OUTSTANDING_COMMANDS)
+ 		sp = ha->outstanding_cmds[pkt->handle1];
+	else
+		sp = NULL;
+
+	if (sp == NULL) {
+		DEBUG2(printk("scsi(%ld): MS entry - invalid handle\n",
+		    ha->host_no));
+		printk(KERN_WARNING
+		    "scsi(%ld): MS entry - invalid handle\n",
+		    ha->host_no);
+
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		return;
+	}
+
+	CMD_COMPL_STATUS(sp->cmd) = le16_to_cpu(pkt->status);
+	CMD_ENTRY_STATUS(sp->cmd) = pkt->entry_status;
+
+	/* Free outstanding command slot. */
+	ha->outstanding_cmds[pkt->handle1] = 0;
+
+	add_to_done_queue(ha, sp);
+}
+
+/**
+ * qla2x00_check_sense() - Perform any sense data interrogation.
+ * @cp: SCSI Command
+ * @lq: Lun queue
+ *
+ * Returns QLA_SUCCESS if the lun queue is suspended, else
+ * QLA_FUNCTION_FAILED  (lun queue not suspended).
+ */
+static int 
+qla2x00_check_sense(struct scsi_cmnd *cp, os_lun_t *lq)
+{
+	scsi_qla_host_t	*ha;
+	srb_t		*sp;
+	fc_port_t	*fcport;
+
+	ha = (scsi_qla_host_t *) cp->device->host->hostdata;
+	if ((cp->sense_buffer[0] & 0x70) != 0x70) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	sp = (srb_t * )CMD_SP(cp);
+	sp->flags |= SRB_GOT_SENSE;
+
+	switch (cp->sense_buffer[2] & 0xf) {
+	case RECOVERED_ERROR:
+		cp->result = DID_OK << 16;
+		cp->sense_buffer[0] = 0;
+		break;
+
+	case NOT_READY:
+		fcport = lq->fclun->fcport;
+
+		/*
+		 * Suspend the lun only for hard disk device type.
+		 */
+		if ((fcport->flags & FCF_TAPE_PRESENT) == 0 &&
+		    lq->q_state != LUN_STATE_TIMEOUT) {
+			/*
+			 * If target is in process of being ready then suspend
+			 * lun for 6 secs and retry all the commands.
+			 */
+			if (cp->sense_buffer[12] == 0x4 &&
+			    cp->sense_buffer[13] == 0x1) {
+
+				/* Suspend the lun for 6 secs */
+				qla2x00_suspend_lun(ha,
+				    lq, 6, ql2xsuspendcount);
+
+				return (QLA_SUCCESS);
+			}
+		}
+		break;
+	}
+
+	return (QLA_FUNCTION_FAILED);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_listops.h 350-qlogic/drivers/scsi/qla2xxx/qla_listops.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_listops.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_listops.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,404 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/* Management functions for various lists */
+
+/*
+ * Found in kernel 2.4.9 and higher in include/linux/lists.h
+ *
+ * Iterate over a list safe against removal of list.
+ *
+ */
+#if !defined(list_for_each_safe)
+#define list_for_each_safe(pos, n, head) \
+	for( pos= (head)->next, n = pos->next; pos != (head); \
+		pos = n, n = pos->next )
+#endif
+
+/* __add_to_done_queue()
+ * 
+ * Place SRB command on done queue.
+ *
+ * Input:
+ *      ha           = host pointer
+ *      sp           = srb pointer.
+ * Locking:
+ * 	this function assumes the ha->list_lock is already taken
+ */
+static inline void 
+__add_to_done_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+	/*
+        if (sp->state != SRB_NO_QUEUE_STATE && 
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+        /* Place block on done queue */
+        sp->cmd->host_scribble = (unsigned char *) NULL;
+        sp->state = SRB_DONE_STATE;
+        list_add_tail(&sp->list,&ha->done_queue);
+        ha->done_q_cnt++;
+	sp->ha = ha;
+}
+
+/* __add_to_free_queue()
+ * 
+ * Place SRB command on free queue.
+ *
+ * Input:
+ *      ha           = host pointer
+ *      sp           = srb pointer.
+ * Locking:
+ * 	this function assumes the ha->list_lock is already taken
+ */
+static inline void 
+__add_to_free_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+	/*
+        if (atomic_read(&sp->ref_count) != 0)
+                BUG();
+	*/
+
+
+        /* Place block on free queue */
+        sp->state = SRB_FREE_STATE;
+        list_add_tail(&sp->list,&ha->free_queue);
+        ha->srb_cnt++;
+}
+
+static inline void 
+__add_to_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+	/*
+        if( sp->state != SRB_NO_QUEUE_STATE && 
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+        /* Place block on retry queue */
+        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;
+}
+
+static inline void 
+__add_to_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+	/*
+        if( sp->state != SRB_NO_QUEUE_STATE && 
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+        /* Place block on retry queue */
+        list_add_tail(&sp->list,&ha->scsi_retry_queue);
+        ha->scsi_retry_q_cnt++;
+        sp->state = SRB_SCSI_RETRY_STATE;
+	sp->ha = ha;
+}
+
+static inline void 
+add_to_done_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+        __add_to_done_queue(ha,sp);
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void 
+add_to_free_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+        __add_to_free_queue(ha,sp);
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void 
+add_to_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+        __add_to_retry_queue(ha,sp);
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void 
+add_to_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+        __add_to_scsi_retry_queue(ha,sp);
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+/*
+ * __del_from_retry_queue
+ *      Function used to remove a command block from the
+ *      watchdog timer queue.
+ *
+ *      Note: Must insure that command is on watchdog
+ *            list before calling del_from_retry_queue
+ *            if (sp->flags & SRB_WATCHDOG)
+ *
+ * Input: 
+ *      ha = adapter block pointer.
+ *      sp = srb pointer.
+ * Locking:
+ *	this function assumes the list_lock is already taken
+ */
+static inline void 
+__del_from_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        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--;
+}
+
+/*
+ * __del_from_scsi_retry_queue
+ *      Function used to remove a command block from the
+ *      scsi retry queue.
+ *
+ * Input: 
+ *      ha = adapter block pointer.
+ *      sp = srb pointer.
+ * Locking:
+ *	this function assumes the list_lock is already taken
+ */
+static inline void 
+__del_from_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        list_del_init(&sp->list);
+
+        ha->scsi_retry_q_cnt--;
+        sp->state = SRB_NO_QUEUE_STATE;
+}
+
+/*
+ * del_from_retry_queue
+ *      Function used to remove a command block from the
+ *      watchdog timer queue.
+ *
+ *      Note: Must insure that command is on watchdog
+ *            list before calling del_from_retry_queue
+ *            if (sp->flags & SRB_WATCHDOG)
+ *
+ * Input: 
+ *      ha = adapter block pointer.
+ *      sp = srb pointer.
+ * Locking:
+ *	this function takes and releases the list_lock
+ */
+static inline void 
+del_from_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        /*	if (unlikely(!(sp->flags & SRB_WATCHDOG)))
+        		BUG();*/
+        spin_lock_irqsave(&ha->list_lock, flags);
+
+        /*	if (unlikely(list_empty(&ha->retry_queue)))
+        		BUG();*/
+
+        __del_from_retry_queue(ha,sp);
+
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+/*
+ * del_from_scsi_retry_queue
+ *      Function used to remove a command block from the
+ *      scsi retry queue.
+ *
+ * Input: 
+ *      ha = adapter block pointer.
+ *      sp = srb pointer.
+ * Locking:
+ *	this function takes and releases the list_lock
+ */
+static inline void 
+del_from_scsi_retry_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+
+        /*	if (unlikely(list_empty(&ha->scsi_retry_queue)))
+        		BUG();*/
+
+        __del_from_scsi_retry_queue(ha,sp);
+
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void
+__del_from_free_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        ha->srb_cnt--;
+        list_del_init(&sp->list);
+        sp->state = SRB_NO_QUEUE_STATE;
+}
+
+/*
+ * __add_to_pending_queue
+ *      Add the standard SCB job to the bottom of standard SCB commands.
+ *
+ * Input:
+ * COMPLETE!!!
+ *      q  = SCSI LU pointer.
+ *      sp = srb pointer.
+ *      SCSI_LU_Q lock must be already obtained.
+ */
+static inline int 
+__add_to_pending_queue(struct scsi_qla_host *ha, srb_t * sp)
+{
+	int	empty;
+	/*
+        if( sp->state != SRB_NO_QUEUE_STATE &&
+        	sp->state != SRB_FREE_STATE &&
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+	empty = list_empty(&ha->pending_queue);
+	list_add_tail(&sp->list, &ha->pending_queue);
+	ha->qthreads++;
+	sp->state = SRB_PENDING_STATE;
+
+	return (empty);
+}
+
+static inline void 
+__add_to_pending_queue_head(struct scsi_qla_host *ha, srb_t * sp)
+{
+	/*
+        if( sp->state != SRB_NO_QUEUE_STATE && 
+        	sp->state != SRB_FREE_STATE &&
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+	list_add(&sp->list, &ha->pending_queue);
+	ha->qthreads++;
+	sp->state = SRB_PENDING_STATE;
+}
+
+static inline int
+add_to_pending_queue(struct scsi_qla_host *ha, srb_t *sp)
+{
+	int	empty;
+	unsigned long flags;
+
+	spin_lock_irqsave(&ha->list_lock, flags);
+	empty = __add_to_pending_queue(ha, sp);
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+
+	return (empty);
+}
+static inline void
+add_to_pending_queue_head(struct scsi_qla_host *ha, srb_t *sp)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&ha->list_lock, flags);
+	__add_to_pending_queue_head(ha, sp);
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void
+__del_from_pending_queue(struct scsi_qla_host *ha, srb_t *sp)
+{
+	list_del_init(&sp->list);
+	ha->qthreads--;
+	sp->state = SRB_NO_QUEUE_STATE;
+}
+
+/*
+ * Failover Stuff.
+ */
+static inline void
+__add_to_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+	/*
+        if( sp->state != SRB_NO_QUEUE_STATE && 
+        	sp->state != SRB_ACTIVE_STATE)
+		BUG();
+	*/
+
+        list_add_tail(&sp->list,&ha->failover_queue);
+        ha->failover_cnt++;
+        sp->state = SRB_FAILOVER_STATE;
+	sp->ha = ha;
+}
+
+static inline void add_to_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+
+        __add_to_failover_queue(ha,sp);
+
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+static inline void __del_from_failover_queue(struct scsi_qla_host * ha, srb_t *
+                sp)
+{
+        ha->failover_cnt--;
+        list_del_init(&sp->list);
+        sp->state = SRB_NO_QUEUE_STATE;
+}
+
+static inline void del_from_failover_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+
+        __del_from_failover_queue(ha,sp);
+
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+static inline void 
+del_from_pending_queue(struct scsi_qla_host * ha, srb_t * sp)
+{
+        unsigned long flags;
+
+        spin_lock_irqsave(&ha->list_lock, flags);
+
+        __del_from_pending_queue(ha,sp);
+
+        spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_mbx.c 350-qlogic/drivers/scsi/qla2xxx/qla_mbx.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_mbx.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_mbx.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,2881 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ */
+
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+/*
+ *  Local Function Prototypes.
+ */
+static void
+qla2x00_mbx_sem_timeout(unsigned long);
+
+static int
+qla2x00_get_mbx_access(scsi_qla_host_t *, uint32_t);
+
+static int
+qla2x00_release_mbx_access(scsi_qla_host_t *, uint32_t);
+
+static int
+qla2x00_mbx_q_add(scsi_qla_host_t *, mbx_cmdq_t **);
+
+static void
+qla2x00_mbx_q_get(scsi_qla_host_t *, mbx_cmdq_t **);
+
+static void
+qla2x00_mbx_q_memb_alloc(scsi_qla_host_t *, mbx_cmdq_t **);
+
+static void
+qla2x00_mbx_q_memb_free(scsi_qla_host_t *, mbx_cmdq_t *);
+
+/***************************/
+/* Function implementation */
+/***************************/
+
+static void
+qla2x00_mbx_sem_timeout(unsigned long data)
+{
+	struct semaphore	*sem_ptr = (struct semaphore *)data;
+
+	DEBUG11(printk("qla2x00_sem_timeout: entered.\n");)
+
+	if (sem_ptr != NULL) {
+		up(sem_ptr);
+	}
+
+	DEBUG11(printk("qla2x00_mbx_sem_timeout: exiting.\n");)
+}
+
+/*
+ *  tov = timeout value in seconds
+ */
+static int
+qla2x00_get_mbx_access(scsi_qla_host_t *ha, uint32_t tov)
+{
+	int		ret;
+	int		prev_val = 1;  /* assume no access yet */
+	mbx_cmdq_t	*ptmp_mbq;
+	struct timer_list	tmp_cmd_timer;
+	unsigned long	cpu_flags;
+
+
+	DEBUG11(printk("qla2x00_get_mbx_access(%ld): entered.\n",
+	    ha->host_no);)
+
+	while (1) {
+		if (test_bit(MBX_CMD_WANT, &ha->mbx_cmd_flags) == 0) {
+
+			DEBUG11(printk("qla2x00_get_mbx_access(%ld): going "
+			    " to test access flags.\n", ha->host_no);)
+
+			/* No one else is waiting. Go ahead and try to
+			 * get access.
+			 */
+			if ((prev_val = test_and_set_bit(MBX_CMD_ACTIVE,
+			    &ha->mbx_cmd_flags)) == 0) {
+				break;
+			}
+		}
+
+		/* wait for previous command to finish */
+		DEBUG(printk("qla2x00_get_mbx_access(%ld): access "
+		    "flags=%lx. busy. Waiting for access. curr time=0x%lx.\n",
+		    ha->host_no, ha->mbx_cmd_flags, jiffies);)
+
+		DEBUG11(printk("qla2x00_get_mbx_access(%ld): access "
+		    "flags=%lx. busy. Waiting for access. curr time=0x%lx.\n",
+		    ha->host_no, ha->mbx_cmd_flags, jiffies);)
+
+		/*
+		 * Init timer and get semaphore from mbx q. After we got valid
+		 * semaphore pointer the MBX_CMD_WANT flag would also had
+		 * been set.
+		 */
+		qla2x00_mbx_q_add(ha, &ptmp_mbq);
+
+		if (ptmp_mbq == NULL) {
+			/* queue full? problem? can't proceed. */
+			DEBUG2_3_11(printk("qla2x00_get_mbx_access(%ld): ERROR "
+			    "no more mbx_q allowed. exiting.\n", ha->host_no);)
+
+			break;
+		}
+
+		/* init timer and semaphore */
+		init_timer(&tmp_cmd_timer);
+		tmp_cmd_timer.data = (unsigned long)&ptmp_mbq->cmd_sem;
+		tmp_cmd_timer.function =
+		    (void (*)(unsigned long))qla2x00_mbx_sem_timeout;
+		tmp_cmd_timer.expires = jiffies + tov * HZ;
+
+		DEBUG11(printk("get_mbx_access(%ld): adding timer. "
+		    "curr time=0x%lx timeoutval=0x%lx.\n",
+		    ha->host_no, jiffies, tmp_cmd_timer.expires);)
+
+			/* wait. */
+/*	 	 add_timer(&tmp_cmd_timer);*/
+		DEBUG11(printk("get_mbx_access(%ld): going to sleep. "
+		    "current time=0x%lx.\n", ha->host_no, jiffies);)
+
+		down_interruptible(&ptmp_mbq->cmd_sem);
+
+		DEBUG11(printk("get_mbx_access(%ld): woke up. current "
+		    "time=0x%lx.\n",
+		    ha->host_no, jiffies);)
+
+/*		del_timer(&tmp_cmd_timer);*/
+
+		/* try to get lock again. we'll test later to see
+		 * if we actually got the lock.
+		 */
+		prev_val = test_and_set_bit(MBX_CMD_ACTIVE,
+		    &ha->mbx_cmd_flags);
+
+		/*
+		 * After we tried to get access then we check to see
+		 * if we need to clear the MBX_CMD_WANT flag. Don't clear
+		 * this flag before trying to get access or else another
+		 * new thread might grab it before we did.
+		 */
+		spin_lock_irqsave(&ha->mbx_q_lock, cpu_flags);
+		if (ha->mbx_q_head == NULL) {
+			/* We're the last thread in queue. */
+			clear_bit(MBX_CMD_WANT, &ha->mbx_cmd_flags);
+		}
+		qla2x00_mbx_q_memb_free(ha, ptmp_mbq);
+		spin_unlock_irqrestore(&ha->mbx_q_lock, cpu_flags);
+
+		break;
+	}
+
+	if (prev_val == 0) {
+		/* We got the lock */
+		DEBUG11(printk("qla2x00_get_mbx_access(%ld): success.\n",
+		    ha->host_no);)
+
+		ret = QLA_SUCCESS;
+	} else {
+		/* Timeout or resource error. */
+		DEBUG2_3_11(printk("qla2x00_get_mbx_access(%ld): timed out.\n",
+		    ha->host_no);)
+
+		ret = QLA_FUNCTION_TIMEOUT;
+	}
+
+	return ret;
+}
+
+static int
+qla2x00_release_mbx_access(scsi_qla_host_t *ha, uint32_t tov)
+{
+	mbx_cmdq_t	*next_thread;
+
+	DEBUG11(printk("qla2x00_release_mbx_access:(%ld): entered.\n",
+	    ha->host_no);)
+
+	clear_bit(MBX_CMD_ACTIVE, &ha->mbx_cmd_flags);
+
+	/* Wake up one pending mailbox cmd thread in queue. */
+	qla2x00_mbx_q_get(ha, &next_thread);
+	if (next_thread) {
+		DEBUG11(printk("qla2x00_release_mbx_access: found pending "
+		    "mbx cmd. Waking up sem in %p.\n", &next_thread);)
+		up(&next_thread->cmd_sem);
+	}
+
+	DEBUG11(printk("qla2x00_release_mbx_access:(%ld): exiting.\n",
+	    ha->host_no);)
+
+	return QLA_SUCCESS;
+}
+
+/* Allocates a mbx_cmdq_t struct and add to the mbx_q list. */
+static int
+qla2x00_mbx_q_add(scsi_qla_host_t *ha, mbx_cmdq_t **ret_mbq)
+{
+	int		ret;
+	unsigned long	cpu_flags;
+	mbx_cmdq_t	*ptmp = NULL;
+
+	spin_lock_irqsave(&ha->mbx_q_lock, cpu_flags);
+
+	DEBUG11(printk("qla2x00_mbx_q_add: got mbx_q spinlock. "
+	    "Inst=%d.\n", apiHBAInstance);)
+
+	qla2x00_mbx_q_memb_alloc(ha, &ptmp);
+	if (ptmp == NULL) {
+		/* can't add any more threads */
+		DEBUG2_3_11(printk("qla2x00_mbx_q_add: ERROR no more "
+		    "ioctl threads allowed. Inst=%d.\n", apiHBAInstance);)
+
+		ret = QLA_MEMORY_ALLOC_FAILED;
+	} else {
+		if (ha->mbx_q_tail == NULL) {
+			/* First thread to queue. */
+			set_bit(IOCTL_WANT, &ha->mbx_cmd_flags);
+
+			ha->mbx_q_head = ptmp;
+		} else {
+			ha->mbx_q_tail->pnext = ptmp;
+		}
+		ha->mbx_q_tail = ptmp;
+
+		/* Now init the semaphore */
+		init_MUTEX_LOCKED(&ptmp->cmd_sem);
+		ret = QLA_SUCCESS;
+	}
+
+	*ret_mbq = ptmp;
+
+	DEBUG11(printk("qla2x00_mbx_q_add: going to release spinlock. "
+	    "ret_mbq=%p, ret=%d. Inst=%d.\n", *ret_mbq, ret, apiHBAInstance);)
+
+	spin_unlock_irqrestore(&ha->mbx_q_lock, cpu_flags);
+
+	return ret;
+}
+
+/* Just remove and return first member from mbx_cmdq.  Don't free anything. */
+static void
+qla2x00_mbx_q_get(scsi_qla_host_t *ha, mbx_cmdq_t **ret_mbq)
+{
+	unsigned long	cpu_flags;
+
+	spin_lock_irqsave(&ha->mbx_q_lock, cpu_flags);
+
+	DEBUG11(printk("qla2x00_mbx_q_get: got mbx_q spinlock. "
+	    "Inst=%d.\n", apiHBAInstance);)
+
+	/* Remove from head */
+	*ret_mbq = ha->mbx_q_head;
+	if (ha->mbx_q_head != NULL) {
+		ha->mbx_q_head = ha->mbx_q_head->pnext;
+		if (ha->mbx_q_head == NULL) {
+			/* That's the last one in queue. */
+			ha->mbx_q_tail = NULL;
+		}
+		(*ret_mbq)->pnext = NULL;
+	}
+
+	DEBUG11(printk("qla2x00_mbx_q_remove: return ret_mbq=%p. Going to "
+	    "release spinlock. Inst=%d.\n", *ret_mbq, apiHBAInstance);)
+
+	spin_unlock_irqrestore(&ha->mbx_q_lock, cpu_flags);
+}
+
+/* Find a free mbx_q member from the array. Must already got the
+ * mbx_q_lock spinlock.
+ */
+static void
+qla2x00_mbx_q_memb_alloc(scsi_qla_host_t *ha, mbx_cmdq_t **ret_mbx_q_memb)
+{
+	mbx_cmdq_t	*ptmp = NULL;
+
+	DEBUG11(printk("qla2x00_mbx_q_memb_alloc: entered. "
+	    "Inst=%d.\n", apiHBAInstance);)
+
+	ptmp = ha->mbx_sem_pool_head;
+	if (ptmp != NULL) {
+		ha->mbx_sem_pool_head = ptmp->pnext;
+		ptmp->pnext = NULL;
+		if (ha->mbx_sem_pool_head == NULL) {
+			ha->mbx_sem_pool_tail = NULL;
+		}
+	} else {
+		/* We ran out of pre-allocated semaphores.  Try to allocate
+		 * a new one.
+		 */
+		ptmp = (void *)KMEM_ZALLOC(sizeof(mbx_cmdq_t), 40);
+	}
+
+	*ret_mbx_q_memb = ptmp;
+
+	DEBUG11(printk("qla2x00_mbx_q_memb_alloc: return waitq_memb=%p. "
+	    "Inst=%d.\n", *ret_mbx_q_memb, apiHBAInstance);)
+}
+
+/* Add the specified mbx_q member back to the free semaphore pool. Must
+ * already got the mbx_q_lock spinlock.
+ */
+static void
+qla2x00_mbx_q_memb_free(scsi_qla_host_t *ha, mbx_cmdq_t *pfree_mbx_q_memb)
+{
+	DEBUG11(printk("qla2x00_mbx_q_memb_free: entered. Inst=%d.\n",
+	    apiHBAInstance);)
+
+	if (pfree_mbx_q_memb != NULL) {
+		if (ha->mbx_sem_pool_tail != NULL) {
+			/* Add to tail */
+			ha->mbx_sem_pool_tail->pnext = pfree_mbx_q_memb;
+		} else {
+			ha->mbx_sem_pool_head = pfree_mbx_q_memb;
+		}
+		ha->mbx_sem_pool_tail = pfree_mbx_q_memb;
+	}
+
+	/* put it back to the free pool. */
+
+	DEBUG11(printk("qla2x00_mbx_q_memb_free: exiting. "
+	    "Inst=%d.\n", apiHBAInstance);)
+}
+
+/*
+ * qla2x00_mailbox_command
+ *	Issue mailbox command and waits for completion.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	mcp = driver internal mbx struct pointer.
+ *
+ * Output:
+ *	mb[MAX_MAILBOX_REGISTER_COUNT] = returned mailbox data.
+ *
+ * Returns:
+ *	0 : QLA_SUCCESS = cmd performed success
+ *	1 : QLA_FUNCTION_FAILED   (error encountered)
+ *	6 : QLA_FUNCTION_TIMEOUT (timeout condition encountered)
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_mailbox_command(scsi_qla_host_t *ha, mbx_cmd_t *mcp)
+{
+	int		rval;
+	unsigned long    flags = 0;
+	device_reg_t     *reg       = ha->iobase;
+	struct timer_list	tmp_intr_timer;
+	uint8_t		abort_active = test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+	uint8_t		io_lock_on = ha->init_done;
+	uint8_t		mbx_count;
+	uint8_t		tmp_stat = 0;
+	uint16_t	command;
+	uint16_t	*iptr, *optr;
+	uint32_t	cnt;
+	uint32_t	mboxes;
+	unsigned long	mbx_flags = 0;
+	unsigned long	wait_time;
+
+	rval = QLA_SUCCESS;
+
+	DEBUG11(printk("qla2x00_mailbox_command(%ld): entered.\n",
+	    ha->host_no);)
+	/*
+	 * Wait for active mailbox commands to finish by waiting at most
+	 * tov seconds. This is to serialize actual issuing of mailbox cmds
+	 * during non ISP abort time.
+	 */
+	if (!abort_active) {
+		tmp_stat = qla2x00_get_mbx_access(ha, mcp->tov);
+		if (tmp_stat != QLA_SUCCESS) {
+			/* Timeout occurred. Return error. */
+			DEBUG2_3_11(printk("qla2x00_mailbox_command(%ld): cmd "
+			    "access timeout. Exiting.\n", ha->host_no);)
+			return QLA_FUNCTION_TIMEOUT;
+		}
+	}
+
+	ha->flags.mbox_busy = TRUE;
+	/* Save mailbox command for debug */
+	ha->mcp = mcp;
+
+	/* Try to get mailbox register access */
+	if (!abort_active)
+		QLA_MBX_REG_LOCK(ha);
+
+	DEBUG11(printk("scsi%d: prepare to issue mbox cmd=0x%x.\n",
+	    (int)ha->host_no, mcp->mb[0]);)
+
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+
+	/* Load mailbox registers. */
+	optr = (uint16_t *)&reg->mailbox0;
+	mbx_count = MAILBOX_REGISTER_COUNT;
+
+	iptr = mcp->mb;
+	command = mcp->mb[0];
+	mboxes = mcp->out_mb;
+
+	for (cnt = 0; cnt < mbx_count; cnt++) {
+#if defined(ISP2200)
+		if (cnt == 8) {
+			optr = (uint16_t *)&reg->mailbox8;
+		}
+#endif
+		if (mboxes & BIT_0) {
+			WRT_REG_WORD(optr, *iptr);
+		}
+
+		mboxes >>= 1;
+		optr++;
+		iptr++;
+	}
+
+#if defined(QL_DEBUG_LEVEL_1)
+	printk("qla2x00_mailbox_command: Loaded MBX registers "
+	    "(displayed in bytes) = \n");
+	qla2x00_dump_buffer((uint8_t *)mcp->mb, 16);
+	printk("\n");
+	qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x10), 16);
+	printk("\n");
+	qla2x00_dump_buffer(((uint8_t *)mcp->mb + 0x20), 8);
+	printk("\n");
+	printk("qla2x00_mailbox_command: I/O address = %lx.\n",
+	    (u_long)optr);
+	qla2x00_dump_regs(ha);
+#endif
+
+	/* Issue set host interrupt command to send cmd out. */
+	ha->flags.mbox_int = FALSE;
+	clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+	/* Unlock mbx registers and wait for interrupt */
+
+	DEBUG11(printk("qla2x00_mailbox_command: going to unlock irq & "
+	    "waiting for interrupt. jiffies=%lx.\n", jiffies);)
+
+	/* Wait for mbx cmd completion until timeout */
+
+	if (!abort_active && io_lock_on) {
+		/* sleep on completion semaphore */
+		DEBUG11(printk("qla2x00_mailbox_command(%ld): "
+		    "INTERRUPT MODE. Initializing timer.\n",
+		    ha->host_no);)
+
+		init_timer(&tmp_intr_timer);
+		tmp_intr_timer.data = (unsigned long)&ha->mbx_intr_sem;
+		tmp_intr_timer.expires = jiffies + mcp->tov * HZ;
+		tmp_intr_timer.function =
+		    (void (*)(unsigned long))qla2x00_mbx_sem_timeout;
+
+		DEBUG11(printk("qla2x00_mailbox_command(%ld): "
+		    "Adding timer.\n", ha->host_no);)
+		add_timer(&tmp_intr_timer);
+
+		DEBUG11(printk("qla2x00_mailbox_command: going to "
+		    "unlock & sleep. time=0x%lx.\n", jiffies);)
+
+		set_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
+
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+		if (!abort_active)
+			QLA_MBX_REG_UNLOCK(ha);
+
+		/* Wait for either the timer to expire
+		 * or the mbox completion interrupt
+		 */
+		down_interruptible(&ha->mbx_intr_sem);
+
+		DEBUG11(printk("qla2x00_mailbox_command:"
+		    "waking up."
+		    "time=0x%lx\n", jiffies);)
+		clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
+
+		/* delete the timer */
+		del_timer(&tmp_intr_timer);
+#if QLA2100_LIPTEST
+		if (mbxtimeout) {
+			DEBUG(printk("qla2x00_mailbox_command(%ld): "
+			    "INTERRUPT MODE - testing timeout handling.\n",
+			    ha->host_no);)
+			ha->flags.mbox_int= FALSE;
+		}
+		mbxtimeout= 0;
+#endif
+
+	} else {
+
+		DEBUG3_11(printk("qla2x00_mailbox_command(%ld): cmd=%x "
+			"POLLING MODE.\n", ha->host_no, command);)
+
+		WRT_REG_WORD(&reg->hccr, HCCR_SET_HOST_INT);
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+		if (!abort_active)
+			QLA_MBX_REG_UNLOCK(ha);
+
+
+		wait_time = jiffies + mcp->tov * HZ; /* wait at most tov secs */
+		while (!ha->flags.mbox_int) {
+			if (time_after(jiffies, wait_time))
+				break;
+
+			/* Check for pending interrupts. */
+			qla2x00_poll(ha);
+
+			udelay(10); /* v4.27 */
+		} /* while */
+	}
+
+	if (!abort_active)
+		QLA_MBX_REG_LOCK(ha);
+
+	/* Check whether we timed out */
+	if (ha->flags.mbox_int) {
+
+		DEBUG3_11(printk("qla2x00_mailbox_cmd: cmd %x completed.\n",
+		    command);)
+
+		/* Got interrupt. Clear the flag. */
+		ha->flags.mbox_int = FALSE;
+		clear_bit(MBX_INTERRUPT, &ha->mbx_cmd_flags);
+
+		if (ha->mailbox_out[0] != MBS_COMMAND_COMPLETE) {
+			qla2x00_stats.mboxerr++;
+			rval = QLA_FUNCTION_FAILED;
+		}
+
+		/* Load return mailbox registers. */
+		optr = mcp->mb;
+		iptr = (uint16_t *)&ha->mailbox_out[0];
+		mboxes = mcp->in_mb;
+		for (cnt = 0; cnt < mbx_count; cnt++) {
+
+			if (mboxes & BIT_0)
+				*optr = *iptr;
+
+			mboxes >>= 1;
+			optr++;
+			iptr++;
+		}
+	} else {
+
+#if defined(QL_DEBUG_LEVEL_2) || defined(QL_DEBUG_LEVEL_3) || \
+		defined(QL_DEBUG_LEVEL_11)
+		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",
+		    RD_REG_WORD(&reg->ictrl), jiffies);
+		printk("qla2x00_mailbox_command: *** mailbox[0] = 0x%x ***\n",
+		    RD_REG_WORD(optr));
+		qla2x00_dump_regs(ha);
+#endif
+
+		qla2x00_stats.mboxtout++;
+		ha->total_mbx_timeout++;
+		rval = QLA_FUNCTION_TIMEOUT;
+	}
+
+	if (!abort_active)
+		QLA_MBX_REG_UNLOCK(ha);
+
+	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. */
+		qla2x00_poll(ha);
+	}
+
+	if (rval == QLA_FUNCTION_TIMEOUT) {
+		if (!io_lock_on || (mcp->flags & IOCTL_CMD)) {
+			/* not in dpc. schedule it for dpc to take over. */
+			DEBUG(printk("qla2x00_mailbox_command(%ld): timeout "
+			    "schedule isp_abort_needed.\n",
+			    ha->host_no);)
+			DEBUG2_3_11(printk("qla2x00_mailbox_command(%ld): "
+			    "timeout schedule isp_abort_needed.\n",
+			    ha->host_no);)
+			set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			if (ha->dpc_wait && !ha->dpc_active) 
+				up(ha->dpc_wait);
+
+		} else if (!abort_active) {
+
+			/* call abort directly since we are in the DPC thread */
+			DEBUG(printk("qla2x00_mailbox_command(%ld): timeout "
+			    "calling abort_isp\n", ha->host_no);)
+			DEBUG2_3_11(printk("qla2x00_mailbox_command(%ld): "
+			    "timeout calling abort_isp\n", ha->host_no);)
+
+			set_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+			clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			if (qla2x00_abort_isp(ha)) {
+				/* failed. retry later. */
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			}
+			clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+
+			DEBUG(printk("qla2x00_mailbox_command: finished "
+			    "abort_isp\n");)
+			DEBUG2_3_11(printk("qla2x00_mailbox_command: finished "
+			    "abort_isp\n");)
+		}
+	}
+
+	/* Allow next mbx cmd to come in. */
+	if (!abort_active) {
+		tmp_stat = qla2x00_release_mbx_access(ha, mcp->tov);
+
+		if (rval == 0)
+			rval = tmp_stat;
+	}
+
+	if (rval) {
+		DEBUG2_3_11(printk("qla2x00_mailbox_command(%ld): **** FAILED. "
+		    "mbx0=%x, mbx1=%x, mbx2=%x, cmd=%x ****\n",
+		ha->host_no, mcp->mb[0], mcp->mb[1], mcp->mb[2], command);)
+	} else {
+		DEBUG11(printk("qla2x00_mailbox_command(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	DEBUG11(printk("qla2x00_mailbox_command(%ld): exiting.\n",
+	    ha->host_no);)
+
+	return rval;
+}
+
+/*
+ * qla2x00_load_ram
+ *	Load adapter RAM using DMA.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint16_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_load_ram(%ld): entered.\n",
+	    ha->host_no);)
+
+	req_len = risc_code_size;
+	nml_dma = 0;
+	nml_len = 0;
+
+	normalized = qla2x00_normalize_dma_addr(&req_dma, &req_len, &nml_dma,
+	    &nml_len);
+
+	/* Load first segment */
+	mcp->mb[0] = MBC_LOAD_RISC_RAM;
+	mcp->mb[1] = 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->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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Load second segment - if necessary */
+	if (normalized && (rval == QLA_SUCCESS)) {
+		mcp->mb[0] = MBC_LOAD_RISC_RAM;
+		mcp->mb[1] = risc_addr + (uint16_t)req_len;
+		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->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->flags = 0;
+		rval = qla2x00_mailbox_command(ha, mcp);
+	}
+
+	if (rval == QLA_SUCCESS) {
+		/* Empty */
+		DEBUG11(printk("qla2x00_load_ram(%ld): done.\n", ha->host_no);)
+	} else {
+		/* Empty */
+		DEBUG2_3_11(printk("qla2x00_load_ram(%ld): failed. rval=%x "
+		    "mb[0]=%x.\n", ha->host_no, rval, mcp->mb[0]);)
+	}
+	return rval;
+}
+
+/*
+ * qla2x00_load_ram_ext
+ *	Load adapter extended RAM using DMA.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+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("%s(%ld): entered.\n", __func__, ha->host_no));
+
+	req_len = risc_code_size;
+	nml_dma = 0;
+	nml_len = 0;
+
+	normalized = qla2x00_normalize_dma_addr(&req_dma, &req_len, &nml_dma,
+	    &nml_len);
+
+	/* Load first segment */
+	mcp->mb[0] = MBC_LOAD_RISC_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);
+
+	/* Load second segment - if necessary */
+	if (normalized && (rval == QLA_SUCCESS)) {
+		risc_addr += req_len;
+		mcp->mb[0] = MBC_LOAD_RISC_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 != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x.\n",
+		    __func__, ha->host_no, rval, mcp->mb[0]));
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+
+	return rval;
+}
+
+/*
+ * 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.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_execute_fw(scsi_qla_host_t *ha)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_execute_fw(%ld): entered.\n", ha->host_no);)
+
+	mcp->mb[0] = MBC_EXECUTE_FIRMWARE;
+	mcp->mb[1] = *ha->brd_info->fwinfo[0].fwstart;
+	mcp->out_mb = MBX_1|MBX_0;
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2322_DEVICE_ID) {
+		mcp->mb[2] = 0;
+		mcp->out_mb |= MBX_2;
+	}
+#endif
+	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;
+}
+
+/*
+ * qla2x00_get_fw_version
+ *	Get firmware version.
+ *
+ * Input:
+ *	ha:		adapter state pointer.
+ *	major:		pointer for major number.
+ *	minor:		pointer for minor number.
+ *	subminor:	pointer for subminor number.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+void
+qla2x00_get_fw_version(scsi_qla_host_t *ha, uint16_t *major, uint16_t *minor,
+    uint16_t *subminor, uint16_t *attributes)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
+
+	mcp->mb[0] = MBC_GET_FIRMWARE_VERSION;
+	mcp->out_mb = MBX_0;
+	mcp->in_mb = MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
+	mcp->flags = 0;
+	mcp->tov = 30;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Return mailbox data. */
+	*major = mcp->mb[1];
+	*minor = mcp->mb[2];
+	*subminor = mcp->mb[3];
+	*attributes = mcp->mb[6];
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
+		    ha->host_no, rval));
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+}
+
+/*
+ * qla2x00_get_fw_options
+ *	Set firmware options.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	fwopt = pointer for firmware options.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
+
+	mcp->mb[0] = MBC_GET_FIRMWARE_OPTION;
+	mcp->out_mb = MBX_0;
+	mcp->in_mb = MBX_3|MBX_2|MBX_1|MBX_0;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
+		    ha->host_no, rval));
+	} else {
+		fwopts[1] = mcp->mb[1];
+		fwopts[2] = mcp->mb[2];
+		fwopts[3] = mcp->mb[3];
+
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+
+	return rval;
+}
+
+
+/*
+ * qla2x00_set_fw_options
+ *	Set firmware options.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	fwopt = pointer for firmware options.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_set_fw_options(scsi_qla_host_t *ha, uint16_t *fwopts)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
+
+	mcp->mb[0] = MBC_SET_FIRMWARE_OPTION;
+	mcp->mb[1] = fwopts[1];
+	mcp->mb[2] = fwopts[2];
+	mcp->mb[3] = fwopts[3];
+	mcp->mb[10] = fwopts[10];
+	mcp->mb[11] = fwopts[11];
+	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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
+		    ha->host_no, rval));
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_read_ram_word
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_read_ram_word(scsi_qla_host_t *ha, uint16_t addr, uint16_t *data)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_read_ram_word(%ld): entered.\n", ha->host_no);)
+
+	mcp->mb[0] = MBC_READ_RAM_WORD;
+	mcp->mb[1] = addr;
+	mcp->out_mb = MBX_1|MBX_0;
+	mcp->in_mb = MBX_0|MBX_2;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_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);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_write_ram_word
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+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;
+
+	DEBUG11(printk("qla2x00_write_ram_word(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_WRITE_RAM_WORD;
+	mcp->mb[1] = addr;
+	mcp->mb[2] = data;
+	mcp->out_mb = 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 != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_write_ram_word(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_write_ram_word(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_write_ram_word_ext
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_write_ram_word_ext(scsi_qla_host_t *ha, uint32_t addr, uint16_t data)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no));
+
+	mcp->mb[0] = MBC_WRITE_RAM_WORD_EXTENDED;
+	mcp->mb[1] = LSW(addr);
+	mcp->mb[2] = data;
+	mcp->mb[8] = MSW(addr);
+	mcp->out_mb = MBX_8|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 != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
+		    ha->host_no, rval));
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_mbx_reg_test
+ *	Mailbox register wrap test.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_mbx_reg_test(scsi_qla_host_t *ha)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_mbx_reg_test(%ld): entered.\n", ha->host_no);)
+
+	mcp->mb[0] = MBC_MAILBOX_REGISTER_TEST;
+	mcp->mb[1] = 0xAAAA;
+	mcp->mb[2] = 0x5555;
+	mcp->mb[3] = 0xAA55;
+	mcp->mb[4] = 0x55AA;
+	mcp->mb[5] = 0xA5A5;
+	mcp->mb[6] = 0x5A5A;
+	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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval == QLA_SUCCESS) {
+		if (mcp->mb[1] != 0xAAAA || mcp->mb[2] != 0x5555 ||
+		    mcp->mb[3] != 0xAA55 || mcp->mb[4] != 0x55AA)
+			rval = QLA_FUNCTION_FAILED;
+		if (mcp->mb[5] != 0xA5A5 || mcp->mb[6] != 0x5A5A ||
+		    mcp->mb[7] != 0x2525)
+			rval = QLA_FUNCTION_FAILED;
+	}
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_mbx_reg_test(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_mbx_reg_test(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_verify_checksum
+ *	Verify firmware checksum.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_verify_checksum(scsi_qla_host_t *ha)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_verify_checksum(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_VERIFY_CHECKSUM;
+	mcp->mb[1] = *ha->brd_info->fwinfo[0].fwstart;
+	mcp->out_mb = MBX_1|MBX_0;
+	mcp->in_mb = MBX_2|MBX_0;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_verify_checksum(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_verify_checksum(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_issue_iocb
+ *	Issue IOCB using mailbox command
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	buffer = buffer pointer.
+ *	phys_addr = physical address of buffer.
+ *	size = size of buffer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_issue_iocb(scsi_qla_host_t *ha, void*  buffer, dma_addr_t phys_addr,
+    size_t size)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	ENTER("qla2x00_issue_iocb: started");
+
+	mcp->mb[0] = MBC_IOCB_COMMAND_A64;
+	mcp->mb[1] = 0;
+	mcp->mb[2] = MSW(phys_addr);
+	mcp->mb[3] = LSW(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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x",
+		    ha->host_no,rval);)
+		DEBUG2(printk("qla2x00_issue_iocb(%ld): failed rval 0x%x",
+		    ha->host_no,rval);)
+	} else {
+		/*EMPTY*/
+		LEAVE("qla2x00_issue_iocb: exiting normally");
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_abort_command
+ *	Abort command aborts a specified IOCB.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	sp = SB structure pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp)
+{
+	unsigned long   flags = 0;
+	fc_port_t	*fcport;
+	int		rval;
+	uint32_t	handle;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("qla2x00_abort_command(%ld): entered.\n", ha->host_no);)
+
+	fcport = sp->fclun->fcport;
+
+	if (ha->loop_state == LOOP_DOWN ||
+	    atomic_read(&fcport->state) == FCS_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)
+			break;
+	}
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	if (handle == MAX_OUTSTANDING_COMMANDS) {
+		/* command not found */
+		return QLA_FUNCTION_FAILED;
+	}
+
+	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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		DEBUG2_3_11(printk("qla2x00_abort_command(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		sp->flags |= SRB_ABORT_PENDING;
+		DEBUG11(printk("qla2x00_abort_command(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_abort_device
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *      loop_id  = FC loop ID
+ *      lun  = SCSI LUN.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_abort_device(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_abort_device(%ld): entered.\n", 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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Issue marker command. */
+	qla2x00_marker(ha, loop_id, lun, MK_SYNC_ID_LUN);
+
+	if (rval != QLA_SUCCESS) {
+		set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+		if (ha->dpc_wait && !ha->dpc_active) 
+			up(ha->dpc_wait);
+		DEBUG2_3_11(printk("qla2x00_abort_device(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_abort_device(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+#if USE_ABORT_TGT
+/*
+ * qla2x00_abort_target
+ *	Issue abort target mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_abort_target(fc_port_t *fcport)
+{
+	int        rval;
+	mbx_cmd_t  mc;
+	mbx_cmd_t  *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_abort_target(%ld): entered.\n",
+	    fcport->ha->host_no);)
+
+	if (fcport == NULL) {
+		/* no target to abort */
+		return 0;
+	}
+
+	mcp->mb[0] = MBC_ABORT_TARGET;
+#if defined(EXTENDED_IDS)
+	mcp->mb[1] = fcport->loop_id;
+#else
+	mcp->mb[1] = fcport->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->flags = 0;
+	rval = qla2x00_mailbox_command(fcport->ha, mcp);
+
+	/* Issue marker command. */
+	fcport->ha->marker_needed = 1;
+
+	if (rval != QLA_SUCCESS) {
+		DEBUG2_3_11(printk("qla2x00_abort_target(%ld): failed=%x.\n",
+		    fcport->ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_abort_target(%ld): done.\n",
+		    fcport->ha->host_no);)
+	}
+
+	return rval;
+}
+#endif
+
+/*
+ * qla2x00_target_reset
+ *	Issue target reset mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_target_reset(scsi_qla_host_t *ha, uint16_t b, uint16_t t)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+	os_tgt_t *tgt;
+
+	DEBUG11(printk("qla2x00_target_reset(%ld): entered.\n", ha->host_no);)
+
+	tgt = TGT_Q(ha, t);
+	if (tgt->fcport == NULL) {
+		/* no target to abort */
+		return 0;
+	}
+	if (atomic_read(&tgt->fcport->state) != FCS_ONLINE) {
+		/* target not online */
+		return 0;
+	}
+
+	mcp->mb[0] = MBC_TARGET_RESET;
+#if defined(EXTENDED_IDS)
+	mcp->mb[1] = tgt->fcport->loop_id;
+#else
+	mcp->mb[1] = tgt->fcport->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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_target_reset(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_target_reset(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_adapter_id
+ *	Get adapter ID and topology.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	id = pointer for loop ID.
+ *	al_pa = pointer for AL_PA.
+ *	area = pointer for area.
+ *	domain = pointer for domain.
+ *	top = pointer for topology.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_adapter_id(scsi_qla_host_t *ha, uint16_t *id, uint8_t *al_pa,
+    uint8_t *area, uint8_t *domain, uint16_t *top)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_get_adapter_id(%ld): entered.\n",
+	    ha->host_no);)
+
+	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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Return data. */
+	*id = mcp->mb[1];
+	*al_pa = LSB(mcp->mb[2]);
+	*area = MSB(mcp->mb[2]);
+	*domain	= LSB(mcp->mb[3]);
+	*top = mcp->mb[6];
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_adapter_id(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_get_adapter_id(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_retry_cnt
+ *	Get current firmware login retry count and delay.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	retry_cnt = pointer to login retry count.
+ *	tov = pointer to login timeout value.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_retry_cnt(scsi_qla_host_t *ha, uint8_t *retry_cnt, uint8_t *tov)
+{
+	int rval;
+	uint16_t ratov;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_get_retry_cnt(%ld): entered.\n",
+			ha->host_no);)
+
+	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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_retry_cnt(%ld): failed = %x.\n",
+		    ha->host_no, mcp->mb[0]);)
+	} else {
+		/* Convert returned data and check our values. */
+		ratov = (mcp->mb[3]/2) / 10;  /* mb[3] value is in 100ms */
+		if (mcp->mb[1] * ratov > (*retry_cnt) * (*tov)) {
+			/* Update to the larger values */
+			*retry_cnt = (uint8_t)mcp->mb[1];
+			*tov = ratov;
+		}
+
+		DEBUG11(printk("qla2x00_get_retry_cnt(%ld): done. mb3=%d "
+		    "ratov=%d.\n", ha->host_no, mcp->mb[3], ratov);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_loopback_test
+ *	Send out a LOOPBACK mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	retry_cnt = pointer to login retry count.
+ *	tov = pointer to login timeout value.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_loopback_test(scsi_qla_host_t *ha, INT_LOOPBACK_REQ *req,
+    uint16_t *ret_mb)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("qla2x00_send_loopback: req.Options=%x iterations=%x "
+	    "MAILBOX_CNT=%d.\n", req->Options, req->IterationCount,
+	    MAILBOX_REGISTER_COUNT);)
+
+	memset(mcp->mb, 0 , sizeof(mcp->mb));
+
+	mcp->mb[0] = MBC_DIAGNOSTIC_LOOP_BACK;
+	mcp->mb[1] = req->Options | MBX_6;
+	mcp->mb[10] = LSW(req->TransferCount);
+	mcp->mb[11] = MSW(req->TransferCount);
+	mcp->mb[14] = LSW(ha->ioctl_mem_phys); /* send data address */
+	mcp->mb[15] = MSW(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] = 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 */
+	mcp->out_mb = MBX_21|MBX_20|MBX_19|MBX_18|MBX_17|MBX_16|MBX_15|
+	    MBX_14|MBX_13|MBX_12|MBX_11|MBX_10|MBX_7|MBX_6|MBX_1|MBX_0;
+	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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Always copy back return mailbox values. */
+	memcpy((void *)ret_mb, (void *)mcp->mb, sizeof(mcp->mb));
+
+	if (rval != QLA_SUCCESS) {
+		/* Empty. */
+		DEBUG2_3_11(printk(
+		    "qla2x00_loopback_test(%ld): mailbox command FAILED=%x.\n",
+		    ha->host_no, mcp->mb[0]);)
+	} else {
+		/* Empty. */
+		DEBUG11(printk(
+		    "qla2x00_loopback_test(%ld): done.\n", ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_echo_test
+ *	Send out a DIAGNOSTIC ECHO mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	retry_cnt = pointer to login retry count.
+ *	tov = pointer to login timeout value.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_echo_test(scsi_qla_host_t *ha, INT_LOOPBACK_REQ *req, uint16_t *ret_mb)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	memset(mcp->mb, 0 , sizeof(mcp->mb));
+
+	mcp->mb[0] = MBC_DIAGNOSTIC_ECHO;
+	mcp->mb[1] = BIT_6; /* use 64bit DMA addr */
+	mcp->mb[10] = req->TransferCount;
+	mcp->mb[14] = LSW(ha->ioctl_mem_phys); /* send data address */
+	mcp->mb[15] = MSW(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] = 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 = req->TransferCount;
+	mcp->flags = MBX_DMA_OUT|MBX_DMA_IN|IOCTL_CMD;
+	mcp->tov = 30;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Always copy back return mailbox values. */
+	memcpy((void *)ret_mb, (void *)mcp->mb, sizeof(mcp->mb));
+
+	if (rval != QLA_SUCCESS) {
+		/* Empty. */
+		DEBUG2_3_11(printk(
+		    "%s(%ld): mailbox command FAILED=%x.\n", __func__,
+		    ha->host_no, mcp->mb[0]);)
+	} else {
+		/* Empty. */
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_init_firmware
+ *	Initialize adapter firmware.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	dptr = Initialization control block pointer.
+ *	size = size of initialization control block.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_INITIALIZE_FIRMWARE;
+	mcp->mb[2] = MSW(ha->init_cb_dma);
+	mcp->mb[3] = LSW(ha->init_cb_dma);
+	mcp->mb[4] = 0;
+	mcp->mb[5] = 0;
+	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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_init_firmware(%ld): failed=%x "
+		    "mb0=%x.\n",
+		    ha->host_no, rval, mcp->mb[0]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_init_firmware(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_port_database
+ *	Issue normal/enhanced get port database mailbox command
+ *	and copy device name as necessary.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	dev = structure pointer.
+ *	opt = enhanced cmd option byte.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_port_database(scsi_qla_host_t *ha, fc_port_t *fcport, uint8_t opt)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+	port_database_t *pd;
+	dma_addr_t pd_dma;
+
+	DEBUG11(printk("qla2x00_get_port_database(%ld): entered.\n",
+	    ha->host_no);)
+
+	pd = pci_alloc_consistent(ha->pdev, PORT_DATABASE_SIZE, &pd_dma);
+	if (pd  == NULL) {
+		DEBUG2_3_11(printk("qla2x00_get_port_database(%ld): **** "
+		    "Mem Alloc Failed ****", ha->host_no);)
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+	memset(pd, 0, PORT_DATABASE_SIZE);
+
+	if (opt != 0)
+		mcp->mb[0] = MBC_ENHANCED_GET_PORT_DATABASE;
+	else
+		mcp->mb[0] = MBC_GET_PORT_DATABASE;
+
+#if defined(EXTENDED_IDS)
+	mcp->mb[1] = fcport->loop_id;
+#else
+	mcp->mb[1] = fcport->loop_id << 8 | opt;
+#endif
+	mcp->mb[2] = MSW(pd_dma);
+	mcp->mb[3] = LSW(pd_dma);
+	mcp->mb[6] = MSW(MSD(pd_dma));
+	mcp->mb[7] = LSW(MSD(pd_dma));
+	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->login_timeout * 2;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval == QLA_SUCCESS) {
+		/* Names are big endian. */
+		memcpy(fcport->node_name, pd->node_name, WWN_SIZE);
+		memcpy(fcport->port_name, pd->port_name, WWN_SIZE);
+
+		/* Get port_id of device. */
+		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;
+
+		/* Check for device require authentication. */
+		pd->common_features & BIT_5 ? (fcport->flags |= FCF_AUTH_REQ) :
+		    (fcport->flags &= ~FCF_AUTH_REQ);
+
+		/* 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 = QLA_FUNCTION_FAILED;
+		}
+	}
+
+	pci_free_consistent(ha->pdev, PORT_DATABASE_SIZE, pd, pd_dma);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_port_database(%ld): "
+		    "failed=%x.\n", ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_get_port_database(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_firmware_state
+ *	Get adapter firmware state.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	dptr = pointer for firmware state.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_firmware_state(scsi_qla_host_t *ha, uint16_t *dptr)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_get_firmware_state(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_GET_FIRMWARE_STATE;
+	mcp->out_mb = MBX_0;
+	mcp->in_mb = MBX_2|MBX_1|MBX_0;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Return firmware state. */
+	*dptr = mcp->mb[1];
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_firmware_state(%ld): "
+		    "failed=%x.\n", ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_get_firmware_state(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_port_name
+ *	Issue get port name mailbox command.
+ *	Returned name is in big endian format.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = loop ID of device.
+ *	name = pointer for name.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_port_name(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t *name,
+    uint8_t opt)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_get_port_name(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_GET_PORT_NAME;
+#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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_port_name(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		if (name != NULL) {
+			/* This function returns name in big endian. */
+			name[0] = LSB(mcp->mb[2]);
+			name[1] = MSB(mcp->mb[2]);
+			name[2] = LSB(mcp->mb[3]);
+			name[3] = MSB(mcp->mb[3]);
+			name[4] = LSB(mcp->mb[6]);
+			name[5] = MSB(mcp->mb[6]);
+			name[6] = LSB(mcp->mb[7]);
+			name[7] = MSB(mcp->mb[7]);
+		}
+
+		DEBUG11(printk("qla2x00_get_port_name(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_link_status
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = device loop ID.
+ *	ret_buf = pointer to link status return buffer.
+ *
+ * Returns:
+ *	0 = success.
+ *	BIT_0 = mem alloc error.
+ *	BIT_1 = mailbox error.
+ */
+uint8_t
+qla2x00_get_link_status(scsi_qla_host_t *ha, uint8_t loop_id, void *ret_buf,
+    uint16_t *status)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+	link_stat_t *stat_buf;
+	dma_addr_t phys_address = 0;
+
+
+	DEBUG11(printk("qla2x00_get_link_status(%ld): entered.\n",
+	    ha->host_no);)
+
+	stat_buf = pci_alloc_consistent(ha->pdev, sizeof(link_stat_t),
+	    &phys_address);
+	if (stat_buf == NULL) {
+		DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): Failed to "
+		    "allocate memory.\n", ha->host_no));
+		return BIT_0;
+	}
+	memset(stat_buf, 0, sizeof(link_stat_t));
+
+	mcp->mb[0] = MBC_GET_LINK_STATUS;
+#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] = 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->flags = IOCTL_CMD;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval == QLA_SUCCESS) {
+		if (mcp->mb[0] != MBS_COMMAND_COMPLETE) {
+			DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): cmd "
+			    "failed. mbx0=%x.\n", ha->host_no, mcp->mb[0]);)
+			status[0] = mcp->mb[0];
+			rval = BIT_1;
+		} else {
+			/* copy over data */
+			memcpy(ret_buf, stat_buf,sizeof(link_stat_t));
+			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);)
+			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);)
+		}
+	} else {
+		/* Failed. */
+		DEBUG2_3_11(printk("qla2x00_get_link_status(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+		rval = BIT_1;
+	}
+
+	pci_free_consistent(ha->pdev, sizeof(link_stat_t),
+	    stat_buf, phys_address);
+
+	return rval;
+}
+
+/*
+ * qla2x00_lip_reset
+ *	Issue LIP reset mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_lip_reset(scsi_qla_host_t *ha)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_lip_reset(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_LIP_RESET;
+#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->in_mb = MBX_0;
+	mcp->tov = 30;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_lip_reset(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_lip_reset(%ld): done.\n", ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_send_sns
+ *	Send SNS command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	sns = pointer for command.
+ *	cmd_size = command size.
+ *	buf_size = response/command size.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_send_sns(scsi_qla_host_t *ha, dma_addr_t sns_phys_address,
+    uint16_t cmd_size, size_t buf_size)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_send_sns(%ld): entered.\n",
+	    ha->host_no);)
+
+	DEBUG11(printk("qla2x00_send_sns: retry cnt=%d ratov=%d total "
+	    "tov=%d.\n", ha->retry_count, ha->login_timeout, mcp->tov);)
+
+	mcp->mb[0] = MBC_SEND_SNS_COMMAND;
+	mcp->mb[1] = cmd_size;
+	mcp->mb[2] = MSW(sns_phys_address);
+	mcp->mb[3] = LSW(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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x "
+		    "mb[1]=%x.\n", ha->host_no, rval, mcp->mb[0], mcp->mb[1]);)
+		DEBUG2_3_11(printk("qla2x00_send_sns(%ld): failed=%x mb[0]=%x "
+		    "mb[1]=%x.\n", ha->host_no, rval, mcp->mb[0], mcp->mb[1]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_send_sns(%ld): done.\n", ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_login_fabric
+ *	Issue login fabric port mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = device loop ID.
+ *	domain = device domain.
+ *	area = device area.
+ *	al_pa = device AL_PA.
+ *	status = pointer for return status.
+ *	opt = command options.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_login_fabric(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t domain,
+    uint8_t area, uint8_t al_pa, uint16_t *mb, uint8_t opt)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_login_fabric(%ld): entered.\n", ha->host_no);)
+
+	mcp->mb[0] = MBC_LOGIN_FABRIC_PORT;
+#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_7|MBX_6|MBX_2|MBX_1|MBX_0;
+	/*mcp->tov = ha->retry_count * ha->login_timeout * 2;*/
+	mcp->tov = ha->login_timeout * 2;
+	mcp->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	/* Return mailbox statuses. */
+	if (mb != NULL) {
+		mb[0] = mcp->mb[0];
+		mb[1] = mcp->mb[1];
+		mb[2] = mcp->mb[2];
+		mb[6] = mcp->mb[6];
+		mb[7] = mcp->mb[7];
+	}
+
+	if (rval != QLA_SUCCESS) {
+		/* RLU tmp code: need to change main mailbox_command function to
+		 * return ok even when the mailbox completion value is not
+		 * SUCCESS. The caller needs to be responsible to interpret
+		 * the return values of this mailbox command if we're not
+		 * to change too much of the existing code.
+		 */
+		if (mcp->mb[0] == 0x4001 || mcp->mb[0] == 0x4002 ||
+		    mcp->mb[0] == 0x4003 || mcp->mb[0] == 0x4005 ||
+		    mcp->mb[0] == 0x4006)
+			rval = QLA_SUCCESS;
+
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_login_fabric(%ld): failed=%x "
+		    "mb[0]=%x mb[1]=%x mb[2]=%x.\n", ha->host_no, rval,
+		    mcp->mb[0], mcp->mb[1], mcp->mb[2]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_login_fabric(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_login_local_device
+ *           Issue login loop port mailbox command.
+ *    
+ * Input:
+ *           ha = adapter block pointer.
+ *           loop_id = device loop ID.
+ *           opt = command options.
+ *          
+ * Returns:
+ *            Return status code.
+ *             
+ * Context:
+ *            Kernel context.
+ *             
+ */
+int
+qla2x00_login_local_device(scsi_qla_host_t *ha, uint16_t loop_id,
+    uint16_t *mb_ret, uint8_t opt)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG3(printk("%s(%ld): entered.\n", __func__, ha->host_no);)
+
+	mcp->mb[0] = MBC_LOGIN_LOOP_PORT;
+#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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+ 	/* Return mailbox statuses. */
+ 	if (mb_ret != NULL) {
+ 		mb_ret[0] = mcp->mb[0];
+ 		mb_ret[1] = mcp->mb[1];
+ 		mb_ret[6] = mcp->mb[6];
+ 		mb_ret[7] = mcp->mb[7];
+ 	}
+
+	if (rval != QLA_SUCCESS) {
+ 		/* AV tmp code: need to change main mailbox_command function to
+ 		 * return ok even when the mailbox completion value is not
+ 		 * SUCCESS. The caller needs to be responsible to interpret
+ 		 * the return values of this mailbox command if we're not
+ 		 * to change too much of the existing code.
+ 		 */
+ 		if (mcp->mb[0] == 0x4005 || mcp->mb[0] == 0x4006)
+ 			rval = QLA_SUCCESS;
+
+		DEBUG(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x "
+		    "mb[6]=%x mb[7]=%x.\n", __func__, ha->host_no, rval,
+		    mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7]);)
+		DEBUG2_3(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x "
+		    "mb[6]=%x mb[7]=%x.\n", __func__, ha->host_no, rval,
+		    mcp->mb[0], mcp->mb[1], mcp->mb[6], mcp->mb[7]);)
+	} else {
+		/*EMPTY*/
+		DEBUG3(printk("%s(%ld): done.\n", __func__, ha->host_no);)
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_fabric_logout
+ *	Issue logout fabric port mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = device loop ID.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_fabric_logout(scsi_qla_host_t *ha, uint16_t loop_id)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_fabric_logout(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_LOGOUT_FABRIC_PORT;
+#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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_fabric_logout(%ld): failed=%x "
+		    "mbx1=%x.\n", ha->host_no, rval, mcp->mb[1]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_fabric_logout(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_full_login_lip
+ *	Issue full login LIP mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_full_login_lip(scsi_qla_host_t *ha)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	DEBUG11(printk("qla2x00_full_login_lip(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_LIP_FULL_LOGIN;
+	mcp->mb[1] = 0;
+	mcp->mb[2] = 0;
+	mcp->mb[3] = 0;
+	mcp->out_mb = 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 != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_full_login_lip(%ld): failed=%x.\n",
+		    ha->instance, rval);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_full_login_lip(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_id_list
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+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_id_list(%ld): entered.\n",
+	    ha->host_no);)
+
+	if (id_list == NULL)
+		return QLA_FUNCTION_FAILED;
+
+	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 = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		DEBUG2_3_11(printk("qla2x00_get_id_list(%ld): failed=%x.\n",
+		    ha->host_no, rval);)
+	} else {
+		*entries = mcp->mb[1];
+		DEBUG11(printk("qla2x00_get_id_list(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return rval;
+}
+
+#if 0 /* not yet needed */
+int
+qla2x00_dump_ram(scsi_qla_host_t *ha, uint32_t risc_address,
+    dma_addr_t ispdump_dma, uint32_t size)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+
+	mcp->mb[0] = MBC_DUMP_RAM;
+	mcp->mb[1] = risc_address & 0xffff;
+	mcp->mb[2] = MSW(ispdump_dma);
+	mcp->mb[3] = LSW(ispdump_dma);
+	mcp->mb[4] = 0;
+	mcp->mb[6] = MSW(MSD(ispdump_dma));
+	mcp->mb[7] = LSW(MSD(ispdump_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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	return rval;
+}
+#endif
+
+/*
+ * qla2x00_lun_reset
+ *	Issue lun reset mailbox command.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	loop_id = device loop ID.
+ *      lun = lun to be reset.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_lun_reset(scsi_qla_host_t *ha, uint16_t loop_id, uint16_t lun)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	ENTER("qla2x00_lun_reset");
+
+	mcp->mb[0] = MBC_LUN_RESET;
+#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->flags = 0;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		/*EMPTY*/
+		printk(KERN_WARNING "qla2x00_lun_reset(%d): failed = %d",
+		    (int)ha->instance, rval);
+	} else {
+		/*EMPTY*/
+		LEAVE("qla2x00_lun_reset: exiting normally");
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_send_rnid_mbx
+ *	Issue RNID ELS using mailbox command
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	loop_id = loop ID of the target device.
+ *	data_fmt = currently supports only 0xDF.
+ *	buffer = buffer pointer.
+ *	buf_size = size of buffer.
+ *	mb_reg = pointer to return mailbox registers.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_send_rnid_mbx(scsi_qla_host_t *ha, uint16_t loop_id, uint8_t data_fmt,
+    dma_addr_t buf_phys_addr, size_t buf_size, uint16_t *mb_reg)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("qla2x00_send_rnid_mbx(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_SEND_RNID_ELS;
+#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] = 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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
+
+		DEBUG2_3_11(printk("qla2x00_send_rnid_mbx(%ld): failed=%x "
+		    "mb[1]=%x.\n",
+		    ha->host_no, mcp->mb[0], mcp->mb[1]);)
+	} else {
+		/*EMPTY*/
+	 	DEBUG11(printk("qla2x00_send_rnid_mbx(%ld): done.\n",
+		     ha->host_no);)
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_set_rnid_params_mbx
+ *	Set RNID parameters using mailbox command
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	buffer = buffer pointer.
+ *	buf_size = size of buffer.
+ *	mb_reg = pointer to return mailbox registers.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_set_rnid_params_mbx(scsi_qla_host_t *ha, dma_addr_t buf_phys_addr,
+    size_t buf_size, uint16_t *mb_reg)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("qla2x00_set_rnid_params_mbx(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_SET_RNID_PARAMS;
+	mcp->mb[1] = 0;
+	mcp->mb[2] = MSW(buf_phys_addr);
+	mcp->mb[3] = LSW(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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
+
+		DEBUG2_3_11(printk("qla2x00_set_rnid_params_mbx(%ld): "
+		    "failed=%x mb[1]=%x.\n", ha->host_no, mcp->mb[0],
+		    mcp->mb[1]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_set_rnid_params_mbx(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_get_rnid_params_mbx
+ *	Get RNID parameters using mailbox command
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	buffer = buffer pointer.
+ *	buf_size = size of buffer.
+ *	mb_reg = pointer to return mailbox registers.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_rnid_params_mbx(scsi_qla_host_t *ha, dma_addr_t buf_phys_addr,
+    size_t buf_size, uint16_t *mb_reg)
+{
+	int		rval;
+	mbx_cmd_t	mc;
+	mbx_cmd_t	*mcp = &mc;
+
+	DEBUG11(printk("qla2x00_get_rnid_params_mbx(%ld): entered.\n",
+	    ha->host_no);)
+
+	mcp->mb[0] = MBC_GET_RNID_PARAMS;
+	mcp->mb[1] = 0;
+	mcp->mb[2] = MSW(buf_phys_addr);
+	mcp->mb[3] = LSW(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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval != QLA_SUCCESS) {
+		memcpy(mb_reg, mcp->mb, 2 * 2); /* 2 status regs */
+
+		DEBUG2_3_11(printk("qla2x00_get_rnid_params_mbx(%ld): "
+		    "failed=%x mb[1]=%x.\n", ha->host_no, mcp->mb[0],
+		    mcp->mb[1]);)
+	} else {
+		/*EMPTY*/
+		DEBUG11(printk("qla2x00_get_rnid_params_mbx(%ld): done.\n",
+		    ha->host_no);)
+	}
+
+	return (rval);
+}
+
+#if defined(QL_DEBUG_LEVEL_3)
+/*
+ * qla2x00_get_fcal_position_map
+ *	Get FCAL (LILP) position map using mailbox command
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pos_map = buffer pointer (can be NULL).
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map)
+{
+	int rval;
+	mbx_cmd_t mc;
+	mbx_cmd_t *mcp = &mc;
+	char *pmap;
+	dma_addr_t pmap_dma;
+
+	pmap = pci_alloc_consistent(ha->pdev, FCAL_MAP_SIZE, &pmap_dma);
+	if (pmap  == NULL) {
+		DEBUG2_3_11(printk("%s(%ld): **** Mem Alloc Failed ****",
+		    __func__, ha->host_no));
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+	memset(pmap, 0, FCAL_MAP_SIZE);
+
+	mcp->mb[0] = MBC_GET_FC_AL_POSITION_MAP;
+	mcp->mb[2] = MSW(pmap_dma);
+	mcp->mb[3] = LSW(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;
+	rval = qla2x00_mailbox_command(ha, mcp);
+
+	if (rval == QLA_SUCCESS) {
+		DEBUG11(printk("%s(%ld): (mb0=%x/mb1=%x) FC/AL Position Map "
+		    "size (%x)\n", __func__, ha->host_no, mcp->mb[0],
+		    mcp->mb[1], (unsigned)pmap[0]));
+		DEBUG11(qla2x00_dump_buffer(pmap, pmap[0] + 1));
+
+		if (pos_map)
+			memcpy(pos_map, pmap, FCAL_MAP_SIZE);
+	}
+	pci_free_consistent(ha->pdev, FCAL_MAP_SIZE, pmap, pmap_dma);
+
+	if (rval != QLA_SUCCESS) {
+		DEBUG2_3_11(printk("%s(%ld): failed=%x.\n", __func__,
+		    ha->host_no, rval));
+	} else {
+		DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
+	}
+
+	return rval;
+}
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_os.c 350-qlogic/drivers/scsi/qla2xxx/qla_os.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_os.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_os.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,5690 @@
+/*
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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_MODVERSION
+#include "qla_os.h"
+
+#include "qla_def.h"
+
+/*
+ * Driver version
+ */
+char qla2x00_version_str[40] = { 0 };
+
+/*
+* Command line options.
+*/
+unsigned long qla2x00_verbose = 1L;
+unsigned long qla2x00_quiet   = 0L;
+unsigned long qla2x00_reinit = 1L;
+unsigned long qla2x00_req_dmp = 0L;
+
+/*
+ * Stats for all adpaters.
+ */
+struct _qla2x00stats qla2x00_stats;
+
+/*
+ * Ioctl related information.
+ */
+int num_hosts = 0;       
+int apiHBAInstance = 0;
+
+/*
+ * Module parameter information and variables
+ */
+
+char *ql2xdevconf = NULL;
+#if MPIO_SUPPORT
+int ql2xretrycount = 30;
+#else
+int ql2xretrycount = 20;
+#endif
+int qla2xenbinq = 1;
+int max_srbs = MAX_SRBS;
+int ql2xlogintimeout = 20;
+int qlport_down_retry = 0;
+int ql2xmaxqdepth = 0;
+int displayConfig = 0;
+#if defined(ISP2300)
+int ql2xintrdelaytimer = 10;
+#endif
+
+/* Enable for failover */
+#if MPIO_SUPPORT
+int ql2xfailover = 1;
+#else
+int ql2xfailover = 0;
+#endif
+
+int ConfigRequired = 0;
+int recoveryTime = MAX_RECOVERYTIME;
+int failbackTime = MAX_FAILBACKTIME;
+
+/* Persistent binding type */
+int Bind = BIND_BY_PORT_NAME;
+
+int ql2xsuspendcount = SUSPEND_COUNT;
+
+int qla2x00_retryq_dmp = 0;
+
+#if defined(MODULE)
+char *ql2xopts = NULL;
+
+/* insmod qla2100 ql2xopts=verbose" */
+MODULE_PARM(ql2xopts, "s");
+MODULE_PARM_DESC(ql2xopts,
+		"Additional driver options.");
+
+MODULE_PARM(ql2xfailover, "i");
+MODULE_PARM_DESC(ql2xfailover,
+		"Driver failover support: 0 to disable; 1 to enable. "
+		"Default behaviour based on compile-time option "
+		"MPIO_SUPPORT.");
+
+MODULE_PARM(ql2xmaxqdepth, "i");
+MODULE_PARM_DESC(ql2xmaxqdepth,
+		"Maximum queue depth to report for target devices.");
+
+MODULE_PARM(ql2xlogintimeout,"i");
+MODULE_PARM_DESC(ql2xlogintimeout,
+		"Login timeout value in seconds.");
+
+MODULE_PARM(qlport_down_retry,"i");
+MODULE_PARM_DESC(qlport_down_retry,
+		"Maximum number of command retries to a port that returns"
+		"a PORT-DOWN status.");
+
+MODULE_PARM(ql2xretrycount,"i");
+MODULE_PARM_DESC(ql2xretrycount,
+		"Maximum number of mid-layer retries allowed for a command.  "
+		"Default value in non-failover mode is 20, "
+		"in failover mode, 30.");
+
+MODULE_PARM(max_srbs,"i");
+MODULE_PARM_DESC(max_srbs,
+		"Maximum number of simultaneous commands allowed for an HBA.");
+
+MODULE_PARM(displayConfig, "i");
+MODULE_PARM_DESC(displayConfig,
+		"If 1 then display the configuration used in "
+		"/etc/modules.conf.");
+#if defined(ISP2300)
+MODULE_PARM(ql2xintrdelaytimer,"i");
+MODULE_PARM_DESC(ql2xintrdelaytimer,
+		"ZIO: Waiting time for Firmware before it generates an "
+		"interrupt to the host to notify completion of request.");
+#endif
+
+MODULE_PARM(ConfigRequired, "i");
+MODULE_PARM_DESC(ConfigRequired,
+		"If 1, then only configured devices passed in through the"
+		"ql2xopts parameter will be presented to the OS");
+
+MODULE_PARM(recoveryTime, "i");
+MODULE_PARM_DESC(recoveryTime,
+		"Recovery time in seconds before a target device is sent I/O "
+		"after a failback is performed.");
+
+MODULE_PARM(failbackTime, "i");
+MODULE_PARM_DESC(failbackTime,
+		"Delay in seconds before a failback is performed.");
+
+MODULE_PARM(Bind, "i");
+MODULE_PARM_DESC(Bind,
+		"Target persistent binding method: "
+		"0 by Portname (default); 1 by PortID; 2 by Nodename. ");
+
+MODULE_PARM(ql2xsuspendcount,"i");
+MODULE_PARM_DESC(ql2xsuspendcount,
+		"Number of 6-second suspend iterations to perform while a "
+		"target returns a <NOT READY> status.  Default is 10 "
+		"iterations.");
+#endif
+
+MODULE_AUTHOR("QLogic Corporation");
+MODULE_DESCRIPTION("QLogic " ISP_NAME " FC-SCSI Host Bus Adapter driver");
+MODULE_LICENSE("GPL");
+
+
+/*
+ * Proc structures and functions
+ */
+struct info_str {
+	char	*buffer;
+	int	length;
+	off_t	offset;
+	int	pos;
+};
+
+static void copy_mem_info(struct info_str *, char *, int);
+static int copy_info(struct info_str *, char *, ...);
+
+
+/*
+ * List of host adapters
+ */
+LIST_HEAD(qla_hostlist);
+rwlock_t qla_hostlist_lock = RW_LOCK_UNLOCKED;
+
+
+/*
+ * PCI driver interface definitions
+ */
+#define ISP21XX_FW_INDEX	0
+#define ISP22XX_FW_INDEX	0
+#define ISP23XX_FW_INDEX	0
+#define ISP232X_FW_INDEX	2
+
+static struct qla_fw_info qla_fw_tbl[] = {
+#if defined(ISP2100)
+	/* Start of 21xx firmware list */
+	{
+		.addressing	= FW_INFO_ADDR_NORMAL,
+		.fwcode		= &fw2100tp_code01[0],
+		.fwlen		= &fw2100tp_length01,
+		.fwstart	= &fw2100tp_addr01,
+	},
+#endif
+
+#if defined(ISP2200)
+	/* Start of 22xx firmware list */
+	{
+		.addressing	= FW_INFO_ADDR_NORMAL,
+		.fwcode		= &fw2200ip_code01[0],
+		.fwlen		= &fw2200ip_length01,
+		.fwstart	= &fw2200ip_addr01,
+	},
+#endif
+
+#if defined(ISP2300)
+	/* Start of 23xx firmware list */
+	{
+		.addressing	= FW_INFO_ADDR_NORMAL,
+		.fwcode		= &fw2300ipx_code01[0],
+		.fwlen		= &fw2300ipx_length01,
+		.fwstart	= &fw2300ipx_addr01,
+	},
+
+#if defined(ISP2322)
+	/* End of 23xx firmware list */
+	{ FW_INFO_ADDR_NOMORE, },
+
+	/* Start of 232x firmware list */
+#if defined(TPX)
+	{
+		.addressing	= FW_INFO_ADDR_NORMAL,
+		.fwcode		= &fw2322tpx_code01[0],
+		.fwlen		= &fw2322tpx_length01,
+		.fwstart	= &fw2322tpx_addr01,
+	},
+	{
+		.addressing	= FW_INFO_ADDR_EXTENDED,
+		.fwcode		= &rseqtpx_code01[0],
+		.fwlen		= &rseqtpx_code_length01,
+		.lfwstart	= &rseqtpx_code_addr01,
+	},
+	{
+		.addressing	= FW_INFO_ADDR_EXTENDED,
+		.fwcode		= &xseqtpx_code01[0],
+		.fwlen		= &xseqtpx_code_length01,
+		.lfwstart	= &xseqtpx_code_addr01,
+	},
+#else
+	{
+		.addressing	= FW_INFO_ADDR_NORMAL,
+		.fwcode		= &fw2322ipx_code01[0],
+		.fwlen		= &fw2322ipx_length01,
+		.fwstart	= &fw2322ipx_addr01,
+	},
+	{
+		.addressing	= FW_INFO_ADDR_EXTENDED,
+		.fwcode		= &rseqipx_code01[0],
+		.fwlen		= &rseqipx_code_length01,
+		.lfwstart	= &rseqipx_code_addr01,
+	},
+	{
+		.addressing	= FW_INFO_ADDR_EXTENDED,
+		.fwcode		= &xseqipx_code01[0],
+		.fwlen		= &xseqipx_code_length01,
+		.lfwstart	= &xseqipx_code_addr01,
+	},
+#endif
+
+#endif
+
+#endif
+
+	/* End of firmware list */
+	{ FW_INFO_ADDR_NOMORE, },
+};
+
+#define ISP21XX_BRD_INDEX	0
+#define ISP22XX_BRD_INDEX	0
+#define ISP23XX_BRD_INDEX	0
+#define ISP2312_BRD_INDEX	1
+#define ISP2322_BRD_INDEX	2
+
+static struct qla_board_info qla_board_tbl[] = {
+#if defined(ISP2100)
+	{
+		.name		= "ISP2100 ",
+		.fwinfo		= &qla_fw_tbl[ISP21XX_FW_INDEX],
+	}
+#endif
+
+#if defined(ISP2200)
+	{
+		.name		= "ISP2200 ",
+		.fwinfo		= &qla_fw_tbl[ISP22XX_FW_INDEX],
+	}
+#endif
+
+#if defined(ISP2300)
+	{
+		.name		= "ISP2300 ",
+		.fwinfo		= &qla_fw_tbl[ISP23XX_FW_INDEX],
+	},
+
+	{
+		.name		= "ISP2312 ",
+		.fwinfo		= &qla_fw_tbl[ISP23XX_FW_INDEX],
+	},
+
+#if defined(ISP2322)
+	{
+		.name		= "ISP2322 ",
+		.fwinfo		= &qla_fw_tbl[ISP232X_FW_INDEX],
+	}
+#endif
+#endif
+};
+
+static struct pci_device_id qla_pci_tbl[] __devinitdata = {
+#if defined(ISP2100)
+	{
+		.vendor		= QLA2X00_VENDOR_ID,
+		.device		= QLA2100_DEVICE_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.driver_data
+			= (unsigned long)&qla_board_tbl[ISP21XX_BRD_INDEX],
+	},
+#endif
+
+#if defined(ISP2200)
+	{
+		.vendor		= QLA2X00_VENDOR_ID,
+		.device		= QLA2200_DEVICE_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.driver_data
+			= (unsigned long)&qla_board_tbl[ISP22XX_BRD_INDEX],
+	},
+#endif
+
+#if defined(ISP2300)
+	{
+		.vendor		= QLA2X00_VENDOR_ID,
+		.device		= QLA2300_DEVICE_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.driver_data
+			= (unsigned long)&qla_board_tbl[ISP23XX_BRD_INDEX],
+	},
+
+	{
+		.vendor		= QLA2X00_VENDOR_ID,
+		.device		= QLA2312_DEVICE_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.driver_data
+			= (unsigned long)&qla_board_tbl[ISP2312_BRD_INDEX],
+	},
+
+#if defined(ISP2322)
+	{
+		.vendor		= QLA2X00_VENDOR_ID,
+		.device		= QLA2322_DEVICE_ID,
+		.subvendor	= PCI_ANY_ID,
+		.subdevice	= PCI_ANY_ID,
+		.driver_data
+			= (unsigned long)&qla_board_tbl[ISP2322_BRD_INDEX],
+	},
+#endif
+#endif
+	{0 , 0}
+};
+MODULE_DEVICE_TABLE(pci, qla_pci_tbl);
+
+static int __devinit qla2x00_probe_device(struct pci_dev *,
+    const struct pci_device_id *);
+static void __devexit qla2x00_remove_device(struct pci_dev *);
+static void qla2x00_free_device(scsi_qla_host_t *);
+
+struct pci_driver qla2x00_pci_driver = {
+	.name		= DRIVER_NAME,
+	.id_table	= qla_pci_tbl,
+
+	.probe		= qla2x00_probe_device,
+	.remove		= __devexit_p(qla2x00_remove_device),
+};
+
+
+/*
+ * SCSI host template entry points 
+ */
+static const char *qla2x00_info(struct Scsi_Host *);
+static int qla2xxx_slave_configure(struct scsi_device * device);
+extern int qla2x00_ioctl(struct scsi_device *, int , void *);
+static int qla2xxx_eh_abort(struct scsi_cmnd *);
+static int qla2xxx_eh_device_reset(struct scsi_cmnd *);
+static int qla2xxx_eh_bus_reset(struct scsi_cmnd *);
+static int qla2xxx_eh_host_reset(struct scsi_cmnd *);
+static uint8_t qla2x00_loop_reset(scsi_qla_host_t *ha);
+static int qla2x00_device_reset(scsi_qla_host_t *, fc_port_t *);
+
+static int qla2x00_proc_info(struct Scsi_Host *, char *, char **,
+    off_t, int, int);
+
+static uint8_t qla2x00_register_with_Linux(scsi_qla_host_t *, uint8_t);
+
+#if defined (CONFIG_SCSIFCHOTSWAP) || defined(CONFIG_GAMAP)
+int qla2x00_get_scsi_info_from_wwn(int mode, unsigned long long wwn, int *host, int *channel, int *lun, int *id);
+int qla2x00_get_wwn_from_scsi_info(int host, int id, unsigned long long *wwn);
+#endif /* CONFIG_SCSIFCHOTSWAP || CONFIG_GAMAP */
+
+#if !defined(MODULE)
+static int __init qla2x00_setup(char *);
+#else
+static void qla2x00_setup(char *);
+#endif
+static char *qla2x00_get_line(char *, char *);
+static int qla2x00_get_tokens(char *, char **, int);
+
+static struct scsi_host_template qla2x00_driver_template = {
+	.module			= THIS_MODULE,
+	.name			= DRIVER_NAME,
+	.proc_name		= DRIVER_NAME,
+	.proc_info		= qla2x00_proc_info,
+	.info			= qla2x00_info,
+	.queuecommand		= qla2x00_queuecommand,
+
+	.eh_abort_handler	= qla2xxx_eh_abort,
+	.eh_device_reset_handler = qla2xxx_eh_device_reset,
+	.eh_bus_reset_handler	= qla2xxx_eh_bus_reset,
+	.eh_host_reset_handler	= qla2xxx_eh_host_reset,
+
+	.slave_configure	= qla2xxx_slave_configure,
+
+	.this_id		= -1,
+	.can_queue		= REQUEST_ENTRY_CNT+128,
+	.cmd_per_lun		= 3,
+
+	/*
+	 * At this time, we limit the S/G table size to the maximum number of
+	 * entries possible given the use of IOCBs that are capable of 32bit
+	 * DMA addressing.
+	 *
+	 * We will update this value after we've determined the appropriate DMA
+	 * mask (qla2x00_config_dma_addressing()).
+	 */
+	.sg_tablesize		= SG_SEGMENTS_32,
+
+	/*
+	 * The RISC allows for each command to transfer (2^32-1) bytes of data,
+	 * which equates to 0x800000 sectors.
+	 */
+	.max_sectors		= 0xFFFF,
+};
+
+static void qla2x00_display_fc_names(scsi_qla_host_t *);
+
+void qla2x00_blink_led(scsi_qla_host_t *);
+
+/* TODO Convert to inlines
+ *
+ * Timer routines
+ */
+#define	WATCH_INTERVAL		1       /* number of seconds */
+
+static void qla2x00_timer(scsi_qla_host_t *);
+
+static __inline__ void qla2x00_start_timer(scsi_qla_host_t *,
+    void *, unsigned long);
+static __inline__ void qla2x00_restart_timer(scsi_qla_host_t *, unsigned long);
+static __inline__ void qla2x00_stop_timer(scsi_qla_host_t *);
+
+static inline void
+qla2x00_start_timer(scsi_qla_host_t *ha, void *func, unsigned long interval)
+{
+	init_timer(&ha->timer);
+	ha->timer.expires = jiffies + interval * HZ;
+	ha->timer.data = (unsigned long)ha;
+	ha->timer.function = (void (*)(unsigned long))func;
+	add_timer(&ha->timer);
+	ha->timer_active = 1;
+}
+
+static inline void
+qla2x00_restart_timer(scsi_qla_host_t *ha, unsigned long interval)
+{
+	mod_timer(&ha->timer, jiffies + interval * HZ);
+}
+
+static __inline__ void
+qla2x00_stop_timer(scsi_qla_host_t *ha)
+{
+	del_timer_sync(&ha->timer);
+	ha->timer_active = 0;
+}
+
+
+static void qla2x00_cmd_timeout(srb_t *sp);
+static __inline__ void qla2x00_add_timer_to_cmd(srb_t *sp, int timeout);
+static __inline__ void qla2x00_delete_timer_from_cmd(srb_t *sp);
+
+/**************************************************************************
+*   qla2x00_add_timer_to_cmd
+*
+* Description:
+*       Creates a timer for the specified command. The timeout is usually
+*       the command time from kernel minus 2 secs.
+*
+* Input:
+*     sp - pointer to validate
+*
+* Returns:
+*     None.
+**************************************************************************/
+static inline void
+qla2x00_add_timer_to_cmd(srb_t *sp, int timeout)
+{
+	init_timer(&sp->timer);
+	sp->timer.expires = jiffies + timeout * HZ;
+	sp->timer.data = (unsigned long) sp;
+	sp->timer.function = (void (*) (unsigned long))qla2x00_cmd_timeout;
+	add_timer(&sp->timer);
+}
+
+/**************************************************************************
+*   qla2x00_delete_timer_from_cmd
+*
+* Description:
+*       Delete the timer for the specified command.
+*
+* Input:
+*     sp - pointer to validate
+*
+* Returns:
+*     None.
+**************************************************************************/
+static inline void 
+qla2x00_delete_timer_from_cmd(srb_t *sp)
+{
+	if (sp->timer.function != NULL) {
+		del_timer(&sp->timer);
+		sp->timer.function =  NULL;
+		sp->timer.data = (unsigned long) NULL;
+	}
+}
+
+static __inline__ void qla2x00_callback(scsi_qla_host_t *, struct scsi_cmnd *);
+static __inline__ void sp_put(struct scsi_qla_host * ha, srb_t *sp);
+static __inline__ void sp_get(struct scsi_qla_host * ha, srb_t *sp);
+static __inline__ void
+qla2x00_delete_from_done_queue(scsi_qla_host_t *, srb_t *); 
+
+/**************************************************************************
+* sp_put
+*
+* Description:
+*   Decrement reference count and call the callback if we're the last
+*   owner of the specified sp. Will get io_request_lock before calling
+*   the callback.
+*
+* Input:
+*   ha - pointer to the scsi_qla_host_t where the callback is to occur.
+*   sp - pointer to srb_t structure to use.
+*
+* Returns:
+*
+**************************************************************************/
+static inline void
+sp_put(struct scsi_qla_host * ha, srb_t *sp)
+{
+        if (atomic_read(&sp->ref_count) == 0) {
+		printk(KERN_INFO
+			"%s(): **** SP->ref_count not zero\n",
+			__func__);
+                DEBUG2(BUG();)
+
+                return;
+	}
+
+        if (!atomic_dec_and_test(&sp->ref_count)) {
+                return;
+        }
+
+        qla2x00_callback(ha, sp->cmd);
+}
+
+/**************************************************************************
+* sp_get
+*
+* Description:
+*   Increment reference count of the specified sp.
+*
+* Input:
+*   sp - pointer to srb_t structure to use.
+*
+* Returns:
+*
+**************************************************************************/
+static inline void
+sp_get(struct scsi_qla_host * ha, srb_t *sp)
+{
+        atomic_inc(&sp->ref_count);
+
+        if (atomic_read(&sp->ref_count) > 2) {
+		printk(KERN_INFO
+			"%s(): **** SP->ref_count greater than two\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return;
+	}
+}
+
+/*
+* qla2x00_callback
+*      Returns the completed SCSI command to LINUX.
+*
+* Input:
+*	ha -- Host adapter structure
+*	cmd -- SCSI mid-level command structure.
+* Returns:
+*      None
+* Note:From failover point of view we always get the sp
+*      from vis_ha pool in queuecommand.So when we put it 
+*      back to the pool it has to be the vis_ha.	 
+*      So rely on struct scsi_cmnd to get the vis_ha and not on sp. 		 	
+*/
+static inline void
+qla2x00_callback(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
+{
+	srb_t *sp = (srb_t *) CMD_SP(cmd);
+	scsi_qla_host_t *vis_ha;
+	os_lun_t *lq;
+	int got_sense;
+	unsigned long	cpu_flags = 0;
+
+	ENTER(__func__);
+
+	cmd->host_scribble = (unsigned char *) NULL;
+	vis_ha = (scsi_qla_host_t *) cmd->device->host->hostdata;
+
+	if (sp == NULL) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL SP\n",
+			__func__);
+                DEBUG2(BUG();)
+		return;
+	}
+
+	/*
+	 * If command status is not DID_BUS_BUSY then go ahead and freed sp.
+	 */
+	/*
+	 * Cancel command timeout
+	 */
+	qla2x00_delete_timer_from_cmd(sp);
+
+	/*
+	 * Put SP back in the free queue
+	 */
+	sp->cmd   = NULL;
+	CMD_SP(cmd) = NULL;
+	lq = sp->lun_queue;
+	got_sense = (sp->flags & SRB_GOT_SENSE)? 1: 0;
+	add_to_free_queue(vis_ha, sp);
+
+	if (host_byte(cmd->result) == DID_OK) {
+		/* device ok */
+		ha->total_bytes += cmd->bufflen;
+		if (!got_sense) {
+			/* If lun was suspended then clear retry count */
+			spin_lock_irqsave(&lq->q_lock, cpu_flags);
+			if (!test_bit(LUN_EXEC_DELAYED, &lq->q_flag))
+				lq->q_state = LUN_STATE_READY;
+			spin_unlock_irqrestore(&lq->q_lock, cpu_flags);
+		}
+
+#if defined(CMD_PROFILE)
+	{
+	unsigned long	latency;
+
+	latency = jiffies - sp->r_start;
+	if (latency > sp->lun_queue->done_latency)
+		sp->lun_queue->done_latency = latency;
+	}
+#endif
+
+	} else if (host_byte(cmd->result) == DID_ERROR) {
+		/* device error */
+		ha->total_dev_errs++;
+	}
+
+	if (cmd->flags & IS_RESETTING) {
+		cmd->result = DID_RESET << 16;
+	}
+
+	/* Call the mid-level driver interrupt handler */
+	(*(cmd)->scsi_done)(cmd);
+
+	LEAVE(__func__);
+}
+
+static inline void 
+qla2x00_delete_from_done_queue(scsi_qla_host_t *dest_ha, srb_t *sp) 
+{
+	/* remove command from done list */
+	list_del_init(&sp->list);
+	dest_ha->done_q_cnt--;
+	sp->state = SRB_NO_QUEUE_STATE;
+
+	if (sp->flags & SRB_DMA_VALID) {
+		sp->flags &= ~SRB_DMA_VALID;
+
+		/* 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) {
+			pci_unmap_page(dest_ha->pdev, sp->dma_handle,
+			    sp->cmd->request_bufflen,
+			    scsi_to_pci_dma_dir(sp->cmd->sc_data_direction));
+		}
+	}
+}
+
+static int qla2x00_do_dpc(void *data);
+static uint8_t qla2x00_check_for_devices_online(scsi_qla_host_t *);
+
+static void qla2x00_rst_aen(scsi_qla_host_t *);
+
+static void qla2x00_process_failover(scsi_qla_host_t *);
+
+static uint8_t qla2x00_mem_alloc(scsi_qla_host_t *);
+static void qla2x00_mem_free(scsi_qla_host_t *ha);
+int qla2x00_allocate_sp_pool( scsi_qla_host_t *ha);
+void qla2x00_free_sp_pool(scsi_qla_host_t *ha);
+
+/*************************************************************************
+*   qla2x00_set_info
+*
+* Description:
+*   Set parameters for the driver from the /proc filesystem.
+*
+* Returns:
+*************************************************************************/
+int
+qla2x00_set_info(char *buffer, int length, struct Scsi_Host *shost)
+{
+	return (-ENOSYS);  /* Currently this is a no-op */
+}
+
+/* TODO: Complete module_param() */
+#if 0
+/**************************************************************************
+* qla2x00_detect
+*
+* Description:
+*    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
+*    knows where its first entry is in the scsi_hosts[] array.
+*
+* Input:
+*     template - pointer to SCSI template
+*
+* Returns:
+*  num - number of host adapters found.
+**************************************************************************/
+int
+qla2x00_detect(struct scsi_host_template *template)
+{
+	/*
+	 * If we are called as a module, the qla2100 pointer may not be null
+	 * and it would point to our bootup string, just like on the lilo
+	 * command line.  IF not NULL, then process this config string with
+	 * qla2x00_setup
+	 *
+	 * Boot time Options To add options at boot time add a line to your
+	 * lilo.conf file like:
+	 * append="qla2100=verbose,tag_info:{{32,32,32,32},{32,32,32,32}}"
+	 * which will result in the first four devices on the first two
+	 * controllers being set to a tagged queue depth of 32.
+	 */
+	if (ql2xopts)
+		qla2x00_setup(ql2xopts);
+	if (dummy_buffer[0] != 'P')
+		printk(KERN_WARNING
+		    "qla2x00: Please read the file "
+		    "/usr/src/linux/drivers/scsi/README.qla2x00\n"
+		    "qla2x00: to see the proper way to specify options to "
+		    "the qla2x00 module\n"
+		    "qla2x00: Specifically, don't use any commas when passing "
+		    "arguments to\n"
+		    "qla2x00: insmod or else it might trash certain memory "
+		    "areas.\n");
+}
+#endif
+
+/**************************************************************************
+*   qla2x00_register_with_Linux
+*
+* Description:
+*   Free the passed in Scsi_Host memory structures prior to unloading the
+*   module.
+*
+* Input:
+*     ha - pointer to host adapter structure
+*     maxchannels - MAX number of channels.
+*
+* Returns:
+*  0 - Sucessfully reserved resources.
+*  1 - Failed to reserved a resource.
+**************************************************************************/
+static uint8_t
+qla2x00_register_with_Linux(scsi_qla_host_t *ha, uint8_t maxchannels)
+{
+	struct Scsi_Host *host = ha->host;
+
+	host->can_queue = max_srbs;  /* default value:-MAX_SRBS(4096)  */
+	host->cmd_per_lun = 3;
+	host->max_cmd_len = MAX_CMDSZ;
+
+	host->max_channel = maxchannels;
+	host->max_lun = ha->max_luns;
+	host->unique_id = ha->instance;
+	host->max_id = ha->max_targets;
+
+	/* set our host ID  (need to do something about our two IDs) */
+	host->this_id = 255;
+
+	/* Register the IRQ with Linux (sharable) */
+	if (request_irq(host->irq, qla2x00_intr_handler,
+	    SA_INTERRUPT|SA_SHIRQ, DRIVER_NAME, ha)) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Failed to reserve interrupt %d already in "
+		    "use\n",
+		    ha->host_no, host->irq);
+		return 1;
+	}
+
+	/* Initialized the timer */
+	qla2x00_start_timer(ha, qla2x00_timer, WATCH_INTERVAL);
+
+	return 0;
+}
+
+
+/**************************************************************************
+*   qla2x00_info
+*
+* Description:
+*
+* Input:
+*     host - pointer to Scsi host adapter structure
+*
+* Returns:
+*     Return a text string describing the driver.
+**************************************************************************/
+const char *
+qla2x00_info(struct Scsi_Host *host)
+{
+	static char qla2x00_buffer[255];
+	char *bp;
+	scsi_qla_host_t *ha;
+
+	bp = &qla2x00_buffer[0];
+	ha = (scsi_qla_host_t *)host->hostdata;
+	memset(bp, 0, sizeof(qla2x00_buffer));
+
+	sprintf(bp,
+	    "QLogic %s PCI to Fibre Channel Host Adapter: %s irq %d\n"
+	    "Firmware version: %2d.%02d.%02d, Driver version %s\n",
+	    ha->model_number, pci_name(ha->pdev), host->irq,
+	    ha->fw_major_version, ha->fw_minor_version, ha->fw_subminor_version,
+	    qla2x00_version_str);
+
+	return bp;
+}
+
+/**************************************************************************
+* qla2x00_queuecommand
+*
+* Description:
+*     Queue a command to the controller.
+*
+* Input:
+*     cmd - pointer to Scsi cmd structure
+*     fn - pointer to Scsi done function
+*
+* Returns:
+*   0 - Always
+*
+* Note:
+* The mid-level driver tries to ensures that queuecommand never gets invoked
+* concurrently with itself or the interrupt handler (although the
+* interrupt handler may call this routine as part of request-completion
+* handling).
+**************************************************************************/
+int
+qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
+{
+	fc_port_t	*fcport;
+	os_lun_t	*lq;
+	os_tgt_t	*tq;
+	scsi_qla_host_t	*ha, *ha2;
+	srb_t		*sp;
+	struct Scsi_Host *host;
+	uint32_t	b, t, l;
+	unsigned long	handle;
+	int		pending_q_empty;
+
+	host = cmd->device->host;
+	ha = (scsi_qla_host_t *) host->hostdata;
+
+	cmd->scsi_done = fn;
+
+	spin_unlock_irq(ha->host->host_lock);
+
+	/*
+	 * Allocate a command packet from the "sp" pool.  If we cant get back
+	 * one then let scsi layer come back later.
+	 */
+	if ((sp = qla2x00_get_new_sp(ha)) == NULL) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Couldn't allocate memory for sp - retried.\n",
+		    ha->host_no);
+
+		spin_lock_irq(ha->host->host_lock);
+
+		LEAVE(__func__);
+		return (1);
+	}
+
+	sp->cmd = cmd;
+	CMD_SP(cmd) = (void *)sp;
+
+	sp->flags = 0;
+	if (CMD_RESID_LEN(cmd) & SRB_IOCTL) {
+		/* Need to set sp->flags */
+		sp->flags |= SRB_IOCTL;
+		CMD_RESID_LEN(cmd) = 0; /* Clear it since no more use. */
+	}
+
+	sp->fo_retry_cnt = 0;
+
+	/* Generate LU queue on bus, target, LUN */
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+
+	/*
+	 * Start Command Timer. Typically it will be 2 seconds less than what
+	 * is requested by the Host such that we can return the IO before
+	 * aborts are called.
+	 */
+	if ((cmd->timeout_per_command / HZ) > QLA_CMD_TIMER_DELTA)
+		qla2x00_add_timer_to_cmd(sp,
+		    (cmd->timeout_per_command / HZ) - QLA_CMD_TIMER_DELTA);
+	else
+		qla2x00_add_timer_to_cmd(sp, cmd->timeout_per_command / HZ);
+
+	if (l >= ha->max_luns) {
+		cmd->result = DID_NO_CONNECT << 16;
+
+		spin_lock_irq(ha->host->host_lock);
+
+		sp_put(ha, sp);
+		LEAVE(__func__);
+
+		return (0);
+	}
+
+	if ((tq = (os_tgt_t *) TGT_Q(ha, t)) != NULL &&
+		(lq = (os_lun_t *) LUN_Q(ha, t, l)) != NULL ) {
+
+		fcport = lq->fclun->fcport;
+		ha2 = fcport->ha;
+	} else {
+		lq = NULL;
+		fcport = NULL;
+		ha2 = ha;
+	}
+
+	/* Set an invalid handle until we issue the command to ISP */
+	/* then we will set the real handle value.                 */
+	handle = INVALID_HANDLE;
+	cmd->host_scribble = (unsigned char *)handle;
+
+	/* Bookkeeping information */
+	sp->r_start = jiffies;       /* time the request was recieved */
+	sp->u_start = 0;
+
+	/* Setup device queue pointers. */
+	sp->tgt_queue = tq;
+	sp->lun_queue = lq;
+
+	/*
+	 * NOTE : q is NULL
+	 *
+	 * 1. When device is added from persistent binding but has not been
+	 *    discovered yet.The state of loopid == PORT_AVAIL.
+	 * 2. When device is never found on the bus.(loopid == UNUSED)
+	 *
+	 * IF Device Queue is not created, or device is not in a valid state
+	 * and link down error reporting is enabled, reject IO.
+	 */
+	if (fcport == NULL) {
+		DEBUG3(printk("scsi(%ld:%2d:%2d): port unavailable\n",
+		    ha->host_no,t,l));
+
+		cmd->result = DID_NO_CONNECT << 16;
+
+		spin_lock_irq(ha->host->host_lock);
+
+		sp_put(ha, sp);
+
+		return (0);
+	}
+
+	/* Only modify the allowed count if the target is a *non* tape device */
+	if ((fcport->flags & FCF_TAPE_PRESENT) == 0) {
+		if (cmd->allowed < ql2xretrycount) {
+			cmd->allowed = ql2xretrycount;
+		}
+	}
+
+	DEBUG5(printk("scsi(%ld:%2d:%2d): (queuecmd) queue sp = %p, "
+	    "flags=0x%x fo retry=%d, pid=%ld, cmd flags= 0x%x\n",
+	    ha->host_no,
+	    t, l,
+	    sp, sp->flags, sp->fo_retry_cnt,
+	    cmd->serial_number,cmd->flags));
+	DEBUG5(qla2x00_print_scsi_cmd(cmd));
+
+	sp->fclun = lq->fclun;
+	sp->ha = ha2;
+
+	if (cmd->sc_data_direction == SCSI_DATA_UNKNOWN &&
+	    cmd->request_bufflen != 0) {
+
+		DEBUG2(printk(KERN_WARNING
+		    "scsi(%ld): Incorrect data direction - transfer "
+		    "length=%d, direction=%d, pid=%ld, opcode=%x\n",
+		    ha->host_no,
+		    cmd->request_bufflen,
+		    cmd->sc_data_direction,
+		    cmd->serial_number,
+		    cmd->cmnd[0]));
+	}
+
+	/* Final pre-check :
+	 *
+	 *	Either PORT_DOWN_TIMER OR LINK_DOWN_TIMER Expired.
+	 */
+	if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
+	    ha->loop_state == LOOP_DEAD) {
+		/*
+		 * Add the command to the done-queue for later failover
+		 * processing
+		 */
+		cmd->result = DID_NO_CONNECT << 16;
+		add_to_done_queue(ha, sp);
+		if (!list_empty(&ha->done_queue))
+			qla2x00_done(ha);
+
+		spin_lock_irq(ha->host->host_lock);
+		return (0);
+	}
+	pending_q_empty = add_to_pending_queue(ha, sp);
+
+#if defined(ISP2100) || defined(ISP2200)
+	if (ha->flags.online) {
+		unsigned long flags;
+		device_reg_t *reg;
+		reg = ha->iobase;
+		
+		if (RD_REG_WORD(ISP_RSP_Q_IN(reg)) != ha->rsp_ring_index) {
+			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 ||
+	    (((max_srbs - ha->srb_cnt) < REQUEST_ENTRY_CNT / 10) &&
+		(pending_q_empty)))
+		qla2x00_next(ha);
+
+	spin_lock_irq(ha->host->host_lock);
+
+	return (0);
+}
+
+/*
+ * qla2x00_eh_wait_on_command
+ *    Waits for the command to be returned by the Firmware for some
+ *    max time.
+ *
+ * Input:
+ *    ha = actual ha whose done queue will contain the command
+ *	      returned by firmware.
+ *    cmd = Scsi Command to wait on.
+ *    flag = Abort/Reset(Bus or Device Reset)
+ *
+ * Return:
+ *    Not Found : 0
+ *    Found : 1
+ */
+static int
+qla2x00_eh_wait_on_command(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
+{
+#define ABORT_WAIT_TIME	10 /* seconds */
+
+	int		found = 0;
+	int		done = 0;
+	srb_t		*rp;
+	struct list_head *list, *temp;
+	u_long		cpu_flags = 0;
+	u_long		max_wait_time = ABORT_WAIT_TIME;
+
+	ENTER(__func__);
+
+	do {
+		/* Check on done queue */
+		if (!found) {
+			spin_lock_irqsave(&ha->list_lock, cpu_flags);
+			list_for_each_safe(list, temp, &ha->done_queue) {
+				rp = list_entry(list, srb_t, list);
+
+				/*
+				* Found command.  Just exit and wait for the
+				* cmd sent to OS.
+			 	*/
+				if (cmd == rp->cmd) {
+					found++;
+					DEBUG3(printk("%s: found in done "
+							"queue.\n", __func__);)
+					break;
+				}
+			}
+			spin_unlock_irqrestore(&ha->list_lock, cpu_flags);
+		}
+
+		/* Checking to see if its returned to OS */
+		rp = (srb_t *) CMD_SP(cmd);
+		if (rp == NULL ) {
+			done++;
+			break;
+		}
+
+		spin_unlock_irq(ha->host->host_lock);
+
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(2*HZ);
+
+		spin_lock_irq(ha->host->host_lock);
+
+	} while ((max_wait_time--));
+
+	if (done) {
+		DEBUG2(printk(KERN_INFO "%s: found cmd=%p.\n", __func__, cmd));
+	} else if (found) {
+		/* Immediately return command to the mid-layer */
+		qla2x00_delete_from_done_queue(ha, rp);
+		sp_put(ha, rp);
+		done++;
+	}
+
+	LEAVE(__func__);
+
+	return (done);
+}
+
+/*
+ * qla2x00_wait_for_hba_online
+ *    Wait till the HBA is online after going through 
+ *    <= MAX_RETRIES_OF_ISP_ABORT  or
+ *    finally HBA is disabled ie marked offline
+ *
+ * Input:
+ *     ha - pointer to host adapter structure
+ * 
+ * Note:    
+ *    Does context switching-Release SPIN_LOCK
+ *    (if any) before calling this routine.
+ *
+ * Return:
+ *    Success (Adapter is online) : 0
+ *    Failed  (Adapter is offline/disabled) : 1
+ */
+static inline int 
+qla2x00_wait_for_hba_online(scsi_qla_host_t *ha)
+{
+	int 	 return_status ;
+
+	while ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_RETRY, &ha->dpc_flags)) {
+
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(3 * HZ);
+	}
+	if (ha->flags.online == TRUE) 
+		return_status = QLA_SUCCESS; 
+	else
+		/* Adapter is disabled/offline */
+		return_status = QLA_FUNCTION_FAILED;
+
+	DEBUG2(printk("%s return_status=%d\n",__func__,return_status));
+
+	return (return_status);
+}
+
+/*
+ * qla2x00_wait_for_loop_ready
+ *    Wait for MAX_LOOP_TIMEOUT(5 min) value for loop
+ *    to be in LOOP_READY state.	 
+ * Input:
+ *     ha - pointer to host adapter structure
+ * 
+ * Note:    
+ *    Does context switching-Release SPIN_LOCK
+ *    (if any) before calling this routine.
+ *    
+ *
+ * Return:
+ *    Success (LOOP_READY) : 0
+ *    Failed  (LOOP_NOT_READY) : 1
+ */
+static inline int 
+qla2x00_wait_for_loop_ready(scsi_qla_host_t *ha)
+{
+	int 	 return_status = QLA_SUCCESS;
+	unsigned long loop_timeout ;
+
+	/* wait for 5 min at the max for loop to be ready */
+	loop_timeout = jiffies + (MAX_LOOP_TIMEOUT * HZ); 
+
+	while ((!atomic_read(&ha->loop_down_timer) &&
+	    ha->loop_state == LOOP_DOWN) ||
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    ha->loop_state != LOOP_READY) {
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(3 * HZ);
+		if (time_after_eq(jiffies, loop_timeout)) {
+			return_status = QLA_FUNCTION_FAILED;
+			break;
+		}
+	}
+	return (return_status);	
+}
+
+
+/**************************************************************************
+* qla2xxx_eh_abort
+*
+* Description:
+*    The abort function will abort the specified command.
+*
+* Input:
+*    cmd = Linux SCSI command packet to be aborted.
+*
+* Returns:
+*    Either SUCCESS or FAILED.
+*
+* Note:
+**************************************************************************/
+int
+qla2xxx_eh_abort(struct scsi_cmnd *cmd)
+{
+	int		i;
+	int		return_status = FAILED;
+	os_lun_t	*q;
+	scsi_qla_host_t *ha;
+	scsi_qla_host_t *vis_ha;
+	srb_t		*sp;
+	srb_t		*rp;
+	struct list_head *list, *temp;
+	struct Scsi_Host *host;
+	uint8_t		found = 0;
+	uint32_t	b, t, l;
+	unsigned long	flags;
+
+
+	ENTER(__func__);
+
+	/* Get the SCSI request ptr */
+	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
+		    "qla2xxx_eh_abort: cmd already done sp=%p\n", sp);
+		DEBUG(printk("qla2xxx_eh_abort: cmd already done sp=%p\n", sp);)
+		return(SUCCESS);
+	}
+	if (sp) {
+		DEBUG(printk("qla2xxx_eh_abort: refcount %i \n",
+		    atomic_read(&sp->ref_count));)
+	}
+
+	vis_ha = (scsi_qla_host_t *) cmd->device->host->hostdata;
+	if (vis_ha->flags.failover_enabled)
+		/* Get Actual HA pointer */
+		ha = (scsi_qla_host_t *)sp->ha;
+	else
+		ha = (scsi_qla_host_t *)cmd->device->host->hostdata;
+
+	host = ha->host;
+
+	/* Generate LU queue on bus, target, LUN */
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+	q = GET_LU_Q(vis_ha, t, l);
+
+	if (qla2x00_verbose)
+		printk(KERN_INFO
+		    "%s scsi(%ld:%d:%d:%d): cmd_timeout_in_sec=0x%x.\n",
+		    __func__, ha->host_no, (int)b, (int)t, (int)l,
+		    cmd->timeout_per_command / HZ);
+
+	/*
+	 * if no LUN queue then something is very wrong!!!
+	 */
+	if (q == NULL) {
+		printk(KERN_WARNING
+			"qla2x00: (%x:%x:%x) No LUN queue.\n", b, t, l);
+
+		/* no action - we don't have command */
+		return(FAILED);
+	}
+
+	DEBUG2(printk("scsi(%ld): ABORTing cmd=%p sp=%p jiffies = 0x%lx, "
+	    "timeout=%x, dpc_flags=%lx, vis_ha->dpc_flags=%lx\n",
+	    ha->host_no, cmd, sp, jiffies, cmd->timeout_per_command / HZ,
+	    ha->dpc_flags, vis_ha->dpc_flags));
+	DEBUG2(qla2x00_print_scsi_cmd(cmd));
+	DEBUG2(qla2x00_print_q_info(q);)
+
+	spin_unlock_irq(ha->host->host_lock);
+	/* Blocking call-Does context switching if abort isp is active etc */  
+	if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS) {
+		DEBUG2(printk("%s failed:board disabled\n", __func__);)
+		spin_lock_irq(ha->host->host_lock);
+		return (FAILED);
+	}
+	spin_lock_irq(ha->host->host_lock);
+
+	/* Search done queue */
+	spin_lock_irqsave(&ha->list_lock,flags);
+	list_for_each_safe(list, temp, &ha->done_queue) {
+		rp = list_entry(list, srb_t, list);
+
+		if (cmd != rp->cmd)
+			continue;
+
+		/*
+		 * Found command.Remove it from done list.
+		 * And proceed to post completion to scsi mid layer.
+		 */
+		return_status = SUCCESS;
+		found++;
+		qla2x00_delete_from_done_queue(ha, sp);
+
+		break;
+	} /* list_for_each_safe() */
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+
+	/*
+	 * Return immediately if the aborted command was already in the done
+	 * queue
+	 */
+	if (found) {
+		printk(KERN_INFO "qla2xxx_eh_abort: Returning completed "
+			"command=%p sp=%p\n", cmd, sp);
+		sp_put(ha, sp);
+		return (return_status);
+	}
+	
+
+	/*
+	 * See if this command is in the retry queue
+	 */
+	if (!found) {
+		DEBUG3(printk("qla2xxx_eh_abort: searching sp %p "
+		    "in retry queue.\n", sp);)
+
+		spin_lock_irqsave(&ha->list_lock, flags);
+		list_for_each_safe(list, temp, &ha->retry_queue) {
+			rp = list_entry(list, srb_t, list);
+
+			if (cmd != rp->cmd)
+				continue;
+
+
+			DEBUG2(printk("qla2xxx_eh_abort: found "
+			    "in retry queue. SP=%p\n", sp);)
+
+			__del_from_retry_queue(ha, rp);
+			rp->cmd->result = DID_ABORT << 16;
+			__add_to_done_queue(ha, rp);
+
+			return_status = SUCCESS;
+			found++;
+
+			break;
+
+		} /* list_for_each_safe() */
+		spin_unlock_irqrestore(&ha->list_lock, flags);
+	}
+
+	/*
+	 * Search failover queue
+	 */
+	if (ha->flags.failover_enabled) {
+		if (!found) {
+			DEBUG3(printk("qla2xxx_eh_abort: searching sp %p "
+					"in failover queue.\n", sp);)
+
+			spin_lock_irqsave(&ha->list_lock, flags);
+			list_for_each_safe(list, temp, &ha->failover_queue) {
+				rp = list_entry(list, srb_t, list);
+
+				if (cmd != rp->cmd)
+					continue;
+
+				DEBUG2(printk(KERN_WARNING
+						"qla2xxx_eh_abort: found "
+						"in failover queue. SP=%p\n",
+						sp);)
+
+				/* Remove srb from failover queue. */
+				__del_from_failover_queue(ha, rp);
+				rp->cmd->result = DID_ABORT << 16;
+				__add_to_done_queue(ha, rp);
+
+				return_status = SUCCESS;
+				found++;
+
+				break;
+
+			} /* list_for_each_safe() */
+			spin_unlock_irqrestore(&ha->list_lock, flags);
+		} /*End of if !found */
+	}
+
+	/*
+	 * Our SP pointer points at the command we want to remove from the
+	 * pending queue providing we haven't already sent it to the adapter.
+	 */
+	if (!found) {
+		DEBUG3(printk("qla2xxx_eh_abort: searching sp %p "
+		    "in pending queue.\n", sp);)
+
+		spin_lock_irqsave(&vis_ha->list_lock, flags);
+		list_for_each_safe(list, temp, &vis_ha->pending_queue) {
+			rp = list_entry(list, srb_t, list);
+			if (rp->cmd != cmd)
+				continue;
+
+			/* Remove srb from LUN queue. */
+			rp->flags |=  SRB_ABORTED;
+
+			DEBUG2(printk("qla2xxx_eh_abort: Cmd in pending queue."
+			    " serial_number %ld.\n",
+			    sp->cmd->serial_number);)
+
+			__del_from_pending_queue(vis_ha, rp);
+			cmd->result = DID_ABORT << 16;
+
+			__add_to_done_queue(vis_ha, rp);
+
+			return_status = SUCCESS;
+
+			found++;
+			break;
+		} /* list_for_each_safe() */
+		spin_unlock_irqrestore(&vis_ha->list_lock, flags);
+	} /*End of if !found */
+
+	if (!found) {  /* find the command in our active list */
+		DEBUG3(printk("qla2xxx_eh_abort: searching sp %p "
+		    "in outstanding queue.\n", sp);)
+
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+		for (i = 1; i < MAX_OUTSTANDING_COMMANDS; i++) {
+			sp = ha->outstanding_cmds[i];
+
+			if (sp == NULL)
+				continue;
+
+			if (sp->cmd != cmd)
+				continue;
+
+
+			DEBUG2(printk("qla2xxx_eh_abort(%ld): aborting sp %p "
+			    "from RISC. pid=%d sp->state=%x\n",
+			    ha->host_no, 
+			    sp, 
+			    (int)sp->cmd->serial_number,
+			    sp->state);)
+			DEBUG(qla2x00_print_scsi_cmd(cmd);)
+			DEBUG(qla2x00_print_q_info(q);)
+
+			/* Get a reference to the sp and drop the lock.*/
+			sp_get(ha,sp);
+
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+			spin_unlock(ha->host->host_lock);
+
+			if (qla2x00_abort_command(ha, sp)) {
+				DEBUG2(printk("qla2xxx_eh_abort: abort_command "
+				    "mbx failed.\n");)
+				return_status = FAILED;
+			} else {
+				DEBUG3(printk("qla2xxx_eh_abort: abort_command "
+				    " mbx success.\n");)
+				return_status = SUCCESS;
+			}
+
+			sp_put(ha,sp);
+
+			spin_lock_irq(ha->host->host_lock);
+			spin_lock_irqsave(&ha->hardware_lock, flags);
+
+			/*
+			 * Regardless of mailbox command status, go check on
+			 * done queue just in case the sp is already done.
+			 */
+			break;
+
+		}/*End of for loop */
+		spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	} /*End of if !found */
+
+	  /*Waiting for our command in done_queue to be returned to OS.*/
+	if (qla2x00_eh_wait_on_command(ha, cmd) != 0) {
+		DEBUG2(printk("qla2xxx_eh_abort: cmd returned back to OS.\n");)
+		return_status = SUCCESS;
+	}
+
+	if (return_status == FAILED) {
+		printk(KERN_INFO "qla2xxx_eh_abort Exiting: status=Failed\n");
+		return FAILED;
+	}
+
+	DEBUG2(printk("qla2xxx_eh_abort: Exiting. return_status=0x%x.\n",
+	    return_status));
+
+	LEAVE("qla2xxx_eh_abort");
+
+	return(return_status);
+}
+
+/**************************************************************************
+* qla2x00_eh_wait_for_pending_target_commands
+*
+* Description:
+*    Waits for all the commands to come back from the specified target.
+*
+* Input:
+*    ha - pointer to scsi_qla_host structure.
+*    t  - target 	
+* Returns:
+*    Either SUCCESS or FAILED.
+*
+* Note:
+**************************************************************************/
+int
+qla2x00_eh_wait_for_pending_target_commands(scsi_qla_host_t *ha, int t)
+{
+	int	cnt;
+	int	status;
+	unsigned long	flags;
+	srb_t		*sp;
+	struct scsi_cmnd *cmd;
+
+	status = 0;
+
+	/*
+	 * Waiting for all commands for the designated target in the active
+	 * array
+	 */
+	for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+		sp = ha->outstanding_cmds[cnt];
+		if (sp) {
+			cmd = sp->cmd;
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+			if (cmd->device->id == t) {
+				if (!qla2x00_eh_wait_on_command(ha, cmd)) {
+					status = 1;
+					break;
+				}
+			}
+		}
+		else {
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+		}
+	}
+	return (status);
+}
+
+
+/**************************************************************************
+* qla2xxx_eh_device_reset
+*
+* Description:
+*    The device reset function will reset the target and abort any
+*    executing commands.
+*
+*    NOTE: The use of SP is undefined within this context.  Do *NOT*
+*          attempt to use this value, even if you determine it is 
+*          non-null.
+*
+* Input:
+*    cmd = Linux SCSI command packet of the command that cause the
+*          bus device reset.
+*
+* Returns:
+*    SUCCESS/FAILURE (defined as macro in scsi.h).
+*
+**************************************************************************/
+int
+qla2xxx_eh_device_reset(struct scsi_cmnd *cmd)
+{
+	int		return_status = SUCCESS;
+	uint32_t	b, t, l;
+	scsi_qla_host_t	*ha;
+	srb_t	*sp;
+	fc_port_t	*fcport;
+
+#if defined(LOGOUT_AFTER_DEVICE_RESET)
+	os_lun_t	*lq;
+#endif
+
+	ENTER(__func__);
+
+	if (cmd == NULL) {
+		printk(KERN_INFO
+			"%s(): **** SCSI mid-layer passing in NULL cmd\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		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));)
+	}
+	fcport = sp->fclun->fcport;
+
+	/* Verify the device exists. */
+	ha = sp->ha;
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+	if (TGT_Q(ha, t) == NULL) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL TGT_Q\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+#if STOP_ON_RESET
+	printk(debug_buff,"Resetting Device= 0x%x\n", (int)cmd);
+	qla2x00_panic(__func__, ha->host);
+#endif
+
+	if (qla2x00_verbose)
+		printk(KERN_INFO
+			"scsi(%ld:%d:%d:%d): DEVICE RESET ISSUED.\n",
+			ha->host_no, (int)b, (int)t, (int)l);
+
+	DEBUG2(printk("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_per_command / HZ,
+		ha->dpc_flags, cmd->result, cmd->allowed, cmd->state));
+
+	spin_unlock_irq(ha->host->host_lock);
+
+	/* Blocking call-Does context switching if abort isp is active etc */  
+	if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS) {
+		DEBUG2(printk("%s failed:board disabled\n",__func__);)
+		spin_lock_irq(ha->host->host_lock);
+		return (FAILED);
+	}
+
+	/* Blocking call-Does context switching if loop is Not Ready */
+	if (qla2x00_wait_for_loop_ready(ha) == QLA_SUCCESS) {
+		if (qla2x00_device_reset(ha, fcport) != 0) {
+			return_status = FAILED;
+		}
+
+#if defined(LOGOUT_AFTER_DEVICE_RESET)
+		if (return_status == SUCCESS) {
+			lq = (os_lun_t *)LUN_Q(ha, t, l);
+			fcport = lq->fclun->fcport;
+
+			if (fcport->flags & FC_FABRIC_DEVICE) {
+				qla2x00_fabric_logout(ha, fcport->loop_id);
+				qla2x00_mark_device_lost(ha, fcport, 0);
+			}
+		}
+#endif
+	} else {
+		return_status = FAILED;
+	}
+
+	spin_lock_irq(ha->host->host_lock);
+
+	if (return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return (FAILED);
+	}
+
+	/* Waiting for all commands to complete for the device */
+	if (qla2x00_eh_wait_for_pending_target_commands(ha, t))
+		return_status = FAILED;
+
+	if (return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return (FAILED);
+	}
+	printk(KERN_INFO
+	    "%s(%ld):reset success\n", __func__, ha->host_no);
+
+	LEAVE(__func__);
+
+	return (return_status);
+}
+
+/**************************************************************************
+* qla2x00_eh_wait_for_pending_commands
+*
+* Description:
+*    Waits for all the commands to come back from the specified host.
+*
+* Input:
+*    ha - pointer to scsi_qla_host structure.
+*
+* Returns:
+*    1 : SUCCESS
+*    0 : FAILED
+*
+* Note:
+**************************************************************************/
+int
+qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *ha)
+{
+	int	cnt;
+	int	status;
+	unsigned long	flags;
+	srb_t		*sp;
+	struct scsi_cmnd *cmd;
+
+	status = 1;
+
+	/*
+	 * Waiting for all commands for the designated target in the active
+	 * array
+	 */
+	for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
+		spin_lock_irqsave(&ha->hardware_lock, flags);
+		sp = ha->outstanding_cmds[cnt];
+		if (sp) {
+			cmd = sp->cmd;
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+			status = qla2x00_eh_wait_on_command(ha, cmd);
+			if (status == 0)
+				break;
+		}
+		else {
+			spin_unlock_irqrestore(&ha->hardware_lock, flags);
+		}
+	}
+	return (status);
+}
+
+
+/**************************************************************************
+* qla2xxx_eh_bus_reset
+*
+* Description:
+*    The bus reset function will reset the bus and abort any executing
+*    commands.
+*
+* Input:
+*    cmd = Linux SCSI command packet of the command that cause the
+*          bus reset.
+*
+* Returns:
+*    SUCCESS/FAILURE (defined as macro in scsi.h).
+*
+**************************************************************************/
+int
+qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd)
+{
+	int        return_status = SUCCESS;
+	uint32_t   b, t, l;
+	srb_t      *sp;
+	int	found;
+	struct list_head *hal;
+	scsi_qla_host_t *ha, *search_ha;
+
+
+	ENTER("qla2xxx_eh_bus_reset");
+
+	if (cmd == NULL) {
+		printk(KERN_INFO
+			"%s(): **** SCSI mid-layer passing in NULL cmd\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+
+	ha = (scsi_qla_host_t *) cmd->device->host->hostdata;
+	sp = (srb_t *) CMD_SP(cmd);
+
+	if (ha == NULL) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL HA\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		search_ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (search_ha == ha) {
+			found ++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	if (!found) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL search HA\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+#if  STOP_ON_RESET
+	printk("Resetting the Bus= 0x%x\n", (int)cmd);
+	qla2x00_print_scsi_cmd(cmd);
+	qla2x00_panic("qla2100_reset", ha->host);
+#endif
+
+	if (qla2x00_verbose)
+		printk(KERN_INFO
+			"scsi(%ld:%d:%d:%d): LOOP RESET ISSUED.\n",
+			ha->host_no, (int)b, (int)t, (int)l);
+
+	spin_unlock_irq(ha->host->host_lock);
+
+	/* Blocking call-Does context switching if abort isp is active etc*/  
+	if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS) {
+		DEBUG2(printk("%s failed:board disabled\n",__func__));
+		spin_lock_irq(ha->host->host_lock);
+		return (FAILED);
+	}
+
+	/* Blocking call-Does context switching if loop is Not Ready */ 
+	if (qla2x00_wait_for_loop_ready(ha) == QLA_SUCCESS) {
+		if (qla2x00_loop_reset(ha) != 0) 
+			return_status = FAILED;
+	} else {
+		return_status = FAILED;
+	}
+	spin_lock_irq(ha->host->host_lock);
+
+	if (return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return FAILED;
+	}
+
+	/* Blocking Call. It goes to sleep waiting for cmd to get to done q */
+	 /* Waiting for our command in done_queue to be returned to OS.*/
+
+	if ( qla2x00_eh_wait_for_pending_commands(ha) == 0) {
+		return_status = FAILED;
+	}
+
+	if(return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no));
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return FAILED;
+	} else {
+		DEBUG2(printk("%s(%ld): reset succeded\n",
+		    __func__,ha->host_no));
+		printk(KERN_INFO "%s(%ld): reset succeded\n",
+		    __func__,ha->host_no);
+	}
+
+	LEAVE("qla2xxx_eh_bus_reset");
+
+	return (return_status);
+}
+
+/**************************************************************************
+* qla2xxx_eh_host_reset
+*
+* Description:
+*    The reset function will reset the Adapter.
+*
+* Input:
+*      cmd = Linux SCSI command packet of the command that cause the
+*            adapter reset.
+*
+* Returns:
+*      Either SUCCESS or FAILED.
+*
+* Note:
+**************************************************************************/
+int
+qla2xxx_eh_host_reset(struct scsi_cmnd *cmd)
+{
+	int		return_status = SUCCESS;
+	srb_t		*sp;
+	uint32_t        b, t, l;
+	int	found;
+	struct list_head *hal;
+	scsi_qla_host_t *ha, *search_ha;
+
+	ENTER("qla2xxx_eh_host_reset");
+
+	if (cmd == NULL) {
+		printk(KERN_INFO
+			"%s(): **** SCSI mid-layer passing in NULL cmd\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+	ha = (scsi_qla_host_t *)cmd->device->host->hostdata;
+	/* Find actual ha */
+	sp = (srb_t *)CMD_SP(cmd);
+	if (ha->flags.failover_enabled && sp != NULL &&
+	    ha->host->eh_active == EH_ACTIVE)
+		ha = sp->ha;
+	else
+		ha = (scsi_qla_host_t *)cmd->device->host->hostdata;
+
+	if (ha == NULL) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL HA\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		search_ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (search_ha == ha) {
+			found ++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	if (!found) {
+		printk(KERN_INFO
+			"%s(): **** CMD derives a NULL search HA\n",
+			__func__);
+                DEBUG2(BUG();)
+
+		return (FAILED);
+	}
+
+	/* Display which one we're actually resetting for debug. */
+	DEBUG(printk("qla2xxx_eh_host_reset:Resetting scsi(%ld).\n",
+	    ha->host_no));
+
+#if  STOP_ON_RESET
+	printk("Host Reset...  Command=\n");
+	qla2x00_print_scsi_cmd(cmd);
+	qla2x00_panic("qla2xxx_eh_host_reset", ha->host);
+#endif
+
+	/*
+	 *  Now issue reset.
+	 */
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+
+	if (qla2x00_verbose) {
+		printk(KERN_INFO
+			"scsi(%ld:%d:%d:%d): now issue ADAPTER RESET.\n",
+			((scsi_qla_host_t *)cmd->device->host->hostdata)->host_no,
+			(int)b, 
+			(int)t, 
+			(int)l);
+	}
+
+	DEBUG2(printk(KERN_INFO
+	    "scsi(%ld:%d:%d:%d): now issue ADAPTER RESET.\n",
+	    ((scsi_qla_host_t *)cmd->device->host->hostdata)->host_no,
+	    (int)b, (int)t, (int)l));
+
+	spin_unlock_irq(ha->host->host_lock);
+
+	/* Blocking call-Does context switching if abort isp is active etc*/  
+	if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS) {
+		spin_lock_irq(ha->host->host_lock);
+
+		DEBUG2(printk("%s(%ld): failed:board disabled\n",
+				       	__func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): failed:board disabled\n",
+			       	__func__,ha->host_no);
+		return (FAILED);
+	} else {
+		/* Fixme-may be dpc thread is active and processing
+		 * loop_resync,so wait a while for it to 
+		 * be completed and then issue big hammer.Otherwise
+		 * it may cause I/O failure as big hammer marks the
+		 * devices as lost kicking of the port_down_timer
+		 * while dpc is stuck for the mailbox to complete.
+		 */
+		/* Blocking call-Does context switching if loop is Not Ready */
+		qla2x00_wait_for_loop_ready(ha);
+		set_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+		if (qla2x00_abort_isp(ha)) {
+			clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+			/* failed. schedule dpc to try */
+			set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+
+			if (qla2x00_wait_for_hba_online(ha) != QLA_SUCCESS){
+				return_status = FAILED;
+				DEBUG2(printk("%s(%ld): failed:board"
+					" disabled\n",
+				__func__,ha->host_no);)
+				printk(KERN_INFO "%s(%ld): failed:board"
+					" disabled\n",
+					__func__,ha->host_no);
+			}
+		} 
+
+		clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+	}
+
+	spin_lock_irq(ha->host->host_lock);
+
+	if (return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return FAILED;
+	}
+
+	/* Waiting for our command in done_queue to be returned to OS.*/
+	if (qla2x00_eh_wait_for_pending_commands(ha) == 0) {
+		return_status = FAILED;
+	}
+
+	if (return_status == FAILED) {
+		DEBUG2(printk("%s(%ld): reset failed\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset failed\n",
+		    __func__,ha->host_no);
+		return FAILED;
+	} else {
+		DEBUG2(printk("%s(%ld): reset succeded\n",
+		    __func__,ha->host_no);)
+		printk(KERN_INFO "%s(%ld): reset succeded\n",
+		    __func__,ha->host_no);
+	}
+	LEAVE("qla2xxx_eh_host_reset");
+
+	return (return_status);
+}
+
+
+/*
+* qla2x00_loop_reset
+*      Issue loop reset.
+*
+* Input:
+*      ha = adapter block pointer.
+*
+* Returns:
+*      0 = success
+*/
+static uint8_t
+qla2x00_loop_reset(scsi_qla_host_t *ha)
+{
+	uint8_t  status = QLA_SUCCESS;
+	uint16_t t;
+	os_tgt_t        *tq;
+
+	ENTER(__func__);
+
+	if (ha->flags.enable_lip_reset) {
+		status = qla2x00_lip_reset(ha);
+	}
+
+	if (status == QLA_SUCCESS && ha->flags.enable_target_reset) {
+		for (t = 0; t < MAX_FIBRE_DEVICES; t++) {
+			if ((tq = TGT_Q(ha, t)) == NULL)
+				continue;
+
+			if (tq->fcport == NULL)
+				continue;
+
+			status = qla2x00_target_reset(ha, 0, t);
+			if (status != QLA_SUCCESS) {
+				break;
+			}
+		}
+	}
+
+	if (status == QLA_SUCCESS &&
+		((!ha->flags.enable_target_reset && 
+		  !ha->flags.enable_lip_reset) ||
+		ha->flags.enable_lip_full_login)) {
+
+		status = qla2x00_full_login_lip(ha);
+	}
+
+	/* Issue marker command only when we are going to start the I/O */
+	ha->marker_needed = 1;
+
+	if (status) {
+		/* Empty */
+		DEBUG2_3(printk("%s(%ld): **** FAILED ****\n",
+				__func__,
+				ha->host_no);)
+	} else {
+		/* Empty */
+		DEBUG3(printk("%s(%ld): exiting normally.\n",
+				__func__,
+				ha->host_no);)
+	}
+
+	LEAVE(__func__);
+
+	return(status);
+}
+
+/*
+ * qla2x00_device_reset
+ *	Issue bus device reset message to the target.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	t = SCSI ID.
+ *	TARGET_QUEUE_LOCK must be released.
+ *	ADAPTER_STATE_LOCK must be released.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_device_reset(scsi_qla_host_t *ha, fc_port_t *reset_fcport)
+{
+	uint8_t		status = 0;
+
+	/* Abort Target command will clear Reservation */
+	status = qla2x00_abort_target(reset_fcport);
+
+	return( status );
+}
+
+/**************************************************************************
+* qla2x00_slave_configure
+*
+* Description:
+**************************************************************************/
+int
+qla2xxx_slave_configure(struct scsi_device *sdev)
+{
+	int queue_depth;
+
+	queue_depth = 64;
+	if (sdev->tagged_supported) {
+#if defined(MODULE)
+		if (!(ql2xmaxqdepth == 0 || ql2xmaxqdepth > 256))
+			queue_depth = ql2xmaxqdepth;
+#endif 
+		ql2xmaxqdepth = queue_depth;
+
+		scsi_adjust_queue_depth(sdev, MSG_ORDERED_TAG, queue_depth);
+
+		printk(KERN_INFO
+		    "scsi(%d:%d:%d:%d): Enabled tagged queuing, queue "
+		    "depth %d.\n",
+		    sdev->host->host_no, sdev->channel, sdev->id, sdev->lun,
+		    sdev->queue_depth);
+	} else {
+		 scsi_adjust_queue_depth(sdev, 0 /* TCQ off */,
+		     sdev->host->hostt->cmd_per_lun /* 3 */);
+	}
+
+	return (0);
+}
+
+static int
+qla2x00_iospace_config(scsi_qla_host_t *ha)
+{
+	unsigned long	pio, pio_len, pio_flags;
+	unsigned long	mmio, mmio_len, mmio_flags;
+
+	pio = pci_resource_start(ha->pdev, 0);
+	pio_len = pci_resource_len(ha->pdev, 0);
+	pio_flags = pci_resource_flags(ha->pdev, 0);
+
+	mmio = pci_resource_start(ha->pdev, 1);
+	mmio_len = pci_resource_len(ha->pdev, 1);
+	mmio_flags = pci_resource_flags(ha->pdev, 1);
+
+#if MEMORY_MAPPED_IO
+	if (!(mmio_flags & IORESOURCE_MEM)) {
+		printk(KERN_ERR
+		    "scsi(%ld): region #0 not an MMIO resource (%s), "
+		    "aborting\n",
+		    ha->host_no, ha->pdev->slot_name);
+		goto iospace_error_exit;
+	}
+	if (mmio_len < MIN_IOBASE_LEN) {
+		printk(KERN_ERR
+		    "scsi(%ld): Invalid PCI mem region size (%s), aborting\n",
+		    ha->host_no, ha->pdev->slot_name);
+		goto iospace_error_exit;
+	}
+#else
+	if (!(pio_flags & IORESOURCE_IO)) {
+		printk(KERN_ERR
+		    "scsi(%ld): region #0 not a PIO resource (%s), aborting\n",
+		    ha->host_no, ha->pdev->slot_name);
+		goto iospace_error_exit;
+	}
+	if (pio_len < MIN_IOBASE_LEN) {
+		printk(KERN_ERR
+		    "scsi(%ld): Invalid PCI I/O region size (%s), aborting\n",
+		    ha->host_no, ha->pdev->slot_name);
+		goto iospace_error_exit;
+	}
+#endif
+
+	if (pci_request_regions(ha->pdev, DRIVER_NAME)) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Failed to reserve PIO/MMIO regions (%s)\n", 
+		    ha->host_no, ha->pdev->slot_name);
+
+		goto iospace_error_exit;
+	}
+
+	/* Assume PIO */
+	ha->iobase = (device_reg_t *) pio;
+	ha->pio_address = pio;
+	ha->pio_length = pio_len;
+	ha->mmio_address = NULL;
+#if MEMORY_MAPPED_IO
+	ha->mmio_address = ioremap(mmio, MIN_IOBASE_LEN);
+	if (!ha->mmio_address) {
+		printk(KERN_ERR
+		    "scsi(%ld): cannot remap MMIO (%s), aborting\n",
+		    ha->host_no, ha->pdev->slot_name);
+
+		goto iospace_error_exit;
+	}
+	ha->iobase = (device_reg_t *) ha->mmio_address;
+	ha->mmio_length = mmio_len;
+#endif
+
+	return (0);
+
+iospace_error_exit:
+	return (-ENOMEM);
+}
+
+/*
+ * PCI driver interface
+ */
+static int __devinit
+qla2x00_probe_device(struct pci_dev *pdev, const struct pci_device_id *ent)
+{
+	int	ret;
+	device_reg_t *reg;
+	struct Scsi_Host *host;
+	scsi_qla_host_t *ha;
+	unsigned long	flags = 0;
+	unsigned long	wait_switch = 0;
+
+	if (pci_enable_device(pdev))
+		return -1;
+
+	printk(KERN_INFO
+	    "%s: Found VID=%x DID=%x SSVID=%x SSDID=%x\n",
+	    DRIVER_NAME, pdev->vendor, pdev->device, pdev->subsystem_vendor,
+	    pdev->subsystem_device);
+	host = scsi_host_alloc(&qla2x00_driver_template,
+	    sizeof(scsi_qla_host_t));
+	if (host == NULL) {
+		printk(KERN_WARNING
+		    "%s: Couldn't register with scsi layer!\n", DRIVER_NAME);
+		return -1;
+	}
+
+	/* Clear our data area */
+	ha = (scsi_qla_host_t *)host->hostdata;
+	memset(ha, 0, sizeof(scsi_qla_host_t));
+
+	ha->host_no = host->host_no;
+	ha->pdev = pdev;
+	ha->host = host;
+
+	/* Configure PCI I/O space */
+	ret = qla2x00_iospace_config(ha);
+	if (ret != 0) {
+		goto probe_failed;
+	}
+
+	/* Sanitize the information from PCI BIOS. */
+	host->irq = pdev->irq;
+
+	ha->brd_info = (struct qla_board_info *)ent->driver_data;
+
+	if (qla2x00_verbose) {
+		printk(KERN_INFO
+		    "scsi(%d): Found an %s@ %s, irq %d, iobase 0x%p\n",
+		    host->host_no, ha->brd_info->name, pci_name(ha->pdev),
+		    host->irq, ha->iobase);
+	}
+
+	spin_lock_init(&ha->hardware_lock);
+
+	/* 4.23 Initialize /proc/scsi/qla2x00 counters */
+	ha->actthreads = 0;
+	ha->qthreads   = 0;
+	ha->dump_done  = 0;
+	ha->total_isr_cnt = 0;
+	ha->total_isp_aborts = 0;
+	ha->total_lip_cnt = 0;
+	ha->total_dev_errs = 0;
+	ha->total_ios = 0;
+	ha->total_bytes = 0;
+
+	ha->prev_topology = 0;
+	ha->ports = MAX_BUSES;
+
+#if defined(ISP2100)
+	ha->max_targets = MAX_TARGETS_2100;
+#else
+	ha->max_targets = MAX_TARGETS_2200;
+#endif
+
+	/* load the F/W, read paramaters, and init the H/W */
+	ha->instance = num_hosts;
+
+	init_MUTEX_LOCKED(&ha->mbx_intr_sem);
+
+	INIT_LIST_HEAD(&ha->list);
+	INIT_LIST_HEAD(&ha->fcports);
+	INIT_LIST_HEAD(&ha->done_queue);
+	INIT_LIST_HEAD(&ha->retry_queue);
+	INIT_LIST_HEAD(&ha->scsi_retry_queue);
+	INIT_LIST_HEAD(&ha->failover_queue);
+	INIT_LIST_HEAD(&ha->pending_queue);
+	INIT_LIST_HEAD(&ha->free_queue);
+
+	if (ql2xfailover)
+		ha->flags.failover_enabled = 1;
+	else
+		ha->flags.failover_enabled = 0;
+
+	/*
+	 * These locks are used to prevent more than one CPU
+	 * from modifying the queue at the same time. The
+	 * higher level "io_request_lock" will reduce most
+	 * contention for these locks.
+	 */
+	spin_lock_init(&ha->mbx_bits_lock);
+	spin_lock_init(&ha->mbx_reg_lock);
+	spin_lock_init(&ha->mbx_q_lock);
+	spin_lock_init(&ha->list_lock);
+
+	init_completion(&ha->dpc_inited);
+	init_completion(&ha->dpc_exited);
+
+	DEBUG2(printk(KERN_INFO
+	    "scsi(%ld): Scatter/Gather Entries (0x%x).\n",
+	    ha->host_no, ha->host->sg_tablesize));
+
+	if (qla2x00_mem_alloc(ha)) {
+		printk(KERN_WARNING
+		    "scsi(%d): [ERROR] Failed to allocate memory for adapter\n",
+		    host->host_no);
+
+		goto probe_failed;
+	}
+
+	if (qla2x00_initialize_adapter(ha) &&
+	    !(ha->device_flags & DFLG_NO_CABLE)) {
+
+		printk(KERN_WARNING
+		    "scsi(%ld): Failed to initialize adapter\n", ha->host_no);
+
+		DEBUG2(printk("scsi(%ld): Failed to initialize adapter - "
+		    "Adapter flags %x.\n",
+		    ha->host_no, ha->device_flags));
+
+		goto probe_failed;
+	}
+
+	/*
+	 * Startup the kernel thread for this host adapter
+	 */
+	ha->dpc_should_die = 0;
+	ha->dpc_pid = kernel_thread(qla2x00_do_dpc, ha, 0);
+	if (ha->dpc_pid < 0) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Unable to start DPC thread!\n", ha->host_no);
+
+		goto probe_failed;
+	}
+	wait_for_completion(&ha->dpc_inited);
+
+	/* Register our resources with Linux */
+	if (qla2x00_register_with_Linux(ha, ha->ports - 1)) {
+		printk(KERN_WARNING
+		    "scsi(%ld): Failed to register resources.\n",
+		    ha->host_no);
+
+		goto probe_failed;
+	}
+
+	DEBUG2(printk("DEBUG: detect hba %ld at address = %p\n",
+	    ha->host_no, ha));
+
+	reg = ha->iobase;
+
+	/* Disable ISP interrupts. */
+	qla2x00_disable_intrs(ha);
+
+	/* Ensure mailbox registers are free. */
+	spin_lock_irqsave(&ha->hardware_lock, flags);
+	WRT_REG_WORD(&reg->semaphore, 0);
+	WRT_REG_WORD(&reg->hccr, HCCR_CLR_RISC_INT);
+	WRT_REG_WORD(&reg->hccr, HCCR_CLR_HOST_INT);
+
+	/* Enable proper parity */
+#if defined(ISP2300)
+	if (ha->pdev->device == QLA2312_DEVICE_ID ||
+	    ha->pdev->device == QLA2322_DEVICE_ID)
+		/* SRAM, Instruction RAM and GP RAM parity */
+		WRT_REG_WORD(&reg->hccr, (HCCR_ENABLE_PARITY + 0x7));
+	else
+		/* SRAM parity */
+		WRT_REG_WORD(&reg->hccr, (HCCR_ENABLE_PARITY + 0x1));
+#endif
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	/*
+	 * if failover is enabled read the user configuration
+	 */
+	if (ha->flags.failover_enabled) {
+		if (ConfigRequired > 0)
+			mp_config_required = 1;
+		else
+			mp_config_required = 0;
+
+		DEBUG(printk("qla2x00_detect: qla2x00_cfg_init for hba %ld\n",
+		    ha->instance));
+
+		qla2x00_cfg_init(ha);
+	}
+
+	/* Enable chip interrupts. */
+	qla2x00_enable_intrs(ha);
+
+	/* Insert new entry into the list of adapters */
+	write_lock(&qla_hostlist_lock);
+	list_add_tail(&ha->list, &qla_hostlist);
+	write_unlock(&qla_hostlist_lock);
+
+	/* v2.19.5b6 */
+	/*
+	 * Wait around max loop_reset_delay secs for the devices to come
+	 * on-line. We don't want Linux scanning before we are ready.
+	 *
+	 */
+	for (wait_switch = jiffies + (ha->loop_reset_delay * HZ);
+	    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);
+		schedule_timeout(5);
+	}
+
+	/* List the target we have found */
+	if (displayConfig && (!ha->flags.failover_enabled))
+		qla2x00_display_fc_names(ha);
+
+	pci_set_drvdata(pdev, ha);
+	ha->init_done = 1;
+	num_hosts++;
+
+ 	if (displayConfig && ha->flags.failover_enabled)
+		qla2x00_cfg_display_devices();
+
+	if (scsi_add_host(host, &pdev->dev))
+		goto probe_failed;
+
+	scsi_scan_host(host);
+
+	return 0;
+
+probe_failed:
+	qla2x00_free_device(ha);
+
+	scsi_host_put(host);
+
+	return -1;
+}
+
+static void __devexit
+qla2x00_remove_device(struct pci_dev *pdev)
+{
+	scsi_qla_host_t *ha;
+
+	ha = pci_get_drvdata(pdev);
+
+	write_lock(&qla_hostlist_lock);
+	list_del(&ha->list);
+	write_unlock(&qla_hostlist_lock);
+	
+	qla2x00_free_device(ha);
+	scsi_remove_host(ha->host);
+	scsi_host_put(ha->host);
+	pci_set_drvdata(pdev, NULL);
+
+}
+
+static void
+qla2x00_free_device(scsi_qla_host_t *ha)
+{
+	int ret;
+	struct Scsi_Host *host;
+
+	host = ha->host;
+
+	/* turn-off interrupts on the card */
+	if (ha->interrupts_on)
+		qla2x00_disable_intrs(ha);
+
+	/* Disable timer */
+	if (ha->timer_active)
+		qla2x00_stop_timer(ha);
+
+	/* Kill the kernel thread for this host */
+	if (ha->dpc_pid >= 0) {
+		ha->dpc_should_die = 1;
+		wmb();
+		ret = kill_proc(ha->dpc_pid, SIGHUP, 1);
+		if (ret) {
+			printk(KERN_ERR
+			    "scsi(%ld): Unable to signal DPC thread -- (%d)\n",
+			    ha->host_no, ret);
+
+			/* TODO: SOMETHING MORE??? */
+		} else {
+			wait_for_completion(&ha->dpc_exited);
+		}
+	}
+
+	qla2x00_mem_free(ha);
+
+	if (ha->flags.failover_enabled)
+		qla2x00_cfg_mem_free(ha);
+
+	ha->flags.online = FALSE;
+
+	/* Detach interrupts */
+	if (host->irq)
+		free_irq(host->irq, ha);
+
+	/* release io space registers  */
+	pci_release_regions(ha->pdev);
+
+#if MEMORY_MAPPED_IO
+	if (ha->mmio_address)
+		iounmap(ha->mmio_address);
+#endif
+}
+
+
+/*
+ * The following support functions are adopted to handle
+ * the re-entrant qla2x00_proc_info correctly.
+ */
+static void
+copy_mem_info(struct info_str *info, char *data, int len)
+{
+	if (info->pos + len > info->offset + info->length)
+		len = info->offset + info->length - info->pos;
+
+	if (info->pos + len < info->offset) {
+		info->pos += len;
+		return;
+	}
+ 
+	if (info->pos < info->offset) {
+		off_t partial;
+ 
+		partial = info->offset - info->pos;
+		data += partial;
+		info->pos += partial;
+		len  -= partial;
+	}
+ 
+	if (len > 0) {
+		memcpy(info->buffer, data, len);
+		info->pos += len;
+		info->buffer += len;
+	}
+}
+
+static int
+copy_info(struct info_str *info, char *fmt, ...)
+{
+	va_list args;
+	char buf[256];
+	int len;
+ 
+	va_start(args, fmt);
+	len = vsprintf(buf, fmt, args);
+	va_end(args);
+ 
+	copy_mem_info(info, buf, len);
+
+	return (len);
+}
+
+/*************************************************************************
+* qla2x00_proc_info
+*
+* Description:
+*   Return information to handle /proc support for the driver.
+*
+* inout : decides the direction of the dataflow and the meaning of the
+*         variables
+* buffer: If inout==FALSE data is being written to it else read from it
+*         (ptr to a page buffer)
+* *start: If inout==FALSE start of the valid data in the buffer
+* offset: If inout==FALSE starting offset from the beginning of all
+*         possible data to return.
+* length: If inout==FALSE max number of bytes to be written into the buffer
+*         else number of bytes in "buffer"
+* Returns:
+*         < 0:  error. errno value.
+*         >= 0: sizeof data returned.
+*************************************************************************/
+int
+qla2x00_proc_info(struct Scsi_Host *shost, char *buffer,
+    char **start, off_t offset, int length, int inout)
+{
+	struct info_str	info;
+	int             i;
+	int             retval = -EINVAL;
+	os_lun_t	*up;
+	os_tgt_t	*tq;
+	uint32_t        t, l;
+	uint32_t        tmp_sn;
+	unsigned long   *flags;
+	struct list_head *list, *temp;
+	unsigned long	cpu_flags;
+	uint8_t		*loop_state;
+#if REQ_TRACE
+	struct scsi_cmnd *cp;
+	srb_t		*sp;
+#endif
+	int	found;
+	scsi_qla_host_t *ha;
+
+	DEBUG3(printk(KERN_INFO
+	    "Entering proc_info buff_in=%p, offset=0x%lx, length=0x%x\n",
+	    buffer, offset, length);)
+
+	ha = NULL;
+
+	/* Find the host that was specified */
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each_entry(ha, &qla_hostlist, list) {
+		if (ha->host == shost) {
+			found++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	/* if host wasn't found then exit */
+	if (!found) {
+		DEBUG2_3(printk(KERN_WARNING
+		    "%s: Can't find adapter for host %p\n", 
+		    __func__, shost);)
+
+		return (retval);
+	}
+
+	if (inout == TRUE) {
+		/* Has data been written to the file? */
+		DEBUG3(printk(
+		    "%s: has data been written to the file. \n",
+		    __func__);)
+
+#if defined(CMD_PROFILE)
+		/* scan for all equipment stats */
+		for (t = 0; t < MAX_FIBRE_DEVICES; t++) {
+			/* scan all luns */
+			for (l = 0; l < ha->max_luns; l++) {
+				up = (os_lun_t *) GET_LU_Q(ha, t, l);
+
+				if (up == NULL)
+					continue;
+				if (up->fclun == NULL)
+					continue;
+				
+				up->start_latency = 0;
+				up->done_latency = 0;
+			}
+		}
+#endif
+		return (qla2x00_set_info(buffer, length, shost));
+	}
+
+	if (start) {
+		*start = buffer;
+	}
+
+	info.buffer = buffer;
+	info.length = length;
+	info.offset = offset;
+	info.pos    = 0;
+
+	/* start building the print buffer */
+	copy_info(&info,
+	    "QLogic PCI to Fibre Channel Host Adapter for %s:\n"
+	    "        Firmware version %2d.%02d.%02d ",
+	    ha->model_number,
+	    ha->fw_major_version, 
+	    ha->fw_minor_version, 
+	    ha->fw_subminor_version);
+
+	switch (ha->fw_attributes & 0xFF) {
+	case 0x7:
+		copy_info(&info, "EF");
+		break;
+	case 0x17:
+		copy_info(&info, "TP");
+		break;
+	case 0x37:
+		copy_info(&info, "IP");
+		break;
+	case 0x77:
+		copy_info(&info, "VI");
+		break;
+	default:
+		copy_info(&info, "(%x)", ha->fw_attributes);
+		break;
+	}
+	if (ha->fw_attributes & 0x100)
+		copy_info(&info, "X");
+	copy_info(&info, ", ");
+
+	copy_info(&info, "Driver version  %s\n", qla2x00_version_str);
+
+	copy_info(&info, "Entry address = %p\n", qla2x00_set_info);
+
+	tmp_sn = ((ha->serial0 & 0x1f) << 16) | (ha->serial2 << 8) | 
+	    ha->serial1;
+	copy_info(&info, "ISP: %s, Serial# %c%05d\n",
+	    ha->brd_info->name, ('A' + tmp_sn/100000), (tmp_sn%100000));
+
+	copy_info(&info,
+	    "Request Queue = 0x%lx, Response Queue = 0x%lx\n",
+	    (unsigned long)ha->request_dma,
+	    (unsigned long)ha->response_dma);
+
+	copy_info(&info,
+	    "Request Queue count = %ld, Response Queue count = %ld\n",
+	    (long)REQUEST_ENTRY_CNT, (long)RESPONSE_ENTRY_CNT);
+
+	copy_info(&info,
+	    "Total number of active commands = %ld\n",
+	    ha->actthreads);
+
+	copy_info(&info,
+	    "Total number of interrupts = %ld\n",
+	    (long)ha->total_isr_cnt);
+
+#if defined(FC_IP_SUPPORT)
+	copy_info(&info,
+	    "Total number of active IP commands = %ld\n",
+	    ha->ipreq_cnt);
+#endif
+
+	copy_info(&info,
+	    "Total number of queued commands = %d\n",
+	    (max_srbs - ha->srb_cnt));
+
+	copy_info(&info,
+	    "    Device queue depth = 0x%x\n",
+	    (ql2xmaxqdepth == 0) ? 16 : ql2xmaxqdepth);
+
+	copy_info(&info,
+	    "Number of free request entries = %d\n", ha->req_q_cnt);
+
+	copy_info(&info,
+	    "Number of mailbox timeouts = %ld\n", ha->total_mbx_timeout);
+
+	copy_info(&info,
+	    "Number of ISP aborts = %ld\n", ha->total_isp_aborts);
+
+	copy_info(&info,
+	    "Number of loop resyncs = %ld\n", ha->total_loop_resync);
+
+	copy_info(&info,
+	    "Number of retries for empty slots = %ld\n",
+	    qla2x00_stats.outarray_full);
+
+	copy_info(&info,
+	    "Number of reqs in pending_q= %ld, retry_q= %d, "
+	    "done_q= %ld, scsi_retry_q= %d\n",
+	    ha->qthreads, ha->retry_q_cnt,
+	    ha->done_q_cnt, ha->scsi_retry_q_cnt);
+
+	if (ha->flags.failover_enabled) {
+		copy_info(&info,
+		    "Number of reqs in failover_q= %d\n",
+		    ha->failover_cnt);
+	}
+
+	flags = (unsigned long *) &ha->flags;
+
+	if (ha->loop_state == LOOP_DOWN) {
+		loop_state = "DOWN";
+	} else if (ha->loop_state == LOOP_UP) {
+		loop_state = "UP";
+	} else if (ha->loop_state == LOOP_READY) {
+		loop_state = "READY";
+	} else if (ha->loop_state == LOOP_TIMEOUT) {
+		loop_state = "TIMEOUT";
+	} else if (ha->loop_state == LOOP_UPDATE) {
+		loop_state = "UPDATE";
+	} else {
+		loop_state = "UNKNOWN";
+	}
+
+	copy_info(&info, 
+	    "Host adapter:loop state = <%s>, flags = 0x%lx\n",
+	    loop_state , *flags);
+
+	copy_info(&info, "Dpc flags = 0x%lx\n", ha->dpc_flags);
+
+	copy_info(&info, "MBX flags = 0x%x\n", ha->mbx_flags);
+
+	copy_info(&info, "SRB Free Count = %d\n", ha->srb_cnt);
+
+	copy_info(&info, "Link down Timeout = %3.3d\n",
+	    ha->link_down_timeout);
+
+	copy_info(&info, "Port down retry = %3.3d\n",
+	    ha->port_down_retry_count);
+
+	copy_info(&info, "Login retry count = %3.3d\n",
+	    ha->login_retry_count);
+
+	copy_info(&info,
+	    "Commands retried with dropped frame(s) = %d\n",
+	    ha->dropped_frame_error_cnt);
+
+	copy_info(&info, "\n");
+
+#if REQ_TRACE
+	if (qla2x00_req_dmp) {
+		copy_info(&info,
+		    "Outstanding Commands on controller:\n");
+
+		for (i = 1; i < MAX_OUTSTANDING_COMMANDS; i++) {
+			if ((sp = ha->outstanding_cmds[i]) == NULL) {
+				continue;
+			}
+
+			if ((cp = sp->cmd) == NULL) {
+				continue;
+			}
+
+			copy_info(&info, "(%d): Pid=%d, sp flags=0x%lx"
+			    ", cmd=0x%p, state=%d\n", 
+			    i, 
+			    (int)sp->cmd->serial_number, 
+			    (long)sp->flags,
+			    CMD_SP(sp->cmd),
+			    (int)sp->state);
+
+			if (info.pos >= info.offset + info.length) {
+				/* No need to continue */
+				goto profile_stop;
+			}
+		}
+	}
+#endif /* REQ_TRACE */
+
+	if (qla2x00_retryq_dmp) {
+		if (!list_empty(&ha->retry_queue)) {
+			copy_info(&info,
+			    "qla%ld: Retry queue requests:\n",
+			    ha->host_no);
+
+			spin_lock_irqsave(&ha->list_lock, cpu_flags);
+
+			i = 0;
+			list_for_each_safe(list, temp, &ha->retry_queue) {
+				sp = list_entry(list, srb_t, list);
+				t = sp->cmd->device->id;
+				l = sp->cmd->device->lun;
+
+				copy_info(&info,
+				    "%d: target=%d, lun=%d, "
+				    "pid=%ld sp=%p, sp->flags=0x%x,"
+				    "sp->state= %d\n", 
+				    i, t, l, 
+				    sp->cmd->serial_number, sp, 
+				    sp->flags, sp->state );
+
+				i++;
+
+				if (info.pos >= info.offset + info.length) {
+					/* No need to continue */
+					goto profile_stop;
+				}
+			}
+
+			spin_unlock_irqrestore(&ha->list_lock, cpu_flags);
+
+		} /* if (!list_empty(&ha->retry_queue))*/
+	} /* if ( qla2x00_retryq_dmp )  */
+
+	/* 2.25 node/port display to proc */
+	/* Display the node name for adapter */
+	copy_info(&info, "\nSCSI Device Information:\n");
+	copy_info(&info,
+	    "scsi-qla%d-adapter-node="
+	    "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+	    (int)ha->instance,
+	    ha->init_cb->node_name[0],
+	    ha->init_cb->node_name[1],
+	    ha->init_cb->node_name[2],
+	    ha->init_cb->node_name[3],
+	    ha->init_cb->node_name[4],
+	    ha->init_cb->node_name[5],
+	    ha->init_cb->node_name[6],
+	    ha->init_cb->node_name[7]);
+
+	/* display the port name for adapter */
+	copy_info(&info,
+	    "scsi-qla%d-adapter-port="
+	    "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+	    (int)ha->instance,
+	    ha->init_cb->port_name[0],
+	    ha->init_cb->port_name[1],
+	    ha->init_cb->port_name[2],
+	    ha->init_cb->port_name[3],
+	    ha->init_cb->port_name[4],
+	    ha->init_cb->port_name[5],
+	    ha->init_cb->port_name[6],
+	    ha->init_cb->port_name[7]);
+
+	/* Print out device port names */
+	for (i = 0; i < MAX_TARGETS; i++) {
+		if ((tq = TGT_Q(ha, i)) == NULL)
+			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,
+			    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],
+			    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]);
+		} else {
+			copy_info(&info,
+			    "scsi-qla%d-target-%d="
+			    "%02x%02x%02x%02x%02x%02x%02x%02x;\n",
+			    (int)ha->instance, i,
+			    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 */
+	for (t = 0; t < MAX_FIBRE_DEVICES; t++) {
+		/* scan all luns */
+		for (l = 0; l < ha->max_luns; l++) {
+			up = (os_lun_t *) GET_LU_Q(ha, t, l);
+
+			if (up == NULL) {
+				continue;
+			}
+			if (up->fclun == NULL) {
+				continue;
+			}
+
+			copy_info(&info,
+			    "(%2d:%2d): Total reqs %ld,",
+			    t,l,up->io_cnt);
+
+			copy_info(&info,
+			    " Pending reqs %ld,",
+			    up->out_cnt);
+
+			if (up->io_cnt < 4) {
+				copy_info(&info,
+				    " flags 0x%x*,",
+				    (int)up->q_flag);
+			} else {
+				copy_info(&info,
+				    " flags 0x%x,",
+				    (int)up->q_flag);
+			}
+
+			copy_info(&info, 
+			    " %ld:%d:%02x %02x",
+			    up->fclun->fcport->ha->instance,
+			    up->fclun->fcport->cur_path,
+			    up->fclun->fcport->loop_id,
+			    up->fclun->device_type);
+
+#if defined(CMD_PROFILE)
+			copy_info(&info, " %ld/%ld", up->start_latency,
+			    up->done_latency);
+#endif
+
+			copy_info(&info, "\n");
+
+			if (info.pos >= info.offset + info.length) {
+				/* No need to continue */
+				goto profile_stop;
+			}
+		}
+
+		if (info.pos >= info.offset + info.length) {
+			/* No need to continue */
+			break;
+		}
+	}
+
+profile_stop:
+
+	retval = info.pos > info.offset ? info.pos - info.offset : 0;
+
+	DEBUG3(printk(KERN_INFO 
+	    "Exiting proc_info: info.pos=%d, offset=0x%lx, "
+	    "length=0x%x\n", info.pos, offset, length);)
+
+#if QLA2100_LIPTEST
+	qla2x00_lip = 1;
+#endif
+
+	return (retval);
+}
+
+/**************************************************************************
+*   qla2x00_setup
+*
+*   Handle Linux boot parameters. This routine allows for assigning a value
+*   to a parameter with a ';' between the parameter and the value.
+*   ie. qla2x00=arg0;arg1;...;argN;<properties .... properties>  OR
+*   via the command line.
+*   ie. qla2x00 ql2xopts=arg0;arg1;...;argN;<properties .... properties>
+**************************************************************************/
+#if !defined(MODULE)
+static int __init
+qla2x00_setup(char *s)
+#else
+void 
+qla2x00_setup(char *s)
+#endif	
+{
+	char		*cp, *np;
+	char		*slots[MAXARGS];
+	char		**argv = &slots[0];
+	static char	buf[LINESIZE];
+	int		argc, opts;
+
+#if !defined(MODULE)
+	if (s == NULL || *s == '\0')
+		return 0;
+#endif
+
+	/*
+	 * Determine if we have any properties.
+	 */
+	cp = s;
+	opts = 1;
+	while (*cp && (np = qla2x00_get_line(cp, buf)) != NULL) {
+		if (strncmp("scsi-qla",buf,8) == 0) {
+			DEBUG(printk("qla2100: devconf=%s\n",cp);)
+
+			ql2xdevconf = cp;
+			(opts > 0)? opts-- : 0;
+			break;
+		}
+		opts++;
+		cp = np;
+	}
+
+	/*
+	 * Parse the args before the properties
+	 */
+	if (opts) {
+		opts = (opts > MAXARGS-1)? MAXARGS-1: opts;
+		argc = qla2x00_get_tokens(s, argv, opts);
+		while (argc > 0) {
+			cp = *argv;
+			DEBUG(printk("scsi: found cmd arg =[%s]\n", cp));
+
+			if (strcmp(cp, "verbose") == 0) {
+				DEBUG(printk("qla2100: verbose\n"));
+				qla2x00_verbose++;
+			} else if (strcmp(cp, "quiet") == 0) {
+				qla2x00_quiet = 1;
+			} else if (strcmp(cp, "reinit_on_loopdown") == 0) {
+				qla2x00_reinit++;
+				DEBUG(printk("qla2100: reinit_on_loopdown\n"));
+			}
+			argc--, argv++;
+		}
+	}
+
+#if !defined(MODULE)
+	if (ql2xdevconf)
+		return 1;
+	else
+		return 0;
+#endif
+}
+
+#if !defined(MODULE)
+__setup("ql2xopts=", qla2x00_setup);
+#endif
+
+/********************** qla2x00_get_line *********************
+* qla2x00_get_line
+* Copy a substring from the specified string. The substring
+* consists of any number of chars seperated by white spaces (i.e. spaces)
+* and ending with a newline '\n' or a semicolon ';'.
+*
+* Enter:
+* str - orig string
+* line - substring
+*
+* Returns:
+*   cp - pointer to next string
+*     or
+*   null - End of string
+*************************************************************/
+static char *
+qla2x00_get_line(char *str, char *line) 
+{
+	register	char 	*cp = str;
+	register	char 	*sp = line;
+
+	/* skip preceeding spaces */
+	while (*cp && *cp == ' ')
+		++cp;
+	while ((*cp) && *cp != '\n' && *cp != ';')   /* end of line */
+		*sp++ = *cp++;
+
+	*sp = '\0';
+
+	DEBUG5(printk("%s(): %s\n", __func__, line));
+
+	if( (*cp) ) {
+		cp++;
+		return (cp);
+	}
+
+	return (NULL);
+}
+
+
+/**************************** get_tokens *********************
+* Parse command line into argv1, argv2, ... argvX
+* Arguments are seperated by white spaces and colons and end
+* with a NULL.
+*************************************************************/
+static int 
+qla2x00_get_tokens(char *line, char **argv, int maxargs) 
+{
+	register	char 	*cp = line;
+	int	count = 0;
+
+	while (*cp && count < maxargs) {
+		/* skip preceeding spaces */
+		while ((*cp) && *cp == ' ')
+			++cp;
+		/* symbol starts here */
+		argv[count++] = cp;
+		/* skip symbols */
+		while ((*cp) && !(*cp == ' ' || *cp == ';' || *cp == ':'))
+			cp++;
+		/* replace comma or space with a null */
+		if((*cp) && (*cp ==' ' ) && argv[count-1] != cp)
+			*cp++ = '\0';
+	}
+	return (count);
+}
+
+/*
+* qla2x00_display_fc_names
+*      This routine will the node names of the different devices found
+*      after port inquiry.
+*
+* Input:
+*      cmd = SCSI command structure
+*
+* Returns:
+*      None.
+*/
+static void
+qla2x00_display_fc_names(scsi_qla_host_t *ha) 
+{
+	uint16_t	tgt;
+	os_tgt_t	*tq;
+
+	/* Display the node name for adapter */
+	printk(KERN_INFO
+	    "scsi-qla%d-adapter-node=%02x%02x%02x%02x%02x%02x%02x%02x\\;\n",
+	    (int)ha->instance,
+	    ha->init_cb->node_name[0],
+	    ha->init_cb->node_name[1],
+	    ha->init_cb->node_name[2],
+	    ha->init_cb->node_name[3],
+	    ha->init_cb->node_name[4],
+	    ha->init_cb->node_name[5],
+	    ha->init_cb->node_name[6],
+	    ha->init_cb->node_name[7]);
+
+	/* display the port name for adapter */
+	printk(KERN_INFO
+	    "scsi-qla%d-adapter-port=%02x%02x%02x%02x%02x%02x%02x%02x\\;\n",
+	    (int)ha->instance,
+	    ha->init_cb->port_name[0],
+	    ha->init_cb->port_name[1],
+	    ha->init_cb->port_name[2],
+	    ha->init_cb->port_name[3],
+	    ha->init_cb->port_name[4],
+	    ha->init_cb->port_name[5],
+	    ha->init_cb->port_name[6],
+	    ha->init_cb->port_name[7]);
+
+	/* Print out device port names */
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if ((tq = ha->otgt[tgt]) == NULL)
+			continue;
+
+		if (tq->fcport == NULL)
+			continue;
+
+		switch (ha->binding_type) {
+			case BIND_BY_PORT_NAME:
+				printk(KERN_INFO
+				    "scsi-qla%d-tgt-%d-di-0-port="
+				    "%02x%02x%02x%02x%02x%02x%02x%02x\\;\n",
+				    (int)ha->instance, 
+				    tgt,
+				    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]);
+
+				break;
+
+			case BIND_BY_PORT_ID:
+				printk(KERN_INFO
+				    "scsi-qla%d-tgt-%d-di-0-pid="
+				    "%02x%02x%02x\\;\n",
+				    (int)ha->instance,
+				    tgt,
+				    tq->d_id.b.domain,
+				    tq->d_id.b.area,
+				    tq->d_id.b.al_pa);
+				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
+		printk(KERN_INFO
+		    "scsi-qla%d-target-%d-vsa=01;\n", (int)ha->instance, tgt);
+#endif
+	}
+}
+
+/*
+ *  qla2x00_suspend_lun
+ *	Suspend lun and start port down timer
+ *
+ * Input:
+ *	ha = visable adapter block pointer.
+ *  lq = lun queue
+ *  cp = Scsi command pointer 
+ *  time = time in seconds
+ *  count = number of times to let time expire
+ *  delay_lun = non-zero, if lun should be delayed rather than suspended
+ *
+ * Return:
+ *     QLA_SUCCESS  -- suspended lun 
+ *     QLA_FUNCTION_FAILED  -- Didn't suspend lun
+ *
+ * Context:
+ *	Interrupt context.
+ */
+int
+__qla2x00_suspend_lun(scsi_qla_host_t *ha,
+		os_lun_t *lq, int time, int count, int delay_lun)
+{
+	int	rval;
+	srb_t *sp;
+	struct list_head *list, *temp;
+	unsigned long flags;
+
+	rval = QLA_SUCCESS;
+
+	/* if the lun_q is already suspended then don't do it again */
+	if (lq->q_state == LUN_STATE_READY ||lq->q_state == LUN_STATE_RUN) {
+
+		spin_lock_irqsave(&lq->q_lock, flags);
+		if (lq->q_state == LUN_STATE_READY) {
+			lq->q_max = count;
+			lq->q_count = 0;
+		}
+		/* Set the suspend time usually 6 secs */
+		atomic_set(&lq->q_timer, time);
+
+		/* now suspend the lun */
+		lq->q_state = LUN_STATE_WAIT;
+
+		if (delay_lun) {
+			set_bit(LUN_EXEC_DELAYED, &lq->q_flag);
+			DEBUG(printk(KERN_INFO
+			    "scsi(%ld): Delay lun execution for %d secs, "
+			    "count=%d, max count=%d, state=%d\n",
+			    ha->host_no,
+			    time,
+			    lq->q_count, lq->q_max, lq->q_state));
+		} else {
+			DEBUG(printk(KERN_INFO
+			    "scsi(%ld): Suspend lun for %d secs, count=%d, "
+			    "max count=%d, state=%d\n",
+			    ha->host_no,
+			    time,
+			    lq->q_count, lq->q_max, lq->q_state));
+		}
+		spin_unlock_irqrestore(&lq->q_lock, flags);
+
+		/*
+		 * Remove all pending commands from request queue and  put them
+		 * in the scsi_retry queue.
+		 */
+		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->lun_queue != lq)
+				continue;
+
+			__del_from_pending_queue(ha, sp);
+
+			if (sp->cmd->allowed < count)
+				sp->cmd->allowed = count;
+			__add_to_scsi_retry_queue(ha,sp);
+
+		} /* list_for_each_safe */
+		spin_unlock_irqrestore(&ha->list_lock, flags);
+		rval = QLA_SUCCESS;
+	} else {
+		rval = QLA_FUNCTION_FAILED;
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_mark_device_lost Updates fcport state when device goes offline.
+ *
+ * Input: ha = adapter block pointer.  fcport = port structure pointer.
+ *
+ * Return: None.
+ *
+ * Context:
+ */
+void qla2x00_mark_device_lost(scsi_qla_host_t *ha, fc_port_t *fcport,
+    int do_login)
+{
+	/* 
+	 * 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) != FCS_DEVICE_DEAD)
+		atomic_set(&fcport->state, FCS_DEVICE_LOST);
+
+	if (!do_login)
+		return;
+
+	if (fcport->login_retry == 0) {
+		fcport->login_retry = ha->login_retry_count;
+		set_bit(RELOGIN_NEEDED, &ha->dpc_flags);
+
+		DEBUG(printk("scsi(%ld): Port login retry: "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x, "
+		    "id = 0x%04x retry cnt=%d\n",
+		    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->login_retry));
+	}
+}
+
+/*
+ * qla2x00_mark_all_devices_lost
+ *	Updates fcport state when device goes offline.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *	fcport = port structure pointer.
+ *
+ * Return:
+ *	None.
+ *
+ * Context:
+ */
+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);
+
+		/*
+		 * No point in marking the device as lost, if the device is
+		 * already DEAD.
+		 */
+		if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD)
+			continue;
+
+		atomic_set(&fcport->state, FCS_DEVICE_LOST);
+	}
+}
+
+/*
+* qla2x00_mem_alloc
+*      Allocates adapter memory.
+*
+* Returns:
+*      0  = success.
+*      1  = failure.
+*/
+static uint8_t
+qla2x00_mem_alloc(scsi_qla_host_t *ha)
+{
+	uint8_t   status = 1;
+	uint8_t   i;
+	int	retry= 10;
+	mbx_cmdq_t	*ptmp;
+	mbx_cmdq_t	*tmp_q_head;
+	mbx_cmdq_t	*tmp_q_tail;
+
+	ENTER(__func__);
+
+	do {
+		/*
+		 * This will loop only once if everything goes well, else some
+		 * number of retries will be performed to get around a kernel
+		 * bug where available mem is not allocated until after a
+		 * little delay and a retry.
+		 */
+
+#if defined(FC_IP_SUPPORT)
+		ha->risc_rec_q = pci_alloc_consistent(ha->pdev,
+		    ((IP_BUFFER_QUEUE_DEPTH) * (sizeof(struct risc_rec_entry))),
+		    &ha->risc_rec_q_dma);
+		if (ha->risc_rec_q == NULL) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "risc_rec_q\n", ha->host_no);
+
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+#endif	/* #if defined(FC_IP_SUPPORT) */
+
+		ha->request_ring = pci_alloc_consistent(ha->pdev,
+		    ((REQUEST_ENTRY_CNT + 1) * (sizeof(request_t))),
+		    &ha->request_dma);
+		if (ha->request_ring == NULL) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "request_ring\n", ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+
+		ha->response_ring = pci_alloc_consistent(ha->pdev,
+		    ((RESPONSE_ENTRY_CNT + 1) * (sizeof(response_t))),
+		    &ha->response_dma);
+		if (ha->response_ring == NULL) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "response_ring\n", ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+
+		/* get consistent memory allocated for init control block */
+		ha->init_cb = pci_alloc_consistent(ha->pdev,
+		    sizeof(init_cb_t), &ha->init_cb_dma);
+		if (ha->init_cb == NULL) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "init_cb\n",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+		memset(ha->init_cb, 0, sizeof(init_cb_t));
+
+		/* Allocate ioctl related memory. */
+		if (qla2x00_alloc_ioctl_mem(ha)) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "ioctl_mem\n",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+
+		if (qla2x00_allocate_sp_pool(ha)) {
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "qla2x00_allocate_sp_pool()\n",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+
+		/*
+		 * Allocate an initial list of mailbox semaphore queue to be
+		 * used for serialization of the mailbox commands.
+		 */
+		tmp_q_head = (void *)KMEM_ZALLOC(sizeof(mbx_cmdq_t), 20);
+		if (tmp_q_head == NULL) {
+			/* error */
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - "
+			    "mbx_cmd_q",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+		ha->mbx_sem_pool_head = tmp_q_head;
+		tmp_q_tail = tmp_q_head;
+
+		/* Now try to allocate more */
+		for (i = 1; i < MBQ_INIT_LEN; i++) {
+			ptmp = (void *)KMEM_ZALLOC(sizeof(mbx_cmdq_t), 20 + i);
+			if (ptmp == NULL) {
+				/*
+				 * Error. Just exit. If more is needed later
+				 * they will be allocated at that time.
+				 */
+				break;
+			}
+			tmp_q_tail->pnext = ptmp;
+			tmp_q_tail = ptmp;
+		}
+		ha->mbx_sem_pool_tail = tmp_q_tail;
+
+		/* 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) {
+			/* error */
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - ms_iocb\n",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+		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) {
+			/* error */
+			printk(KERN_WARNING
+			    "scsi(%ld): Memory Allocation failed - ct_sns\n",
+			    ha->host_no);
+
+			qla2x00_mem_free(ha);
+			set_current_state(TASK_INTERRUPTIBLE);
+			schedule_timeout(HZ/10);
+
+			continue;
+		}
+		memset(ha->ct_sns, 0, sizeof(struct ct_sns_pkt));
+
+		/* Done all allocations without any error. */
+		status = 0;
+
+	} while (retry-- && status != 0);
+
+	if (status) {
+		printk(KERN_WARNING
+			"%s(): **** FAILED ****\n", __func__);
+	}
+
+	LEAVE(__func__);
+
+	return(status);
+}
+
+/*
+* qla2x00_mem_free
+*      Frees all adapter allocated memory.
+*
+* Input:
+*      ha = adapter block pointer.
+*/
+static void
+qla2x00_mem_free(scsi_qla_host_t *ha)
+{
+	uint32_t	t;
+	struct list_head	*fcpl, *fcptemp;
+	fc_port_t	*fcport;
+	struct list_head	*fcll, *fcltemp;
+	fc_lun_t	*fclun;
+	mbx_cmdq_t	*ptmp;
+	mbx_cmdq_t	*tmp_q_head;
+	unsigned long	wtime;/* max wait time if mbx cmd is busy. */
+
+	ENTER(__func__);
+
+	if (ha == NULL) {
+		/* error */
+		DEBUG2(printk("%s(): ERROR invalid ha pointer.\n", __func__));
+		return;
+	}
+
+	/* Free the target queues */
+	for (t = 0; t < MAX_TARGETS; t++) {
+		qla2x00_tgt_free(ha, t);
+	}
+
+	/* Make sure all other threads are stopped. */
+	wtime = 60 * HZ;
+	while ((ha->dpc_wait != NULL || ha->mbx_q_head != NULL) && wtime) {
+		set_current_state(TASK_INTERRUPTIBLE);
+		wtime = schedule_timeout(wtime);
+	}
+
+	/* Now free the mbx sem pool */
+	tmp_q_head = ha->mbx_sem_pool_head;
+	while (tmp_q_head != NULL) {
+		ptmp = tmp_q_head->pnext;
+		KMEM_FREE(tmp_q_head, sizeof(mbx_cmdq_t));
+		tmp_q_head = ptmp;
+	}
+	ha->mbx_sem_pool_head = NULL;
+
+	/* free ioctl memory */
+	qla2x00_free_ioctl_mem(ha);
+
+	/* free sp pool */
+	qla2x00_free_sp_pool(ha);
+
+	if (ha->ct_sns) {
+		pci_free_consistent(ha->pdev,
+		    sizeof(struct ct_sns_pkt), ha->ct_sns, ha->ct_sns_dma);
+	}
+	if (ha->ms_iocb) {
+		pci_free_consistent(ha->pdev,
+		    sizeof(ms_iocb_entry_t), ha->ms_iocb, ha->ms_iocb_dma);
+	}
+
+	if (ha->init_cb) {
+		pci_free_consistent(ha->pdev,
+		    sizeof(init_cb_t), ha->init_cb, ha->init_cb_dma);
+	}
+
+	if (ha->request_ring) {
+		pci_free_consistent(ha->pdev,
+		    ((REQUEST_ENTRY_CNT + 1) * (sizeof(request_t))),
+		    ha->request_ring, ha->request_dma);
+	}
+
+	if (ha->response_ring) {
+		pci_free_consistent(ha->pdev,
+		    ((RESPONSE_ENTRY_CNT + 1) * (sizeof(response_t))),
+		    ha->response_ring, ha->response_dma);
+	}
+
+#if defined(FC_IP_SUPPORT)
+	if (ha->risc_rec_q) {
+		pci_free_consistent(ha->pdev,
+		    ((IP_BUFFER_QUEUE_DEPTH) * (sizeof(struct risc_rec_entry))),
+		    ha->risc_rec_q, ha->risc_rec_q_dma);
+	}
+	ha->risc_rec_q = NULL;
+	ha->risc_rec_q_dma = 0;
+#endif
+
+	ha->ct_sns = NULL;
+	ha->ms_iocb = NULL;
+
+	ha->init_cb = NULL;
+	ha->request_ring = NULL;
+	ha->request_dma = 0;
+	ha->response_ring = NULL;
+	ha->response_dma = 0;
+
+	list_for_each_safe(fcpl, fcptemp, &ha->fcports) {
+		fcport = list_entry(fcpl, fc_port_t, list);
+
+		/* fc luns */
+		list_for_each_safe(fcll, fcltemp, &fcport->fcluns) {
+			fclun = list_entry(fcll, fc_lun_t, list);
+
+			list_del_init(&fclun->list);
+			kfree(fclun);
+		}
+
+		/* fc ports */
+		list_del_init(&fcport->list);
+		kfree(fcport);
+	}
+	INIT_LIST_HEAD(&ha->fcports);
+
+	LEAVE(__func__);
+}
+
+/*
+ * qla2x00_allocate_sp_pool
+ * 	 This routine is called during initialization to allocate
+ *  	 memory for local srb_t.
+ *
+ * Input:
+ *	 ha   = adapter block pointer.
+ *
+ * Context:
+ *      Kernel context.
+ * 
+ * Note: Sets the ref_count for non Null sp to one.
+ */
+int
+qla2x00_allocate_sp_pool(scsi_qla_host_t *ha) 
+{
+	int      rval;
+	srb_t   *sp;
+	int  i;
+
+	rval = QLA_SUCCESS;
+
+	ha->srb_alloc_cnt = 0;
+
+	ha->srb_pool_order = get_order(max_srbs * sizeof(srb_t));
+	ha->srb_pool = (srb_t *) __get_free_pages(GFP_KERNEL,
+	    ha->srb_pool_order);
+	if (ha->srb_pool != NULL) {
+		sp = ha->srb_pool;
+		for (i = 0; i < max_srbs; i++) {
+			memset(sp, 0, sizeof(srb_t));
+			__add_to_free_queue (ha, sp);
+			sp->magic = SRB_MAGIC;
+			atomic_set(&sp->ref_count, 0);
+
+			ha->srb_alloc_cnt++;
+			sp++;
+		}
+	}
+
+	/*
+	 * If we fail to allocte memory return an error
+	 */
+	if (ha->srb_alloc_cnt == 0)
+		rval = QLA_FUNCTION_FAILED;
+
+	DEBUG2(printk(KERN_INFO
+	    "scsi(%ld): Allocated %d SRB(s).\n",
+	    ha->host_no, ha->srb_alloc_cnt));
+
+	return (rval);
+}
+
+/*
+ *  This routine frees all adapter allocated memory.
+ *  
+ */
+void
+qla2x00_free_sp_pool( scsi_qla_host_t *ha) 
+{
+	int cnt_free_srbs = 0;
+	srb_t *sp;
+	struct list_head *list, *temp;
+
+	/*
+	 * Count the number of entries, remove the entries from the list, then
+	 * free the pool.
+	 */
+	list_for_each_safe(list, temp, &ha->free_queue) {
+		sp = list_entry(list, srb_t, list);
+		
+		__del_from_free_queue(ha, sp);
+		cnt_free_srbs++;
+	}
+	free_pages((unsigned long)ha->srb_pool, ha->srb_pool_order);
+
+	if (cnt_free_srbs != ha->srb_alloc_cnt) {
+		DEBUG(printk("scsi(%ld): Did not free all srbs, Free count = "
+		    "%d, Alloc Count = %d\n",
+		    ha->host_no, cnt_free_srbs, ha->srb_alloc_cnt));
+		printk(KERN_INFO
+		    "scsi(%ld): Did not free all srbs, Free count = %d, "
+		    "Alloc Count = %d\n",
+		    ha->host_no, cnt_free_srbs, ha->srb_alloc_cnt);
+	}
+}
+
+
+
+/**************************************************************************
+* qla2x00_do_dpc
+*   This kernel thread is a task that is schedule by the interrupt handler
+*   to perform the background processing for interrupts.
+*
+* Notes:
+* This task always run in the context of a kernel thread.  It
+* is kick-off by the driver's detect code and starts up
+* up one per adapter. It immediately goes to sleep and waits for
+* some fibre event.  When either the interrupt handler or
+* the timer routine detects a event it will one of the task
+* bits then wake us up.
+**************************************************************************/
+static int
+qla2x00_do_dpc(void *data)
+{
+	DECLARE_MUTEX_LOCKED(sem);
+	scsi_qla_host_t *ha;
+	struct list_head *fcpl;
+	fc_port_t	*fcport;
+	os_lun_t        *q;
+	srb_t           *sp;
+	uint8_t		status;
+	unsigned long	flags = 0;
+	struct list_head *list, *templist;
+	int	dead_cnt, online_cnt;
+	uint16_t	next_loopid;
+
+	ha = (scsi_qla_host_t *)data;
+
+	lock_kernel();
+
+	daemonize("%s_dpc%ld", DRIVER_NAME, ha->host_no);
+	allow_signal(SIGHUP);
+
+	ha->dpc_wait = &sem;
+
+	set_user_nice(current, -20);
+
+	unlock_kernel();
+
+	complete(&ha->dpc_inited);
+
+	while (1) {
+		DEBUG3(printk("qla2x00: DPC handler sleeping\n"));
+
+		if (down_interruptible(&sem))
+			break;
+
+		if (ha->dpc_should_die)
+			break;
+
+		if (!list_empty(&ha->done_queue))
+			qla2x00_done(ha);
+
+		DEBUG3(printk("qla2x00: DPC handler waking up\n"));
+
+		/* Initialization not yet finished. Don't do anything yet. */
+		if (!ha->init_done || ha->dpc_active)
+			continue;
+
+		DEBUG3(printk("scsi(%ld): DPC handler\n", ha->host_no));
+
+		/* spin_lock_irqsave(&io_request_lock, ha->cpu_flags);*/
+		ha->dpc_active = 1;
+
+		/* Determine what action is necessary */
+
+		/* Process commands in retry queue */
+		if (test_and_clear_bit(PORT_RESTART_NEEDED, &ha->dpc_flags)) {
+			DEBUG(printk("scsi(%ld): DPC checking retry_q. "
+			    "total=%d\n",
+			    ha->host_no, ha->retry_q_cnt));
+
+			spin_lock_irqsave(&ha->list_lock, flags);
+			dead_cnt = online_cnt = 0;
+			list_for_each_safe(list, templist, &ha->retry_queue) {
+				sp = list_entry(list, srb_t, list);
+				q = sp->lun_queue;
+				DEBUG3(printk("scsi(%ld): pid=%ld sp=%p, "
+				    "spflags=0x%x, q_flag= 0x%lx\n",
+				    ha->host_no,
+				    sp->cmd->serial_number,
+				    sp, sp->flags, q->q_flag));
+
+				if (q == NULL)
+					continue;
+				fcport = q->fclun->fcport;
+
+				if (atomic_read(&fcport->state) ==
+				    FCS_DEVICE_DEAD ||
+				    (ha->loop_state == LOOP_DEAD)) {
+
+					__del_from_retry_queue(ha, sp);
+					sp->cmd->result = DID_NO_CONNECT << 16;
+					sp->cmd->host_scribble =
+					    (unsigned char *) NULL;
+					__add_to_done_queue(ha, sp);
+					dead_cnt++;
+				} else if (atomic_read(&fcport->state) !=
+				    FCS_DEVICE_LOST) {
+
+					__del_from_retry_queue(ha, sp);
+					sp->cmd->result = DID_BUS_BUSY << 16;
+					sp->cmd->host_scribble =
+					    (unsigned char *) NULL;
+					__add_to_done_queue(ha, sp);
+					online_cnt++;
+				}
+			} /* list_for_each_safe() */
+			spin_unlock_irqrestore(&ha->list_lock, flags);
+
+			DEBUG(printk("scsi(%ld): done processing retry queue "
+			    "- dead=%d, online=%d\n ",
+			    ha->host_no, dead_cnt, online_cnt));
+		}
+
+		/* Process commands in scsi retry queue */
+		if (test_and_clear_bit(SCSI_RESTART_NEEDED, &ha->dpc_flags)) {
+			/*
+			 * Any requests we want to delay for some period is put
+			 * in the scsi retry queue with a delay added. The
+			 * timer will schedule a "scsi_restart_needed" every 
+			 * second as long as there are requests in the scsi
+			 * queue. 
+			 */
+			DEBUG(printk("scsi(%ld): DPC checking scsi "
+			    "retry_q.total=%d\n",
+			    ha->host_no, ha->scsi_retry_q_cnt));
+
+			online_cnt = 0;
+			spin_lock_irqsave(&ha->list_lock, flags);
+			list_for_each_safe(list,
+						templist,
+						&ha->scsi_retry_queue) {
+
+				sp = list_entry(list, srb_t, list);
+				q = sp->lun_queue;
+
+				DEBUG3(printk("scsi(%ld): scsi_retry_q: "
+				    "pid=%ld sp=%p, spflags=0x%x, "
+				    "q_flag= 0x%lx,q_state=%d\n",
+				    ha->host_no,
+				    sp->cmd->serial_number,
+				    sp, sp->flags, q->q_flag, q->q_state));
+
+				/* Was this lun suspended */
+				if (q->q_state != LUN_STATE_WAIT) {
+					online_cnt++;
+					__del_from_scsi_retry_queue(ha, sp);
+					__add_to_retry_queue(ha,sp);
+				}
+
+				/* Was this command suspended for N secs */
+				if (sp->delay != 0) {
+					sp->delay--;
+					if (sp->delay == 0) {
+						online_cnt++;
+						__del_from_scsi_retry_queue(
+						    ha, sp);
+						__add_to_retry_queue(ha,sp);
+					}
+				}
+			}
+			spin_unlock_irqrestore(&ha->list_lock, flags);
+
+			DEBUG(if (online_cnt > 0))
+			DEBUG(printk("scsi(%ld): dpc() found scsi reqs to "
+			    "restart= %d\n",
+			    ha->host_no, online_cnt));
+		}
+
+		if (ha->flags.mbox_busy) {
+			if (!list_empty(&ha->done_queue))
+				qla2x00_done(ha);
+
+			ha->dpc_active = 0;
+			continue;
+		}
+
+		if (test_and_clear_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) {
+
+			DEBUG(printk("scsi(%ld): dpc: sched "
+			    "qla2x00_abort_isp ha = %p\n",
+			    ha->host_no, ha));
+			if (!(test_and_set_bit(ABORT_ISP_ACTIVE,
+			    &ha->dpc_flags))) {
+
+				if (qla2x00_abort_isp(ha)) {
+					/* failed. retry later */
+					set_bit(ISP_ABORT_NEEDED,
+					    &ha->dpc_flags);
+				}
+				clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
+			}
+			DEBUG(printk("scsi(%ld): dpc: qla2x00_abort_isp end\n",
+			    ha->host_no));
+		}
+
+		if (test_and_clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags) &&
+		    (!(test_and_set_bit(RESET_ACTIVE, &ha->dpc_flags)))) {
+
+			DEBUG(printk("scsi(%ld): qla2x00_reset_marker()\n",
+			    ha->host_no));
+
+			qla2x00_rst_aen(ha);
+			clear_bit(RESET_ACTIVE, &ha->dpc_flags);
+		}
+
+		/* 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) {
+
+			DEBUG(printk("scsi(%ld): qla2x00_port_login()\n",
+			    ha->host_no));
+
+			next_loopid = 0;
+			list_for_each(fcpl, &ha->fcports) {
+				fcport = list_entry(fcpl, fc_port_t, list);
+				
+				/*
+				 * If the port is not ONLINE then try to login
+				 * to it if we haven't run out of retries.
+				 */
+				if (atomic_read(&fcport->state) != FCS_ONLINE &&
+				    fcport->login_retry) {
+
+					if (fcport->flags & FCF_FABRIC_DEVICE)
+						status = qla2x00_fabric_login(
+						    ha, fcport, &next_loopid);
+					else 	
+						status =
+						    qla2x00_local_device_login(
+							ha,
+							(fcport->loop_id & 0xff));
+
+					if (status == QLA_SUCCESS) {
+						fcport->old_loop_id = fcport->loop_id;
+
+						DEBUG(printk("scsi(%ld): port login OK: logged in ID 0x%x\n",
+						    ha->host_no, fcport->loop_id));
+						
+						fcport->port_login_retry_count =
+						    ha->port_down_retry_count * PORT_RETRY_TIME;
+						atomic_set(&fcport->state, FCS_ONLINE);
+						atomic_set(&fcport->port_down_timer,
+						    ha->port_down_retry_count * PORT_RETRY_TIME);
+
+						fcport->login_retry = 0;
+					} else if (status == 1) {
+						set_bit(RELOGIN_NEEDED, &ha->dpc_flags);
+						/* retry the login again */
+						DEBUG(printk("scsi(%ld): Retrying %d login again loop_id 0x%x\n",
+						    ha->host_no,
+						    fcport->login_retry, fcport->loop_id));
+					} else {
+						fcport->login_retry = 0;
+					}
+				}
+				if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
+					break;
+			}
+			DEBUG(printk("scsi(%ld): qla2x00_port_login - end\n",
+			    ha->host_no));
+		}
+
+		if ((test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags)) &&
+		    ha->loop_state != LOOP_DOWN ) {
+
+			clear_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags);
+			DEBUG(printk("scsi(%ld): qla2x00_login_retry()\n",
+			    ha->host_no));
+				
+			set_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags);
+
+			DEBUG(printk("scsi(%ld): qla2x00_login_retry - end\n",
+			    ha->host_no));
+		}
+
+		if (test_and_clear_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) {
+
+			DEBUG(printk("scsi(%ld): qla2x00_loop_resync()\n",
+			    ha->host_no));
+
+			if (!(test_and_set_bit(LOOP_RESYNC_ACTIVE,
+			    &ha->dpc_flags))) {
+
+				qla2x00_loop_resync(ha);
+
+				clear_bit(LOOP_RESYNC_ACTIVE, &ha->dpc_flags);
+			}
+
+			DEBUG(printk("scsi(%ld): qla2x00_loop_resync - end\n",
+			    ha->host_no));
+		}
+
+		if (ha->flags.failover_enabled) {
+			/*
+			 * If we are not processing a ioctl or one of
+			 * the ports are still MISSING or need a resync
+			 * then process the failover event.
+			*/  
+			if (!test_bit(CFG_ACTIVE, &ha->cfg_flags)) {
+				if (qla2x00_check_for_devices_online(ha)) {
+					if (test_and_clear_bit(FAILOVER_EVENT, &ha->dpc_flags)) {
+
+						DEBUG(printk("scsi(%ld): qla2x00_cfg_event_notify()\n",
+						    ha->host_no));
+
+						if (ha->flags.online) {
+							qla2x00_cfg_event_notify(ha, ha->failover_type);
+						}
+
+						DEBUG(printk("scsi(%ld): qla2x00_cfg_event_notify - end\n",
+						    ha->host_no));
+					}
+				}
+
+				if (test_and_clear_bit(FAILOVER_NEEDED, &ha->dpc_flags)) {
+					/*
+					 * Get any requests from failover queue
+					 */
+					DEBUG(printk("scsi(%ld): qla2x00_process_failover()\n",
+					    ha->host_no));
+
+					qla2x00_process_failover(ha);
+
+					DEBUG(printk("scsi(%ld): qla2x00_process_failover - end\n",
+					    ha->host_no));
+				}
+			}
+		}
+
+		if (test_bit(RESTART_QUEUES_NEEDED, &ha->dpc_flags)) {
+			DEBUG(printk("scsi(%ld): qla2x00_restart_queues()\n",
+			    ha->host_no));
+
+			qla2x00_restart_queues(ha,FALSE);
+
+			DEBUG(printk("scsi(%ld): qla2x00_restart_queues - end\n",
+			    ha->host_no));
+		}
+
+		if (test_bit(ABORT_QUEUES_NEEDED, &ha->dpc_flags)) {
+
+			DEBUG(printk("scsi(%ld): qla2x00_abort_queues()\n",
+			    ha->host_no));
+				
+			qla2x00_abort_queues(ha, FALSE);
+
+			DEBUG(printk("scsi(%ld): qla2x00_abort_queues - end\n",
+			    ha->host_no));
+		}
+
+		if (!ha->interrupts_on)
+			qla2x00_enable_intrs(ha);
+
+		if (!list_empty(&ha->done_queue))
+			qla2x00_done(ha);
+
+		ha->dpc_active = 0;
+	} /* End of while(1) */
+
+	DEBUG(printk("scsi(%ld): DPC handler exiting\n", ha->host_no));
+
+	/*
+	 * Make sure that nobody tries to wake us up again.
+	 */
+	ha->dpc_wait = NULL;
+	ha->dpc_active = 0;
+
+	complete_and_exit(&ha->dpc_exited, 0);
+}
+
+/*
+ *  qla2x00_abort_queues
+ *	Abort all commands on queues on device
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Interrupt context.
+ */
+void
+qla2x00_abort_queues(scsi_qla_host_t *ha, uint8_t doneqflg) 
+{
+
+	srb_t       *sp;
+	struct list_head *list, *temp;
+	unsigned long flags;
+
+	ENTER(__func__);
+
+	clear_bit(ABORT_QUEUES_NEEDED, &ha->dpc_flags);
+
+	/* Return all commands device queues. */
+	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_ABORTED)
+			continue;
+
+		/* Remove srb from LUN queue. */
+		__del_from_pending_queue(ha, sp);
+
+		/* Set ending status. */
+		sp->cmd->result = DID_BUS_BUSY << 16;
+
+		__add_to_done_queue(ha, sp);
+	}
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+
+	LEAVE(__func__);
+}
+
+/*
+ * 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) 
+{
+	struct list_head	*fcpl;
+	fc_port_t	*fcport;
+	int		found, cnt;
+
+	found = 0;
+	cnt = 0;
+
+	list_for_each(fcpl, &ha->fcports) {
+		fcport = list_entry(fcpl, fc_port_t, list);
+
+		if ((atomic_read(&fcport->state) == FCS_ONLINE) ||
+			(atomic_read(&fcport->state) == FCS_DEVICE_DEAD))
+			found++;
+
+		cnt++;
+	}
+	if (cnt == found) {
+		DEBUG5(printk("%s(%ld): all online\n",
+				__func__,
+				ha->host_no);)
+		return 1;
+	} else
+		return 0;
+}
+
+/*
+*  qla2x00_rst_aen
+*      Processes asynchronous reset.
+*
+* Input:
+*      ha  = adapter block pointer.
+*/
+static void
+qla2x00_rst_aen(scsi_qla_host_t *ha) 
+{
+	ENTER(__func__);
+
+	if (ha->flags.online && !ha->flags.reset_active &&
+	    !atomic_read(&ha->loop_down_timer) &&
+	    !(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags))) {
+
+		/* 10/15 ha->flags.reset_active = TRUE; */
+		do {
+			clear_bit(RESET_MARKER_NEEDED, &ha->dpc_flags);
+
+			/*
+			 * Issue marker command only when we are going to start
+			 * the I/O.
+			 */
+			ha->marker_needed = 1;
+		} while (!atomic_read(&ha->loop_down_timer) &&
+		    (test_bit(RESET_MARKER_NEEDED, &ha->dpc_flags)));
+
+		/* 10/15 ha->flags.reset_active = FALSE; */
+	}
+
+	LEAVE(__func__);
+}
+
+
+/*
+ * This routine will alloacte SP from the free queue
+ * input:
+ *        scsi_qla_host_t *
+ * output:
+ *        srb_t * or NULL
+ */
+srb_t *
+qla2x00_get_new_sp(scsi_qla_host_t *ha)
+{
+	srb_t * sp = NULL;
+	ulong  flags;
+
+	spin_lock_irqsave(&ha->list_lock, flags);
+	if (!list_empty(&ha->free_queue)) {
+		sp = list_entry(ha->free_queue.next, srb_t, list);
+		__del_from_free_queue(ha, sp);
+	}
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+
+	if (sp) {
+#if defined(QL_DEBUG_LEVEL_4)
+		if ((int)atomic_read(&sp->ref_count) != 0) {
+			printk(KERN_WARNING
+			    "scsi(%ld): WARNING ref_count not zero!\n",
+			    ha->host_no);
+		}
+#endif
+		atomic_set(&sp->ref_count, 1);
+	}
+
+	return (sp);
+}
+
+#if defined(ISP2300)
+/**************************************************************************
+ * qla2x00_blink_led
+ *
+ * Description:
+ *   This function sets the colour of the LED while preserving the
+ *   unsued GPIO pins every sec.
+ *
+ * Input:
+ *       ha - Host adapter structure
+ *      
+ * Return:
+ * 	None
+ *
+ * Context: qla2x00_timer() Interrupt
+ ***************************************************************************/
+void
+qla2x00_blink_led(scsi_qla_host_t *ha)
+{
+	uint16_t	gpio_enable, gpio_data, led_color;
+	unsigned long	cpu_flags = 0;
+	device_reg_t	*reg = ha->iobase;
+
+	ENTER(__func__);
+
+	/* Save the Original GPIOE */ 
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	gpio_enable = RD_REG_WORD(&reg->gpioe);
+	gpio_data = RD_REG_WORD(&reg->gpiod);
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	DEBUG2(printk("%s Original data of gpio_enable_reg=0x%x"
+	    " gpio_data_reg=0x%x\n",
+	    __func__,gpio_enable,gpio_data));
+
+	if (ha->beacon_green_on){
+		led_color = GPIO_LED_GREEN_ON_AMBER_OFF;
+		ha->beacon_green_on = 0;
+	} else {
+		led_color = GPIO_LED_GREEN_OFF_AMBER_OFF;
+		ha->beacon_green_on = 1;
+	}
+
+	/* Set the modified gpio_enable values */
+	gpio_enable |= GPIO_LED_GREEN_ON_AMBER_OFF;
+
+	DEBUG2(printk("%s Before writing enable : gpio_enable_reg=0x%x"
+	    " gpio_data_reg=0x%x led_color=0x%x\n",
+	    __func__, gpio_enable, gpio_data, led_color));
+
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	WRT_REG_WORD(&reg->gpioe,gpio_enable);
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	/* Clear out the previously set LED colour */
+	gpio_data &= ~GPIO_LED_GREEN_ON_AMBER_OFF;
+
+	/* Set the new input LED colour to GPIOD */
+	gpio_data |= led_color;
+
+	DEBUG2(printk("%s Before writing data: gpio_enable_reg=0x%x"
+	    " gpio_data_reg=0x%x led_color=0x%x\n",
+	    __func__,gpio_enable,gpio_data,led_color));
+
+	/* Set the modified gpio_data values */
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	WRT_REG_WORD(&reg->gpiod,gpio_data);
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	LEAVE(__func__);
+}
+#endif 
+
+/**************************************************************************
+*   qla2x00_timer
+*
+* Description:
+*   One second timer
+*
+* Context: Interrupt
+***************************************************************************/
+static void
+qla2x00_timer(scsi_qla_host_t *ha)
+{
+	int		t,l;
+	unsigned long	cpu_flags = 0;
+	struct list_head	*fcpl;
+	fc_port_t	*fcport;
+	os_lun_t *lq;
+	os_tgt_t *tq;
+	int		start_dpc = 0;
+
+	/*
+	 * We try and restart any request in the retry queue every second.
+	 */
+	if (!list_empty(&ha->retry_queue)) {
+		set_bit(PORT_RESTART_NEEDED, &ha->dpc_flags);
+		start_dpc++;
+	}
+
+	/*
+	 * We try and restart any request in the scsi_retry queue every second.
+	 */
+	if (!list_empty(&ha->scsi_retry_queue)) {
+		set_bit(SCSI_RESTART_NEEDED, &ha->dpc_flags);
+		start_dpc++;
+	}
+
+#if defined(ISP2300)
+	/* Check if beacon LED needs to be blinked */
+	if (ha->beacon_blink_led)
+		qla2x00_blink_led(ha);
+#endif
+
+	/*
+	 * We try and failover any request in the failover queue every second.
+	 */
+	if (!list_empty(&ha->failover_queue)) {
+		set_bit(FAILOVER_NEEDED, &ha->dpc_flags);
+		start_dpc++;
+	}
+
+	/*
+	 * Ports - Port down timer.
+	 *
+	 * Whenever, a port is in the LOST state we start decrementing its port
+	 * down timer every second until it reaches zero. Once  it reaches zero
+	 * the port it marked DEAD. 
+	 */
+	t = 0;
+	list_for_each(fcpl, &ha->fcports) {
+		fcport = list_entry(fcpl, fc_port_t, list);
+
+		if (atomic_read(&fcport->state) == FCS_DEVICE_LOST) {
+
+			if (atomic_read(&fcport->port_down_timer) == 0)
+				continue;
+
+			if (atomic_dec_and_test(&fcport->port_down_timer) != 0) 
+				atomic_set(&fcport->state, FCS_DEVICE_DEAD);
+			
+			DEBUG(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  */
+
+	/*
+	 * LUNS - lun suspend timer.
+	 *
+	 * Whenever, a lun is suspended the timer starts decrementing its
+	 * suspend timer every second until it reaches zero. Once  it reaches
+	 * zero the lun retry count is decremented. 
+	 */
+
+	/*
+	 * FIXME(dg) - Need to convert this linear search of luns into a search
+	 * of a list of suspended luns.
+	 */
+	for (t = 0; t < ha->max_targets; t++) {
+		if ((tq = ha->otgt[t]) == NULL)
+			continue;
+
+		for (l = 0; l < ha->max_luns; l++) {
+			if ((lq = (os_lun_t *) tq->olun[l]) == NULL)
+				continue;
+
+			spin_lock_irqsave(&lq->q_lock, cpu_flags);
+			if (lq->q_state == LUN_STATE_WAIT &&
+				atomic_read(&lq->q_timer) != 0) {
+
+				if (atomic_dec_and_test(&lq->q_timer) != 0) {
+					/*
+					 * A delay should immediately
+					 * transition to a READY state
+					 */
+					if (test_and_clear_bit(LUN_EXEC_DELAYED,
+					    &lq->q_flag)) {
+						lq->q_state = LUN_STATE_READY;
+					}
+					else {
+						lq->q_count++;
+						if (lq->q_count == lq->q_max)
+							lq->q_state =
+							    LUN_STATE_TIMEOUT;
+						else
+							lq->q_state =
+							    LUN_STATE_RUN;
+					}
+				}
+				DEBUG3(printk("scsi(%ld): lun%d - timer %d, "
+				    "count=%d, max=%d, state=%d\n",
+				    ha->host_no,
+				    l,
+				    atomic_read(&lq->q_timer),
+				    lq->q_count, lq->q_max, lq->q_state));
+			}
+			spin_unlock_irqrestore(&lq->q_lock, cpu_flags);
+		} /* End of for luns  */
+	} /* End of for targets  */
+
+	/* Loop down handler. */
+	if (atomic_read(&ha->loop_down_timer) > 0 &&
+	    !(test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags)) && ha->flags.online) {
+
+		/* dg 10/30 if (atomic_read(&ha->loop_down_timer) == LOOP_DOWN_TIME) { */
+		if (atomic_read(&ha->loop_down_timer) ==
+		    ha->loop_down_abort_time) {
+
+			DEBUG(printk("scsi(%ld): Loop Down - aborting the "
+			    "queues before time expire\n",
+			    ha->host_no));
+
+#if !defined(ISP2100)
+			if (ha->link_down_timeout)
+				ha->loop_state = LOOP_DEAD; 
+#endif
+
+			set_bit(ABORT_QUEUES_NEEDED, &ha->dpc_flags);
+			start_dpc++;
+		}
+
+		/* if the loop has been down for 4 minutes, reinit adapter */
+		if (atomic_dec_and_test(&ha->loop_down_timer) != 0) {
+			DEBUG(printk("scsi(%ld): Loop down exceed 4 mins - "
+			    "restarting queues.\n",
+			    ha->host_no));
+
+			set_bit(RESTART_QUEUES_NEEDED, &ha->dpc_flags);
+			start_dpc++;
+			if (!(ha->device_flags & DFLG_NO_CABLE) &&
+			    qla2x00_reinit && !ha->flags.failover_enabled) {
+
+				DEBUG(printk("scsi(%ld): Loop down - "
+				    "aborting ISP.\n",
+				    ha->host_no));
+
+				set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+			}
+		}
+		DEBUG3(printk("scsi(%ld): Loop Down - seconds remainning %d\n",
+		    ha->host_no,
+		    atomic_read(&ha->loop_down_timer)));
+	}
+
+	/*
+	 * 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))
+		qla2x00_done(ha);
+
+#if QLA2100_LIPTEST
+	/*
+	 * This block is used to periodically schedule isp abort after
+	 * qla2x00_lip flag is set. 
+	 */
+
+	/*
+	   if (qla2x00_lip && (ha->forceLip++) == (60*2)) {
+	   printk("timer: schedule isp abort.\n");
+	   set_bit(ISP_ABORT_NEEDED, &ha->dpc_flags);
+	   ha->forceLip = 0;
+	   }
+	 */
+
+	/*
+	 * This block is used to periodically schedule mailbox cmd timeout
+	 * simulation
+	 */
+	if (qla2x00_lip && (ha->forceLip++) == (60*6)) {
+		printk("qla2x00_timer: Going to force mbx timeout\n");
+
+		ha->forceLip = 0;
+		mbxtimeout = 1;
+	}
+#endif
+
+	if (test_bit(FAILOVER_EVENT_NEEDED, &ha->dpc_flags)) {
+		if (ha->failback_delay)  {
+			ha->failback_delay--;
+			if (ha->failback_delay == 0)  {
+				set_bit(FAILOVER_EVENT, &ha->dpc_flags);
+				clear_bit(FAILOVER_EVENT_NEEDED,
+				    &ha->dpc_flags);
+			}
+		} else {
+			set_bit(FAILOVER_EVENT, &ha->dpc_flags);
+			clear_bit(FAILOVER_EVENT_NEEDED, &ha->dpc_flags);
+		}
+	}
+
+	/* Schedule the DPC routine if needed */
+	if ((test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags) ||
+	    start_dpc ||
+	    test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags) ||
+	    test_bit(RELOGIN_NEEDED, &ha->dpc_flags) ||
+	    test_bit(FAILOVER_EVENT, &ha->dpc_flags) ||
+	    test_bit(FAILOVER_NEEDED, &ha->dpc_flags)) &&
+	    ha->dpc_wait && !ha->dpc_active) {
+
+		up(ha->dpc_wait);
+	}
+
+	qla2x00_restart_timer(ha, WATCH_INTERVAL);
+}
+
+/*
+ * qla2x00_extend_timeout
+ *      This routine will extend the timeout to the specified value.
+ *
+ * Input:
+ *      cmd = SCSI command structure
+ *
+ * Returns:
+ *      None.
+ */
+void 
+qla2x00_extend_timeout(struct scsi_cmnd *cmd, int timeout) 
+{
+	srb_t *sp = (srb_t *) CMD_SP(cmd);
+	u_long our_jiffies = (timeout * HZ) + jiffies;
+
+    	sp->ext_history= 0; 
+	sp->e_start = jiffies;
+	if (cmd->eh_timeout.function) {
+		mod_timer(&cmd->eh_timeout,our_jiffies);
+		sp->ext_history |= 1;
+	}
+	if (sp->timer.function != NULL) {
+		/* 
+		 * Our internal timer should timeout before the midlayer has a
+		 * chance begin the abort process
+		 */
+		mod_timer(&sp->timer,our_jiffies - (QLA_CMD_TIMER_DELTA * HZ));
+
+    	 	sp->ext_history |= 2;
+	}
+}
+
+/**************************************************************************
+*   qla2x00_cmd_timeout
+*
+* Description:
+*       Handles the command if it times out in any state.
+*
+* Input:
+*     sp - pointer to validate
+*
+* Returns:
+* None.
+* Note:Need to add the support for if( sp->state == SRB_FAILOVER_STATE).
+**************************************************************************/
+static void
+qla2x00_cmd_timeout(srb_t *sp)
+{
+	int t, l;
+	int processed;
+	scsi_qla_host_t *vis_ha, *dest_ha;
+	struct scsi_cmnd *cmd;
+	ulong      flags;
+#if defined(QL_DEBUG_LEVEL_3)
+	ulong      cpu_flags;
+#endif
+	fc_port_t	*fcport;
+
+	cmd = sp->cmd;
+	vis_ha = (scsi_qla_host_t *)cmd->device->host->hostdata;
+
+	DEBUG3(printk("cmd_timeout: Entering sp->state = %x\n", sp->state));
+
+	t = cmd->device->id;
+	l = cmd->device->lun;
+	fcport = sp->fclun->fcport;
+	dest_ha = sp->ha;
+
+	/*
+	 * If IO is found either in retry Queue 
+	 *    OR in Lun Queue
+	 * Return this IO back to host
+	 */
+	spin_lock_irqsave(&vis_ha->list_lock, flags);
+	processed = 0;
+	if (sp->state == SRB_PENDING_STATE) {
+		__del_from_pending_queue(vis_ha, sp);
+		DEBUG2(printk("scsi(%ld): Found in Pending queue pid %ld, "
+		    "State = %x., fcport state=%d jiffies=%lx\n",
+		    vis_ha->host_no,
+		    sp->cmd->serial_number, sp->state,
+		    atomic_read(&fcport->state), jiffies));
+
+		/*
+		 * If FC_DEVICE is marked as dead return the cmd with
+		 * DID_NO_CONNECT status.  Otherwise set the host_byte to
+		 * DID_BUS_BUSY to let the OS  retry this cmd.
+		 */
+		if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
+		    (vis_ha->loop_state == LOOP_DEAD)) {
+			cmd->result = DID_NO_CONNECT << 16;
+		} else {
+			cmd->result = DID_BUS_BUSY << 16;
+		}
+		__add_to_done_queue(vis_ha, sp);
+		processed++;
+	} 
+	spin_unlock_irqrestore(&vis_ha->list_lock, flags);
+
+	if (processed) {
+		qla2x00_done(vis_ha);
+
+		 return;
+	}
+
+	spin_lock_irqsave(&dest_ha->list_lock, flags);
+	if ((sp->state == SRB_RETRY_STATE) ||
+	    (sp->state == SRB_SCSI_RETRY_STATE) ||
+	    (sp->state == SRB_FAILOVER_STATE)) {
+
+		DEBUG2(printk("scsi(%ld): Found in (Scsi) Retry queue or "
+		    "failover Q pid %ld, State = %x., fcport state=%d "
+		    "jiffies=%lx retried=%d\n",
+		    dest_ha->host_no,
+		    sp->cmd->serial_number, sp->state,
+		    atomic_read(&fcport->state),
+		    jiffies, sp->cmd->retries));
+
+		if ((sp->state == SRB_RETRY_STATE)) {
+			__del_from_retry_queue(dest_ha, sp);
+		} else if ((sp->state == SRB_SCSI_RETRY_STATE)) {
+			__del_from_scsi_retry_queue(dest_ha, sp);
+		} else if ((sp->state == SRB_FAILOVER_STATE)) {
+			__del_from_failover_queue(dest_ha, sp);
+		}
+
+		/*
+		 * If FC_DEVICE is marked as dead return the cmd with
+		 * DID_NO_CONNECT status.  Otherwise set the host_byte to
+		 * DID_BUS_BUSY to let the OS  retry this cmd.
+		 */
+		if (dest_ha->flags.failover_enabled) {
+			cmd->result = DID_BUS_BUSY << 16;
+		} else {
+			if ((atomic_read(&fcport->state) == FCS_DEVICE_DEAD) ||
+			    (dest_ha->loop_state == LOOP_DEAD)) {
+				qla2x00_extend_timeout(cmd, EXTEND_CMD_TIMEOUT);
+				cmd->result = DID_NO_CONNECT << 16;
+			} else {
+				cmd->result = DID_BUS_BUSY << 16;
+			}
+		}
+
+		__add_to_done_queue(dest_ha, sp);
+		processed++;
+	} 
+	spin_unlock_irqrestore(&dest_ha->list_lock, flags);
+
+	if (processed) {
+		qla2x00_done(dest_ha);
+
+		 return;
+	}
+/* TODO: Remove this code!!! */
+#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 */
+		DEBUG(printk("scsi(%ld): Found in Done queue pid %ld sp=%p.\n",
+		    dest_ha->host_no, sp->cmd->serial_number, sp));
+	} else if (sp->state == SRB_SUSPENDED_STATE) {
+		DEBUG(printk("scsi(%ld): Found SP %p in suspended state  "
+		    "- pid %d:\n",
+		    dest_ha->host_no,sp,
+		    (int)sp->cmd->serial_number));
+		DEBUG(qla2x00_dump_buffer((uint8_t *)sp, sizeof(srb_t));)
+	} else if (sp->state == SRB_ACTIVE_STATE) {
+		/*
+		 * IO is with ISP find the command in our active list.
+		 */
+		spin_unlock_irqrestore(&dest_ha->list_lock, cpu_flags);
+		spin_lock_irqsave(&dest_ha->hardware_lock, flags);
+		if (sp ==
+		    dest_ha->outstanding_cmds[(u_long)sp->cmd->host_scribble]) {
+
+			DEBUG(printk("cmd_timeout: Found in ISP \n");)
+
+			sp->state = SRB_ACTIVE_TIMEOUT_STATE;
+			spin_unlock_irqrestore(&dest_ha->hardware_lock, flags);
+		} else {
+			spin_unlock_irqrestore(&dest_ha->hardware_lock, flags);
+			printk(KERN_INFO 
+				"qla_cmd_timeout: State indicates it is with "
+				"ISP, But not in active array\n");
+		}
+		spin_lock_irqsave(&dest_ha->list_lock, cpu_flags); 	/* 01/03 */
+	} else if (sp->state == SRB_ACTIVE_TIMEOUT_STATE) {
+		DEBUG(printk("qla2100%ld: Found in Active timeout state"
+				"pid %ld, State = %x., \n",
+				dest_ha->host_no,
+				sp->cmd->serial_number, sp->state);)
+	} else {
+		/* EMPTY */
+		DEBUG2(printk("cmd_timeout%ld: LOST command state = "
+				"0x%x, sp=%p\n",
+				vis_ha->host_no, sp->state,sp);)
+
+		printk(KERN_INFO
+			"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");)
+}
+
+/**************************************************************************
+* qla2x00_done
+*      Process completed commands.
+*
+* Input:
+*      old_ha           = adapter block pointer.
+*
+* Returns:
+* int     
+**************************************************************************/
+int
+qla2x00_done(scsi_qla_host_t *old_ha)
+{
+	os_lun_t	*lq;
+	struct scsi_cmnd *cmd;
+	unsigned long	flags = 0;
+	scsi_qla_host_t	*ha;
+	scsi_qla_host_t	*vis_ha;
+	int	cnt;
+	int	send_marker_once = 0;
+	srb_t           *sp, *sptemp;
+	LIST_HEAD(local_sp_list);
+
+	cnt = 0;
+
+	/*
+	 * Get into local queue such that we do not wind up calling done queue
+	 * tasklet for the same IOs from DPC or any other place.
+	 */
+	spin_lock_irqsave(&old_ha->list_lock, flags);
+	list_splice_init(&old_ha->done_queue, &local_sp_list);
+	spin_unlock_irqrestore(&old_ha->list_lock, flags);
+
+	/*
+	 * All done commands are in the local queue, now do the call back.
+	 */
+	list_for_each_entry_safe(sp, sptemp, &local_sp_list, list) {
+		old_ha->done_q_cnt--;
+        	sp->state = SRB_NO_QUEUE_STATE;
+
+		/* remove command from local list */
+		list_del_init(&sp->list);
+
+		cnt++;
+
+		cmd = sp->cmd;
+		if (cmd == NULL)
+		 	continue;
+
+		vis_ha = (scsi_qla_host_t *)cmd->device->host->hostdata;
+		lq = sp->lun_queue;
+		ha = sp->ha;
+
+		if (sp->flags & SRB_DMA_VALID) {
+			sp->flags &= ~SRB_DMA_VALID;
+
+			/* Release memory used for this I/O */
+			if (cmd->use_sg) {
+				pci_unmap_sg(ha->pdev, cmd->request_buffer,
+				    cmd->use_sg, scsi_to_pci_dma_dir(
+					    cmd->sc_data_direction));
+			} else if (cmd->request_bufflen) {
+				pci_unmap_page(ha->pdev, sp->dma_handle,
+				    cmd->request_bufflen, scsi_to_pci_dma_dir(
+					    cmd->sc_data_direction));
+			}
+		}
+
+		if (!(sp->flags & SRB_IOCTL) && 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.
+			 */
+			if (qla2x00_fo_check(ha,sp)) {
+				if ((sp->state != SRB_FAILOVER_STATE)) {
+					/*
+					 * Retry the command on this path
+					 * several times before selecting a new
+					 * path.
+					 */
+					add_to_pending_queue_head(vis_ha, sp);
+					qla2x00_next(vis_ha);
+				}
+				else {
+					/* we failover this path */
+					qla2x00_extend_timeout(sp->cmd,
+							EXTEND_CMD_TIMEOUT);
+				}
+				continue;
+			}
+			
+		}
+
+		switch (host_byte(cmd->result)) {
+			case DID_OK:
+			case DID_ERROR:
+				break;
+
+			case DID_RESET:
+				/*
+				 * Set marker needed, so we don't have to
+				 * send multiple markers
+				 */
+				if (!send_marker_once) {
+					ha->marker_needed = 1;
+					send_marker_once++;
+				}
+
+				/*
+				 * WORKAROUND
+				 *
+				 * A backdoor device-reset requires different
+				 * error handling.  This code differentiates
+				 * between normal error handling and the
+				 * backdoor method.
+				 *
+				 */
+				if (ha->host->eh_active != EH_ACTIVE)
+					cmd->result = DID_BUS_BUSY << 16;
+				break;
+
+
+			case DID_ABORT:
+				sp->flags &= ~SRB_ABORT_PENDING;
+				sp->flags |= SRB_ABORTED;
+
+				if (sp->flags & SRB_TIMEOUT)
+					cmd->result = DID_TIME_OUT << 16;
+
+				break;
+
+			default:
+				DEBUG2(printk("scsi(%ld:%d:%d) %s: did_error "
+				    "= %d, comp-scsi= 0x%x-0x%x.\n",
+				    vis_ha->host_no,
+				    cmd->device->id, cmd->device->lun,
+				    __func__,
+				    host_byte(cmd->result),
+				    CMD_COMPL_STATUS(cmd),
+				    CMD_SCSI_STATUS(cmd)));
+				break;
+		}
+
+		/*
+		 * Call the mid-level driver interrupt handler -- via sp_put()
+		 */
+		sp_put(ha, sp);
+	} /* end of while */
+
+	return (cnt);
+}
+
+#if  defined(ISP2300)
+/*
+ * qla2x00_process_response_queue_in_zio_mode
+ *	Process response queue completion as fast as possible
+ *	to achieve Zero Interrupt Opertions-ZIO
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static inline void
+qla2x00_process_response_queue_in_zio_mode(scsi_qla_host_t *ha)
+{
+	unsigned long flags;
+
+	/* Check for unprocessed commands in response queue. */
+	if (!ha->flags.process_response_queue)
+		return;
+	if (!ha->flags.online)
+		return;
+	if (ha->response_ring_ptr->signature == RESPONSE_PROCESSED)
+		return;
+	
+	spin_lock_irqsave(&ha->hardware_lock,flags);
+	qla2x00_process_response_queue(ha);
+	spin_unlock_irqrestore(&ha->hardware_lock, flags);
+
+	if (!list_empty(&ha->done_queue))
+		qla2x00_done(ha);
+}
+#endif
+
+/*
+ * qla2x00_next
+ *	Retrieve and process next job in the LUN queue.
+ *
+ * Input:
+ *	tq = SCSI target queue pointer.
+ *	lq = SCSI LUN queue pointer.
+ *	TGT_LOCK must be already obtained.
+ *
+ * Output:
+ *	Releases TGT_LOCK upon exit.
+ *
+ * Context:
+ *	Kernel/Interrupt context.
+ * 
+ * Note: This routine will always try to start I/O from visible HBA.
+ */
+void
+qla2x00_next(scsi_qla_host_t *vis_ha) 
+{
+	int		rval;
+	unsigned long   flags;
+	scsi_qla_host_t *dest_ha;
+	fc_port_t	*fcport;
+	srb_t           *sp, *sptemp;
+	LIST_HEAD(local_sp_list);
+
+	dest_ha = NULL;
+
+	spin_lock_irqsave(&vis_ha->list_lock, flags);
+	list_splice_init(&vis_ha->pending_queue, &local_sp_list);
+	spin_unlock_irqrestore(&vis_ha->list_lock, flags);
+
+	list_for_each_entry_safe(sp, sptemp, &local_sp_list, list) {
+		list_del_init(&sp->list);
+		vis_ha->qthreads--;
+        	sp->state = SRB_NO_QUEUE_STATE;
+
+		fcport = sp->fclun->fcport;
+		dest_ha = fcport->ha;
+
+		/* If device is dead then send request back to OS */
+		if ((dest_ha->flags.link_down_error_enable &&
+		    atomic_read(&fcport->state) == FCS_DEVICE_DEAD)) {
+
+			sp->cmd->result = DID_NO_CONNECT << 16;
+
+			if (!atomic_read(&dest_ha->loop_down_timer) &&
+			    dest_ha->loop_state == LOOP_DOWN) {
+				sp->err_id = 2;
+			} else {
+				sp->err_id = 1;
+			}
+			DEBUG3(printk("scsi(%ld): loop/port is down - "
+			    "pid=%ld, sp=%p loopid=0x%x queued to dest HBA "
+			    "scsi%ld.\n",
+			    dest_ha->host_no,
+			    sp->cmd->serial_number, sp,
+			    fcport->loop_id, dest_ha->host_no));
+			/* 
+			 * Initiate a failover - done routine will initiate.
+			 */
+			add_to_done_queue(vis_ha, sp);
+
+			continue;
+		}
+
+		/*
+		 * SCSI Kluge: Whenever, we need to wait for an event such as
+		 * loop down (i.e. loop_down_timer ) or port down (i.e.  LUN
+		 * request qeueue is suspended) then we will recycle new
+		 * commands back to the SCSI layer.  We do this because this is
+		 * normally a temporary condition and we don't want the
+		 * mid-level scsi.c driver to get upset and start aborting
+		 * commands.  The timeout value is extracted from the command
+		 * minus 1-second and put on a retry queue (watchdog). Once the
+		 * command timeout it is returned to the mid-level with a BUSY
+		 * status, so the mid-level will retry it. This process
+		 * continues until the LOOP DOWN time expires or the condition
+		 * goes away.
+		 */
+	 	if (!(sp->flags & SRB_IOCTL) &&
+		    (atomic_read(&fcport->state) != FCS_ONLINE ||
+			test_bit(ABORT_ISP_ACTIVE, &dest_ha->dpc_flags) ||
+			(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 dpc flags "
+			    "= 0x%lx\n",
+			    dest_ha->host_no,
+			    fcport->loop_id,
+			    atomic_read(&fcport->state),
+			    dest_ha->loop_state,
+			    atomic_read(&dest_ha->loop_down_timer),
+			    dest_ha->dpc_flags));
+
+			qla2x00_extend_timeout(sp->cmd, EXTEND_CMD_TIMEOUT);
+			add_to_retry_queue(vis_ha, sp);
+
+			continue;
+		} 
+
+		/*
+		 * If this request's lun is suspended then put the request on
+		 * the  scsi_retry queue. 
+		 */
+	 	if (!(sp->flags & SRB_IOCTL) &&
+		    sp->lun_queue->q_state == LUN_STATE_WAIT) {
+			DEBUG3(printk("scsi(%ld): lun wait state - pid=%ld, "
+			    "opcode=%d, allowed=%d, retries=%d\n",
+			    dest_ha->host_no,
+			    sp->cmd->serial_number,
+			    sp->cmd->cmnd[0],
+			    sp->cmd->allowed,
+			    sp->cmd->retries));
+				
+			add_to_scsi_retry_queue(vis_ha, sp);
+
+			continue;
+		}
+
+		sp->lun_queue->io_cnt++;
+
+		rval = qla2x00_start_scsi(sp);
+		if (rval != QLA_SUCCESS) {
+			/* Place request back on top of device queue */
+			/* add to the top of queue */
+			add_to_pending_queue_head(vis_ha, sp);
+
+			sp->lun_queue->io_cnt--;
+		}
+	}
+
+#if defined(ISP2300)
+	/* Process response_queue if ZIO support is enabled*/ 
+	qla2x00_process_response_queue_in_zio_mode(vis_ha);
+
+	if (dest_ha && dest_ha->flags.failover_enabled)
+		qla2x00_process_response_queue_in_zio_mode(dest_ha);
+#endif	
+}
+
+/*
+ *  qla2x00_flush_failover_queue
+ *	Return cmds of a "specific" LUN from the failover queue with
+ *      DID_BUS_BUSY status.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *      q  = lun queue.
+ *
+ * Context:
+ *	Interrupt context.
+ */
+void
+qla2x00_flush_failover_q(scsi_qla_host_t *ha, os_lun_t *q)
+{
+	srb_t  *sp;
+	struct list_head *list, *temp;
+	unsigned long flags;
+
+	spin_lock_irqsave(&ha->list_lock, flags);
+	list_for_each_safe(list, temp, &ha->failover_queue) {
+		sp = list_entry(list, srb_t, list);
+		/*
+		 * If request originated from the same lun_q then delete it
+		 * from the failover queue 
+		 */
+		if (q == sp->lun_queue) {
+			/* Remove srb from failover queue. */
+			__del_from_failover_queue(ha,sp);
+			sp->cmd->result = DID_BUS_BUSY << 16;
+			sp->cmd->host_scribble = (unsigned char *) NULL;
+			__add_to_done_queue(ha, sp);
+		}
+	}
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+
+/*
+ * qla2x00_reset_lun_fo_counts
+ *	Reset failover retry counts
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Interrupt context.
+ */
+void 
+qla2x00_reset_lun_fo_counts(scsi_qla_host_t *ha, os_lun_t *lq) 
+{
+	srb_t		*tsp;
+	os_lun_t	*orig_lq;
+	struct list_head *list;
+	unsigned long	flags ;
+
+	spin_lock_irqsave(&ha->list_lock, flags);
+	/*
+	 * the pending queue.
+	 */
+	list_for_each(list,&ha->pending_queue) {
+		tsp = list_entry(list, srb_t, list);
+		orig_lq = tsp->lun_queue;
+		if (orig_lq == lq)
+			tsp->fo_retry_cnt = 0;
+	}
+	/*
+	 * the retry queue.
+	 */
+	list_for_each(list,&ha->retry_queue) {
+		tsp = list_entry(list, srb_t, list);
+		orig_lq = tsp->lun_queue;
+		if (orig_lq == lq)
+			tsp->fo_retry_cnt = 0;
+	}
+
+	/*
+	 * the done queue.
+	 */
+	list_for_each(list, &ha->done_queue) {
+		tsp = list_entry(list, srb_t, list);
+		orig_lq = tsp->lun_queue;
+		if (orig_lq == lq)
+			tsp->fo_retry_cnt = 0;
+	}
+	spin_unlock_irqrestore(&ha->list_lock, flags);
+}
+
+/*
+ *  qla2x00_failover_cleanup
+ *	Cleanup queues after a failover.
+ *
+ * Input:
+ *	sp = command pointer
+ *
+ * Context:
+ *	Interrupt context.
+ */
+static void
+qla2x00_failover_cleanup(srb_t *sp) 
+{
+	sp->cmd->result = DID_BUS_BUSY << 16;
+	sp->cmd->host_scribble = (unsigned char *) NULL;
+
+	/* turn-off all failover flags */
+	sp->flags = sp->flags & ~(SRB_RETRY|SRB_FAILOVER|SRB_FO_CANCEL);
+}
+
+
+/*
+ *  qla2x00_process_failover
+ *	Process any command on the failover queue.
+ *
+ * Input:
+ *	ha = adapter block pointer.
+ *
+ * Context:
+ *	Interrupt context.
+ */
+static void
+qla2x00_process_failover(scsi_qla_host_t *ha) 
+{
+
+	os_tgt_t	*tq;
+	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;
+
+	DEBUG(printk("scsi(%ld): Processing failover for hba.\n", ha->host_no));
+
+	/*
+	 * 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);
+
+	/*
+	 * Get first entry to find our visible adapter.  We could never get
+	 * here if the list is empty
+	 */
+	list = ha->failover_queue.next;
+	sp = list_entry(list, srb_t, list);
+	vis_ha = (scsi_qla_host_t *) sp->cmd->device->host->hostdata;
+	list_for_each_safe(list, temp, &ha->failover_queue) {
+		sp = list_entry(list, srb_t, list);
+
+		tq = sp->tgt_queue;
+		lq = sp->lun_queue;
+		fcport = lq->fclun->fcport;
+
+		/* Remove srb from failover queue. */
+		__del_from_failover_queue(ha, sp);
+
+		DEBUG2(printk("%s(): pid %ld retrycnt=%d\n",
+		    __func__, sp->cmd->serial_number, sp->cmd->retries));
+
+		/*** 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) != FCS_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.
+			 */
+			printk(KERN_INFO
+			    "scsi(%ld): Ran out of paths - pid %ld\n",
+			    ha->host_no, 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);
+
+	for (t = 0; t < vis_ha->max_targets; t++) {
+		if ((tq = vis_ha->otgt[t]) == NULL)
+			continue;
+		for (l = 0; l < vis_ha->max_luns; l++) {
+			if ((lq = (os_lun_t *) tq->olun[l]) == NULL)
+				continue;
+
+			if( test_and_clear_bit(LUN_MPIO_BUSY, &lq->q_flag) ) {
+				/* EMPTY */
+				DEBUG(printk("scsi(%ld): remove suspend for "
+				    "lun %d\n", ha->host_no, lq->fclun->lun));
+			}
+		}
+	}
+
+	//qla2x00_restart_queues(ha,TRUE);
+	qla2x00_restart_queues(ha, FALSE);
+
+	DEBUG(printk("%s() - done", __func__));
+}
+
+/**************************************************************************
+*   qla2x00_check_tgt_status
+*
+* Description:
+*     Checks to see if the target or loop is down.
+*
+* Input:
+*     cmd - pointer to Scsi cmd structure
+*
+* Returns:
+*   1 - if target is present
+*   0 - if target is not present
+*
+**************************************************************************/
+int
+qla2x00_check_tgt_status(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
+{
+	os_lun_t        *lq;
+	uint32_t         b, t, l;
+	fc_port_t	*fcport;
+
+	/* Generate LU queue on bus, target, LUN */
+	b = cmd->device->channel;
+	t = cmd->device->id;
+	l = cmd->device->lun;
+
+	if ((lq = GET_LU_Q(ha,t,l)) == NULL) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	fcport = lq->fclun->fcport;
+
+	if (TGT_Q(ha, t) == NULL ||
+	    l >= ha->max_luns ||
+	    (atomic_read(&fcport->state) == FCS_DEVICE_DEAD) ||
+	    ha->loop_state == LOOP_DEAD ||
+	    (!atomic_read(&ha->loop_down_timer) &&
+		ha->loop_state == LOOP_DOWN) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    ha->loop_state != LOOP_READY) {
+
+		DEBUG(printk(KERN_INFO
+		    "scsi(%ld:%2d:%2d:%2d): %s connection is down\n",
+		    ha->host_no,
+		    b, t, l,
+		    __func__));
+
+		cmd->result = DID_NO_CONNECT << 16;
+		return (QLA_FUNCTION_FAILED);
+	}
+	return (QLA_SUCCESS);
+}
+
+/**************************************************************************
+*   qla2x00_check_port_status
+*
+* Description:
+*     Checks to see if the port or loop is down.
+*
+* Input:
+*     fcport - pointer to fc_port_t structure.
+*
+* Returns:
+*   1 - if port is present
+*   0 - if port is not present
+*
+**************************************************************************/
+int
+qla2x00_check_port_status(scsi_qla_host_t *ha, fc_port_t *fcport)
+{
+	if (fcport == NULL) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
+	    ha->loop_state == LOOP_DEAD) {
+		return (QLA_FUNCTION_FAILED);
+	}
+
+	if ((atomic_read(&fcport->state) != FCS_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) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    ha->loop_state != LOOP_READY) {
+
+		DEBUG(printk(KERN_INFO
+		    "scsi(%ld): Connection is down. fcport=%p.\n",
+		    ha->host_no, fcport));
+
+		return (QLA_BUSY);
+	}
+
+	return (QLA_SUCCESS);
+}
+
+/**
+ * qla2x00_module_init - Module initialization.
+ **/
+static int __init
+qla2x00_module_init(void)
+{
+	DEBUG2(printk("DEBUG: qla2x00_set_info() starts at address = %p\n",
+	    qla2x00_set_info));
+	printk(KERN_INFO
+	    "qla2x00_set_info() starts at address = %p\n",
+	    qla2x00_set_info);
+
+	/* Derive version string */
+	strcpy(qla2x00_version_str, QLA2100_VERSION);
+#if DEBUG_QLA2100
+	strcat(qla2x00_version_str, "-debug");
+#endif
+	if (ql2xfailover)
+		strcat(qla2x00_version_str, "-fo");
+
+	return (pci_module_init(&qla2x00_pci_driver));
+}
+
+
+/**
+ * qla2x00_module_exit - Module cleanup.
+ **/
+static void __exit
+qla2x00_module_exit(void)
+{
+	pci_unregister_driver(&qla2x00_pci_driver);
+}
+
+module_init(qla2x00_module_init);
+module_exit(qla2x00_module_exit);
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_os.h 350-qlogic/drivers/scsi/qla2xxx/qla_os.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_os.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_os.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,127 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.x
+ * Copyright (C) 2003 Qlogic Corporation
+ * (www.qlogic.com)
+ *
+ * Portions (C) Arjan van de Ven <arjanv@redhat.com> for Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ ******************************************************************************/
+
+#ifndef __QLA_OS_H
+#define __QLA_OS_H
+
+/*
+ * Driver debug definitions.
+ */
+/* #define QL_DEBUG_LEVEL_1  */ /* Output register accesses to COM1 */
+/* #define QL_DEBUG_LEVEL_2  */ /* Output error msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_3  */ /* Output function trace msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_4  */ /* Output NVRAM trace msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_5  */ /* Output ring trace msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_6  */ /* Output WATCHDOG timer trace to COM1 */
+/* #define QL_DEBUG_LEVEL_7  */ /* Output RISC load trace msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_8  */ /* Output ring saturation msgs to COM1 */
+/* #define QL_DEBUG_LEVEL_9  */ /* Output IOCTL trace msgs */
+/* #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 */
+/*
+ *  Local Macro Definitions.
+ */
+#if defined(QL_DEBUG_LEVEL_1)  || defined(QL_DEBUG_LEVEL_2) || \
+    defined(QL_DEBUG_LEVEL_3)  || defined(QL_DEBUG_LEVEL_4) || \
+    defined(QL_DEBUG_LEVEL_5)  || defined(QL_DEBUG_LEVEL_6) || \
+    defined(QL_DEBUG_LEVEL_7)  || defined(QL_DEBUG_LEVEL_8) || \
+    defined(QL_DEBUG_LEVEL_9)  || defined(QL_DEBUG_LEVEL_10) || \
+    defined(QL_DEBUG_LEVEL_11) || defined(QL_DEBUG_LEVEL_12)
+    #define QL_DEBUG_ROUTINES
+#endif
+
+#include <linux/config.h>
+#ifndef QLA_MODVERSION
+#define __NO_VERSION__
+#endif
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/delay.h>
+#include <linux/timer.h>
+#include <linux/sched.h>
+#include <linux/pci.h>
+#include <linux/proc_fs.h>
+#include <linux/blkdev.h>
+#include <linux/interrupt.h>
+#include <linux/stat.h>
+#include <linux/slab.h>
+#define __KERNEL_SYSCALLS__
+#include <linux/unistd.h>
+#include <linux/smp_lock.h>
+#include <linux/bio.h>
+#include <linux/moduleparam.h>
+
+#include <asm/system.h>
+
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/segment.h>
+#include <asm/byteorder.h>
+#include <asm/pgtable.h>
+
+#include <linux/ioctl.h>
+#include <asm/uaccess.h>
+
+#include "scsi.h"
+#include "hosts.h"
+
+#include <scsi/scsicam.h>
+#include <scsi/scsi_ioctl.h>
+
+#if defined(FC_IP_SUPPORT)
+#include <linux/ip.h>
+#include <linux/if_arp.h>
+#include <linux/skbuff.h>
+#endif
+
+
+//TODO Fix this!!!
+/*
+* String arrays
+*/
+#define LINESIZE    256
+#define MAXARGS      26
+
+/***********************************************************************
+* We use the struct scsi_pointer structure that's included with each 
+* command SCSI_Cmnd as a scratchpad. 
+*
+* SCp is defined as follows:
+*  - SCp.ptr  -- > pointer to the SRB
+*  - SCp.this_residual  -- > HBA completion status for ioctl code. 
+*
+* Cmnd->host_scribble --> Used to hold the hba actived handle (1..255).
+***********************************************************************/
+#define	CMD_SP(Cmnd)		((Cmnd)->SCp.ptr)
+#define CMD_COMPL_STATUS(Cmnd)  ((Cmnd)->SCp.this_residual)
+/* Additional fields used by ioctl passthru */
+#define CMD_RESID_LEN(Cmnd)	((Cmnd)->SCp.buffers_residual)
+#define CMD_SCSI_STATUS(Cmnd)	((Cmnd)->SCp.Status)
+#define CMD_ACTUAL_SNSLEN(Cmnd)	((Cmnd)->SCp.Message)
+#define CMD_ENTRY_STATUS(Cmnd)	((Cmnd)->SCp.have_data_in)
+
+#endif
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_settings.h 350-qlogic/drivers/scsi/qla2xxx/qla_settings.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_settings.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_settings.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,74 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+/*
+ * Compile time Options:
+ *     0 - Disable and 1 - Enable
+ */
+#define DEBUG_QLA2100		0	/* For Debug of qla2x00 */
+
+#define MEMORY_MAPPED_IO	1
+#define STOP_ON_ERROR		0	/* Stop on aborts and resets  */
+#define STOP_ON_RESET		0
+#define STOP_ON_ABORT		0
+#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 */
+
+#define VSA			0	/* Volume Set Addressing */
+
+/* Failover options */
+#define MPIO_SUPPORT		0
+#define MAX_RECOVERYTIME	10	/*
+					 * Max suspend time for a lun recovery
+					 * time
+					 */
+#define MAX_FAILBACKTIME	5	/* Max suspend time before fail back */
+
+#define QLA_CMD_TIMER_DELTA	3
+
+/* 
+ * When a lun is suspended for the "Not Ready" condition then it will suspend
+ * the lun for increments of 6 sec delays.  SUSPEND_COUNT is that count.
+ */
+#define SUSPEND_COUNT		10	/* 6 secs * 10 retries = 60 secs */
+
+/*
+ * Defines the time in seconds that the driver extends the command timeout to
+ * get around the problem where the mid-layer only allows 5 retries for
+ * commands that return BUS_BUSY
+ */
+#define EXTEND_CMD_TIMEOUT	60
+
+#define MAX_RETRIES_OF_ISP_ABORT	5
+
+/* Max time to wait for the loop to be in LOOP_READY state */
+#define MAX_LOOP_TIMEOUT	(60 * 5)
+#define EH_ACTIVE		1	/* Error handler active */
+
+/*
+ * Some vendor subsystems do not recover properly after a device reset.  Define
+ * the following to force a logout after a successful device reset.
+ */
+#undef LOGOUT_AFTER_DEVICE_RESET
+
+#include "qla_version.h"
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_sup.c 350-qlogic/drivers/scsi/qla2xxx/qla_sup.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_sup.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_sup.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,557 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+static uint16_t qla2x00_nvram_request(scsi_qla_host_t *, uint32_t);
+
+uint8_t qla2x00_read_flash_byte(scsi_qla_host_t *, uint32_t);
+static void qla2x00_write_flash_byte(scsi_qla_host_t *, uint32_t, uint8_t);
+static uint8_t qla2x00_poll_flash(scsi_qla_host_t *ha,
+		uint32_t addr, uint8_t poll_data, uint8_t mid);
+static uint8_t qla2x00_program_flash_address(scsi_qla_host_t *ha,
+		uint32_t addr, uint8_t data, uint8_t mid);
+static uint8_t qla2x00_erase_flash_sector(scsi_qla_host_t *ha,
+		uint32_t addr, uint32_t sec_mask, uint8_t mid);
+
+uint8_t qla2x00_get_flash_manufacturer(scsi_qla_host_t *ha);
+uint16_t qla2x00_get_flash_version(scsi_qla_host_t *);
+uint16_t qla2x00_get_flash_image(scsi_qla_host_t *ha, uint8_t *image);
+uint16_t qla2x00_set_flash_image(scsi_qla_host_t *ha, uint8_t *image);
+
+
+/*
+ * NVRAM support routines
+ */
+
+/**
+ * qla2x00_get_nvram_word() - Calculates word position in NVRAM and calls the
+ *	request routine to get the word from NVRAM.
+ * @ha: HA context
+ * @addr: Address in NVRAM to read
+ *
+ * Returns the word read from nvram @addr.
+ */
+uint16_t
+qla2x00_get_nvram_word(scsi_qla_host_t *ha, uint32_t addr)
+{
+	uint16_t	data;
+	uint32_t	nv_cmd;
+
+	ENTER(__func__);
+
+	nv_cmd = addr << 16;
+	nv_cmd |= NV_READ_OP;
+	data = qla2x00_nvram_request(ha, nv_cmd);
+
+	DEBUG4(printk("%s(%ld): NVRAM[%lx]=%lx.\n",
+	    __func__, ha->host_no, (u_long)addr, (u_long)data));
+
+	LEAVE(__func__);
+
+	return (data);
+}
+
+/**
+ * qla2x00_nvram_request() - Sends read command to NVRAM and gets data from
+ *	NVRAM.
+ * @ha: HA context
+ * @nv_cmd: NVRAM command
+ *
+ * Bit definitions for NVRAM command:
+ *
+ *	Bit 26     = start bit
+ *	Bit 25, 24 = opcode
+ *	Bit 23-16  = address
+ *	Bit 15-0   = write data
+ *
+ * Returns the word read from nvram @addr.
+ */
+static uint16_t
+qla2x00_nvram_request(scsi_qla_host_t *ha, uint32_t nv_cmd)
+{
+	uint8_t		cnt;
+	device_reg_t	*reg = ha->iobase;
+	uint16_t	data = 0;
+	uint16_t	reg_data;
+
+	/* Send command to NVRAM. */
+	nv_cmd <<= 5;
+	for (cnt = 0; cnt < 11; cnt++) {
+		if (nv_cmd & BIT_31)
+			qla2x00_nv_write(ha, NVR_DATA_OUT);
+		else
+			qla2x00_nv_write(ha, 0);
+		nv_cmd <<= 1;
+	}
+
+	/* Read data from NVRAM. */
+	for (cnt = 0; cnt < 16; cnt++) {
+		WRT_REG_WORD(&reg->nvram, NVR_SELECT | NVR_CLOCK);
+		NVRAM_DELAY();
+		data <<= 1;
+		reg_data = RD_REG_WORD(&reg->nvram);
+		if (reg_data & NVR_DATA_IN)
+			data |= BIT_0;
+		WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+		NVRAM_DELAY();
+	}
+
+	/* Deselect chip. */
+	WRT_REG_WORD(&reg->nvram, NVR_DESELECT);
+	NVRAM_DELAY();
+
+	return (data);
+}
+
+/**
+ * qla2x00_nv_write() - Clean NVRAM operations.
+ * @ha: HA context
+ */
+void
+qla2x00_nv_deselect(scsi_qla_host_t *ha)
+{
+	device_reg_t *reg = ha->iobase;
+
+	WRT_REG_WORD(&reg->nvram, NVR_DESELECT);
+	NVRAM_DELAY();
+}
+
+/**
+ * qla2x00_nv_write() - Prepare for NVRAM read/write operation.
+ * @ha: HA context
+ * @data: Serial interface selector
+ */
+void
+qla2x00_nv_write(scsi_qla_host_t *ha, uint16_t data)
+{
+	device_reg_t *reg = ha->iobase;
+
+	WRT_REG_WORD(&reg->nvram, data | NVR_SELECT);
+	NVRAM_DELAY();
+	WRT_REG_WORD(&reg->nvram, data | NVR_SELECT | NVR_CLOCK);
+	NVRAM_DELAY();
+	WRT_REG_WORD(&reg->nvram, data | NVR_SELECT);
+	NVRAM_DELAY();
+}
+
+/*
+ * Flash support routines
+ */
+
+/**
+ * qla2x00_flash_enable() - Setup flash for reading and writing.
+ * @ha: HA context
+ */
+void
+qla2x00_flash_enable(scsi_qla_host_t *ha)
+{
+	uint16_t	data;
+	device_reg_t	*reg = ha->iobase;
+
+	data = RD_REG_WORD(&reg->ctrl_status);
+	data |= CSR_FLASH_ENABLE;
+	WRT_REG_WORD(&reg->ctrl_status, data);
+}
+
+/**
+ * qla2x00_flash_disable() - Disable flash and allow RISC to run.
+ * @ha: HA context
+ */
+void
+qla2x00_flash_disable(scsi_qla_host_t *ha)
+{
+	uint16_t	data;
+	device_reg_t	*reg = ha->iobase;
+
+	data = RD_REG_WORD(&reg->ctrl_status);
+	data &= ~(CSR_FLASH_ENABLE);
+	WRT_REG_WORD(&reg->ctrl_status, data);
+}
+
+/**
+ * qla2x00_read_flash_byte() - Reads a byte from flash
+ * @ha: HA context
+ * @addr: Address in flash to read
+ *
+ * A word is read from the chip, but, only the lower byte is valid.
+ *
+ * Returns the byte read from flash @addr.
+ */
+uint8_t
+qla2x00_read_flash_byte(scsi_qla_host_t *ha, uint32_t addr)
+{
+	uint16_t	data;
+	uint16_t	bank_select;
+	device_reg_t	*reg = ha->iobase;
+
+	/* Setup bit 16 of flash address. */
+	bank_select = RD_REG_WORD(&reg->ctrl_status);
+	if ((addr & BIT_16) && ((bank_select & CSR_FLASH_64K_BANK) == 0)) {
+		bank_select |= CSR_FLASH_64K_BANK;
+		WRT_REG_WORD(&reg->ctrl_status, bank_select);
+	} else if (((addr & BIT_16) == 0) &&
+	    (bank_select & CSR_FLASH_64K_BANK)) {
+		bank_select &= ~(CSR_FLASH_64K_BANK);
+		WRT_REG_WORD(&reg->ctrl_status, bank_select);
+	}
+	WRT_REG_WORD(&reg->flash_address, (uint16_t)addr);
+	data = qla2x00_debounce_register(&reg->flash_data);
+
+	return ((uint8_t)data);
+}
+
+/**
+ * qla2x00_write_flash_byte() - Write a byte to flash
+ * @ha: HA context
+ * @addr: Address in flash to write
+ * @data: Data to write
+ */
+static void
+qla2x00_write_flash_byte(scsi_qla_host_t *ha, uint32_t addr, uint8_t data)
+{
+	uint16_t	bank_select;
+	device_reg_t	*reg = ha->iobase;
+
+	/* Setup bit 16 of flash address. */
+	bank_select = RD_REG_WORD(&reg->ctrl_status);
+	if ((addr & BIT_16) && ((bank_select & CSR_FLASH_64K_BANK) == 0)) {
+		bank_select |= CSR_FLASH_64K_BANK;
+		WRT_REG_WORD(&reg->ctrl_status, bank_select);
+	} else if (((addr & BIT_16) == 0) &&
+	    (bank_select & CSR_FLASH_64K_BANK)) {
+		bank_select &= ~(CSR_FLASH_64K_BANK);
+		WRT_REG_WORD(&reg->ctrl_status, bank_select);
+	}
+	WRT_REG_WORD(&reg->flash_address, (uint16_t)addr);
+	WRT_REG_WORD(&reg->flash_data, (uint16_t)data);
+}
+
+/**
+ * qla2x00_poll_flash() - Polls flash for completion.
+ * @ha: HA context
+ * @addr: Address in flash to poll
+ * @poll_data: Data to be polled
+ * @mid: Flash manufacturer ID
+ *
+ * This function polls the device until bit 7 of what is read matches data
+ * bit 7 or until data bit 5 becomes a 1.  If that hapens, the flash ROM timed
+ * out (a fatal error).  The flash book recommeds reading bit 7 again after
+ * reading bit 5 as a 1.
+ *
+ * Returns 0 on success, else non-zero.
+ */
+static uint8_t
+qla2x00_poll_flash(scsi_qla_host_t *ha,
+    uint32_t addr, uint8_t poll_data, uint8_t mid)
+{
+	uint8_t		status;
+	uint8_t		flash_data;
+	uint32_t	cnt;
+	int		failed_pass;
+
+	status = 1;
+	failed_pass = 1;
+
+	/* Wait for 30 seconds for command to finish. */
+	poll_data &= BIT_7;
+	for (cnt = 3000000; cnt; cnt--) {
+		flash_data = qla2x00_read_flash_byte(ha, addr);
+		if ((flash_data & BIT_7) == poll_data) {
+			status = 0;
+			break;
+		}
+
+		if (mid != 0x40 && mid != 0xda) {
+			if (flash_data & BIT_5)
+				failed_pass--;
+			if (failed_pass < 0)
+				break;
+		}
+		udelay(10);
+		barrier();
+	}
+	return (status);
+}
+
+/**
+ * qla2x00_program_flash_address() - Programs a flash address
+ * @ha: HA context
+ * @addr: Address in flash to program
+ * @data: Data to be written in flash
+ * @mid: Flash manufacturer ID
+ *
+ * Returns 0 on success, else non-zero.
+ */
+static uint8_t
+qla2x00_program_flash_address(scsi_qla_host_t *ha,
+    uint32_t addr, uint8_t data, uint8_t mid)
+{
+	/* Write Program Command Sequence */
+	qla2x00_write_flash_byte(ha, 0x5555, 0xaa);
+	qla2x00_write_flash_byte(ha, 0x2aaa, 0x55);
+	qla2x00_write_flash_byte(ha, 0x5555, 0xa0);
+	qla2x00_write_flash_byte(ha, addr, data);
+
+	/* Wait for write to complete. */
+	return (qla2x00_poll_flash(ha, addr, data, mid));
+}
+
+/**
+ * qla2x00_erase_flash_sector() - Erase a flash sector.
+ * @ha: HA context
+ * @addr: Flash sector to erase
+ * @sec_mask: Sector address mask
+ * @mid: Flash manufacturer ID
+ *
+ * Returns 0 on success, else non-zero.
+ */
+static uint8_t
+qla2x00_erase_flash_sector(scsi_qla_host_t *ha,
+    uint32_t addr, uint32_t sec_mask, uint8_t mid)
+{
+	/* Individual Sector Erase Command Sequence */
+	qla2x00_write_flash_byte(ha, 0x5555, 0xaa);
+	qla2x00_write_flash_byte(ha, 0x2aaa, 0x55);
+	qla2x00_write_flash_byte(ha, 0x5555, 0x80);
+	qla2x00_write_flash_byte(ha, 0x5555, 0xaa);
+	qla2x00_write_flash_byte(ha, 0x2aaa, 0x55);
+
+	if (mid == 0xda)
+		qla2x00_write_flash_byte(ha, addr & sec_mask, 0x10);
+	else
+		qla2x00_write_flash_byte(ha, addr & sec_mask, 0x30);
+
+	udelay(150);
+
+	/* Wait for erase to complete. */
+	return (qla2x00_poll_flash(ha, addr, 0x80, mid));
+}
+
+/**
+ * qla2x00_get_flash_manufacturer() - Read manufacturer ID from flash chip.
+ * @ha: HA context
+ *
+ * Returns the manufacturer's ID read from the flash chip.
+ */
+uint8_t
+qla2x00_get_flash_manufacturer(scsi_qla_host_t *ha)
+{
+	uint8_t	manuf_id;
+
+	qla2x00_write_flash_byte(ha, 0x5555, 0xaa);
+	qla2x00_write_flash_byte(ha, 0x2aaa, 0x55);
+	qla2x00_write_flash_byte(ha, 0x5555, 0x90);
+	manuf_id = qla2x00_read_flash_byte(ha, 0x0001);
+
+	return (manuf_id);
+}
+
+/**
+ * qla2x00_get_flash_version() - Read version information from flash.
+ * @ha: HA context
+ *
+ * Returns QLA_SUCCESS on successful retrieval of flash version.
+ */
+uint16_t
+qla2x00_get_flash_version(scsi_qla_host_t *ha)
+{
+	uint16_t	ret = QLA_SUCCESS;
+	uint32_t	loop_cnt = 1;  /* this is for error exit only */
+	uint32_t	pcir_adr;
+
+	ENTER(__func__);
+
+	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)) {
+			/* No signature */
+			DEBUG2(printk("scsi(%ld): No matching FLASH "
+			    "signature.\n", ha->host_no));
+			ret = QLA_FUNCTION_FAILED;
+			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("%s(): PCI data struct not found. "
+			    "pcir_adr=%x.\n",
+			    __func__, pcir_adr));
+			ret = QLA_FUNCTION_FAILED;
+			break;
+		}
+
+	} while (--loop_cnt);
+	qla2x00_flash_disable(ha);
+
+	LEAVE(__func__);
+
+	return (ret);
+}
+
+/**
+ * qla2x00_get_flash_image() - Read image from flash chip.
+ * @ha: HA context
+ * @image: Buffer to receive flash image
+ *
+ * Returns 0 on success, else non-zero.
+ */
+uint16_t
+qla2x00_get_flash_image(scsi_qla_host_t *ha, uint8_t *image)
+{
+	uint32_t	addr;
+	uint32_t	midpoint;
+	uint8_t		*data;
+	device_reg_t	*reg = ha->iobase;
+
+	midpoint = FLASH_IMAGE_SIZE / 2;
+
+	qla2x00_flash_enable(ha);
+	WRT_REG_WORD(&reg->nvram, 0);
+	for (addr = 0, data = image; addr < FLASH_IMAGE_SIZE; addr++, data++) {
+		if (addr == midpoint)
+			WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+
+		*data = qla2x00_read_flash_byte(ha, addr);
+	}
+	qla2x00_flash_disable(ha);
+
+	return (0);
+}
+
+/**
+ * qla2x00_set_flash_image() - Write image to flash chip.
+ * @ha: HA context
+ * @image: Source image to write to flash
+ *
+ * Returns 0 on success, else non-zero.
+ */
+uint16_t
+qla2x00_set_flash_image(scsi_qla_host_t *ha, uint8_t *image)
+{
+	uint16_t	status;
+	uint32_t	addr;
+	uint32_t	midpoint;
+	uint32_t	sec_mask;
+	uint32_t	rest_addr;
+	uint8_t		mid;
+	uint8_t		sec_number;
+	uint8_t		data;
+	device_reg_t	*reg = ha->iobase;
+
+	status = 0;
+	sec_number = 0;
+
+	/* Reset ISP chip. */
+	WRT_REG_WORD(&reg->ctrl_status, CSR_ISP_SOFT_RESET);
+
+	qla2x00_flash_enable(ha);
+	do {	/* Loop once to provide quick error exit */
+		/* Structure of flash memory based on manufacturer */
+		mid = qla2x00_get_flash_manufacturer(ha);
+		if (mid == 0x6d) {
+			// Am29LV001 part
+			rest_addr = 0x1fff;
+			sec_mask = 0x1e000;
+		}
+		else if (mid == 0x40) {
+			// Mostel v29c51001 part
+			rest_addr = 0x1ff;
+			sec_mask = 0x1fe00;
+		}
+		else if (mid == 0xbf) {
+			// SST39sf10 part
+			rest_addr = 0xfff;
+			sec_mask = 0x1f000;
+		}
+		else if (mid == 0xda) {
+			// Winbond W29EE011 part
+			rest_addr = 0x7f;
+			sec_mask = 0x1ff80;
+			addr = 0;
+			if (qla2x00_erase_flash_sector(ha,
+			    addr, sec_mask, mid)) {
+				status = 1;
+				break;
+			}
+		}
+		else {
+			// Am29F010 part
+			rest_addr = 0x3fff;
+			sec_mask = 0x1c000;
+		}
+
+		midpoint = FLASH_IMAGE_SIZE / 2;
+		for (addr = 0; addr < FLASH_IMAGE_SIZE; addr++) {
+			data = *image++;
+			/* Are we at the beginning of a sector? */
+			if (!(addr & rest_addr)) {
+				if (addr == midpoint)
+					WRT_REG_WORD(&reg->nvram, NVR_SELECT);
+
+				/* Then erase it */
+				if (qla2x00_erase_flash_sector(ha,
+				    addr, sec_mask, mid)) {
+					status = 1;
+					break;
+				}
+
+				sec_number++;
+			}
+			if (mid == 0x6d) {
+				if (sec_number == 1 &&
+				    (addr == (rest_addr - 1))) {
+					rest_addr = 0x0fff;
+					sec_mask   = 0x1f000;
+				}
+				else if (sec_number == 3 && (addr & 0x7ffe)) {
+					rest_addr = 0x3fff;
+					sec_mask   = 0x1c000;
+				}
+			}
+
+			if (qla2x00_program_flash_address(ha,
+			    addr, data, mid)) {
+				status = 1;
+				break;
+			}
+		}
+	} while (0);
+	qla2x00_flash_disable(ha);
+
+	return (status);
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_vendor.c 350-qlogic/drivers/scsi/qla2xxx/qla_vendor.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_vendor.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_vendor.c	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,193 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+/*
+ * vendor specific op codes.
+*/
+#define	UCSCSI_DCMD		0x20 /* vendor specific command */
+#define DAC_CDB_LEN		12
+#define DAC_SENSE_LEN		64
+
+#define DACMD_WRITE_CONF_ONDISK	0x4B
+#define	DACMD_WRITE_CONFIG	0x06
+#define	DACMD_WRITE_CONF2	0x3C
+#define	DACMD_WRITE_CONFLABEL	0x49 /* Write configuration label */
+#define	DACMD_WRITE_CONFIG_V3x	0x4F
+#define	DACMD_ADD_CONFIG_V2x	0x18
+#define	DACMD_ADD_CONFIG_V3x	0x4C
+#define	DACMD_STORE_IMAGE	0x21
+#define	DACMD_ADD_CAPACITY	0x2A /* add physical drives to existing array */
+#define	DACMD_WRITE_IOPORT	0x3A /* write port B */
+#define	DACMD_S2S_WRITEFULLCONF		0x60 /* write full configuration */
+#define	DACMD_S2S_ADDFULLCONF		0x62 /* add   full configuration */
+#define	DACMD_S2S_WRITELUNMAP_OLD	0x58 /* write LUN map information */
+#define DACMD_S2S_WRITELUNMAP		0xD2	/* Write LUN MAP Information */
+#define	DACMD_S2S_WRITE_IOPORT	0x66 /* write expanded IO port */
+#define	DACMD_WRITE_V3x		0x34 /* write data from plain memory */
+#define	DACMD_S2S_WRITESIG	0x4D /* write signature information */
+
+#if !defined(s08bits)
+#define	s08bits	char
+#define	s16bits	short
+#define	s32bits	int
+#define	u08bits	unsigned s08bits
+#define	u16bits	unsigned s16bits
+#define	u32bits	unsigned s32bits
+#endif
+
+typedef struct dac_command
+{
+        u08bits	mb_Command;	/* Mail Box register 0	*/
+        u08bits	mb_CmdID;	/* Mail Box register 1	*/
+        u08bits	mb_ChannelNo;	/* Mail Box register 2	*/
+        u08bits	mb_TargetID;	/* Mail Box register 3	*/
+        u08bits	mb_DevState;	/* Mail Box register 4	*/
+        u08bits	mb_MailBox5;	/* Mail Box register 5	*/
+        u08bits	mb_MailBox6;	/* Mail Box register 6	*/
+        u08bits	mb_SysDevNo;	/* Mail Box register 7	*/
+        u32bits	mb_Datap;	/* Mail Box register 8-B */
+        u08bits	mb_MailBoxC;	/* Mail Box register C	*/
+        u08bits	mb_StatusID;	/* Mail box register D	*/
+        u16bits	mb_Status;	/* Mail Box Register E,F */
+}
+dac_command_t;
+
+typedef struct	dac_scdb
+{
+        u08bits db_ChannelTarget;	/* ChannelNo 7..4 & Target 3..0 */
+        u08bits db_DATRET;		/* different bits, see below */
+        u16bits	db_TransferSize;	/* Request/done size in bytes */
+        u32bits db_PhysDatap;		/* Physical addr in host memory	*/
+        u08bits db_CdbLen;		/* 6, 10 or 12			*/
+        u08bits db_SenseLen;		/* If returned from DAC (<= 64)	*/
+        u08bits	db_Cdb[DAC_CDB_LEN];	/* The CDB itself		*/
+        u08bits	db_SenseData[DAC_SENSE_LEN];/* Result of request sense	*/
+        u08bits db_StatusIn;		/* SCSI status returned		*/
+        u08bits	db_Reserved1;
+}
+dac_scdb_t;
+
+typedef	struct dga_scdb
+{
+        u08bits	dsc_osreq[1024];	/* OS related buffer:sizeof(mdac_req_t) */
+
+        u08bits	dsc_familyctlno;	/* Controller number within family */
+        u08bits	dsc_ctlno;		/* Controller number */
+        u08bits	dsc_chno;		/* Channel number */
+        u08bits	dsc_tgt;		/* target ID */
+
+        u08bits	dsc_lun;		/* Lun ID */
+        u08bits	dsc_rebuildflag;	/* current rebuild flag */
+        u16bits	dsc_status;		/* completion status */
+
+        u08bits	dsc_scsiversion;	/* SCSI protocol version */
+        u08bits	dsc_hostctlno;		/* host system controller number */
+        u16bits	dsc_reqsenseseqno;	/* request sense sequence number */
+
+        u32bits	dsc_events;		/* # events at start */
+
+        u32bits	dsc_pollwaitchan;	/* sleep/wakeup channel */
+        u32bits	dsc_poll;		/* polling value, if =0 op complete */
+
+        struct dga_ctldev *dsc_ctp;	/* pointer back to controller */
+        void *dsc_pdp;	/* pointer back to physical device */
+        void *dsc_ldp;	/* pointer back to logical device */
+        void (*dsc_intr)(void);	/* completion call back function */
+
+        /* all save functions are used in S2S */
+        u08bits	dsc_savedcdb[DAC_CDB_LEN];/* 12 bytes saved CDB from SCSI CDB */
+        u32bits	(*dsc_statsintr)(struct dga_scdb *); /* statistics completion function */
+
+        void (*dsc_savedintr)(void);	/* completion call back function */
+        void *dsc_savedctp;		/* pointer back to controller */
+        u08bits	dsc_savedfamilyctlno;	/* Controller number within family */
+        u08bits	dsc_savedctlno;		/* Controller number */
+        u08bits	dsc_savedchno;		/* Channel number */
+        u08bits	dsc_savedtgt;		/* target ID */
+
+        u08bits	dsc_savedlun;		/* Lun ID */
+        u08bits	dsc_savedcdblen;	/* saved CDB len for SCDB */
+        u08bits	dsc_scanmode;
+        u08bits dsc_pageno;             /* pageno for data > 4K */
+        u32bits	dsc_residue;
+        u32bits	dsc_Reserved4;
+
+        dac_command_t dsc_dcmd;		/* DCMD space, 16 bytes */
+        dac_scdb_t dsc_scdb;		/* SCDB space */
+        u32bits	dsc_EventSeqNo;
+        u32bits	dsc_ReqSenseNo;
+
+        u32bits	dsc_Reserved64[16];	/* leave this for OLD SCO driver bug */
+
+        u08bits	dsc_data[256];		/* Rest is data */
+}
+dga_scdb_t;
+
+/*
+* qla2100_set_scsi_direction
+*      This routine will set the proper direction for vendor specific
+*      commands. 
+*
+*      Note: Vendors should modify this routine to set the proper 
+*      direction of the transfer if they used vendor specific commands.
+*
+* Input:
+*      ha = adapter block pointer.
+*      sp = SCSI Request Block structure pointer.
+*
+* Returns:
+*      0 = success, was able to issue command.
+*/
+void
+qla2x00_set_vend_direction(scsi_qla_host_t *ha,
+    struct scsi_cmnd *cmd, cmd_entry_t *pkt)
+{
+	dga_scdb_t	*dsp = (dga_scdb_t *) cmd;
+
+	if (cmd->data_cmnd[0] == UCSCSI_DCMD) {
+		switch( dsp->dsc_dcmd.mb_Command ) {
+		case DACMD_WRITE_CONF_ONDISK:
+		case DACMD_WRITE_CONFIG:
+		case DACMD_WRITE_CONF2:
+		case DACMD_WRITE_CONFLABEL:
+		case DACMD_WRITE_CONFIG_V3x:
+		case DACMD_ADD_CONFIG_V2x:
+		case DACMD_ADD_CONFIG_V3x:
+		case DACMD_STORE_IMAGE:
+		case DACMD_ADD_CAPACITY:
+		case DACMD_WRITE_IOPORT:
+		case DACMD_S2S_WRITEFULLCONF:
+		case DACMD_S2S_ADDFULLCONF:
+		case DACMD_S2S_WRITELUNMAP_OLD:
+		case DACMD_S2S_WRITELUNMAP:
+		case DACMD_S2S_WRITE_IOPORT:
+		case DACMD_WRITE_V3x:
+		case DACMD_S2S_WRITESIG:
+			pkt->control_flags |= BIT_6;
+			break;
+		default:
+			pkt->control_flags |= BIT_5;
+		}
+	} else
+		pkt->control_flags |= BIT_5;
+}
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_version.h 350-qlogic/drivers/scsi/qla2xxx/qla_version.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_version.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_version.h	2003-10-29 13:58:55.000000000 -0800
@@ -0,0 +1,27 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+/*
+ * Driver version 
+ */
+#define QLA2100_VERSION      "8.00.00b5"
+
+#define QLA_DRIVER_MAJOR_VER	8
+#define QLA_DRIVER_MINOR_VER	0
+#define QLA_DRIVER_PATCH_VER	0
+#define QLA_DRIVER_BETA_VER	5
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_xioct.c 350-qlogic/drivers/scsi/qla2xxx/qla_xioct.c
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qla_xioct.c	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qla_xioct.c	2003-10-29 13:58:56.000000000 -0800
@@ -0,0 +1,6374 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+
+#include "qla_os.h"
+#include "qla_def.h"
+
+#include "inioct.h"
+
+
+#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_INITIAL_IOCTLMEM_SIZE	(2 * PAGE_SIZE)
+#define QLA_IOCTL_SCRAP_SIZE		2048 /* scrap memory for local use. */
+
+/* ELS related defines */
+#define FC_HEADER_LEN		24
+#define ELS_RJT_LENGTH		0x08	/* 8  */
+#define ELS_RPS_ACC_LENGTH	0x40	/* 64 */
+#define ELS_RLS_ACC_LENGTH	0x1C	/* 28 */
+
+/* ELS cmd Reply Codes */
+#define ELS_STAT_LS_RJT		0x01
+#define ELS_STAT_LS_ACC		0x02
+
+#define IOCTL_INVALID_STATUS    0xffff
+
+
+int qla2x00_alloc_ioctl_mem(scsi_qla_host_t *);
+void qla2x00_free_ioctl_mem(scsi_qla_host_t *);
+
+int qla2x00_get_ioctl_scrap_mem(scsi_qla_host_t *, void **, uint32_t);
+void qla2x00_free_ioctl_scrap_mem(scsi_qla_host_t *);
+
+/*
+ * Local prototypes
+ */
+static int qla2x00_get_new_ioctl_dma_mem(scsi_qla_host_t *, uint32_t);
+
+static int qla2x00_find_curr_ha(uint16_t, scsi_qla_host_t **);
+
+static int qla2x00_get_driver_specifics(EXT_IOCTL *);
+
+static int qla2x00_aen_reg(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_aen_get(scsi_qla_host_t *, EXT_IOCTL *, int);
+
+static int qla2x00_query(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_query_hba_node(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_query_hba_port(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_query_disc_port(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_query_disc_tgt(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_query_chip(scsi_qla_host_t *, EXT_IOCTL *, int);
+
+static int qla2x00_get_data(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_get_statistics(scsi_qla_host_t *, EXT_IOCTL *, int);
+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 *);
+#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)
+static int qla2x00_send_els_passthru(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, fc_port_t *, fc_lun_t *, int);
+static int qla2x00_get_led_state(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_set_led_state(scsi_qla_host_t *, EXT_IOCTL *, int);
+#endif
+static int qla2x00_send_fcct(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, fc_port_t *, fc_lun_t *, int);
+static int qla2x00_ioctl_ms_queuecommand(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, fc_port_t *, fc_lun_t *, EXT_ELS_PT_REQ *);
+
+static int qla2x00_start_ms_cmd(scsi_qla_host_t *, EXT_IOCTL *, srb_t *,
+    EXT_ELS_PT_REQ *);
+
+static int qla2x00_wwpn_to_scsiaddr(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_scsi_passthru(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_sc_scsi_passthru(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, struct scsi_device *, int);
+static int qla2x00_sc_fc_scsi_passthru(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, struct scsi_device *, int);
+static int qla2x00_sc_scsi3_passthru(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, struct scsi_device *, int);
+static int qla2x00_ioctl_scsi_queuecommand(scsi_qla_host_t *, EXT_IOCTL *,
+    struct scsi_cmnd *, struct scsi_device *, fc_port_t *, fc_lun_t *);
+
+static int qla2x00_send_els_rnid(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_get_rnid_params(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_set_host_data(scsi_qla_host_t *, EXT_IOCTL *, int);
+static int qla2x00_set_rnid_params(scsi_qla_host_t *, EXT_IOCTL *, int);
+
+static void qla2x00_waitq_sem_timeout(unsigned long);
+static int qla2x00_get_ioctl_access(scsi_qla_host_t *, uint32_t);
+static int qla2x00_release_ioctl_access(scsi_qla_host_t *);
+
+static void qla2x00_wait_q_memb_alloc(scsi_qla_host_t *, wait_q_t **);
+static void qla2x00_wait_q_memb_free(scsi_qla_host_t *, wait_q_t *);
+static int qla2x00_wait_q_add(scsi_qla_host_t *, wait_q_t **);
+static void qla2x00_wait_q_get_next(scsi_qla_host_t *, wait_q_t **);
+static void qla2x00_wait_q_remove(scsi_qla_host_t *, wait_q_t *);
+
+/*
+ * qla2x00_ioctl_sleep_done
+ *
+ * Description:
+ *   This is the callback function to wakeup ioctl completion semaphore
+ *   for the ioctl request that is waiting.
+ *
+ * Input:
+ *   sem - pointer to the ioctl completion semaphore.
+ *
+ * Returns:
+ */
+static void
+qla2x00_ioctl_sleep_done(struct semaphore * sem)
+{
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	if (sem != NULL){
+		DEBUG9(printk("ioctl_sleep: wake up sem.\n");)
+		up(sem);
+	}
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+}
+
+/*
+ * qla2x00_ioctl_sem_init
+ *
+ * Description:
+ *   Initialize the ioctl timer and semaphore used to wait for passthru
+ *   completion.
+ *
+ * Input:
+ *   ha - pointer to scsi_qla_host_t structure used for initialization.
+ *
+ * Returns:
+ *   None.
+ */
+static void
+qla2x00_ioctl_sem_init(scsi_qla_host_t *ha)
+{
+	init_MUTEX_LOCKED(&ha->ioctl->cmpl_sem);
+	init_timer(&(ha->ioctl->cmpl_timer));
+	ha->ioctl->cmpl_timer.data = (unsigned long)&ha->ioctl->cmpl_sem;
+	ha->ioctl->cmpl_timer.function =
+	    (void (*)(unsigned long))qla2x00_ioctl_sleep_done;
+}
+
+/*
+ * qla2x00_scsi_pt_done
+ *
+ * Description:
+ *   Resets ioctl progress flag and wakes up the ioctl completion semaphore.
+ *
+ * Input:
+ *   pscsi_cmd - pointer to the passthru Scsi cmd structure which has completed.
+ *
+ * Returns:
+ */
+static void
+qla2x00_scsi_pt_done(struct scsi_cmnd *pscsi_cmd)
+{
+	struct Scsi_Host *host;
+	scsi_qla_host_t  *ha;
+
+	host = pscsi_cmd->device->host;
+	ha = (scsi_qla_host_t *) host->hostdata;
+
+	DEBUG9(printk("%s post function called OK\n", __func__);)
+
+	/* save detail status for IOCTL reporting */
+	ha->ioctl->SCSIPT_InProgress = 0;
+	ha->ioctl->ioctl_tov = 0;
+
+	up(&ha->ioctl->cmpl_sem);
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+	return;
+}
+
+/*
+ * qla2x00_msiocb_done
+ *
+ * Description:
+ *   Resets MSIOCB ioctl progress flag and wakes up the ioctl completion
+ *   semaphore.
+ *
+ * Input:
+ *   cmd - pointer to the passthru Scsi cmd structure which has completed.
+ *
+ * Returns:
+ */
+static void
+qla2x00_msiocb_done(struct scsi_cmnd *pscsi_cmd)
+{
+	struct Scsi_Host *host;
+	scsi_qla_host_t  *ha;
+
+	host = pscsi_cmd->device->host;
+	ha = (scsi_qla_host_t *) host->hostdata;
+
+	DEBUG9(printk("%s post function called OK\n", __func__);)
+
+	ha->ioctl->MSIOCB_InProgress = 0;
+	ha->ioctl->ioctl_tov = 0;
+
+	up(&ha->ioctl->cmpl_sem);
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+		
+	return;
+}
+
+/*************************************************************************
+ * qla2x00_ioctl
+ *
+ * Description:
+ *   Performs additional ioctl requests not satisfied by the upper levels.
+ *
+ * Returns:
+ *   ret  = 0    Success
+ *   ret != 0    Failed; detailed status copied to EXT_IOCTL structure
+ *               if possible
+ *************************************************************************/
+int
+qla2x00_ioctl(struct scsi_device *dev, int cmd, void *arg)
+{
+	int		mode = 0;
+	int		tmp_rval = 0;
+	int		ret = -EINVAL;
+
+	uint8_t		*temp;
+	uint8_t		tempbuf[8];
+	uint32_t	i;
+	uint32_t	status;
+
+	EXT_IOCTL	*pext;
+
+	scsi_qla_host_t	*ha;
+
+
+	DEBUG9(printk("%s: entry to command (%x), arg (%p)\n",
+	    __func__, cmd, arg);)
+
+	/* Catch any non-exioct ioctls */
+	if (_IOC_TYPE(cmd) != QLMULTIPATH_MAGIC) {
+		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.
+	 */
+	pext = KMEM_ZALLOC(sizeof(EXT_IOCTL), 16);
+	if (pext == NULL) {
+		/* error */
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in main ioctl buffer allocation.\n");
+		return (-ENOMEM);
+	}
+
+	/* copy in application layer EXT_IOCTL */
+	ret = copy_from_user(pext, arg, sizeof(EXT_IOCTL));
+	if (ret) {
+		DEBUG9_10(printk("%s: ERROR COPY_FROM_USER "
+		    "EXT_IOCTL sturct. cmd=%x arg=%p.\n",
+		    __func__, cmd, arg);)
+
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+		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;
+
+	for (i = 0; i < 4; i++, temp++)
+		tempbuf[i] = *temp;
+
+	if ((tempbuf[0] == 'Q') && (tempbuf[1] == 'L') &&
+	    (tempbuf[2] == 'O') && (tempbuf[3] == 'G'))
+		status = 0;
+	else
+		status = 1;
+
+	if (status != 0) {
+		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));
+
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+		return (-EINVAL);
+	}
+
+	/* check version of this ioctl */
+	if (pext->Version > EXT_VERSION) {
+		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);
+	}
+
+	/* check for special cmds used during application's setup time. */
+	switch (cmd) {
+	case EXT_CC_STARTIOCTL:
+		DEBUG9(printk("%s: got startioctl command.\n", __func__);)
+
+		pext->Instance = num_hosts;
+		pext->Status = EXT_STATUS_OK;
+		ret = copy_to_user((void *)arg, (void *)pext,
+		    sizeof(EXT_IOCTL));
+
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+		return (ret);
+
+	case EXT_CC_SETINSTANCE:
+		/* This call is used to return the HBA's host number to
+		 * ioctl caller.  All subsequent ioctl commands will put
+		 * the host number in HbaSelect field to tell us which
+		 * HBA is the destination.
+		 */
+		if (pext->Instance < num_hosts) {
+			if (!((ulong)pext->VendorSpecificData &
+			    EXT_DEF_USE_HBASELECT)) {
+				DEBUG9(printk(
+				    "%s: got setinstance cmd w/o HbaSelect.\n",
+				    __func__);)
+				/* Backward compatible code. */
+				apiHBAInstance = pext->Instance;
+			}
+
+			/*
+			 * Return host number via pext->HbaSelect for
+			 * specified API instance number.
+			 */
+			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));
+				DEBUG9_10(printk("%s: SETINSTANCE invalid inst "
+				    "%d. num_hosts=%d ha=%p ret=%d.\n",
+				    __func__, pext->Instance, num_hosts, ha,
+				    ret);)
+
+				KMEM_FREE(pext, sizeof(EXT_IOCTL));
+				return (ret); /* ioctl completed ok */
+			}
+
+			pext->HbaSelect = ha->host_no;
+			pext->Status = EXT_STATUS_OK;
+
+			DEBUG9(printk("%s: Matching instance %d to hba "
+			    "%ld.\n", __func__, pext->Instance, ha->host_no);)
+		} else {
+			DEBUG9_10(printk("%s: ERROR EXT_SETINSTANCE."
+			    " Instance=%d num_hosts=%d ha=%p.\n",
+			    __func__, pext->Instance, num_hosts, ha);)
+
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		}
+		ret = copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+
+		DEBUG9(printk("%s: SETINSTANCE exiting. ret=%d.\n",
+		    __func__, ret);)
+
+		return (ret);
+
+	case EXT_CC_DRIVER_SPECIFIC:
+		ret = qla2x00_get_driver_specifics(pext);
+		tmp_rval = copy_to_user(arg, (void *)pext, sizeof(EXT_IOCTL));
+
+		if (ret == 0)
+			ret = tmp_rval;
+
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+		return (ret);
+
+	default:
+		break;
+	}
+
+	if (!((ulong)pext->VendorSpecificData & EXT_DEF_USE_HBASELECT)) {
+		/* Backward compatible code. */
+		/* Will phase out soon. */
+
+		/* Check for valid apiHBAInstance (set previously by
+		 * EXT_SETINSTANCE or default 0)  and set ha context
+		 * for this IOCTL.
+		 */
+		DEBUG9(printk("%s: not using HbaSelect. apiHBAInstance=%d.\n",
+		    __func__, apiHBAInstance);)
+		if (qla2x00_find_curr_ha(apiHBAInstance, &ha) != 0) {
+
+			DEBUG9_10(printk("%s: ERROR matching apiHBAInstance "
+			    "%d to an HBA Instance.\n",
+			    __func__, apiHBAInstance);)
+
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+
+			KMEM_FREE(pext, sizeof(EXT_IOCTL));
+			return (-EINVAL);
+		}
+
+		DEBUG9(printk("%s: active apiHBAInstance=%d host_no=%ld "
+		    "CC=%x SC=%x.\n",
+		    __func__, apiHBAInstance, ha->host_no, cmd, pext->SubCode);)
+
+	} else {
+		/* Use HbaSelect value to get a matching ha instance
+		 * for this ioctl command.
+		 */
+		if (qla2x00_find_curr_ha(pext->HbaSelect, &ha) != 0) {
+
+			DEBUG9_10(printk("%s: ERROR matching pext->HbaSelect "
+			    "%d to an HBA Instance.\n",
+			    __func__, pext->HbaSelect);)
+
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+
+			KMEM_FREE(pext, sizeof(EXT_IOCTL));
+			return (-EINVAL);
+		}
+
+		DEBUG9(printk("%s: active host_inst=%ld CC=%x SC=%x.\n",
+		    __func__, ha->instance, cmd, pext->SubCode);)
+	}
+
+	/*
+	 * Get permission to process ioctl command. Only one will proceed
+	 * at a time.
+	 */
+	if (qla2x00_get_ioctl_access(ha, QLA_IOCTL_ACCESS_WAIT_TIME) != 0) {
+		/* error timed out */
+		DEBUG9_10(printk("%s: ERROR timeout getting ioctl "
+		    "access. host no=%d.\n", __func__, pext->HbaSelect);)
+
+		pext->Status = EXT_STATUS_BUSY;
+		copy_to_user(arg, pext, sizeof(EXT_IOCTL));
+
+		KMEM_FREE(pext, sizeof(EXT_IOCTL));
+		return (-EBUSY);
+	}
+
+
+	while (test_bit(CFG_ACTIVE, &ha->cfg_flags) || ha->dpc_active) {
+		if( signal_pending(current) )
+			break;   /* get out */
+
+		set_current_state(TASK_INTERRUPTIBLE);
+		schedule_timeout(HZ);
+	}
+
+	switch (cmd) { /* switch on EXT IOCTL COMMAND CODE */
+
+	case EXT_CC_QUERY:
+		DEBUG9(printk("%s: got query command.\n", __func__);)
+
+		ret = qla2x00_query(ha, pext, 0);
+
+		break;
+
+	case EXT_CC_GET_DATA:
+		DEBUG9(printk("%s: got get_data command.\n", __func__);)
+
+		ret = qla2x00_get_data(ha, pext, 0);
+
+		break;
+
+	case EXT_CC_SEND_SCSI_PASSTHRU:
+		DEBUG9(printk("%s: got SCSI passthru cmd.\n", __func__));
+
+		ret = qla2x00_scsi_passthru(ha, pext, mode);
+
+		break;
+
+	case EXT_CC_REG_AEN:
+		ret = qla2x00_aen_reg(ha, pext, mode);
+
+		break;
+
+	case EXT_CC_GET_AEN:
+		ret = qla2x00_aen_get(ha, pext, mode);
+
+		break;
+
+	case EXT_CC_WWPN_TO_SCSIADDR:
+		ret = qla2x00_wwpn_to_scsiaddr(ha, pext, 0);
+		break;
+
+	case EXT_CC_SEND_ELS_RNID:
+		DEBUG9(printk("%s: got ELS RNID cmd.\n", __func__));
+
+		ret = qla2x00_send_els_rnid(ha, pext, mode);
+		break;
+
+	case EXT_CC_SET_DATA:
+		ret = qla2x00_set_host_data(ha, pext, mode);
+		break;                                                          
+
+	case INT_CC_READ_NVRAM:
+		ret = qla2x00_read_nvram(ha, pext, mode);
+
+		break;
+
+	case INT_CC_UPDATE_NVRAM:
+		ret = qla2x00_update_nvram(ha, pext, mode);
+
+		break;
+
+	case INT_CC_LOOPBACK:
+		ret = qla2x00_send_loopback(ha, pext, mode);
+
+		break;
+
+	case INT_CC_READ_OPTION_ROM:
+		ret = qla2x00_read_option_rom(ha, pext, mode);
+
+		break;
+
+	case INT_CC_UPDATE_OPTION_ROM:
+		ret = qla2x00_update_option_rom(ha, pext, mode);
+
+		break;
+
+	case EXT_CC_SEND_FCCT_PASSTHRU:
+
+#if defined(ISP2300)
+	case EXT_CC_SEND_ELS_PASSTHRU:
+#endif
+		ret = qla2x00_msiocb_passthru(ha, pext, cmd, mode);
+
+		break;
+
+	/* all others go here */
+	/*
+	   case EXT_CC_PLATFORM_REG:
+	   break;
+	 */
+
+	/* Failover IOCTLs */
+	case FO_CC_GET_PARAMS:
+	case FO_CC_SET_PARAMS:
+	case FO_CC_GET_PATHS:
+	case FO_CC_SET_CURRENT_PATH:
+	case FO_CC_RESET_HBA_STAT:
+	case FO_CC_GET_HBA_STAT:
+	case FO_CC_GET_LUN_DATA:
+	case FO_CC_SET_LUN_DATA:
+	case FO_CC_GET_TARGET_DATA:
+	case FO_CC_SET_TARGET_DATA:
+		DEBUG9(printk("%s: failover arg (%p):\n", __func__, arg);)
+
+		qla2x00_fo_ioctl(ha, cmd, pext, mode);
+
+		break;
+
+	default:
+		pext->Status = EXT_STATUS_INVALID_REQUEST;
+		break;
+
+	} /* 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));
+
+	if (ret == 0)
+		ret = tmp_rval;
+
+	DEBUG9(printk("%s: exiting. tmp_rval(%d) ret(%d)\n",
+	    __func__, tmp_rval, ret);)
+
+	qla2x00_release_ioctl_access(ha);
+
+	KMEM_FREE(pext, sizeof(EXT_IOCTL));
+
+	return (ret);
+}
+
+/*
+ * qla2x00_alloc_ioctl_mem
+ *	Allocates memory needed by IOCTL code.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_alloc_ioctl_mem(scsi_qla_host_t *ha)
+{
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (qla2x00_get_new_ioctl_dma_mem(ha, QLA_INITIAL_IOCTLMEM_SIZE) !=
+	    QLA_SUCCESS) {
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl physical memory allocation\n");
+
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+
+	/* Allocate context memory buffer */
+	ha->ioctl = KMEM_ZALLOC(sizeof(hba_ioctl_context), 11);
+	if (ha->ioctl == NULL) {
+		/* error */
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl context allocation.\n");
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+
+	/* Allocate AEN tracking buffer */
+	ha->ioctl->aen_tracking_queue =
+	    KMEM_ZALLOC(EXT_DEF_MAX_AEN_QUEUE * sizeof(EXT_ASYNC_EVENT), 12);
+	if (ha->ioctl->aen_tracking_queue == NULL) {
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl aen_queue allocation.\n");
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+
+	ha->ioctl->ioctl_tq = KMEM_ZALLOC(sizeof(os_tgt_t), 13);
+	if (ha->ioctl->ioctl_tq == NULL) {
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl tgt queue allocation.\n");
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+
+	ha->ioctl->ioctl_lq = KMEM_ZALLOC(sizeof(os_lun_t), 14);
+	if (ha->ioctl->ioctl_lq == NULL) {
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl lun queue allocation.\n");
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+	/*INIT_LIST_HEAD(&(ha->ioctl->ioctl_lq->cmd));*/
+
+	/* Pick the largest size we'll need per ha of all ioctl cmds.
+	 * Use this size when freeing.
+	 */
+	ha->ioctl->scrap_mem = KMEM_ZALLOC(QLA_IOCTL_SCRAP_SIZE, 15);
+	if (ha->ioctl->scrap_mem == NULL) {
+		printk(KERN_WARNING
+		    "qla2x00: ERROR in ioctl scrap_mem allocation.\n");
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+	ha->ioctl->scrap_mem_size = QLA_IOCTL_SCRAP_SIZE;
+	ha->ioctl->scrap_mem_used = 0;
+	DEBUG9(printk("%s(%ld): scrap_mem_size=%d.\n",
+	    __func__, ha->host_no, ha->ioctl->scrap_mem_size);)
+
+	ha->ioctl->ioctl_lq->q_state = LUN_STATE_READY;
+	ha->ioctl->ioctl_lq->q_lock = SPIN_LOCK_UNLOCKED;
+
+	/* Init wait_q fields */
+	ha->ioctl->wait_q_lock = SPIN_LOCK_UNLOCKED;
+
+ 	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+ 	    __func__, ha->host_no, ha->instance);)
+  
+ 	return QLA_SUCCESS;
+}
+
+/*
+ * qla2x00_get_new_ioctl_dma_mem
+ *	Allocates dma memory of the specified size.
+ *	This is done to replace any previously allocated ioctl dma buffer.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_new_ioctl_dma_mem(scsi_qla_host_t *ha, uint32_t size)
+{
+	DEBUG9(printk("%s entered.\n", __func__);)
+
+	if (ha->ioctl_mem) {
+		DEBUG9(printk("%s: ioctl_mem was previously allocated. "
+		    "Dealloc old buffer.\n", __func__);)
+
+	 	/* free the memory first */
+	 	pci_free_consistent(ha->pdev, ha->ioctl_mem_size, ha->ioctl_mem,
+		    ha->ioctl_mem_phys);
+	}
+
+	/* Get consistent memory allocated for ioctl I/O operations. */
+	ha->ioctl_mem = pci_alloc_consistent(ha->pdev,
+	    size, &ha->ioctl_mem_phys);
+
+	if (ha->ioctl_mem == NULL) {
+		printk(KERN_WARNING
+		    "%s: ERROR in ioctl physical memory allocation. "
+		    "Requested length=%x.\n", __func__, size);
+
+		ha->ioctl_mem_size = 0;
+		return QLA_MEMORY_ALLOC_FAILED;
+	}
+	ha->ioctl_mem_size = size;
+
+	DEBUG9(printk("%s exiting.\n", __func__);)
+
+	return QLA_SUCCESS;
+}
+
+/*
+ * qla2x00_free_ioctl_mem
+ *	Frees memory used by IOCTL code for the specified ha.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Context:
+ *	Kernel context.
+ */
+void
+qla2x00_free_ioctl_mem(scsi_qla_host_t *ha)
+{
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (ha->ioctl != NULL) {
+
+		if (ha->ioctl->scrap_mem != NULL) {
+			/* The size here must match up to what we
+			 * allocated before.
+			 */
+			KMEM_FREE(ha->ioctl->scrap_mem,
+			    ha->ioctl->scrap_mem_size);
+			ha->ioctl->scrap_mem = NULL;
+			ha->ioctl->scrap_mem_size = 0;
+		}
+
+		if (ha->ioctl->ioctl_tq != NULL) {
+			KMEM_FREE(ha->ioctl->ioctl_tq, sizeof(os_tgt_t));
+			ha->ioctl->ioctl_tq = NULL;
+		}
+
+		if (ha->ioctl->ioctl_lq != NULL) {
+			KMEM_FREE(ha->ioctl->ioctl_lq, sizeof(os_lun_t));
+			ha->ioctl->ioctl_lq = NULL;
+		}
+
+		if (ha->ioctl->aen_tracking_queue != NULL) {
+			KMEM_FREE(ha->ioctl->aen_tracking_queue,
+			    EXT_DEF_MAX_AEN_QUEUE * sizeof(EXT_ASYNC_EVENT));
+			ha->ioctl->aen_tracking_queue = NULL;
+		}
+
+		KMEM_FREE(ha->ioctl, sizeof(hba_ioctl_context));
+		ha->ioctl = NULL;
+	}
+
+	/* free memory allocated for ioctl operations */
+	pci_free_consistent(ha->pdev, ha->ioctl_mem_size, ha->ioctl_mem,
+	    ha->ioctl_mem_phys);
+	ha->ioctl_mem = NULL;
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+}
+
+/*
+ * qla2x00_get_ioctl_scrap_mem
+ *	Returns pointer to memory of the specified size from the scrap buffer.
+ *	This can be called multiple times before the free call as long
+ *	as the memory is to be used by the same ioctl command and
+ *	there's still memory left in the scrap buffer.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	ppmem = pointer to return a buffer pointer.
+ *	size = size of buffer to return.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+int
+qla2x00_get_ioctl_scrap_mem(scsi_qla_host_t *ha, void **ppmem, uint32_t size)
+{
+	int		ret = QLA_SUCCESS;
+	uint32_t	free_mem;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered. size=%d.\n",
+	    __func__, ha->host_no, ha->instance, size);)
+
+	free_mem = ha->ioctl->scrap_mem_size - ha->ioctl->scrap_mem_used;
+	if (free_mem >= size) {
+		*ppmem = ha->ioctl->scrap_mem + ha->ioctl->scrap_mem_used;
+		ha->ioctl->scrap_mem_used += size;
+	} else {
+		DEBUG10(printk("%s(%ld): no more scrap memory.\n",
+		    __func__, ha->host_no);)
+
+		ret = QLA_FUNCTION_FAILED;
+	}
+
+	DEBUG9(printk("%s(%ld): exiting. ret=%d.\n",
+	    __func__, ha->host_no, ret);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_free_ioctl_scrap_mem
+ *	Makes the entire scrap buffer free for use.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ */
+void
+qla2x00_free_ioctl_scrap_mem(scsi_qla_host_t *ha)
+{
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	memset(ha->ioctl->scrap_mem, 0, ha->ioctl->scrap_mem_size);
+	ha->ioctl->scrap_mem_used = 0;
+
+	DEBUG9(printk("%s(%ld): exiting.\n",
+	    __func__, ha->host_no);)
+}
+
+/*
+ * qla2x00_find_curr_ha
+ *	Searches and returns the pointer to the adapter host_no specified.
+ *
+ * Input:
+ *	host_inst = driver internal adapter instance number to search.
+ *	ha = adapter state pointer of the instance requested.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_find_curr_ha(uint16_t host_inst, scsi_qla_host_t **ret_ha)
+{
+	int	rval = QLA_SUCCESS;
+	int	found;
+	struct list_head *hal;
+	scsi_qla_host_t *search_ha = NULL;
+
+	/*
+ 	 * Set ha context for this IOCTL by matching host_no.
+	 */
+	found = 0;
+	read_lock(&qla_hostlist_lock);
+	list_for_each(hal, &qla_hostlist) {
+		search_ha = list_entry(hal, scsi_qla_host_t, list);
+
+		if (search_ha->instance == host_inst) {
+			found++;
+			break;
+		}
+	}
+	read_unlock(&qla_hostlist_lock);
+
+	if (!found) {
+ 		DEBUG10(printk("%s: ERROR matching host_inst "
+ 		    "%d to an HBA Instance.\n", __func__, host_inst);)
+		rval = QLA_FUNCTION_FAILED;
+	} else {
+		DEBUG9(printk("%s: found matching host_inst "
+		    "%d to an HBA Instance.\n", __func__, host_inst);)
+		*ret_ha = search_ha;
+	}
+
+	return rval;
+}
+
+/*
+ * qla2x00_get_driver_specifics
+ *	Returns driver specific data in the response buffer.
+ *
+ * Input:
+ *	pext = pointer to EXT_IOCTL structure containing values from user.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_driver_specifics(EXT_IOCTL *pext)
+{
+	int			ret = 0;
+	EXT_LN_DRIVER_DATA	data;
+
+	DEBUG9(printk("%s: entered.\n",
+	    __func__);)
+
+	if (pext->ResponseLen < sizeof(EXT_LN_DRIVER_DATA)) {
+		pext->Status = EXT_STATUS_BUFFER_TOO_SMALL;
+		DEBUG9_10(printk("%s: ERROR ResponseLen too small.\n",
+		    __func__);)
+
+		return (ret);
+	}
+
+	data.DrvVer.Major = QLA_DRIVER_MAJOR_VER;
+	data.DrvVer.Minor = QLA_DRIVER_MINOR_VER;
+	data.DrvVer.Patch = QLA_DRIVER_PATCH_VER;
+	data.DrvVer.Beta = QLA_DRIVER_BETA_VER;
+
+	ret = verify_area(VERIFY_WRITE, (void *)pext->ResponseAdr,
+	    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(printk("%s: exiting. ret=%d.\n",
+	    __func__, ret);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_aen_reg
+ *	IOCTL management server Asynchronous Event Tracking Enable/Disable.
+ *
+ * Input:
+ *	ha = pointer to the adapter struct of the adapter to register.
+ *	cmd = pointer to EXT_IOCTL structure containing values from user.
+ *	mode = flags. not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_aen_reg(scsi_qla_host_t *ha, EXT_IOCTL *cmd, int mode)
+{
+	int		rval = 0;
+	EXT_REG_AEN	reg_struct;
+
+	DEBUG9(printk("%s(%ld): inst %ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	rval = verify_area(VERIFY_READ, (void *)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) {
+			ha->ioctl->flags |= IOCTL_AEN_TRACKING_ENABLE;
+		} else {
+			ha->ioctl->flags &= ~IOCTL_AEN_TRACKING_ENABLE;
+		}
+	} else {
+		cmd->Status = EXT_STATUS_COPY_ERR;
+	}
+
+	DEBUG9(printk("%s(%ld): inst %ld reg_struct.Enable(%d) "
+	    "ha->ioctl_flag(%x) cmd->Status(%d).",
+	    __func__, ha->host_no, ha->instance, reg_struct.Enable,
+	    ha->ioctl->flags, cmd->Status);)
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (rval);
+}
+
+/*
+ * qla2x00_aen_get
+ *	Asynchronous Event Record Transfer to user.
+ *	The entire queue will be emptied and transferred back.
+ *
+ * Input:
+ *	ha = pointer to the adapter struct of the specified adapter.
+ *	pext = pointer to EXT_IOCTL structure containing values from user.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ *
+ * NOTE: Need to use hardware lock to protect the queues from updates
+ *	 via isr/enqueue_aen after we get rid of io_request_lock.
+ */
+static int
+qla2x00_aen_get(scsi_qla_host_t *ha, EXT_IOCTL *cmd, int mode)
+{
+	int		rval = 0;
+	EXT_ASYNC_EVENT	*tmp_q;
+	EXT_ASYNC_EVENT	*paen;
+	uint8_t		i;
+	uint8_t		queue_cnt;
+	uint8_t		request_cnt;
+	uint32_t	stat = EXT_STATUS_OK;
+	uint32_t	ret_len = 0;
+	unsigned long   cpu_flags = 0;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	request_cnt = (uint8_t)(cmd->ResponseLen / sizeof(EXT_ASYNC_EVENT));
+
+	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. "
+		    "Exiting normally.",
+		    __func__, ha->host_no, ha->instance);)
+
+		return (rval);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&paen,
+	    sizeof(EXT_ASYNC_EVENT) * EXT_DEF_MAX_AEN_QUEUE)) {
+		/* not enough memory */
+		cmd->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_ASYNC_EVENT)*EXT_DEF_MAX_AEN_QUEUE);)
+		return (rval);
+	}
+
+	/* 1st: Make a local copy of the entire queue content. */
+	tmp_q = (EXT_ASYNC_EVENT *)ha->ioctl->aen_tracking_queue;
+	queue_cnt = 0;
+
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+	i = ha->ioctl->aen_q_head;
+
+	for (; queue_cnt < EXT_DEF_MAX_AEN_QUEUE;) {
+		if (tmp_q[i].AsyncEventCode != 0) {
+			memcpy(&paen[queue_cnt], &tmp_q[i],
+			    sizeof(EXT_ASYNC_EVENT));
+			queue_cnt++;
+			tmp_q[i].AsyncEventCode = 0; /* empty out the slot */
+		}
+
+		if (i == ha->ioctl->aen_q_tail) {
+			/* done. */
+			break;
+		}
+
+		i++;
+
+		if (i == EXT_DEF_MAX_AEN_QUEUE) {
+			i = 0;
+		}
+	}
+
+	/* Empty the queue. */
+	ha->ioctl->aen_q_head = 0;
+	ha->ioctl->aen_q_tail = 0;
+
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	/* 2nd: Now transfer the queue content to user buffer */
+	/* 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;
+
+	if (rval != 0) {
+		stat = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld FAILED. error = %d\n",
+		    __func__, ha->host_no, ha->instance, stat);)
+	} else {
+		stat = EXT_STATUS_OK;
+	}
+
+	cmd->Status = stat;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting. rval=%d.\n",
+	     __func__, ha->host_no, ha->instance, rval);)
+
+	return (rval);
+}
+
+/*
+ * qla2x00_enqueue_aen
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	event_code = async event code of the event to add to queue.
+ *	payload = event payload for the queue.
+ *
+ * Context:
+ *	Interrupt context.
+ * NOTE: Need to hold the hardware lock to protect the queues from
+ *	 aen_get after we get rid of the io_request_lock.
+ */
+void
+qla2x00_enqueue_aen(scsi_qla_host_t *ha, uint16_t event_code, void *payload)
+{
+	uint8_t			new_entry; /* index to current entry */
+	uint16_t		*mbx;
+	EXT_ASYNC_EVENT		*aen_queue;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	aen_queue = (EXT_ASYNC_EVENT *)ha->ioctl->aen_tracking_queue;
+	if (aen_queue[ha->ioctl->aen_q_tail].AsyncEventCode != 0) {
+		/* Need to change queue pointers to make room. */
+
+		/* Increment tail for adding new entry. */
+		ha->ioctl->aen_q_tail++;
+		if (ha->ioctl->aen_q_tail == EXT_DEF_MAX_AEN_QUEUE) {
+			ha->ioctl->aen_q_tail = 0;
+		}
+
+		if (ha->ioctl->aen_q_head == ha->ioctl->aen_q_tail) {
+			/*
+			 * We're overwriting the oldest entry, so need to
+			 * update the head pointer.
+			 */
+			ha->ioctl->aen_q_head++;
+			if (ha->ioctl->aen_q_head == EXT_DEF_MAX_AEN_QUEUE) {
+				ha->ioctl->aen_q_head = 0;
+			}
+		}
+	}
+
+	DEBUG(printk("%s(%ld): inst=%ld Adding code 0x%x to aen_q %p @ %d\n",
+	    __func__, ha->host_no, ha->instance, event_code, aen_queue,
+	    ha->ioctl->aen_q_tail);)
+
+	new_entry = ha->ioctl->aen_q_tail;
+	aen_queue[new_entry].AsyncEventCode = event_code;
+
+		/* Update payload */
+	switch (event_code) {
+	case MBA_LIP_OCCURRED:
+	case MBA_LOOP_UP:
+	case MBA_LOOP_DOWN:
+	case MBA_LIP_RESET:
+	case MBA_PORT_UPDATE:
+		/* empty */
+		break;
+
+	case MBA_RSCN_UPDATE:
+		mbx = (uint16_t *)payload;
+		aen_queue[new_entry].Payload.RSCN.AddrFormat = MSB(mbx[1]);
+		/* domain */
+		aen_queue[new_entry].Payload.RSCN.RSCNInfo[0] = LSB(mbx[1]);
+		/* area */
+		aen_queue[new_entry].Payload.RSCN.RSCNInfo[1] = MSB(mbx[2]);
+		/* al_pa */
+		aen_queue[new_entry].Payload.RSCN.RSCNInfo[2] = LSB(mbx[2]);
+
+		break;
+
+	default:
+		/* Not supported */
+		aen_queue[new_entry].AsyncEventCode = 0;
+		break;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+}
+
+/*
+ * qla2x00_query
+ *	Handles all subcommands of the EXT_CC_QUERY command.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int rval = 0;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* All Query type ioctls are done here */
+	switch(pext->SubCode) {
+
+	case EXT_SC_QUERY_HBA_NODE:
+		/* fill in HBA NODE Information */
+		rval = qla2x00_query_hba_node(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_HBA_PORT:
+		/* return HBA PORT related info */
+		rval = qla2x00_query_hba_port(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_DISC_PORT:
+		/* return discovered port information */
+		rval = qla2x00_query_disc_port(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_DISC_TGT:
+		/* return discovered target information */
+		rval = qla2x00_query_disc_tgt(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_CHIP:
+		rval = qla2x00_query_chip(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_DISC_LUN:
+		pext->Status = EXT_STATUS_UNSUPPORTED_SUBCODE;
+		break;
+
+	default:
+ 		DEBUG9_10(printk("%s(%ld): inst=%ld unknown SubCode %d.\n",
+ 		    __func__, ha->host_no, ha->instance, pext->SubCode);)
+		pext->Status = EXT_STATUS_UNSUPPORTED_SUBCODE;
+		break;
+	}
+
+ 	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+ 	    __func__, ha->host_no, ha->instance);)
+	return rval;
+}
+
+/*
+ * qla2x00_query_hba_node
+ *	Handles EXT_SC_QUERY_HBA_NODE subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_hba_node(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint32_t	i, transfer_size;
+	EXT_HBA_NODE	*ptmp_hba_node;
+
+ 	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+ 	    __func__, ha->host_no, ha->instance);)
+
+ 	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_hba_node,
+ 	    sizeof(EXT_HBA_NODE))) {
+ 		/* not enough memory */
+ 		pext->Status = EXT_STATUS_NO_MEMORY;
+ 		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+ 		    "size requested=%ld.\n",
+ 		    __func__, ha->host_no, ha->instance,
+ 		    (ulong)sizeof(EXT_HBA_NODE));)
+ 		return (ret);
+ 	}
+
+	/* fill all available HBA NODE Information */
+	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->Model), ha->model_number);
+
+	ptmp_hba_node->SerialNum[0] = ha->serial0;
+	ptmp_hba_node->SerialNum[1] = ha->serial1;
+	ptmp_hba_node->SerialNum[2] = ha->serial2;
+	sprintf((char *)(ptmp_hba_node->DriverVersion), qla2x00_version_str);
+	sprintf((char *)(ptmp_hba_node->FWVersion),"%2d.%02d.%02d",
+	    ha->fw_major_version, 
+	    ha->fw_minor_version, 
+	    ha->fw_subminor_version);
+
+	sprintf((char *)(ptmp_hba_node->OptRomVersion),"%d.%d",
+	    ha->optrom_major, ha->optrom_minor);
+
+	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);
+	}
+
+	/* now copy up the HBA_NODE to user */
+	if (pext->ResponseLen < sizeof(EXT_HBA_NODE))
+		transfer_size = pext->ResponseLen;
+	else
+		transfer_size = sizeof(EXT_HBA_NODE);
+
+	ret = copy_to_user((uint8_t *)pext->ResponseAdr,
+	    (uint8_t *)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",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+	return (ret);
+}
+
+/*
+ * qla2x00_query_hba_port
+ *	Handles EXT_SC_QUERY_HBA_PORT subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_hba_port(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint32_t	tgt_cnt, tgt, transfer_size;
+	uint32_t	port_cnt;
+	fc_port_t	*fcport;
+	EXT_HBA_PORT	*ptmp_hba_port;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_hba_port,
+	    sizeof(EXT_HBA_PORT))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_HBA_PORT));)
+		return (ret);
+	}
+
+	/* reflect all HBA PORT related info */
+	ptmp_hba_port->WWPN[7] = ha->init_cb->port_name[7];
+	ptmp_hba_port->WWPN[6] = ha->init_cb->port_name[6];
+	ptmp_hba_port->WWPN[5] = ha->init_cb->port_name[5];
+	ptmp_hba_port->WWPN[4] = ha->init_cb->port_name[4];
+	ptmp_hba_port->WWPN[3] = ha->init_cb->port_name[3];
+	ptmp_hba_port->WWPN[2] = ha->init_cb->port_name[2];
+	ptmp_hba_port->WWPN[1] = ha->init_cb->port_name[1];
+	ptmp_hba_port->WWPN[0] = ha->init_cb->port_name[0];
+	ptmp_hba_port->Id[0] = 0;
+	ptmp_hba_port->Id[1] = ha->d_id.r.d_id[2];
+	ptmp_hba_port->Id[2] = ha->d_id.r.d_id[1];
+	ptmp_hba_port->Id[3] = ha->d_id.r.d_id[0];
+	ptmp_hba_port->Type =  EXT_DEF_INITIATOR_DEV;
+
+	switch (ha->current_topology) {
+	case ISP_CFG_NL:
+	case ISP_CFG_FL:
+		ptmp_hba_port->Mode = EXT_DEF_LOOP_MODE;
+		break;
+
+	case ISP_CFG_N:
+	case ISP_CFG_F:
+		ptmp_hba_port->Mode = EXT_DEF_P2P_MODE;
+		break;
+
+	default:
+		ptmp_hba_port->Mode = EXT_DEF_UNKNOWN_MODE;
+		break;
+	}
+
+	port_cnt = 0;
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		/* if removed or missing */
+		if (atomic_read(&fcport->state) != FCS_ONLINE) {
+			DEBUG9_10(printk(
+			    "%s(%ld): inst=%ld port %02x%02x%02x not online\n",
+			    __func__, ha->host_no, ha->instance,
+			    fcport->d_id.b.domain,
+			    fcport->d_id.b.area,
+			    fcport->d_id.b.al_pa));
+			continue;
+		}
+		port_cnt++;
+	}
+
+	tgt_cnt  = 0;
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if (ha->otgt[tgt] == NULL) {
+			continue;
+		}
+		if (ha->otgt[tgt]->fcport == NULL) {
+			/* port doesn't exist */
+			DEBUG9(printk("%s(%ld): tgt %d port not exist.\n",
+			    __func__, ha->host_no, tgt);)
+			continue;
+		}
+		tgt_cnt++;
+	}
+
+	DEBUG9_10(printk("%s(%ld): inst=%ld disc_port cnt=%d, tgt cnt=%d.\n",
+	    __func__, ha->host_no, ha->instance,
+	    port_cnt, tgt_cnt);)
+	ptmp_hba_port->DiscPortCount   = port_cnt;
+	ptmp_hba_port->DiscTargetCount = tgt_cnt;
+
+	if (ha->loop_state == LOOP_DOWN) {
+		ptmp_hba_port->State = EXT_DEF_HBA_LOOP_DOWN;
+	} else if (ha->loop_state != LOOP_READY ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags)) {
+
+		ptmp_hba_port->State = EXT_DEF_HBA_SUSPENDED;
+	} else {
+		ptmp_hba_port->State = EXT_DEF_HBA_OK;
+	}
+
+	ptmp_hba_port->DiscPortNameType = EXT_DEF_USE_PORT_NAME;
+
+	/* Return supported FC4 type depending on driver support. */
+	ptmp_hba_port->PortSupportedFC4Types = EXT_DEF_FC4_TYPE_SCSI;
+#if defined(FC_IP_SUPPORT)
+
+	ptmp_hba_port->PortSupportedFC4Types |= EXT_DEF_FC4_TYPE_IP;
+#endif
+
+	ptmp_hba_port->PortActiveFC4Types = ha->active_fc4_types;
+
+	/* Return supported speed depending on adapter type */
+#if defined(ISP2100)
+
+	ptmp_hba_port->PortSupportedSpeed = EXT_DEF_PORTSPEED_1GBIT;
+#elif defined(ISP2200)
+
+	ptmp_hba_port->PortSupportedSpeed = EXT_DEF_PORTSPEED_1GBIT;
+#elif defined(ISP2300)
+
+	ptmp_hba_port->PortSupportedSpeed = EXT_DEF_PORTSPEED_2GBIT;
+#else
+	/* invalid */
+	ptmp_hba_port->PortSupportedSpeed = 0;
+#endif
+
+	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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return ret;
+}
+
+/*
+ * qla2x00_query_disc_port
+ *	Handles EXT_SC_QUERY_DISC_PORT subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_disc_port(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	int		found;
+	uint32_t	tgt, transfer_size, inst;
+	fc_port_t	*fcport;
+	os_tgt_t	*tq;
+	EXT_DISC_PORT	*ptmp_disc_port;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered. Port inst=%02d.\n",
+	    __func__, ha->host_no, ha->instance, pext->Instance);)
+
+	inst = 0;
+	found = 0;
+	fcport = NULL;
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (atomic_read(&fcport->state) != FCS_ONLINE) {
+			/* port does not exist anymore */
+			DEBUG9(printk("%s(%ld): fcport marked lost. "
+			    "d_id=%02x%02x%02x loop_id=%02x not online.\n",
+			    __func__, ha->host_no,
+			    fcport->d_id.b.domain,
+			    fcport->d_id.b.area,
+			    fcport->d_id.b.al_pa,
+			    fcport->loop_id);)
+
+			continue;
+		}
+
+		if (inst != pext->Instance) {
+			DEBUG9(printk("%s(%ld): found fcport %02d "
+			    "d_id=%02x%02x%02x. Skipping.\n",
+			    __func__, ha->host_no, inst,
+			    fcport->d_id.b.domain,
+			    fcport->d_id.b.area,
+			    fcport->d_id.b.al_pa));
+
+			inst++;
+			continue;
+		}
+
+		DEBUG9(printk("%s(%ld): inst=%ld found matching fcport %02d "
+		    "online. d_id=%02x%02x%02x loop_id=%02x online.\n",
+		    __func__, ha->host_no, ha->instance, inst,
+		    fcport->d_id.b.domain,
+		    fcport->d_id.b.area,
+		    fcport->d_id.b.al_pa,
+		    fcport->loop_id);)
+
+		/* Found the matching port still connected. */
+		found++;
+		break;
+	}
+
+	if (!found) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld dev not found.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_disc_port,
+	    sizeof(EXT_DISC_PORT))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_DISC_PORT));)
+		return (ret);
+	}
+
+	memcpy(ptmp_disc_port->WWNN, fcport->node_name, WWN_SIZE);
+	memcpy(ptmp_disc_port->WWPN, fcport->port_name, WWN_SIZE);
+
+	ptmp_disc_port->Id[0] = 0;
+	ptmp_disc_port->Id[1] = fcport->d_id.r.d_id[2];
+	ptmp_disc_port->Id[2] = fcport->d_id.r.d_id[1];
+	ptmp_disc_port->Id[3] = fcport->d_id.r.d_id[0];
+
+	/* Currently all devices on fcport list are target capable devices */
+	/* This default value may need to be changed after we add non target
+	 * devices also to this list.
+	 */
+	ptmp_disc_port->Type = EXT_DEF_TARGET_DEV;
+
+	if (fcport->flags & FCF_FABRIC_DEVICE) {
+		ptmp_disc_port->Type |= EXT_DEF_FABRIC_DEV;
+	}
+	if (fcport->flags & FCF_TAPE_PRESENT) {
+		ptmp_disc_port->Type |= EXT_DEF_TAPE_DEV;
+	}
+	if (fcport->port_type == FCT_INITIATOR) {
+		ptmp_disc_port->Type |= EXT_DEF_INITIATOR_DEV;
+	}
+
+	ptmp_disc_port->LoopID = fcport->loop_id;
+	ptmp_disc_port->Status = 0;
+	ptmp_disc_port->Bus    = 0;
+
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if ((tq = ha->otgt[tgt]) == NULL) {
+			continue;
+		}
+
+		if (tq->fcport == NULL)  /* dg 08/14/01 */
+			continue;
+
+		if (memcmp(fcport->port_name, tq->fcport->port_name,
+		    EXT_DEF_WWN_NAME_SIZE) == 0) {
+			ptmp_disc_port->TargetId = tgt;
+			break;
+		}
+	}
+
+	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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_query_disc_tgt
+ *	Handles EXT_SC_QUERY_DISC_TGT subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_disc_tgt(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint32_t	tgt, transfer_size, inst;
+	uint32_t	cnt, i;
+	fc_port_t	*tgt_fcport;
+	os_tgt_t	*tq;
+	EXT_DISC_TARGET	*ptmp_disc_target;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered for tgt inst %d.\n",
+	    __func__, ha->host_no, ha->instance, pext->Instance);)
+
+	tq = NULL;
+	for (tgt = 0, inst = 0; tgt < MAX_TARGETS; tgt++) {
+		if (ha->otgt[tgt] == NULL) {
+			continue;
+		}
+		/* if wrong target id then skip to next entry */
+		if (inst != pext->Instance) {
+			inst++;
+			continue;
+		}
+		tq = ha->otgt[tgt];
+		break;
+	}
+
+	if (tq == NULL || tgt == MAX_TARGETS) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld target dev not found. "
+		    "tq=%p, tgt=%d.\n",
+		    __func__, ha->host_no, ha->instance, tq, tgt);)
+		return (ret);
+	}
+
+	if (tq->fcport == NULL) { 	/* dg 08/14/01 */
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld target %d port not found. "
+		    "tq=%p.\n",
+		    __func__, ha->host_no, ha->instance, tgt, tq);)
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_disc_target,
+	    sizeof(EXT_DISC_TARGET))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_DISC_TARGET));)
+		return (ret);
+	}
+
+	tgt_fcport = tq->fcport;
+	memcpy(ptmp_disc_target->WWNN, tgt_fcport->node_name, WWN_SIZE);
+	memcpy(ptmp_disc_target->WWPN, tgt_fcport->port_name, WWN_SIZE);
+
+	ptmp_disc_target->Id[0] = 0;
+	ptmp_disc_target->Id[1] = tgt_fcport->d_id.r.d_id[2];
+	ptmp_disc_target->Id[2] = tgt_fcport->d_id.r.d_id[1];
+	ptmp_disc_target->Id[3] = tgt_fcport->d_id.r.d_id[0];
+
+	/* All devices on ha->otgt list are target capable devices. */
+	ptmp_disc_target->Type = EXT_DEF_TARGET_DEV;
+
+	if (tgt_fcport->flags & FCF_FABRIC_DEVICE) {
+		ptmp_disc_target->Type |= EXT_DEF_FABRIC_DEV;
+	}
+	if (tgt_fcport->flags & FCF_TAPE_PRESENT) {
+		ptmp_disc_target->Type |= EXT_DEF_TAPE_DEV;
+	}
+	if (tgt_fcport->port_type & FCT_INITIATOR) {
+		ptmp_disc_target->Type |= EXT_DEF_INITIATOR_DEV;
+	}
+
+	ptmp_disc_target->LoopID   = tgt_fcport->loop_id;
+	ptmp_disc_target->Status   = 0;
+	ptmp_disc_target->Bus      = 0;
+	ptmp_disc_target->TargetId = tgt;
+
+	cnt = 0;
+	/* enumerate available LUNs under this TGT (if any) */
+	if (ha->otgt[tgt] != NULL) {
+		for (i = 0; i < MAX_LUNS ; i++) {
+			if ((ha->otgt[tgt])->olun[i] !=0)
+				cnt++;
+		}
+	}
+
+	ptmp_disc_target->LunCount = cnt;
+
+	DEBUG9(printk("%s(%ld): copying data for tgt id %d. ",
+	    __func__, ha->host_no, tgt);)
+	DEBUG9(printk("port=%p:%02x%02x%02x%02x%02x%02x%02x%02x. "
+	    "lun cnt=%d.\n",
+	    tgt_fcport,
+	    tgt_fcport->port_name[0],
+	    tgt_fcport->port_name[1],
+	    tgt_fcport->port_name[2],
+	    tgt_fcport->port_name[3],
+	    tgt_fcport->port_name[4],
+	    tgt_fcport->port_name[5],
+	    tgt_fcport->port_name[6],
+	    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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_query_chip
+ *	Handles EXT_SC_QUERY_CHIP subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_chip(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint32_t	transfer_size, i;
+	EXT_CHIP		*ptmp_isp;
+	struct Scsi_Host	*host;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+ 	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_isp,
+ 	    sizeof(EXT_CHIP))) {
+ 		/* not enough memory */
+ 		pext->Status = EXT_STATUS_NO_MEMORY;
+ 		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+ 		    "size requested=%ld.\n",
+ 		    __func__, ha->host_no, ha->instance,
+ 		    (ulong)sizeof(EXT_CHIP));)
+ 		return (ret);
+ 	}
+
+	host = ha->host;
+	ptmp_isp->VendorId       = ha->pdev->vendor;
+	ptmp_isp->DeviceId       = ha->pdev->device;
+	ptmp_isp->SubVendorId    = ha->pdev->subsystem_vendor;
+	ptmp_isp->SubSystemId    = ha->pdev->subsystem_device;
+	ptmp_isp->PciBusNumber   = ha->pdev->bus->number;
+	ptmp_isp->PciDevFunc     = ha->pdev->devfn;
+	ptmp_isp->PciSlotNumber  = PCI_SLOT(ha->pdev->devfn);
+	ptmp_isp->IoAddr         = (UINT32)ha->pio_address;
+	ptmp_isp->IoAddrLen      = (UINT32)ha->pio_length;
+	ptmp_isp->MemAddr        = (UINT32)ha->mmio_address;
+	ptmp_isp->MemAddrLen     = (UINT32)ha->mmio_length;
+	ptmp_isp->ChipType       = 0; /* ? */
+	ptmp_isp->InterruptLevel = host->irq;
+
+	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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_get_data
+ *	Handles all subcommands of the EXT_CC_GET_DATA command.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_data(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int	tmp_rval = 0;
+
+	switch(pext->SubCode) {
+	case EXT_SC_GET_STATISTICS:
+		tmp_rval = qla2x00_get_statistics(ha, pext, mode);
+		break;
+
+	case EXT_SC_GET_FC_STATISTICS:
+		tmp_rval = qla2x00_get_fc_statistics(ha, pext, mode);
+		break;
+
+	case EXT_SC_GET_PORT_SUMMARY:
+		tmp_rval = qla2x00_get_port_summary(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_DRIVER:
+		tmp_rval = qla2x00_query_driver(ha, pext, mode);
+		break;
+
+	case EXT_SC_QUERY_FW:
+		tmp_rval = qla2x00_query_fw(ha, pext, mode);
+		break;
+
+	case EXT_SC_GET_RNID:
+		tmp_rval = qla2x00_get_rnid_params(ha, pext, mode);
+		break;
+
+#if defined(ISP2300)
+	case EXT_SC_GET_BEACON_STATE:
+		tmp_rval = qla2x00_get_led_state(ha, pext, mode);
+		break;
+#endif
+
+	default:
+		DEBUG10(printk("%s(%ld): inst=%ld unknown SubCode %d.\n",
+		    __func__, ha->host_no, ha->instance, pext->SubCode);)
+		pext->Status = EXT_STATUS_UNSUPPORTED_SUBCODE;
+		break;
+	 }
+
+	return (tmp_rval);
+}
+
+/*
+ * qla2x00_get_statistics
+ *	Issues get_link_status mbx cmd and returns statistics
+ *	relavent to the specified adapter.
+ *
+ * Input:
+ *	ha = pointer to adapter struct of the specified adapter.
+ *	pext = pointer to EXT_IOCTL structure containing values from user.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_statistics(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	EXT_HBA_PORT_STAT	*ptmp_stat;
+	int		ret = 0;
+	link_stat_t	stat_buf;
+	uint8_t		rval;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint16_t	mb_stat[1];
+	uint32_t	transfer_size;
+
+
+	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 || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		return (ret);
+	}
+
+	/* Send mailbox cmd to get more. */
+	if ((rval = qla2x00_get_link_status(ha, ha->loop_id, &stat_buf,
+	    mb_stat)) != QLA_SUCCESS) {
+
+		if (rval == BIT_0) {
+			pext->Status = EXT_STATUS_NO_MEMORY;
+		} else if (rval == BIT_1) {
+			pext->Status = EXT_STATUS_MAILBOX;
+			pext->DetailStatus = EXT_DSTATUS_NOADNL_INFO;
+		} else {
+			pext->Status = EXT_STATUS_ERR;
+		}
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR mailbox failed. "
+		    "mb[0]=%x.\n",
+		    __func__, ha->host_no, ha->instance, mb_stat[0]);)
+		printk(KERN_WARNING
+		     "%s(%ld): inst=%ld ERROR mailbox failed. mb[0]=%x.\n",
+		    __func__, ha->host_no, ha->instance, mb_stat[0]);
+
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_stat,
+	    sizeof(EXT_HBA_PORT_STAT))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_HBA_PORT_STAT));)
+		return (ret);
+	}
+
+	ptmp_stat->ControllerErrorCount   =  ha->total_isp_aborts;
+	ptmp_stat->DeviceErrorCount       =  ha->total_dev_errs;
+	ptmp_stat->TotalIoCount           =  ha->total_ios;
+	ptmp_stat->TotalMBytes            =  ha->total_bytes >> 20;
+	ptmp_stat->TotalLipResets         =  ha->total_lip_cnt;
+	/*
+	   ptmp_stat->TotalInterrupts        =  ha->total_isr_cnt;
+	 */
+
+	ptmp_stat->TotalLinkFailures               = stat_buf.link_fail_cnt;
+	ptmp_stat->TotalLossOfSync                 = stat_buf.loss_sync_cnt;
+	ptmp_stat->TotalLossOfSignals              = stat_buf.loss_sig_cnt;
+	ptmp_stat->PrimitiveSeqProtocolErrorCount  = stat_buf.prim_seq_err_cnt;
+	ptmp_stat->InvalidTransmissionWordCount    = stat_buf.inval_xmit_word_cnt;
+	ptmp_stat->InvalidCRCCount                 = stat_buf.inval_crc_cnt;
+
+	/* now copy up the STATISTICS to user */
+	if (pext->ResponseLen < sizeof(EXT_HBA_PORT_STAT))
+		transfer_size = pext->ResponseLen;
+	else
+		transfer_size = sizeof(EXT_HBA_PORT_STAT);
+
+	usr_temp   = (uint8_t *)pext->ResponseAdr;
+	kernel_tmp = (uint8_t *)ptmp_stat;
+	ret = copy_to_user(usr_temp, kernel_tmp, transfer_size);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_get_fc_statistics
+ *	Issues get_link_status mbx cmd to the target device with
+ *	the specified WWN and returns statistics relavent to the
+ *	device.
+ *
+ * Input:
+ *	ha = pointer to adapter struct of the specified device.
+ *	pext = pointer to EXT_IOCTL structure containing values from user.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_fc_statistics(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	EXT_HBA_PORT_STAT	*ptmp_stat;
+	EXT_DEST_ADDR		addr_struct;
+	fc_port_t	*fcport;
+	int		port_found;
+	link_stat_t	stat_buf;
+	int		ret = 0;
+	uint8_t		rval;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint8_t		*req_name;
+	uint16_t	mb_stat[1];
+	uint32_t	transfer_size;
+
+
+	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;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy req buf.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	/* find the device's loop_id */
+	port_found = 0;
+	fcport = NULL;
+	switch (addr_struct.DestType) {
+	case EXT_DEF_DESTTYPE_WWPN:
+		req_name = addr_struct.DestAddr.WWPN;
+		list_for_each_entry(fcport, &ha->fcports, list) {
+			if (memcmp(fcport->port_name, req_name,
+			    EXT_DEF_WWN_NAME_SIZE) == 0) {
+				port_found = 1;
+				break;
+			}
+		}
+		break;
+
+	case EXT_DEF_DESTTYPE_WWNN:
+	case EXT_DEF_DESTTYPE_PORTID:
+	case EXT_DEF_DESTTYPE_FABRIC:
+	case EXT_DEF_DESTTYPE_SCSI:
+	default:
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		pext->DetailStatus = EXT_DSTATUS_NOADNL_INFO;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR Unsupported subcode "
+		    "address type.\n", __func__, ha->host_no, ha->instance);)
+		return (ret);
+
+		break;
+	}
+
+	if (!port_found) {
+		/* not found */
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		pext->DetailStatus = EXT_DSTATUS_TARGET;
+		return (ret);
+	}
+
+	/* check for suspended/lost device */
+	/*
+	   if (ha->fcport is suspended/lost) {
+	   pext->Status = EXT_STATUS_SUSPENDED;
+	   pext->DetailStatus = EXT_DSTATUS_TARGET;
+	   return pext->Status;
+	   }
+	 */
+
+	/* check on loop down */
+	if (ha->loop_state != LOOP_READY ||
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) ||
+	    ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+		     __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	/* Send mailbox cmd to get more. */
+	if ((rval = qla2x00_get_link_status(ha, fcport->loop_id,
+	    &stat_buf, mb_stat)) != QLA_SUCCESS) {
+		if (rval == BIT_0) {
+			pext->Status = EXT_STATUS_NO_MEMORY;
+		} else if (rval == BIT_1) {
+			pext->Status = EXT_STATUS_MAILBOX;
+			pext->DetailStatus = EXT_DSTATUS_NOADNL_INFO;
+		} else {
+			pext->Status = EXT_STATUS_ERR;
+		}
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR mailbox failed. "
+		    "mb[0]=%x.\n",
+		    __func__, ha->host_no, ha->instance, mb_stat[0]);)
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptmp_stat,
+	    sizeof(EXT_HBA_PORT_STAT))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_HBA_PORT_STAT));)
+		return (ret);
+	}
+
+	ptmp_stat->ControllerErrorCount   =  ha->total_isp_aborts;
+	ptmp_stat->DeviceErrorCount       =  ha->total_dev_errs;
+	ptmp_stat->TotalIoCount           =  ha->total_ios;
+	ptmp_stat->TotalMBytes            =  ha->total_bytes >> 20;
+	ptmp_stat->TotalLipResets         =  ha->total_lip_cnt;
+	/*
+	   ptmp_stat->TotalInterrupts        =  ha->total_isr_cnt;
+	 */
+
+	ptmp_stat->TotalLinkFailures               = stat_buf.link_fail_cnt;
+	ptmp_stat->TotalLossOfSync                 = stat_buf.loss_sync_cnt;
+	ptmp_stat->TotalLossOfSignals              = stat_buf.loss_sig_cnt;
+	ptmp_stat->PrimitiveSeqProtocolErrorCount  = stat_buf.prim_seq_err_cnt;
+	ptmp_stat->InvalidTransmissionWordCount    = stat_buf.inval_xmit_word_cnt;
+	ptmp_stat->InvalidCRCCount                 = stat_buf.inval_crc_cnt;
+
+	/* now copy up the STATISTICS to user */
+	if (pext->ResponseLen < sizeof(EXT_HBA_PORT_STAT))
+		transfer_size = pext->ResponseLen;
+	else
+		transfer_size = sizeof(EXT_HBA_PORT_STAT);
+
+	usr_temp   = (uint8_t *)pext->ResponseAdr;
+	kernel_tmp = (uint8_t *)ptmp_stat;
+	ret = copy_to_user(usr_temp, kernel_tmp, transfer_size);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_get_port_summary
+ *	Handles EXT_SC_GET_PORT_SUMMARY subcommand.
+ *	Returns values of devicedata and dd_entry list.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_port_summary(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	entry_cnt = 0;
+	uint32_t	port_cnt = 0;
+	uint32_t	top_xfr_size;
+	uint32_t	usr_no_of_entries = 0;
+	void		*start_of_entry_list;
+	fc_port_t	*fcport;
+
+	EXT_DEVICEDATA		*pdevicedata;
+	EXT_DEVICEDATAENTRY	*pdd_entry;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pdevicedata,
+	    sizeof(EXT_DEVICEDATA))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "pdevicedata requested=%d.\n",
+		    __func__, ha->host_no, ha->instance,
+		    sizeof(EXT_DEVICEDATA));)
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pdd_entry,
+	    sizeof(EXT_DEVICEDATAENTRY))) {
+		/* 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",
+		    __func__, ha->host_no, ha->instance,
+		    sizeof(EXT_DEVICEDATAENTRY));)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	/* Get maximum number of entries allowed in response buf */
+	usr_no_of_entries = pext->ResponseLen / sizeof(EXT_DEVICEDATAENTRY);
+
+	/* reserve some spaces to be filled in later. */
+	top_xfr_size = sizeof(pdevicedata->ReturnListEntryCount) +
+	    sizeof(pdevicedata->TotalDevices);
+
+	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);
+
+	DEBUG9(printk("%s(%ld): after get_fcport_summary, entry_cnt=%d.\n",
+	    __func__, ha->host_no, entry_cnt);)
+
+	/* If there's still space in user buffer, return devices found
+	 * in config file which don't actually exist (missing).
+	 */
+	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);
+#endif
+		} else {
+			ret = qla2x00_fo_missing_port_summary(ha, pdd_entry,
+			    start_of_entry_list, usr_no_of_entries,
+			    &entry_cnt, &pext->Status);
+
+		}
+	}
+
+	DEBUG9(printk(
+	    "%s(%ld): after get_missing_port_summary. entry_cnt=%d.\n",
+	    __func__, ha->host_no, entry_cnt);)
+
+	if (ret) {
+		DEBUG9_10(printk("%s(%ld): failed getting port info.\n",
+		    __func__, ha->host_no);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pdevicedata->ReturnListEntryCount = entry_cnt;
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		port_cnt++;
+	}
+	if (port_cnt > entry_cnt)
+		pdevicedata->TotalDevices = port_cnt;
+	else
+		pdevicedata->TotalDevices = entry_cnt;
+
+	DEBUG9(printk("%s(%ld): inst=%ld EXT_SC_GET_PORT_SUMMARY "
+	    "return entry cnt=%d port_cnt=%d.\n",
+	    __func__, ha->host_no, ha->instance,
+	    entry_cnt, port_cnt);)
+
+	/* 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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp "
+		    "devicedata buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_get_fcport_summary
+ *	Returns port values in user's dd_entry list.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pdd_entry = pointer to a temporary EXT_DEVICEDATAENTRY struct
+ *	pstart_of_entry_list = start of user addr of buffer for dd_entry entries
+ *	max_entries = max number of entries allowed by user buffer
+ *	pentry_cnt = pointer to total number of entries so far
+ *	ret_status = pointer to ioctl status field
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+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)
+{
+	int		ret = QLA_SUCCESS;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	b;
+	uint32_t	current_offset;
+	uint32_t	tgt;
+	uint32_t	transfer_size;
+	fc_port_t	*fcport;
+	os_tgt_t	*tq;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (*pentry_cnt >= max_entries)
+			break;
+
+		/* 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];
+
+		if (fcport->flags & FCF_FABRIC_DEVICE) {
+			pdd_entry->ControlFlags = EXT_DEF_GET_FABRIC_DEVICE;
+		} else {
+			pdd_entry->ControlFlags = 0;
+		}
+
+		pdd_entry->TargetAddress.Bus    = 0;
+		/* Retrieve 'Target' number for port */
+		for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+			if ((tq = ha->otgt[tgt]) == NULL) {
+				continue;
+			}
+
+			if (tq->fcport == NULL)
+				continue;
+
+			if (memcmp(fcport->port_name, tq->fcport->port_name,
+			    EXT_DEF_WWN_NAME_SIZE) == 0) {
+				pdd_entry->TargetAddress.Target = tgt;
+				break;
+			}
+		}
+		pdd_entry->TargetAddress.Lun    = 0;
+		pdd_entry->DeviceFlags          = 0;
+		pdd_entry->LoopID               = fcport->loop_id;
+		pdd_entry->BaseLunNumber        = 0;
+
+		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;
+		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 "
+			    "entry list buffer.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+
+		*pentry_cnt += 1;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * 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
+ *	file in user's dd_entry list.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pdd_entry = pointer to a temporary EXT_DEVICEDATAENTRY struct
+ *	pstart_of_entry_list = start of user addr of buffer for dd_entry entries
+ *	max_entries = max number of entries allowed by user buffer
+ *	pentry_cnt = pointer to total number of entries so far
+ *	ret_status = pointer to ioctl status field
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_std_missing_port_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)
+{
+	int		ret = QLA_SUCCESS;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint16_t	idx;
+	uint32_t	b;
+	uint32_t	current_offset;
+	uint32_t	transfer_size;
+	fcdev_t		*pdev;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	for (idx = 0; idx < MAX_FIBRE_DEVICES && *pentry_cnt < max_entries;
+	    idx++) {
+		pdev = &ha->fc_db[idx];
+
+		if (pdev->loop_id == PORT_UNUSED)
+			continue;
+
+		/* RLU: sanity check */
+		/*
+		if (qla2x00_is_wwn_zero(pdev->wwn) &&
+		   qla2x00_is_wwn_zero(pdev->name) && pdev->d_id.b24 == 0) {
+			continue;
+		}
+		*/
+
+		if (pdev->loop_id == PORT_AVAILABLE) {
+			DEBUG10(printk("%s: returning missing device "
+			    "%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+			    __func__,
+			    pdev->wwn[0], pdev->wwn[1],
+			    pdev->wwn[2], pdev->wwn[3],
+			    pdev->wwn[4], pdev->wwn[5],
+			    pdev->wwn[6], pdev->wwn[7]);)
+
+			/* This device was not found. Return
+			 * as unconfigured.
+			 */
+			memcpy(pdd_entry->NodeWWN, pdev->name, WWN_SIZE);
+			memcpy(pdd_entry->PortWWN, pdev->wwn, WWN_SIZE);
+
+			for (b = 0; b < 3 ; b++)
+				pdd_entry->PortID[b] = 0;
+
+			/* assume fabric dev so api won't translate the portid from loopid */
+			pdd_entry->ControlFlags = EXT_DEF_GET_FABRIC_DEVICE;
+
+			pdd_entry->TargetAddress.Bus    = 0;
+			pdd_entry->TargetAddress.Target = idx;
+			pdd_entry->TargetAddress.Lun    = 0;
+			pdd_entry->DeviceFlags          = 0;
+			pdd_entry->LoopID               = 0;
+			pdd_entry->BaseLunNumber        = 0;
+
+			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 == 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 {
+				*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);)
+				break;
+			}
+		}
+
+		if (ret || *ret_status) {
+			break;
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting. ret=%d.\n",
+	    __func__, ha->host_no, ha->instance, ret);)
+
+	return (ret);
+}
+#endif
+
+/*
+ * qla2x00_query_driver
+ *	Handles EXT_SC_QUERY_DRIVER subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_driver(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	transfer_size;
+	EXT_DRIVER	*pdriver_prop;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pdriver_prop,
+	    sizeof(EXT_DRIVER))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_DRIVER));)
+		return (ret);
+	}
+
+	sprintf(pdriver_prop->Version, qla2x00_version_str);
+	pdriver_prop->NumOfBus = MAX_BUSES;
+	pdriver_prop->TargetsPerBus = MAX_FIBRE_DEVICES;
+	pdriver_prop->LunsPerTarget = MAX_LUNS;
+	pdriver_prop->MaxTransferLen  = 0xffffffff;
+	pdriver_prop->MaxDataSegments = 0xffffffff;
+
+	if (ha->flags.enable_64bit_addressing == 1)
+		pdriver_prop->DmaBitAddresses = 64;
+	else
+		pdriver_prop->DmaBitAddresses = 32;
+
+	if (pext->ResponseLen < sizeof(EXT_DRIVER))
+		transfer_size = pext->ResponseLen;
+	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;
+ 	ret = copy_to_user(usr_temp, kernel_tmp, transfer_size);
+ 	if (ret) {
+ 		pext->Status = EXT_STATUS_COPY_ERR;
+ 		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+ 		    __func__, ha->host_no, ha->instance);)
+ 		qla2x00_free_ioctl_scrap_mem(ha);
+ 		return (ret);
+ 	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+ 	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+ 	    __func__, ha->host_no, ha->instance);)
+
+ 	return (ret);
+}
+
+/*
+ * qla2x00_query_fw
+ *	Handles EXT_SC_QUERY_FW subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_query_fw(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+ 	int		ret = 0;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	transfer_size;
+ 	EXT_FW		*pfw_prop;
+
+ 	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+ 	    __func__, ha->host_no, ha->instance);)
+
+ 	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pfw_prop,
+ 	    sizeof(EXT_FW))) {
+ 		/* not enough memory */
+ 		pext->Status = EXT_STATUS_NO_MEMORY;
+ 		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+ 		    "size requested=%ld.\n",
+ 		    __func__, ha->host_no, ha->instance,
+ 		    (ulong)sizeof(EXT_FW));)
+ 		return (ret);
+ 	}
+
+	pfw_prop->Version[0] = ha->fw_major_version; 
+	pfw_prop->Version[1] = ha->fw_minor_version; 
+	pfw_prop->Version[2] = ha->fw_subminor_version;
+
+	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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+	qla2x00_free_ioctl_scrap_mem(ha);
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+static int
+qla2x00_msiocb_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext, int cmd,
+    int mode)
+{
+	int		ret = 0;
+	fc_lun_t	*ptemp_fclun = NULL;	/* buf from scrap mem */
+	fc_port_t	*ptemp_fcport = NULL;	/* buf from scrap mem */
+	struct scsi_cmnd *pscsi_cmd = NULL;	/* buf from scrap mem */
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* check on current topology */
+	if ((ha->current_topology != ISP_CFG_F) &&
+	    (ha->current_topology != ISP_CFG_FL)) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR not in F/FL mode\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	if (ha->ioctl_mem_size <= 0) {
+		if (qla2x00_get_new_ioctl_dma_mem(ha,
+		    QLA_INITIAL_IOCTLMEM_SIZE) != QLA_SUCCESS) {
+
+			DEBUG9_10(printk("%s: ERROR cannot alloc DMA "
+			    "buffer size=%lx.\n",
+			    __func__, QLA_INITIAL_IOCTLMEM_SIZE);)
+
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+	}
+
+	if (pext->ResponseLen > ha->ioctl_mem_size) {
+		if (qla2x00_get_new_ioctl_dma_mem(ha, pext->ResponseLen) !=
+		    QLA_SUCCESS) {
+
+			DEBUG9_10(printk("%s: ERROR cannot alloc requested"
+			    "DMA buffer size %x.\n",
+			    __func__, pext->ResponseLen);)
+
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+
+		DEBUG9(printk("%s(%ld): inst=%ld rsp buf length larger than "
+		    "existing size. Additional mem alloc successful.\n",
+		    __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);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi_cmd,
+	    sizeof(struct scsi_cmnd))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "cmd size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(struct scsi_cmnd));)
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptemp_fcport,
+	    sizeof(fc_port_t))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "fcport size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(fc_port_t));)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&ptemp_fclun,
+	    sizeof(fc_lun_t))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "fclun size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(fc_lun_t));)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	/* initialize */
+	memset(ha->ioctl_mem, 0, ha->ioctl_mem_size);
+
+	switch (cmd) {
+	case EXT_CC_SEND_FCCT_PASSTHRU:
+		DEBUG9(printk("%s: got CT passthru cmd.\n", __func__));
+		ret = qla2x00_send_fcct(ha, pext, pscsi_cmd, ptemp_fcport,
+		    ptemp_fclun, mode);
+		break;
+#if defined(ISP2300)
+	case EXT_CC_SEND_ELS_PASSTHRU:
+		DEBUG9(printk("%s: got ELS passthru cmd.\n", __func__));
+		ret = qla2x00_send_els_passthru(ha, pext, pscsi_cmd,
+		    ptemp_fcport, ptemp_fclun, mode);
+		break;
+#endif
+	default:
+		DEBUG9_10(printk("%s: got invalid cmd.\n", __func__));
+		break;
+	}
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+#if defined(ISP2300)
+/*
+ * qla2x00_send_els_passthru
+ *	Passes the ELS command down to firmware as MSIOCB and
+ *	copies the response back when it completes.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_send_els_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi_cmd, fc_port_t *ptmp_fcport, fc_lun_t *ptmp_fclun,
+    int mode)
+{
+	int		ret = 0;
+
+	uint8_t		invalid_wwn = FALSE;
+	uint8_t		*ptmp_stat;
+	uint8_t		*pusr_req_buf;
+	uint8_t		*presp_payload;
+	uint32_t	payload_len;
+	uint32_t	usr_req_len;
+
+	int		found;
+	uint16_t	next_loop_id;
+	fc_port_t	*fcport;
+
+	EXT_ELS_PT_REQ	*pels_pt_req;
+
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	usr_req_len = pext->RequestLen - sizeof(EXT_ELS_PT_REQ);
+	if (usr_req_len > ha->ioctl_mem_size) {
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR ReqLen too big=%x.\n",
+		    __func__, ha->host_no, ha->instance, pext->RequestLen);)
+
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pels_pt_req,
+	    sizeof(EXT_ELS_PT_REQ))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "els_pt_req size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_ELS_PT_REQ));)
+		return (ret);
+	}
+
+	/* copy request buffer */
+	
+	ret = copy_from_user(pels_pt_req, pext->RequestAdr,
+	    sizeof(EXT_ELS_PT_REQ));
+	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);)
+
+		return (ret);
+	}
+
+	pusr_req_buf = (uint8_t *)pext->RequestAdr + sizeof(EXT_ELS_PT_REQ);
+	
+	ret = copy_from_user(ha->ioctl_mem, pusr_req_buf, usr_req_len);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR"
+		    "copy_from_user() of request buf failed (%d).\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld after copy request.\n",
+	    __func__, ha->host_no, ha->instance);)
+	
+	/* check on loop down (1) */
+	if (ha->loop_state != LOOP_READY || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) {
+
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld before dest port validation- loop not "
+		    "ready; cannot proceed.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_BUSY;
+
+		return (ret);
+	}
+
+	/*********************************/
+	/* Validate the destination port */
+	/*********************************/
+
+	/* first: WWN cannot be zero if no PID is specified */
+	invalid_wwn = qla2x00_is_wwn_zero(pels_pt_req->WWPN);
+	if (invalid_wwn && !(pels_pt_req->ValidMask & EXT_DEF_PID_VALID)) {
+		/* error: both are not set. */
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR no valid WWPN/PID\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		return (ret);
+	}
+
+	/* second: it cannot be the local/current HBA itself */
+	if (!invalid_wwn) {
+		if (memcmp(ha->init_cb->port_name, pels_pt_req->WWPN,
+		    EXT_DEF_WWN_NAME_SIZE) == 0) {
+
+			/* local HBA specified. */
+
+			pext->Status = EXT_STATUS_INVALID_PARAM;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR local HBA's "
+			    "WWPN found.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+			return (ret);
+		}
+	} else { /* using PID */
+		if (pels_pt_req->Id[1] == ha->d_id.r.d_id[2]
+		    && pels_pt_req->Id[2] == ha->d_id.r.d_id[1]
+		    && pels_pt_req->Id[3] == ha->d_id.r.d_id[0]) {
+
+			/* local HBA specified. */
+
+			pext->Status = EXT_STATUS_INVALID_PARAM;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR local HBA's "
+			    "PID found.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+			return (ret);
+		}
+	}
+
+	/************************/
+	/* Now find the loop ID */
+	/************************/
+
+	found = 0;
+	fcport = NULL;
+	list_for_each_entry(fcport, &ha->fcports, list) {
+		if (fcport->port_type != FCT_INITIATOR ||
+		    fcport->port_type != FCT_TARGET)
+			continue;
+
+		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;
+		}
+
+		found++;
+	}
+
+	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);)
+
+		return (ret);
+	}
+
+	/* 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 != QLA_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=%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);)
+
+			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);
+	}
+
+	/* check on data returned */
+	ptmp_stat = (uint8_t *)ha->ioctl_mem + FC_HEADER_LEN;
+
+	if (*ptmp_stat == ELS_STAT_LS_RJT) {
+		payload_len = FC_HEADER_LEN + ELS_RJT_LENGTH;
+
+	} else if (*ptmp_stat == ELS_STAT_LS_ACC) {
+		payload_len = pext->ResponseLen - sizeof(EXT_ELS_PT_REQ);
+
+	} else {
+		/* invalid. just copy the status word. */
+		DEBUG9_10(printk("%s(%ld): inst=%ld invalid stat "
+		    "returned =0x%x.\n",
+		    __func__, ha->host_no, ha->instance, *ptmp_stat);)
+
+		payload_len = FC_HEADER_LEN + 4;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld data dump-\n",
+	    __func__, ha->host_no, ha->instance);)
+	DEBUG9(qla2x00_dump_buffer((uint8_t *)ptmp_stat,
+	    pext->ResponseLen - sizeof(EXT_ELS_PT_REQ) - FC_HEADER_LEN);)
+	
+	/* Verify response buffer to be written */
+	/* 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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+#endif
+
+/*
+ * qla2x00_send_fcct
+ *	Passes the FC CT command down to firmware as MSIOCB and
+ *	copies the response back when it completes.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_send_fcct(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi_cmd, fc_port_t *ptmp_fcport, fc_lun_t *ptmp_fclun,
+    int mode)
+{
+	int		ret = 0;
+	int		tmp_rval = 0;
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (pext->RequestLen > ha->ioctl_mem_size) {
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR ReqLen too big=%x.\n",
+		    __func__, ha->host_no, ha->instance, pext->RequestLen);)
+
+		return (ret);
+	}
+
+	/* copy request buffer */
+	ret = copy_from_user(ha->ioctl_mem, pext->RequestAdr, pext->RequestLen);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf. ret=%d\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+
+
+		return (ret);
+	}
+
+	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);)
+
+			return (ret);
+		}
+
+		ha->flags.management_server_logged_in = 1;
+	}
+
+	DEBUG9(printk("%s(%ld): success login to MS.\n",
+	    __func__, ha->host_no);)
+
+	/* queue command */
+	if ((ret = qla2x00_ioctl_ms_queuecommand(ha, pext, pscsi_cmd,
+	    ptmp_fcport, ptmp_fclun, NULL))) {
+		return (ret);
+	}
+
+	if (CMD_COMPL_STATUS(pscsi_cmd) != 0 ||
+	    CMD_ENTRY_STATUS(pscsi_cmd) != 0) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld cmd returned error=%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pscsi_cmd));)
+		pext->Status = EXT_STATUS_ERR;
+		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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+static int
+qla2x00_ioctl_ms_queuecommand(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi_cmd, fc_port_t *pfcport, fc_lun_t *pfclun,
+    EXT_ELS_PT_REQ *pels_pt_req)
+{
+	int		ret = 0;
+	int		tmp_rval = 0;
+	os_lun_t	*plq;
+	os_tgt_t	*ptq;
+
+	srb_t		*sp = NULL;
+
+	/* alloc sp */
+	if ((sp = qla2x00_get_new_sp(ha)) == NULL) {
+
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s: ERROR cannot alloc sp %p.\n",
+		    __func__, sp);)
+
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld after alloc sp.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* setup sp for this command */
+	ptq = ha->ioctl->ioctl_tq;
+	plq = ha->ioctl->ioctl_lq;
+	sp->cmd = pscsi_cmd;
+	sp->flags = SRB_IOCTL;
+	sp->lun_queue = plq;
+	sp->tgt_queue = ptq;
+	pfclun->fcport = pfcport;
+	pfclun->lun = 0;
+	plq->fclun = pfclun;
+	plq->fclun->fcport->ha = ha;
+
+	/* init scsi_cmd */
+	pscsi_cmd->device->host = ha->host;
+	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 || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags)) {
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld before issue cmd- loop "
+		    "not ready.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_BUSY;
+
+		atomic_set(&sp->ref_count, 0);
+		add_to_free_queue (ha, sp);
+
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld going to issue command.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	tmp_rval = qla2x00_start_ms_cmd(ha, pext, sp, pels_pt_req);
+
+	DEBUG9(printk("%s(%ld): inst=%ld after issue command.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (tmp_rval != 0) {
+		/* We waited and post function did not get called */
+		DEBUG9_10(printk("%s(%ld): inst=%ld command timed out.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_MS_NO_RESPONSE;
+
+		atomic_set(&sp->ref_count, 0);
+		add_to_free_queue (ha, sp);
+
+		return (ret);
+	}
+
+	return (ret);
+}
+
+
+/*
+ * qla2x00_start_ms_cmd
+ *	Allocates an MSIOCB request pkt and sends out the passthru cmd.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_start_ms_cmd(scsi_qla_host_t *ha, EXT_IOCTL *pext, srb_t *sp,
+    EXT_ELS_PT_REQ *pels_pt_req)
+{
+#define	ELS_REQUEST_RCTL	0x22
+#define ELS_REPLY_RCTL		0x23
+
+	uint32_t	usr_req_len;
+	uint32_t	usr_resp_len;
+
+	ms_iocb_entry_t		*pkt;
+	unsigned long		cpu_flags = 0;
+
+
+	/* get spin lock for this operation */
+	spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+
+	/* Get MS request packet. */
+	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);
+
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld MSIOCB PT - could not get "
+		    "Request Packet.\n", __func__, ha->host_no, ha->instance);)
+		return (QLA_MEMORY_ALLOC_FAILED);
+	}
+
+	pkt->entry_type  = MS_IOCB_TYPE;
+	pkt->entry_count = 1;
+	
+	if (pels_pt_req != NULL) {
+		/* process ELS passthru command */
+		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->loop_id = pels_pt_req->Lid;
+		pkt->type    = 1; /* ELS frame */
+		
+		if (pext->ResponseLen != 0) {
+			pkt->r_ctl    = ELS_REQUEST_RCTL;
+			pkt->rx_id    = 0;
+		} else {
+			pkt->r_ctl    = ELS_REPLY_RCTL;
+			pkt->rx_id    = pels_pt_req->Rxid;
+		}
+	} else {
+		usr_req_len = pext->RequestLen;
+		usr_resp_len = pext->ResponseLen;
+		pkt->loop_id     = MANAGEMENT_SERVER;
+	}
+
+	DEBUG9_10(printk("%s(%ld): inst=%ld using loop_id=%02x req_len=%d, "
+	    "resp_len=%d. Initializing pkt.\n",
+	    __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;
+
+	/*
+	 * Loading command payload address. user request is assumed to have
+	 * been copied to ioctl_mem.
+	 */
+	pkt->dseg_req_address[0] = LSD(ha->ioctl_mem_phys);
+	pkt->dseg_req_address[1] = MSD(ha->ioctl_mem_phys);
+	pkt->dseg_req_length = usr_req_len;
+
+	/* loading response payload address */
+	pkt->dseg_rsp_address[0] = LSD(ha->ioctl_mem_phys);
+	pkt->dseg_rsp_address[1] = MSD(ha->ioctl_mem_phys);
+	pkt->dseg_rsp_length = usr_resp_len;
+
+	/* set flag to indicate IOCTL MSIOCB cmd in progress */
+	ha->ioctl->MSIOCB_InProgress = 1;
+	ha->ioctl->ioctl_tov = pkt->timeout + 1; /* 1 second more */
+
+	/* prepare for receiving completion. */
+	qla2x00_ioctl_sem_init(ha);
+
+	/* Issue command to ISP */
+	qla2x00_isp_cmd(ha);
+
+	ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+	add_timer(&ha->ioctl->cmpl_timer);
+
+	DEBUG9(printk("%s(%ld): inst=%ld releasing hardware_lock.\n",
+	    __func__, ha->host_no, ha->instance);)
+	spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+	DEBUG9(printk("%s(%ld): inst=%ld sleep for completion.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	down(&ha->ioctl->cmpl_sem);
+
+	del_timer(&ha->ioctl->cmpl_timer);
+
+	if (ha->ioctl->MSIOCB_InProgress == 1) {
+	 	DEBUG9_10(printk("%s(%ld): inst=%ld timed out. exiting.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return QLA_FUNCTION_FAILED;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return QLA_SUCCESS;
+}
+
+/*
+ * qla2x00_wwpn_to_scsiaddr
+ *	Handles the EXT_CC_WWPN_TO_SCSIADDR command.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_wwpn_to_scsiaddr(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	fc_port_t	*tgt_fcport;
+	os_tgt_t	*tq;
+	uint8_t		tmp_wwpn[EXT_DEF_WWN_NAME_SIZE];
+	uint32_t	b, tgt, l;
+	EXT_SCSI_ADDR	tmp_addr;
+
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (pext->RequestLen != EXT_DEF_WWN_NAME_SIZE ||
+	    pext->ResponseLen < sizeof(EXT_SCSI_ADDR)) {
+		/* error */
+		DEBUG9_10(printk("%s(%ld): inst=%ld invalid WWN buffer size %d "
+		    "received.\n",
+		    __func__, ha->host_no, ha->instance, pext->ResponseLen);)
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		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 "
+		    "failed(%d) on request buf.\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+		pext->Status = EXT_STATUS_COPY_ERR;
+		return (ret);
+	}
+
+	tq = NULL;
+	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
+		if (ha->otgt[tgt] == NULL) {
+			continue;
+		}
+
+		tq = ha->otgt[tgt];
+		if (tq->fcport == NULL) {
+			break;
+		}
+
+		tgt_fcport = tq->fcport;
+		if (memcmp(tmp_wwpn, tgt_fcport->port_name,
+		    EXT_DEF_WWN_NAME_SIZE) == 0) {
+			break;
+		}
+	}
+
+	if (tq == NULL || tgt >= MAX_TARGETS) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld target dev not found. "
+		    "tq=%p, tgt=%x.\n", __func__, ha->host_no, ha->instance,
+		    tq, tgt);)
+		return (ret);
+	}
+
+	if (tq->fcport == NULL) { 	/* dg 08/14/01 */
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld target port not found. "
+		    "tq=%p, tgt=%x.\n",
+		    __func__, ha->host_no, ha->instance, tq, tgt);)
+		return (ret);
+	}	
+
+	/* Currently we only have bus 0 and no translation on LUN */
+	b = 0;
+	l = 0;
+
+	/*
+	 * Return SCSI address. Currently no translation is done for
+	 * LUN.
+	 */
+	tmp_addr.Bus = b;
+	tmp_addr.Target = tgt;
+	tmp_addr.Lun = l;
+	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);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	DEBUG9(printk(KERN_INFO
+	    "%s(%ld): Found t%d l%d for %02x%02x%02x%02x%02x%02x%02x%02x.\n",
+	    __func__, ha->host_no,
+	    tmp_addr.Target, tmp_addr.Lun,
+	    tmp_wwpn[0], tmp_wwpn[1], tmp_wwpn[2], tmp_wwpn[3],
+	    tmp_wwpn[4], tmp_wwpn[5], tmp_wwpn[6], tmp_wwpn[7]);)
+
+	pext->Status = EXT_STATUS_OK;
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_scsi_passthru
+ *	Handles all subcommands of the EXT_CC_SEND_SCSI_PASSTHRU command.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_scsi_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	struct scsi_cmnd *pscsi_cmd = NULL;
+	struct scsi_device *pscsi_device = NULL;
+
+	DEBUG9(printk("%s(%ld): entered.\n",
+	    __func__, ha->host_no);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi_cmd,
+	    sizeof(struct scsi_cmnd))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(struct scsi_cmnd));)
+		return (ret);
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi_device,
+	    sizeof(struct scsi_device))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(struct scsi_device));)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	switch(pext->SubCode) {
+	case EXT_SC_SEND_SCSI_PASSTHRU:
+		DEBUG9(printk("%s(%ld): got SCSI passthru cmd.\n",
+		    __func__, ha->host_no);)
+		ret = qla2x00_sc_scsi_passthru(ha, pext, pscsi_cmd,
+		    pscsi_device, mode);
+		break;
+	case EXT_SC_SEND_FC_SCSI_PASSTHRU:
+		DEBUG9(printk("%s(%ld): got FC SCSI passthru cmd.\n",
+		    __func__, ha->host_no);)
+		ret = qla2x00_sc_fc_scsi_passthru(ha, pext, pscsi_cmd,
+		    pscsi_device, mode);
+		break;
+	case EXT_SC_SCSI3_PASSTHRU:
+		DEBUG9(printk("%s(%ld): got SCSI3 passthru cmd.\n",
+		    __func__, ha->host_no);)
+		ret = qla2x00_sc_scsi3_passthru(ha, pext, pscsi_cmd,
+		    pscsi_device, mode);
+		break;
+	default:
+		DEBUG9_10(printk("%s: got invalid cmd.\n", __func__));
+		break;
+	}
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+	DEBUG9(printk("%s(%ld): exiting.\n",
+	    __func__, ha->host_no);)
+
+	return (ret);
+}
+
+static int
+qla2x00_ioctl_scsi_queuecommand(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi_cmd, struct scsi_device *pscsi_dev,
+    fc_port_t *pfcport, fc_lun_t *pfclun)
+{
+	int		ret = 0;
+	int		ret2 = 0;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	lun = 0, tgt = 0;
+#if defined(QL_DEBUG_LEVEL_9)
+	uint32_t	b, t, l;
+#endif
+	os_lun_t	*lq = NULL;
+	os_tgt_t	*tq = NULL;
+	srb_t		*sp = NULL;
+
+
+	DEBUG9(printk("%s(%ld): entered.\n",
+	    __func__, ha->host_no);)
+
+	if ((sp = qla2x00_get_new_sp(ha)) == NULL) {
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR cannot alloc sp.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		return (ret);
+	}
+
+	switch(pext->SubCode) {
+	case EXT_SC_SEND_SCSI_PASSTHRU:
+
+		tgt = pscsi_cmd->device->id;
+		lun = pscsi_cmd->device->lun;
+
+		tq = (os_tgt_t *)TGT_Q(ha, tgt);
+		lq = (os_lun_t *)LUN_Q(ha, tgt, lun);
+
+		break;
+	case EXT_SC_SEND_FC_SCSI_PASSTHRU:
+		if (pfcport == NULL || pfclun == NULL) {
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			DEBUG9_10(printk("%s(%ld): inst=%ld received invalid "
+			    "pointers. fcport=%p fclun=%p.\n",
+			    __func__, ha->host_no, ha->instance, pfcport, pfclun);)
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+			return (ret);
+		}
+
+		if (pscsi_cmd->cmd_len != 6 && pscsi_cmd->cmd_len != 0x0A &&
+		    pscsi_cmd->cmd_len != 0x0C && pscsi_cmd->cmd_len != 0x10) {
+			DEBUG9_10(printk(KERN_WARNING
+			    "%s(%ld): invalid Cdb Length 0x%x received.\n",
+			    __func__, ha->host_no,
+			    pscsi_cmd->cmd_len);)
+			pext->Status = EXT_STATUS_INVALID_PARAM;
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+			return (ret);
+		}
+		tq = ha->ioctl->ioctl_tq;
+		lq = ha->ioctl->ioctl_lq;
+
+		break;
+	case EXT_SC_SCSI3_PASSTHRU:
+		if (pfcport == NULL || pfclun == NULL) {
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			DEBUG9_10(printk("%s(%ld): inst=%ld received invalid "
+			    "pointers. fcport=%p fclun=%p.\n",
+			    __func__,
+			    ha->host_no, ha->instance, pfcport, pfclun);)
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+			return (ret);
+		}
+
+		tq = ha->ioctl->ioctl_tq;
+		lq = ha->ioctl->ioctl_lq;
+
+		break;
+	default:
+		break;
+	}
+
+	sp->ha                = ha;
+	sp->cmd               = pscsi_cmd;
+	sp->flags             = SRB_IOCTL;
+
+	/* set local fc_scsi_cmd's sp pointer to sp */
+	CMD_SP(pscsi_cmd)  = (void *) sp;
+
+	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);
+		if (ret) {
+			pext->Status = EXT_STATUS_COPY_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy "
+			    "failed(%d) on rsp buf.\n",
+			    __func__, ha->host_no, ha->instance, ret);)
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+
+			return (ret);
+		}
+	}
+
+	pscsi_cmd->device->host    = ha->host;
+
+	/* mark this as a special delivery and collection command */
+	pscsi_cmd->flags     = 0;
+	pscsi_cmd->scsi_done = qla2x00_scsi_pt_done;
+
+	pscsi_cmd->device               = pscsi_dev;
+	pscsi_cmd->device->simple_tags  = 0;
+	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 (tq && lq) {
+		if (pext->SubCode == EXT_SC_SEND_SCSI_PASSTHRU) {
+			pfcport = lq->fclun->fcport;
+			pfclun = lq->fclun;
+
+			if (pfcport == NULL || pfclun == NULL) {
+				pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+				DEBUG9_10(printk("%s(%ld): inst=%ld scsi pt "
+				    "rcvd invalid ptrs. fcport=%p fclun=%p.\n",
+				    __func__, ha->host_no, ha->instance,
+				    pfcport, pfclun);)
+				atomic_set(&sp->ref_count, 0);
+				add_to_free_queue (ha, sp);
+				return (ret);
+			}
+
+		} else {
+			if (pext->SubCode == EXT_SC_SCSI3_PASSTHRU)
+				/* The LUN value is of FCP LUN format */
+				tq->olun[pfclun->lun & 0xff] = lq;
+			else
+				tq->olun[pfclun->lun] = lq;
+
+			tq->ha = ha;
+			lq->fclun = pfclun;
+		}
+
+		sp->lun_queue = lq;
+		sp->tgt_queue = tq;
+		sp->fclun = pfclun;
+	} else {
+		/* cannot send command without a queue. force error. */
+		pfcport = NULL;
+		DEBUG9_10(printk("%s(%ld): error dev q not found. tq=%p lq=%p.\n",
+		    __func__, ha->host_no, tq, lq);)
+	}
+
+	DEBUG9({
+		b = pscsi_cmd->device->channel;
+		t = pscsi_cmd->device->id;
+		l = pscsi_cmd->device->lun;
+	})
+	DEBUG9(printk("%s(%ld): ha instance=%ld tq=%p lq=%p "
+	    "pfclun=%p pfcport=%p.\n",
+	    __func__, ha->host_no, ha->instance, tq, lq, pfclun,
+	    pfcport);)
+	DEBUG9(printk("\tCDB=%02x %02x %02x %02x; b=%x t=%x l=%x.\n",
+	    pscsi_cmd->cmnd[0], pscsi_cmd->cmnd[1], pscsi_cmd->cmnd[2],
+	    pscsi_cmd->cmnd[3], b, t, l);)
+
+	/*
+	 * Check the status of the port
+	 */
+	if (pext->SubCode == EXT_SC_SEND_SCSI_PASSTHRU) {
+		if (qla2x00_check_tgt_status(ha, pscsi_cmd)) {
+			DEBUG9_10(printk("%s(%ld): inst=%ld check_tgt_status "
+			    "failed.\n",
+			    __func__, ha->host_no, ha->instance);)
+			pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+			return (ret);
+		}
+	} else {
+		ret2 = qla2x00_check_port_status(ha, pfcport);
+		if (ret2 != QLA_SUCCESS) {
+			DEBUG9_10(printk("%s(%ld): inst=%ld check_port_status "
+			    "failed.\n",
+			    __func__, ha->host_no, ha->instance);)
+			if (ret2 == QLA_BUSY)
+				pext->Status = EXT_STATUS_BUSY;
+			else
+				pext->Status = EXT_STATUS_ERR;
+			atomic_set(&sp->ref_count, 0);
+			add_to_free_queue (ha, sp);
+			return (ret);
+		}
+	}
+
+	/* set flag to indicate IOCTL SCSI PassThru in progress */
+	ha->ioctl->SCSIPT_InProgress = 1;
+	ha->ioctl->ioctl_tov = (int)QLA_PT_CMD_DRV_TOV;
+
+	/* prepare for receiving completion. */
+	qla2x00_ioctl_sem_init(ha);
+	CMD_COMPL_STATUS(pscsi_cmd) = (int) IOCTL_INVALID_STATUS;
+
+	/* send command to adapter */
+	DEBUG9(printk("%s(%ld): inst=%ld sending command.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	add_to_pending_queue(ha, sp);
+
+	qla2x00_next(ha);
+
+	DEBUG9(printk("%s(%ld): exiting.\n",
+	    __func__, ha->host_no);)
+	return (ret);
+}
+
+/*
+ * qla2x00_sc_scsi_passthru
+ *	Handles EXT_SC_SEND_SCSI_PASSTHRU subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_sc_scsi_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi_cmd, struct scsi_device *pscsi_device, int mode)
+{
+	int		ret = 0;
+	uint8_t		*usr_temp, *kernel_tmp;
+	uint32_t	i;
+
+	uint32_t	transfer_len;
+
+	EXT_SCSI_PASSTHRU	*pscsi_pass;
+
+	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",
+		    __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) !=
+		    QLA_SUCCESS) {
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR cannot alloc "
+			    "requested DMA buffer size %x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    pext->ResponseLen);)
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+	}
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi_pass,
+	    sizeof(EXT_SCSI_PASSTHRU))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_SCSI_PASSTHRU));)
+		return (ret);
+	}
+
+	/* clear ioctl_mem to be used */
+	memset(ha->ioctl_mem, 0, ha->ioctl_mem_size);
+
+	/* Copy request buffer */
+	usr_temp = (uint8_t *)pext->RequestAdr;
+	kernel_tmp = (uint8_t *)pscsi_pass;
+	ret = copy_from_user(kernel_tmp, usr_temp, sizeof(EXT_SCSI_PASSTHRU));
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf ret=%d\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+		return (ret);
+	}
+
+	/* set target coordinates */
+	pscsi_cmd->device->id = pscsi_pass->TargetAddr.Target;
+	pscsi_cmd->device->lun = pscsi_pass->TargetAddr.Lun;
+
+	/* Verify target exists */
+	if (TGT_Q(ha, pscsi_cmd->device->id) == NULL) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR tgt %d not found.\n",
+		    __func__,
+		    ha->host_no, ha->instance, pscsi_cmd->device->id));
+		return (ret);
+	}
+
+	/* Copy over cdb */
+
+	if (pscsi_pass->CdbLength == 6) {
+		pscsi_cmd->cmd_len = 6;
+
+	} else if (pscsi_pass->CdbLength == 10) {
+		pscsi_cmd->cmd_len = 0x0A;
+
+	} else if (pscsi_pass->CdbLength == 12) {
+		pscsi_cmd->cmd_len = 0x0C;
+
+	} else {
+		printk(KERN_WARNING
+		    "%s: Unsupported Cdb Length=%x.\n",
+		    __func__, pscsi_pass->CdbLength);
+
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		return (ret);
+	}
+
+	memcpy(pscsi_cmd->data_cmnd, pscsi_pass->Cdb, pscsi_cmd->cmd_len);
+	memcpy(pscsi_cmd->cmnd, pscsi_pass->Cdb, pscsi_cmd->cmd_len);
+
+	DEBUG9(printk("%s Dump of cdb buffer:\n", __func__);)
+	DEBUG9(qla2x00_dump_buffer((uint8_t *)&pscsi_cmd->data_cmnd[0],
+	    pscsi_cmd->cmd_len);)
+
+	if (pscsi_pass->Direction == EXT_DEF_SCSI_PASSTHRU_DATA_OUT) {
+		pscsi_cmd->sc_data_direction = SCSI_DATA_WRITE;
+	} else {
+		pscsi_cmd->sc_data_direction = SCSI_DATA_READ;
+	}
+
+	/* send command to adapter */
+	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))) {
+		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);)
+
+	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);)
+
+	if (ha->ioctl->SCSIPT_InProgress == 1) {
+
+		printk(KERN_WARNING
+		    "qla2x00: scsi%ld ERROR passthru command timeout.\n",
+		    ha->host_no);
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	if (CMD_COMPL_STATUS(pscsi_cmd) == (int)IOCTL_INVALID_STATUS) {
+
+		DEBUG9(printk("%s(%ld): inst=%ld ERROR - cmd not completed.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_ERR;
+		return (ret);
+	}
+
+	switch (CMD_COMPL_STATUS(pscsi_cmd)) {
+	case CS_INCOMPLETE:
+	case CS_ABORTED:
+	case CS_PORT_UNAVAILABLE:
+	case CS_PORT_LOGGED_OUT:
+	case CS_PORT_CONFIG_CHG:
+	case CS_PORT_BUSY:
+		DEBUG9_10(printk("%s(%ld): inst=%ld cs err = %x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pscsi_cmd));)
+		pext->Status = EXT_STATUS_BUSY;
+
+		return (ret);
+	}
+
+	if ((CMD_SCSI_STATUS(pscsi_cmd) & 0xff) != 0) {
+
+		/* have done the post function */
+		pext->Status       = EXT_STATUS_SCSI_STATUS;
+		pext->DetailStatus = CMD_SCSI_STATUS(pscsi_cmd) & 0xff;
+
+		DEBUG9_10(printk(KERN_INFO "%s(%ld): inst=%ld scsi err. "
+		    "host status =0x%x, scsi status = 0x%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pscsi_cmd), CMD_SCSI_STATUS(pscsi_cmd));)
+	} else {
+		if (CMD_COMPL_STATUS(pscsi_cmd) == CS_DATA_OVERRUN) {
+			pext->Status = EXT_STATUS_DATA_OVERRUN;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld return overrun.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+		} else if (CMD_COMPL_STATUS(pscsi_cmd) == CS_DATA_UNDERRUN &&
+		    (CMD_SCSI_STATUS(pscsi_cmd) & SS_RESIDUAL_UNDER)) {
+ 			pext->Status = EXT_STATUS_DATA_UNDERRUN;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld return underrun.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+		} else if (CMD_COMPL_STATUS(pscsi_cmd) != 0 ||
+		    CMD_SCSI_STATUS(pscsi_cmd) != 0) {
+			pext->Status = EXT_STATUS_ERR;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld, cs err=%x, scsi err=%x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    CMD_COMPL_STATUS(pscsi_cmd),
+			    CMD_SCSI_STATUS(pscsi_cmd));)
+
+			return (ret);
+		}
+ 	}
+
+	/* copy up structure to make sense data available to user */
+	pscsi_pass->SenseLength = CMD_ACTUAL_SNSLEN(pscsi_cmd);
+	if (CMD_ACTUAL_SNSLEN(pscsi_cmd)) {
+		for (i = 0; i < CMD_ACTUAL_SNSLEN(pscsi_cmd); i++)
+			pscsi_pass->SenseData[i] = pscsi_cmd->sense_buffer[i];
+
+		DEBUG10(printk("%s Dump of sense buffer:\n", __func__);)
+		DEBUG10(qla2x00_dump_buffer(
+		    (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,
+		    sizeof(EXT_SCSI_PASSTHRU));
+		if (ret) {
+			pext->Status = EXT_STATUS_COPY_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy sense "
+			    "buffer.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+	}
+
+	if (pscsi_pass->Direction == EXT_DEF_SCSI_PASSTHRU_DATA_IN) {
+		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))) {
+
+			transfer_len = pext->ResponseLen -
+			    CMD_RESID_LEN(pscsi_cmd);
+
+			pext->ResponseLen = transfer_len;
+		} else {
+			transfer_len = pext->ResponseLen;
+		}
+
+		DEBUG9_10(printk(KERN_INFO
+		    "%s(%ld): final transferlen=%d.\n",
+		    __func__, ha->host_no, transfer_len);)
+
+		usr_temp   = (uint8_t *)pext->ResponseAdr;
+		kernel_tmp = (uint8_t *)ha->ioctl_mem;
+		ret = copy_to_user(usr_temp, kernel_tmp, transfer_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);
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_sc_fc_scsi_passthru
+ *	Handles EXT_SC_SEND_FC_SCSI_PASSTHRU subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_sc_fc_scsi_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pfc_scsi_cmd, struct scsi_device *pfc_scsi_device,
+    int mode)
+{
+	int			ret = 0;
+	int			port_found, lun_found;
+	fc_lun_t		temp_fclun;
+	struct list_head	*fcpl;
+	fc_port_t		*fcport;
+	struct list_head	*fcll;
+	fc_lun_t		*fclun;
+	uint8_t			*usr_temp, *kernel_tmp;
+	uint32_t		i;
+
+	uint32_t		transfer_len;
+
+	EXT_FC_SCSI_PASSTHRU	*pfc_scsi_pass;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+	DEBUG9_10(
+		if (!pfc_scsi_cmd || !pfc_scsi_device) {
+			printk("%s(%ld): invalid pointer received. "
+			    "pfc_scsi_cmd=%p, pfc_scsi_device=%p.\n",
+			    __func__, ha->host_no, pfc_scsi_cmd,
+			    pfc_scsi_device);
+			return (ret);
+		}
+	)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pfc_scsi_pass,
+	    sizeof(EXT_FC_SCSI_PASSTHRU))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_FC_SCSI_PASSTHRU));)
+		return (ret);
+	}
+
+	/* 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) !=
+		    QLA_SUCCESS) {
+
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR cannot alloc "
+			    "requested DMA buffer size %x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    pext->ResponseLen);)
+
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+	}
+
+	/* Copy request buffer */
+	usr_temp   = (uint8_t *)pext->RequestAdr;
+	kernel_tmp = (uint8_t *)pfc_scsi_pass;
+	ret = copy_from_user(kernel_tmp, usr_temp,
+	    sizeof(EXT_FC_SCSI_PASSTHRU));
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf ret=%d\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+
+		return (ret);
+	}
+
+	if (pfc_scsi_pass->FCScsiAddr.DestType != EXT_DEF_DESTTYPE_WWPN) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR -wrong Dest type. \n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	fcport = NULL;
+	fclun = NULL;
+ 	port_found = lun_found = 0;
+ 	list_for_each(fcpl, &ha->fcports) {
+ 		fcport = list_entry(fcpl, fc_port_t, list);
+ 
+		if (memcmp(fcport->port_name,
+		    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN, 8) != 0) {
+			continue;
+
+		}
+ 		port_found++;
+ 
+ 		list_for_each(fcll, &fcport->fcluns) {
+ 			fclun = list_entry(fcll, fc_lun_t, list);
+
+			if (fclun->lun == pfc_scsi_pass->FCScsiAddr.Lun) {
+				/* Found the right LUN */
+				lun_found++;
+				break;
+			}
+		}
+		break;
+	}
+
+	if (!port_found) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld FC AddrFormat - DID NOT "
+		    "FIND Port matching WWPN.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	/* v5.21b9 - use a temporary fclun */
+	if (!lun_found) {
+		fclun = &temp_fclun;
+		fclun->fcport = fcport;
+		fclun->lun = pfc_scsi_pass->FCScsiAddr.Lun;
+	}
+
+	/* set target coordinates */
+	pfc_scsi_cmd->device->id = 0xff; /* not used. just put something there. */
+	pfc_scsi_cmd->device->lun = pfc_scsi_pass->FCScsiAddr.Lun;
+
+	DEBUG9(printk("%s(%ld): inst=%ld cmd for loopid=%04x L=%04x "
+	    "WWPN=%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+	    __func__, ha->host_no, ha->instance, fclun->fcport->loop_id,
+	    pfc_scsi_cmd->device->lun,
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[0],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[1],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[2],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[3],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[4],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[5],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[6],
+	    pfc_scsi_pass->FCScsiAddr.DestAddr.WWPN[7]);)
+
+	if (pfc_scsi_pass->CdbLength == 6) {
+		pfc_scsi_cmd->cmd_len = 6;
+
+	} else if (pfc_scsi_pass->CdbLength == 0x0A) {
+		pfc_scsi_cmd->cmd_len = 0x0A;
+
+	} else if (pfc_scsi_pass->CdbLength == 0x0C) {
+		pfc_scsi_cmd->cmd_len = 0x0C;
+
+	} else if (pfc_scsi_pass->CdbLength == 0x10) {
+		pfc_scsi_cmd->cmd_len = 0x10;
+	} else {
+		printk(KERN_WARNING
+		    "qla2x00_ioctl: FC_SCSI_PASSTHRU Unknown Cdb Length=%x.\n",
+		    pfc_scsi_pass->CdbLength);
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+
+		return (ret);
+	}
+
+	memcpy(pfc_scsi_cmd->data_cmnd, pfc_scsi_pass->Cdb,
+	    pfc_scsi_cmd->cmd_len);
+	memcpy(pfc_scsi_cmd->cmnd, pfc_scsi_pass->Cdb,
+	    pfc_scsi_cmd->cmd_len);
+
+	DEBUG9(printk("%s Dump of cdb buffer:\n", __func__);)
+	DEBUG9(qla2x00_dump_buffer((uint8_t *)&pfc_scsi_cmd->data_cmnd[0], 16);)
+
+	if (pfc_scsi_pass->Direction == EXT_DEF_SCSI_PASSTHRU_DATA_OUT) {
+		pfc_scsi_cmd->sc_data_direction = SCSI_DATA_WRITE;
+	} else {
+		pfc_scsi_cmd->sc_data_direction = SCSI_DATA_READ;
+	}
+
+	/* 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, pfc_scsi_cmd,
+	    pfc_scsi_device, fcport, fclun))) {
+		return (ret);
+	}
+
+	/* Wait for comletion */
+	ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+	add_timer(&ha->ioctl->cmpl_timer);
+
+	down(&ha->ioctl->cmpl_sem);
+
+	del_timer(&ha->ioctl->cmpl_timer);
+
+	if (ha->ioctl->SCSIPT_InProgress == 1) {
+
+		printk(KERN_WARNING
+		    "qla2x00: scsi%ld ERROR passthru command timeout.\n",
+		    ha->host_no);
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+	}
+
+	if (CMD_COMPL_STATUS(pfc_scsi_cmd) == (int)IOCTL_INVALID_STATUS) {
+
+		DEBUG9(printk("%s(%ld): inst=%ld ERROR. cmd not completed.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_ERR;
+		return (ret);
+	}
+
+	switch (CMD_COMPL_STATUS(pfc_scsi_cmd)) {
+	case CS_INCOMPLETE:
+	case CS_ABORTED:
+	case CS_PORT_UNAVAILABLE:
+	case CS_PORT_LOGGED_OUT:
+	case CS_PORT_CONFIG_CHG:
+	case CS_PORT_BUSY:
+		DEBUG9_10(printk("%s(%ld): inst=%ld cs err = %x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pfc_scsi_cmd));)
+		pext->Status = EXT_STATUS_BUSY;
+
+		return (ret);
+	}
+
+	if ((CMD_COMPL_STATUS(pfc_scsi_cmd) == CS_DATA_UNDERRUN) ||
+	    (CMD_SCSI_STATUS(pfc_scsi_cmd) != 0))  {
+
+		/* have done the post function */
+		pext->Status       = EXT_STATUS_SCSI_STATUS;
+		/* The SDMAPI is only concerned with the low-order byte */
+		pext->DetailStatus = CMD_SCSI_STATUS(pfc_scsi_cmd) & 0xff;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld data underrun or scsi err. "
+		    "host status =0x%x, scsi status = 0x%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pfc_scsi_cmd),
+		    CMD_SCSI_STATUS(pfc_scsi_cmd));)
+
+	} else if (CMD_COMPL_STATUS(pfc_scsi_cmd) != 0) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld cs err=%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pfc_scsi_cmd));)
+		pext->Status = EXT_STATUS_ERR;
+
+		return (ret);
+	}
+
+	/* Process completed command */
+	DEBUG9(printk("%s(%ld): inst=%ld done. host status=0x%x, "
+	    "scsi status=0x%x.\n",
+	    __func__, ha->host_no, ha->instance, CMD_COMPL_STATUS(pfc_scsi_cmd),
+	    CMD_SCSI_STATUS(pfc_scsi_cmd));)
+
+	/* copy up structure to make sense data available to user */
+	pfc_scsi_pass->SenseLength = CMD_ACTUAL_SNSLEN(pfc_scsi_cmd);
+	if (CMD_ACTUAL_SNSLEN(pfc_scsi_cmd)) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld sense[0]=%x sense[2]=%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    pfc_scsi_cmd->sense_buffer[0],
+		    pfc_scsi_cmd->sense_buffer[2]);)
+
+		for (i = 0; i < CMD_ACTUAL_SNSLEN(pfc_scsi_cmd); i++) {
+			pfc_scsi_pass->SenseData[i] =
+			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,
+		    sizeof(EXT_FC_SCSI_PASSTHRU));
+		if (ret) {
+			pext->Status = EXT_STATUS_COPY_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy sense "
+			    "buffer.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+	}
+
+	if (pfc_scsi_pass->Direction == EXT_DEF_SCSI_PASSTHRU_DATA_IN) {
+
+		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))) {
+
+			transfer_len = pext->ResponseLen -
+			    CMD_RESID_LEN(pfc_scsi_cmd);
+
+			pext->ResponseLen = transfer_len;
+		} else {
+			transfer_len = pext->ResponseLen;
+		}
+
+		usr_temp = (uint8_t *)pext->ResponseAdr;
+		kernel_tmp = (uint8_t *)ha->ioctl_mem;
+		ret = copy_to_user(usr_temp, kernel_tmp, transfer_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);
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_sc_scsi3_passthru
+ *	Handles EXT_SC_SCSI3_PASSTHRU subcommand.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = EXT_IOCTL structure pointer.
+ *	mode = not used.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_sc_scsi3_passthru(scsi_qla_host_t *ha, EXT_IOCTL *pext,
+    struct scsi_cmnd *pscsi3_cmd, struct scsi_device *pscsi3_device, int mode)
+{
+#define MAX_SCSI3_CDB_LEN	16
+
+	int			ret = 0;
+	int			found;
+	fc_lun_t		temp_fclun;
+	fc_lun_t		*fclun = NULL;
+	struct list_head	*fcpl;
+	fc_port_t		*fcport;
+	uint8_t			*usr_temp, *kernel_tmp;
+	uint32_t		transfer_len;
+	uint32_t		i;
+
+	EXT_FC_SCSI_PASSTHRU	*pscsi3_pass;
+
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+	DEBUG9_10(
+		if (!pscsi3_cmd || !pscsi3_device) {
+			printk("%s(%ld): invalid pointer received. "
+			    "pfc_scsi_cmd=%p, pfc_scsi_device=%p.\n",
+			    __func__, ha->host_no, pscsi3_cmd,
+			    pscsi3_device);
+			return (ret);
+		}
+	)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&pscsi3_pass,
+	    sizeof(EXT_FC_SCSI_PASSTHRU))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_FC_SCSI_PASSTHRU));)
+		return (ret);
+	}
+
+
+	/* 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) !=
+		    QLA_SUCCESS) {
+
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR cannot "
+			    "alloc requested DMA buffer size=%x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    pext->ResponseLen);)
+
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+	}
+
+	/* Copy request buffer */
+	usr_temp   = (uint8_t *)pext->RequestAdr;
+	kernel_tmp = (uint8_t *)pscsi3_pass;
+	ret = copy_from_user(kernel_tmp, usr_temp,
+	    sizeof(EXT_FC_SCSI_PASSTHRU));
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf ret=%d\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+		return (ret);
+	}
+
+	if (pscsi3_pass->FCScsiAddr.DestType != EXT_DEF_DESTTYPE_WWPN) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR - wrong Dest type.\n",
+		    __func__, ha->host_no, ha->instance);)
+		ret = EXT_STATUS_ERR;
+
+		return (ret);
+	}
+
+	/*
+	 * For this ioctl command we always assume all 16 bytes are
+	 * initialized.
+	 */
+	if (pscsi3_pass->CdbLength != MAX_SCSI3_CDB_LEN) {
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR -wrong Cdb Len %d.\n",
+		    __func__, ha->host_no, ha->instance,
+		    pscsi3_pass->CdbLength);)
+		return (ret);
+	}
+
+ 	fcport = NULL;
+ 	found = 0;
+ 	list_for_each(fcpl, &ha->fcports) {
+ 		fcport = list_entry(fcpl, fc_port_t, list);
+
+		if (memcmp(fcport->port_name,
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN, 8) == 0) {
+			found++;
+			break;
+		}
+	}
+	if (!found) {
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld DID NOT FIND Port for WWPN "
+		    "%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[0],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[1],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[2],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[3],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[4],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[5],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[6],
+		    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[7]);)
+
+		return (ret);
+	}
+
+	/* Use a temporary fclun to send out the command. */
+	fclun = &temp_fclun;
+	fclun->fcport = fcport;
+	fclun->lun = pscsi3_pass->FCScsiAddr.Lun;
+
+	/* set target coordinates */
+	pscsi3_cmd->device->id = 0xff;  /* not used. just put something there. */
+	pscsi3_cmd->device->lun = pscsi3_pass->FCScsiAddr.Lun;
+
+	DEBUG9(printk("%s(%ld): inst=%ld cmd for loopid=%04x L=%04x "
+	    "WWPN=%02x%02x%02x%02x%02x%02x%02x%02x.\n",
+	    __func__, ha->host_no, ha->instance,
+	    fclun->fcport->loop_id, pscsi3_cmd->device->lun,
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[0],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[1],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[2],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[3],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[4],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[5],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[6],
+	    pscsi3_pass->FCScsiAddr.DestAddr.WWPN[7]);)
+
+	pscsi3_cmd->cmd_len = MAX_SCSI3_CDB_LEN;
+	memcpy(pscsi3_cmd->data_cmnd, pscsi3_pass->Cdb, pscsi3_cmd->cmd_len);
+	memcpy(pscsi3_cmd->cmnd, pscsi3_pass->Cdb, pscsi3_cmd->cmd_len);
+
+	DEBUG9(printk("%s(%ld): inst=%ld cdb buffer dump:\n",
+	    __func__, ha->host_no, ha->instance);)
+	DEBUG9(qla2x00_dump_buffer((uint8_t *)&pscsi3_cmd->data_cmnd[0], 16);)
+
+	if ((ret = qla2x00_ioctl_scsi_queuecommand(ha, pext, pscsi3_cmd,
+	    pscsi3_device, fcport, fclun))) {
+		return (ret);
+	}
+
+	/* Wait for comletion */
+	ha->ioctl->cmpl_timer.expires = jiffies + ha->ioctl->ioctl_tov * HZ;
+	add_timer(&ha->ioctl->cmpl_timer);
+
+	down(&ha->ioctl->cmpl_sem);
+
+	del_timer(&ha->ioctl->cmpl_timer);
+
+	if (ha->ioctl->SCSIPT_InProgress == 1) {
+
+		printk(KERN_WARNING
+		    "qla2x00: inst=%ld scsi%ld ERROR PT command timeout.\n",
+		    ha->host_no, ha->instance);
+
+		pext->Status = EXT_STATUS_DEV_NOT_FOUND;
+		return (ret);
+
+	}
+	if (CMD_COMPL_STATUS(pscsi3_cmd) == (int)IOCTL_INVALID_STATUS) {
+
+		DEBUG9(printk("%s(%ld): inst=%ld ERROR - cmd not completed.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		pext->Status = EXT_STATUS_ERR;
+		return (ret);
+	}
+
+	if ((CMD_SCSI_STATUS(pscsi3_cmd) & 0xff) != 0) {
+
+		/* have done the post function */
+		pext->Status       = EXT_STATUS_SCSI_STATUS;
+		pext->DetailStatus = CMD_SCSI_STATUS(pscsi3_cmd) & 0xff;
+
+		DEBUG9_10(printk(KERN_INFO "%s(%ld): inst=%ld scsi err. "
+		    "host status =0x%x, scsi status = 0x%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    CMD_COMPL_STATUS(pscsi3_cmd), CMD_SCSI_STATUS(pscsi3_cmd));)
+
+	} else {
+		if (CMD_COMPL_STATUS(pscsi3_cmd) == CS_DATA_OVERRUN) {
+			pext->Status = EXT_STATUS_DATA_OVERRUN;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld return overrun.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+		} else if (CMD_COMPL_STATUS(pscsi3_cmd) == CS_DATA_UNDERRUN &&
+		    (CMD_SCSI_STATUS(pscsi3_cmd) & SS_RESIDUAL_UNDER)) {
+ 			pext->Status = EXT_STATUS_DATA_UNDERRUN;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld return underrun.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+		} else if (CMD_COMPL_STATUS(pscsi3_cmd) != 0 ||
+		    CMD_SCSI_STATUS(pscsi3_cmd) != 0) {
+			pext->Status = EXT_STATUS_ERR;
+
+			DEBUG9_10(printk(KERN_INFO
+			    "%s(%ld): inst=%ld, cs err=%x, scsi err=%x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    CMD_COMPL_STATUS(pscsi3_cmd),
+			    CMD_SCSI_STATUS(pscsi3_cmd));)
+
+			return (ret);
+		}
+	}
+
+	/* Process completed command */
+	DEBUG9(printk("%s(%ld): inst=%ld done. host status=0x%x, "
+	    "scsi status=0x%x.\n",
+	    __func__, ha->host_no, ha->instance, CMD_COMPL_STATUS(pscsi3_cmd),
+	    CMD_SCSI_STATUS(pscsi3_cmd));)
+
+	/* copy up structure to make sense data available to user */
+	pscsi3_pass->SenseLength = CMD_ACTUAL_SNSLEN(pscsi3_cmd);
+	if (CMD_ACTUAL_SNSLEN(pscsi3_cmd)) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld sense[0]=%x sense[2]=%x.\n",
+		    __func__, ha->host_no, ha->instance,
+		    pscsi3_cmd->sense_buffer[0],
+		    pscsi3_cmd->sense_buffer[2]);)
+
+		for (i = 0; i < CMD_ACTUAL_SNSLEN(pscsi3_cmd); i++) {
+			pscsi3_pass->SenseData[i] =
+			    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,
+		    sizeof(EXT_FC_SCSI_PASSTHRU));
+		if (ret) {
+			pext->Status = EXT_STATUS_COPY_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy sense "
+			    "buffer.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+	}
+
+	if (pscsi3_pass->Direction == EXT_DEF_SCSI_PASSTHRU_DATA_IN) {
+
+		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))) {
+
+			transfer_len = pext->ResponseLen -
+			    CMD_RESID_LEN(pscsi3_cmd);
+
+			pext->ResponseLen = transfer_len;
+		} else {
+			transfer_len = pext->ResponseLen;
+		}
+
+		DEBUG9_10(printk(KERN_INFO
+		    "%s(%ld): final transferlen=%d.\n",
+		    __func__, ha->host_no, transfer_len);)
+
+		usr_temp = (uint8_t *)pext->ResponseAdr;
+		kernel_tmp = (uint8_t *)ha->ioctl_mem;
+		ret = copy_to_user(usr_temp, kernel_tmp, transfer_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);
+		}
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_send_els_rnid
+ *	IOCTL to send extended link service RNID command to a target.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_send_els_rnid(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	EXT_RNID_REQ	*tmp_rnid;
+	int		ret = 0;
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+	uint32_t	copy_len;
+	int		found;
+	uint16_t	next_loop_id;
+	fc_port_t	*fcport;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (ha->ioctl_mem_size < SEND_RNID_RSP_SIZE) {
+		if (qla2x00_get_new_ioctl_dma_mem(ha,
+		    SEND_RNID_RSP_SIZE) != QLA_SUCCESS) {
+
+			DEBUG9_10(printk("%s(%ld): inst=%ld ERROR cannot alloc "
+			    "DMA buffer. size=%x.\n",
+			    __func__, ha->host_no, ha->instance,
+			    SEND_RNID_RSP_SIZE);)
+
+			pext->Status = EXT_STATUS_NO_MEMORY;
+			return (ret);
+		}
+	}
+
+	if (pext->RequestLen != sizeof(EXT_RNID_REQ)) {
+		/* parameter error */
+		DEBUG9_10(printk("%s(%ld): inst=%ld invalid req length %d.\n",
+		    __func__, ha->host_no, ha->instance, pext->RequestLen);)
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		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);)
+
+	if (qla2x00_get_ioctl_scrap_mem(ha, (void **)&tmp_rnid,
+	    sizeof(EXT_RNID_REQ))) {
+		/* not enough memory */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_RNID_REQ));)
+		return (ret);
+	}
+
+	ret = copy_from_user(tmp_rnid, pext->RequestAdr, pext->RequestLen);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf ret=%d\n",
+		    __func__, ha->host_no, ha->instance, ret);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	/* Find loop ID of the device */
+	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);)
+
+		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,
+			    fcport->node_name, EXT_DEF_WWN_NAME_SIZE))
+				continue;
+
+			if (fcport->port_type == FCT_TARGET) {
+				if (atomic_read(&fcport->state) != FCS_ONLINE)
+					continue;
+			} else { /* FCT_INITIATOR */
+				if (!fcport->d_id.b24)
+					continue;
+			}
+
+			found++;
+		}
+		break;
+
+	case EXT_DEF_TYPE_WWPN:
+		DEBUG9(printk("%s(%ld): inst=%ld got port name.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		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,
+			    fcport->port_name, EXT_DEF_WWN_NAME_SIZE))
+				continue;
+
+			if (fcport->port_type == FCT_TARGET) {
+				if (atomic_read(&fcport->state) != FCS_ONLINE)
+					continue;
+			} else { /* FCT_INITIATOR */
+				if (!fcport->d_id.b24)
+					continue;
+			}
+
+			found++;
+		}
+		break;
+
+	case EXT_DEF_TYPE_PORTID:
+		DEBUG9(printk("%s(%ld): inst=%ld got port ID.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		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],
+			    &fcport->d_id, EXT_DEF_PORTID_SIZE_ACTUAL))
+				continue;
+
+			if (fcport->port_type == FCT_TARGET) {
+				if (atomic_read(&fcport->state) != FCS_ONLINE)
+					continue;
+			}
+
+			found++;
+		}
+		break;
+	default:
+		/* parameter error */
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk("%s(%ld): inst=%ld invalid addressing type.\n",
+		    __func__, ha->host_no, ha->instance);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	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;
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	/* check on loop down */
+	if (ha->loop_state != LOOP_READY || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	/* 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 != QLA_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=%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);
+		}
+	}
+
+	/* Send command */
+	DEBUG9(printk("%s(%ld): inst=%ld sending rnid cmd.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	ret = qla2x00_send_rnid_mbx(ha, fcport->loop_id,
+	    (uint8_t)tmp_rnid->DataFormat, ha->ioctl_mem_phys,
+	    SEND_RNID_RSP_SIZE, &mb[0]);
+
+	if (ret != QLA_SUCCESS) {
+		/* error */
+		pext->Status = EXT_STATUS_ERR;
+
+                DEBUG9_10(printk("%s(%ld): inst=%ld FAILED. rval = %x.\n",
+                    __func__, ha->host_no, ha->instance, mb[0]);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld rnid cmd sent ok.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* Copy the response */
+	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) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld rsp buf verify WRITE error\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);
+		}
+
+		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);
+}
+
+/*
+ * qla2x00_get_rnid_params
+ *	IOCTL to get RNID parameters of the adapter.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_rnid_params(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int		ret = 0;
+	int		tmp_rval = 0;
+	uint32_t	copy_len;
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* check on loop down */
+	if (ha->loop_state != LOOP_READY || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		return (ret);
+	}
+
+	/* Send command */
+	tmp_rval = qla2x00_get_rnid_params_mbx(ha, ha->ioctl_mem_phys,
+	    sizeof(EXT_RNID_DATA), &mb[0]);
+
+	if (tmp_rval != QLA_SUCCESS) {
+		/* error */
+		pext->Status = EXT_STATUS_ERR;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld cmd FAILED=%x.\n",
+		    __func__, ha->host_no, ha->instance, mb[0]);)
+		return (ret);
+	}
+
+	/* 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) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld verify WRITE rsp buf error\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);
+		}
+
+		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);
+}
+
+#if defined(ISP2300)
+/*
+ *qla2x00_get_led_state
+ *	IOCTL to get QLA2XXX HBA LED state
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_led_state(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int			ret = 0;
+	EXT_BEACON_CONTROL	ptmp_led_state;
+
+
+	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",
+		     __func__, ha->host_no, ha->instance);)
+		 return (ret);
+	 }
+
+	if (ha->beacon_blink_led) {
+		ptmp_led_state.State = EXT_DEF_GRN_BLINK_ON;
+	} else {
+		ptmp_led_state.State = EXT_DEF_GRN_BLINK_OFF;
+
+	}
+
+	ret = copy_to_user(pext->ResponseAdr,
+	    &ptmp_led_state, sizeof(EXT_BEACON_CONTROL));
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR copy rsp buffer.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+
+}
+#endif
+
+/*
+ * qla2x00_set_host_data
+ *	IOCTL command to set host/adapter related data.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_set_host_data(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int	ret = 0;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* switch on command subcode */
+	switch (pext->SubCode) {
+	case EXT_SC_SET_RNID:
+		ret = qla2x00_set_rnid_params(ha, pext, mode);
+		break;
+#if defined(ISP2300)
+	case EXT_SC_SET_BEACON_STATE:
+		ret = qla2x00_set_led_state(ha, pext, mode);
+		break;
+#endif
+	default:
+		/* function not supported. */
+		pext->Status = EXT_STATUS_UNSUPPORTED_SUBCODE;
+		break;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+
+/*
+ * qla2x00_set_rnid_params
+ *	IOCTL to set RNID parameters of the adapter.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_set_rnid_params(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	EXT_SET_RNID_REQ	*tmp_set;
+	EXT_RNID_DATA	*tmp_buf;
+	int		ret = 0;
+	int		tmp_rval = 0;
+	uint16_t	mb[MAILBOX_REGISTER_COUNT];
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* check on loop down */
+	if (ha->loop_state != LOOP_READY || 
+	    test_bit(CFG_ACTIVE, &ha->cfg_flags) ||
+	    test_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags) ||
+	    test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || ha->dpc_active) {
+
+		pext->Status = EXT_STATUS_BUSY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld loop not ready.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		return (ret);
+	}
+
+	if (pext->RequestLen != sizeof(EXT_SET_RNID_REQ)) {
+		/* parameter error */
+		pext->Status = EXT_STATUS_INVALID_PARAM;
+		DEBUG9_10(printk("%s(%ld): inst=%ld invalid request length.\n",
+		    __func__, ha->host_no, ha->instance);)
+		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 */
+		pext->Status = EXT_STATUS_NO_MEMORY;
+		DEBUG9_10(printk("%s(%ld): inst=%ld scrap not big enough. "
+		    "size requested=%ld.\n",
+		    __func__, ha->host_no, ha->instance,
+		    (ulong)sizeof(EXT_SET_RNID_REQ));)
+		return (ret);
+	}
+
+	ret = copy_from_user(tmp_set, pext->RequestAdr, pext->RequestLen);
+	if (ret) {
+		pext->Status = EXT_STATUS_COPY_ERR;
+		DEBUG9_10(printk(
+		    "%s(%ld): inst=%ld ERROR copy req buf ret=%d\n", 
+		    __func__, ha->host_no, ha->instance, ret);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return(ret);
+	}
+
+	tmp_rval = qla2x00_get_rnid_params_mbx(ha, ha->ioctl_mem_phys,
+	    sizeof(EXT_RNID_DATA), &mb[0]);
+	if (tmp_rval != QLA_SUCCESS) {
+		/* error */
+		pext->Status = EXT_STATUS_ERR;
+
+                DEBUG9_10(printk("%s(%ld): inst=%ld read cmd FAILED=%x.\n",
+                    __func__, ha->host_no, ha->instance, mb[0]);)
+		qla2x00_free_ioctl_scrap_mem(ha);
+		return (ret);
+	}
+
+	tmp_buf = (EXT_RNID_DATA *)ha->ioctl_mem;
+	/* Now set the params. */
+	memcpy(tmp_buf->IPVersion, tmp_set->IPVersion, 2);
+	memcpy(tmp_buf->UDPPortNumber, tmp_set->UDPPortNumber, 2);
+	memcpy(tmp_buf->IPAddress, tmp_set->IPAddress, 16);
+	tmp_rval = qla2x00_set_rnid_params_mbx(ha, ha->ioctl_mem_phys,
+	    sizeof(EXT_RNID_DATA), &mb[0]);
+
+	if (tmp_rval != QLA_SUCCESS) {
+		/* error */
+		pext->Status = EXT_STATUS_ERR;
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld set cmd FAILED=%x.\n",
+		    __func__, ha->host_no, ha->instance, mb[0]);)
+	} else {
+		pext->Status = EXT_STATUS_OK;
+		DEBUG9(printk("%s(%ld): inst=%ld exiting normally.\n",
+		    __func__, ha->host_no, ha->instance);)
+	}
+
+	qla2x00_free_ioctl_scrap_mem(ha);
+	return (ret);
+}
+
+#if defined(ISP2300)
+/*
+ *qla2x00_set_led_state
+ *	IOCTL to set QLA2XXX HBA LED state
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	pext = User space CT arguments pointer.
+ *	mode = flags.
+ *
+ * Returns:
+ *	0 = success
+ *	others = errno value
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_set_led_state(scsi_qla_host_t *ha, EXT_IOCTL *pext, int mode)
+{
+	int			ret = 0;
+	EXT_BEACON_CONTROL	ptmp_led_state;
+	device_reg_t		*reg = ha->iobase;
+	uint8_t			gpio_enable, gpio_data;
+	unsigned long		cpu_flags = 0;
+
+
+	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",
+		     __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	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",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	if (ptmp_led_state.State != EXT_DEF_GRN_BLINK_ON &&
+	    ptmp_led_state.State != EXT_DEF_GRN_BLINK_OFF) {
+		pext->Status = EXT_STATUS_ERR;
+		DEBUG9_10(printk("%s(%ld): inst=%ld Unknown Led State set "
+		    "operation.\n",
+		    __func__, ha->host_no, ha->instance);)
+		return (ret);
+	}
+
+	if (ptmp_led_state.State == EXT_DEF_GRN_BLINK_ON) {
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld start blinking led \n",
+		    __func__, ha->host_no, ha->instance);)
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld firmware options "
+		    "fw_options1=0x%x fw_options2=0x%x fw_options3=0x%x.\n",
+		     __func__, ha->host_no, ha->instance, ha->fw_options[1],
+		     ha->fw_options[2], ha->fw_options[3]);)
+
+		ha->fw_options[1] &= ~FO1_SET_EMPHASIS_SWING;
+		ha->fw_options[1] |= FO1_DISABLE_GPIO6_7;
+
+		if (qla2x00_set_fw_options(ha, ha->fw_options) != QLA_SUCCESS) {
+			pext->Status = EXT_STATUS_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld set"
+			    "firmware  options failed.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+
+		/* Turn of both LEDs */
+		spin_lock_irqsave(&ha->hardware_lock, cpu_flags);
+		gpio_enable = RD_REG_WORD(&reg->gpioe);
+		gpio_data   = RD_REG_WORD(&reg->gpiod);
+		gpio_enable |= GPIO_LED_MASK;
+
+		/* Set the modified gpio_enable values */
+		WRT_REG_WORD(&reg->gpioe,gpio_enable);
+
+		/* Clear out previously set LED colour */
+		gpio_data &= ~GPIO_LED_MASK;
+		WRT_REG_WORD(&reg->gpiod,gpio_data);
+		spin_unlock_irqrestore(&ha->hardware_lock, cpu_flags);
+
+		/* Let the per HBA timer kick off the blinking process*/
+		ha->beacon_blink_led = 1;
+		ha->beacon_green_on = 0;
+	} /* end of if(ptmp_led_state.State == EXT_DEF_GRN_BLINK_ON) ) */
+
+	if (ptmp_led_state.State == EXT_DEF_GRN_BLINK_OFF) {
+		DEBUG9_10(printk("%s(%ld): inst=%ld stop blinking led \n",
+		    __func__, ha->host_no, ha->instance);)
+		ha->beacon_blink_led = 0;
+		ha->beacon_green_on = 1; /* Turn green led on */
+		qla2x00_blink_led(ha);
+
+		DEBUG9_10(printk("%s(%ld): inst=%ld firmware"
+		    " options fw_options1=0x%x fw_options2=0x%x "
+		    "fw_options3=0x%x.\n",
+		    __func__, ha->host_no, ha->instance, ha->fw_options[1],
+		    ha->fw_options[2], ha->fw_options[3]);)
+
+		ha->fw_options[1] &= ~FO1_SET_EMPHASIS_SWING;
+		ha->fw_options[1] &= ~FO1_DISABLE_GPIO6_7;
+
+		if (qla2x00_set_fw_options(ha, ha->fw_options) != QLA_SUCCESS) {
+			pext->Status = EXT_STATUS_ERR;
+			DEBUG9_10(printk("%s(%ld): inst=%ld set"
+			    "firmware  options failed.\n",
+			    __func__, ha->host_no, ha->instance);)
+			return (ret);
+		}
+	} /* end of if(ptmp_led_state.State == EXT_DEF_GRN_BLINK_OFF) */
+
+	pext->Status       = EXT_STATUS_OK;
+	pext->DetailStatus = EXT_STATUS_OK;
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return (ret);
+}
+#endif
+
+/*
+ * qla2x00_waitq_sem_timeout
+ *	Timeout function to be called when a thread on the wait_q
+ *	queue timed out.
+ *
+ * Input:
+ *	data = data pointer for timeout function.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_waitq_sem_timeout(unsigned long data)
+{
+	wait_q_t *tmp_ptr = (wait_q_t *)data;
+
+	DEBUG9(printk("%s: entered.\n", __func__);)
+
+	if (tmp_ptr != NULL) {
+		DEBUG9(printk("%s: wait_q thread=%p.\n", __func__, tmp_ptr);)
+		up(&tmp_ptr->wait_q_sem);
+	}
+
+	DEBUG9(printk("%s: exiting.\n", __func__);)
+
+}
+
+/*
+ * qla2x00_get_ioctl_access
+ *	Serialization routine for the ioctl commands.
+ *	When succeeded the exiting thread gains "access" and
+ *	proceeds, otherwise it gives up and returns error.
+ *	Each thread would wait tov seconds before giving up.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	tov = timeout value in seconds
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_get_ioctl_access(scsi_qla_host_t *ha, uint32_t tov)
+{
+	int		rval;
+	int		prev_val = 1;
+	unsigned long	cpu_flags;
+	struct timer_list	tmp_access_timer;
+	wait_q_t	*ptmp_wq = NULL;
+
+	rval = QLA_SUCCESS;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	while (1) {
+		if (test_bit(IOCTL_WANT, (void *)&(ha->ioctl->access_bits)) ==
+		    0) {
+
+			DEBUG9(printk("%s(%ld): going to test access_bits.\n",
+			    __func__, ha->host_no);)
+
+			/* No one else is waiting. Go ahead and try to
+			 * get access.
+			 */
+			if ((prev_val = test_and_set_bit(IOCTL_ACTIVE,
+			    (void *)&ha->ioctl->access_bits)) == 0) {
+				break;
+			}
+		}
+
+		/* wait for previous command to finish */
+		DEBUG9(printk("%s(%ld): inst=%ld access_bits=%x. busy. "
+		    "Waiting for access. curr time=0x%lx.\n",
+		    __func__, ha->host_no, ha->instance,
+		    ha->ioctl->access_bits, jiffies);)
+
+		/*
+		 * Init timer and get semaphore from wait_q. if we got valid
+		 * semaphore pointer the IOCTL_WANT flag would also had
+		 * been set.
+		 */
+		qla2x00_wait_q_add(ha, &ptmp_wq);
+
+		if (ptmp_wq == NULL) {
+			/* queue full? problem? can't proceed. */
+			DEBUG9_10(printk("%s(%ld): ERROR no more wait_q "
+			    "allowed. exiting.\n", __func__, ha->host_no);)
+
+			break;
+		}
+
+		init_timer(&tmp_access_timer);
+
+		tmp_access_timer.data = (unsigned long)ptmp_wq;
+		tmp_access_timer.function =
+		    (void (*)(unsigned long))qla2x00_waitq_sem_timeout;
+		tmp_access_timer.expires = jiffies + tov * HZ;
+
+		DEBUG9(printk("%s(%ld): adding timer. "
+		    "curr time=0x%lx timeoutval=0x%lx.\n",
+		    __func__, ha->host_no, jiffies, tmp_access_timer.expires);)
+
+		/* wait. */
+		add_timer(&tmp_access_timer);
+
+		DEBUG9(printk("%s(%ld): inst=%ld wait_q %p going to sleep. "
+		    "current time=0x%lx.\n",
+		    __func__, ha->host_no, ha->instance, ptmp_wq, jiffies);)
+
+		if (down_interruptible(&ptmp_wq->wait_q_sem)) {
+			DEBUG9_10(printk("%s(%ld): inst=%ld signal received "
+			    "while spleeping.\n", __func__, ha->host_no,
+			    ha->instance);)
+			del_timer(&tmp_access_timer);
+			prev_val = 1;
+			break;
+		}
+
+		DEBUG9(printk("%s(%ld): inst=%ld wait_q %p woke up. current "
+		    "time=0x%lx.\n",
+		    __func__, ha->host_no, ha->instance, ptmp_wq, jiffies);)
+
+		del_timer(&tmp_access_timer);
+
+		/* try to get lock again. we'll test later to see
+		 * if we actually got the lock.
+		 */
+		prev_val = test_and_set_bit(IOCTL_ACTIVE,
+		    (void *)&(ha->ioctl->access_bits));
+
+		/*
+		 * After we tried to get access then we check to see
+		 * if we need to clear the IOCTL_WANT flag. Don't clear
+		 * this flag before trying to get access or another
+		 * new thread might grab it before we did.
+		 */
+		spin_lock_irqsave(&ha->ioctl->wait_q_lock, cpu_flags);
+		if (prev_val != 0) {
+			/* We'll return with error.
+			 * Make sure we remove ourselves from wait_q.
+			 */
+			qla2x00_wait_q_remove(ha, ptmp_wq);
+		}
+		if (ha->ioctl->wait_q_head == NULL) {
+			/* We're the last thread in wait_q queue. */
+			clear_bit(IOCTL_WANT, (void *)&ha->ioctl->access_bits);
+		}
+		qla2x00_wait_q_memb_free(ha, ptmp_wq);
+		spin_unlock_irqrestore(&ha->ioctl->wait_q_lock, cpu_flags);
+
+		break;
+	}
+
+	if (prev_val == 0) {
+		/* We got the lock */
+		DEBUG9(printk("%s(%ld): inst=%ld got access.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+	} else {
+		/* Timeout or resource error. */
+		DEBUG9_10(printk("%s(%ld): inst=%ld timed out "
+		    "or wait_q error.\n", __func__, ha->host_no, ha->instance);)
+
+		rval = QLA_FUNCTION_TIMEOUT;
+	}
+
+	return (rval);
+}
+
+/*
+ * qla2x00_release_ioctl_access
+ *	Serialization routine for the ioctl commands.
+ *	This releases "access" and checks on wai_q queue. If there's
+ *	another thread waiting then wakes it up.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *	tov = timeout value in seconds
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_release_ioctl_access(scsi_qla_host_t *ha)
+{
+	wait_q_t	*next_thread = NULL;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	clear_bit(IOCTL_ACTIVE, (void *)&(ha->ioctl->access_bits));
+
+	/* Wake up one pending ioctl thread in wait_q */
+	qla2x00_wait_q_get_next(ha, &next_thread);
+	if (next_thread) {
+		DEBUG9(printk(
+		    "%s(%ld): inst=%ld found wait_q. Wake up waitq %p\n",
+		    __func__, ha->host_no, ha->instance, &next_thread);)
+		up(&next_thread->wait_q_sem);
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	return QLA_SUCCESS;
+}
+
+/*
+ * qla2x00_wait_q_memb_alloc
+ *	Finds a free wait_q member from the array. Must already got the
+ *	wait_q_lock spinlock.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_wait_q_memb_alloc(scsi_qla_host_t *ha, wait_q_t **ret_wait_q_memb)
+{
+	uint8_t		i;
+	wait_q_t	*ptmp = NULL;
+
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	for (i = 0; i < MAX_IOCTL_WAIT_THREADS; i++) {
+		if (!(ha->ioctl->wait_q_arr[i].flags & WQ_IN_USE)) {
+			ha->ioctl->wait_q_arr[i].flags |= WQ_IN_USE;
+			ptmp = &ha->ioctl->wait_q_arr[i];
+			break;
+		}
+	}
+
+	*ret_wait_q_memb = ptmp;
+
+	DEBUG9(printk("%s(%ld): inst=%ld return waitq_memb=%p.\n",
+	    __func__, ha->host_no, ha->instance, *ret_wait_q_memb);)
+}
+
+/*
+ * qla2x00_wait_q_memb_free
+ *	Frees the specified wait_q member. Must already got the wait_q_lock
+ *	spinlock.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_wait_q_memb_free(scsi_qla_host_t *ha, wait_q_t *pfree_wait_q_memb)
+{
+	DEBUG9(printk("%s(%ld): inst=%ld entered.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	if (pfree_wait_q_memb != NULL) {
+		DEBUG9(printk("%s(%ld): freeing %p.\n",
+		    __func__, ha->host_no, pfree_wait_q_memb);)
+		pfree_wait_q_memb->flags &= ~WQ_IN_USE;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+}
+
+/*
+ * qla2x00_wait_q_add
+ *	Allocates a wait_q_t struct and add to the wait_q list.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static int
+qla2x00_wait_q_add(scsi_qla_host_t *ha, wait_q_t **ret_wq)
+{
+	int		rval;
+	unsigned long	cpu_flags;
+	wait_q_t	*ptmp = NULL;
+
+	rval = QLA_SUCCESS;
+
+	spin_lock_irqsave(&ha->ioctl->wait_q_lock, cpu_flags);
+
+	DEBUG9(printk("%s(%ld): inst=%ld got wait_q spinlock.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	qla2x00_wait_q_memb_alloc(ha, &ptmp);
+	if (ptmp == NULL) {
+		/* can't add any more threads */
+		DEBUG9_10(printk("%s(%ld): inst=%ld ERROR no more ioctl "
+		    "threads allowed.\n",
+		    __func__, ha->host_no, ha->instance);)
+
+		rval = QLA_MEMORY_ALLOC_FAILED;
+	} else {
+		if (ha->ioctl->wait_q_tail == NULL) {
+			/* First thread to queue. */
+			set_bit(IOCTL_WANT, (void *)&ha->ioctl->access_bits);
+
+			ha->ioctl->wait_q_head = ptmp;
+		} else {
+			ha->ioctl->wait_q_tail->pnext = ptmp;
+		}
+		ha->ioctl->wait_q_tail = ptmp;
+
+		*ret_wq = ptmp;
+
+		/* Now init the semaphore */
+
+		init_MUTEX_LOCKED(&ptmp->wait_q_sem);
+
+		rval = QLA_SUCCESS;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld going to release spinlock. "
+	    "ret_wq=%p, rval=%d.\n",
+	    __func__, ha->host_no, ha->instance, *ret_wq, rval);)
+
+	spin_unlock_irqrestore(&ha->ioctl->wait_q_lock, cpu_flags);
+
+	return rval;
+}
+
+/*
+ * qla2x00_wait_q_get_next
+ *	This just removes one member from head of wait_q.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_wait_q_get_next(scsi_qla_host_t *ha, wait_q_t **ret_wq)
+{
+	unsigned long	cpu_flags;
+
+	if (test_bit(IOCTL_ACTIVE, (void *)&(ha->ioctl->access_bits)) != 0) {
+		/* Another thread just became active. Exit. */
+		*ret_wq = NULL;
+		return;
+	}
+
+	/* Find the next thread to wake up */
+	spin_lock_irqsave(&ha->ioctl->wait_q_lock, cpu_flags);
+
+	DEBUG9(printk("%s(%ld): inst=%ld got wait_q spinlock.\n",
+	    __func__, ha->host_no, ha->instance);)
+
+	/* Remove from head */
+	*ret_wq = ha->ioctl->wait_q_head;
+	if (ha->ioctl->wait_q_head != NULL) {
+
+		ha->ioctl->wait_q_head = ha->ioctl->wait_q_head->pnext;
+
+		if (ha->ioctl->wait_q_head == NULL) {
+			/* That's the last one in queue. */
+			ha->ioctl->wait_q_tail = NULL;
+		}
+
+		(*ret_wq)->pnext = NULL;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld return ret_wq=%p. Going to release "
+	    "spinlock.\n",
+	    __func__, ha->host_no, ha->instance, *ret_wq);)
+	spin_unlock_irqrestore(&ha->ioctl->wait_q_lock, cpu_flags);
+}
+
+/*
+ * qla2x00_wait_q_remove
+ *	Removes the specified member from wait_q.
+ *	Must already got the wait_q_lock spin lock.
+ *
+ * Input:
+ *	ha = adapter state pointer.
+ *
+ * Returns:
+ *	qla2x00 local function return status code.
+ *
+ * Context:
+ *	Kernel context.
+ */
+static void
+qla2x00_wait_q_remove(scsi_qla_host_t *ha, wait_q_t *rem_wq)
+{
+	wait_q_t	*ptmp_wq;
+	wait_q_t	*ptmp_prev;
+
+	DEBUG9(printk("%s(%ld): inst=%ld rem_wq=%p.\n",
+	    __func__, ha->host_no, ha->instance, rem_wq);)
+
+	/* Search then remove */
+	ptmp_prev = NULL;
+	for (ptmp_wq = ha->ioctl->wait_q_head; ptmp_wq != NULL;
+	    ptmp_wq = ptmp_wq->pnext) {
+
+		if (ptmp_wq == rem_wq) {
+			/* Found it in wait_q. Remove. */
+
+			DEBUG9(printk("%s(%ld): inst=%ld removing.\n",
+			    __func__, ha->host_no, ha->instance);)
+
+			if (ha->ioctl->wait_q_head == ptmp_wq) {
+				ha->ioctl->wait_q_head = ptmp_wq->pnext;
+			} else {
+				ptmp_prev->pnext = ptmp_wq->pnext;
+			}
+
+			if (ha->ioctl->wait_q_tail == ptmp_wq) {
+				ha->ioctl->wait_q_tail = ptmp_prev;
+			}
+
+			ptmp_wq->pnext = NULL;
+
+			break;
+		}
+		ptmp_prev = ptmp_wq;
+	}
+
+	DEBUG9(printk("%s(%ld): inst=%ld exiting.\n",
+	    __func__, ha->host_no, ha->instance);)
+}
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfo.h 350-qlogic/drivers/scsi/qla2xxx/qlfo.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfo.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qlfo.h	2003-10-29 13:58:56.000000000 -0800
@@ -0,0 +1,415 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ * San/Device Management Failover Ioctl Header
+ * File is created to adhere to Solaris requirement using 8-space tabs.
+ *
+ * !!!!! PLEASE DO NOT REMOVE THE TABS !!!!!
+ * !!!!! PLEASE NO SINGLE LINE COMMENTS: // !!!!!
+ * !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!!
+ *
+ * Revision History:
+ *
+ * Rev. 0.00	August 8, 2000
+ * WTR	- Created.
+ *
+ * Rev. 0.01	August 8, 2000
+ * WTR	- Made size of HbaInstance fields consistant as UINT8.
+ *        Made command codes as 300 upward to be consistant with definitions
+ *        in ExIoct.h.
+ * Rev. 0.01	October 3, 2000
+ * TLE  - Exclusion of ExIoct.h
+ *
+ * Rev. 0.01	October 6, 2000
+ * TLE  - Made size of HbaInstance fields UINT8
+ *
+ * Rev. 0.01	October 10, 2000
+ * TLE  - Add _FO_DRIVER_VERSION data structure
+ */
+
+
+
+#ifndef _FO_H
+#define _FO_H
+
+/*
+ * ***********************************************************************
+ * X OS type definitions
+ * ***********************************************************************
+ */
+#ifdef _MSC_VER						/* NT */
+
+#pragma pack(1)
+#include "qlfont.h"
+
+#elif defined(linux)					/* Linux */
+
+#include "qlfoln.h"
+
+#elif defined(sun) || defined(__sun)			/* Solaris */
+
+#include "qlfoso.h"
+
+#endif
+
+#define SDM_DEF_MAX_DEVICES		16
+#define SDM_DEF_MAX_PATHS_PER_TARGET	4
+#define SDM_DEF_MAX_TARGETS_PER_DEVICE	4
+#define SDM_DEF_MAX_PATHS_PER_DEVICE (SDM_DEF_MAX_PATHS_PER_TARGET * SDM_DEF_MAX_TARGETS_PER_DEVICE)
+
+#define FO_MAX_LUNS_PER_DEVICE	MAX_LUNS_OS
+#define FO_MAX_PATHS (SDM_DEF_MAX_PATHS_PER_DEVICE * SDM_DEF_MAX_DEVICES)
+#define FO_MAX_ADAPTERS		32
+#define FO_ADAPTER_ALL		0xFF
+#define FO_DEF_WWN_SIZE             8
+#define FO_MAX_GEN_INFO_STRING_LEN  32
+
+#if 0	/* defined in qlfolimits.h */
+#define FO_NOTIFY_TYPE_NONE                   0
+#define FO_NOTIFY_TYPE_LUN_RESET              1
+#define FO_NOTIFY_TYPE_CDB                    2
+#define FO_NOTIFY_TYPE_LOGOUT_OR_LUN_RESET    3
+#define FO_NOTIFY_TYPE_LOGOUT_OR_CDB          4
+#define FO_NOTIFY_TYPE_SPINUP          	      5
+
+#define FO_NOTIFY_TYPE_MIN                FO_NOTIFY_TYPE_NONE
+#define FO_NOTIFY_TYPE_MAX                FO_NOTIFY_TYPE_LOGOUT_OR_CDB
+#define FO_NOTIFY_TYPE_DEF                FO_NOTIFY_TYPE_SPINUP
+
+#define FO_NOTIFY_CDB_LENGTH_MIN              6
+#define FO_NOTIFY_CDB_LENGTH_MAX             16
+#endif
+
+/*
+ * IOCTL Commands
+ */
+
+#define FO_CC_GET_PARAMS		        FO_CC_GET_PARAMS_OS
+#define FO_CC_SET_PARAMS		        FO_CC_SET_PARAMS_OS
+#define FO_CC_GET_PATHS		            FO_CC_GET_PATHS_OS
+#define FO_CC_SET_CURRENT_PATH	        FO_CC_SET_CURRENT_PATH_OS
+#define FO_CC_GET_HBA_STAT		        FO_CC_GET_HBA_STAT_OS
+#define FO_CC_RESET_HBA_STAT	        FO_CC_RESET_HBA_STAT_OS
+#define FO_CC_GET_LUN_DATA              FO_CC_GET_LUN_DATA_OS
+#define FO_CC_SET_LUN_DATA              FO_CC_SET_LUN_DATA_OS
+#define FO_CC_GET_TARGET_DATA           FO_CC_GET_TARGET_DATA_OS
+#define FO_CC_SET_TARGET_DATA           FO_CC_SET_TARGET_DATA_OS
+#define FO_CC_GET_FO_DRIVER_VERSION     FO_CC_GET_FO_DRIVER_VERSION_OS
+
+
+/* Systemwide failover parameters. */
+
+typedef struct _FO_PARAMS
+{
+        UINT32      InspectionInterval;     /* Timer interval to check for failover.*/
+        UINT8       MaxPathsPerDevice;	    /* Max paths to any single device. */
+        UINT8       MaxRetriesPerPath;	    /* Max retries on a path before */
+
+        /* Failover. */
+        UINT8       MaxRetriesPerIo;	    /* Max retries per i/o request. */
+        UINT8       Reserved1;
+        UINT32      Flags;			        /* Control flags. */
+        UINT8       DeviceErrorThreshold;   /* Max device errors. */
+        UINT8       DeviceTimeoutThreshold; /* Max device timeouts.*/
+        UINT8       FrameErrorThreshold;    /* Max frame errors.*/
+        UINT8       LinkErrorThreshold;     /* Max link errors.*/
+        UINT32      Reserved2[4];           /* Spares.*/
+
+        /* Load balancing parameters.*/
+
+        UINT8       RollingAverageIntervals;/* Intervals to sum for rolling average.*/
+        UINT8       MaxDevicesToMigrate;    /* Max devices to migrate in any interval.*/
+        UINT8       BalanceMethod;          /* Method to use for load balancing.*/
+        UINT8       Reserved3;              /* Memory alignment.*/
+
+        UINT16      LoadShareMinPercentage; /* Load balancing parameter.*/
+        UINT16      LoadShareMaxPercentage; /* Load balancing parameter.*/
+
+        /* Failover notify parameters. */
+
+        UINT8       FailoverNotifyType;	/* Type of notification. */
+        UINT8       FailoverNotifyCdbLength;/* Length of notification CDB. */
+        UINT16      Reserved4;
+        UINT8       FailoverNotifyCdb[16];	/* CDB if notification by CDB. */
+        UINT32      Reserved5;
+
+}
+FO_PARAMS, *PFO_PARAMS, SysFoParams_t, *SysFoParams_p;
+
+extern SysFoParams_t qla_fo_params;
+
+typedef struct _FO_GET_PATHS
+{
+        UINT8       HbaInstance;
+        EXT_DEST_ADDR HbaAddr;       /* Lun field is ignored */
+        UINT32      Reserved[5];
+
+}
+FO_GET_PATHS, *PFO_GET_PATHS;
+
+
+typedef struct _FO_PATH_ENTRY
+{
+        UINT8   Reserved1;
+        UINT8   Visible;		/* Path is visible path. */
+        UINT8   Priority;
+        UINT8   Reserved2;
+        UINT8   HbaInstance;
+        UINT8   PortName[EXT_DEF_WWN_NAME_SIZE];
+        UINT16  Reserved3;
+        UINT32  Reserved[3];
+
+}
+FO_PATH_ENTRY, *PFO_PATH_ENTRY;
+
+
+typedef struct _FO_PATHS_INFO
+{
+        /* These first fields in the output buffer are specifically the
+         * same as the fields in the input buffer.  This is because the
+         * same system buffer holds both, and this allows us to reference
+         * the input buffer parameters while filling the output buffer. */
+
+        UINT8       HbaInstance;
+        EXT_DEST_ADDR HbaAddr;
+        UINT32      Reserved[5];
+        UINT8       PathCount;          /* Number of Paths in PathEntry array */
+        UINT8       Reserved3;
+        UINT8       VisiblePathIndex;   /* Which index has BOOLEAN "visible" flag set */
+        UINT8       Reserved4;
+
+        UINT8       CurrentPathIndex[FO_MAX_LUNS_PER_DEVICE];   /* Current Path Index for each Lun */
+
+        FO_PATH_ENTRY   PathEntry[FO_MAX_PATHS];
+
+        UINT32      Reserved5[4];
+
+}
+FO_PATHS_INFO, *PFO_PATHS_INFO;
+
+typedef struct _FO_SET_CURRENT_PATH
+{
+        UINT8       HbaInstance;
+        EXT_DEST_ADDR HbaAddr;
+        UINT8       NewCurrentPathIndex;    /* Path index to make current path. */
+        UINT8       FailoverType;           /* Reason for failover. */
+        UINT32      Reserved[3];
+
+}
+FO_SET_CURRENT_PATH, *PFO_SET_CURRENT_PATH;
+
+typedef union _FO_PATHS {
+        FO_GET_PATHS input;
+        FO_SET_CURRENT_PATH set
+                ;
+        FO_PATHS_INFO info;
+} FO_PATHS;
+
+
+typedef struct  _FO_HBA_STAT_INPUT
+{
+        /* The first field in the input buffer is specifically the
+         * same as the field in the output buffer.  This is because the
+         * same system buffer holds both, and this allows us to reference
+         * the input buffer parameters while filling the output buffer. */
+
+        UINT8       HbaInstance;		/* Port number or ADAPTER_ALL. */
+        UINT8       Reserved1[3];
+        UINT32      Reserved2[7];
+
+}
+FO_HBA_STAT_INPUT, *PFO_HBA_STAT_INPUT;
+
+
+typedef struct _FO_HBA_STAT_ENTRY
+{
+        UINT8       HbaInstance;
+        UINT8       Reserved1[3];
+        UINT32      Reserved2;
+        UINT64      IosRequested; /* IOs requested on this adapter. */
+        UINT64      BytesRequested;		/* Bytes requested on this adapter. */
+        UINT64      IosExecuted; /* IOs executed on this adapter. */
+        UINT64      BytesExecuted;		/* Bytes executed on this adapter. */
+        UINT32      Reserved3[22];
+
+}
+FO_HBA_STAT_ENTRY, *PFO_HBA_STAT_ENTRY;
+
+
+typedef struct _FO_HBA_STAT_INFO
+{
+        /* The first fields in the output buffer is specifically the
+         * same as the field in the input buffer.  This is because the
+         * same system buffer holds both, and this allows us to reference
+         * the input buffer parameters while filling the output buffer. */
+
+        UINT8       HbaInstance; /* Port number or ADAPTER_ALL. */
+        UINT8       HbaCount; /* Count of adapters returned. */
+        UINT8       Reserved1[2];
+        UINT32      Reserved2[7];
+
+        FO_HBA_STAT_ENTRY StatEntry[FO_MAX_ADAPTERS];
+
+}
+FO_HBA_STAT_INFO, *PFO_HBA_STAT_INFO;
+
+
+
+/*  The "external" LUN data refers to the LUNs as represented in our
+  configuration utility, where one physical target can support up to
+  2048 LUNs, which are mapped around internally.  This is in comparison
+  to an "internal" LUN data, which is 256 LUNs, after being mapped
+  inside the driver to multiple target slots. */
+
+#define EXTERNAL_LUN_COUNT          2048
+
+/* Structure as used in the IOCTL.*/
+
+typedef struct _FO_EXTERNAL_LUN_DATA_ENTRY
+{
+        UINT8       NodeName[EXT_DEF_WWN_NAME_SIZE];
+        UINT8       PortName[EXT_DEF_WWP_NAME_SIZE];  //sri
+
+        UINT16      LunCount;   /* Entries in Lun Data array. */
+        UINT8       TargetId;
+        UINT8       Dev_No;
+        UINT32      Reserved3;
+        UINT32      Reserved4;
+        UINT32      Reserved5;                     /* Pad to 32-byte header.*/
+
+        UINT8       Data[EXTERNAL_LUN_COUNT];
+}
+FO_EXTERNAL_LUN_DATA_ENTRY, *PFO_EXTERNAL_LUN_DATA_ENTRY;
+
+//  Structure as it is stored in the NT registry.
+
+typedef struct _FO_LUN_DATA_LIST
+{
+        UINT16      Version;                       /* Should be LUN_DATA_REGISTRY_VERSION.*/
+        UINT16      EntryCount;                    /* Count of variable entries following.*/
+        UINT32      Reserved1;
+        UINT32      Reserved2;
+        UINT32      Reserved3;
+        UINT32      Reserved4;
+        UINT32      Reserved5;
+        UINT32      Reserved6;
+        UINT32      Reserved7;                     /* Pad to 32-byte header.*/
+
+        FO_EXTERNAL_LUN_DATA_ENTRY DataEntry[1];   /* Variable-length data.*/
+
+}
+FO_LUN_DATA_LIST, *PFO_LUN_DATA_LIST;
+
+typedef struct  _FO_LUN_DATA_INPUT
+{
+        /* The first field in the input buffer is specifically the
+         * same as the field in the output buffer.  This is because the
+         * same system buffer holds both, and this allows us to reference
+         * the input buffer parameters while filling the output buffer. */
+
+        UINT8       HbaInstance;		/* Port number */
+        UINT8       Reserved1[3];
+        UINT32      Reserved2[7];
+
+}
+FO_LUN_DATA_INPUT, *PFO_LUN_DATA_INPUT;
+
+typedef struct _FO_REQUEST_ADDR
+{
+        UINT8           HbaInstance;
+        EXT_DEST_ADDR   TargetAddr;
+        UINT32          Reserved[5];
+
+}
+FO_REQUEST_ADDR, *PFO_REQUEST_ADDR;
+
+typedef struct  _FO_TARGET_DATA_INPUT
+{
+        UINT8       HbaInstance;		/* Port number */
+        UINT8       Reserved1[3];
+        UINT32      Reserved2[7];
+
+}
+FO_TARGET_DATA_INPUT, *PFO_TARGET_DATA_INPUT;
+
+#define FO_INTERNAL_LUN_COUNT          256
+#define FO_INTERNAL_LUN_BITMASK_BYTES  (FO_INTERNAL_LUN_COUNT / 8)
+
+typedef struct _FO_INTERNAL_LUN_BITMASK
+{
+        UINT8       Bitmask[FO_INTERNAL_LUN_BITMASK_BYTES];
+}
+FO_INTERNAL_LUN_BITMASK, *PFO_INTERNAL_LUN_BITMASK;
+
+typedef struct _FO_DEVICE_DATA
+{
+        UINT32      DeviceFlags;        /* Device flags */
+        UINT16      LoopId;             /* Current loop ID */
+        UINT16      BaseLunNumber;      /* Base LUN number */
+        UINT8       WorldWideName[8];   /* World Wide Name for device */
+        UINT8       PortId[3];          /* Port ID */
+        UINT8       MultipathControl;   /* Multipath control byte. */
+        UINT16      DeviceState;        /* Device state */
+        UINT16      LoginRetryCount;    /* Number of login retries */
+        UINT8       PortName[8];        /* Port name for device */
+        UINT16      TimeoutCount;       /* Command timeout count */
+        UINT8       TargetId;
+        UINT8       Dev_No;
+        FO_INTERNAL_LUN_BITMASK    LunBitmask; /* LUN bitmask */
+}
+FO_DEVICE_DATA, *PFO_DEVICE_DATA;
+
+typedef struct _FO_DEVICE_DATABASE
+{
+        FO_DEVICE_DATA  DeviceData[256];
+}
+FO_DEVICE_DATABASE, *PFO_DEVICE_DATABASE;
+
+typedef struct _FO_DRIVER_VERSION
+{
+        // Numeric version.
+        UINT8       Version;                       // Major version number.
+        UINT8       Revision;                      // Minor version number.
+        UINT8       Subrevision;                   // Subminor version number.
+        UINT8       Reserved1;                      // Memory alignment.
+
+        // String version.
+        UINT8       VersionStr[FO_MAX_GEN_INFO_STRING_LEN];
+
+        // Reserved fields.
+        UINT32      Reserved2[16];
+
+}
+FO_DRIVER_VERSION, *PFO_DRIVER_VERSION;
+
+
+#define FO_LUN_DATA_LIST_MIN_ENTRIES      1
+#define FO_LUN_DATA_LIST_MAX_ENTRIES    256
+#ifdef _WIN64
+#define FO_LUN_DATA_LIST_HEADER_SIZE 32
+#else
+#define FO_LUN_DATA_LIST_HEADER_SIZE offsetof(FO_LUN_DATA_LIST, DataEntry)
+#endif
+
+#define FO_LUN_DATA_LIST_MIN_SIZE (FO_LUN_DATA_LIST_HEADER_SIZE + (sizeof(FO_EXTERNAL_LUN_DATA_ENTRY) * FO_LUN_DATA_LIST_MIN_ENTRIES))
+#define FO_LUN_DATA_LIST_MAX_SIZE (FO_LUN_DATA_LIST_HEADER_SIZE + (sizeof(FO_EXTERNAL_LUN_DATA_ENTRY) * FO_LUN_DATA_LIST_MAX_ENTRIES))
+
+
+#endif	/* ifndef _FO_H */
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfolimits.h 350-qlogic/drivers/scsi/qla2xxx/qlfolimits.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfolimits.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qlfolimits.h	2003-10-29 13:58:56.000000000 -0800
@@ -0,0 +1,93 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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.
+ *
+ ******************************************************************************/
+
+/*
+ *  Minimums, maximums, defaults, and other definitions for MC_PARAMS.
+ */
+
+#define FO_INSPECTION_INTERVAL_MIN                     0
+#define FO_INSPECTION_INTERVAL_MAX               1000000
+#define FO_INSPECTION_INTERVAL_DEF                   600
+
+#define FO_MAX_PATHS_PER_DEVICE_MIN                    1
+#define FO_MAX_PATHS_PER_DEVICE_MAX                    8
+#define FO_MAX_PATHS_PER_DEVICE_DEF                    8
+
+#define FO_MAX_RETRIES_PER_PATH_MIN                    1
+#define FO_MAX_RETRIES_PER_PATH_MAX                    8
+#define FO_MAX_RETRIES_PER_PATH_DEF                    3
+
+#define FO_MAX_RETRIES_PER_IO_MIN          ((FO_MAX_PATHS_PER_DEVICE_MIN * FO_MAX_RETRIES_PER_PATH_MIN) + 1)
+#define FO_MAX_RETRIES_PER_IO_MAX          ((FO_MAX_PATHS_PER_DEVICE_MAX * FO_MAX_RETRIES_PER_PATH_MAX) + 1)
+#define FO_MAX_RETRIES_PER_IO_DEF          ((FO_MAX_PATHS_PER_DEVICE_DEF * FO_MAX_RETRIES_PER_PATH_DEF) + 1)
+
+#define FO_DEVICE_ERROR_THRESHOLD_MIN                  1
+#define FO_DEVICE_ERROR_THRESHOLD_MAX                255
+#define FO_DEVICE_ERROR_THRESHOLD_DEF                  4
+
+#define FO_DEVICE_TIMEOUT_THRESHOLD_MIN                1
+#define FO_DEVICE_TIMEOUT_THRESHOLD_MAX              255
+#define FO_DEVICE_TIMEOUT_THRESHOLD_DEF                4
+
+#define FO_FRAME_ERROR_THRESHOLD_MIN                   1
+#define FO_FRAME_ERROR_THRESHOLD_MAX                 255
+#define FO_FRAME_ERROR_THRESHOLD_DEF                   4
+
+#define FO_LINK_ERROR_THRESHOLD_MIN                    1
+#define FO_LINK_ERROR_THRESHOLD_MAX                  255
+#define FO_LINK_ERROR_THRESHOLD_DEF                    4
+
+#define FO_ROLLING_AVERAGE_INTERVALS_MIN               1
+#define FO_ROLLING_AVERAGE_INTERVALS_MAX              10
+#define FO_ROLLING_AVERAGE_INTERVALS_DEF               1
+
+#define FO_MAX_DEVICES_TO_MIGRATE_MIN                  0
+#define FO_MAX_DEVICES_TO_MIGRATE_MAX                255
+#define FO_MAX_DEVICES_TO_MIGRATE_DEF                  4
+
+#define FO_BALANCE_METHOD_NONE                         0
+#define FO_BALANCE_METHOD_IOS                          1
+#define FO_BALANCE_METHOD_MBS                          2
+
+#define FO_BALANCE_METHOD_MIN                      FO_BALANCE_METHOD_NONE
+#define FO_BALANCE_METHOD_MAX                      FO_BALANCE_METHOD_MBS
+#define FO_BALANCE_METHOD_DEF                      FO_BALANCE_METHOD_IOS
+
+#define FO_LOAD_SHARE_MIN_PERCENTAGE_MIN              25
+#define FO_LOAD_SHARE_MIN_PERCENTAGE_MAX              99
+#define FO_LOAD_SHARE_MIN_PERCENTAGE_DEF              75
+
+#define FO_LOAD_SHARE_MAX_PERCENTAGE_MIN             101
+#define FO_LOAD_SHARE_MAX_PERCENTAGE_MAX             500
+#define FO_LOAD_SHARE_MAX_PERCENTAGE_DEF             150
+
+#define FO_NOTIFY_TYPE_NONE                   0
+#define FO_NOTIFY_TYPE_LUN_RESET              1
+#define FO_NOTIFY_TYPE_CDB                    2
+#define FO_NOTIFY_TYPE_LOGOUT_OR_LUN_RESET    3
+#define FO_NOTIFY_TYPE_LOGOUT_OR_CDB          4
+#define FO_NOTIFY_TYPE_SPINUP		      5
+
+#define FO_NOTIFY_TYPE_MIN                FO_NOTIFY_TYPE_NONE
+#define FO_NOTIFY_TYPE_MAX                FO_NOTIFY_TYPE_LOGOUT_OR_CDB
+#define FO_NOTIFY_TYPE_DEF                FO_NOTIFY_TYPE_NONE
+
+#define FO_NOTIFY_CDB_LENGTH_MIN              6
+#define FO_NOTIFY_CDB_LENGTH_MAX             16
+
diff -purN -X /home/mbligh/.diff.exclude 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfoln.h 350-qlogic/drivers/scsi/qla2xxx/qlfoln.h
--- 340-numa_mem_equals/drivers/scsi/qla2xxx/qlfoln.h	1969-12-31 16:00:00.000000000 -0800
+++ 350-qlogic/drivers/scsi/qla2xxx/qlfoln.h	2003-10-29 13:58:56.000000000 -0800
@@ -0,0 +1,76 @@
+/******************************************************************************
+ *                  QLOGIC LINUX SOFTWARE
+ *
+ * QLogic ISP2x00 device driver for Linux 2.5.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 QLMULTIPATH_MAGIC 'y'
+/********************************************************/
+/* Failover ioctl command codes range from 0xc0 to 0xdf */
+/********************************************************/
+
+
+#define FO_CC_GET_PARAMS_OS             \
+    _IOWR(QLMULTIPATH_MAGIC, 200, EXT_IOCTL)	/* 0xc8 */
+#define FO_CC_SET_PARAMS_OS             \
+    _IOWR(QLMULTIPATH_MAGIC, 201, EXT_IOCTL)	/* 0xc9 */
+#define FO_CC_GET_PATHS_OS              \
+    _IOWR(QLMULTIPATH_MAGIC, 202, EXT_IOCTL)	/* 0xca */
+#define FO_CC_SET_CURRENT_PATH_OS       \
+    _IOWR(QLMULTIPATH_MAGIC, 203, EXT_IOCTL)	/* 0xcb */
+#define FO_CC_GET_HBA_STAT_OS           \
+    _IOWR(QLMULTIPATH_MAGIC, 204, EXT_IOCTL)	/* 0xcc */
+#define FO_CC_RESET_HBA_STAT_OS         \
+    _IOWR(QLMULTIPATH_MAGIC, 205, EXT_IOCTL)	/* 0xcd */
+#define FO_CC_GET_LUN_DATA_OS           \
+    _IOWR(QLMULTIPATH_MAGIC, 206, EXT_IOCTL)	/* 0xce */
+#define FO_CC_SET_LUN_DATA_OS           \
+    _IOWR(QLMULTIPATH_MAGIC, 207, EXT_IOCTL)	/* 0xcf */
+#define FO_CC_GET_TARGET_DATA_OS        \
+    _IOWR(QLMULTIPATH_MAGIC, 208, EXT_IOCTL)	/* 0xd0 */
+#define FO_CC_SET_TARGET_DATA_OS        \
+    _IOWR(QLMULTIPATH_MAGIC, 209, EXT_IOCTL)	/* 0xd1 */
+#define FO_CC_GET_FO_DRIVER_VERSION_OS  \
+    _IOWR(QLMULTIPATH_MAGIC, 210, EXT_IOCTL)	/* 0xd2 */
+
+
+#define BOOLEAN uint8_t
+#define MAX_LUNS_OS	256
+
+/* Driver attributes bits */
+#define DRVR_FO_ENABLED		0x1	/* bit 0 */
+
+
+/*
+ * Overrides for Emacs so that we almost 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-indent-level: 2
+ * c-brace-imaginary-offset: 0
+ * c-brace-offset: -2
+ * c-argdecl-indent: 2
+ * c-label-offset: -2
+ * c-continued-statement-offset: 2
+ * c-continued-brace-offset: 0
+ * indent-tabs-mode: nil
+ * tab-width: 8
+ * End:
+ */
+