aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-06 16:24:49 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-06 16:24:49 -0400
commit22eb5aa6c7940861f9603581665b9d9a1c60be30 (patch)
tree22890bcebae5647bcc1a29e7b544a1c5de2b1f8b
parentd7ca6f8cdffa5765e486edb3dada9121fba8e6aa (diff)
parent015640edb1f346e0b2eda703587c4cd1c310ec1d (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (74 commits) [SCSI] sg: fix q->queue_lock on scsi_error_handler path [SCSI] replace __inline with inline [SCSI] a2091: make 2 functions static [SCSI] a3000: make 2 functions static [SCSI] ses: #if 0 the unused ses_match_host() [SCSI] use kmem_cache_zalloc instead of kmem_cache_alloc/memset [SCSI] sg: fix iovec bugs introduced by the block layer conversion [SCSI] qlogicpti: use request_firmware [SCSI] advansys: use request_firmware [SCSI] qla1280: use request_firmware [SCSI] libiscsi: fix iscsi pool error path [SCSI] cxgb3i: call ddp release function directly [SCSI] cxgb3i: merge cxgb3i_ddp into cxgb3i module [SCSI] cxgb3i: close all tcp connections upon chip reset [SCSI] cxgb3i: re-read ddp settings information after chip reset [SCSI] cxgb3i: re-initialize ddp settings after chip reset [SCSI] cxgb3i: subscribe to error notification from cxgb3 driver [SCSI] aacraid driver update [SCSI] mptsas: remove unneeded check [SCSI] config: Make need for SCSI_CDROM clearer ...
-rw-r--r--Documentation/scsi/aacraid.txt15
-rw-r--r--drivers/message/fusion/mptsas.c5
-rw-r--r--drivers/scsi/Kconfig17
-rw-r--r--drivers/scsi/Makefile1
-rw-r--r--drivers/scsi/a2091.c6
-rw-r--r--drivers/scsi/a2091.h3
-rw-r--r--drivers/scsi/a3000.c6
-rw-r--r--drivers/scsi/a3000.h3
-rw-r--r--drivers/scsi/aacraid/aachba.c40
-rw-r--r--drivers/scsi/aacraid/aacraid.h9
-rw-r--r--drivers/scsi/aacraid/comminit.c14
-rw-r--r--drivers/scsi/aacraid/linit.c8
-rw-r--r--drivers/scsi/advansys.c1731
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_core.c12
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_inline.h32
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.h102
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_pci.c8
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_inline.h5
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.h104
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_pci.c10
-rw-r--r--drivers/scsi/aic7xxx/aiclib.h4
-rw-r--r--drivers/scsi/cxgb3i/Kbuild4
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i.h10
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_ddp.c275
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_ddp.h6
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_init.c31
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_iscsi.c129
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.c101
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.h13
-rw-r--r--drivers/scsi/fcoe/Makefile8
-rw-r--r--drivers/scsi/fcoe/fc_transport_fcoe.c443
-rw-r--r--drivers/scsi/fcoe/fcoe.c1878
-rw-r--r--drivers/scsi/fcoe/fcoe.h75
-rw-r--r--drivers/scsi/fcoe/fcoe_sw.c561
-rw-r--r--drivers/scsi/fcoe/libfcoe.c2216
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.c126
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.h16
-rw-r--r--drivers/scsi/libfc/fc_fcp.c10
-rw-r--r--drivers/scsi/libfc/fc_lport.c11
-rw-r--r--drivers/scsi/libiscsi.c4
-rw-r--r--drivers/scsi/osd/osd_initiator.c42
-rw-r--r--drivers/scsi/osd/osd_uld.c6
-rw-r--r--drivers/scsi/ql1040_fw.h2130
-rw-r--r--drivers/scsi/ql12160_fw.h1811
-rw-r--r--drivers/scsi/ql1280_fw.h2048
-rw-r--r--drivers/scsi/qla1280.c114
-rw-r--r--drivers/scsi/qla1280.h6
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c295
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h136
-rw-r--r--drivers/scsi/qla2xxx/qla_dfs.c4
-rw-r--r--drivers/scsi/qla2xxx/qla_fw.h42
-rw-r--r--drivers/scsi/qla2xxx/qla_gbl.h25
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c136
-rw-r--r--drivers/scsi/qla2xxx/qla_iocb.c37
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c32
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c238
-rw-r--r--drivers/scsi/qla2xxx/qla_mid.c12
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c258
-rw-r--r--drivers/scsi/qla2xxx/qla_sup.c103
-rw-r--r--drivers/scsi/qla2xxx/qla_version.h4
-rw-r--r--drivers/scsi/qlogicpti.c63
-rw-r--r--drivers/scsi/qlogicpti_asm.c1160
-rw-r--r--drivers/scsi/scsi.c4
-rw-r--r--drivers/scsi/scsi_lib.c17
-rw-r--r--drivers/scsi/sd.c6
-rw-r--r--drivers/scsi/ses.c2
-rw-r--r--drivers/scsi/sg.c37
-rw-r--r--drivers/scsi/sr.c9
-rw-r--r--drivers/scsi/stex.c742
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.h6
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.c2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.h6
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_malloc.c2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_misc.h18
-rw-r--r--firmware/Makefile5
-rw-r--r--firmware/WHENCE36
-rw-r--r--firmware/advansys/3550.bin.ihex317
-rw-r--r--firmware/advansys/38C0800.bin.ihex336
-rw-r--r--firmware/advansys/38C1600.bin.ihex398
-rw-r--r--firmware/advansys/mcode.bin.ihex147
-rw-r--r--firmware/qlogic/1040.bin.ihex2111
-rw-r--r--firmware/qlogic/12160.bin.ihex1771
-rw-r--r--firmware/qlogic/1280.bin.ihex2008
-rw-r--r--firmware/qlogic/isp1000.bin.ihex1158
-rw-r--r--include/scsi/fc/fc_fip.h237
-rw-r--r--include/scsi/fc_transport_fcoe.h54
-rw-r--r--include/scsi/libfc.h45
-rw-r--r--include/scsi/libfcoe.h227
88 files changed, 14088 insertions, 12367 deletions
diff --git a/Documentation/scsi/aacraid.txt b/Documentation/scsi/aacraid.txt
index ddace3afc83..30f643f611b 100644
--- a/Documentation/scsi/aacraid.txt
+++ b/Documentation/scsi/aacraid.txt
@@ -60,17 +60,9 @@ Supported Cards/Chipsets
60 9005:0285:9005:02d5 Adaptec ASR-2405 (Voodoo40 Lite) 60 9005:0285:9005:02d5 Adaptec ASR-2405 (Voodoo40 Lite)
61 9005:0285:9005:02d6 Adaptec ASR-2445 (Voodoo44 Lite) 61 9005:0285:9005:02d6 Adaptec ASR-2445 (Voodoo44 Lite)
62 9005:0285:9005:02d7 Adaptec ASR-2805 (Voodoo80 Lite) 62 9005:0285:9005:02d7 Adaptec ASR-2805 (Voodoo80 Lite)
63 9005:0285:9005:02d8 Adaptec 5405G (Voodoo40 PM) 63 9005:0285:9005:02d8 Adaptec 5405Z (Voodoo40 BLBU)
64 9005:0285:9005:02d9 Adaptec 5445G (Voodoo44 PM) 64 9005:0285:9005:02d9 Adaptec 5445Z (Voodoo44 BLBU)
65 9005:0285:9005:02da Adaptec 5805G (Voodoo80 PM) 65 9005:0285:9005:02da Adaptec 5805Z (Voodoo80 BLBU)
66 9005:0285:9005:02db Adaptec 5085G (Voodoo08 PM)
67 9005:0285:9005:02dc Adaptec 51245G (Voodoo124 PM)
68 9005:0285:9005:02dd Adaptec 51645G (Voodoo164 PM)
69 9005:0285:9005:02de Adaptec 52445G (Voodoo244 PM)
70 9005:0285:9005:02df Adaptec ASR-2045G (Voodoo04 Lite PM)
71 9005:0285:9005:02e0 Adaptec ASR-2405G (Voodoo40 Lite PM)
72 9005:0285:9005:02e1 Adaptec ASR-2445G (Voodoo44 Lite PM)
73 9005:0285:9005:02e2 Adaptec ASR-2805G (Voodoo80 Lite PM)
74 1011:0046:9005:0364 Adaptec 5400S (Mustang) 66 1011:0046:9005:0364 Adaptec 5400S (Mustang)
75 1011:0046:9005:0365 Adaptec 5400S (Mustang) 67 1011:0046:9005:0365 Adaptec 5400S (Mustang)
76 9005:0287:9005:0800 Adaptec Themisto (Jupiter) 68 9005:0287:9005:0800 Adaptec Themisto (Jupiter)
@@ -140,6 +132,7 @@ Deanna Bonds (non-DASD support, PAE fibs and 64 bit,
140 where fibs that go to the hardware are consistently called hw_fibs and 132 where fibs that go to the hardware are consistently called hw_fibs and
141 not just fibs like the name of the driver tracking structure) 133 not just fibs like the name of the driver tracking structure)
142Mark Salyzyn <Mark_Salyzyn@adaptec.com> Fixed panic issues and added some new product ids for upcoming hbas. Performance tuning, card failover and bug mitigations. 134Mark Salyzyn <Mark_Salyzyn@adaptec.com> Fixed panic issues and added some new product ids for upcoming hbas. Performance tuning, card failover and bug mitigations.
135Achim Leubner <Achim_Leubner@adaptec.com>
143 136
144Original Driver 137Original Driver
145------------------------- 138-------------------------
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 12b732512e5..a9019f081b9 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -2279,9 +2279,8 @@ mptsas_delete_expander_phys(MPT_ADAPTER *ioc)
2279 mutex_lock(&ioc->sas_topology_mutex); 2279 mutex_lock(&ioc->sas_topology_mutex);
2280 list_for_each_entry_safe(port_info, n, &ioc->sas_topology, list) { 2280 list_for_each_entry_safe(port_info, n, &ioc->sas_topology, list) {
2281 2281
2282 if (port_info->phy_info && 2282 if (!(port_info->phy_info[0].identify.device_info &
2283 (!(port_info->phy_info[0].identify.device_info & 2283 MPI_SAS_DEVICE_INFO_SMP_TARGET))
2284 MPI_SAS_DEVICE_INFO_SMP_TARGET)))
2285 continue; 2284 continue;
2286 2285
2287 if (mptsas_sas_expander_pg0(ioc, &buffer, 2286 if (mptsas_sas_expander_pg0(ioc, &buffer,
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 20297c521e5..8ed2990c826 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -121,10 +121,11 @@ config BLK_DEV_SR
121 tristate "SCSI CDROM support" 121 tristate "SCSI CDROM support"
122 depends on SCSI 122 depends on SCSI
123 ---help--- 123 ---help---
124 If you want to use a SCSI or FireWire CD-ROM under Linux, 124 If you want to use a CD or DVD drive attached to your computer
125 say Y and read the SCSI-HOWTO and the CDROM-HOWTO at 125 by SCSI, FireWire, USB or ATAPI, say Y and read the SCSI-HOWTO
126 <http://www.tldp.org/docs.html#howto>. Also make sure to say 126 and the CDROM-HOWTO at <http://www.tldp.org/docs.html#howto>.
127 Y or M to "ISO 9660 CD-ROM file system support" later. 127
128 Make sure to say Y or M to "ISO 9660 CD-ROM file system support".
128 129
129 To compile this driver as a module, choose M here and read 130 To compile this driver as a module, choose M here and read
130 <file:Documentation/scsi/scsi.txt>. 131 <file:Documentation/scsi/scsi.txt>.
@@ -614,10 +615,16 @@ config LIBFC
614 ---help--- 615 ---help---
615 Fibre Channel library module 616 Fibre Channel library module
616 617
618config LIBFCOE
619 tristate "LibFCoE module"
620 select LIBFC
621 ---help---
622 Library for Fibre Channel over Ethernet module
623
617config FCOE 624config FCOE
618 tristate "FCoE module" 625 tristate "FCoE module"
619 depends on PCI 626 depends on PCI
620 select LIBFC 627 select LIBFCOE
621 ---help--- 628 ---help---
622 Fibre Channel over Ethernet module 629 Fibre Channel over Ethernet module
623 630
diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile
index cf792963466..e7c861ac417 100644
--- a/drivers/scsi/Makefile
+++ b/drivers/scsi/Makefile
@@ -37,6 +37,7 @@ obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
37obj-$(CONFIG_SCSI_DH) += device_handler/ 37obj-$(CONFIG_SCSI_DH) += device_handler/
38 38
39obj-$(CONFIG_LIBFC) += libfc/ 39obj-$(CONFIG_LIBFC) += libfc/
40obj-$(CONFIG_LIBFCOE) += fcoe/
40obj-$(CONFIG_FCOE) += fcoe/ 41obj-$(CONFIG_FCOE) += fcoe/
41obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o 42obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
42obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o 43obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
diff --git a/drivers/scsi/a2091.c b/drivers/scsi/a2091.c
index 37dd47136fb..4b38c4750f7 100644
--- a/drivers/scsi/a2091.c
+++ b/drivers/scsi/a2091.c
@@ -23,6 +23,8 @@
23#define DMA(ptr) ((a2091_scsiregs *)((ptr)->base)) 23#define DMA(ptr) ((a2091_scsiregs *)((ptr)->base))
24#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) 24#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata))
25 25
26static int a2091_release(struct Scsi_Host *instance);
27
26static irqreturn_t a2091_intr (int irq, void *_instance) 28static irqreturn_t a2091_intr (int irq, void *_instance)
27{ 29{
28 unsigned long flags; 30 unsigned long flags;
@@ -144,7 +146,7 @@ static void dma_stop(struct Scsi_Host *instance, struct scsi_cmnd *SCpnt,
144 } 146 }
145} 147}
146 148
147int __init a2091_detect(struct scsi_host_template *tpnt) 149static int __init a2091_detect(struct scsi_host_template *tpnt)
148{ 150{
149 static unsigned char called = 0; 151 static unsigned char called = 0;
150 struct Scsi_Host *instance; 152 struct Scsi_Host *instance;
@@ -233,7 +235,7 @@ static struct scsi_host_template driver_template = {
233 235
234#include "scsi_module.c" 236#include "scsi_module.c"
235 237
236int a2091_release(struct Scsi_Host *instance) 238static int a2091_release(struct Scsi_Host *instance)
237{ 239{
238#ifdef MODULE 240#ifdef MODULE
239 DMA(instance)->CNTR = 0; 241 DMA(instance)->CNTR = 0;
diff --git a/drivers/scsi/a2091.h b/drivers/scsi/a2091.h
index fe809bc88d7..252528f2672 100644
--- a/drivers/scsi/a2091.h
+++ b/drivers/scsi/a2091.h
@@ -11,9 +11,6 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13 13
14int a2091_detect(struct scsi_host_template *);
15int a2091_release(struct Scsi_Host *);
16
17#ifndef CMD_PER_LUN 14#ifndef CMD_PER_LUN
18#define CMD_PER_LUN 2 15#define CMD_PER_LUN 2
19#endif 16#endif
diff --git a/drivers/scsi/a3000.c b/drivers/scsi/a3000.c
index 8b449d8acac..6970ce82c4a 100644
--- a/drivers/scsi/a3000.c
+++ b/drivers/scsi/a3000.c
@@ -25,6 +25,8 @@
25 25
26static struct Scsi_Host *a3000_host = NULL; 26static struct Scsi_Host *a3000_host = NULL;
27 27
28static int a3000_release(struct Scsi_Host *instance);
29
28static irqreturn_t a3000_intr (int irq, void *dummy) 30static irqreturn_t a3000_intr (int irq, void *dummy)
29{ 31{
30 unsigned long flags; 32 unsigned long flags;
@@ -157,7 +159,7 @@ static void dma_stop(struct Scsi_Host *instance, struct scsi_cmnd *SCpnt,
157 } 159 }
158} 160}
159 161
160int __init a3000_detect(struct scsi_host_template *tpnt) 162static int __init a3000_detect(struct scsi_host_template *tpnt)
161{ 163{
162 wd33c93_regs regs; 164 wd33c93_regs regs;
163 165
@@ -232,7 +234,7 @@ static struct scsi_host_template driver_template = {
232 234
233#include "scsi_module.c" 235#include "scsi_module.c"
234 236
235int a3000_release(struct Scsi_Host *instance) 237static int a3000_release(struct Scsi_Host *instance)
236{ 238{
237 wd33c93_release(); 239 wd33c93_release();
238 DMA(instance)->CNTR = 0; 240 DMA(instance)->CNTR = 0;
diff --git a/drivers/scsi/a3000.h b/drivers/scsi/a3000.h
index 44a4ec7b465..c7afe16fd6e 100644
--- a/drivers/scsi/a3000.h
+++ b/drivers/scsi/a3000.h
@@ -11,9 +11,6 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13 13
14int a3000_detect(struct scsi_host_template *);
15int a3000_release(struct Scsi_Host *);
16
17#ifndef CMD_PER_LUN 14#ifndef CMD_PER_LUN
18#define CMD_PER_LUN 2 15#define CMD_PER_LUN 2
19#endif 16#endif
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 90d1d0878cb..21964aaebca 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -143,7 +143,7 @@ static char *aac_get_status_string(u32 status);
143 */ 143 */
144 144
145static int nondasd = -1; 145static int nondasd = -1;
146static int aac_cache; 146static int aac_cache = 2; /* WCE=0 to avoid performance problems */
147static int dacmode = -1; 147static int dacmode = -1;
148int aac_msi; 148int aac_msi;
149int aac_commit = -1; 149int aac_commit = -1;
@@ -157,7 +157,7 @@ module_param_named(cache, aac_cache, int, S_IRUGO|S_IWUSR);
157MODULE_PARM_DESC(cache, "Disable Queue Flush commands:\n" 157MODULE_PARM_DESC(cache, "Disable Queue Flush commands:\n"
158 "\tbit 0 - Disable FUA in WRITE SCSI commands\n" 158 "\tbit 0 - Disable FUA in WRITE SCSI commands\n"
159 "\tbit 1 - Disable SYNCHRONIZE_CACHE SCSI command\n" 159 "\tbit 1 - Disable SYNCHRONIZE_CACHE SCSI command\n"
160 "\tbit 2 - Disable only if Battery not protecting Cache"); 160 "\tbit 2 - Disable only if Battery is protecting Cache");
161module_param(dacmode, int, S_IRUGO|S_IWUSR); 161module_param(dacmode, int, S_IRUGO|S_IWUSR);
162MODULE_PARM_DESC(dacmode, "Control whether dma addressing is using 64 bit DAC." 162MODULE_PARM_DESC(dacmode, "Control whether dma addressing is using 64 bit DAC."
163 " 0=off, 1=on"); 163 " 0=off, 1=on");
@@ -217,6 +217,14 @@ int aac_reset_devices;
217module_param_named(reset_devices, aac_reset_devices, int, S_IRUGO|S_IWUSR); 217module_param_named(reset_devices, aac_reset_devices, int, S_IRUGO|S_IWUSR);
218MODULE_PARM_DESC(reset_devices, "Force an adapter reset at initialization."); 218MODULE_PARM_DESC(reset_devices, "Force an adapter reset at initialization.");
219 219
220int aac_wwn = 1;
221module_param_named(wwn, aac_wwn, int, S_IRUGO|S_IWUSR);
222MODULE_PARM_DESC(wwn, "Select a WWN type for the arrays:\n"
223 "\t0 - Disable\n"
224 "\t1 - Array Meta Data Signature (default)\n"
225 "\t2 - Adapter Serial Number");
226
227
220static inline int aac_valid_context(struct scsi_cmnd *scsicmd, 228static inline int aac_valid_context(struct scsi_cmnd *scsicmd,
221 struct fib *fibptr) { 229 struct fib *fibptr) {
222 struct scsi_device *device; 230 struct scsi_device *device;
@@ -1206,9 +1214,8 @@ static int aac_scsi_32(struct fib * fib, struct scsi_cmnd * cmd)
1206 1214
1207static int aac_scsi_32_64(struct fib * fib, struct scsi_cmnd * cmd) 1215static int aac_scsi_32_64(struct fib * fib, struct scsi_cmnd * cmd)
1208{ 1216{
1209 if ((sizeof(dma_addr_t) > 4) && 1217 if ((sizeof(dma_addr_t) > 4) && fib->dev->needs_dac &&
1210 (num_physpages > (0xFFFFFFFFULL >> PAGE_SHIFT)) && 1218 (fib->dev->adapter_info.options & AAC_OPT_SGMAP_HOST64))
1211 (fib->dev->adapter_info.options & AAC_OPT_SGMAP_HOST64))
1212 return FAILED; 1219 return FAILED;
1213 return aac_scsi_32(fib, cmd); 1220 return aac_scsi_32(fib, cmd);
1214} 1221}
@@ -1371,8 +1378,11 @@ int aac_get_adapter_info(struct aac_dev* dev)
1371 if (dev->nondasd_support && !dev->in_reset) 1378 if (dev->nondasd_support && !dev->in_reset)
1372 printk(KERN_INFO "%s%d: Non-DASD support enabled.\n",dev->name, dev->id); 1379 printk(KERN_INFO "%s%d: Non-DASD support enabled.\n",dev->name, dev->id);
1373 1380
1381 if (dma_get_required_mask(&dev->pdev->dev) > DMA_32BIT_MASK)
1382 dev->needs_dac = 1;
1374 dev->dac_support = 0; 1383 dev->dac_support = 0;
1375 if( (sizeof(dma_addr_t) > 4) && (dev->adapter_info.options & AAC_OPT_SGMAP_HOST64)){ 1384 if ((sizeof(dma_addr_t) > 4) && dev->needs_dac &&
1385 (dev->adapter_info.options & AAC_OPT_SGMAP_HOST64)) {
1376 if (!dev->in_reset) 1386 if (!dev->in_reset)
1377 printk(KERN_INFO "%s%d: 64bit support enabled.\n", 1387 printk(KERN_INFO "%s%d: 64bit support enabled.\n",
1378 dev->name, dev->id); 1388 dev->name, dev->id);
@@ -1382,6 +1392,15 @@ int aac_get_adapter_info(struct aac_dev* dev)
1382 if(dacmode != -1) { 1392 if(dacmode != -1) {
1383 dev->dac_support = (dacmode!=0); 1393 dev->dac_support = (dacmode!=0);
1384 } 1394 }
1395
1396 /* avoid problems with AAC_QUIRK_SCSI_32 controllers */
1397 if (dev->dac_support && (aac_get_driver_ident(dev->cardtype)->quirks
1398 & AAC_QUIRK_SCSI_32)) {
1399 dev->nondasd_support = 0;
1400 dev->jbod = 0;
1401 expose_physicals = 0;
1402 }
1403
1385 if(dev->dac_support != 0) { 1404 if(dev->dac_support != 0) {
1386 if (!pci_set_dma_mask(dev->pdev, DMA_64BIT_MASK) && 1405 if (!pci_set_dma_mask(dev->pdev, DMA_64BIT_MASK) &&
1387 !pci_set_consistent_dma_mask(dev->pdev, DMA_64BIT_MASK)) { 1406 !pci_set_consistent_dma_mask(dev->pdev, DMA_64BIT_MASK)) {
@@ -2058,7 +2077,7 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
2058 dprintk((KERN_DEBUG "INQUIRY command, ID: %d.\n", cid)); 2077 dprintk((KERN_DEBUG "INQUIRY command, ID: %d.\n", cid));
2059 memset(&inq_data, 0, sizeof (struct inquiry_data)); 2078 memset(&inq_data, 0, sizeof (struct inquiry_data));
2060 2079
2061 if (scsicmd->cmnd[1] & 0x1) { 2080 if ((scsicmd->cmnd[1] & 0x1) && aac_wwn) {
2062 char *arr = (char *)&inq_data; 2081 char *arr = (char *)&inq_data;
2063 2082
2064 /* EVPD bit set */ 2083 /* EVPD bit set */
@@ -2081,7 +2100,12 @@ int aac_scsi_cmd(struct scsi_cmnd * scsicmd)
2081 arr[1] = scsicmd->cmnd[2]; 2100 arr[1] = scsicmd->cmnd[2];
2082 scsi_sg_copy_from_buffer(scsicmd, &inq_data, 2101 scsi_sg_copy_from_buffer(scsicmd, &inq_data,
2083 sizeof(inq_data)); 2102 sizeof(inq_data));
2084 return aac_get_container_serial(scsicmd); 2103 if (aac_wwn != 2)
2104 return aac_get_container_serial(
2105 scsicmd);
2106 /* SLES 10 SP1 special */
2107 scsicmd->result = DID_OK << 16 |
2108 COMMAND_COMPLETE << 8 | SAM_STAT_GOOD;
2085 } else { 2109 } else {
2086 /* vpd page not implemented */ 2110 /* vpd page not implemented */
2087 scsicmd->result = DID_OK << 16 | 2111 scsicmd->result = DID_OK << 16 |
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
index 73916adb8f8..cdbdec9f4fb 100644
--- a/drivers/scsi/aacraid/aacraid.h
+++ b/drivers/scsi/aacraid/aacraid.h
@@ -12,7 +12,7 @@
12 *----------------------------------------------------------------------------*/ 12 *----------------------------------------------------------------------------*/
13 13
14#ifndef AAC_DRIVER_BUILD 14#ifndef AAC_DRIVER_BUILD
15# define AAC_DRIVER_BUILD 2456 15# define AAC_DRIVER_BUILD 2461
16# define AAC_DRIVER_BRANCH "-ms" 16# define AAC_DRIVER_BRANCH "-ms"
17#endif 17#endif
18#define MAXIMUM_NUM_CONTAINERS 32 18#define MAXIMUM_NUM_CONTAINERS 32
@@ -865,7 +865,11 @@ struct aac_supplement_adapter_info
865 u8 MfgPcbaSerialNo[12]; 865 u8 MfgPcbaSerialNo[12];
866 u8 MfgWWNName[8]; 866 u8 MfgWWNName[8];
867 __le32 SupportedOptions2; 867 __le32 SupportedOptions2;
868 __le32 ReservedGrowth[1]; 868 __le32 StructExpansion;
869 /* StructExpansion == 1 */
870 __le32 FeatureBits3;
871 __le32 SupportedPerformanceModes;
872 __le32 ReservedForFutureGrowth[80];
869}; 873};
870#define AAC_FEATURE_FALCON cpu_to_le32(0x00000010) 874#define AAC_FEATURE_FALCON cpu_to_le32(0x00000010)
871#define AAC_FEATURE_JBOD cpu_to_le32(0x08000000) 875#define AAC_FEATURE_JBOD cpu_to_le32(0x08000000)
@@ -1020,6 +1024,7 @@ struct aac_dev
1020 u8 jbod; 1024 u8 jbod;
1021 u8 cache_protected; 1025 u8 cache_protected;
1022 u8 dac_support; 1026 u8 dac_support;
1027 u8 needs_dac;
1023 u8 raid_scsi_mode; 1028 u8 raid_scsi_mode;
1024 u8 comm_interface; 1029 u8 comm_interface;
1025# define AAC_COMM_PRODUCER 0 1030# define AAC_COMM_PRODUCER 0
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
index 16310443b55..d598eba630d 100644
--- a/drivers/scsi/aacraid/comminit.c
+++ b/drivers/scsi/aacraid/comminit.c
@@ -54,6 +54,7 @@ static int aac_alloc_comm(struct aac_dev *dev, void **commaddr, unsigned long co
54 const unsigned long printfbufsiz = 256; 54 const unsigned long printfbufsiz = 256;
55 struct aac_init *init; 55 struct aac_init *init;
56 dma_addr_t phys; 56 dma_addr_t phys;
57 unsigned long aac_max_hostphysmempages;
57 58
58 size = fibsize + sizeof(struct aac_init) + commsize + commalign + printfbufsiz; 59 size = fibsize + sizeof(struct aac_init) + commsize + commalign + printfbufsiz;
59 60
@@ -90,7 +91,18 @@ static int aac_alloc_comm(struct aac_dev *dev, void **commaddr, unsigned long co
90 init->AdapterFibsPhysicalAddress = cpu_to_le32((u32)phys); 91 init->AdapterFibsPhysicalAddress = cpu_to_le32((u32)phys);
91 init->AdapterFibsSize = cpu_to_le32(fibsize); 92 init->AdapterFibsSize = cpu_to_le32(fibsize);
92 init->AdapterFibAlign = cpu_to_le32(sizeof(struct hw_fib)); 93 init->AdapterFibAlign = cpu_to_le32(sizeof(struct hw_fib));
93 init->HostPhysMemPages = cpu_to_le32(AAC_MAX_HOSTPHYSMEMPAGES); 94 /*
95 * number of 4k pages of host physical memory. The aacraid fw needs
96 * this number to be less than 4gb worth of pages. New firmware doesn't
97 * have any issues with the mapping system, but older Firmware did, and
98 * had *troubles* dealing with the math overloading past 32 bits, thus
99 * we must limit this field.
100 */
101 aac_max_hostphysmempages = dma_get_required_mask(&dev->pdev->dev) >> 12;
102 if (aac_max_hostphysmempages < AAC_MAX_HOSTPHYSMEMPAGES)
103 init->HostPhysMemPages = cpu_to_le32(aac_max_hostphysmempages);
104 else
105 init->HostPhysMemPages = cpu_to_le32(AAC_MAX_HOSTPHYSMEMPAGES);
94 106
95 init->InitFlags = 0; 107 init->InitFlags = 0;
96 if (dev->comm_interface == AAC_COMM_MESSAGE) { 108 if (dev->comm_interface == AAC_COMM_MESSAGE) {
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 36d8aab97ef..c507719c0d4 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -86,7 +86,13 @@ char aac_driver_version[] = AAC_DRIVER_FULL_VERSION;
86 * 86 *
87 * Note: The last field is used to index into aac_drivers below. 87 * Note: The last field is used to index into aac_drivers below.
88 */ 88 */
89static struct pci_device_id aac_pci_tbl[] = { 89#ifdef DECLARE_PCI_DEVICE_TABLE
90static DECLARE_PCI_DEVICE_TABLE(aac_pci_tbl) = {
91#elif defined(__devinitconst)
92static const struct pci_device_id aac_pci_tbl[] __devinitconst = {
93#else
94static const struct pci_device_id aac_pci_tbl[] __devinitdata = {
95#endif
90 { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */ 96 { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */
91 { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */ 97 { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */
92 { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */ 98 { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 7507d8bc57a..b756041f0b2 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -38,6 +38,7 @@
38#include <linux/pci.h> 38#include <linux/pci.h>
39#include <linux/spinlock.h> 39#include <linux/spinlock.h>
40#include <linux/dma-mapping.h> 40#include <linux/dma-mapping.h>
41#include <linux/firmware.h>
41 42
42#include <asm/io.h> 43#include <asm/io.h>
43#include <asm/system.h> 44#include <asm/system.h>
@@ -4519,8 +4520,8 @@ static void AscWriteLramByte(PortAddr iop_base, ushort addr, uchar byte_val)
4519 * and is maintained in little-endian order when written to LRAM. 4520 * and is maintained in little-endian order when written to LRAM.
4520 */ 4521 */
4521static void 4522static void
4522AscMemWordCopyPtrToLram(PortAddr iop_base, 4523AscMemWordCopyPtrToLram(PortAddr iop_base, ushort s_addr,
4523 ushort s_addr, uchar *s_buffer, int words) 4524 const uchar *s_buffer, int words)
4524{ 4525{
4525 int i; 4526 int i;
4526 4527
@@ -4642,8 +4643,8 @@ static ushort AscInitLram(ASC_DVC_VAR *asc_dvc)
4642} 4643}
4643 4644
4644static ASC_DCNT 4645static ASC_DCNT
4645AscLoadMicroCode(PortAddr iop_base, 4646AscLoadMicroCode(PortAddr iop_base, ushort s_addr,
4646 ushort s_addr, uchar *mcode_buf, ushort mcode_size) 4647 const uchar *mcode_buf, ushort mcode_size)
4647{ 4648{
4648 ASC_DCNT chksum; 4649 ASC_DCNT chksum;
4649 ushort mcode_word_size; 4650 ushort mcode_word_size;
@@ -4668,1618 +4669,6 @@ AscLoadMicroCode(PortAddr iop_base,
4668 return chksum; 4669 return chksum;
4669} 4670}
4670 4671
4671/* Microcode buffer is kept after initialization for error recovery. */
4672static uchar _asc_mcode_buf[] = {
4673 0x01, 0x03, 0x01, 0x19, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4674 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
4675 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4676 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4677 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4678 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x12, 0x0D, 0x05,
4679 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4680 0xFF, 0x80, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4681 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF,
4682 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
4683 0x00, 0x00, 0xE4, 0x88, 0x00, 0x00, 0x00, 0x00, 0x80, 0x73, 0x48, 0x04,
4684 0x36, 0x00, 0x00, 0xA2, 0xC2, 0x00, 0x80, 0x73, 0x03, 0x23, 0x36, 0x40,
4685 0xB6, 0x00, 0x36, 0x00, 0x05, 0xD6, 0x0C, 0xD2, 0x12, 0xDA, 0x00, 0xA2,
4686 0xC2, 0x00, 0x92, 0x80, 0x1E, 0x98, 0x50, 0x00, 0xF5, 0x00, 0x48, 0x98,
4687 0xDF, 0x23, 0x36, 0x60, 0xB6, 0x00, 0x92, 0x80, 0x4F, 0x00, 0xF5, 0x00,
4688 0x48, 0x98, 0xEF, 0x23, 0x36, 0x60, 0xB6, 0x00, 0x92, 0x80, 0x80, 0x62,
4689 0x92, 0x80, 0x00, 0x46, 0x15, 0xEE, 0x13, 0xEA, 0x02, 0x01, 0x09, 0xD8,
4690 0xCD, 0x04, 0x4D, 0x00, 0x00, 0xA3, 0xD6, 0x00, 0xA6, 0x97, 0x7F, 0x23,
4691 0x04, 0x61, 0x84, 0x01, 0xE6, 0x84, 0xD2, 0xC1, 0x80, 0x73, 0xCD, 0x04,
4692 0x4D, 0x00, 0x00, 0xA3, 0xDA, 0x01, 0xA6, 0x97, 0xC6, 0x81, 0xC2, 0x88,
4693 0x80, 0x73, 0x80, 0x77, 0x00, 0x01, 0x01, 0xA1, 0xFE, 0x00, 0x4F, 0x00,
4694 0x84, 0x97, 0x07, 0xA6, 0x08, 0x01, 0x00, 0x33, 0x03, 0x00, 0xC2, 0x88,
4695 0x03, 0x03, 0x01, 0xDE, 0xC2, 0x88, 0xCE, 0x00, 0x69, 0x60, 0xCE, 0x00,
4696 0x02, 0x03, 0x4A, 0x60, 0x00, 0xA2, 0x78, 0x01, 0x80, 0x63, 0x07, 0xA6,
4697 0x24, 0x01, 0x78, 0x81, 0x03, 0x03, 0x80, 0x63, 0xE2, 0x00, 0x07, 0xA6,
4698 0x34, 0x01, 0x00, 0x33, 0x04, 0x00, 0xC2, 0x88, 0x03, 0x07, 0x02, 0x01,
4699 0x04, 0xCA, 0x0D, 0x23, 0x68, 0x98, 0x4D, 0x04, 0x04, 0x85, 0x05, 0xD8,
4700 0x0D, 0x23, 0x68, 0x98, 0xCD, 0x04, 0x15, 0x23, 0xF8, 0x88, 0xFB, 0x23,
4701 0x02, 0x61, 0x82, 0x01, 0x80, 0x63, 0x02, 0x03, 0x06, 0xA3, 0x62, 0x01,
4702 0x00, 0x33, 0x0A, 0x00, 0xC2, 0x88, 0x4E, 0x00, 0x07, 0xA3, 0x6E, 0x01,
4703 0x00, 0x33, 0x0B, 0x00, 0xC2, 0x88, 0xCD, 0x04, 0x36, 0x2D, 0x00, 0x33,
4704 0x1A, 0x00, 0xC2, 0x88, 0x50, 0x04, 0x88, 0x81, 0x06, 0xAB, 0x82, 0x01,
4705 0x88, 0x81, 0x4E, 0x00, 0x07, 0xA3, 0x92, 0x01, 0x50, 0x00, 0x00, 0xA3,
4706 0x3C, 0x01, 0x00, 0x05, 0x7C, 0x81, 0x46, 0x97, 0x02, 0x01, 0x05, 0xC6,
4707 0x04, 0x23, 0xA0, 0x01, 0x15, 0x23, 0xA1, 0x01, 0xBE, 0x81, 0xFD, 0x23,
4708 0x02, 0x61, 0x82, 0x01, 0x0A, 0xDA, 0x4A, 0x00, 0x06, 0x61, 0x00, 0xA0,
4709 0xB4, 0x01, 0x80, 0x63, 0xCD, 0x04, 0x36, 0x2D, 0x00, 0x33, 0x1B, 0x00,
4710 0xC2, 0x88, 0x06, 0x23, 0x68, 0x98, 0xCD, 0x04, 0xE6, 0x84, 0x06, 0x01,
4711 0x00, 0xA2, 0xD4, 0x01, 0x57, 0x60, 0x00, 0xA0, 0xDA, 0x01, 0xE6, 0x84,
4712 0x80, 0x23, 0xA0, 0x01, 0xE6, 0x84, 0x80, 0x73, 0x4B, 0x00, 0x06, 0x61,
4713 0x00, 0xA2, 0x00, 0x02, 0x04, 0x01, 0x0C, 0xDE, 0x02, 0x01, 0x03, 0xCC,
4714 0x4F, 0x00, 0x84, 0x97, 0xFC, 0x81, 0x08, 0x23, 0x02, 0x41, 0x82, 0x01,
4715 0x4F, 0x00, 0x62, 0x97, 0x48, 0x04, 0x84, 0x80, 0xF0, 0x97, 0x00, 0x46,
4716 0x56, 0x00, 0x03, 0xC0, 0x01, 0x23, 0xE8, 0x00, 0x81, 0x73, 0x06, 0x29,
4717 0x03, 0x42, 0x06, 0xE2, 0x03, 0xEE, 0x6B, 0xEB, 0x11, 0x23, 0xF8, 0x88,
4718 0x04, 0x98, 0xF0, 0x80, 0x80, 0x73, 0x80, 0x77, 0x07, 0xA4, 0x2A, 0x02,
4719 0x7C, 0x95, 0x06, 0xA6, 0x34, 0x02, 0x03, 0xA6, 0x4C, 0x04, 0x46, 0x82,
4720 0x04, 0x01, 0x03, 0xD8, 0xB4, 0x98, 0x6A, 0x96, 0x46, 0x82, 0xFE, 0x95,
4721 0x80, 0x67, 0x83, 0x03, 0x80, 0x63, 0xB6, 0x2D, 0x02, 0xA6, 0x6C, 0x02,
4722 0x07, 0xA6, 0x5A, 0x02, 0x06, 0xA6, 0x5E, 0x02, 0x03, 0xA6, 0x62, 0x02,
4723 0xC2, 0x88, 0x7C, 0x95, 0x48, 0x82, 0x60, 0x96, 0x48, 0x82, 0x04, 0x23,
4724 0xA0, 0x01, 0x14, 0x23, 0xA1, 0x01, 0x3C, 0x84, 0x04, 0x01, 0x0C, 0xDC,
4725 0xE0, 0x23, 0x25, 0x61, 0xEF, 0x00, 0x14, 0x01, 0x4F, 0x04, 0xA8, 0x01,
4726 0x6F, 0x00, 0xA5, 0x01, 0x03, 0x23, 0xA4, 0x01, 0x06, 0x23, 0x9C, 0x01,
4727 0x24, 0x2B, 0x1C, 0x01, 0x02, 0xA6, 0xAA, 0x02, 0x07, 0xA6, 0x5A, 0x02,
4728 0x06, 0xA6, 0x5E, 0x02, 0x03, 0xA6, 0x20, 0x04, 0x01, 0xA6, 0xB4, 0x02,
4729 0x00, 0xA6, 0xB4, 0x02, 0x00, 0x33, 0x12, 0x00, 0xC2, 0x88, 0x00, 0x0E,
4730 0x80, 0x63, 0x00, 0x43, 0x00, 0xA0, 0x8C, 0x02, 0x4D, 0x04, 0x04, 0x01,
4731 0x0B, 0xDC, 0xE7, 0x23, 0x04, 0x61, 0x84, 0x01, 0x10, 0x31, 0x12, 0x35,
4732 0x14, 0x01, 0xEC, 0x00, 0x6C, 0x38, 0x00, 0x3F, 0x00, 0x00, 0xEA, 0x82,
4733 0x18, 0x23, 0x04, 0x61, 0x18, 0xA0, 0xE2, 0x02, 0x04, 0x01, 0xA2, 0xC8,
4734 0x00, 0x33, 0x1F, 0x00, 0xC2, 0x88, 0x08, 0x31, 0x0A, 0x35, 0x0C, 0x39,
4735 0x0E, 0x3D, 0x7E, 0x98, 0xB6, 0x2D, 0x01, 0xA6, 0x14, 0x03, 0x00, 0xA6,
4736 0x14, 0x03, 0x07, 0xA6, 0x0C, 0x03, 0x06, 0xA6, 0x10, 0x03, 0x03, 0xA6,
4737 0x20, 0x04, 0x02, 0xA6, 0x6C, 0x02, 0x00, 0x33, 0x33, 0x00, 0xC2, 0x88,
4738 0x7C, 0x95, 0xEE, 0x82, 0x60, 0x96, 0xEE, 0x82, 0x82, 0x98, 0x80, 0x42,
4739 0x7E, 0x98, 0x64, 0xE4, 0x04, 0x01, 0x2D, 0xC8, 0x31, 0x05, 0x07, 0x01,
4740 0x00, 0xA2, 0x54, 0x03, 0x00, 0x43, 0x87, 0x01, 0x05, 0x05, 0x86, 0x98,
4741 0x7E, 0x98, 0x00, 0xA6, 0x16, 0x03, 0x07, 0xA6, 0x4C, 0x03, 0x03, 0xA6,
4742 0x3C, 0x04, 0x06, 0xA6, 0x50, 0x03, 0x01, 0xA6, 0x16, 0x03, 0x00, 0x33,
4743 0x25, 0x00, 0xC2, 0x88, 0x7C, 0x95, 0x32, 0x83, 0x60, 0x96, 0x32, 0x83,
4744 0x04, 0x01, 0x10, 0xCE, 0x07, 0xC8, 0x05, 0x05, 0xEB, 0x04, 0x00, 0x33,
4745 0x00, 0x20, 0xC0, 0x20, 0x81, 0x62, 0x72, 0x83, 0x00, 0x01, 0x05, 0x05,
4746 0xFF, 0xA2, 0x7A, 0x03, 0xB1, 0x01, 0x08, 0x23, 0xB2, 0x01, 0x2E, 0x83,
4747 0x05, 0x05, 0x15, 0x01, 0x00, 0xA2, 0x9A, 0x03, 0xEC, 0x00, 0x6E, 0x00,
4748 0x95, 0x01, 0x6C, 0x38, 0x00, 0x3F, 0x00, 0x00, 0x01, 0xA6, 0x96, 0x03,
4749 0x00, 0xA6, 0x96, 0x03, 0x10, 0x84, 0x80, 0x42, 0x7E, 0x98, 0x01, 0xA6,
4750 0xA4, 0x03, 0x00, 0xA6, 0xBC, 0x03, 0x10, 0x84, 0xA8, 0x98, 0x80, 0x42,
4751 0x01, 0xA6, 0xA4, 0x03, 0x07, 0xA6, 0xB2, 0x03, 0xD4, 0x83, 0x7C, 0x95,
4752 0xA8, 0x83, 0x00, 0x33, 0x2F, 0x00, 0xC2, 0x88, 0xA8, 0x98, 0x80, 0x42,
4753 0x00, 0xA6, 0xBC, 0x03, 0x07, 0xA6, 0xCA, 0x03, 0xD4, 0x83, 0x7C, 0x95,
4754 0xC0, 0x83, 0x00, 0x33, 0x26, 0x00, 0xC2, 0x88, 0x38, 0x2B, 0x80, 0x32,
4755 0x80, 0x36, 0x04, 0x23, 0xA0, 0x01, 0x12, 0x23, 0xA1, 0x01, 0x10, 0x84,
4756 0x07, 0xF0, 0x06, 0xA4, 0xF4, 0x03, 0x80, 0x6B, 0x80, 0x67, 0x05, 0x23,
4757 0x83, 0x03, 0x80, 0x63, 0x03, 0xA6, 0x0E, 0x04, 0x07, 0xA6, 0x06, 0x04,
4758 0x06, 0xA6, 0x0A, 0x04, 0x00, 0x33, 0x17, 0x00, 0xC2, 0x88, 0x7C, 0x95,
4759 0xF4, 0x83, 0x60, 0x96, 0xF4, 0x83, 0x20, 0x84, 0x07, 0xF0, 0x06, 0xA4,
4760 0x20, 0x04, 0x80, 0x6B, 0x80, 0x67, 0x05, 0x23, 0x83, 0x03, 0x80, 0x63,
4761 0xB6, 0x2D, 0x03, 0xA6, 0x3C, 0x04, 0x07, 0xA6, 0x34, 0x04, 0x06, 0xA6,
4762 0x38, 0x04, 0x00, 0x33, 0x30, 0x00, 0xC2, 0x88, 0x7C, 0x95, 0x20, 0x84,
4763 0x60, 0x96, 0x20, 0x84, 0x1D, 0x01, 0x06, 0xCC, 0x00, 0x33, 0x00, 0x84,
4764 0xC0, 0x20, 0x00, 0x23, 0xEA, 0x00, 0x81, 0x62, 0xA2, 0x0D, 0x80, 0x63,
4765 0x07, 0xA6, 0x5A, 0x04, 0x00, 0x33, 0x18, 0x00, 0xC2, 0x88, 0x03, 0x03,
4766 0x80, 0x63, 0xA3, 0x01, 0x07, 0xA4, 0x64, 0x04, 0x23, 0x01, 0x00, 0xA2,
4767 0x86, 0x04, 0x0A, 0xA0, 0x76, 0x04, 0xE0, 0x00, 0x00, 0x33, 0x1D, 0x00,
4768 0xC2, 0x88, 0x0B, 0xA0, 0x82, 0x04, 0xE0, 0x00, 0x00, 0x33, 0x1E, 0x00,
4769 0xC2, 0x88, 0x42, 0x23, 0xF8, 0x88, 0x00, 0x23, 0x22, 0xA3, 0xE6, 0x04,
4770 0x08, 0x23, 0x22, 0xA3, 0xA2, 0x04, 0x28, 0x23, 0x22, 0xA3, 0xAE, 0x04,
4771 0x02, 0x23, 0x22, 0xA3, 0xC4, 0x04, 0x42, 0x23, 0xF8, 0x88, 0x4A, 0x00,
4772 0x06, 0x61, 0x00, 0xA0, 0xAE, 0x04, 0x45, 0x23, 0xF8, 0x88, 0x04, 0x98,
4773 0x00, 0xA2, 0xC0, 0x04, 0xB4, 0x98, 0x00, 0x33, 0x00, 0x82, 0xC0, 0x20,
4774 0x81, 0x62, 0xE8, 0x81, 0x47, 0x23, 0xF8, 0x88, 0x04, 0x01, 0x0B, 0xDE,
4775 0x04, 0x98, 0xB4, 0x98, 0x00, 0x33, 0x00, 0x81, 0xC0, 0x20, 0x81, 0x62,
4776 0x14, 0x01, 0x00, 0xA0, 0x00, 0x02, 0x43, 0x23, 0xF8, 0x88, 0x04, 0x23,
4777 0xA0, 0x01, 0x44, 0x23, 0xA1, 0x01, 0x80, 0x73, 0x4D, 0x00, 0x03, 0xA3,
4778 0xF4, 0x04, 0x00, 0x33, 0x27, 0x00, 0xC2, 0x88, 0x04, 0x01, 0x04, 0xDC,
4779 0x02, 0x23, 0xA2, 0x01, 0x04, 0x23, 0xA0, 0x01, 0x04, 0x98, 0x26, 0x95,
4780 0x4B, 0x00, 0xF6, 0x00, 0x4F, 0x04, 0x4F, 0x00, 0x00, 0xA3, 0x22, 0x05,
4781 0x00, 0x05, 0x76, 0x00, 0x06, 0x61, 0x00, 0xA2, 0x1C, 0x05, 0x0A, 0x85,
4782 0x46, 0x97, 0xCD, 0x04, 0x24, 0x85, 0x48, 0x04, 0x84, 0x80, 0x02, 0x01,
4783 0x03, 0xDA, 0x80, 0x23, 0x82, 0x01, 0x34, 0x85, 0x02, 0x23, 0xA0, 0x01,
4784 0x4A, 0x00, 0x06, 0x61, 0x00, 0xA2, 0x40, 0x05, 0x1D, 0x01, 0x04, 0xD6,
4785 0xFF, 0x23, 0x86, 0x41, 0x4B, 0x60, 0xCB, 0x00, 0xFF, 0x23, 0x80, 0x01,
4786 0x49, 0x00, 0x81, 0x01, 0x04, 0x01, 0x02, 0xC8, 0x30, 0x01, 0x80, 0x01,
4787 0xF7, 0x04, 0x03, 0x01, 0x49, 0x04, 0x80, 0x01, 0xC9, 0x00, 0x00, 0x05,
4788 0x00, 0x01, 0xFF, 0xA0, 0x60, 0x05, 0x77, 0x04, 0x01, 0x23, 0xEA, 0x00,
4789 0x5D, 0x00, 0xFE, 0xC7, 0x00, 0x62, 0x00, 0x23, 0xEA, 0x00, 0x00, 0x63,
4790 0x07, 0xA4, 0xF8, 0x05, 0x03, 0x03, 0x02, 0xA0, 0x8E, 0x05, 0xF4, 0x85,
4791 0x00, 0x33, 0x2D, 0x00, 0xC2, 0x88, 0x04, 0xA0, 0xB8, 0x05, 0x80, 0x63,
4792 0x00, 0x23, 0xDF, 0x00, 0x4A, 0x00, 0x06, 0x61, 0x00, 0xA2, 0xA4, 0x05,
4793 0x1D, 0x01, 0x06, 0xD6, 0x02, 0x23, 0x02, 0x41, 0x82, 0x01, 0x50, 0x00,
4794 0x62, 0x97, 0x04, 0x85, 0x04, 0x23, 0x02, 0x41, 0x82, 0x01, 0x04, 0x85,
4795 0x08, 0xA0, 0xBE, 0x05, 0xF4, 0x85, 0x03, 0xA0, 0xC4, 0x05, 0xF4, 0x85,
4796 0x01, 0xA0, 0xCE, 0x05, 0x88, 0x00, 0x80, 0x63, 0xCC, 0x86, 0x07, 0xA0,
4797 0xEE, 0x05, 0x5F, 0x00, 0x00, 0x2B, 0xDF, 0x08, 0x00, 0xA2, 0xE6, 0x05,
4798 0x80, 0x67, 0x80, 0x63, 0x01, 0xA2, 0x7A, 0x06, 0x7C, 0x85, 0x06, 0x23,
4799 0x68, 0x98, 0x48, 0x23, 0xF8, 0x88, 0x07, 0x23, 0x80, 0x00, 0x06, 0x87,
4800 0x80, 0x63, 0x7C, 0x85, 0x00, 0x23, 0xDF, 0x00, 0x00, 0x63, 0x4A, 0x00,
4801 0x06, 0x61, 0x00, 0xA2, 0x36, 0x06, 0x1D, 0x01, 0x16, 0xD4, 0xC0, 0x23,
4802 0x07, 0x41, 0x83, 0x03, 0x80, 0x63, 0x06, 0xA6, 0x1C, 0x06, 0x00, 0x33,
4803 0x37, 0x00, 0xC2, 0x88, 0x1D, 0x01, 0x01, 0xD6, 0x20, 0x23, 0x63, 0x60,
4804 0x83, 0x03, 0x80, 0x63, 0x02, 0x23, 0xDF, 0x00, 0x07, 0xA6, 0x7C, 0x05,
4805 0xEF, 0x04, 0x6F, 0x00, 0x00, 0x63, 0x4B, 0x00, 0x06, 0x41, 0xCB, 0x00,
4806 0x52, 0x00, 0x06, 0x61, 0x00, 0xA2, 0x4E, 0x06, 0x1D, 0x01, 0x03, 0xCA,
4807 0xC0, 0x23, 0x07, 0x41, 0x00, 0x63, 0x1D, 0x01, 0x04, 0xCC, 0x00, 0x33,
4808 0x00, 0x83, 0xC0, 0x20, 0x81, 0x62, 0x80, 0x23, 0x07, 0x41, 0x00, 0x63,
4809 0x80, 0x67, 0x08, 0x23, 0x83, 0x03, 0x80, 0x63, 0x00, 0x63, 0x01, 0x23,
4810 0xDF, 0x00, 0x06, 0xA6, 0x84, 0x06, 0x07, 0xA6, 0x7C, 0x05, 0x80, 0x67,
4811 0x80, 0x63, 0x00, 0x33, 0x00, 0x40, 0xC0, 0x20, 0x81, 0x62, 0x00, 0x63,
4812 0x00, 0x00, 0xFE, 0x95, 0x83, 0x03, 0x80, 0x63, 0x06, 0xA6, 0x94, 0x06,
4813 0x07, 0xA6, 0x7C, 0x05, 0x00, 0x00, 0x01, 0xA0, 0x14, 0x07, 0x00, 0x2B,
4814 0x40, 0x0E, 0x80, 0x63, 0x01, 0x00, 0x06, 0xA6, 0xAA, 0x06, 0x07, 0xA6,
4815 0x7C, 0x05, 0x40, 0x0E, 0x80, 0x63, 0x00, 0x43, 0x00, 0xA0, 0xA2, 0x06,
4816 0x06, 0xA6, 0xBC, 0x06, 0x07, 0xA6, 0x7C, 0x05, 0x80, 0x67, 0x40, 0x0E,
4817 0x80, 0x63, 0x07, 0xA6, 0x7C, 0x05, 0x00, 0x23, 0xDF, 0x00, 0x00, 0x63,
4818 0x07, 0xA6, 0xD6, 0x06, 0x00, 0x33, 0x2A, 0x00, 0xC2, 0x88, 0x03, 0x03,
4819 0x80, 0x63, 0x89, 0x00, 0x0A, 0x2B, 0x07, 0xA6, 0xE8, 0x06, 0x00, 0x33,
4820 0x29, 0x00, 0xC2, 0x88, 0x00, 0x43, 0x00, 0xA2, 0xF4, 0x06, 0xC0, 0x0E,
4821 0x80, 0x63, 0xDE, 0x86, 0xC0, 0x0E, 0x00, 0x33, 0x00, 0x80, 0xC0, 0x20,
4822 0x81, 0x62, 0x04, 0x01, 0x02, 0xDA, 0x80, 0x63, 0x7C, 0x85, 0x80, 0x7B,
4823 0x80, 0x63, 0x06, 0xA6, 0x8C, 0x06, 0x00, 0x33, 0x2C, 0x00, 0xC2, 0x88,
4824 0x0C, 0xA2, 0x2E, 0x07, 0xFE, 0x95, 0x83, 0x03, 0x80, 0x63, 0x06, 0xA6,
4825 0x2C, 0x07, 0x07, 0xA6, 0x7C, 0x05, 0x00, 0x33, 0x3D, 0x00, 0xC2, 0x88,
4826 0x00, 0x00, 0x80, 0x67, 0x83, 0x03, 0x80, 0x63, 0x0C, 0xA0, 0x44, 0x07,
4827 0x07, 0xA6, 0x7C, 0x05, 0xBF, 0x23, 0x04, 0x61, 0x84, 0x01, 0xE6, 0x84,
4828 0x00, 0x63, 0xF0, 0x04, 0x01, 0x01, 0xF1, 0x00, 0x00, 0x01, 0xF2, 0x00,
4829 0x01, 0x05, 0x80, 0x01, 0x72, 0x04, 0x71, 0x00, 0x81, 0x01, 0x70, 0x04,
4830 0x80, 0x05, 0x81, 0x05, 0x00, 0x63, 0xF0, 0x04, 0xF2, 0x00, 0x72, 0x04,
4831 0x01, 0x01, 0xF1, 0x00, 0x70, 0x00, 0x81, 0x01, 0x70, 0x04, 0x71, 0x00,
4832 0x81, 0x01, 0x72, 0x00, 0x80, 0x01, 0x71, 0x04, 0x70, 0x00, 0x80, 0x01,
4833 0x70, 0x04, 0x00, 0x63, 0xF0, 0x04, 0xF2, 0x00, 0x72, 0x04, 0x00, 0x01,
4834 0xF1, 0x00, 0x70, 0x00, 0x80, 0x01, 0x70, 0x04, 0x71, 0x00, 0x80, 0x01,
4835 0x72, 0x00, 0x81, 0x01, 0x71, 0x04, 0x70, 0x00, 0x81, 0x01, 0x70, 0x04,
4836 0x00, 0x63, 0x00, 0x23, 0xB3, 0x01, 0x83, 0x05, 0xA3, 0x01, 0xA2, 0x01,
4837 0xA1, 0x01, 0x01, 0x23, 0xA0, 0x01, 0x00, 0x01, 0xC8, 0x00, 0x03, 0xA1,
4838 0xC4, 0x07, 0x00, 0x33, 0x07, 0x00, 0xC2, 0x88, 0x80, 0x05, 0x81, 0x05,
4839 0x04, 0x01, 0x11, 0xC8, 0x48, 0x00, 0xB0, 0x01, 0xB1, 0x01, 0x08, 0x23,
4840 0xB2, 0x01, 0x05, 0x01, 0x48, 0x04, 0x00, 0x43, 0x00, 0xA2, 0xE4, 0x07,
4841 0x00, 0x05, 0xDA, 0x87, 0x00, 0x01, 0xC8, 0x00, 0xFF, 0x23, 0x80, 0x01,
4842 0x05, 0x05, 0x00, 0x63, 0xF7, 0x04, 0x1A, 0x09, 0xF6, 0x08, 0x6E, 0x04,
4843 0x00, 0x02, 0x80, 0x43, 0x76, 0x08, 0x80, 0x02, 0x77, 0x04, 0x00, 0x63,
4844 0xF7, 0x04, 0x1A, 0x09, 0xF6, 0x08, 0x6E, 0x04, 0x00, 0x02, 0x00, 0xA0,
4845 0x14, 0x08, 0x16, 0x88, 0x00, 0x43, 0x76, 0x08, 0x80, 0x02, 0x77, 0x04,
4846 0x00, 0x63, 0xF3, 0x04, 0x00, 0x23, 0xF4, 0x00, 0x74, 0x00, 0x80, 0x43,
4847 0xF4, 0x00, 0xCF, 0x40, 0x00, 0xA2, 0x44, 0x08, 0x74, 0x04, 0x02, 0x01,
4848 0xF7, 0xC9, 0xF6, 0xD9, 0x00, 0x01, 0x01, 0xA1, 0x24, 0x08, 0x04, 0x98,
4849 0x26, 0x95, 0x24, 0x88, 0x73, 0x04, 0x00, 0x63, 0xF3, 0x04, 0x75, 0x04,
4850 0x5A, 0x88, 0x02, 0x01, 0x04, 0xD8, 0x46, 0x97, 0x04, 0x98, 0x26, 0x95,
4851 0x4A, 0x88, 0x75, 0x00, 0x00, 0xA3, 0x64, 0x08, 0x00, 0x05, 0x4E, 0x88,
4852 0x73, 0x04, 0x00, 0x63, 0x80, 0x7B, 0x80, 0x63, 0x06, 0xA6, 0x76, 0x08,
4853 0x00, 0x33, 0x3E, 0x00, 0xC2, 0x88, 0x80, 0x67, 0x83, 0x03, 0x80, 0x63,
4854 0x00, 0x63, 0x38, 0x2B, 0x9C, 0x88, 0x38, 0x2B, 0x92, 0x88, 0x32, 0x09,
4855 0x31, 0x05, 0x92, 0x98, 0x05, 0x05, 0xB2, 0x09, 0x00, 0x63, 0x00, 0x32,
4856 0x00, 0x36, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x63, 0x80, 0x32, 0x80, 0x36,
4857 0x80, 0x3A, 0x80, 0x3E, 0xB4, 0x3D, 0x00, 0x63, 0x38, 0x2B, 0x40, 0x32,
4858 0x40, 0x36, 0x40, 0x3A, 0x40, 0x3E, 0x00, 0x63, 0x5A, 0x20, 0xC9, 0x40,
4859 0x00, 0xA0, 0xB4, 0x08, 0x5D, 0x00, 0xFE, 0xC3, 0x00, 0x63, 0x80, 0x73,
4860 0xE6, 0x20, 0x02, 0x23, 0xE8, 0x00, 0x82, 0x73, 0xFF, 0xFD, 0x80, 0x73,
4861 0x13, 0x23, 0xF8, 0x88, 0x66, 0x20, 0xC0, 0x20, 0x04, 0x23, 0xA0, 0x01,
4862 0xA1, 0x23, 0xA1, 0x01, 0x81, 0x62, 0xE2, 0x88, 0x80, 0x73, 0x80, 0x77,
4863 0x68, 0x00, 0x00, 0xA2, 0x80, 0x00, 0x03, 0xC2, 0xF1, 0xC7, 0x41, 0x23,
4864 0xF8, 0x88, 0x11, 0x23, 0xA1, 0x01, 0x04, 0x23, 0xA0, 0x01, 0xE6, 0x84,
4865};
4866
4867static unsigned short _asc_mcode_size = sizeof(_asc_mcode_buf);
4868static ADV_DCNT _asc_mcode_chksum = 0x012C453FUL;
4869
4870/* Microcode buffer is kept after initialization for error recovery. */
4871static unsigned char _adv_asc3550_buf[] = {
4872 0x00, 0x00, 0x00, 0xf2, 0x00, 0xf0, 0x00, 0x16, 0x18, 0xe4, 0x00, 0xfc,
4873 0x01, 0x00, 0x48, 0xe4, 0xbe, 0x18, 0x18, 0x80, 0x03, 0xf6, 0x02, 0x00,
4874 0x00, 0xfa, 0xff, 0xff, 0x28, 0x0e, 0x9e, 0xe7, 0xff, 0x00, 0x82, 0xe7,
4875 0x00, 0xea, 0x00, 0xf6, 0x01, 0xe6, 0x09, 0xe7, 0x55, 0xf0, 0x01, 0xf6,
4876 0x01, 0xfa, 0x08, 0x00, 0x03, 0x00, 0x04, 0x00, 0x18, 0xf4, 0x10, 0x00,
4877 0x00, 0xec, 0x85, 0xf0, 0xbc, 0x00, 0xd5, 0xf0, 0x8e, 0x0c, 0x38, 0x54,
4878 0x00, 0xe6, 0x1e, 0xf0, 0x86, 0xf0, 0xb4, 0x00, 0x98, 0x57, 0xd0, 0x01,
4879 0x0c, 0x1c, 0x3e, 0x1c, 0x0c, 0x00, 0xbb, 0x00, 0xaa, 0x18, 0x02, 0x80,
4880 0x32, 0xf0, 0x01, 0xfc, 0x88, 0x0c, 0xc6, 0x12, 0x02, 0x13, 0x18, 0x40,
4881 0x00, 0x57, 0x01, 0xea, 0x3c, 0x00, 0x6c, 0x01, 0x6e, 0x01, 0x04, 0x12,
4882 0x3e, 0x57, 0x00, 0x80, 0x03, 0xe6, 0xb6, 0x00, 0xc0, 0x00, 0x01, 0x01,
4883 0x3e, 0x01, 0xda, 0x0f, 0x22, 0x10, 0x08, 0x12, 0x02, 0x4a, 0xb9, 0x54,
4884 0x03, 0x58, 0x1b, 0x80, 0x30, 0xe4, 0x4b, 0xe4, 0x20, 0x00, 0x32, 0x00,
4885 0x3e, 0x00, 0x80, 0x00, 0x24, 0x01, 0x3c, 0x01, 0x68, 0x01, 0x6a, 0x01,
4886 0x70, 0x01, 0x72, 0x01, 0x74, 0x01, 0x76, 0x01, 0x78, 0x01, 0x62, 0x0a,
4887 0x92, 0x0c, 0x2c, 0x10, 0x2e, 0x10, 0x06, 0x13, 0x4c, 0x1c, 0xbb, 0x55,
4888 0x3c, 0x56, 0x04, 0x80, 0x4a, 0xe4, 0x02, 0xee, 0x5b, 0xf0, 0xb1, 0xf0,
4889 0x03, 0xf7, 0x06, 0xf7, 0x03, 0xfc, 0x0f, 0x00, 0x40, 0x00, 0xbe, 0x00,
4890 0x00, 0x01, 0xb0, 0x08, 0x30, 0x13, 0x64, 0x15, 0x32, 0x1c, 0x38, 0x1c,
4891 0x4e, 0x1c, 0x10, 0x44, 0x02, 0x48, 0x00, 0x4c, 0x04, 0xea, 0x5d, 0xf0,
4892 0x04, 0xf6, 0x02, 0xfc, 0x05, 0x00, 0x34, 0x00, 0x36, 0x00, 0x98, 0x00,
4893 0xcc, 0x00, 0x20, 0x01, 0x4e, 0x01, 0x4e, 0x0b, 0x1e, 0x0e, 0x0c, 0x10,
4894 0x0a, 0x12, 0x04, 0x13, 0x40, 0x13, 0x30, 0x1c, 0x00, 0x4e, 0xbd, 0x56,
4895 0x06, 0x83, 0x00, 0xdc, 0x05, 0xf0, 0x09, 0xf0, 0x59, 0xf0, 0xa7, 0xf0,
4896 0xb8, 0xf0, 0x0e, 0xf7, 0x06, 0x00, 0x19, 0x00, 0x33, 0x00, 0x9b, 0x00,
4897 0xa4, 0x00, 0xb5, 0x00, 0xba, 0x00, 0xd0, 0x00, 0xe1, 0x00, 0xe7, 0x00,
4898 0xde, 0x03, 0x56, 0x0a, 0x14, 0x0e, 0x02, 0x10, 0x04, 0x10, 0x0a, 0x10,
4899 0x36, 0x10, 0x0a, 0x13, 0x12, 0x13, 0x52, 0x13, 0x10, 0x15, 0x14, 0x15,
4900 0xac, 0x16, 0x20, 0x1c, 0x34, 0x1c, 0x36, 0x1c, 0x08, 0x44, 0x38, 0x44,
4901 0x91, 0x44, 0x0a, 0x45, 0x48, 0x46, 0x01, 0x48, 0x68, 0x54, 0x83, 0x55,
4902 0xb0, 0x57, 0x01, 0x58, 0x83, 0x59, 0x05, 0xe6, 0x0b, 0xf0, 0x0c, 0xf0,
4903 0x5c, 0xf0, 0x4b, 0xf4, 0x04, 0xf8, 0x05, 0xf8, 0x02, 0xfa, 0x03, 0xfa,
4904 0x04, 0xfc, 0x05, 0xfc, 0x07, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x1c, 0x00,
4905 0x9e, 0x00, 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00, 0x22, 0x01,
4906 0x26, 0x01, 0x79, 0x01, 0x7a, 0x01, 0xc0, 0x01, 0xc2, 0x01, 0x7c, 0x02,
4907 0x5a, 0x03, 0xea, 0x04, 0xe8, 0x07, 0x68, 0x08, 0x69, 0x08, 0xba, 0x08,
4908 0xe9, 0x09, 0x06, 0x0b, 0x3a, 0x0e, 0x00, 0x10, 0x1a, 0x10, 0xed, 0x10,
4909 0xf1, 0x10, 0x06, 0x12, 0x0c, 0x13, 0x16, 0x13, 0x1e, 0x13, 0x82, 0x13,
4910 0x42, 0x14, 0xd6, 0x14, 0x8a, 0x15, 0xc6, 0x17, 0xd2, 0x17, 0x6b, 0x18,
4911 0x12, 0x1c, 0x46, 0x1c, 0x9c, 0x32, 0x00, 0x40, 0x0e, 0x47, 0x48, 0x47,
4912 0x41, 0x48, 0x89, 0x48, 0x80, 0x4c, 0x00, 0x54, 0x44, 0x55, 0xe5, 0x55,
4913 0x14, 0x56, 0x77, 0x57, 0xbf, 0x57, 0x40, 0x5c, 0x06, 0x80, 0x08, 0x90,
4914 0x03, 0xa1, 0xfe, 0x9c, 0xf0, 0x29, 0x02, 0xfe, 0xb8, 0x0c, 0xff, 0x10,
4915 0x00, 0x00, 0xd0, 0xfe, 0xcc, 0x18, 0x00, 0xcf, 0xfe, 0x80, 0x01, 0xff,
4916 0x03, 0x00, 0x00, 0xfe, 0x93, 0x15, 0xfe, 0x0f, 0x05, 0xff, 0x38, 0x00,
4917 0x00, 0xfe, 0x57, 0x24, 0x00, 0xfe, 0x48, 0x00, 0x4f, 0xff, 0x04, 0x00,
4918 0x00, 0x10, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, 0xff, 0x08,
4919 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x0f,
4920 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00,
4921 0xfe, 0x04, 0xf7, 0xcf, 0x2a, 0x67, 0x0b, 0x01, 0xfe, 0xce, 0x0e, 0xfe,
4922 0x04, 0xf7, 0xcf, 0x67, 0x0b, 0x3c, 0x2a, 0xfe, 0x3d, 0xf0, 0xfe, 0x02,
4923 0x02, 0xfe, 0x20, 0xf0, 0x9c, 0xfe, 0x91, 0xf0, 0xfe, 0xf0, 0x01, 0xfe,
4924 0x90, 0xf0, 0xfe, 0xf0, 0x01, 0xfe, 0x8f, 0xf0, 0x9c, 0x05, 0x51, 0x3b,
4925 0x02, 0xfe, 0xd4, 0x0c, 0x01, 0xfe, 0x44, 0x0d, 0xfe, 0xdd, 0x12, 0xfe,
4926 0xfc, 0x10, 0xfe, 0x28, 0x1c, 0x05, 0xfe, 0xa6, 0x00, 0xfe, 0xd3, 0x12,
4927 0x47, 0x18, 0xfe, 0xa6, 0x00, 0xb5, 0xfe, 0x48, 0xf0, 0xfe, 0x86, 0x02,
4928 0xfe, 0x49, 0xf0, 0xfe, 0xa0, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xbe, 0x02,
4929 0xfe, 0x46, 0xf0, 0xfe, 0x50, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x56, 0x02,
4930 0xfe, 0x43, 0xf0, 0xfe, 0x44, 0x02, 0xfe, 0x44, 0xf0, 0xfe, 0x48, 0x02,
4931 0xfe, 0x45, 0xf0, 0xfe, 0x4c, 0x02, 0x17, 0x0b, 0xa0, 0x17, 0x06, 0x18,
4932 0x96, 0x02, 0x29, 0xfe, 0x00, 0x1c, 0xde, 0xfe, 0x02, 0x1c, 0xdd, 0xfe,
4933 0x1e, 0x1c, 0xfe, 0xe9, 0x10, 0x01, 0xfe, 0x20, 0x17, 0xfe, 0xe7, 0x10,
4934 0xfe, 0x06, 0xfc, 0xc7, 0x0a, 0x6b, 0x01, 0x9e, 0x02, 0x29, 0x14, 0x4d,
4935 0x37, 0x97, 0x01, 0xfe, 0x64, 0x0f, 0x0a, 0x6b, 0x01, 0x82, 0xfe, 0xbd,
4936 0x10, 0x0a, 0x6b, 0x01, 0x82, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe,
4937 0x58, 0x1c, 0x17, 0x06, 0x18, 0x96, 0x2a, 0x25, 0x29, 0xfe, 0x3d, 0xf0,
4938 0xfe, 0x02, 0x02, 0x21, 0xfe, 0x94, 0x02, 0xfe, 0x5a, 0x1c, 0xea, 0xfe,
4939 0x14, 0x1c, 0x14, 0xfe, 0x30, 0x00, 0x37, 0x97, 0x01, 0xfe, 0x54, 0x0f,
4940 0x17, 0x06, 0x18, 0x96, 0x02, 0xd0, 0x1e, 0x20, 0x07, 0x10, 0x34, 0xfe,
4941 0x69, 0x10, 0x17, 0x06, 0x18, 0x96, 0xfe, 0x04, 0xec, 0x20, 0x46, 0x3d,
4942 0x12, 0x20, 0xfe, 0x05, 0xf6, 0xc7, 0x01, 0xfe, 0x52, 0x16, 0x09, 0x4a,
4943 0x4c, 0x35, 0x11, 0x2d, 0x3c, 0x8a, 0x01, 0xe6, 0x02, 0x29, 0x0a, 0x40,
4944 0x01, 0x0e, 0x07, 0x00, 0x5d, 0x01, 0x6f, 0xfe, 0x18, 0x10, 0xfe, 0x41,
4945 0x58, 0x0a, 0x99, 0x01, 0x0e, 0xfe, 0xc8, 0x54, 0x64, 0xfe, 0x0c, 0x03,
4946 0x01, 0xe6, 0x02, 0x29, 0x2a, 0x46, 0xfe, 0x02, 0xe8, 0x27, 0xf8, 0xfe,
4947 0x9e, 0x43, 0xf7, 0xfe, 0x27, 0xf0, 0xfe, 0xdc, 0x01, 0xfe, 0x07, 0x4b,
4948 0xfe, 0x20, 0xf0, 0x9c, 0xfe, 0x40, 0x1c, 0x25, 0xd2, 0xfe, 0x26, 0xf0,
4949 0xfe, 0x56, 0x03, 0xfe, 0xa0, 0xf0, 0xfe, 0x44, 0x03, 0xfe, 0x11, 0xf0,
4950 0x9c, 0xfe, 0xef, 0x10, 0xfe, 0x9f, 0xf0, 0xfe, 0x64, 0x03, 0xeb, 0x0f,
4951 0xfe, 0x11, 0x00, 0x02, 0x5a, 0x2a, 0xfe, 0x48, 0x1c, 0xeb, 0x09, 0x04,
4952 0x1d, 0xfe, 0x18, 0x13, 0x23, 0x1e, 0x98, 0xac, 0x12, 0x98, 0x0a, 0x40,
4953 0x01, 0x0e, 0xac, 0x75, 0x01, 0xfe, 0xbc, 0x15, 0x11, 0xca, 0x25, 0xd2,
4954 0xfe, 0x01, 0xf0, 0xd2, 0xfe, 0x82, 0xf0, 0xfe, 0x92, 0x03, 0xec, 0x11,
4955 0xfe, 0xe4, 0x00, 0x65, 0xfe, 0xa4, 0x03, 0x25, 0x32, 0x1f, 0xfe, 0xb4,
4956 0x03, 0x01, 0x43, 0xfe, 0x06, 0xf0, 0xfe, 0xc4, 0x03, 0x8d, 0x81, 0xfe,
4957 0x0a, 0xf0, 0xfe, 0x7a, 0x06, 0x02, 0x22, 0x05, 0x6b, 0x28, 0x16, 0xfe,
4958 0xf6, 0x04, 0x14, 0x2c, 0x01, 0x33, 0x8f, 0xfe, 0x66, 0x02, 0x02, 0xd1,
4959 0xeb, 0x2a, 0x67, 0x1a, 0xfe, 0x67, 0x1b, 0xf8, 0xf7, 0xfe, 0x48, 0x1c,
4960 0x70, 0x01, 0x6e, 0x87, 0x0a, 0x40, 0x01, 0x0e, 0x07, 0x00, 0x16, 0xd3,
4961 0x0a, 0xca, 0x01, 0x0e, 0x74, 0x60, 0x59, 0x76, 0x27, 0x05, 0x6b, 0x28,
4962 0xfe, 0x10, 0x12, 0x14, 0x2c, 0x01, 0x33, 0x8f, 0xfe, 0x66, 0x02, 0x02,
4963 0xd1, 0xbc, 0x7d, 0xbd, 0x7f, 0x25, 0x22, 0x65, 0xfe, 0x3c, 0x04, 0x1f,
4964 0xfe, 0x38, 0x04, 0x68, 0xfe, 0xa0, 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x4e,
4965 0x12, 0x2b, 0xff, 0x02, 0x00, 0x10, 0x01, 0x08, 0x1f, 0xfe, 0xe0, 0x04,
4966 0x2b, 0x01, 0x08, 0x1f, 0x22, 0x30, 0x2e, 0xd5, 0xfe, 0x4c, 0x44, 0xfe,
4967 0x4c, 0x12, 0x60, 0xfe, 0x44, 0x48, 0x13, 0x2c, 0xfe, 0x4c, 0x54, 0x64,
4968 0xd3, 0x46, 0x76, 0x27, 0xfa, 0xef, 0xfe, 0x62, 0x13, 0x09, 0x04, 0x1d,
4969 0xfe, 0x2a, 0x13, 0x2f, 0x07, 0x7e, 0xa5, 0xfe, 0x20, 0x10, 0x13, 0x2c,
4970 0xfe, 0x4c, 0x54, 0x64, 0xd3, 0xfa, 0xef, 0x86, 0x09, 0x04, 0x1d, 0xfe,
4971 0x08, 0x13, 0x2f, 0x07, 0x7e, 0x6e, 0x09, 0x04, 0x1d, 0xfe, 0x1c, 0x12,
4972 0x14, 0x92, 0x09, 0x04, 0x06, 0x3b, 0x14, 0xc4, 0x01, 0x33, 0x8f, 0xfe,
4973 0x70, 0x0c, 0x02, 0x22, 0x2b, 0x11, 0xfe, 0xe6, 0x00, 0xfe, 0x1c, 0x90,
4974 0xf9, 0x03, 0x14, 0x92, 0x01, 0x33, 0x02, 0x29, 0xfe, 0x42, 0x5b, 0x67,
4975 0x1a, 0xfe, 0x46, 0x59, 0xf8, 0xf7, 0xfe, 0x87, 0x80, 0xfe, 0x31, 0xe4,
4976 0x4f, 0x09, 0x04, 0x0b, 0xfe, 0x78, 0x13, 0xfe, 0x20, 0x80, 0x07, 0x1a,
4977 0xfe, 0x70, 0x12, 0x49, 0x04, 0x06, 0xfe, 0x60, 0x13, 0x05, 0xfe, 0xa2,
4978 0x00, 0x28, 0x16, 0xfe, 0x80, 0x05, 0xfe, 0x31, 0xe4, 0x6a, 0x49, 0x04,
4979 0x0b, 0xfe, 0x4a, 0x13, 0x05, 0xfe, 0xa0, 0x00, 0x28, 0xfe, 0x42, 0x12,
4980 0x5e, 0x01, 0x08, 0x25, 0x32, 0xf1, 0x01, 0x08, 0x26, 0xfe, 0x98, 0x05,
4981 0x11, 0xfe, 0xe3, 0x00, 0x23, 0x49, 0xfe, 0x4a, 0xf0, 0xfe, 0x6a, 0x05,
4982 0xfe, 0x49, 0xf0, 0xfe, 0x64, 0x05, 0x83, 0x24, 0xfe, 0x21, 0x00, 0xa1,
4983 0x24, 0xfe, 0x22, 0x00, 0xa0, 0x24, 0x4c, 0xfe, 0x09, 0x48, 0x01, 0x08,
4984 0x26, 0xfe, 0x98, 0x05, 0xfe, 0xe2, 0x08, 0x49, 0x04, 0xc5, 0x3b, 0x01,
4985 0x86, 0x24, 0x06, 0x12, 0xcc, 0x37, 0xfe, 0x27, 0x01, 0x09, 0x04, 0x1d,
4986 0xfe, 0x22, 0x12, 0x47, 0x01, 0xa7, 0x14, 0x92, 0x09, 0x04, 0x06, 0x3b,
4987 0x14, 0xc4, 0x01, 0x33, 0x8f, 0xfe, 0x70, 0x0c, 0x02, 0x22, 0x05, 0xfe,
4988 0x9c, 0x00, 0x28, 0xfe, 0x3e, 0x12, 0x05, 0x50, 0x28, 0xfe, 0x36, 0x13,
4989 0x47, 0x01, 0xa7, 0x26, 0xfe, 0x08, 0x06, 0x0a, 0x06, 0x49, 0x04, 0x19,
4990 0xfe, 0x02, 0x12, 0x5f, 0x01, 0xfe, 0xaa, 0x14, 0x1f, 0xfe, 0xfe, 0x05,
4991 0x11, 0x9a, 0x01, 0x43, 0x11, 0xfe, 0xe5, 0x00, 0x05, 0x50, 0xb4, 0x0c,
4992 0x50, 0x05, 0xc6, 0x28, 0xfe, 0x62, 0x12, 0x05, 0x3f, 0x28, 0xfe, 0x5a,
4993 0x13, 0x01, 0xfe, 0x14, 0x18, 0x01, 0xfe, 0x66, 0x18, 0xfe, 0x43, 0x48,
4994 0xb7, 0x19, 0x13, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x48, 0x8b, 0x1c, 0x3d,
4995 0x85, 0xb7, 0x69, 0x47, 0x01, 0xa7, 0x26, 0xfe, 0x72, 0x06, 0x49, 0x04,
4996 0x1b, 0xdf, 0x89, 0x0a, 0x4d, 0x01, 0xfe, 0xd8, 0x14, 0x1f, 0xfe, 0x68,
4997 0x06, 0x11, 0x9a, 0x01, 0x43, 0x11, 0xfe, 0xe5, 0x00, 0x05, 0x3f, 0xb4,
4998 0x0c, 0x3f, 0x17, 0x06, 0x01, 0xa7, 0xec, 0x72, 0x70, 0x01, 0x6e, 0x87,
4999 0x11, 0xfe, 0xe2, 0x00, 0x01, 0x08, 0x25, 0x32, 0xfe, 0x0a, 0xf0, 0xfe,
5000 0xa6, 0x06, 0x8c, 0xfe, 0x5c, 0x07, 0xfe, 0x06, 0xf0, 0xfe, 0x64, 0x07,
5001 0x8d, 0x81, 0x02, 0x22, 0x09, 0x04, 0x0b, 0xfe, 0x2e, 0x12, 0x15, 0x1a,
5002 0x01, 0x08, 0x15, 0x00, 0x01, 0x08, 0x15, 0x00, 0x01, 0x08, 0x15, 0x00,
5003 0x01, 0x08, 0xfe, 0x99, 0xa4, 0x01, 0x08, 0x15, 0x00, 0x02, 0xfe, 0x32,
5004 0x08, 0x61, 0x04, 0x1b, 0xfe, 0x38, 0x12, 0x09, 0x04, 0x1b, 0x6e, 0x15,
5005 0xfe, 0x1b, 0x00, 0x01, 0x08, 0x15, 0x00, 0x01, 0x08, 0x15, 0x00, 0x01,
5006 0x08, 0x15, 0x00, 0x01, 0x08, 0x15, 0x06, 0x01, 0x08, 0x15, 0x00, 0x02,
5007 0xd9, 0x66, 0x4c, 0xfe, 0x3a, 0x55, 0x5f, 0xfe, 0x9a, 0x81, 0x4b, 0x1d,
5008 0xba, 0xfe, 0x32, 0x07, 0x0a, 0x1d, 0xfe, 0x09, 0x6f, 0xaf, 0xfe, 0xca,
5009 0x45, 0xfe, 0x32, 0x12, 0x62, 0x2c, 0x85, 0x66, 0x7b, 0x01, 0x08, 0x25,
5010 0x32, 0xfe, 0x0a, 0xf0, 0xfe, 0x32, 0x07, 0x8d, 0x81, 0x8c, 0xfe, 0x5c,
5011 0x07, 0x02, 0x22, 0x01, 0x43, 0x02, 0xfe, 0x8a, 0x06, 0x15, 0x19, 0x02,
5012 0xfe, 0x8a, 0x06, 0xfe, 0x9c, 0xf7, 0xd4, 0xfe, 0x2c, 0x90, 0xfe, 0xae,
5013 0x90, 0x77, 0xfe, 0xca, 0x07, 0x0c, 0x54, 0x18, 0x55, 0x09, 0x4a, 0x6a,
5014 0x35, 0x1e, 0x20, 0x07, 0x10, 0xfe, 0x0e, 0x12, 0x74, 0xfe, 0x80, 0x80,
5015 0x37, 0x20, 0x63, 0x27, 0xfe, 0x06, 0x10, 0xfe, 0x83, 0xe7, 0xc4, 0xa1,
5016 0xfe, 0x03, 0x40, 0x09, 0x4a, 0x4f, 0x35, 0x01, 0xa8, 0xad, 0xfe, 0x1f,
5017 0x40, 0x12, 0x58, 0x01, 0xa5, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0xfe,
5018 0x44, 0x51, 0xfe, 0xc6, 0x51, 0x83, 0xfb, 0xfe, 0x8a, 0x90, 0x0c, 0x52,
5019 0x18, 0x53, 0xfe, 0x0c, 0x90, 0xfe, 0x8e, 0x90, 0xfe, 0x40, 0x50, 0xfe,
5020 0xc2, 0x50, 0x0c, 0x39, 0x18, 0x3a, 0xfe, 0x4a, 0x10, 0x09, 0x04, 0x6a,
5021 0xfe, 0x2a, 0x12, 0xfe, 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x0c, 0x54, 0x18,
5022 0x55, 0x09, 0x04, 0x4f, 0x85, 0x01, 0xa8, 0xfe, 0x1f, 0x80, 0x12, 0x58,
5023 0xfe, 0x44, 0x90, 0xfe, 0xc6, 0x90, 0x0c, 0x56, 0x18, 0x57, 0xfb, 0xfe,
5024 0x8a, 0x90, 0x0c, 0x52, 0x18, 0x53, 0xfe, 0x40, 0x90, 0xfe, 0xc2, 0x90,
5025 0x0c, 0x39, 0x18, 0x3a, 0x0c, 0x38, 0x18, 0x4e, 0x09, 0x4a, 0x19, 0x35,
5026 0x2a, 0x13, 0xfe, 0x4e, 0x11, 0x65, 0xfe, 0x48, 0x08, 0xfe, 0x9e, 0xf0,
5027 0xfe, 0x5c, 0x08, 0xb1, 0x16, 0x32, 0x2a, 0x73, 0xdd, 0xb8, 0xfe, 0x80,
5028 0x08, 0xb9, 0xfe, 0x9e, 0x08, 0x8c, 0xfe, 0x74, 0x08, 0xfe, 0x06, 0xf0,
5029 0xfe, 0x7a, 0x08, 0x8d, 0x81, 0x02, 0x22, 0x01, 0x43, 0xfe, 0xc9, 0x10,
5030 0x15, 0x19, 0xfe, 0xc9, 0x10, 0x61, 0x04, 0x06, 0xfe, 0x10, 0x12, 0x61,
5031 0x04, 0x0b, 0x45, 0x09, 0x04, 0x0b, 0xfe, 0x68, 0x12, 0xfe, 0x2e, 0x1c,
5032 0x02, 0xfe, 0x24, 0x0a, 0x61, 0x04, 0x06, 0x45, 0x61, 0x04, 0x0b, 0xfe,
5033 0x52, 0x12, 0xfe, 0x2c, 0x1c, 0xfe, 0xaa, 0xf0, 0xfe, 0x1e, 0x09, 0xfe,
5034 0xac, 0xf0, 0xfe, 0xbe, 0x08, 0xfe, 0x8a, 0x10, 0xaa, 0xfe, 0xf3, 0x10,
5035 0xfe, 0xad, 0xf0, 0xfe, 0xca, 0x08, 0x02, 0xfe, 0x24, 0x0a, 0xab, 0xfe,
5036 0xe7, 0x10, 0xfe, 0x2b, 0xf0, 0x9d, 0xe9, 0x1c, 0xfe, 0x00, 0xfe, 0xfe,
5037 0x1c, 0x12, 0xb5, 0xfe, 0xd2, 0xf0, 0x9d, 0xfe, 0x76, 0x18, 0x1c, 0x1a,
5038 0x16, 0x9d, 0x05, 0xcb, 0x1c, 0x06, 0x16, 0x9d, 0xb8, 0x6d, 0xb9, 0x6d,
5039 0xaa, 0xab, 0xfe, 0xb1, 0x10, 0x70, 0x5e, 0x2b, 0x14, 0x92, 0x01, 0x33,
5040 0x0f, 0xfe, 0x35, 0x00, 0xfe, 0x01, 0xf0, 0x5a, 0x0f, 0x7c, 0x02, 0x5a,
5041 0xfe, 0x74, 0x18, 0x1c, 0xfe, 0x00, 0xf8, 0x16, 0x6d, 0x67, 0x1b, 0x01,
5042 0xfe, 0x44, 0x0d, 0x3b, 0x01, 0xe6, 0x1e, 0x27, 0x74, 0x67, 0x1a, 0x02,
5043 0x6d, 0x09, 0x04, 0x0b, 0x21, 0xfe, 0x06, 0x0a, 0x09, 0x04, 0x6a, 0xfe,
5044 0x82, 0x12, 0x09, 0x04, 0x19, 0xfe, 0x66, 0x13, 0x1e, 0x58, 0xac, 0xfc,
5045 0xfe, 0x83, 0x80, 0xfe, 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, 0x04, 0x91,
5046 0xfe, 0x86, 0x91, 0x63, 0x27, 0xfe, 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x77,
5047 0xd7, 0x05, 0x54, 0x31, 0x55, 0x0c, 0x7b, 0x18, 0x7c, 0xbe, 0x54, 0xbf,
5048 0x55, 0x01, 0xa8, 0xad, 0x63, 0x27, 0x12, 0x58, 0xc0, 0x38, 0xc1, 0x4e,
5049 0x79, 0x56, 0x68, 0x57, 0xf4, 0xf5, 0xfe, 0x04, 0xfa, 0x38, 0xfe, 0x05,
5050 0xfa, 0x4e, 0x01, 0xa5, 0xa2, 0x23, 0x0c, 0x7b, 0x0c, 0x7c, 0x79, 0x56,
5051 0x68, 0x57, 0xfe, 0x12, 0x10, 0x09, 0x04, 0x19, 0x16, 0xd7, 0x79, 0x39,
5052 0x68, 0x3a, 0x09, 0x04, 0xfe, 0xf7, 0x00, 0x35, 0x05, 0x52, 0x31, 0x53,
5053 0xfe, 0x10, 0x58, 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59,
5054 0x02, 0x6d, 0x09, 0x04, 0x19, 0x16, 0xd7, 0x09, 0x04, 0xfe, 0xf7, 0x00,
5055 0x35, 0xfe, 0x3a, 0x55, 0xfe, 0x19, 0x81, 0x5f, 0xfe, 0x10, 0x90, 0xfe,
5056 0x92, 0x90, 0xfe, 0xd7, 0x10, 0x2f, 0x07, 0x9b, 0x16, 0xfe, 0xc6, 0x08,
5057 0x11, 0x9b, 0x09, 0x04, 0x0b, 0xfe, 0x14, 0x13, 0x05, 0x39, 0x31, 0x3a,
5058 0x77, 0xfe, 0xc6, 0x08, 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, 0x02, 0x6d,
5059 0x23, 0x47, 0xfe, 0x19, 0x80, 0xde, 0x09, 0x04, 0x0b, 0xfe, 0x1a, 0x12,
5060 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41, 0xe9, 0xb5, 0xfe, 0xd1, 0xf0, 0xd9,
5061 0x14, 0x7a, 0x01, 0x33, 0x0f, 0xfe, 0x44, 0x00, 0xfe, 0x8e, 0x10, 0xfe,
5062 0x6c, 0x19, 0xbe, 0x39, 0xfe, 0xed, 0x19, 0xbf, 0x3a, 0xfe, 0x0c, 0x51,
5063 0xfe, 0x8e, 0x51, 0xe9, 0x1c, 0xfe, 0x00, 0xff, 0x34, 0xfe, 0x74, 0x10,
5064 0xb5, 0xfe, 0xd2, 0xf0, 0xfe, 0xb2, 0x0a, 0xfe, 0x76, 0x18, 0x1c, 0x1a,
5065 0x84, 0x05, 0xcb, 0x1c, 0x06, 0xfe, 0x08, 0x13, 0x0f, 0xfe, 0x16, 0x00,
5066 0x02, 0x5a, 0xfe, 0xd1, 0xf0, 0xfe, 0xc4, 0x0a, 0x14, 0x7a, 0x01, 0x33,
5067 0x0f, 0xfe, 0x17, 0x00, 0xfe, 0x42, 0x10, 0xfe, 0xce, 0xf0, 0xfe, 0xca,
5068 0x0a, 0xfe, 0x3c, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xd6, 0x0a, 0x0f, 0xfe,
5069 0x22, 0x00, 0x02, 0x5a, 0xfe, 0xcb, 0xf0, 0xfe, 0xe2, 0x0a, 0x0f, 0xfe,
5070 0x24, 0x00, 0x02, 0x5a, 0xfe, 0xd0, 0xf0, 0xfe, 0xec, 0x0a, 0x0f, 0x93,
5071 0xdc, 0xfe, 0xcf, 0xf0, 0xfe, 0xf6, 0x0a, 0x0f, 0x4c, 0xfe, 0x10, 0x10,
5072 0xfe, 0xcc, 0xf0, 0xd9, 0x61, 0x04, 0x19, 0x3b, 0x0f, 0xfe, 0x12, 0x00,
5073 0x2a, 0x13, 0xfe, 0x4e, 0x11, 0x65, 0xfe, 0x0c, 0x0b, 0xfe, 0x9e, 0xf0,
5074 0xfe, 0x20, 0x0b, 0xb1, 0x16, 0x32, 0x2a, 0x73, 0xdd, 0xb8, 0x22, 0xb9,
5075 0x22, 0x2a, 0xec, 0x65, 0xfe, 0x2c, 0x0b, 0x25, 0x32, 0x8c, 0xfe, 0x48,
5076 0x0b, 0x8d, 0x81, 0xb8, 0xd4, 0xb9, 0xd4, 0x02, 0x22, 0x01, 0x43, 0xfe,
5077 0xdb, 0x10, 0x11, 0xfe, 0xe8, 0x00, 0xaa, 0xab, 0x70, 0xbc, 0x7d, 0xbd,
5078 0x7f, 0xfe, 0x89, 0xf0, 0x22, 0x30, 0x2e, 0xd8, 0xbc, 0x7d, 0xbd, 0x7f,
5079 0x01, 0x08, 0x1f, 0x22, 0x30, 0x2e, 0xd6, 0xb1, 0x45, 0x0f, 0xfe, 0x42,
5080 0x00, 0x02, 0x5a, 0x78, 0x06, 0xfe, 0x81, 0x49, 0x16, 0xfe, 0x38, 0x0c,
5081 0x09, 0x04, 0x0b, 0xfe, 0x44, 0x13, 0x0f, 0x00, 0x4b, 0x0b, 0xfe, 0x54,
5082 0x12, 0x4b, 0xfe, 0x28, 0x00, 0x21, 0xfe, 0xa6, 0x0c, 0x0a, 0x40, 0x01,
5083 0x0e, 0x07, 0x00, 0x5d, 0x3e, 0xfe, 0x28, 0x00, 0xfe, 0xe2, 0x10, 0x01,
5084 0xe7, 0x01, 0xe8, 0x0a, 0x99, 0x01, 0xfe, 0x32, 0x0e, 0x59, 0x11, 0x2d,
5085 0x01, 0x6f, 0x02, 0x29, 0x0f, 0xfe, 0x44, 0x00, 0x4b, 0x0b, 0xdf, 0x3e,
5086 0x0b, 0xfe, 0xb4, 0x10, 0x01, 0x86, 0x3e, 0x0b, 0xfe, 0xaa, 0x10, 0x01,
5087 0x86, 0xfe, 0x19, 0x82, 0xfe, 0x34, 0x46, 0xa3, 0x3e, 0x0b, 0x0f, 0xfe,
5088 0x43, 0x00, 0xfe, 0x96, 0x10, 0x09, 0x4a, 0x0b, 0x35, 0x01, 0xe7, 0x01,
5089 0xe8, 0x59, 0x11, 0x2d, 0x01, 0x6f, 0x67, 0x0b, 0x59, 0x3c, 0x8a, 0x02,
5090 0xfe, 0x2a, 0x03, 0x09, 0x04, 0x0b, 0x84, 0x3e, 0x0b, 0x0f, 0x00, 0xfe,
5091 0x5c, 0x10, 0x61, 0x04, 0x1b, 0xfe, 0x58, 0x12, 0x09, 0x04, 0x1b, 0xfe,
5092 0x50, 0x13, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x5c, 0x0c, 0xfe,
5093 0x1c, 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x62, 0x0c, 0x09, 0x4a, 0x1b, 0x35,
5094 0xfe, 0xa9, 0x10, 0x0f, 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0b, 0x5f,
5095 0x5c, 0x0f, 0xfe, 0x13, 0x00, 0xfe, 0x10, 0x10, 0x0f, 0xfe, 0x47, 0x00,
5096 0xa1, 0x0f, 0xfe, 0x41, 0x00, 0xa0, 0x0f, 0xfe, 0x24, 0x00, 0x87, 0xaa,
5097 0xab, 0x70, 0x05, 0x6b, 0x28, 0x21, 0xd1, 0x5f, 0xfe, 0x04, 0xe6, 0x1b,
5098 0xfe, 0x9d, 0x41, 0xfe, 0x1c, 0x42, 0x59, 0x01, 0xda, 0x02, 0x29, 0xea,
5099 0x14, 0x0b, 0x37, 0x95, 0xa9, 0x14, 0xfe, 0x31, 0x00, 0x37, 0x97, 0x01,
5100 0xfe, 0x54, 0x0f, 0x02, 0xd0, 0x3c, 0xfe, 0x06, 0xec, 0xc9, 0xee, 0x3e,
5101 0x1d, 0xfe, 0xce, 0x45, 0x34, 0x3c, 0xfe, 0x06, 0xea, 0xc9, 0xfe, 0x47,
5102 0x4b, 0x89, 0xfe, 0x75, 0x57, 0x05, 0x51, 0xfe, 0x98, 0x56, 0xfe, 0x38,
5103 0x12, 0x0a, 0x42, 0x01, 0x0e, 0xfe, 0x44, 0x48, 0x46, 0x09, 0x04, 0x1d,
5104 0xfe, 0x1a, 0x13, 0x0a, 0x40, 0x01, 0x0e, 0x47, 0xfe, 0x41, 0x58, 0x0a,
5105 0x99, 0x01, 0x0e, 0xfe, 0x49, 0x54, 0x8e, 0xfe, 0x2a, 0x0d, 0x02, 0xfe,
5106 0x2a, 0x03, 0x0a, 0x51, 0xfe, 0xee, 0x14, 0xee, 0x3e, 0x1d, 0xfe, 0xce,
5107 0x45, 0x34, 0x3c, 0xfe, 0xce, 0x47, 0xfe, 0xad, 0x13, 0x02, 0x29, 0x1e,
5108 0x20, 0x07, 0x10, 0xfe, 0x9e, 0x12, 0x23, 0x12, 0x4d, 0x12, 0x94, 0x12,
5109 0xce, 0x1e, 0x2d, 0x47, 0x37, 0x2d, 0xb1, 0xe0, 0xfe, 0xbc, 0xf0, 0xfe,
5110 0xec, 0x0d, 0x13, 0x06, 0x12, 0x4d, 0x01, 0xfe, 0xe2, 0x15, 0x05, 0xfe,
5111 0x38, 0x01, 0x31, 0xfe, 0x3a, 0x01, 0x77, 0xfe, 0xf0, 0x0d, 0xfe, 0x02,
5112 0xec, 0xce, 0x62, 0x00, 0x5d, 0xfe, 0x04, 0xec, 0x20, 0x46, 0xfe, 0x05,
5113 0xf6, 0xfe, 0x34, 0x01, 0x01, 0xfe, 0x52, 0x16, 0xfb, 0xfe, 0x48, 0xf4,
5114 0x0d, 0xfe, 0x18, 0x13, 0xaf, 0xfe, 0x02, 0xea, 0xce, 0x62, 0x7a, 0xfe,
5115 0xc5, 0x13, 0x14, 0x1b, 0x37, 0x95, 0xa9, 0x5c, 0x05, 0xfe, 0x38, 0x01,
5116 0x1c, 0xfe, 0xf0, 0xff, 0x0c, 0xfe, 0x60, 0x01, 0x05, 0xfe, 0x3a, 0x01,
5117 0x0c, 0xfe, 0x62, 0x01, 0x3d, 0x12, 0x20, 0x24, 0x06, 0x12, 0x2d, 0x11,
5118 0x2d, 0x8a, 0x13, 0x06, 0x03, 0x23, 0x03, 0x1e, 0x4d, 0xfe, 0xf7, 0x12,
5119 0x1e, 0x94, 0xac, 0x12, 0x94, 0x07, 0x7a, 0xfe, 0x71, 0x13, 0xfe, 0x24,
5120 0x1c, 0x14, 0x1a, 0x37, 0x95, 0xa9, 0xfe, 0xd9, 0x10, 0xb6, 0xfe, 0x03,
5121 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x03, 0xb6, 0xfe, 0x03, 0xdc,
5122 0xfe, 0x5b, 0x57, 0xfe, 0x80, 0x5d, 0x03, 0xfe, 0x03, 0x57, 0xb6, 0x23,
5123 0xfe, 0x00, 0xcc, 0x03, 0xfe, 0x03, 0x57, 0xb6, 0x75, 0x03, 0x09, 0x04,
5124 0x4c, 0xfe, 0x22, 0x13, 0xfe, 0x1c, 0x80, 0x07, 0x06, 0xfe, 0x1a, 0x13,
5125 0xfe, 0x1e, 0x80, 0xe1, 0xfe, 0x1d, 0x80, 0xa4, 0xfe, 0x0c, 0x90, 0xfe,
5126 0x0e, 0x13, 0xfe, 0x0e, 0x90, 0xa3, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4,
5127 0x0b, 0xfe, 0x3c, 0x50, 0xa0, 0x01, 0xfe, 0x82, 0x16, 0x2f, 0x07, 0x2d,
5128 0xe0, 0x01, 0xfe, 0xbc, 0x15, 0x09, 0x04, 0x1d, 0x45, 0x01, 0xe7, 0x01,
5129 0xe8, 0x11, 0xfe, 0xe9, 0x00, 0x09, 0x04, 0x4c, 0xfe, 0x2c, 0x13, 0x01,
5130 0xfe, 0x14, 0x16, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, 0xfe, 0x96, 0x90,
5131 0x0c, 0xfe, 0x64, 0x01, 0x18, 0xfe, 0x66, 0x01, 0x09, 0x04, 0x4f, 0xfe,
5132 0x12, 0x12, 0xfe, 0x03, 0x80, 0x74, 0xfe, 0x01, 0xec, 0x20, 0xfe, 0x80,
5133 0x40, 0x12, 0x20, 0x63, 0x27, 0x11, 0xc8, 0x59, 0x1e, 0x20, 0xed, 0x76,
5134 0x20, 0x03, 0xfe, 0x08, 0x1c, 0x05, 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58,
5135 0x05, 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x05, 0xfe, 0xb0, 0x00, 0xfe,
5136 0x08, 0x58, 0x05, 0xfe, 0xb2, 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c,
5137 0x24, 0x69, 0x12, 0xc9, 0x23, 0x0c, 0x50, 0x0c, 0x3f, 0x13, 0x40, 0x48,
5138 0x5f, 0x17, 0x1d, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x21, 0xfe, 0x08,
5139 0x0f, 0x3e, 0x10, 0x13, 0x42, 0x48, 0x17, 0x4c, 0xfe, 0x90, 0x4d, 0xfe,
5140 0x91, 0x54, 0x21, 0xfe, 0x1e, 0x0f, 0x24, 0x10, 0x12, 0x20, 0x78, 0x2c,
5141 0x46, 0x1e, 0x20, 0xed, 0x76, 0x20, 0x11, 0xc8, 0xf6, 0xfe, 0xd6, 0xf0,
5142 0xfe, 0x32, 0x0f, 0xea, 0x70, 0xfe, 0x14, 0x1c, 0xfe, 0x10, 0x1c, 0xfe,
5143 0x18, 0x1c, 0x03, 0x3c, 0xfe, 0x0c, 0x14, 0xee, 0xfe, 0x07, 0xe6, 0x1d,
5144 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x03, 0x01, 0x86, 0x78, 0x2c, 0x46,
5145 0xfa, 0xef, 0xfe, 0x42, 0x13, 0x2f, 0x07, 0x2d, 0xfe, 0x34, 0x13, 0x0a,
5146 0x42, 0x01, 0x0e, 0xb0, 0xfe, 0x36, 0x12, 0xf0, 0xfe, 0x45, 0x48, 0x01,
5147 0xe3, 0xfe, 0x00, 0xcc, 0xb0, 0xfe, 0xf3, 0x13, 0x3d, 0x75, 0x07, 0x10,
5148 0xa3, 0x0a, 0x80, 0x01, 0x0e, 0xfe, 0x80, 0x5c, 0x01, 0x6f, 0xfe, 0x0e,
5149 0x10, 0x07, 0x7e, 0x45, 0xf6, 0xfe, 0xd6, 0xf0, 0xfe, 0x6c, 0x0f, 0x03,
5150 0xfe, 0x44, 0x58, 0x74, 0xfe, 0x01, 0xec, 0x97, 0xfe, 0x9e, 0x40, 0xfe,
5151 0x9d, 0xe7, 0x00, 0xfe, 0x9c, 0xe7, 0x1b, 0x76, 0x27, 0x01, 0xda, 0xfe,
5152 0xdd, 0x10, 0x2a, 0xbc, 0x7d, 0xbd, 0x7f, 0x30, 0x2e, 0xd5, 0x07, 0x1b,
5153 0xfe, 0x48, 0x12, 0x07, 0x0b, 0xfe, 0x56, 0x12, 0x07, 0x1a, 0xfe, 0x30,
5154 0x12, 0x07, 0xc2, 0x16, 0xfe, 0x3e, 0x11, 0x07, 0xfe, 0x23, 0x00, 0x16,
5155 0xfe, 0x4a, 0x11, 0x07, 0x06, 0x16, 0xfe, 0xa8, 0x11, 0x07, 0x19, 0xfe,
5156 0x12, 0x12, 0x07, 0x00, 0x16, 0x22, 0x14, 0xc2, 0x01, 0x33, 0x9f, 0x2b,
5157 0x01, 0x08, 0x8c, 0x43, 0x03, 0x2b, 0xfe, 0x62, 0x08, 0x0a, 0xca, 0x01,
5158 0xfe, 0x32, 0x0e, 0x11, 0x7e, 0x02, 0x29, 0x2b, 0x2f, 0x07, 0x9b, 0xfe,
5159 0xd9, 0x13, 0x79, 0x39, 0x68, 0x3a, 0x77, 0xfe, 0xfc, 0x10, 0x09, 0x04,
5160 0x6a, 0xfe, 0x72, 0x12, 0xc0, 0x38, 0xc1, 0x4e, 0xf4, 0xf5, 0x8e, 0xfe,
5161 0xc6, 0x10, 0x1e, 0x58, 0xfe, 0x26, 0x13, 0x05, 0x7b, 0x31, 0x7c, 0x77,
5162 0xfe, 0x82, 0x0c, 0x0c, 0x54, 0x18, 0x55, 0x23, 0x0c, 0x7b, 0x0c, 0x7c,
5163 0x01, 0xa8, 0x24, 0x69, 0x73, 0x12, 0x58, 0x01, 0xa5, 0xc0, 0x38, 0xc1,
5164 0x4e, 0xfe, 0x04, 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x38, 0xfe,
5165 0x05, 0xfa, 0x4e, 0xfe, 0x91, 0x10, 0x05, 0x56, 0x31, 0x57, 0xfe, 0x40,
5166 0x56, 0xfe, 0xe1, 0x56, 0x0c, 0x56, 0x18, 0x57, 0x83, 0xc0, 0x38, 0xc1,
5167 0x4e, 0xf4, 0xf5, 0x05, 0x52, 0x31, 0x53, 0xfe, 0x00, 0x56, 0xfe, 0xa1,
5168 0x56, 0x0c, 0x52, 0x18, 0x53, 0x09, 0x04, 0x6a, 0xfe, 0x1e, 0x12, 0x1e,
5169 0x58, 0xfe, 0x1f, 0x40, 0x05, 0x54, 0x31, 0x55, 0xfe, 0x2c, 0x50, 0xfe,
5170 0xae, 0x50, 0x05, 0x56, 0x31, 0x57, 0xfe, 0x44, 0x50, 0xfe, 0xc6, 0x50,
5171 0x05, 0x52, 0x31, 0x53, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x05, 0x39,
5172 0x31, 0x3a, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x02, 0x5c, 0x24, 0x06,
5173 0x12, 0xcd, 0x02, 0x5b, 0x2b, 0x01, 0x08, 0x1f, 0x44, 0x30, 0x2e, 0xd5,
5174 0x07, 0x06, 0x21, 0x44, 0x2f, 0x07, 0x9b, 0x21, 0x5b, 0x01, 0x6e, 0x1c,
5175 0x3d, 0x16, 0x44, 0x09, 0x04, 0x0b, 0xe2, 0x79, 0x39, 0x68, 0x3a, 0xfe,
5176 0x0a, 0x55, 0x34, 0xfe, 0x8b, 0x55, 0xbe, 0x39, 0xbf, 0x3a, 0xfe, 0x0c,
5177 0x51, 0xfe, 0x8e, 0x51, 0x02, 0x5b, 0xfe, 0x19, 0x81, 0xaf, 0xfe, 0x19,
5178 0x41, 0x02, 0x5b, 0x2b, 0x01, 0x08, 0x25, 0x32, 0x1f, 0xa2, 0x30, 0x2e,
5179 0xd8, 0x4b, 0x1a, 0xfe, 0xa6, 0x12, 0x4b, 0x0b, 0x3b, 0x02, 0x44, 0x01,
5180 0x08, 0x25, 0x32, 0x1f, 0xa2, 0x30, 0x2e, 0xd6, 0x07, 0x1a, 0x21, 0x44,
5181 0x01, 0x08, 0x1f, 0xa2, 0x30, 0x2e, 0xfe, 0xe8, 0x09, 0xfe, 0xc2, 0x49,
5182 0x60, 0x05, 0xfe, 0x9c, 0x00, 0x28, 0x84, 0x49, 0x04, 0x19, 0x34, 0x9f,
5183 0xfe, 0xbb, 0x45, 0x4b, 0x00, 0x45, 0x3e, 0x06, 0x78, 0x3d, 0xfe, 0xda,
5184 0x14, 0x01, 0x6e, 0x87, 0xfe, 0x4b, 0x45, 0xe2, 0x2f, 0x07, 0x9a, 0xe1,
5185 0x05, 0xc6, 0x28, 0x84, 0x05, 0x3f, 0x28, 0x34, 0x5e, 0x02, 0x5b, 0xfe,
5186 0xc0, 0x5d, 0xfe, 0xf8, 0x14, 0xfe, 0x03, 0x17, 0x05, 0x50, 0xb4, 0x0c,
5187 0x50, 0x5e, 0x2b, 0x01, 0x08, 0x26, 0x5c, 0x01, 0xfe, 0xaa, 0x14, 0x02,
5188 0x5c, 0x01, 0x08, 0x25, 0x32, 0x1f, 0x44, 0x30, 0x2e, 0xd6, 0x07, 0x06,
5189 0x21, 0x44, 0x01, 0xfe, 0x8e, 0x13, 0xfe, 0x42, 0x58, 0xfe, 0x82, 0x14,
5190 0xfe, 0xa4, 0x14, 0x87, 0xfe, 0x4a, 0xf4, 0x0b, 0x16, 0x44, 0xfe, 0x4a,
5191 0xf4, 0x06, 0xfe, 0x0c, 0x12, 0x2f, 0x07, 0x9a, 0x85, 0x02, 0x5b, 0x05,
5192 0x3f, 0xb4, 0x0c, 0x3f, 0x5e, 0x2b, 0x01, 0x08, 0x26, 0x5c, 0x01, 0xfe,
5193 0xd8, 0x14, 0x02, 0x5c, 0x13, 0x06, 0x65, 0xfe, 0xca, 0x12, 0x26, 0xfe,
5194 0xe0, 0x12, 0x72, 0xf1, 0x01, 0x08, 0x23, 0x72, 0x03, 0x8f, 0xfe, 0xdc,
5195 0x12, 0x25, 0xfe, 0xdc, 0x12, 0x1f, 0xfe, 0xca, 0x12, 0x5e, 0x2b, 0x01,
5196 0x08, 0xfe, 0xd5, 0x10, 0x13, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x48, 0x8b,
5197 0x1c, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x03, 0x13,
5198 0x6c, 0xff, 0x02, 0x00, 0x57, 0x48, 0x8b, 0x1c, 0x3d, 0xfe, 0x30, 0x56,
5199 0xfe, 0x00, 0x5c, 0x03, 0x13, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x48, 0x8b,
5200 0x03, 0x13, 0x6c, 0xff, 0x02, 0x00, 0x57, 0x48, 0x8b, 0xfe, 0x0b, 0x58,
5201 0x03, 0x0a, 0x50, 0x01, 0x82, 0x0a, 0x3f, 0x01, 0x82, 0x03, 0xfc, 0x1c,
5202 0x10, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x19, 0x48, 0xfe, 0x00,
5203 0x7d, 0xfe, 0x01, 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c, 0x63, 0x27,
5204 0x0c, 0x52, 0x18, 0x53, 0xbe, 0x56, 0xbf, 0x57, 0x03, 0xfe, 0x62, 0x08,
5205 0xfe, 0x82, 0x4a, 0xfe, 0xe1, 0x1a, 0xfe, 0x83, 0x5a, 0x74, 0x03, 0x01,
5206 0xfe, 0x14, 0x18, 0xfe, 0x42, 0x48, 0x5f, 0x60, 0x89, 0x01, 0x08, 0x1f,
5207 0xfe, 0xa2, 0x14, 0x30, 0x2e, 0xd8, 0x01, 0x08, 0x1f, 0xfe, 0xa2, 0x14,
5208 0x30, 0x2e, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, 0x59, 0x05, 0xc6, 0x28, 0xfe,
5209 0xcc, 0x12, 0x49, 0x04, 0x1b, 0xfe, 0xc4, 0x13, 0x23, 0x62, 0x1b, 0xe2,
5210 0x4b, 0xc3, 0x64, 0xfe, 0xe8, 0x13, 0x3b, 0x13, 0x06, 0x17, 0xc3, 0x78,
5211 0xdb, 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xa1, 0xff, 0x02, 0x83,
5212 0x55, 0x62, 0x1a, 0xa4, 0xbb, 0xfe, 0x30, 0x00, 0x8e, 0xe4, 0x17, 0x2c,
5213 0x13, 0x06, 0xfe, 0x56, 0x10, 0x62, 0x0b, 0xe1, 0xbb, 0xfe, 0x64, 0x00,
5214 0x8e, 0xe4, 0x0a, 0xfe, 0x64, 0x00, 0x17, 0x93, 0x13, 0x06, 0xfe, 0x28,
5215 0x10, 0x62, 0x06, 0xfe, 0x60, 0x13, 0xbb, 0xfe, 0xc8, 0x00, 0x8e, 0xe4,
5216 0x0a, 0xfe, 0xc8, 0x00, 0x17, 0x4d, 0x13, 0x06, 0x83, 0xbb, 0xfe, 0x90,
5217 0x01, 0xba, 0xfe, 0x4e, 0x14, 0x89, 0xfe, 0x12, 0x10, 0xfe, 0x43, 0xf4,
5218 0x94, 0xfe, 0x56, 0xf0, 0xfe, 0x60, 0x14, 0xfe, 0x04, 0xf4, 0x6c, 0xfe,
5219 0x43, 0xf4, 0x93, 0xfe, 0xf3, 0x10, 0xf9, 0x01, 0xfe, 0x22, 0x13, 0x1c,
5220 0x3d, 0xfe, 0x10, 0x13, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x69, 0xba,
5221 0xfe, 0x9c, 0x14, 0xb7, 0x69, 0xfe, 0x1c, 0x10, 0xfe, 0x00, 0x17, 0xfe,
5222 0x4d, 0xe4, 0x19, 0xba, 0xfe, 0x9c, 0x14, 0xb7, 0x19, 0x83, 0x60, 0x23,
5223 0xfe, 0x4d, 0xf4, 0x00, 0xdf, 0x89, 0x13, 0x06, 0xfe, 0xb4, 0x56, 0xfe,
5224 0xc3, 0x58, 0x03, 0x60, 0x13, 0x0b, 0x03, 0x15, 0x06, 0x01, 0x08, 0x26,
5225 0xe5, 0x15, 0x0b, 0x01, 0x08, 0x26, 0xe5, 0x15, 0x1a, 0x01, 0x08, 0x26,
5226 0xe5, 0x72, 0xfe, 0x89, 0x49, 0x01, 0x08, 0x03, 0x15, 0x06, 0x01, 0x08,
5227 0x26, 0xa6, 0x15, 0x1a, 0x01, 0x08, 0x26, 0xa6, 0x15, 0x06, 0x01, 0x08,
5228 0x26, 0xa6, 0xfe, 0x89, 0x49, 0x01, 0x08, 0x26, 0xa6, 0x72, 0xfe, 0x89,
5229 0x4a, 0x01, 0x08, 0x03, 0x60, 0x03, 0x1e, 0xcc, 0x07, 0x06, 0xfe, 0x44,
5230 0x13, 0xad, 0x12, 0xcc, 0xfe, 0x49, 0xf4, 0x00, 0x3b, 0x72, 0x9f, 0x5e,
5231 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xf1, 0x01, 0x08, 0x2f, 0x07, 0xfe,
5232 0xe3, 0x00, 0xfe, 0x20, 0x13, 0x1f, 0xfe, 0x5a, 0x15, 0x23, 0x12, 0xcd,
5233 0x01, 0x43, 0x1e, 0xcd, 0x07, 0x06, 0x45, 0x09, 0x4a, 0x06, 0x35, 0x03,
5234 0x0a, 0x42, 0x01, 0x0e, 0xed, 0x88, 0x07, 0x10, 0xa4, 0x0a, 0x80, 0x01,
5235 0x0e, 0x88, 0x0a, 0x51, 0x01, 0x9e, 0x03, 0x0a, 0x80, 0x01, 0x0e, 0x88,
5236 0xfe, 0x80, 0xe7, 0x10, 0x07, 0x10, 0x84, 0xfe, 0x45, 0x58, 0x01, 0xe3,
5237 0x88, 0x03, 0x0a, 0x42, 0x01, 0x0e, 0x88, 0x0a, 0x51, 0x01, 0x9e, 0x03,
5238 0x0a, 0x42, 0x01, 0x0e, 0xfe, 0x80, 0x80, 0xf2, 0xfe, 0x49, 0xe4, 0x10,
5239 0xa4, 0x0a, 0x80, 0x01, 0x0e, 0xf2, 0x0a, 0x51, 0x01, 0x82, 0x03, 0x17,
5240 0x10, 0x71, 0x66, 0xfe, 0x60, 0x01, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde,
5241 0xfe, 0x24, 0x1c, 0xfe, 0x1d, 0xf7, 0x1d, 0x90, 0xfe, 0xf6, 0x15, 0x01,
5242 0xfe, 0xfc, 0x16, 0xe0, 0x91, 0x1d, 0x66, 0xfe, 0x2c, 0x01, 0xfe, 0x2f,
5243 0x19, 0x03, 0xae, 0x21, 0xfe, 0xe6, 0x15, 0xfe, 0xda, 0x10, 0x17, 0x10,
5244 0x71, 0x05, 0xfe, 0x64, 0x01, 0xfe, 0x00, 0xf4, 0x19, 0xfe, 0x18, 0x58,
5245 0x05, 0xfe, 0x66, 0x01, 0xfe, 0x19, 0x58, 0x91, 0x19, 0xfe, 0x3c, 0x90,
5246 0xfe, 0x30, 0xf4, 0x06, 0xfe, 0x3c, 0x50, 0x66, 0xfe, 0x38, 0x00, 0xfe,
5247 0x0f, 0x79, 0xfe, 0x1c, 0xf7, 0x19, 0x90, 0xfe, 0x40, 0x16, 0xfe, 0xb6,
5248 0x14, 0x34, 0x03, 0xae, 0x21, 0xfe, 0x18, 0x16, 0xfe, 0x9c, 0x10, 0x17,
5249 0x10, 0x71, 0xfe, 0x83, 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe,
5250 0x1d, 0xf7, 0x38, 0x90, 0xfe, 0x62, 0x16, 0xfe, 0x94, 0x14, 0xfe, 0x10,
5251 0x13, 0x91, 0x38, 0x66, 0x1b, 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00,
5252 0x03, 0xae, 0x21, 0xfe, 0x56, 0x16, 0xfe, 0x6c, 0x10, 0x17, 0x10, 0x71,
5253 0xfe, 0x30, 0xbc, 0xfe, 0xb2, 0xbc, 0x91, 0xc5, 0x66, 0x1b, 0xfe, 0x0f,
5254 0x79, 0xfe, 0x1c, 0xf7, 0xc5, 0x90, 0xfe, 0x9a, 0x16, 0xfe, 0x5c, 0x14,
5255 0x34, 0x03, 0xae, 0x21, 0xfe, 0x86, 0x16, 0xfe, 0x42, 0x10, 0xfe, 0x02,
5256 0xf6, 0x10, 0x71, 0xfe, 0x18, 0xfe, 0x54, 0xfe, 0x19, 0xfe, 0x55, 0xfc,
5257 0xfe, 0x1d, 0xf7, 0x4f, 0x90, 0xfe, 0xc0, 0x16, 0xfe, 0x36, 0x14, 0xfe,
5258 0x1c, 0x13, 0x91, 0x4f, 0x47, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe,
5259 0x80, 0xe7, 0x10, 0xfe, 0x81, 0xe7, 0x10, 0x11, 0xfe, 0xdd, 0x00, 0x63,
5260 0x27, 0x03, 0x63, 0x27, 0xfe, 0x12, 0x45, 0x21, 0xfe, 0xb0, 0x16, 0x14,
5261 0x06, 0x37, 0x95, 0xa9, 0x02, 0x29, 0xfe, 0x39, 0xf0, 0xfe, 0x04, 0x17,
5262 0x23, 0x03, 0xfe, 0x7e, 0x18, 0x1c, 0x1a, 0x5d, 0x13, 0x0d, 0x03, 0x71,
5263 0x05, 0xcb, 0x1c, 0x06, 0xfe, 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x78, 0x2c,
5264 0x46, 0x2f, 0x07, 0x2d, 0xfe, 0x3c, 0x13, 0xfe, 0x82, 0x14, 0xfe, 0x42,
5265 0x13, 0x3c, 0x8a, 0x0a, 0x42, 0x01, 0x0e, 0xb0, 0xfe, 0x3e, 0x12, 0xf0,
5266 0xfe, 0x45, 0x48, 0x01, 0xe3, 0xfe, 0x00, 0xcc, 0xb0, 0xfe, 0xf3, 0x13,
5267 0x3d, 0x75, 0x07, 0x10, 0xa3, 0x0a, 0x80, 0x01, 0x0e, 0xf2, 0x01, 0x6f,
5268 0xfe, 0x16, 0x10, 0x07, 0x7e, 0x85, 0xfe, 0x40, 0x14, 0xfe, 0x24, 0x12,
5269 0xf6, 0xfe, 0xd6, 0xf0, 0xfe, 0x24, 0x17, 0x17, 0x0b, 0x03, 0xfe, 0x9c,
5270 0xe7, 0x0b, 0x0f, 0xfe, 0x15, 0x00, 0x59, 0x76, 0x27, 0x01, 0xda, 0x17,
5271 0x06, 0x03, 0x3c, 0x8a, 0x09, 0x4a, 0x1d, 0x35, 0x11, 0x2d, 0x01, 0x6f,
5272 0x17, 0x06, 0x03, 0xfe, 0x38, 0x90, 0xfe, 0xba, 0x90, 0x79, 0xc7, 0x68,
5273 0xc8, 0xfe, 0x48, 0x55, 0x34, 0xfe, 0xc9, 0x55, 0x03, 0x1e, 0x98, 0x73,
5274 0x12, 0x98, 0x03, 0x0a, 0x99, 0x01, 0x0e, 0xf0, 0x0a, 0x40, 0x01, 0x0e,
5275 0xfe, 0x49, 0x44, 0x16, 0xfe, 0xf0, 0x17, 0x73, 0x75, 0x03, 0x0a, 0x42,
5276 0x01, 0x0e, 0x07, 0x10, 0x45, 0x0a, 0x51, 0x01, 0x9e, 0x0a, 0x40, 0x01,
5277 0x0e, 0x73, 0x75, 0x03, 0xfe, 0x4e, 0xe4, 0x1a, 0x64, 0xfe, 0x24, 0x18,
5278 0x05, 0xfe, 0x90, 0x00, 0xfe, 0x3a, 0x45, 0x5b, 0xfe, 0x4e, 0xe4, 0xc2,
5279 0x64, 0xfe, 0x36, 0x18, 0x05, 0xfe, 0x92, 0x00, 0xfe, 0x02, 0xe6, 0x1b,
5280 0xdc, 0xfe, 0x4e, 0xe4, 0xfe, 0x0b, 0x00, 0x64, 0xfe, 0x48, 0x18, 0x05,
5281 0xfe, 0x94, 0x00, 0xfe, 0x02, 0xe6, 0x19, 0xfe, 0x08, 0x10, 0x05, 0xfe,
5282 0x96, 0x00, 0xfe, 0x02, 0xe6, 0x2c, 0xfe, 0x4e, 0x45, 0xfe, 0x0c, 0x12,
5283 0xaf, 0xff, 0x04, 0x68, 0x54, 0xde, 0x1c, 0x69, 0x03, 0x07, 0x7a, 0xfe,
5284 0x5a, 0xf0, 0xfe, 0x74, 0x18, 0x24, 0xfe, 0x09, 0x00, 0xfe, 0x34, 0x10,
5285 0x07, 0x1b, 0xfe, 0x5a, 0xf0, 0xfe, 0x82, 0x18, 0x24, 0xc3, 0xfe, 0x26,
5286 0x10, 0x07, 0x1a, 0x5d, 0x24, 0x2c, 0xdc, 0x07, 0x0b, 0x5d, 0x24, 0x93,
5287 0xfe, 0x0e, 0x10, 0x07, 0x06, 0x5d, 0x24, 0x4d, 0x9f, 0xad, 0x03, 0x14,
5288 0xfe, 0x09, 0x00, 0x01, 0x33, 0xfe, 0x04, 0xfe, 0x7d, 0x05, 0x7f, 0xf9,
5289 0x03, 0x25, 0xfe, 0xca, 0x18, 0xfe, 0x14, 0xf0, 0x08, 0x65, 0xfe, 0xc6,
5290 0x18, 0x03, 0xff, 0x1a, 0x00, 0x00,
5291};
5292
5293static unsigned short _adv_asc3550_size = sizeof(_adv_asc3550_buf); /* 0x13AD */
5294static ADV_DCNT _adv_asc3550_chksum = 0x04D52DDDUL; /* Expanded little-endian checksum. */
5295
5296/* Microcode buffer is kept after initialization for error recovery. */
5297static unsigned char _adv_asc38C0800_buf[] = {
5298 0x00, 0x00, 0x00, 0xf2, 0x00, 0xf0, 0x00, 0xfc, 0x00, 0x16, 0x18, 0xe4,
5299 0x01, 0x00, 0x48, 0xe4, 0x18, 0x80, 0x03, 0xf6, 0x02, 0x00, 0xce, 0x19,
5300 0x00, 0xfa, 0xff, 0xff, 0x1c, 0x0f, 0x00, 0xf6, 0x9e, 0xe7, 0xff, 0x00,
5301 0x82, 0xe7, 0x00, 0xea, 0x01, 0xfa, 0x01, 0xe6, 0x09, 0xe7, 0x55, 0xf0,
5302 0x01, 0xf6, 0x03, 0x00, 0x04, 0x00, 0x10, 0x00, 0x1e, 0xf0, 0x85, 0xf0,
5303 0x18, 0xf4, 0x08, 0x00, 0xbc, 0x00, 0x38, 0x54, 0x00, 0xec, 0xd5, 0xf0,
5304 0x82, 0x0d, 0x00, 0xe6, 0x86, 0xf0, 0xb1, 0xf0, 0x98, 0x57, 0x01, 0xfc,
5305 0xb4, 0x00, 0xd4, 0x01, 0x0c, 0x1c, 0x3e, 0x1c, 0x3c, 0x00, 0xbb, 0x00,
5306 0x00, 0x10, 0xba, 0x19, 0x02, 0x80, 0x32, 0xf0, 0x7c, 0x0d, 0x02, 0x13,
5307 0xba, 0x13, 0x18, 0x40, 0x00, 0x57, 0x01, 0xea, 0x02, 0xfc, 0x03, 0xfc,
5308 0x3e, 0x00, 0x6c, 0x01, 0x6e, 0x01, 0x74, 0x01, 0x76, 0x01, 0xb9, 0x54,
5309 0x3e, 0x57, 0x00, 0x80, 0x03, 0xe6, 0xb6, 0x00, 0xc0, 0x00, 0x01, 0x01,
5310 0x3e, 0x01, 0x7a, 0x01, 0xca, 0x08, 0xce, 0x10, 0x16, 0x11, 0x04, 0x12,
5311 0x08, 0x12, 0x02, 0x4a, 0xbb, 0x55, 0x3c, 0x56, 0x03, 0x58, 0x1b, 0x80,
5312 0x30, 0xe4, 0x4b, 0xe4, 0x5d, 0xf0, 0x02, 0xfa, 0x20, 0x00, 0x32, 0x00,
5313 0x40, 0x00, 0x80, 0x00, 0x24, 0x01, 0x3c, 0x01, 0x68, 0x01, 0x6a, 0x01,
5314 0x70, 0x01, 0x72, 0x01, 0x78, 0x01, 0x7c, 0x01, 0x62, 0x0a, 0x86, 0x0d,
5315 0x06, 0x13, 0x4c, 0x1c, 0x04, 0x80, 0x4a, 0xe4, 0x02, 0xee, 0x5b, 0xf0,
5316 0x03, 0xf7, 0x0c, 0x00, 0x0f, 0x00, 0x47, 0x00, 0xbe, 0x00, 0x00, 0x01,
5317 0x20, 0x11, 0x5c, 0x16, 0x32, 0x1c, 0x38, 0x1c, 0x4e, 0x1c, 0x10, 0x44,
5318 0x00, 0x4c, 0x04, 0xea, 0x5c, 0xf0, 0xa7, 0xf0, 0x04, 0xf6, 0x03, 0xfa,
5319 0x05, 0x00, 0x34, 0x00, 0x36, 0x00, 0x98, 0x00, 0xcc, 0x00, 0x20, 0x01,
5320 0x4e, 0x01, 0x4a, 0x0b, 0x42, 0x0c, 0x12, 0x0f, 0x0c, 0x10, 0x22, 0x11,
5321 0x0a, 0x12, 0x04, 0x13, 0x30, 0x1c, 0x02, 0x48, 0x00, 0x4e, 0x42, 0x54,
5322 0x44, 0x55, 0xbd, 0x56, 0x06, 0x83, 0x00, 0xdc, 0x05, 0xf0, 0x09, 0xf0,
5323 0x59, 0xf0, 0xb8, 0xf0, 0x4b, 0xf4, 0x06, 0xf7, 0x0e, 0xf7, 0x04, 0xfc,
5324 0x05, 0xfc, 0x06, 0x00, 0x19, 0x00, 0x33, 0x00, 0x9b, 0x00, 0xa4, 0x00,
5325 0xb5, 0x00, 0xba, 0x00, 0xd0, 0x00, 0xe1, 0x00, 0xe7, 0x00, 0xe2, 0x03,
5326 0x08, 0x0f, 0x02, 0x10, 0x04, 0x10, 0x0a, 0x10, 0x0a, 0x13, 0x0c, 0x13,
5327 0x12, 0x13, 0x24, 0x14, 0x34, 0x14, 0x04, 0x16, 0x08, 0x16, 0xa4, 0x17,
5328 0x20, 0x1c, 0x34, 0x1c, 0x36, 0x1c, 0x08, 0x44, 0x38, 0x44, 0x91, 0x44,
5329 0x0a, 0x45, 0x48, 0x46, 0x01, 0x48, 0x68, 0x54, 0x3a, 0x55, 0x83, 0x55,
5330 0xe5, 0x55, 0xb0, 0x57, 0x01, 0x58, 0x83, 0x59, 0x05, 0xe6, 0x0b, 0xf0,
5331 0x0c, 0xf0, 0x04, 0xf8, 0x05, 0xf8, 0x07, 0x00, 0x0a, 0x00, 0x1c, 0x00,
5332 0x1e, 0x00, 0x9e, 0x00, 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00,
5333 0x22, 0x01, 0x26, 0x01, 0x79, 0x01, 0x7e, 0x01, 0xc4, 0x01, 0xc6, 0x01,
5334 0x80, 0x02, 0x5e, 0x03, 0xee, 0x04, 0x9a, 0x06, 0xf8, 0x07, 0x62, 0x08,
5335 0x68, 0x08, 0x69, 0x08, 0xd6, 0x08, 0xe9, 0x09, 0xfa, 0x0b, 0x2e, 0x0f,
5336 0x12, 0x10, 0x1a, 0x10, 0xed, 0x10, 0xf1, 0x10, 0x2a, 0x11, 0x06, 0x12,
5337 0x0c, 0x12, 0x3e, 0x12, 0x10, 0x13, 0x16, 0x13, 0x1e, 0x13, 0x46, 0x14,
5338 0x76, 0x14, 0x82, 0x14, 0x36, 0x15, 0xca, 0x15, 0x6b, 0x18, 0xbe, 0x18,
5339 0xca, 0x18, 0xe6, 0x19, 0x12, 0x1c, 0x46, 0x1c, 0x9c, 0x32, 0x00, 0x40,
5340 0x0e, 0x47, 0xfe, 0x9c, 0xf0, 0x2b, 0x02, 0xfe, 0xac, 0x0d, 0xff, 0x10,
5341 0x00, 0x00, 0xd7, 0xfe, 0xe8, 0x19, 0x00, 0xd6, 0xfe, 0x84, 0x01, 0xff,
5342 0x03, 0x00, 0x00, 0xfe, 0x93, 0x15, 0xfe, 0x0f, 0x05, 0xff, 0x38, 0x00,
5343 0x00, 0xfe, 0x57, 0x24, 0x00, 0xfe, 0x4c, 0x00, 0x5b, 0xff, 0x04, 0x00,
5344 0x00, 0x11, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, 0xff, 0x08,
5345 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x11,
5346 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00,
5347 0xfe, 0x04, 0xf7, 0xd6, 0x2c, 0x99, 0x0a, 0x01, 0xfe, 0xc2, 0x0f, 0xfe,
5348 0x04, 0xf7, 0xd6, 0x99, 0x0a, 0x42, 0x2c, 0xfe, 0x3d, 0xf0, 0xfe, 0x06,
5349 0x02, 0xfe, 0x20, 0xf0, 0xa7, 0xfe, 0x91, 0xf0, 0xfe, 0xf4, 0x01, 0xfe,
5350 0x90, 0xf0, 0xfe, 0xf4, 0x01, 0xfe, 0x8f, 0xf0, 0xa7, 0x03, 0x5d, 0x4d,
5351 0x02, 0xfe, 0xc8, 0x0d, 0x01, 0xfe, 0x38, 0x0e, 0xfe, 0xdd, 0x12, 0xfe,
5352 0xfc, 0x10, 0xfe, 0x28, 0x1c, 0x03, 0xfe, 0xa6, 0x00, 0xfe, 0xd3, 0x12,
5353 0x41, 0x14, 0xfe, 0xa6, 0x00, 0xc2, 0xfe, 0x48, 0xf0, 0xfe, 0x8a, 0x02,
5354 0xfe, 0x49, 0xf0, 0xfe, 0xa4, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xc2, 0x02,
5355 0xfe, 0x46, 0xf0, 0xfe, 0x54, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x5a, 0x02,
5356 0xfe, 0x43, 0xf0, 0xfe, 0x48, 0x02, 0xfe, 0x44, 0xf0, 0xfe, 0x4c, 0x02,
5357 0xfe, 0x45, 0xf0, 0xfe, 0x50, 0x02, 0x18, 0x0a, 0xaa, 0x18, 0x06, 0x14,
5358 0xa1, 0x02, 0x2b, 0xfe, 0x00, 0x1c, 0xe7, 0xfe, 0x02, 0x1c, 0xe6, 0xfe,
5359 0x1e, 0x1c, 0xfe, 0xe9, 0x10, 0x01, 0xfe, 0x18, 0x18, 0xfe, 0xe7, 0x10,
5360 0xfe, 0x06, 0xfc, 0xce, 0x09, 0x70, 0x01, 0xa8, 0x02, 0x2b, 0x15, 0x59,
5361 0x39, 0xa2, 0x01, 0xfe, 0x58, 0x10, 0x09, 0x70, 0x01, 0x87, 0xfe, 0xbd,
5362 0x10, 0x09, 0x70, 0x01, 0x87, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c, 0xfe,
5363 0x58, 0x1c, 0x18, 0x06, 0x14, 0xa1, 0x2c, 0x1c, 0x2b, 0xfe, 0x3d, 0xf0,
5364 0xfe, 0x06, 0x02, 0x23, 0xfe, 0x98, 0x02, 0xfe, 0x5a, 0x1c, 0xf8, 0xfe,
5365 0x14, 0x1c, 0x15, 0xfe, 0x30, 0x00, 0x39, 0xa2, 0x01, 0xfe, 0x48, 0x10,
5366 0x18, 0x06, 0x14, 0xa1, 0x02, 0xd7, 0x22, 0x20, 0x07, 0x11, 0x35, 0xfe,
5367 0x69, 0x10, 0x18, 0x06, 0x14, 0xa1, 0xfe, 0x04, 0xec, 0x20, 0x4f, 0x43,
5368 0x13, 0x20, 0xfe, 0x05, 0xf6, 0xce, 0x01, 0xfe, 0x4a, 0x17, 0x08, 0x54,
5369 0x58, 0x37, 0x12, 0x2f, 0x42, 0x92, 0x01, 0xfe, 0x82, 0x16, 0x02, 0x2b,
5370 0x09, 0x46, 0x01, 0x0e, 0x07, 0x00, 0x66, 0x01, 0x73, 0xfe, 0x18, 0x10,
5371 0xfe, 0x41, 0x58, 0x09, 0xa4, 0x01, 0x0e, 0xfe, 0xc8, 0x54, 0x6b, 0xfe,
5372 0x10, 0x03, 0x01, 0xfe, 0x82, 0x16, 0x02, 0x2b, 0x2c, 0x4f, 0xfe, 0x02,
5373 0xe8, 0x2a, 0xfe, 0xbf, 0x57, 0xfe, 0x9e, 0x43, 0xfe, 0x77, 0x57, 0xfe,
5374 0x27, 0xf0, 0xfe, 0xe0, 0x01, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xa7,
5375 0xfe, 0x40, 0x1c, 0x1c, 0xd9, 0xfe, 0x26, 0xf0, 0xfe, 0x5a, 0x03, 0xfe,
5376 0xa0, 0xf0, 0xfe, 0x48, 0x03, 0xfe, 0x11, 0xf0, 0xa7, 0xfe, 0xef, 0x10,
5377 0xfe, 0x9f, 0xf0, 0xfe, 0x68, 0x03, 0xf9, 0x10, 0xfe, 0x11, 0x00, 0x02,
5378 0x65, 0x2c, 0xfe, 0x48, 0x1c, 0xf9, 0x08, 0x05, 0x1b, 0xfe, 0x18, 0x13,
5379 0x21, 0x22, 0xa3, 0xb7, 0x13, 0xa3, 0x09, 0x46, 0x01, 0x0e, 0xb7, 0x78,
5380 0x01, 0xfe, 0xb4, 0x16, 0x12, 0xd1, 0x1c, 0xd9, 0xfe, 0x01, 0xf0, 0xd9,
5381 0xfe, 0x82, 0xf0, 0xfe, 0x96, 0x03, 0xfa, 0x12, 0xfe, 0xe4, 0x00, 0x27,
5382 0xfe, 0xa8, 0x03, 0x1c, 0x34, 0x1d, 0xfe, 0xb8, 0x03, 0x01, 0x4b, 0xfe,
5383 0x06, 0xf0, 0xfe, 0xc8, 0x03, 0x95, 0x86, 0xfe, 0x0a, 0xf0, 0xfe, 0x8a,
5384 0x06, 0x02, 0x24, 0x03, 0x70, 0x28, 0x17, 0xfe, 0xfa, 0x04, 0x15, 0x6d,
5385 0x01, 0x36, 0x7b, 0xfe, 0x6a, 0x02, 0x02, 0xd8, 0xf9, 0x2c, 0x99, 0x19,
5386 0xfe, 0x67, 0x1b, 0xfe, 0xbf, 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x48, 0x1c,
5387 0x74, 0x01, 0xaf, 0x8c, 0x09, 0x46, 0x01, 0x0e, 0x07, 0x00, 0x17, 0xda,
5388 0x09, 0xd1, 0x01, 0x0e, 0x8d, 0x51, 0x64, 0x79, 0x2a, 0x03, 0x70, 0x28,
5389 0xfe, 0x10, 0x12, 0x15, 0x6d, 0x01, 0x36, 0x7b, 0xfe, 0x6a, 0x02, 0x02,
5390 0xd8, 0xc7, 0x81, 0xc8, 0x83, 0x1c, 0x24, 0x27, 0xfe, 0x40, 0x04, 0x1d,
5391 0xfe, 0x3c, 0x04, 0x3b, 0xfe, 0xa0, 0x00, 0xfe, 0x9b, 0x57, 0xfe, 0x4e,
5392 0x12, 0x2d, 0xff, 0x02, 0x00, 0x10, 0x01, 0x0b, 0x1d, 0xfe, 0xe4, 0x04,
5393 0x2d, 0x01, 0x0b, 0x1d, 0x24, 0x33, 0x31, 0xde, 0xfe, 0x4c, 0x44, 0xfe,
5394 0x4c, 0x12, 0x51, 0xfe, 0x44, 0x48, 0x0f, 0x6f, 0xfe, 0x4c, 0x54, 0x6b,
5395 0xda, 0x4f, 0x79, 0x2a, 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x62,
5396 0x13, 0x08, 0x05, 0x1b, 0xfe, 0x2a, 0x13, 0x32, 0x07, 0x82, 0xfe, 0x52,
5397 0x13, 0xfe, 0x20, 0x10, 0x0f, 0x6f, 0xfe, 0x4c, 0x54, 0x6b, 0xda, 0xfe,
5398 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x40, 0x13, 0x08, 0x05, 0x1b, 0xfe,
5399 0x08, 0x13, 0x32, 0x07, 0x82, 0xfe, 0x30, 0x13, 0x08, 0x05, 0x1b, 0xfe,
5400 0x1c, 0x12, 0x15, 0x9d, 0x08, 0x05, 0x06, 0x4d, 0x15, 0xfe, 0x0d, 0x00,
5401 0x01, 0x36, 0x7b, 0xfe, 0x64, 0x0d, 0x02, 0x24, 0x2d, 0x12, 0xfe, 0xe6,
5402 0x00, 0xfe, 0x1c, 0x90, 0xfe, 0x40, 0x5c, 0x04, 0x15, 0x9d, 0x01, 0x36,
5403 0x02, 0x2b, 0xfe, 0x42, 0x5b, 0x99, 0x19, 0xfe, 0x46, 0x59, 0xfe, 0xbf,
5404 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x87, 0x80, 0xfe, 0x31, 0xe4, 0x5b, 0x08,
5405 0x05, 0x0a, 0xfe, 0x84, 0x13, 0xfe, 0x20, 0x80, 0x07, 0x19, 0xfe, 0x7c,
5406 0x12, 0x53, 0x05, 0x06, 0xfe, 0x6c, 0x13, 0x03, 0xfe, 0xa2, 0x00, 0x28,
5407 0x17, 0xfe, 0x90, 0x05, 0xfe, 0x31, 0xe4, 0x5a, 0x53, 0x05, 0x0a, 0xfe,
5408 0x56, 0x13, 0x03, 0xfe, 0xa0, 0x00, 0x28, 0xfe, 0x4e, 0x12, 0x67, 0xff,
5409 0x02, 0x00, 0x10, 0x27, 0xfe, 0x48, 0x05, 0x1c, 0x34, 0xfe, 0x89, 0x48,
5410 0xff, 0x02, 0x00, 0x10, 0x27, 0xfe, 0x56, 0x05, 0x26, 0xfe, 0xa8, 0x05,
5411 0x12, 0xfe, 0xe3, 0x00, 0x21, 0x53, 0xfe, 0x4a, 0xf0, 0xfe, 0x76, 0x05,
5412 0xfe, 0x49, 0xf0, 0xfe, 0x70, 0x05, 0x88, 0x25, 0xfe, 0x21, 0x00, 0xab,
5413 0x25, 0xfe, 0x22, 0x00, 0xaa, 0x25, 0x58, 0xfe, 0x09, 0x48, 0xff, 0x02,
5414 0x00, 0x10, 0x27, 0xfe, 0x86, 0x05, 0x26, 0xfe, 0xa8, 0x05, 0xfe, 0xe2,
5415 0x08, 0x53, 0x05, 0xcb, 0x4d, 0x01, 0xb0, 0x25, 0x06, 0x13, 0xd3, 0x39,
5416 0xfe, 0x27, 0x01, 0x08, 0x05, 0x1b, 0xfe, 0x22, 0x12, 0x41, 0x01, 0xb2,
5417 0x15, 0x9d, 0x08, 0x05, 0x06, 0x4d, 0x15, 0xfe, 0x0d, 0x00, 0x01, 0x36,
5418 0x7b, 0xfe, 0x64, 0x0d, 0x02, 0x24, 0x03, 0xfe, 0x9c, 0x00, 0x28, 0xeb,
5419 0x03, 0x5c, 0x28, 0xfe, 0x36, 0x13, 0x41, 0x01, 0xb2, 0x26, 0xfe, 0x18,
5420 0x06, 0x09, 0x06, 0x53, 0x05, 0x1f, 0xfe, 0x02, 0x12, 0x50, 0x01, 0xfe,
5421 0x9e, 0x15, 0x1d, 0xfe, 0x0e, 0x06, 0x12, 0xa5, 0x01, 0x4b, 0x12, 0xfe,
5422 0xe5, 0x00, 0x03, 0x5c, 0xc1, 0x0c, 0x5c, 0x03, 0xcd, 0x28, 0xfe, 0x62,
5423 0x12, 0x03, 0x45, 0x28, 0xfe, 0x5a, 0x13, 0x01, 0xfe, 0x0c, 0x19, 0x01,
5424 0xfe, 0x76, 0x19, 0xfe, 0x43, 0x48, 0xc4, 0xcc, 0x0f, 0x71, 0xff, 0x02,
5425 0x00, 0x57, 0x52, 0x93, 0x1e, 0x43, 0x8b, 0xc4, 0x6e, 0x41, 0x01, 0xb2,
5426 0x26, 0xfe, 0x82, 0x06, 0x53, 0x05, 0x1a, 0xe9, 0x91, 0x09, 0x59, 0x01,
5427 0xfe, 0xcc, 0x15, 0x1d, 0xfe, 0x78, 0x06, 0x12, 0xa5, 0x01, 0x4b, 0x12,
5428 0xfe, 0xe5, 0x00, 0x03, 0x45, 0xc1, 0x0c, 0x45, 0x18, 0x06, 0x01, 0xb2,
5429 0xfa, 0x76, 0x74, 0x01, 0xaf, 0x8c, 0x12, 0xfe, 0xe2, 0x00, 0x27, 0xdb,
5430 0x1c, 0x34, 0xfe, 0x0a, 0xf0, 0xfe, 0xb6, 0x06, 0x94, 0xfe, 0x6c, 0x07,
5431 0xfe, 0x06, 0xf0, 0xfe, 0x74, 0x07, 0x95, 0x86, 0x02, 0x24, 0x08, 0x05,
5432 0x0a, 0xfe, 0x2e, 0x12, 0x16, 0x19, 0x01, 0x0b, 0x16, 0x00, 0x01, 0x0b,
5433 0x16, 0x00, 0x01, 0x0b, 0x16, 0x00, 0x01, 0x0b, 0xfe, 0x99, 0xa4, 0x01,
5434 0x0b, 0x16, 0x00, 0x02, 0xfe, 0x42, 0x08, 0x68, 0x05, 0x1a, 0xfe, 0x38,
5435 0x12, 0x08, 0x05, 0x1a, 0xfe, 0x30, 0x13, 0x16, 0xfe, 0x1b, 0x00, 0x01,
5436 0x0b, 0x16, 0x00, 0x01, 0x0b, 0x16, 0x00, 0x01, 0x0b, 0x16, 0x00, 0x01,
5437 0x0b, 0x16, 0x06, 0x01, 0x0b, 0x16, 0x00, 0x02, 0xe2, 0x6c, 0x58, 0xbe,
5438 0x50, 0xfe, 0x9a, 0x81, 0x55, 0x1b, 0x7a, 0xfe, 0x42, 0x07, 0x09, 0x1b,
5439 0xfe, 0x09, 0x6f, 0xba, 0xfe, 0xca, 0x45, 0xfe, 0x32, 0x12, 0x69, 0x6d,
5440 0x8b, 0x6c, 0x7f, 0x27, 0xfe, 0x54, 0x07, 0x1c, 0x34, 0xfe, 0x0a, 0xf0,
5441 0xfe, 0x42, 0x07, 0x95, 0x86, 0x94, 0xfe, 0x6c, 0x07, 0x02, 0x24, 0x01,
5442 0x4b, 0x02, 0xdb, 0x16, 0x1f, 0x02, 0xdb, 0xfe, 0x9c, 0xf7, 0xdc, 0xfe,
5443 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x56, 0xfe, 0xda, 0x07, 0x0c, 0x60, 0x14,
5444 0x61, 0x08, 0x54, 0x5a, 0x37, 0x22, 0x20, 0x07, 0x11, 0xfe, 0x0e, 0x12,
5445 0x8d, 0xfe, 0x80, 0x80, 0x39, 0x20, 0x6a, 0x2a, 0xfe, 0x06, 0x10, 0xfe,
5446 0x83, 0xe7, 0xfe, 0x48, 0x00, 0xab, 0xfe, 0x03, 0x40, 0x08, 0x54, 0x5b,
5447 0x37, 0x01, 0xb3, 0xb8, 0xfe, 0x1f, 0x40, 0x13, 0x62, 0x01, 0xef, 0xfe,
5448 0x08, 0x50, 0xfe, 0x8a, 0x50, 0xfe, 0x44, 0x51, 0xfe, 0xc6, 0x51, 0x88,
5449 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90, 0x0c, 0x5e, 0x14, 0x5f, 0xfe, 0x0c,
5450 0x90, 0xfe, 0x8e, 0x90, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x0c, 0x3d,
5451 0x14, 0x3e, 0xfe, 0x4a, 0x10, 0x08, 0x05, 0x5a, 0xfe, 0x2a, 0x12, 0xfe,
5452 0x2c, 0x90, 0xfe, 0xae, 0x90, 0x0c, 0x60, 0x14, 0x61, 0x08, 0x05, 0x5b,
5453 0x8b, 0x01, 0xb3, 0xfe, 0x1f, 0x80, 0x13, 0x62, 0xfe, 0x44, 0x90, 0xfe,
5454 0xc6, 0x90, 0x0c, 0x3f, 0x14, 0x40, 0xfe, 0x08, 0x90, 0xfe, 0x8a, 0x90,
5455 0x0c, 0x5e, 0x14, 0x5f, 0xfe, 0x40, 0x90, 0xfe, 0xc2, 0x90, 0x0c, 0x3d,
5456 0x14, 0x3e, 0x0c, 0x2e, 0x14, 0x3c, 0x21, 0x0c, 0x49, 0x0c, 0x63, 0x08,
5457 0x54, 0x1f, 0x37, 0x2c, 0x0f, 0xfe, 0x4e, 0x11, 0x27, 0xdd, 0xfe, 0x9e,
5458 0xf0, 0xfe, 0x76, 0x08, 0xbc, 0x17, 0x34, 0x2c, 0x77, 0xe6, 0xc5, 0xfe,
5459 0x9a, 0x08, 0xc6, 0xfe, 0xb8, 0x08, 0x94, 0xfe, 0x8e, 0x08, 0xfe, 0x06,
5460 0xf0, 0xfe, 0x94, 0x08, 0x95, 0x86, 0x02, 0x24, 0x01, 0x4b, 0xfe, 0xc9,
5461 0x10, 0x16, 0x1f, 0xfe, 0xc9, 0x10, 0x68, 0x05, 0x06, 0xfe, 0x10, 0x12,
5462 0x68, 0x05, 0x0a, 0x4e, 0x08, 0x05, 0x0a, 0xfe, 0x90, 0x12, 0xfe, 0x2e,
5463 0x1c, 0x02, 0xfe, 0x18, 0x0b, 0x68, 0x05, 0x06, 0x4e, 0x68, 0x05, 0x0a,
5464 0xfe, 0x7a, 0x12, 0xfe, 0x2c, 0x1c, 0xfe, 0xaa, 0xf0, 0xfe, 0xd2, 0x09,
5465 0xfe, 0xac, 0xf0, 0xfe, 0x00, 0x09, 0x02, 0xfe, 0xde, 0x09, 0xfe, 0xb7,
5466 0xf0, 0xfe, 0xfc, 0x08, 0xfe, 0x02, 0xf6, 0x1a, 0x50, 0xfe, 0x70, 0x18,
5467 0xfe, 0xf1, 0x18, 0xfe, 0x40, 0x55, 0xfe, 0xe1, 0x55, 0xfe, 0x10, 0x58,
5468 0xfe, 0x91, 0x58, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x1c, 0x85, 0xfe,
5469 0x8c, 0xf0, 0xfe, 0xfc, 0x08, 0xfe, 0xac, 0xf0, 0xfe, 0xf0, 0x08, 0xb5,
5470 0xfe, 0xcb, 0x10, 0xfe, 0xad, 0xf0, 0xfe, 0x0c, 0x09, 0x02, 0xfe, 0x18,
5471 0x0b, 0xb6, 0xfe, 0xbf, 0x10, 0xfe, 0x2b, 0xf0, 0x85, 0xf4, 0x1e, 0xfe,
5472 0x00, 0xfe, 0xfe, 0x1c, 0x12, 0xc2, 0xfe, 0xd2, 0xf0, 0x85, 0xfe, 0x76,
5473 0x18, 0x1e, 0x19, 0x17, 0x85, 0x03, 0xd2, 0x1e, 0x06, 0x17, 0x85, 0xc5,
5474 0x4a, 0xc6, 0x4a, 0xb5, 0xb6, 0xfe, 0x89, 0x10, 0x74, 0x67, 0x2d, 0x15,
5475 0x9d, 0x01, 0x36, 0x10, 0xfe, 0x35, 0x00, 0xfe, 0x01, 0xf0, 0x65, 0x10,
5476 0x80, 0x02, 0x65, 0xfe, 0x98, 0x80, 0xfe, 0x19, 0xe4, 0x0a, 0xfe, 0x1a,
5477 0x12, 0x51, 0xfe, 0x19, 0x82, 0xfe, 0x6c, 0x18, 0xfe, 0x44, 0x54, 0xbe,
5478 0xfe, 0x19, 0x81, 0xfe, 0x74, 0x18, 0x8f, 0x90, 0x17, 0xfe, 0xce, 0x08,
5479 0x02, 0x4a, 0x08, 0x05, 0x5a, 0xec, 0x03, 0x2e, 0x29, 0x3c, 0x0c, 0x3f,
5480 0x14, 0x40, 0x9b, 0x2e, 0x9c, 0x3c, 0xfe, 0x6c, 0x18, 0xfe, 0xed, 0x18,
5481 0xfe, 0x44, 0x54, 0xfe, 0xe5, 0x54, 0x3a, 0x3f, 0x3b, 0x40, 0x03, 0x49,
5482 0x29, 0x63, 0x8f, 0xfe, 0xe3, 0x54, 0xfe, 0x74, 0x18, 0xfe, 0xf5, 0x18,
5483 0x8f, 0xfe, 0xe3, 0x54, 0x90, 0xc0, 0x56, 0xfe, 0xce, 0x08, 0x02, 0x4a,
5484 0xfe, 0x37, 0xf0, 0xfe, 0xda, 0x09, 0xfe, 0x8b, 0xf0, 0xfe, 0x60, 0x09,
5485 0x02, 0x4a, 0x08, 0x05, 0x0a, 0x23, 0xfe, 0xfa, 0x0a, 0x3a, 0x49, 0x3b,
5486 0x63, 0x56, 0xfe, 0x3e, 0x0a, 0x0f, 0xfe, 0xc0, 0x07, 0x41, 0x98, 0x00,
5487 0xad, 0xfe, 0x01, 0x59, 0xfe, 0x52, 0xf0, 0xfe, 0x0c, 0x0a, 0x8f, 0x7a,
5488 0xfe, 0x24, 0x0a, 0x3a, 0x49, 0x8f, 0xfe, 0xe3, 0x54, 0x57, 0x49, 0x7d,
5489 0x63, 0xfe, 0x14, 0x58, 0xfe, 0x95, 0x58, 0x02, 0x4a, 0x3a, 0x49, 0x3b,
5490 0x63, 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0xbe, 0x57, 0x49, 0x57, 0x63,
5491 0x02, 0x4a, 0x08, 0x05, 0x5a, 0xfe, 0x82, 0x12, 0x08, 0x05, 0x1f, 0xfe,
5492 0x66, 0x13, 0x22, 0x62, 0xb7, 0xfe, 0x03, 0xa1, 0xfe, 0x83, 0x80, 0xfe,
5493 0xc8, 0x44, 0xfe, 0x2e, 0x13, 0xfe, 0x04, 0x91, 0xfe, 0x86, 0x91, 0x6a,
5494 0x2a, 0xfe, 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x56, 0xe0, 0x03, 0x60, 0x29,
5495 0x61, 0x0c, 0x7f, 0x14, 0x80, 0x57, 0x60, 0x7d, 0x61, 0x01, 0xb3, 0xb8,
5496 0x6a, 0x2a, 0x13, 0x62, 0x9b, 0x2e, 0x9c, 0x3c, 0x3a, 0x3f, 0x3b, 0x40,
5497 0x90, 0xc0, 0xfe, 0x04, 0xfa, 0x2e, 0xfe, 0x05, 0xfa, 0x3c, 0x01, 0xef,
5498 0xfe, 0x36, 0x10, 0x21, 0x0c, 0x7f, 0x0c, 0x80, 0x3a, 0x3f, 0x3b, 0x40,
5499 0xe4, 0x08, 0x05, 0x1f, 0x17, 0xe0, 0x3a, 0x3d, 0x3b, 0x3e, 0x08, 0x05,
5500 0xfe, 0xf7, 0x00, 0x37, 0x03, 0x5e, 0x29, 0x5f, 0xfe, 0x10, 0x58, 0xfe,
5501 0x91, 0x58, 0x57, 0x49, 0x7d, 0x63, 0x02, 0xfe, 0xf4, 0x09, 0x08, 0x05,
5502 0x1f, 0x17, 0xe0, 0x08, 0x05, 0xfe, 0xf7, 0x00, 0x37, 0xbe, 0xfe, 0x19,
5503 0x81, 0x50, 0xfe, 0x10, 0x90, 0xfe, 0x92, 0x90, 0xfe, 0xd3, 0x10, 0x32,
5504 0x07, 0xa6, 0x17, 0xfe, 0x08, 0x09, 0x12, 0xa6, 0x08, 0x05, 0x0a, 0xfe,
5505 0x14, 0x13, 0x03, 0x3d, 0x29, 0x3e, 0x56, 0xfe, 0x08, 0x09, 0xfe, 0x0c,
5506 0x58, 0xfe, 0x8d, 0x58, 0x02, 0x4a, 0x21, 0x41, 0xfe, 0x19, 0x80, 0xe7,
5507 0x08, 0x05, 0x0a, 0xfe, 0x1a, 0x12, 0xfe, 0x6c, 0x19, 0xfe, 0x19, 0x41,
5508 0xf4, 0xc2, 0xfe, 0xd1, 0xf0, 0xe2, 0x15, 0x7e, 0x01, 0x36, 0x10, 0xfe,
5509 0x44, 0x00, 0xfe, 0x8e, 0x10, 0xfe, 0x6c, 0x19, 0x57, 0x3d, 0xfe, 0xed,
5510 0x19, 0x7d, 0x3e, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0xf4, 0x1e, 0xfe,
5511 0x00, 0xff, 0x35, 0xfe, 0x74, 0x10, 0xc2, 0xfe, 0xd2, 0xf0, 0xfe, 0xa6,
5512 0x0b, 0xfe, 0x76, 0x18, 0x1e, 0x19, 0x8a, 0x03, 0xd2, 0x1e, 0x06, 0xfe,
5513 0x08, 0x13, 0x10, 0xfe, 0x16, 0x00, 0x02, 0x65, 0xfe, 0xd1, 0xf0, 0xfe,
5514 0xb8, 0x0b, 0x15, 0x7e, 0x01, 0x36, 0x10, 0xfe, 0x17, 0x00, 0xfe, 0x42,
5515 0x10, 0xfe, 0xce, 0xf0, 0xfe, 0xbe, 0x0b, 0xfe, 0x3c, 0x10, 0xfe, 0xcd,
5516 0xf0, 0xfe, 0xca, 0x0b, 0x10, 0xfe, 0x22, 0x00, 0x02, 0x65, 0xfe, 0xcb,
5517 0xf0, 0xfe, 0xd6, 0x0b, 0x10, 0xfe, 0x24, 0x00, 0x02, 0x65, 0xfe, 0xd0,
5518 0xf0, 0xfe, 0xe0, 0x0b, 0x10, 0x9e, 0xe5, 0xfe, 0xcf, 0xf0, 0xfe, 0xea,
5519 0x0b, 0x10, 0x58, 0xfe, 0x10, 0x10, 0xfe, 0xcc, 0xf0, 0xe2, 0x68, 0x05,
5520 0x1f, 0x4d, 0x10, 0xfe, 0x12, 0x00, 0x2c, 0x0f, 0xfe, 0x4e, 0x11, 0x27,
5521 0xfe, 0x00, 0x0c, 0xfe, 0x9e, 0xf0, 0xfe, 0x14, 0x0c, 0xbc, 0x17, 0x34,
5522 0x2c, 0x77, 0xe6, 0xc5, 0x24, 0xc6, 0x24, 0x2c, 0xfa, 0x27, 0xfe, 0x20,
5523 0x0c, 0x1c, 0x34, 0x94, 0xfe, 0x3c, 0x0c, 0x95, 0x86, 0xc5, 0xdc, 0xc6,
5524 0xdc, 0x02, 0x24, 0x01, 0x4b, 0xfe, 0xdb, 0x10, 0x12, 0xfe, 0xe8, 0x00,
5525 0xb5, 0xb6, 0x74, 0xc7, 0x81, 0xc8, 0x83, 0xfe, 0x89, 0xf0, 0x24, 0x33,
5526 0x31, 0xe1, 0xc7, 0x81, 0xc8, 0x83, 0x27, 0xfe, 0x66, 0x0c, 0x1d, 0x24,
5527 0x33, 0x31, 0xdf, 0xbc, 0x4e, 0x10, 0xfe, 0x42, 0x00, 0x02, 0x65, 0x7c,
5528 0x06, 0xfe, 0x81, 0x49, 0x17, 0xfe, 0x2c, 0x0d, 0x08, 0x05, 0x0a, 0xfe,
5529 0x44, 0x13, 0x10, 0x00, 0x55, 0x0a, 0xfe, 0x54, 0x12, 0x55, 0xfe, 0x28,
5530 0x00, 0x23, 0xfe, 0x9a, 0x0d, 0x09, 0x46, 0x01, 0x0e, 0x07, 0x00, 0x66,
5531 0x44, 0xfe, 0x28, 0x00, 0xfe, 0xe2, 0x10, 0x01, 0xf5, 0x01, 0xf6, 0x09,
5532 0xa4, 0x01, 0xfe, 0x26, 0x0f, 0x64, 0x12, 0x2f, 0x01, 0x73, 0x02, 0x2b,
5533 0x10, 0xfe, 0x44, 0x00, 0x55, 0x0a, 0xe9, 0x44, 0x0a, 0xfe, 0xb4, 0x10,
5534 0x01, 0xb0, 0x44, 0x0a, 0xfe, 0xaa, 0x10, 0x01, 0xb0, 0xfe, 0x19, 0x82,
5535 0xfe, 0x34, 0x46, 0xac, 0x44, 0x0a, 0x10, 0xfe, 0x43, 0x00, 0xfe, 0x96,
5536 0x10, 0x08, 0x54, 0x0a, 0x37, 0x01, 0xf5, 0x01, 0xf6, 0x64, 0x12, 0x2f,
5537 0x01, 0x73, 0x99, 0x0a, 0x64, 0x42, 0x92, 0x02, 0xfe, 0x2e, 0x03, 0x08,
5538 0x05, 0x0a, 0x8a, 0x44, 0x0a, 0x10, 0x00, 0xfe, 0x5c, 0x10, 0x68, 0x05,
5539 0x1a, 0xfe, 0x58, 0x12, 0x08, 0x05, 0x1a, 0xfe, 0x50, 0x13, 0xfe, 0x1c,
5540 0x1c, 0xfe, 0x9d, 0xf0, 0xfe, 0x50, 0x0d, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d,
5541 0xf0, 0xfe, 0x56, 0x0d, 0x08, 0x54, 0x1a, 0x37, 0xfe, 0xa9, 0x10, 0x10,
5542 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0a, 0x50, 0xfe, 0x2e, 0x10, 0x10,
5543 0xfe, 0x13, 0x00, 0xfe, 0x10, 0x10, 0x10, 0x6f, 0xab, 0x10, 0xfe, 0x41,
5544 0x00, 0xaa, 0x10, 0xfe, 0x24, 0x00, 0x8c, 0xb5, 0xb6, 0x74, 0x03, 0x70,
5545 0x28, 0x23, 0xd8, 0x50, 0xfe, 0x04, 0xe6, 0x1a, 0xfe, 0x9d, 0x41, 0xfe,
5546 0x1c, 0x42, 0x64, 0x01, 0xe3, 0x02, 0x2b, 0xf8, 0x15, 0x0a, 0x39, 0xa0,
5547 0xb4, 0x15, 0xfe, 0x31, 0x00, 0x39, 0xa2, 0x01, 0xfe, 0x48, 0x10, 0x02,
5548 0xd7, 0x42, 0xfe, 0x06, 0xec, 0xd0, 0xfc, 0x44, 0x1b, 0xfe, 0xce, 0x45,
5549 0x35, 0x42, 0xfe, 0x06, 0xea, 0xd0, 0xfe, 0x47, 0x4b, 0x91, 0xfe, 0x75,
5550 0x57, 0x03, 0x5d, 0xfe, 0x98, 0x56, 0xfe, 0x38, 0x12, 0x09, 0x48, 0x01,
5551 0x0e, 0xfe, 0x44, 0x48, 0x4f, 0x08, 0x05, 0x1b, 0xfe, 0x1a, 0x13, 0x09,
5552 0x46, 0x01, 0x0e, 0x41, 0xfe, 0x41, 0x58, 0x09, 0xa4, 0x01, 0x0e, 0xfe,
5553 0x49, 0x54, 0x96, 0xfe, 0x1e, 0x0e, 0x02, 0xfe, 0x2e, 0x03, 0x09, 0x5d,
5554 0xfe, 0xee, 0x14, 0xfc, 0x44, 0x1b, 0xfe, 0xce, 0x45, 0x35, 0x42, 0xfe,
5555 0xce, 0x47, 0xfe, 0xad, 0x13, 0x02, 0x2b, 0x22, 0x20, 0x07, 0x11, 0xfe,
5556 0x9e, 0x12, 0x21, 0x13, 0x59, 0x13, 0x9f, 0x13, 0xd5, 0x22, 0x2f, 0x41,
5557 0x39, 0x2f, 0xbc, 0xad, 0xfe, 0xbc, 0xf0, 0xfe, 0xe0, 0x0e, 0x0f, 0x06,
5558 0x13, 0x59, 0x01, 0xfe, 0xda, 0x16, 0x03, 0xfe, 0x38, 0x01, 0x29, 0xfe,
5559 0x3a, 0x01, 0x56, 0xfe, 0xe4, 0x0e, 0xfe, 0x02, 0xec, 0xd5, 0x69, 0x00,
5560 0x66, 0xfe, 0x04, 0xec, 0x20, 0x4f, 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01,
5561 0x01, 0xfe, 0x4a, 0x17, 0xfe, 0x08, 0x90, 0xfe, 0x48, 0xf4, 0x0d, 0xfe,
5562 0x18, 0x13, 0xba, 0xfe, 0x02, 0xea, 0xd5, 0x69, 0x7e, 0xfe, 0xc5, 0x13,
5563 0x15, 0x1a, 0x39, 0xa0, 0xb4, 0xfe, 0x2e, 0x10, 0x03, 0xfe, 0x38, 0x01,
5564 0x1e, 0xfe, 0xf0, 0xff, 0x0c, 0xfe, 0x60, 0x01, 0x03, 0xfe, 0x3a, 0x01,
5565 0x0c, 0xfe, 0x62, 0x01, 0x43, 0x13, 0x20, 0x25, 0x06, 0x13, 0x2f, 0x12,
5566 0x2f, 0x92, 0x0f, 0x06, 0x04, 0x21, 0x04, 0x22, 0x59, 0xfe, 0xf7, 0x12,
5567 0x22, 0x9f, 0xb7, 0x13, 0x9f, 0x07, 0x7e, 0xfe, 0x71, 0x13, 0xfe, 0x24,
5568 0x1c, 0x15, 0x19, 0x39, 0xa0, 0xb4, 0xfe, 0xd9, 0x10, 0xc3, 0xfe, 0x03,
5569 0xdc, 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x04, 0xc3, 0xfe, 0x03, 0xdc,
5570 0xfe, 0x5b, 0x57, 0xfe, 0x80, 0x5d, 0x04, 0xfe, 0x03, 0x57, 0xc3, 0x21,
5571 0xfe, 0x00, 0xcc, 0x04, 0xfe, 0x03, 0x57, 0xc3, 0x78, 0x04, 0x08, 0x05,
5572 0x58, 0xfe, 0x22, 0x13, 0xfe, 0x1c, 0x80, 0x07, 0x06, 0xfe, 0x1a, 0x13,
5573 0xfe, 0x1e, 0x80, 0xed, 0xfe, 0x1d, 0x80, 0xae, 0xfe, 0x0c, 0x90, 0xfe,
5574 0x0e, 0x13, 0xfe, 0x0e, 0x90, 0xac, 0xfe, 0x3c, 0x90, 0xfe, 0x30, 0xf4,
5575 0x0a, 0xfe, 0x3c, 0x50, 0xaa, 0x01, 0xfe, 0x7a, 0x17, 0x32, 0x07, 0x2f,
5576 0xad, 0x01, 0xfe, 0xb4, 0x16, 0x08, 0x05, 0x1b, 0x4e, 0x01, 0xf5, 0x01,
5577 0xf6, 0x12, 0xfe, 0xe9, 0x00, 0x08, 0x05, 0x58, 0xfe, 0x2c, 0x13, 0x01,
5578 0xfe, 0x0c, 0x17, 0xfe, 0x1e, 0x1c, 0xfe, 0x14, 0x90, 0xfe, 0x96, 0x90,
5579 0x0c, 0xfe, 0x64, 0x01, 0x14, 0xfe, 0x66, 0x01, 0x08, 0x05, 0x5b, 0xfe,
5580 0x12, 0x12, 0xfe, 0x03, 0x80, 0x8d, 0xfe, 0x01, 0xec, 0x20, 0xfe, 0x80,
5581 0x40, 0x13, 0x20, 0x6a, 0x2a, 0x12, 0xcf, 0x64, 0x22, 0x20, 0xfb, 0x79,
5582 0x20, 0x04, 0xfe, 0x08, 0x1c, 0x03, 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58,
5583 0x03, 0xfe, 0xae, 0x00, 0xfe, 0x07, 0x58, 0x03, 0xfe, 0xb0, 0x00, 0xfe,
5584 0x08, 0x58, 0x03, 0xfe, 0xb2, 0x00, 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c,
5585 0x25, 0x6e, 0x13, 0xd0, 0x21, 0x0c, 0x5c, 0x0c, 0x45, 0x0f, 0x46, 0x52,
5586 0x50, 0x18, 0x1b, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x23, 0xfe, 0xfc,
5587 0x0f, 0x44, 0x11, 0x0f, 0x48, 0x52, 0x18, 0x58, 0xfe, 0x90, 0x4d, 0xfe,
5588 0x91, 0x54, 0x23, 0xe4, 0x25, 0x11, 0x13, 0x20, 0x7c, 0x6f, 0x4f, 0x22,
5589 0x20, 0xfb, 0x79, 0x20, 0x12, 0xcf, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0,
5590 0xfe, 0x26, 0x10, 0xf8, 0x74, 0xfe, 0x14, 0x1c, 0xfe, 0x10, 0x1c, 0xfe,
5591 0x18, 0x1c, 0x04, 0x42, 0xfe, 0x0c, 0x14, 0xfc, 0xfe, 0x07, 0xe6, 0x1b,
5592 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x04, 0x01, 0xb0, 0x7c, 0x6f, 0x4f,
5593 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x42, 0x13, 0x32, 0x07, 0x2f,
5594 0xfe, 0x34, 0x13, 0x09, 0x48, 0x01, 0x0e, 0xbb, 0xfe, 0x36, 0x12, 0xfe,
5595 0x41, 0x48, 0xfe, 0x45, 0x48, 0x01, 0xf0, 0xfe, 0x00, 0xcc, 0xbb, 0xfe,
5596 0xf3, 0x13, 0x43, 0x78, 0x07, 0x11, 0xac, 0x09, 0x84, 0x01, 0x0e, 0xfe,
5597 0x80, 0x5c, 0x01, 0x73, 0xfe, 0x0e, 0x10, 0x07, 0x82, 0x4e, 0xfe, 0x14,
5598 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0x60, 0x10, 0x04, 0xfe, 0x44, 0x58, 0x8d,
5599 0xfe, 0x01, 0xec, 0xa2, 0xfe, 0x9e, 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe,
5600 0x9c, 0xe7, 0x1a, 0x79, 0x2a, 0x01, 0xe3, 0xfe, 0xdd, 0x10, 0x2c, 0xc7,
5601 0x81, 0xc8, 0x83, 0x33, 0x31, 0xde, 0x07, 0x1a, 0xfe, 0x48, 0x12, 0x07,
5602 0x0a, 0xfe, 0x56, 0x12, 0x07, 0x19, 0xfe, 0x30, 0x12, 0x07, 0xc9, 0x17,
5603 0xfe, 0x32, 0x12, 0x07, 0xfe, 0x23, 0x00, 0x17, 0xeb, 0x07, 0x06, 0x17,
5604 0xfe, 0x9c, 0x12, 0x07, 0x1f, 0xfe, 0x12, 0x12, 0x07, 0x00, 0x17, 0x24,
5605 0x15, 0xc9, 0x01, 0x36, 0xa9, 0x2d, 0x01, 0x0b, 0x94, 0x4b, 0x04, 0x2d,
5606 0xdd, 0x09, 0xd1, 0x01, 0xfe, 0x26, 0x0f, 0x12, 0x82, 0x02, 0x2b, 0x2d,
5607 0x32, 0x07, 0xa6, 0xfe, 0xd9, 0x13, 0x3a, 0x3d, 0x3b, 0x3e, 0x56, 0xfe,
5608 0xf0, 0x11, 0x08, 0x05, 0x5a, 0xfe, 0x72, 0x12, 0x9b, 0x2e, 0x9c, 0x3c,
5609 0x90, 0xc0, 0x96, 0xfe, 0xba, 0x11, 0x22, 0x62, 0xfe, 0x26, 0x13, 0x03,
5610 0x7f, 0x29, 0x80, 0x56, 0xfe, 0x76, 0x0d, 0x0c, 0x60, 0x14, 0x61, 0x21,
5611 0x0c, 0x7f, 0x0c, 0x80, 0x01, 0xb3, 0x25, 0x6e, 0x77, 0x13, 0x62, 0x01,
5612 0xef, 0x9b, 0x2e, 0x9c, 0x3c, 0xfe, 0x04, 0x55, 0xfe, 0xa5, 0x55, 0xfe,
5613 0x04, 0xfa, 0x2e, 0xfe, 0x05, 0xfa, 0x3c, 0xfe, 0x91, 0x10, 0x03, 0x3f,
5614 0x29, 0x40, 0xfe, 0x40, 0x56, 0xfe, 0xe1, 0x56, 0x0c, 0x3f, 0x14, 0x40,
5615 0x88, 0x9b, 0x2e, 0x9c, 0x3c, 0x90, 0xc0, 0x03, 0x5e, 0x29, 0x5f, 0xfe,
5616 0x00, 0x56, 0xfe, 0xa1, 0x56, 0x0c, 0x5e, 0x14, 0x5f, 0x08, 0x05, 0x5a,
5617 0xfe, 0x1e, 0x12, 0x22, 0x62, 0xfe, 0x1f, 0x40, 0x03, 0x60, 0x29, 0x61,
5618 0xfe, 0x2c, 0x50, 0xfe, 0xae, 0x50, 0x03, 0x3f, 0x29, 0x40, 0xfe, 0x44,
5619 0x50, 0xfe, 0xc6, 0x50, 0x03, 0x5e, 0x29, 0x5f, 0xfe, 0x08, 0x50, 0xfe,
5620 0x8a, 0x50, 0x03, 0x3d, 0x29, 0x3e, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50,
5621 0x02, 0x89, 0x25, 0x06, 0x13, 0xd4, 0x02, 0x72, 0x2d, 0x01, 0x0b, 0x1d,
5622 0x4c, 0x33, 0x31, 0xde, 0x07, 0x06, 0x23, 0x4c, 0x32, 0x07, 0xa6, 0x23,
5623 0x72, 0x01, 0xaf, 0x1e, 0x43, 0x17, 0x4c, 0x08, 0x05, 0x0a, 0xee, 0x3a,
5624 0x3d, 0x3b, 0x3e, 0xfe, 0x0a, 0x55, 0x35, 0xfe, 0x8b, 0x55, 0x57, 0x3d,
5625 0x7d, 0x3e, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x02, 0x72, 0xfe, 0x19,
5626 0x81, 0xba, 0xfe, 0x19, 0x41, 0x02, 0x72, 0x2d, 0x01, 0x0b, 0x1c, 0x34,
5627 0x1d, 0xe8, 0x33, 0x31, 0xe1, 0x55, 0x19, 0xfe, 0xa6, 0x12, 0x55, 0x0a,
5628 0x4d, 0x02, 0x4c, 0x01, 0x0b, 0x1c, 0x34, 0x1d, 0xe8, 0x33, 0x31, 0xdf,
5629 0x07, 0x19, 0x23, 0x4c, 0x01, 0x0b, 0x1d, 0xe8, 0x33, 0x31, 0xfe, 0xe8,
5630 0x09, 0xfe, 0xc2, 0x49, 0x51, 0x03, 0xfe, 0x9c, 0x00, 0x28, 0x8a, 0x53,
5631 0x05, 0x1f, 0x35, 0xa9, 0xfe, 0xbb, 0x45, 0x55, 0x00, 0x4e, 0x44, 0x06,
5632 0x7c, 0x43, 0xfe, 0xda, 0x14, 0x01, 0xaf, 0x8c, 0xfe, 0x4b, 0x45, 0xee,
5633 0x32, 0x07, 0xa5, 0xed, 0x03, 0xcd, 0x28, 0x8a, 0x03, 0x45, 0x28, 0x35,
5634 0x67, 0x02, 0x72, 0xfe, 0xc0, 0x5d, 0xfe, 0xf8, 0x14, 0xfe, 0x03, 0x17,
5635 0x03, 0x5c, 0xc1, 0x0c, 0x5c, 0x67, 0x2d, 0x01, 0x0b, 0x26, 0x89, 0x01,
5636 0xfe, 0x9e, 0x15, 0x02, 0x89, 0x01, 0x0b, 0x1c, 0x34, 0x1d, 0x4c, 0x33,
5637 0x31, 0xdf, 0x07, 0x06, 0x23, 0x4c, 0x01, 0xf1, 0xfe, 0x42, 0x58, 0xf1,
5638 0xfe, 0xa4, 0x14, 0x8c, 0xfe, 0x4a, 0xf4, 0x0a, 0x17, 0x4c, 0xfe, 0x4a,
5639 0xf4, 0x06, 0xea, 0x32, 0x07, 0xa5, 0x8b, 0x02, 0x72, 0x03, 0x45, 0xc1,
5640 0x0c, 0x45, 0x67, 0x2d, 0x01, 0x0b, 0x26, 0x89, 0x01, 0xfe, 0xcc, 0x15,
5641 0x02, 0x89, 0x0f, 0x06, 0x27, 0xfe, 0xbe, 0x13, 0x26, 0xfe, 0xd4, 0x13,
5642 0x76, 0xfe, 0x89, 0x48, 0x01, 0x0b, 0x21, 0x76, 0x04, 0x7b, 0xfe, 0xd0,
5643 0x13, 0x1c, 0xfe, 0xd0, 0x13, 0x1d, 0xfe, 0xbe, 0x13, 0x67, 0x2d, 0x01,
5644 0x0b, 0xfe, 0xd5, 0x10, 0x0f, 0x71, 0xff, 0x02, 0x00, 0x57, 0x52, 0x93,
5645 0x1e, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x04, 0x0f,
5646 0x71, 0xff, 0x02, 0x00, 0x57, 0x52, 0x93, 0x1e, 0x43, 0xfe, 0x30, 0x56,
5647 0xfe, 0x00, 0x5c, 0x04, 0x0f, 0x71, 0xff, 0x02, 0x00, 0x57, 0x52, 0x93,
5648 0x04, 0x0f, 0x71, 0xff, 0x02, 0x00, 0x57, 0x52, 0x93, 0xfe, 0x0b, 0x58,
5649 0x04, 0x09, 0x5c, 0x01, 0x87, 0x09, 0x45, 0x01, 0x87, 0x04, 0xfe, 0x03,
5650 0xa1, 0x1e, 0x11, 0xff, 0x03, 0x00, 0x54, 0xfe, 0x00, 0xf4, 0x1f, 0x52,
5651 0xfe, 0x00, 0x7d, 0xfe, 0x01, 0x7d, 0xfe, 0x02, 0x7d, 0xfe, 0x03, 0x7c,
5652 0x6a, 0x2a, 0x0c, 0x5e, 0x14, 0x5f, 0x57, 0x3f, 0x7d, 0x40, 0x04, 0xdd,
5653 0xfe, 0x82, 0x4a, 0xfe, 0xe1, 0x1a, 0xfe, 0x83, 0x5a, 0x8d, 0x04, 0x01,
5654 0xfe, 0x0c, 0x19, 0xfe, 0x42, 0x48, 0x50, 0x51, 0x91, 0x01, 0x0b, 0x1d,
5655 0xfe, 0x96, 0x15, 0x33, 0x31, 0xe1, 0x01, 0x0b, 0x1d, 0xfe, 0x96, 0x15,
5656 0x33, 0x31, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, 0x59, 0x03, 0xcd, 0x28, 0xfe,
5657 0xcc, 0x12, 0x53, 0x05, 0x1a, 0xfe, 0xc4, 0x13, 0x21, 0x69, 0x1a, 0xee,
5658 0x55, 0xca, 0x6b, 0xfe, 0xdc, 0x14, 0x4d, 0x0f, 0x06, 0x18, 0xca, 0x7c,
5659 0x30, 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xab, 0xff, 0x02, 0x83,
5660 0x55, 0x69, 0x19, 0xae, 0x98, 0xfe, 0x30, 0x00, 0x96, 0xf2, 0x18, 0x6d,
5661 0x0f, 0x06, 0xfe, 0x56, 0x10, 0x69, 0x0a, 0xed, 0x98, 0xfe, 0x64, 0x00,
5662 0x96, 0xf2, 0x09, 0xfe, 0x64, 0x00, 0x18, 0x9e, 0x0f, 0x06, 0xfe, 0x28,
5663 0x10, 0x69, 0x06, 0xfe, 0x60, 0x13, 0x98, 0xfe, 0xc8, 0x00, 0x96, 0xf2,
5664 0x09, 0xfe, 0xc8, 0x00, 0x18, 0x59, 0x0f, 0x06, 0x88, 0x98, 0xfe, 0x90,
5665 0x01, 0x7a, 0xfe, 0x42, 0x15, 0x91, 0xe4, 0xfe, 0x43, 0xf4, 0x9f, 0xfe,
5666 0x56, 0xf0, 0xfe, 0x54, 0x15, 0xfe, 0x04, 0xf4, 0x71, 0xfe, 0x43, 0xf4,
5667 0x9e, 0xfe, 0xf3, 0x10, 0xfe, 0x40, 0x5c, 0x01, 0xfe, 0x16, 0x14, 0x1e,
5668 0x43, 0xec, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4, 0x6e, 0x7a, 0xfe, 0x90,
5669 0x15, 0xc4, 0x6e, 0xfe, 0x1c, 0x10, 0xfe, 0x00, 0x17, 0xfe, 0x4d, 0xe4,
5670 0xcc, 0x7a, 0xfe, 0x90, 0x15, 0xc4, 0xcc, 0x88, 0x51, 0x21, 0xfe, 0x4d,
5671 0xf4, 0x00, 0xe9, 0x91, 0x0f, 0x06, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58,
5672 0x04, 0x51, 0x0f, 0x0a, 0x04, 0x16, 0x06, 0x01, 0x0b, 0x26, 0xf3, 0x16,
5673 0x0a, 0x01, 0x0b, 0x26, 0xf3, 0x16, 0x19, 0x01, 0x0b, 0x26, 0xf3, 0x76,
5674 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x04, 0x16, 0x06, 0x01, 0x0b, 0x26, 0xb1,
5675 0x16, 0x19, 0x01, 0x0b, 0x26, 0xb1, 0x16, 0x06, 0x01, 0x0b, 0x26, 0xb1,
5676 0xfe, 0x89, 0x49, 0x01, 0x0b, 0x26, 0xb1, 0x76, 0xfe, 0x89, 0x4a, 0x01,
5677 0x0b, 0x04, 0x51, 0x04, 0x22, 0xd3, 0x07, 0x06, 0xfe, 0x48, 0x13, 0xb8,
5678 0x13, 0xd3, 0xfe, 0x49, 0xf4, 0x00, 0x4d, 0x76, 0xa9, 0x67, 0xfe, 0x01,
5679 0xec, 0xfe, 0x27, 0x01, 0xfe, 0x89, 0x48, 0xff, 0x02, 0x00, 0x10, 0x27,
5680 0xfe, 0x2e, 0x16, 0x32, 0x07, 0xfe, 0xe3, 0x00, 0xfe, 0x20, 0x13, 0x1d,
5681 0xfe, 0x52, 0x16, 0x21, 0x13, 0xd4, 0x01, 0x4b, 0x22, 0xd4, 0x07, 0x06,
5682 0x4e, 0x08, 0x54, 0x06, 0x37, 0x04, 0x09, 0x48, 0x01, 0x0e, 0xfb, 0x8e,
5683 0x07, 0x11, 0xae, 0x09, 0x84, 0x01, 0x0e, 0x8e, 0x09, 0x5d, 0x01, 0xa8,
5684 0x04, 0x09, 0x84, 0x01, 0x0e, 0x8e, 0xfe, 0x80, 0xe7, 0x11, 0x07, 0x11,
5685 0x8a, 0xfe, 0x45, 0x58, 0x01, 0xf0, 0x8e, 0x04, 0x09, 0x48, 0x01, 0x0e,
5686 0x8e, 0x09, 0x5d, 0x01, 0xa8, 0x04, 0x09, 0x48, 0x01, 0x0e, 0xfe, 0x80,
5687 0x80, 0xfe, 0x80, 0x4c, 0xfe, 0x49, 0xe4, 0x11, 0xae, 0x09, 0x84, 0x01,
5688 0x0e, 0xfe, 0x80, 0x4c, 0x09, 0x5d, 0x01, 0x87, 0x04, 0x18, 0x11, 0x75,
5689 0x6c, 0xfe, 0x60, 0x01, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x24,
5690 0x1c, 0xfe, 0x1d, 0xf7, 0x1b, 0x97, 0xfe, 0xee, 0x16, 0x01, 0xfe, 0xf4,
5691 0x17, 0xad, 0x9a, 0x1b, 0x6c, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x04,
5692 0xb9, 0x23, 0xfe, 0xde, 0x16, 0xfe, 0xda, 0x10, 0x18, 0x11, 0x75, 0x03,
5693 0xfe, 0x64, 0x01, 0xfe, 0x00, 0xf4, 0x1f, 0xfe, 0x18, 0x58, 0x03, 0xfe,
5694 0x66, 0x01, 0xfe, 0x19, 0x58, 0x9a, 0x1f, 0xfe, 0x3c, 0x90, 0xfe, 0x30,
5695 0xf4, 0x06, 0xfe, 0x3c, 0x50, 0x6c, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79,
5696 0xfe, 0x1c, 0xf7, 0x1f, 0x97, 0xfe, 0x38, 0x17, 0xfe, 0xb6, 0x14, 0x35,
5697 0x04, 0xb9, 0x23, 0xfe, 0x10, 0x17, 0xfe, 0x9c, 0x10, 0x18, 0x11, 0x75,
5698 0xfe, 0x83, 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x1d, 0xf7,
5699 0x2e, 0x97, 0xfe, 0x5a, 0x17, 0xfe, 0x94, 0x14, 0xec, 0x9a, 0x2e, 0x6c,
5700 0x1a, 0xfe, 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0x04, 0xb9, 0x23, 0xfe,
5701 0x4e, 0x17, 0xfe, 0x6c, 0x10, 0x18, 0x11, 0x75, 0xfe, 0x30, 0xbc, 0xfe,
5702 0xb2, 0xbc, 0x9a, 0xcb, 0x6c, 0x1a, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, 0xf7,
5703 0xcb, 0x97, 0xfe, 0x92, 0x17, 0xfe, 0x5c, 0x14, 0x35, 0x04, 0xb9, 0x23,
5704 0xfe, 0x7e, 0x17, 0xfe, 0x42, 0x10, 0xfe, 0x02, 0xf6, 0x11, 0x75, 0xfe,
5705 0x18, 0xfe, 0x60, 0xfe, 0x19, 0xfe, 0x61, 0xfe, 0x03, 0xa1, 0xfe, 0x1d,
5706 0xf7, 0x5b, 0x97, 0xfe, 0xb8, 0x17, 0xfe, 0x36, 0x14, 0xfe, 0x1c, 0x13,
5707 0x9a, 0x5b, 0x41, 0xfe, 0x83, 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7,
5708 0x11, 0xfe, 0x81, 0xe7, 0x11, 0x12, 0xfe, 0xdd, 0x00, 0x6a, 0x2a, 0x04,
5709 0x6a, 0x2a, 0xfe, 0x12, 0x45, 0x23, 0xfe, 0xa8, 0x17, 0x15, 0x06, 0x39,
5710 0xa0, 0xb4, 0x02, 0x2b, 0xfe, 0x39, 0xf0, 0xfe, 0xfc, 0x17, 0x21, 0x04,
5711 0xfe, 0x7e, 0x18, 0x1e, 0x19, 0x66, 0x0f, 0x0d, 0x04, 0x75, 0x03, 0xd2,
5712 0x1e, 0x06, 0xfe, 0xef, 0x12, 0xfe, 0xe1, 0x10, 0x7c, 0x6f, 0x4f, 0x32,
5713 0x07, 0x2f, 0xfe, 0x3c, 0x13, 0xf1, 0xfe, 0x42, 0x13, 0x42, 0x92, 0x09,
5714 0x48, 0x01, 0x0e, 0xbb, 0xeb, 0xfe, 0x41, 0x48, 0xfe, 0x45, 0x48, 0x01,
5715 0xf0, 0xfe, 0x00, 0xcc, 0xbb, 0xfe, 0xf3, 0x13, 0x43, 0x78, 0x07, 0x11,
5716 0xac, 0x09, 0x84, 0x01, 0x0e, 0xfe, 0x80, 0x4c, 0x01, 0x73, 0xfe, 0x16,
5717 0x10, 0x07, 0x82, 0x8b, 0xfe, 0x40, 0x14, 0xfe, 0x24, 0x12, 0xfe, 0x14,
5718 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0x1c, 0x18, 0x18, 0x0a, 0x04, 0xfe, 0x9c,
5719 0xe7, 0x0a, 0x10, 0xfe, 0x15, 0x00, 0x64, 0x79, 0x2a, 0x01, 0xe3, 0x18,
5720 0x06, 0x04, 0x42, 0x92, 0x08, 0x54, 0x1b, 0x37, 0x12, 0x2f, 0x01, 0x73,
5721 0x18, 0x06, 0x04, 0xfe, 0x38, 0x90, 0xfe, 0xba, 0x90, 0x3a, 0xce, 0x3b,
5722 0xcf, 0xfe, 0x48, 0x55, 0x35, 0xfe, 0xc9, 0x55, 0x04, 0x22, 0xa3, 0x77,
5723 0x13, 0xa3, 0x04, 0x09, 0xa4, 0x01, 0x0e, 0xfe, 0x41, 0x48, 0x09, 0x46,
5724 0x01, 0x0e, 0xfe, 0x49, 0x44, 0x17, 0xfe, 0xe8, 0x18, 0x77, 0x78, 0x04,
5725 0x09, 0x48, 0x01, 0x0e, 0x07, 0x11, 0x4e, 0x09, 0x5d, 0x01, 0xa8, 0x09,
5726 0x46, 0x01, 0x0e, 0x77, 0x78, 0x04, 0xfe, 0x4e, 0xe4, 0x19, 0x6b, 0xfe,
5727 0x1c, 0x19, 0x03, 0xfe, 0x90, 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10,
5728 0xfe, 0x4e, 0xe4, 0xc9, 0x6b, 0xfe, 0x2e, 0x19, 0x03, 0xfe, 0x92, 0x00,
5729 0xfe, 0x02, 0xe6, 0x1a, 0xe5, 0xfe, 0x4e, 0xe4, 0xfe, 0x0b, 0x00, 0x6b,
5730 0xfe, 0x40, 0x19, 0x03, 0xfe, 0x94, 0x00, 0xfe, 0x02, 0xe6, 0x1f, 0xfe,
5731 0x08, 0x10, 0x03, 0xfe, 0x96, 0x00, 0xfe, 0x02, 0xe6, 0x6d, 0xfe, 0x4e,
5732 0x45, 0xea, 0xba, 0xff, 0x04, 0x68, 0x54, 0xe7, 0x1e, 0x6e, 0xfe, 0x08,
5733 0x1c, 0xfe, 0x67, 0x19, 0xfe, 0x0a, 0x1c, 0xfe, 0x1a, 0xf4, 0xfe, 0x00,
5734 0x04, 0xea, 0xfe, 0x48, 0xf4, 0x19, 0x7a, 0xfe, 0x74, 0x19, 0x0f, 0x19,
5735 0x04, 0x07, 0x7e, 0xfe, 0x5a, 0xf0, 0xfe, 0x84, 0x19, 0x25, 0xfe, 0x09,
5736 0x00, 0xfe, 0x34, 0x10, 0x07, 0x1a, 0xfe, 0x5a, 0xf0, 0xfe, 0x92, 0x19,
5737 0x25, 0xca, 0xfe, 0x26, 0x10, 0x07, 0x19, 0x66, 0x25, 0x6d, 0xe5, 0x07,
5738 0x0a, 0x66, 0x25, 0x9e, 0xfe, 0x0e, 0x10, 0x07, 0x06, 0x66, 0x25, 0x59,
5739 0xa9, 0xb8, 0x04, 0x15, 0xfe, 0x09, 0x00, 0x01, 0x36, 0xfe, 0x04, 0xfe,
5740 0x81, 0x03, 0x83, 0xfe, 0x40, 0x5c, 0x04, 0x1c, 0xf7, 0xfe, 0x14, 0xf0,
5741 0x0b, 0x27, 0xfe, 0xd6, 0x19, 0x1c, 0xf7, 0x7b, 0xf7, 0xfe, 0x82, 0xf0,
5742 0xfe, 0xda, 0x19, 0x04, 0xff, 0xcc, 0x00, 0x00,
5743};
5744
5745static unsigned short _adv_asc38C0800_size = sizeof(_adv_asc38C0800_buf); /* 0x14E1 */
5746static ADV_DCNT _adv_asc38C0800_chksum = 0x050D3FD8UL; /* Expanded little-endian checksum. */
5747
5748/* Microcode buffer is kept after initialization for error recovery. */
5749static unsigned char _adv_asc38C1600_buf[] = {
5750 0x00, 0x00, 0x00, 0xf2, 0x00, 0x16, 0x00, 0xfc, 0x00, 0x10, 0x00, 0xf0,
5751 0x18, 0xe4, 0x01, 0x00, 0x04, 0x1e, 0x48, 0xe4, 0x03, 0xf6, 0xf7, 0x13,
5752 0x2e, 0x1e, 0x02, 0x00, 0x07, 0x17, 0xc0, 0x5f, 0x00, 0xfa, 0xff, 0xff,
5753 0x04, 0x00, 0x00, 0xf6, 0x09, 0xe7, 0x82, 0xe7, 0x85, 0xf0, 0x86, 0xf0,
5754 0x4e, 0x10, 0x9e, 0xe7, 0xff, 0x00, 0x55, 0xf0, 0x01, 0xf6, 0x03, 0x00,
5755 0x98, 0x57, 0x01, 0xe6, 0x00, 0xea, 0x00, 0xec, 0x01, 0xfa, 0x18, 0xf4,
5756 0x08, 0x00, 0xf0, 0x1d, 0x38, 0x54, 0x32, 0xf0, 0x10, 0x00, 0xc2, 0x0e,
5757 0x1e, 0xf0, 0xd5, 0xf0, 0xbc, 0x00, 0x4b, 0xe4, 0x00, 0xe6, 0xb1, 0xf0,
5758 0xb4, 0x00, 0x02, 0x13, 0x3e, 0x1c, 0xc8, 0x47, 0x3e, 0x00, 0xd8, 0x01,
5759 0x06, 0x13, 0x0c, 0x1c, 0x5e, 0x1e, 0x00, 0x57, 0xc8, 0x57, 0x01, 0xfc,
5760 0xbc, 0x0e, 0xa2, 0x12, 0xb9, 0x54, 0x00, 0x80, 0x62, 0x0a, 0x5a, 0x12,
5761 0xc8, 0x15, 0x3e, 0x1e, 0x18, 0x40, 0xbd, 0x56, 0x03, 0xe6, 0x01, 0xea,
5762 0x5c, 0xf0, 0x0f, 0x00, 0x20, 0x00, 0x6c, 0x01, 0x6e, 0x01, 0x04, 0x12,
5763 0x04, 0x13, 0xbb, 0x55, 0x3c, 0x56, 0x3e, 0x57, 0x03, 0x58, 0x4a, 0xe4,
5764 0x40, 0x00, 0xb6, 0x00, 0xbb, 0x00, 0xc0, 0x00, 0x00, 0x01, 0x01, 0x01,
5765 0x3e, 0x01, 0x58, 0x0a, 0x44, 0x10, 0x0a, 0x12, 0x4c, 0x1c, 0x4e, 0x1c,
5766 0x02, 0x4a, 0x30, 0xe4, 0x05, 0xe6, 0x0c, 0x00, 0x3c, 0x00, 0x80, 0x00,
5767 0x24, 0x01, 0x3c, 0x01, 0x68, 0x01, 0x6a, 0x01, 0x70, 0x01, 0x72, 0x01,
5768 0x74, 0x01, 0x76, 0x01, 0x78, 0x01, 0x7c, 0x01, 0xc6, 0x0e, 0x0c, 0x10,
5769 0xac, 0x12, 0xae, 0x12, 0x16, 0x1a, 0x32, 0x1c, 0x6e, 0x1e, 0x02, 0x48,
5770 0x3a, 0x55, 0xc9, 0x57, 0x02, 0xee, 0x5b, 0xf0, 0x03, 0xf7, 0x06, 0xf7,
5771 0x03, 0xfc, 0x06, 0x00, 0x1e, 0x00, 0xbe, 0x00, 0xe1, 0x00, 0x0c, 0x12,
5772 0x18, 0x1a, 0x70, 0x1a, 0x30, 0x1c, 0x38, 0x1c, 0x10, 0x44, 0x00, 0x4c,
5773 0xb0, 0x57, 0x40, 0x5c, 0x4d, 0xe4, 0x04, 0xea, 0x5d, 0xf0, 0xa7, 0xf0,
5774 0x04, 0xf6, 0x02, 0xfc, 0x05, 0x00, 0x09, 0x00, 0x19, 0x00, 0x32, 0x00,
5775 0x33, 0x00, 0x34, 0x00, 0x36, 0x00, 0x98, 0x00, 0x9e, 0x00, 0xcc, 0x00,
5776 0x20, 0x01, 0x4e, 0x01, 0x79, 0x01, 0x3c, 0x09, 0x68, 0x0d, 0x02, 0x10,
5777 0x04, 0x10, 0x3a, 0x10, 0x08, 0x12, 0x0a, 0x13, 0x40, 0x16, 0x50, 0x16,
5778 0x00, 0x17, 0x4a, 0x19, 0x00, 0x4e, 0x00, 0x54, 0x01, 0x58, 0x00, 0xdc,
5779 0x05, 0xf0, 0x09, 0xf0, 0x59, 0xf0, 0xb8, 0xf0, 0x48, 0xf4, 0x0e, 0xf7,
5780 0x0a, 0x00, 0x9b, 0x00, 0x9c, 0x00, 0xa4, 0x00, 0xb5, 0x00, 0xba, 0x00,
5781 0xd0, 0x00, 0xe7, 0x00, 0xf0, 0x03, 0x69, 0x08, 0xe9, 0x09, 0x5c, 0x0c,
5782 0xb6, 0x12, 0xbc, 0x19, 0xd8, 0x1b, 0x20, 0x1c, 0x34, 0x1c, 0x36, 0x1c,
5783 0x42, 0x1d, 0x08, 0x44, 0x38, 0x44, 0x91, 0x44, 0x0a, 0x45, 0x48, 0x46,
5784 0x89, 0x48, 0x68, 0x54, 0x83, 0x55, 0x83, 0x59, 0x31, 0xe4, 0x02, 0xe6,
5785 0x07, 0xf0, 0x08, 0xf0, 0x0b, 0xf0, 0x0c, 0xf0, 0x4b, 0xf4, 0x04, 0xf8,
5786 0x05, 0xf8, 0x02, 0xfa, 0x03, 0xfa, 0x04, 0xfc, 0x05, 0xfc, 0x07, 0x00,
5787 0xa8, 0x00, 0xaa, 0x00, 0xb9, 0x00, 0xe0, 0x00, 0xe5, 0x00, 0x22, 0x01,
5788 0x26, 0x01, 0x60, 0x01, 0x7a, 0x01, 0x82, 0x01, 0xc8, 0x01, 0xca, 0x01,
5789 0x86, 0x02, 0x6a, 0x03, 0x18, 0x05, 0xb2, 0x07, 0x68, 0x08, 0x10, 0x0d,
5790 0x06, 0x10, 0x0a, 0x10, 0x0e, 0x10, 0x12, 0x10, 0x60, 0x10, 0xed, 0x10,
5791 0xf3, 0x10, 0x06, 0x12, 0x10, 0x12, 0x1e, 0x12, 0x0c, 0x13, 0x0e, 0x13,
5792 0x10, 0x13, 0xfe, 0x9c, 0xf0, 0x35, 0x05, 0xfe, 0xec, 0x0e, 0xff, 0x10,
5793 0x00, 0x00, 0xe9, 0xfe, 0x34, 0x1f, 0x00, 0xe8, 0xfe, 0x88, 0x01, 0xff,
5794 0x03, 0x00, 0x00, 0xfe, 0x93, 0x15, 0xfe, 0x0f, 0x05, 0xff, 0x38, 0x00,
5795 0x00, 0xfe, 0x57, 0x24, 0x00, 0xfe, 0x4c, 0x00, 0x65, 0xff, 0x04, 0x00,
5796 0x00, 0x1a, 0xff, 0x09, 0x00, 0x00, 0xff, 0x08, 0x01, 0x01, 0xff, 0x08,
5797 0xff, 0xff, 0xff, 0x27, 0x00, 0x00, 0xff, 0x10, 0xff, 0xff, 0xff, 0x13,
5798 0x00, 0x00, 0xfe, 0x78, 0x56, 0xfe, 0x34, 0x12, 0xff, 0x21, 0x00, 0x00,
5799 0xfe, 0x04, 0xf7, 0xe8, 0x37, 0x7d, 0x0d, 0x01, 0xfe, 0x4a, 0x11, 0xfe,
5800 0x04, 0xf7, 0xe8, 0x7d, 0x0d, 0x51, 0x37, 0xfe, 0x3d, 0xf0, 0xfe, 0x0c,
5801 0x02, 0xfe, 0x20, 0xf0, 0xbc, 0xfe, 0x91, 0xf0, 0xfe, 0xf8, 0x01, 0xfe,
5802 0x90, 0xf0, 0xfe, 0xf8, 0x01, 0xfe, 0x8f, 0xf0, 0xbc, 0x03, 0x67, 0x4d,
5803 0x05, 0xfe, 0x08, 0x0f, 0x01, 0xfe, 0x78, 0x0f, 0xfe, 0xdd, 0x12, 0x05,
5804 0xfe, 0x0e, 0x03, 0xfe, 0x28, 0x1c, 0x03, 0xfe, 0xa6, 0x00, 0xfe, 0xd1,
5805 0x12, 0x3e, 0x22, 0xfe, 0xa6, 0x00, 0xac, 0xfe, 0x48, 0xf0, 0xfe, 0x90,
5806 0x02, 0xfe, 0x49, 0xf0, 0xfe, 0xaa, 0x02, 0xfe, 0x4a, 0xf0, 0xfe, 0xc8,
5807 0x02, 0xfe, 0x46, 0xf0, 0xfe, 0x5a, 0x02, 0xfe, 0x47, 0xf0, 0xfe, 0x60,
5808 0x02, 0xfe, 0x43, 0xf0, 0xfe, 0x4e, 0x02, 0xfe, 0x44, 0xf0, 0xfe, 0x52,
5809 0x02, 0xfe, 0x45, 0xf0, 0xfe, 0x56, 0x02, 0x1c, 0x0d, 0xa2, 0x1c, 0x07,
5810 0x22, 0xb7, 0x05, 0x35, 0xfe, 0x00, 0x1c, 0xfe, 0xf1, 0x10, 0xfe, 0x02,
5811 0x1c, 0xf5, 0xfe, 0x1e, 0x1c, 0xfe, 0xe9, 0x10, 0x01, 0x5f, 0xfe, 0xe7,
5812 0x10, 0xfe, 0x06, 0xfc, 0xde, 0x0a, 0x81, 0x01, 0xa3, 0x05, 0x35, 0x1f,
5813 0x95, 0x47, 0xb8, 0x01, 0xfe, 0xe4, 0x11, 0x0a, 0x81, 0x01, 0x5c, 0xfe,
5814 0xbd, 0x10, 0x0a, 0x81, 0x01, 0x5c, 0xfe, 0xad, 0x10, 0xfe, 0x16, 0x1c,
5815 0xfe, 0x58, 0x1c, 0x1c, 0x07, 0x22, 0xb7, 0x37, 0x2a, 0x35, 0xfe, 0x3d,
5816 0xf0, 0xfe, 0x0c, 0x02, 0x2b, 0xfe, 0x9e, 0x02, 0xfe, 0x5a, 0x1c, 0xfe,
5817 0x12, 0x1c, 0xfe, 0x14, 0x1c, 0x1f, 0xfe, 0x30, 0x00, 0x47, 0xb8, 0x01,
5818 0xfe, 0xd4, 0x11, 0x1c, 0x07, 0x22, 0xb7, 0x05, 0xe9, 0x21, 0x2c, 0x09,
5819 0x1a, 0x31, 0xfe, 0x69, 0x10, 0x1c, 0x07, 0x22, 0xb7, 0xfe, 0x04, 0xec,
5820 0x2c, 0x60, 0x01, 0xfe, 0x1e, 0x1e, 0x20, 0x2c, 0xfe, 0x05, 0xf6, 0xde,
5821 0x01, 0xfe, 0x62, 0x1b, 0x01, 0x0c, 0x61, 0x4a, 0x44, 0x15, 0x56, 0x51,
5822 0x01, 0xfe, 0x9e, 0x1e, 0x01, 0xfe, 0x96, 0x1a, 0x05, 0x35, 0x0a, 0x57,
5823 0x01, 0x18, 0x09, 0x00, 0x36, 0x01, 0x85, 0xfe, 0x18, 0x10, 0xfe, 0x41,
5824 0x58, 0x0a, 0xba, 0x01, 0x18, 0xfe, 0xc8, 0x54, 0x7b, 0xfe, 0x1c, 0x03,
5825 0x01, 0xfe, 0x96, 0x1a, 0x05, 0x35, 0x37, 0x60, 0xfe, 0x02, 0xe8, 0x30,
5826 0xfe, 0xbf, 0x57, 0xfe, 0x9e, 0x43, 0xfe, 0x77, 0x57, 0xfe, 0x27, 0xf0,
5827 0xfe, 0xe4, 0x01, 0xfe, 0x07, 0x4b, 0xfe, 0x20, 0xf0, 0xbc, 0xfe, 0x40,
5828 0x1c, 0x2a, 0xeb, 0xfe, 0x26, 0xf0, 0xfe, 0x66, 0x03, 0xfe, 0xa0, 0xf0,
5829 0xfe, 0x54, 0x03, 0xfe, 0x11, 0xf0, 0xbc, 0xfe, 0xef, 0x10, 0xfe, 0x9f,
5830 0xf0, 0xfe, 0x74, 0x03, 0xfe, 0x46, 0x1c, 0x19, 0xfe, 0x11, 0x00, 0x05,
5831 0x70, 0x37, 0xfe, 0x48, 0x1c, 0xfe, 0x46, 0x1c, 0x01, 0x0c, 0x06, 0x28,
5832 0xfe, 0x18, 0x13, 0x26, 0x21, 0xb9, 0xc7, 0x20, 0xb9, 0x0a, 0x57, 0x01,
5833 0x18, 0xc7, 0x89, 0x01, 0xfe, 0xc8, 0x1a, 0x15, 0xe1, 0x2a, 0xeb, 0xfe,
5834 0x01, 0xf0, 0xeb, 0xfe, 0x82, 0xf0, 0xfe, 0xa4, 0x03, 0xfe, 0x9c, 0x32,
5835 0x15, 0xfe, 0xe4, 0x00, 0x2f, 0xfe, 0xb6, 0x03, 0x2a, 0x3c, 0x16, 0xfe,
5836 0xc6, 0x03, 0x01, 0x41, 0xfe, 0x06, 0xf0, 0xfe, 0xd6, 0x03, 0xaf, 0xa0,
5837 0xfe, 0x0a, 0xf0, 0xfe, 0xa2, 0x07, 0x05, 0x29, 0x03, 0x81, 0x1e, 0x1b,
5838 0xfe, 0x24, 0x05, 0x1f, 0x63, 0x01, 0x42, 0x8f, 0xfe, 0x70, 0x02, 0x05,
5839 0xea, 0xfe, 0x46, 0x1c, 0x37, 0x7d, 0x1d, 0xfe, 0x67, 0x1b, 0xfe, 0xbf,
5840 0x57, 0xfe, 0x77, 0x57, 0xfe, 0x48, 0x1c, 0x75, 0x01, 0xa6, 0x86, 0x0a,
5841 0x57, 0x01, 0x18, 0x09, 0x00, 0x1b, 0xec, 0x0a, 0xe1, 0x01, 0x18, 0x77,
5842 0x50, 0x40, 0x8d, 0x30, 0x03, 0x81, 0x1e, 0xf8, 0x1f, 0x63, 0x01, 0x42,
5843 0x8f, 0xfe, 0x70, 0x02, 0x05, 0xea, 0xd7, 0x99, 0xd8, 0x9c, 0x2a, 0x29,
5844 0x2f, 0xfe, 0x4e, 0x04, 0x16, 0xfe, 0x4a, 0x04, 0x7e, 0xfe, 0xa0, 0x00,
5845 0xfe, 0x9b, 0x57, 0xfe, 0x54, 0x12, 0x32, 0xff, 0x02, 0x00, 0x10, 0x01,
5846 0x08, 0x16, 0xfe, 0x02, 0x05, 0x32, 0x01, 0x08, 0x16, 0x29, 0x27, 0x25,
5847 0xee, 0xfe, 0x4c, 0x44, 0xfe, 0x58, 0x12, 0x50, 0xfe, 0x44, 0x48, 0x13,
5848 0x34, 0xfe, 0x4c, 0x54, 0x7b, 0xec, 0x60, 0x8d, 0x30, 0x01, 0xfe, 0x4e,
5849 0x1e, 0xfe, 0x48, 0x47, 0xfe, 0x7c, 0x13, 0x01, 0x0c, 0x06, 0x28, 0xfe,
5850 0x32, 0x13, 0x01, 0x43, 0x09, 0x9b, 0xfe, 0x68, 0x13, 0xfe, 0x26, 0x10,
5851 0x13, 0x34, 0xfe, 0x4c, 0x54, 0x7b, 0xec, 0x01, 0xfe, 0x4e, 0x1e, 0xfe,
5852 0x48, 0x47, 0xfe, 0x54, 0x13, 0x01, 0x0c, 0x06, 0x28, 0xa5, 0x01, 0x43,
5853 0x09, 0x9b, 0xfe, 0x40, 0x13, 0x01, 0x0c, 0x06, 0x28, 0xf9, 0x1f, 0x7f,
5854 0x01, 0x0c, 0x06, 0x07, 0x4d, 0x1f, 0xfe, 0x0d, 0x00, 0x01, 0x42, 0x8f,
5855 0xfe, 0xa4, 0x0e, 0x05, 0x29, 0x32, 0x15, 0xfe, 0xe6, 0x00, 0x0f, 0xfe,
5856 0x1c, 0x90, 0x04, 0xfe, 0x9c, 0x93, 0x3a, 0x0b, 0x0e, 0x8b, 0x02, 0x1f,
5857 0x7f, 0x01, 0x42, 0x05, 0x35, 0xfe, 0x42, 0x5b, 0x7d, 0x1d, 0xfe, 0x46,
5858 0x59, 0xfe, 0xbf, 0x57, 0xfe, 0x77, 0x57, 0x0f, 0xfe, 0x87, 0x80, 0x04,
5859 0xfe, 0x87, 0x83, 0xfe, 0xc9, 0x47, 0x0b, 0x0e, 0xd0, 0x65, 0x01, 0x0c,
5860 0x06, 0x0d, 0xfe, 0x98, 0x13, 0x0f, 0xfe, 0x20, 0x80, 0x04, 0xfe, 0xa0,
5861 0x83, 0x33, 0x0b, 0x0e, 0x09, 0x1d, 0xfe, 0x84, 0x12, 0x01, 0x38, 0x06,
5862 0x07, 0xfe, 0x70, 0x13, 0x03, 0xfe, 0xa2, 0x00, 0x1e, 0x1b, 0xfe, 0xda,
5863 0x05, 0xd0, 0x54, 0x01, 0x38, 0x06, 0x0d, 0xfe, 0x58, 0x13, 0x03, 0xfe,
5864 0xa0, 0x00, 0x1e, 0xfe, 0x50, 0x12, 0x5e, 0xff, 0x02, 0x00, 0x10, 0x2f,
5865 0xfe, 0x90, 0x05, 0x2a, 0x3c, 0xcc, 0xff, 0x02, 0x00, 0x10, 0x2f, 0xfe,
5866 0x9e, 0x05, 0x17, 0xfe, 0xf4, 0x05, 0x15, 0xfe, 0xe3, 0x00, 0x26, 0x01,
5867 0x38, 0xfe, 0x4a, 0xf0, 0xfe, 0xc0, 0x05, 0xfe, 0x49, 0xf0, 0xfe, 0xba,
5868 0x05, 0x71, 0x2e, 0xfe, 0x21, 0x00, 0xf1, 0x2e, 0xfe, 0x22, 0x00, 0xa2,
5869 0x2e, 0x4a, 0xfe, 0x09, 0x48, 0xff, 0x02, 0x00, 0x10, 0x2f, 0xfe, 0xd0,
5870 0x05, 0x17, 0xfe, 0xf4, 0x05, 0xfe, 0xe2, 0x08, 0x01, 0x38, 0x06, 0xfe,
5871 0x1c, 0x00, 0x4d, 0x01, 0xa7, 0x2e, 0x07, 0x20, 0xe4, 0x47, 0xfe, 0x27,
5872 0x01, 0x01, 0x0c, 0x06, 0x28, 0xfe, 0x24, 0x12, 0x3e, 0x01, 0x84, 0x1f,
5873 0x7f, 0x01, 0x0c, 0x06, 0x07, 0x4d, 0x1f, 0xfe, 0x0d, 0x00, 0x01, 0x42,
5874 0x8f, 0xfe, 0xa4, 0x0e, 0x05, 0x29, 0x03, 0xe6, 0x1e, 0xfe, 0xca, 0x13,
5875 0x03, 0xb6, 0x1e, 0xfe, 0x40, 0x12, 0x03, 0x66, 0x1e, 0xfe, 0x38, 0x13,
5876 0x3e, 0x01, 0x84, 0x17, 0xfe, 0x72, 0x06, 0x0a, 0x07, 0x01, 0x38, 0x06,
5877 0x24, 0xfe, 0x02, 0x12, 0x4f, 0x01, 0xfe, 0x56, 0x19, 0x16, 0xfe, 0x68,
5878 0x06, 0x15, 0x82, 0x01, 0x41, 0x15, 0xe2, 0x03, 0x66, 0x8a, 0x10, 0x66,
5879 0x03, 0x9a, 0x1e, 0xfe, 0x70, 0x12, 0x03, 0x55, 0x1e, 0xfe, 0x68, 0x13,
5880 0x01, 0xc6, 0x09, 0x12, 0x48, 0xfe, 0x92, 0x06, 0x2e, 0x12, 0x01, 0xfe,
5881 0xac, 0x1d, 0xfe, 0x43, 0x48, 0x62, 0x80, 0x13, 0x58, 0xff, 0x02, 0x00,
5882 0x57, 0x52, 0xad, 0x23, 0x3f, 0x4e, 0x62, 0x49, 0x3e, 0x01, 0x84, 0x17,
5883 0xfe, 0xea, 0x06, 0x01, 0x38, 0x06, 0x12, 0xf7, 0x45, 0x0a, 0x95, 0x01,
5884 0xfe, 0x84, 0x19, 0x16, 0xfe, 0xe0, 0x06, 0x15, 0x82, 0x01, 0x41, 0x15,
5885 0xe2, 0x03, 0x55, 0x8a, 0x10, 0x55, 0x1c, 0x07, 0x01, 0x84, 0xfe, 0xae,
5886 0x10, 0x03, 0x6f, 0x1e, 0xfe, 0x9e, 0x13, 0x3e, 0x01, 0x84, 0x03, 0x9a,
5887 0x1e, 0xfe, 0x1a, 0x12, 0x01, 0x38, 0x06, 0x12, 0xfc, 0x01, 0xc6, 0x01,
5888 0xfe, 0xac, 0x1d, 0xfe, 0x43, 0x48, 0x62, 0x80, 0xf0, 0x45, 0x0a, 0x95,
5889 0x03, 0xb6, 0x1e, 0xf8, 0x01, 0x38, 0x06, 0x24, 0x36, 0xfe, 0x02, 0xf6,
5890 0x07, 0x71, 0x78, 0x8c, 0x00, 0x4d, 0x62, 0x49, 0x3e, 0x2d, 0x93, 0x4e,
5891 0xd0, 0x0d, 0x17, 0xfe, 0x9a, 0x07, 0x01, 0xfe, 0xc0, 0x19, 0x16, 0xfe,
5892 0x90, 0x07, 0x26, 0x20, 0x9e, 0x15, 0x82, 0x01, 0x41, 0x15, 0xe2, 0x21,
5893 0x9e, 0x09, 0x07, 0xfb, 0x03, 0xe6, 0xfe, 0x58, 0x57, 0x10, 0xe6, 0x05,
5894 0xfe, 0x2a, 0x06, 0x03, 0x6f, 0x8a, 0x10, 0x6f, 0x1c, 0x07, 0x01, 0x84,
5895 0xfe, 0x9c, 0x32, 0x5f, 0x75, 0x01, 0xa6, 0x86, 0x15, 0xfe, 0xe2, 0x00,
5896 0x2f, 0xed, 0x2a, 0x3c, 0xfe, 0x0a, 0xf0, 0xfe, 0xce, 0x07, 0xae, 0xfe,
5897 0x96, 0x08, 0xfe, 0x06, 0xf0, 0xfe, 0x9e, 0x08, 0xaf, 0xa0, 0x05, 0x29,
5898 0x01, 0x0c, 0x06, 0x0d, 0xfe, 0x2e, 0x12, 0x14, 0x1d, 0x01, 0x08, 0x14,
5899 0x00, 0x01, 0x08, 0x14, 0x00, 0x01, 0x08, 0x14, 0x00, 0x01, 0x08, 0xfe,
5900 0x99, 0xa4, 0x01, 0x08, 0x14, 0x00, 0x05, 0xfe, 0xc6, 0x09, 0x01, 0x76,
5901 0x06, 0x12, 0xfe, 0x3a, 0x12, 0x01, 0x0c, 0x06, 0x12, 0xfe, 0x30, 0x13,
5902 0x14, 0xfe, 0x1b, 0x00, 0x01, 0x08, 0x14, 0x00, 0x01, 0x08, 0x14, 0x00,
5903 0x01, 0x08, 0x14, 0x00, 0x01, 0x08, 0x14, 0x07, 0x01, 0x08, 0x14, 0x00,
5904 0x05, 0xef, 0x7c, 0x4a, 0x78, 0x4f, 0x0f, 0xfe, 0x9a, 0x81, 0x04, 0xfe,
5905 0x9a, 0x83, 0xfe, 0xcb, 0x47, 0x0b, 0x0e, 0x2d, 0x28, 0x48, 0xfe, 0x6c,
5906 0x08, 0x0a, 0x28, 0xfe, 0x09, 0x6f, 0xca, 0xfe, 0xca, 0x45, 0xfe, 0x32,
5907 0x12, 0x53, 0x63, 0x4e, 0x7c, 0x97, 0x2f, 0xfe, 0x7e, 0x08, 0x2a, 0x3c,
5908 0xfe, 0x0a, 0xf0, 0xfe, 0x6c, 0x08, 0xaf, 0xa0, 0xae, 0xfe, 0x96, 0x08,
5909 0x05, 0x29, 0x01, 0x41, 0x05, 0xed, 0x14, 0x24, 0x05, 0xed, 0xfe, 0x9c,
5910 0xf7, 0x9f, 0x01, 0xfe, 0xae, 0x1e, 0xfe, 0x18, 0x58, 0x01, 0xfe, 0xbe,
5911 0x1e, 0xfe, 0x99, 0x58, 0xfe, 0x78, 0x18, 0xfe, 0xf9, 0x18, 0x8e, 0xfe,
5912 0x16, 0x09, 0x10, 0x6a, 0x22, 0x6b, 0x01, 0x0c, 0x61, 0x54, 0x44, 0x21,
5913 0x2c, 0x09, 0x1a, 0xf8, 0x77, 0x01, 0xfe, 0x7e, 0x1e, 0x47, 0x2c, 0x7a,
5914 0x30, 0xf0, 0xfe, 0x83, 0xe7, 0xfe, 0x3f, 0x00, 0x71, 0xfe, 0x03, 0x40,
5915 0x01, 0x0c, 0x61, 0x65, 0x44, 0x01, 0xc2, 0xc8, 0xfe, 0x1f, 0x40, 0x20,
5916 0x6e, 0x01, 0xfe, 0x6a, 0x16, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0xfe,
5917 0x44, 0x51, 0xfe, 0xc6, 0x51, 0xfe, 0x10, 0x10, 0x01, 0xfe, 0xce, 0x1e,
5918 0x01, 0xfe, 0xde, 0x1e, 0x10, 0x68, 0x22, 0x69, 0x01, 0xfe, 0xee, 0x1e,
5919 0x01, 0xfe, 0xfe, 0x1e, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x10, 0x4b,
5920 0x22, 0x4c, 0xfe, 0x8a, 0x10, 0x01, 0x0c, 0x06, 0x54, 0xfe, 0x50, 0x12,
5921 0x01, 0xfe, 0xae, 0x1e, 0x01, 0xfe, 0xbe, 0x1e, 0x10, 0x6a, 0x22, 0x6b,
5922 0x01, 0x0c, 0x06, 0x65, 0x4e, 0x01, 0xc2, 0x0f, 0xfe, 0x1f, 0x80, 0x04,
5923 0xfe, 0x9f, 0x83, 0x33, 0x0b, 0x0e, 0x20, 0x6e, 0x0f, 0xfe, 0x44, 0x90,
5924 0x04, 0xfe, 0xc4, 0x93, 0x3a, 0x0b, 0xfe, 0xc6, 0x90, 0x04, 0xfe, 0xc6,
5925 0x93, 0x79, 0x0b, 0x0e, 0x10, 0x6c, 0x22, 0x6d, 0x01, 0xfe, 0xce, 0x1e,
5926 0x01, 0xfe, 0xde, 0x1e, 0x10, 0x68, 0x22, 0x69, 0x0f, 0xfe, 0x40, 0x90,
5927 0x04, 0xfe, 0xc0, 0x93, 0x3a, 0x0b, 0xfe, 0xc2, 0x90, 0x04, 0xfe, 0xc2,
5928 0x93, 0x79, 0x0b, 0x0e, 0x10, 0x4b, 0x22, 0x4c, 0x10, 0x64, 0x22, 0x34,
5929 0x01, 0x0c, 0x61, 0x24, 0x44, 0x37, 0x13, 0xfe, 0x4e, 0x11, 0x2f, 0xfe,
5930 0xde, 0x09, 0xfe, 0x9e, 0xf0, 0xfe, 0xf2, 0x09, 0xfe, 0x01, 0x48, 0x1b,
5931 0x3c, 0x37, 0x88, 0xf5, 0xd4, 0xfe, 0x1e, 0x0a, 0xd5, 0xfe, 0x42, 0x0a,
5932 0xd2, 0xfe, 0x1e, 0x0a, 0xd3, 0xfe, 0x42, 0x0a, 0xae, 0xfe, 0x12, 0x0a,
5933 0xfe, 0x06, 0xf0, 0xfe, 0x18, 0x0a, 0xaf, 0xa0, 0x05, 0x29, 0x01, 0x41,
5934 0xfe, 0xc1, 0x10, 0x14, 0x24, 0xfe, 0xc1, 0x10, 0x01, 0x76, 0x06, 0x07,
5935 0xfe, 0x14, 0x12, 0x01, 0x76, 0x06, 0x0d, 0x5d, 0x01, 0x0c, 0x06, 0x0d,
5936 0xfe, 0x74, 0x12, 0xfe, 0x2e, 0x1c, 0x05, 0xfe, 0x1a, 0x0c, 0x01, 0x76,
5937 0x06, 0x07, 0x5d, 0x01, 0x76, 0x06, 0x0d, 0x41, 0xfe, 0x2c, 0x1c, 0xfe,
5938 0xaa, 0xf0, 0xfe, 0xce, 0x0a, 0xfe, 0xac, 0xf0, 0xfe, 0x66, 0x0a, 0xfe,
5939 0x92, 0x10, 0xc4, 0xf6, 0xfe, 0xad, 0xf0, 0xfe, 0x72, 0x0a, 0x05, 0xfe,
5940 0x1a, 0x0c, 0xc5, 0xfe, 0xe7, 0x10, 0xfe, 0x2b, 0xf0, 0xbf, 0xfe, 0x6b,
5941 0x18, 0x23, 0xfe, 0x00, 0xfe, 0xfe, 0x1c, 0x12, 0xac, 0xfe, 0xd2, 0xf0,
5942 0xbf, 0xfe, 0x76, 0x18, 0x23, 0x1d, 0x1b, 0xbf, 0x03, 0xe3, 0x23, 0x07,
5943 0x1b, 0xbf, 0xd4, 0x5b, 0xd5, 0x5b, 0xd2, 0x5b, 0xd3, 0x5b, 0xc4, 0xc5,
5944 0xfe, 0xa9, 0x10, 0x75, 0x5e, 0x32, 0x1f, 0x7f, 0x01, 0x42, 0x19, 0xfe,
5945 0x35, 0x00, 0xfe, 0x01, 0xf0, 0x70, 0x19, 0x98, 0x05, 0x70, 0xfe, 0x74,
5946 0x18, 0x23, 0xfe, 0x00, 0xf8, 0x1b, 0x5b, 0x7d, 0x12, 0x01, 0xfe, 0x78,
5947 0x0f, 0x4d, 0x01, 0xfe, 0x96, 0x1a, 0x21, 0x30, 0x77, 0x7d, 0x1d, 0x05,
5948 0x5b, 0x01, 0x0c, 0x06, 0x0d, 0x2b, 0xfe, 0xe2, 0x0b, 0x01, 0x0c, 0x06,
5949 0x54, 0xfe, 0xa6, 0x12, 0x01, 0x0c, 0x06, 0x24, 0xfe, 0x88, 0x13, 0x21,
5950 0x6e, 0xc7, 0x01, 0xfe, 0x1e, 0x1f, 0x0f, 0xfe, 0x83, 0x80, 0x04, 0xfe,
5951 0x83, 0x83, 0xfe, 0xc9, 0x47, 0x0b, 0x0e, 0xfe, 0xc8, 0x44, 0xfe, 0x42,
5952 0x13, 0x0f, 0xfe, 0x04, 0x91, 0x04, 0xfe, 0x84, 0x93, 0xfe, 0xca, 0x57,
5953 0x0b, 0xfe, 0x86, 0x91, 0x04, 0xfe, 0x86, 0x93, 0xfe, 0xcb, 0x57, 0x0b,
5954 0x0e, 0x7a, 0x30, 0xfe, 0x40, 0x59, 0xfe, 0xc1, 0x59, 0x8e, 0x40, 0x03,
5955 0x6a, 0x3b, 0x6b, 0x10, 0x97, 0x22, 0x98, 0xd9, 0x6a, 0xda, 0x6b, 0x01,
5956 0xc2, 0xc8, 0x7a, 0x30, 0x20, 0x6e, 0xdb, 0x64, 0xdc, 0x34, 0x91, 0x6c,
5957 0x7e, 0x6d, 0xfe, 0x44, 0x55, 0xfe, 0xe5, 0x55, 0xfe, 0x04, 0xfa, 0x64,
5958 0xfe, 0x05, 0xfa, 0x34, 0x01, 0xfe, 0x6a, 0x16, 0xa3, 0x26, 0x10, 0x97,
5959 0x10, 0x98, 0x91, 0x6c, 0x7e, 0x6d, 0xfe, 0x14, 0x10, 0x01, 0x0c, 0x06,
5960 0x24, 0x1b, 0x40, 0x91, 0x4b, 0x7e, 0x4c, 0x01, 0x0c, 0x06, 0xfe, 0xf7,
5961 0x00, 0x44, 0x03, 0x68, 0x3b, 0x69, 0xfe, 0x10, 0x58, 0xfe, 0x91, 0x58,
5962 0xfe, 0x14, 0x59, 0xfe, 0x95, 0x59, 0x05, 0x5b, 0x01, 0x0c, 0x06, 0x24,
5963 0x1b, 0x40, 0x01, 0x0c, 0x06, 0xfe, 0xf7, 0x00, 0x44, 0x78, 0x01, 0xfe,
5964 0x8e, 0x1e, 0x4f, 0x0f, 0xfe, 0x10, 0x90, 0x04, 0xfe, 0x90, 0x93, 0x3a,
5965 0x0b, 0xfe, 0x92, 0x90, 0x04, 0xfe, 0x92, 0x93, 0x79, 0x0b, 0x0e, 0xfe,
5966 0xbd, 0x10, 0x01, 0x43, 0x09, 0xbb, 0x1b, 0xfe, 0x6e, 0x0a, 0x15, 0xbb,
5967 0x01, 0x0c, 0x06, 0x0d, 0xfe, 0x14, 0x13, 0x03, 0x4b, 0x3b, 0x4c, 0x8e,
5968 0xfe, 0x6e, 0x0a, 0xfe, 0x0c, 0x58, 0xfe, 0x8d, 0x58, 0x05, 0x5b, 0x26,
5969 0x3e, 0x0f, 0xfe, 0x19, 0x80, 0x04, 0xfe, 0x99, 0x83, 0x33, 0x0b, 0x0e,
5970 0xfe, 0xe5, 0x10, 0x01, 0x0c, 0x06, 0x0d, 0xfe, 0x1a, 0x12, 0xfe, 0x6c,
5971 0x19, 0xfe, 0x19, 0x41, 0xfe, 0x6b, 0x18, 0xac, 0xfe, 0xd1, 0xf0, 0xef,
5972 0x1f, 0x92, 0x01, 0x42, 0x19, 0xfe, 0x44, 0x00, 0xfe, 0x90, 0x10, 0xfe,
5973 0x6c, 0x19, 0xd9, 0x4b, 0xfe, 0xed, 0x19, 0xda, 0x4c, 0xfe, 0x0c, 0x51,
5974 0xfe, 0x8e, 0x51, 0xfe, 0x6b, 0x18, 0x23, 0xfe, 0x00, 0xff, 0x31, 0xfe,
5975 0x76, 0x10, 0xac, 0xfe, 0xd2, 0xf0, 0xfe, 0xba, 0x0c, 0xfe, 0x76, 0x18,
5976 0x23, 0x1d, 0x5d, 0x03, 0xe3, 0x23, 0x07, 0xfe, 0x08, 0x13, 0x19, 0xfe,
5977 0x16, 0x00, 0x05, 0x70, 0xfe, 0xd1, 0xf0, 0xfe, 0xcc, 0x0c, 0x1f, 0x92,
5978 0x01, 0x42, 0x19, 0xfe, 0x17, 0x00, 0x5c, 0xfe, 0xce, 0xf0, 0xfe, 0xd2,
5979 0x0c, 0xfe, 0x3e, 0x10, 0xfe, 0xcd, 0xf0, 0xfe, 0xde, 0x0c, 0x19, 0xfe,
5980 0x22, 0x00, 0x05, 0x70, 0xfe, 0xcb, 0xf0, 0xfe, 0xea, 0x0c, 0x19, 0xfe,
5981 0x24, 0x00, 0x05, 0x70, 0xfe, 0xd0, 0xf0, 0xfe, 0xf4, 0x0c, 0x19, 0x94,
5982 0xfe, 0x1c, 0x10, 0xfe, 0xcf, 0xf0, 0xfe, 0xfe, 0x0c, 0x19, 0x4a, 0xf3,
5983 0xfe, 0xcc, 0xf0, 0xef, 0x01, 0x76, 0x06, 0x24, 0x4d, 0x19, 0xfe, 0x12,
5984 0x00, 0x37, 0x13, 0xfe, 0x4e, 0x11, 0x2f, 0xfe, 0x16, 0x0d, 0xfe, 0x9e,
5985 0xf0, 0xfe, 0x2a, 0x0d, 0xfe, 0x01, 0x48, 0x1b, 0x3c, 0x37, 0x88, 0xf5,
5986 0xd4, 0x29, 0xd5, 0x29, 0xd2, 0x29, 0xd3, 0x29, 0x37, 0xfe, 0x9c, 0x32,
5987 0x2f, 0xfe, 0x3e, 0x0d, 0x2a, 0x3c, 0xae, 0xfe, 0x62, 0x0d, 0xaf, 0xa0,
5988 0xd4, 0x9f, 0xd5, 0x9f, 0xd2, 0x9f, 0xd3, 0x9f, 0x05, 0x29, 0x01, 0x41,
5989 0xfe, 0xd3, 0x10, 0x15, 0xfe, 0xe8, 0x00, 0xc4, 0xc5, 0x75, 0xd7, 0x99,
5990 0xd8, 0x9c, 0xfe, 0x89, 0xf0, 0x29, 0x27, 0x25, 0xbe, 0xd7, 0x99, 0xd8,
5991 0x9c, 0x2f, 0xfe, 0x8c, 0x0d, 0x16, 0x29, 0x27, 0x25, 0xbd, 0xfe, 0x01,
5992 0x48, 0xa4, 0x19, 0xfe, 0x42, 0x00, 0x05, 0x70, 0x90, 0x07, 0xfe, 0x81,
5993 0x49, 0x1b, 0xfe, 0x64, 0x0e, 0x01, 0x0c, 0x06, 0x0d, 0xfe, 0x44, 0x13,
5994 0x19, 0x00, 0x2d, 0x0d, 0xfe, 0x54, 0x12, 0x2d, 0xfe, 0x28, 0x00, 0x2b,
5995 0xfe, 0xda, 0x0e, 0x0a, 0x57, 0x01, 0x18, 0x09, 0x00, 0x36, 0x46, 0xfe,
5996 0x28, 0x00, 0xfe, 0xfa, 0x10, 0x01, 0xfe, 0xf4, 0x1c, 0x01, 0xfe, 0x00,
5997 0x1d, 0x0a, 0xba, 0x01, 0xfe, 0x58, 0x10, 0x40, 0x15, 0x56, 0x01, 0x85,
5998 0x05, 0x35, 0x19, 0xfe, 0x44, 0x00, 0x2d, 0x0d, 0xf7, 0x46, 0x0d, 0xfe,
5999 0xcc, 0x10, 0x01, 0xa7, 0x46, 0x0d, 0xfe, 0xc2, 0x10, 0x01, 0xa7, 0x0f,
6000 0xfe, 0x19, 0x82, 0x04, 0xfe, 0x99, 0x83, 0xfe, 0xcc, 0x47, 0x0b, 0x0e,
6001 0xfe, 0x34, 0x46, 0xa5, 0x46, 0x0d, 0x19, 0xfe, 0x43, 0x00, 0xfe, 0xa2,
6002 0x10, 0x01, 0x0c, 0x61, 0x0d, 0x44, 0x01, 0xfe, 0xf4, 0x1c, 0x01, 0xfe,
6003 0x00, 0x1d, 0x40, 0x15, 0x56, 0x01, 0x85, 0x7d, 0x0d, 0x40, 0x51, 0x01,
6004 0xfe, 0x9e, 0x1e, 0x05, 0xfe, 0x3a, 0x03, 0x01, 0x0c, 0x06, 0x0d, 0x5d,
6005 0x46, 0x0d, 0x19, 0x00, 0xfe, 0x62, 0x10, 0x01, 0x76, 0x06, 0x12, 0xfe,
6006 0x5c, 0x12, 0x01, 0x0c, 0x06, 0x12, 0xfe, 0x52, 0x13, 0xfe, 0x1c, 0x1c,
6007 0xfe, 0x9d, 0xf0, 0xfe, 0x8e, 0x0e, 0xfe, 0x1c, 0x1c, 0xfe, 0x9d, 0xf0,
6008 0xfe, 0x94, 0x0e, 0x01, 0x0c, 0x61, 0x12, 0x44, 0xfe, 0x9f, 0x10, 0x19,
6009 0xfe, 0x15, 0x00, 0xfe, 0x04, 0xe6, 0x0d, 0x4f, 0xfe, 0x2e, 0x10, 0x19,
6010 0xfe, 0x13, 0x00, 0xfe, 0x10, 0x10, 0x19, 0xfe, 0x47, 0x00, 0xf1, 0x19,
6011 0xfe, 0x41, 0x00, 0xa2, 0x19, 0xfe, 0x24, 0x00, 0x86, 0xc4, 0xc5, 0x75,
6012 0x03, 0x81, 0x1e, 0x2b, 0xea, 0x4f, 0xfe, 0x04, 0xe6, 0x12, 0xfe, 0x9d,
6013 0x41, 0xfe, 0x1c, 0x42, 0x40, 0x01, 0xf4, 0x05, 0x35, 0xfe, 0x12, 0x1c,
6014 0x1f, 0x0d, 0x47, 0xb5, 0xc3, 0x1f, 0xfe, 0x31, 0x00, 0x47, 0xb8, 0x01,
6015 0xfe, 0xd4, 0x11, 0x05, 0xe9, 0x51, 0xfe, 0x06, 0xec, 0xe0, 0xfe, 0x0e,
6016 0x47, 0x46, 0x28, 0xfe, 0xce, 0x45, 0x31, 0x51, 0xfe, 0x06, 0xea, 0xe0,
6017 0xfe, 0x47, 0x4b, 0x45, 0xfe, 0x75, 0x57, 0x03, 0x67, 0xfe, 0x98, 0x56,
6018 0xfe, 0x38, 0x12, 0x0a, 0x5a, 0x01, 0x18, 0xfe, 0x44, 0x48, 0x60, 0x01,
6019 0x0c, 0x06, 0x28, 0xfe, 0x18, 0x13, 0x0a, 0x57, 0x01, 0x18, 0x3e, 0xfe,
6020 0x41, 0x58, 0x0a, 0xba, 0xfe, 0xfa, 0x14, 0xfe, 0x49, 0x54, 0xb0, 0xfe,
6021 0x5e, 0x0f, 0x05, 0xfe, 0x3a, 0x03, 0x0a, 0x67, 0xfe, 0xe0, 0x14, 0xfe,
6022 0x0e, 0x47, 0x46, 0x28, 0xfe, 0xce, 0x45, 0x31, 0x51, 0xfe, 0xce, 0x47,
6023 0xfe, 0xad, 0x13, 0x05, 0x35, 0x21, 0x2c, 0x09, 0x1a, 0xfe, 0x98, 0x12,
6024 0x26, 0x20, 0x96, 0x20, 0xe7, 0xfe, 0x08, 0x1c, 0xfe, 0x7c, 0x19, 0xfe,
6025 0xfd, 0x19, 0xfe, 0x0a, 0x1c, 0x03, 0xe5, 0xfe, 0x48, 0x55, 0xa5, 0x3b,
6026 0xfe, 0x62, 0x01, 0xfe, 0xc9, 0x55, 0x31, 0xfe, 0x74, 0x10, 0x01, 0xfe,
6027 0xf0, 0x1a, 0x03, 0xfe, 0x38, 0x01, 0x3b, 0xfe, 0x3a, 0x01, 0x8e, 0xfe,
6028 0x1e, 0x10, 0xfe, 0x02, 0xec, 0xe7, 0x53, 0x00, 0x36, 0xfe, 0x04, 0xec,
6029 0x2c, 0x60, 0xfe, 0x05, 0xf6, 0xfe, 0x34, 0x01, 0x01, 0xfe, 0x62, 0x1b,
6030 0x01, 0xfe, 0xce, 0x1e, 0xb2, 0x11, 0xfe, 0x18, 0x13, 0xca, 0xfe, 0x02,
6031 0xea, 0xe7, 0x53, 0x92, 0xfe, 0xc3, 0x13, 0x1f, 0x12, 0x47, 0xb5, 0xc3,
6032 0xfe, 0x2a, 0x10, 0x03, 0xfe, 0x38, 0x01, 0x23, 0xfe, 0xf0, 0xff, 0x10,
6033 0xe5, 0x03, 0xfe, 0x3a, 0x01, 0x10, 0xfe, 0x62, 0x01, 0x01, 0xfe, 0x1e,
6034 0x1e, 0x20, 0x2c, 0x15, 0x56, 0x01, 0xfe, 0x9e, 0x1e, 0x13, 0x07, 0x02,
6035 0x26, 0x02, 0x21, 0x96, 0xc7, 0x20, 0x96, 0x09, 0x92, 0xfe, 0x79, 0x13,
6036 0x1f, 0x1d, 0x47, 0xb5, 0xc3, 0xfe, 0xe1, 0x10, 0xcf, 0xfe, 0x03, 0xdc,
6037 0xfe, 0x73, 0x57, 0xfe, 0x80, 0x5d, 0x02, 0xcf, 0xfe, 0x03, 0xdc, 0xfe,
6038 0x5b, 0x57, 0xfe, 0x80, 0x5d, 0x02, 0xfe, 0x03, 0x57, 0xcf, 0x26, 0xfe,
6039 0x00, 0xcc, 0x02, 0xfe, 0x03, 0x57, 0xcf, 0x89, 0x02, 0x01, 0x0c, 0x06,
6040 0x4a, 0xfe, 0x4e, 0x13, 0x0f, 0xfe, 0x1c, 0x80, 0x04, 0xfe, 0x9c, 0x83,
6041 0x33, 0x0b, 0x0e, 0x09, 0x07, 0xfe, 0x3a, 0x13, 0x0f, 0xfe, 0x1e, 0x80,
6042 0x04, 0xfe, 0x9e, 0x83, 0x33, 0x0b, 0x0e, 0xfe, 0x2a, 0x13, 0x0f, 0xfe,
6043 0x1d, 0x80, 0x04, 0xfe, 0x9d, 0x83, 0xfe, 0xf9, 0x13, 0x0e, 0xfe, 0x1c,
6044 0x13, 0x01, 0xfe, 0xee, 0x1e, 0xac, 0xfe, 0x14, 0x13, 0x01, 0xfe, 0xfe,
6045 0x1e, 0xfe, 0x81, 0x58, 0xfa, 0x01, 0xfe, 0x0e, 0x1f, 0xfe, 0x30, 0xf4,
6046 0x0d, 0xfe, 0x3c, 0x50, 0xa2, 0x01, 0xfe, 0x92, 0x1b, 0x01, 0x43, 0x09,
6047 0x56, 0xfb, 0x01, 0xfe, 0xc8, 0x1a, 0x01, 0x0c, 0x06, 0x28, 0xa4, 0x01,
6048 0xfe, 0xf4, 0x1c, 0x01, 0xfe, 0x00, 0x1d, 0x15, 0xfe, 0xe9, 0x00, 0x01,
6049 0x0c, 0x06, 0x4a, 0xfe, 0x4e, 0x13, 0x01, 0xfe, 0x22, 0x1b, 0xfe, 0x1e,
6050 0x1c, 0x0f, 0xfe, 0x14, 0x90, 0x04, 0xfe, 0x94, 0x93, 0x3a, 0x0b, 0xfe,
6051 0x96, 0x90, 0x04, 0xfe, 0x96, 0x93, 0x79, 0x0b, 0x0e, 0x10, 0xfe, 0x64,
6052 0x01, 0x22, 0xfe, 0x66, 0x01, 0x01, 0x0c, 0x06, 0x65, 0xf9, 0x0f, 0xfe,
6053 0x03, 0x80, 0x04, 0xfe, 0x83, 0x83, 0x33, 0x0b, 0x0e, 0x77, 0xfe, 0x01,
6054 0xec, 0x2c, 0xfe, 0x80, 0x40, 0x20, 0x2c, 0x7a, 0x30, 0x15, 0xdf, 0x40,
6055 0x21, 0x2c, 0xfe, 0x00, 0x40, 0x8d, 0x2c, 0x02, 0xfe, 0x08, 0x1c, 0x03,
6056 0xfe, 0xac, 0x00, 0xfe, 0x06, 0x58, 0x03, 0xfe, 0xae, 0x00, 0xfe, 0x07,
6057 0x58, 0x03, 0xfe, 0xb0, 0x00, 0xfe, 0x08, 0x58, 0x03, 0xfe, 0xb2, 0x00,
6058 0xfe, 0x09, 0x58, 0xfe, 0x0a, 0x1c, 0x2e, 0x49, 0x20, 0xe0, 0x26, 0x10,
6059 0x66, 0x10, 0x55, 0x10, 0x6f, 0x13, 0x57, 0x52, 0x4f, 0x1c, 0x28, 0xfe,
6060 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x2b, 0xfe, 0x88, 0x11, 0x46, 0x1a, 0x13,
6061 0x5a, 0x52, 0x1c, 0x4a, 0xfe, 0x90, 0x4d, 0xfe, 0x91, 0x54, 0x2b, 0xfe,
6062 0x9e, 0x11, 0x2e, 0x1a, 0x20, 0x2c, 0x90, 0x34, 0x60, 0x21, 0x2c, 0xfe,
6063 0x00, 0x40, 0x8d, 0x2c, 0x15, 0xdf, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0,
6064 0xfe, 0xb2, 0x11, 0xfe, 0x12, 0x1c, 0x75, 0xfe, 0x14, 0x1c, 0xfe, 0x10,
6065 0x1c, 0xfe, 0x18, 0x1c, 0x02, 0x51, 0xfe, 0x0c, 0x14, 0xfe, 0x0e, 0x47,
6066 0xfe, 0x07, 0xe6, 0x28, 0xfe, 0xce, 0x47, 0xfe, 0xf5, 0x13, 0x02, 0x01,
6067 0xa7, 0x90, 0x34, 0x60, 0xfe, 0x06, 0x80, 0xfe, 0x48, 0x47, 0xfe, 0x42,
6068 0x13, 0xfe, 0x02, 0x80, 0x09, 0x56, 0xfe, 0x34, 0x13, 0x0a, 0x5a, 0x01,
6069 0x18, 0xcb, 0xfe, 0x36, 0x12, 0xfe, 0x41, 0x48, 0xfe, 0x45, 0x48, 0x01,
6070 0xfe, 0xb2, 0x16, 0xfe, 0x00, 0xcc, 0xcb, 0xfe, 0xf3, 0x13, 0x3f, 0x89,
6071 0x09, 0x1a, 0xa5, 0x0a, 0x9d, 0x01, 0x18, 0xfe, 0x80, 0x5c, 0x01, 0x85,
6072 0xf2, 0x09, 0x9b, 0xa4, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0xec,
6073 0x11, 0x02, 0xfe, 0x44, 0x58, 0x77, 0xfe, 0x01, 0xec, 0xb8, 0xfe, 0x9e,
6074 0x40, 0xfe, 0x9d, 0xe7, 0x00, 0xfe, 0x9c, 0xe7, 0x12, 0x8d, 0x30, 0x01,
6075 0xf4, 0xfe, 0xdd, 0x10, 0x37, 0xd7, 0x99, 0xd8, 0x9c, 0x27, 0x25, 0xee,
6076 0x09, 0x12, 0xfe, 0x48, 0x12, 0x09, 0x0d, 0xfe, 0x56, 0x12, 0x09, 0x1d,
6077 0xfe, 0x30, 0x12, 0x09, 0xdd, 0x1b, 0xfe, 0xc4, 0x13, 0x09, 0xfe, 0x23,
6078 0x00, 0x1b, 0xfe, 0xd0, 0x13, 0x09, 0x07, 0x1b, 0xfe, 0x34, 0x14, 0x09,
6079 0x24, 0xfe, 0x12, 0x12, 0x09, 0x00, 0x1b, 0x29, 0x1f, 0xdd, 0x01, 0x42,
6080 0xa1, 0x32, 0x01, 0x08, 0xae, 0x41, 0x02, 0x32, 0xfe, 0x62, 0x08, 0x0a,
6081 0xe1, 0x01, 0xfe, 0x58, 0x10, 0x15, 0x9b, 0x05, 0x35, 0x32, 0x01, 0x43,
6082 0x09, 0xbb, 0xfe, 0xd7, 0x13, 0x91, 0x4b, 0x7e, 0x4c, 0x8e, 0xfe, 0x80,
6083 0x13, 0x01, 0x0c, 0x06, 0x54, 0xfe, 0x72, 0x12, 0xdb, 0x64, 0xdc, 0x34,
6084 0xfe, 0x44, 0x55, 0xfe, 0xe5, 0x55, 0xb0, 0xfe, 0x4a, 0x13, 0x21, 0x6e,
6085 0xfe, 0x26, 0x13, 0x03, 0x97, 0x3b, 0x98, 0x8e, 0xfe, 0xb6, 0x0e, 0x10,
6086 0x6a, 0x22, 0x6b, 0x26, 0x10, 0x97, 0x10, 0x98, 0x01, 0xc2, 0x2e, 0x49,
6087 0x88, 0x20, 0x6e, 0x01, 0xfe, 0x6a, 0x16, 0xdb, 0x64, 0xdc, 0x34, 0xfe,
6088 0x04, 0x55, 0xfe, 0xa5, 0x55, 0xfe, 0x04, 0xfa, 0x64, 0xfe, 0x05, 0xfa,
6089 0x34, 0xfe, 0x8f, 0x10, 0x03, 0x6c, 0x3b, 0x6d, 0xfe, 0x40, 0x56, 0xfe,
6090 0xe1, 0x56, 0x10, 0x6c, 0x22, 0x6d, 0x71, 0xdb, 0x64, 0xdc, 0x34, 0xfe,
6091 0x44, 0x55, 0xfe, 0xe5, 0x55, 0x03, 0x68, 0x3b, 0x69, 0xfe, 0x00, 0x56,
6092 0xfe, 0xa1, 0x56, 0x10, 0x68, 0x22, 0x69, 0x01, 0x0c, 0x06, 0x54, 0xf9,
6093 0x21, 0x6e, 0xfe, 0x1f, 0x40, 0x03, 0x6a, 0x3b, 0x6b, 0xfe, 0x2c, 0x50,
6094 0xfe, 0xae, 0x50, 0x03, 0x6c, 0x3b, 0x6d, 0xfe, 0x44, 0x50, 0xfe, 0xc6,
6095 0x50, 0x03, 0x68, 0x3b, 0x69, 0xfe, 0x08, 0x50, 0xfe, 0x8a, 0x50, 0x03,
6096 0x4b, 0x3b, 0x4c, 0xfe, 0x40, 0x50, 0xfe, 0xc2, 0x50, 0x05, 0x73, 0x2e,
6097 0x07, 0x20, 0x9e, 0x05, 0x72, 0x32, 0x01, 0x08, 0x16, 0x3d, 0x27, 0x25,
6098 0xee, 0x09, 0x07, 0x2b, 0x3d, 0x01, 0x43, 0x09, 0xbb, 0x2b, 0x72, 0x01,
6099 0xa6, 0x23, 0x3f, 0x1b, 0x3d, 0x01, 0x0c, 0x06, 0x0d, 0xfe, 0x1e, 0x13,
6100 0x91, 0x4b, 0x7e, 0x4c, 0xfe, 0x0a, 0x55, 0x31, 0xfe, 0x8b, 0x55, 0xd9,
6101 0x4b, 0xda, 0x4c, 0xfe, 0x0c, 0x51, 0xfe, 0x8e, 0x51, 0x05, 0x72, 0x01,
6102 0xfe, 0x8e, 0x1e, 0xca, 0xfe, 0x19, 0x41, 0x05, 0x72, 0x32, 0x01, 0x08,
6103 0x2a, 0x3c, 0x16, 0xc0, 0x27, 0x25, 0xbe, 0x2d, 0x1d, 0xc0, 0x2d, 0x0d,
6104 0x83, 0x2d, 0x7f, 0x1b, 0xfe, 0x66, 0x15, 0x05, 0x3d, 0x01, 0x08, 0x2a,
6105 0x3c, 0x16, 0xc0, 0x27, 0x25, 0xbd, 0x09, 0x1d, 0x2b, 0x3d, 0x01, 0x08,
6106 0x16, 0xc0, 0x27, 0x25, 0xfe, 0xe8, 0x09, 0xfe, 0xc2, 0x49, 0x50, 0x03,
6107 0xb6, 0x1e, 0x83, 0x01, 0x38, 0x06, 0x24, 0x31, 0xa1, 0xfe, 0xbb, 0x45,
6108 0x2d, 0x00, 0xa4, 0x46, 0x07, 0x90, 0x3f, 0x01, 0xfe, 0xf8, 0x15, 0x01,
6109 0xa6, 0x86, 0xfe, 0x4b, 0x45, 0xfe, 0x20, 0x13, 0x01, 0x43, 0x09, 0x82,
6110 0xfe, 0x16, 0x13, 0x03, 0x9a, 0x1e, 0x5d, 0x03, 0x55, 0x1e, 0x31, 0x5e,
6111 0x05, 0x72, 0xfe, 0xc0, 0x5d, 0x01, 0xa7, 0xfe, 0x03, 0x17, 0x03, 0x66,
6112 0x8a, 0x10, 0x66, 0x5e, 0x32, 0x01, 0x08, 0x17, 0x73, 0x01, 0xfe, 0x56,
6113 0x19, 0x05, 0x73, 0x01, 0x08, 0x2a, 0x3c, 0x16, 0x3d, 0x27, 0x25, 0xbd,
6114 0x09, 0x07, 0x2b, 0x3d, 0x01, 0xfe, 0xbe, 0x16, 0xfe, 0x42, 0x58, 0xfe,
6115 0xe8, 0x14, 0x01, 0xa6, 0x86, 0xfe, 0x4a, 0xf4, 0x0d, 0x1b, 0x3d, 0xfe,
6116 0x4a, 0xf4, 0x07, 0xfe, 0x0e, 0x12, 0x01, 0x43, 0x09, 0x82, 0x4e, 0x05,
6117 0x72, 0x03, 0x55, 0x8a, 0x10, 0x55, 0x5e, 0x32, 0x01, 0x08, 0x17, 0x73,
6118 0x01, 0xfe, 0x84, 0x19, 0x05, 0x73, 0x01, 0x08, 0x2a, 0x3c, 0x16, 0x3d,
6119 0x27, 0x25, 0xbd, 0x09, 0x12, 0x2b, 0x3d, 0x01, 0xfe, 0xe8, 0x17, 0x8b,
6120 0xfe, 0xaa, 0x14, 0xfe, 0xb6, 0x14, 0x86, 0xa8, 0xb2, 0x0d, 0x1b, 0x3d,
6121 0xb2, 0x07, 0xfe, 0x0e, 0x12, 0x01, 0x43, 0x09, 0x82, 0x4e, 0x05, 0x72,
6122 0x03, 0x6f, 0x8a, 0x10, 0x6f, 0x5e, 0x32, 0x01, 0x08, 0x17, 0x73, 0x01,
6123 0xfe, 0xc0, 0x19, 0x05, 0x73, 0x13, 0x07, 0x2f, 0xfe, 0xcc, 0x15, 0x17,
6124 0xfe, 0xe2, 0x15, 0x5f, 0xcc, 0x01, 0x08, 0x26, 0x5f, 0x02, 0x8f, 0xfe,
6125 0xde, 0x15, 0x2a, 0xfe, 0xde, 0x15, 0x16, 0xfe, 0xcc, 0x15, 0x5e, 0x32,
6126 0x01, 0x08, 0xfe, 0xd5, 0x10, 0x13, 0x58, 0xff, 0x02, 0x00, 0x57, 0x52,
6127 0xad, 0x23, 0xfe, 0xff, 0x7f, 0xfe, 0x30, 0x56, 0xfe, 0x00, 0x5c, 0x02,
6128 0x13, 0x58, 0xff, 0x02, 0x00, 0x57, 0x52, 0xad, 0x23, 0x3f, 0xfe, 0x30,
6129 0x56, 0xfe, 0x00, 0x5c, 0x02, 0x13, 0x58, 0xff, 0x02, 0x00, 0x57, 0x52,
6130 0xad, 0x02, 0x13, 0x58, 0xff, 0x02, 0x00, 0x57, 0x52, 0xfe, 0x00, 0x5e,
6131 0x02, 0x13, 0x58, 0xff, 0x02, 0x00, 0x57, 0x52, 0xad, 0xfe, 0x0b, 0x58,
6132 0x02, 0x0a, 0x66, 0x01, 0x5c, 0x0a, 0x55, 0x01, 0x5c, 0x0a, 0x6f, 0x01,
6133 0x5c, 0x02, 0x01, 0xfe, 0x1e, 0x1f, 0x23, 0x1a, 0xff, 0x03, 0x00, 0x54,
6134 0xfe, 0x00, 0xf4, 0x24, 0x52, 0x0f, 0xfe, 0x00, 0x7c, 0x04, 0xfe, 0x07,
6135 0x7c, 0x3a, 0x0b, 0x0e, 0xfe, 0x00, 0x71, 0xfe, 0xf9, 0x18, 0xfe, 0x7a,
6136 0x19, 0xfe, 0xfb, 0x19, 0xfe, 0x1a, 0xf7, 0x00, 0xfe, 0x1b, 0xf7, 0x00,
6137 0x7a, 0x30, 0x10, 0x68, 0x22, 0x69, 0xd9, 0x6c, 0xda, 0x6d, 0x02, 0xfe,
6138 0x62, 0x08, 0xfe, 0x82, 0x4a, 0xfe, 0xe1, 0x1a, 0xfe, 0x83, 0x5a, 0x77,
6139 0x02, 0x01, 0xc6, 0xfe, 0x42, 0x48, 0x4f, 0x50, 0x45, 0x01, 0x08, 0x16,
6140 0xfe, 0xe0, 0x17, 0x27, 0x25, 0xbe, 0x01, 0x08, 0x16, 0xfe, 0xe0, 0x17,
6141 0x27, 0x25, 0xfe, 0xe8, 0x0a, 0xfe, 0xc1, 0x59, 0x03, 0x9a, 0x1e, 0xfe,
6142 0xda, 0x12, 0x01, 0x38, 0x06, 0x12, 0xfe, 0xd0, 0x13, 0x26, 0x53, 0x12,
6143 0x48, 0xfe, 0x08, 0x17, 0xd1, 0x12, 0x53, 0x12, 0xfe, 0x1e, 0x13, 0x2d,
6144 0xb4, 0x7b, 0xfe, 0x26, 0x17, 0x4d, 0x13, 0x07, 0x1c, 0xb4, 0x90, 0x04,
6145 0xfe, 0x78, 0x10, 0xff, 0x02, 0x83, 0x55, 0xf1, 0xff, 0x02, 0x83, 0x55,
6146 0x53, 0x1d, 0xfe, 0x12, 0x13, 0xd6, 0xfe, 0x30, 0x00, 0xb0, 0xfe, 0x80,
6147 0x17, 0x1c, 0x63, 0x13, 0x07, 0xfe, 0x56, 0x10, 0x53, 0x0d, 0xfe, 0x16,
6148 0x13, 0xd6, 0xfe, 0x64, 0x00, 0xb0, 0xfe, 0x80, 0x17, 0x0a, 0xfe, 0x64,
6149 0x00, 0x1c, 0x94, 0x13, 0x07, 0xfe, 0x28, 0x10, 0x53, 0x07, 0xfe, 0x60,
6150 0x13, 0xd6, 0xfe, 0xc8, 0x00, 0xb0, 0xfe, 0x80, 0x17, 0x0a, 0xfe, 0xc8,
6151 0x00, 0x1c, 0x95, 0x13, 0x07, 0x71, 0xd6, 0xfe, 0x90, 0x01, 0x48, 0xfe,
6152 0x8c, 0x17, 0x45, 0xf3, 0xfe, 0x43, 0xf4, 0x96, 0xfe, 0x56, 0xf0, 0xfe,
6153 0x9e, 0x17, 0xfe, 0x04, 0xf4, 0x58, 0xfe, 0x43, 0xf4, 0x94, 0xf6, 0x8b,
6154 0x01, 0xfe, 0x24, 0x16, 0x23, 0x3f, 0xfc, 0xa8, 0x8c, 0x49, 0x48, 0xfe,
6155 0xda, 0x17, 0x62, 0x49, 0xfe, 0x1c, 0x10, 0xa8, 0x8c, 0x80, 0x48, 0xfe,
6156 0xda, 0x17, 0x62, 0x80, 0x71, 0x50, 0x26, 0xfe, 0x4d, 0xf4, 0x00, 0xf7,
6157 0x45, 0x13, 0x07, 0xfe, 0xb4, 0x56, 0xfe, 0xc3, 0x58, 0x02, 0x50, 0x13,
6158 0x0d, 0x02, 0x50, 0x3e, 0x78, 0x4f, 0x45, 0x01, 0x08, 0x16, 0xa9, 0x27,
6159 0x25, 0xbe, 0xfe, 0x03, 0xea, 0xfe, 0x7e, 0x01, 0x01, 0x08, 0x16, 0xa9,
6160 0x27, 0x25, 0xfe, 0xe9, 0x0a, 0x01, 0x08, 0x16, 0xa9, 0x27, 0x25, 0xfe,
6161 0xe9, 0x0a, 0xfe, 0x05, 0xea, 0xfe, 0x7f, 0x01, 0x01, 0x08, 0x16, 0xa9,
6162 0x27, 0x25, 0xfe, 0x69, 0x09, 0xfe, 0x02, 0xea, 0xfe, 0x80, 0x01, 0x01,
6163 0x08, 0x16, 0xa9, 0x27, 0x25, 0xfe, 0xe8, 0x08, 0x47, 0xfe, 0x81, 0x01,
6164 0x03, 0xb6, 0x1e, 0x83, 0x01, 0x38, 0x06, 0x24, 0x31, 0xa2, 0x78, 0xf2,
6165 0x53, 0x07, 0x36, 0xfe, 0x34, 0xf4, 0x3f, 0xa1, 0x78, 0x03, 0x9a, 0x1e,
6166 0x83, 0x01, 0x38, 0x06, 0x12, 0x31, 0xf0, 0x4f, 0x45, 0xfe, 0x90, 0x10,
6167 0xfe, 0x40, 0x5a, 0x23, 0x3f, 0xfb, 0x8c, 0x49, 0x48, 0xfe, 0xaa, 0x18,
6168 0x62, 0x49, 0x71, 0x8c, 0x80, 0x48, 0xfe, 0xaa, 0x18, 0x62, 0x80, 0xfe,
6169 0xb4, 0x56, 0xfe, 0x40, 0x5d, 0x01, 0xc6, 0x01, 0xfe, 0xac, 0x1d, 0xfe,
6170 0x02, 0x17, 0xfe, 0xc8, 0x45, 0xfe, 0x5a, 0xf0, 0xfe, 0xc0, 0x18, 0xfe,
6171 0x43, 0x48, 0x2d, 0x93, 0x36, 0xfe, 0x34, 0xf4, 0xfe, 0x00, 0x11, 0xfe,
6172 0x40, 0x10, 0x2d, 0xb4, 0x36, 0xfe, 0x34, 0xf4, 0x04, 0xfe, 0x34, 0x10,
6173 0x2d, 0xfe, 0x0b, 0x00, 0x36, 0x46, 0x63, 0xfe, 0x28, 0x10, 0xfe, 0xc0,
6174 0x49, 0xff, 0x02, 0x00, 0x54, 0xb2, 0xfe, 0x90, 0x01, 0x48, 0xfe, 0xfa,
6175 0x18, 0x45, 0xfe, 0x1c, 0xf4, 0x3f, 0xf3, 0xfe, 0x40, 0xf4, 0x96, 0xfe,
6176 0x56, 0xf0, 0xfe, 0x0c, 0x19, 0xfe, 0x04, 0xf4, 0x58, 0xfe, 0x40, 0xf4,
6177 0x94, 0xf6, 0x3e, 0x2d, 0x93, 0x4e, 0xd0, 0x0d, 0x21, 0xfe, 0x7f, 0x01,
6178 0xfe, 0xc8, 0x46, 0xfe, 0x24, 0x13, 0x8c, 0x00, 0x5d, 0x26, 0x21, 0xfe,
6179 0x7e, 0x01, 0xfe, 0xc8, 0x45, 0xfe, 0x14, 0x13, 0x21, 0xfe, 0x80, 0x01,
6180 0xfe, 0x48, 0x45, 0xfa, 0x21, 0xfe, 0x81, 0x01, 0xfe, 0xc8, 0x44, 0x4e,
6181 0x26, 0x02, 0x13, 0x07, 0x02, 0x78, 0x45, 0x50, 0x13, 0x0d, 0x02, 0x14,
6182 0x07, 0x01, 0x08, 0x17, 0xfe, 0x82, 0x19, 0x14, 0x0d, 0x01, 0x08, 0x17,
6183 0xfe, 0x82, 0x19, 0x14, 0x1d, 0x01, 0x08, 0x17, 0xfe, 0x82, 0x19, 0x5f,
6184 0xfe, 0x89, 0x49, 0x01, 0x08, 0x02, 0x14, 0x07, 0x01, 0x08, 0x17, 0xc1,
6185 0x14, 0x1d, 0x01, 0x08, 0x17, 0xc1, 0x14, 0x07, 0x01, 0x08, 0x17, 0xc1,
6186 0xfe, 0x89, 0x49, 0x01, 0x08, 0x17, 0xc1, 0x5f, 0xfe, 0x89, 0x4a, 0x01,
6187 0x08, 0x02, 0x50, 0x02, 0x14, 0x07, 0x01, 0x08, 0x17, 0x74, 0x14, 0x7f,
6188 0x01, 0x08, 0x17, 0x74, 0x14, 0x12, 0x01, 0x08, 0x17, 0x74, 0xfe, 0x89,
6189 0x49, 0x01, 0x08, 0x17, 0x74, 0x14, 0x00, 0x01, 0x08, 0x17, 0x74, 0xfe,
6190 0x89, 0x4a, 0x01, 0x08, 0x17, 0x74, 0xfe, 0x09, 0x49, 0x01, 0x08, 0x17,
6191 0x74, 0x5f, 0xcc, 0x01, 0x08, 0x02, 0x21, 0xe4, 0x09, 0x07, 0xfe, 0x4c,
6192 0x13, 0xc8, 0x20, 0xe4, 0xfe, 0x49, 0xf4, 0x00, 0x4d, 0x5f, 0xa1, 0x5e,
6193 0xfe, 0x01, 0xec, 0xfe, 0x27, 0x01, 0xcc, 0xff, 0x02, 0x00, 0x10, 0x2f,
6194 0xfe, 0x3e, 0x1a, 0x01, 0x43, 0x09, 0xfe, 0xe3, 0x00, 0xfe, 0x22, 0x13,
6195 0x16, 0xfe, 0x64, 0x1a, 0x26, 0x20, 0x9e, 0x01, 0x41, 0x21, 0x9e, 0x09,
6196 0x07, 0x5d, 0x01, 0x0c, 0x61, 0x07, 0x44, 0x02, 0x0a, 0x5a, 0x01, 0x18,
6197 0xfe, 0x00, 0x40, 0xaa, 0x09, 0x1a, 0xfe, 0x12, 0x13, 0x0a, 0x9d, 0x01,
6198 0x18, 0xaa, 0x0a, 0x67, 0x01, 0xa3, 0x02, 0x0a, 0x9d, 0x01, 0x18, 0xaa,
6199 0xfe, 0x80, 0xe7, 0x1a, 0x09, 0x1a, 0x5d, 0xfe, 0x45, 0x58, 0x01, 0xfe,
6200 0xb2, 0x16, 0xaa, 0x02, 0x0a, 0x5a, 0x01, 0x18, 0xaa, 0x0a, 0x67, 0x01,
6201 0xa3, 0x02, 0x0a, 0x5a, 0x01, 0x18, 0x01, 0xfe, 0x7e, 0x1e, 0xfe, 0x80,
6202 0x4c, 0xfe, 0x49, 0xe4, 0x1a, 0xfe, 0x12, 0x13, 0x0a, 0x9d, 0x01, 0x18,
6203 0xfe, 0x80, 0x4c, 0x0a, 0x67, 0x01, 0x5c, 0x02, 0x1c, 0x1a, 0x87, 0x7c,
6204 0xe5, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x24, 0x1c, 0xfe, 0x1d,
6205 0xf7, 0x28, 0xb1, 0xfe, 0x04, 0x1b, 0x01, 0xfe, 0x2a, 0x1c, 0xfa, 0xb3,
6206 0x28, 0x7c, 0xfe, 0x2c, 0x01, 0xfe, 0x2f, 0x19, 0x02, 0xc9, 0x2b, 0xfe,
6207 0xf4, 0x1a, 0xfe, 0xfa, 0x10, 0x1c, 0x1a, 0x87, 0x03, 0xfe, 0x64, 0x01,
6208 0xfe, 0x00, 0xf4, 0x24, 0xfe, 0x18, 0x58, 0x03, 0xfe, 0x66, 0x01, 0xfe,
6209 0x19, 0x58, 0xb3, 0x24, 0x01, 0xfe, 0x0e, 0x1f, 0xfe, 0x30, 0xf4, 0x07,
6210 0xfe, 0x3c, 0x50, 0x7c, 0xfe, 0x38, 0x00, 0xfe, 0x0f, 0x79, 0xfe, 0x1c,
6211 0xf7, 0x24, 0xb1, 0xfe, 0x50, 0x1b, 0xfe, 0xd4, 0x14, 0x31, 0x02, 0xc9,
6212 0x2b, 0xfe, 0x26, 0x1b, 0xfe, 0xba, 0x10, 0x1c, 0x1a, 0x87, 0xfe, 0x83,
6213 0x5a, 0xfe, 0x18, 0xdf, 0xfe, 0x19, 0xde, 0xfe, 0x1d, 0xf7, 0x54, 0xb1,
6214 0xfe, 0x72, 0x1b, 0xfe, 0xb2, 0x14, 0xfc, 0xb3, 0x54, 0x7c, 0x12, 0xfe,
6215 0xaf, 0x19, 0xfe, 0x98, 0xe7, 0x00, 0x02, 0xc9, 0x2b, 0xfe, 0x66, 0x1b,
6216 0xfe, 0x8a, 0x10, 0x1c, 0x1a, 0x87, 0x8b, 0x0f, 0xfe, 0x30, 0x90, 0x04,
6217 0xfe, 0xb0, 0x93, 0x3a, 0x0b, 0xfe, 0x18, 0x58, 0xfe, 0x32, 0x90, 0x04,
6218 0xfe, 0xb2, 0x93, 0x3a, 0x0b, 0xfe, 0x19, 0x58, 0x0e, 0xa8, 0xb3, 0x4a,
6219 0x7c, 0x12, 0xfe, 0x0f, 0x79, 0xfe, 0x1c, 0xf7, 0x4a, 0xb1, 0xfe, 0xc6,
6220 0x1b, 0xfe, 0x5e, 0x14, 0x31, 0x02, 0xc9, 0x2b, 0xfe, 0x96, 0x1b, 0x5c,
6221 0xfe, 0x02, 0xf6, 0x1a, 0x87, 0xfe, 0x18, 0xfe, 0x6a, 0xfe, 0x19, 0xfe,
6222 0x6b, 0x01, 0xfe, 0x1e, 0x1f, 0xfe, 0x1d, 0xf7, 0x65, 0xb1, 0xfe, 0xee,
6223 0x1b, 0xfe, 0x36, 0x14, 0xfe, 0x1c, 0x13, 0xb3, 0x65, 0x3e, 0xfe, 0x83,
6224 0x58, 0xfe, 0xaf, 0x19, 0xfe, 0x80, 0xe7, 0x1a, 0xfe, 0x81, 0xe7, 0x1a,
6225 0x15, 0xfe, 0xdd, 0x00, 0x7a, 0x30, 0x02, 0x7a, 0x30, 0xfe, 0x12, 0x45,
6226 0x2b, 0xfe, 0xdc, 0x1b, 0x1f, 0x07, 0x47, 0xb5, 0xc3, 0x05, 0x35, 0xfe,
6227 0x39, 0xf0, 0x75, 0x26, 0x02, 0xfe, 0x7e, 0x18, 0x23, 0x1d, 0x36, 0x13,
6228 0x11, 0x02, 0x87, 0x03, 0xe3, 0x23, 0x07, 0xfe, 0xef, 0x12, 0xfe, 0xe1,
6229 0x10, 0x90, 0x34, 0x60, 0xfe, 0x02, 0x80, 0x09, 0x56, 0xfe, 0x3c, 0x13,
6230 0xfe, 0x82, 0x14, 0xfe, 0x42, 0x13, 0x51, 0xfe, 0x06, 0x83, 0x0a, 0x5a,
6231 0x01, 0x18, 0xcb, 0xfe, 0x3e, 0x12, 0xfe, 0x41, 0x48, 0xfe, 0x45, 0x48,
6232 0x01, 0xfe, 0xb2, 0x16, 0xfe, 0x00, 0xcc, 0xcb, 0xfe, 0xf3, 0x13, 0x3f,
6233 0x89, 0x09, 0x1a, 0xa5, 0x0a, 0x9d, 0x01, 0x18, 0xfe, 0x80, 0x4c, 0x01,
6234 0x85, 0xfe, 0x16, 0x10, 0x09, 0x9b, 0x4e, 0xfe, 0x40, 0x14, 0xfe, 0x24,
6235 0x12, 0xfe, 0x14, 0x56, 0xfe, 0xd6, 0xf0, 0xfe, 0x52, 0x1c, 0x1c, 0x0d,
6236 0x02, 0xfe, 0x9c, 0xe7, 0x0d, 0x19, 0xfe, 0x15, 0x00, 0x40, 0x8d, 0x30,
6237 0x01, 0xf4, 0x1c, 0x07, 0x02, 0x51, 0xfe, 0x06, 0x83, 0xfe, 0x18, 0x80,
6238 0x61, 0x28, 0x44, 0x15, 0x56, 0x01, 0x85, 0x1c, 0x07, 0x02, 0xfe, 0x38,
6239 0x90, 0xfe, 0xba, 0x90, 0x91, 0xde, 0x7e, 0xdf, 0xfe, 0x48, 0x55, 0x31,
6240 0xfe, 0xc9, 0x55, 0x02, 0x21, 0xb9, 0x88, 0x20, 0xb9, 0x02, 0x0a, 0xba,
6241 0x01, 0x18, 0xfe, 0x41, 0x48, 0x0a, 0x57, 0x01, 0x18, 0xfe, 0x49, 0x44,
6242 0x1b, 0xfe, 0x1e, 0x1d, 0x88, 0x89, 0x02, 0x0a, 0x5a, 0x01, 0x18, 0x09,
6243 0x1a, 0xa4, 0x0a, 0x67, 0x01, 0xa3, 0x0a, 0x57, 0x01, 0x18, 0x88, 0x89,
6244 0x02, 0xfe, 0x4e, 0xe4, 0x1d, 0x7b, 0xfe, 0x52, 0x1d, 0x03, 0xfe, 0x90,
6245 0x00, 0xfe, 0x3a, 0x45, 0xfe, 0x2c, 0x10, 0xfe, 0x4e, 0xe4, 0xdd, 0x7b,
6246 0xfe, 0x64, 0x1d, 0x03, 0xfe, 0x92, 0x00, 0xd1, 0x12, 0xfe, 0x1a, 0x10,
6247 0xfe, 0x4e, 0xe4, 0xfe, 0x0b, 0x00, 0x7b, 0xfe, 0x76, 0x1d, 0x03, 0xfe,
6248 0x94, 0x00, 0xd1, 0x24, 0xfe, 0x08, 0x10, 0x03, 0xfe, 0x96, 0x00, 0xd1,
6249 0x63, 0xfe, 0x4e, 0x45, 0x83, 0xca, 0xff, 0x04, 0x68, 0x54, 0xfe, 0xf1,
6250 0x10, 0x23, 0x49, 0xfe, 0x08, 0x1c, 0xfe, 0x67, 0x19, 0xfe, 0x0a, 0x1c,
6251 0xfe, 0x1a, 0xf4, 0xfe, 0x00, 0x04, 0x83, 0xb2, 0x1d, 0x48, 0xfe, 0xaa,
6252 0x1d, 0x13, 0x1d, 0x02, 0x09, 0x92, 0xfe, 0x5a, 0xf0, 0xfe, 0xba, 0x1d,
6253 0x2e, 0x93, 0xfe, 0x34, 0x10, 0x09, 0x12, 0xfe, 0x5a, 0xf0, 0xfe, 0xc8,
6254 0x1d, 0x2e, 0xb4, 0xfe, 0x26, 0x10, 0x09, 0x1d, 0x36, 0x2e, 0x63, 0xfe,
6255 0x1a, 0x10, 0x09, 0x0d, 0x36, 0x2e, 0x94, 0xf2, 0x09, 0x07, 0x36, 0x2e,
6256 0x95, 0xa1, 0xc8, 0x02, 0x1f, 0x93, 0x01, 0x42, 0xfe, 0x04, 0xfe, 0x99,
6257 0x03, 0x9c, 0x8b, 0x02, 0x2a, 0xfe, 0x1c, 0x1e, 0xfe, 0x14, 0xf0, 0x08,
6258 0x2f, 0xfe, 0x0c, 0x1e, 0x2a, 0xfe, 0x1c, 0x1e, 0x8f, 0xfe, 0x1c, 0x1e,
6259 0xfe, 0x82, 0xf0, 0xfe, 0x10, 0x1e, 0x02, 0x0f, 0x3f, 0x04, 0xfe, 0x80,
6260 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x18, 0x80, 0x04, 0xfe, 0x98,
6261 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x02, 0x80, 0x04, 0xfe, 0x82,
6262 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x06, 0x80, 0x04, 0xfe, 0x86,
6263 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x1b, 0x80, 0x04, 0xfe, 0x9b,
6264 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x04, 0x80, 0x04, 0xfe, 0x84,
6265 0x83, 0x33, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x80, 0x80, 0x04, 0xfe, 0x80,
6266 0x83, 0xfe, 0xc9, 0x47, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x19, 0x81, 0x04,
6267 0xfe, 0x99, 0x83, 0xfe, 0xca, 0x47, 0x0b, 0x0e, 0x02, 0x0f, 0xfe, 0x06,
6268 0x83, 0x04, 0xfe, 0x86, 0x83, 0xfe, 0xce, 0x47, 0x0b, 0x0e, 0x02, 0x0f,
6269 0xfe, 0x2c, 0x90, 0x04, 0xfe, 0xac, 0x93, 0x3a, 0x0b, 0x0e, 0x02, 0x0f,
6270 0xfe, 0xae, 0x90, 0x04, 0xfe, 0xae, 0x93, 0x79, 0x0b, 0x0e, 0x02, 0x0f,
6271 0xfe, 0x08, 0x90, 0x04, 0xfe, 0x88, 0x93, 0x3a, 0x0b, 0x0e, 0x02, 0x0f,
6272 0xfe, 0x8a, 0x90, 0x04, 0xfe, 0x8a, 0x93, 0x79, 0x0b, 0x0e, 0x02, 0x0f,
6273 0xfe, 0x0c, 0x90, 0x04, 0xfe, 0x8c, 0x93, 0x3a, 0x0b, 0x0e, 0x02, 0x0f,
6274 0xfe, 0x8e, 0x90, 0x04, 0xfe, 0x8e, 0x93, 0x79, 0x0b, 0x0e, 0x02, 0x0f,
6275 0xfe, 0x3c, 0x90, 0x04, 0xfe, 0xbc, 0x93, 0x3a, 0x0b, 0x0e, 0x02, 0x8b,
6276 0x0f, 0xfe, 0x03, 0x80, 0x04, 0xfe, 0x83, 0x83, 0x33, 0x0b, 0x77, 0x0e,
6277 0xa8, 0x02, 0xff, 0x66, 0x00, 0x00,
6278};
6279
6280static unsigned short _adv_asc38C1600_size = sizeof(_adv_asc38C1600_buf); /* 0x1673 */
6281static ADV_DCNT _adv_asc38C1600_chksum = 0x0604EF77UL; /* Expanded little-endian checksum. */
6282
6283static void AscInitQLinkVar(ASC_DVC_VAR *asc_dvc) 4672static void AscInitQLinkVar(ASC_DVC_VAR *asc_dvc)
6284{ 4673{
6285 PortAddr iop_base; 4674 PortAddr iop_base;
@@ -6362,6 +4751,10 @@ static ushort AscInitMicroCodeVar(ASC_DVC_VAR *asc_dvc)
6362 4751
6363static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc) 4752static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)
6364{ 4753{
4754 const struct firmware *fw;
4755 const char fwname[] = "advansys/mcode.bin";
4756 int err;
4757 unsigned long chksum;
6365 ushort warn_code; 4758 ushort warn_code;
6366 PortAddr iop_base; 4759 PortAddr iop_base;
6367 4760
@@ -6383,12 +4776,29 @@ static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)
6383 warn_code |= AscInitLram(asc_dvc); 4776 warn_code |= AscInitLram(asc_dvc);
6384 if (asc_dvc->err_code != 0) 4777 if (asc_dvc->err_code != 0)
6385 return UW_ERR; 4778 return UW_ERR;
6386 ASC_DBG(1, "_asc_mcode_chksum 0x%lx\n", (ulong)_asc_mcode_chksum); 4779
6387 if (AscLoadMicroCode(iop_base, 0, _asc_mcode_buf, 4780 err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
6388 _asc_mcode_size) != _asc_mcode_chksum) { 4781 if (err) {
4782 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
4783 fwname, err);
4784 return err;
4785 }
4786 if (fw->size < 4) {
4787 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
4788 fw->size, fwname);
4789 release_firmware(fw);
4790 return -EINVAL;
4791 }
4792 chksum = (fw->data[3] << 24) | (fw->data[2] << 16) |
4793 (fw->data[1] << 8) | fw->data[0];
4794 ASC_DBG(1, "_asc_mcode_chksum 0x%lx\n", (ulong)chksum);
4795 if (AscLoadMicroCode(iop_base, 0, &fw->data[4],
4796 fw->size - 4) != chksum) {
6389 asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM; 4797 asc_dvc->err_code |= ASC_IERR_MCODE_CHKSUM;
4798 release_firmware(fw);
6390 return warn_code; 4799 return warn_code;
6391 } 4800 }
4801 release_firmware(fw);
6392 warn_code |= AscInitMicroCodeVar(asc_dvc); 4802 warn_code |= AscInitMicroCodeVar(asc_dvc);
6393 asc_dvc->init_state |= ASC_INIT_STATE_END_LOAD_MC; 4803 asc_dvc->init_state |= ASC_INIT_STATE_END_LOAD_MC;
6394 AscEnableInterrupt(iop_base); 4804 AscEnableInterrupt(iop_base);
@@ -6417,8 +4827,8 @@ static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc)
6417 * 4827 *
6418 * Returns 0 or an error if the checksum doesn't match 4828 * Returns 0 or an error if the checksum doesn't match
6419 */ 4829 */
6420static int AdvLoadMicrocode(AdvPortAddr iop_base, unsigned char *buf, int size, 4830static int AdvLoadMicrocode(AdvPortAddr iop_base, const unsigned char *buf,
6421 int memsize, int chksum) 4831 int size, int memsize, int chksum)
6422{ 4832{
6423 int i, j, end, len = 0; 4833 int i, j, end, len = 0;
6424 ADV_DCNT sum; 4834 ADV_DCNT sum;
@@ -6627,6 +5037,8 @@ static int AdvResetSB(ADV_DVC_VAR *asc_dvc)
6627 */ 5037 */
6628static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc) 5038static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)
6629{ 5039{
5040 const struct firmware *fw;
5041 const char fwname[] = "advansys/3550.bin";
6630 AdvPortAddr iop_base; 5042 AdvPortAddr iop_base;
6631 ushort warn_code; 5043 ushort warn_code;
6632 int begin_addr; 5044 int begin_addr;
@@ -6634,6 +5046,8 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)
6634 ushort code_sum; 5046 ushort code_sum;
6635 int word; 5047 int word;
6636 int i; 5048 int i;
5049 int err;
5050 unsigned long chksum;
6637 ushort scsi_cfg1; 5051 ushort scsi_cfg1;
6638 uchar tid; 5052 uchar tid;
6639 ushort bios_mem[ASC_MC_BIOSLEN / 2]; /* BIOS RISC Memory 0x40-0x8F. */ 5053 ushort bios_mem[ASC_MC_BIOSLEN / 2]; /* BIOS RISC Memory 0x40-0x8F. */
@@ -6692,9 +5106,24 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)
6692 max_cmd[tid]); 5106 max_cmd[tid]);
6693 } 5107 }
6694 5108
6695 asc_dvc->err_code = AdvLoadMicrocode(iop_base, _adv_asc3550_buf, 5109 err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
6696 _adv_asc3550_size, ADV_3550_MEMSIZE, 5110 if (err) {
6697 _adv_asc3550_chksum); 5111 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
5112 fwname, err);
5113 return err;
5114 }
5115 if (fw->size < 4) {
5116 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
5117 fw->size, fwname);
5118 release_firmware(fw);
5119 return -EINVAL;
5120 }
5121 chksum = (fw->data[3] << 24) | (fw->data[2] << 16) |
5122 (fw->data[1] << 8) | fw->data[0];
5123 asc_dvc->err_code = AdvLoadMicrocode(iop_base, &fw->data[4],
5124 fw->size - 4, ADV_3550_MEMSIZE,
5125 chksum);
5126 release_firmware(fw);
6698 if (asc_dvc->err_code) 5127 if (asc_dvc->err_code)
6699 return ADV_ERROR; 5128 return ADV_ERROR;
6700 5129
@@ -7065,6 +5494,8 @@ static int AdvInitAsc3550Driver(ADV_DVC_VAR *asc_dvc)
7065 */ 5494 */
7066static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc) 5495static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)
7067{ 5496{
5497 const struct firmware *fw;
5498 const char fwname[] = "advansys/38C0800.bin";
7068 AdvPortAddr iop_base; 5499 AdvPortAddr iop_base;
7069 ushort warn_code; 5500 ushort warn_code;
7070 int begin_addr; 5501 int begin_addr;
@@ -7072,6 +5503,8 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)
7072 ushort code_sum; 5503 ushort code_sum;
7073 int word; 5504 int word;
7074 int i; 5505 int i;
5506 int err;
5507 unsigned long chksum;
7075 ushort scsi_cfg1; 5508 ushort scsi_cfg1;
7076 uchar byte; 5509 uchar byte;
7077 uchar tid; 5510 uchar tid;
@@ -7187,9 +5620,24 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)
7187 /* We need to reset back to normal mode after LRAM test passes. */ 5620 /* We need to reset back to normal mode after LRAM test passes. */
7188 AdvWriteByteRegister(iop_base, IOPB_RAM_BIST, NORMAL_MODE); 5621 AdvWriteByteRegister(iop_base, IOPB_RAM_BIST, NORMAL_MODE);
7189 5622
7190 asc_dvc->err_code = AdvLoadMicrocode(iop_base, _adv_asc38C0800_buf, 5623 err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
7191 _adv_asc38C0800_size, ADV_38C0800_MEMSIZE, 5624 if (err) {
7192 _adv_asc38C0800_chksum); 5625 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
5626 fwname, err);
5627 return err;
5628 }
5629 if (fw->size < 4) {
5630 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
5631 fw->size, fwname);
5632 release_firmware(fw);
5633 return -EINVAL;
5634 }
5635 chksum = (fw->data[3] << 24) | (fw->data[2] << 16) |
5636 (fw->data[1] << 8) | fw->data[0];
5637 asc_dvc->err_code = AdvLoadMicrocode(iop_base, &fw->data[4],
5638 fw->size - 4, ADV_38C0800_MEMSIZE,
5639 chksum);
5640 release_firmware(fw);
7193 if (asc_dvc->err_code) 5641 if (asc_dvc->err_code)
7194 return ADV_ERROR; 5642 return ADV_ERROR;
7195 5643
@@ -7544,6 +5992,8 @@ static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *asc_dvc)
7544 */ 5992 */
7545static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc) 5993static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc)
7546{ 5994{
5995 const struct firmware *fw;
5996 const char fwname[] = "advansys/38C1600.bin";
7547 AdvPortAddr iop_base; 5997 AdvPortAddr iop_base;
7548 ushort warn_code; 5998 ushort warn_code;
7549 int begin_addr; 5999 int begin_addr;
@@ -7551,6 +6001,8 @@ static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc)
7551 ushort code_sum; 6001 ushort code_sum;
7552 long word; 6002 long word;
7553 int i; 6003 int i;
6004 int err;
6005 unsigned long chksum;
7554 ushort scsi_cfg1; 6006 ushort scsi_cfg1;
7555 uchar byte; 6007 uchar byte;
7556 uchar tid; 6008 uchar tid;
@@ -7668,9 +6120,24 @@ static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *asc_dvc)
7668 /* We need to reset back to normal mode after LRAM test passes. */ 6120 /* We need to reset back to normal mode after LRAM test passes. */
7669 AdvWriteByteRegister(iop_base, IOPB_RAM_BIST, NORMAL_MODE); 6121 AdvWriteByteRegister(iop_base, IOPB_RAM_BIST, NORMAL_MODE);
7670 6122
7671 asc_dvc->err_code = AdvLoadMicrocode(iop_base, _adv_asc38C1600_buf, 6123 err = request_firmware(&fw, fwname, asc_dvc->drv_ptr->dev);
7672 _adv_asc38C1600_size, ADV_38C1600_MEMSIZE, 6124 if (err) {
7673 _adv_asc38C1600_chksum); 6125 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
6126 fwname, err);
6127 return err;
6128 }
6129 if (fw->size < 4) {
6130 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
6131 fw->size, fwname);
6132 release_firmware(fw);
6133 return -EINVAL;
6134 }
6135 chksum = (fw->data[3] << 24) | (fw->data[2] << 16) |
6136 (fw->data[1] << 8) | fw->data[0];
6137 asc_dvc->err_code = AdvLoadMicrocode(iop_base, &fw->data[4],
6138 fw->size - 4, ADV_38C1600_MEMSIZE,
6139 chksum);
6140 release_firmware(fw);
7674 if (asc_dvc->err_code) 6141 if (asc_dvc->err_code)
7675 return ADV_ERROR; 6142 return ADV_ERROR;
7676 6143
@@ -14353,3 +12820,7 @@ module_init(advansys_init);
14353module_exit(advansys_exit); 12820module_exit(advansys_exit);
14354 12821
14355MODULE_LICENSE("GPL"); 12822MODULE_LICENSE("GPL");
12823MODULE_FIRMWARE("advansys/mcode.bin");
12824MODULE_FIRMWARE("advansys/3550.bin");
12825MODULE_FIRMWARE("advansys/38C0800.bin");
12826MODULE_FIRMWARE("advansys/38C1600.bin");
diff --git a/drivers/scsi/aic7xxx/aic79xx_core.c b/drivers/scsi/aic7xxx/aic79xx_core.c
index bdad54ec088..63b521d615f 100644
--- a/drivers/scsi/aic7xxx/aic79xx_core.c
+++ b/drivers/scsi/aic7xxx/aic79xx_core.c
@@ -1034,7 +1034,7 @@ ahd_intr(struct ahd_softc *ahd)
1034} 1034}
1035 1035
1036/******************************** Private Inlines *****************************/ 1036/******************************** Private Inlines *****************************/
1037static __inline void 1037static inline void
1038ahd_assert_atn(struct ahd_softc *ahd) 1038ahd_assert_atn(struct ahd_softc *ahd)
1039{ 1039{
1040 ahd_outb(ahd, SCSISIGO, ATNO); 1040 ahd_outb(ahd, SCSISIGO, ATNO);
@@ -1069,7 +1069,7 @@ ahd_currently_packetized(struct ahd_softc *ahd)
1069 return (packetized); 1069 return (packetized);
1070} 1070}
1071 1071
1072static __inline int 1072static inline int
1073ahd_set_active_fifo(struct ahd_softc *ahd) 1073ahd_set_active_fifo(struct ahd_softc *ahd)
1074{ 1074{
1075 u_int active_fifo; 1075 u_int active_fifo;
@@ -1086,7 +1086,7 @@ ahd_set_active_fifo(struct ahd_softc *ahd)
1086 } 1086 }
1087} 1087}
1088 1088
1089static __inline void 1089static inline void
1090ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl) 1090ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl)
1091{ 1091{
1092 ahd_busy_tcl(ahd, tcl, SCB_LIST_NULL); 1092 ahd_busy_tcl(ahd, tcl, SCB_LIST_NULL);
@@ -1096,7 +1096,7 @@ ahd_unbusy_tcl(struct ahd_softc *ahd, u_int tcl)
1096 * Determine whether the sequencer reported a residual 1096 * Determine whether the sequencer reported a residual
1097 * for this SCB/transaction. 1097 * for this SCB/transaction.
1098 */ 1098 */
1099static __inline void 1099static inline void
1100ahd_update_residual(struct ahd_softc *ahd, struct scb *scb) 1100ahd_update_residual(struct ahd_softc *ahd, struct scb *scb)
1101{ 1101{
1102 uint32_t sgptr; 1102 uint32_t sgptr;
@@ -1106,7 +1106,7 @@ ahd_update_residual(struct ahd_softc *ahd, struct scb *scb)
1106 ahd_calc_residual(ahd, scb); 1106 ahd_calc_residual(ahd, scb);
1107} 1107}
1108 1108
1109static __inline void 1109static inline void
1110ahd_complete_scb(struct ahd_softc *ahd, struct scb *scb) 1110ahd_complete_scb(struct ahd_softc *ahd, struct scb *scb)
1111{ 1111{
1112 uint32_t sgptr; 1112 uint32_t sgptr;
@@ -7987,7 +7987,7 @@ ahd_resume(struct ahd_softc *ahd)
7987 * scbid that should be restored once manipualtion 7987 * scbid that should be restored once manipualtion
7988 * of the TCL entry is complete. 7988 * of the TCL entry is complete.
7989 */ 7989 */
7990static __inline u_int 7990static inline u_int
7991ahd_index_busy_tcl(struct ahd_softc *ahd, u_int *saved_scbid, u_int tcl) 7991ahd_index_busy_tcl(struct ahd_softc *ahd, u_int *saved_scbid, u_int tcl)
7992{ 7992{
7993 /* 7993 /*
diff --git a/drivers/scsi/aic7xxx/aic79xx_inline.h b/drivers/scsi/aic7xxx/aic79xx_inline.h
index 5f12cf9d99d..09335a3c869 100644
--- a/drivers/scsi/aic7xxx/aic79xx_inline.h
+++ b/drivers/scsi/aic7xxx/aic79xx_inline.h
@@ -46,21 +46,20 @@
46#define _AIC79XX_INLINE_H_ 46#define _AIC79XX_INLINE_H_
47 47
48/******************************** Debugging ***********************************/ 48/******************************** Debugging ***********************************/
49static __inline char *ahd_name(struct ahd_softc *ahd); 49static inline char *ahd_name(struct ahd_softc *ahd);
50 50
51static __inline char * 51static inline char *ahd_name(struct ahd_softc *ahd)
52ahd_name(struct ahd_softc *ahd)
53{ 52{
54 return (ahd->name); 53 return (ahd->name);
55} 54}
56 55
57/************************ Sequencer Execution Control *************************/ 56/************************ Sequencer Execution Control *************************/
58static __inline void ahd_known_modes(struct ahd_softc *ahd, 57static inline void ahd_known_modes(struct ahd_softc *ahd,
59 ahd_mode src, ahd_mode dst); 58 ahd_mode src, ahd_mode dst);
60static __inline ahd_mode_state ahd_build_mode_state(struct ahd_softc *ahd, 59static inline ahd_mode_state ahd_build_mode_state(struct ahd_softc *ahd,
61 ahd_mode src, 60 ahd_mode src,
62 ahd_mode dst); 61 ahd_mode dst);
63static __inline void ahd_extract_mode_state(struct ahd_softc *ahd, 62static inline void ahd_extract_mode_state(struct ahd_softc *ahd,
64 ahd_mode_state state, 63 ahd_mode_state state,
65 ahd_mode *src, ahd_mode *dst); 64 ahd_mode *src, ahd_mode *dst);
66 65
@@ -73,7 +72,7 @@ int ahd_is_paused(struct ahd_softc *ahd);
73void ahd_pause(struct ahd_softc *ahd); 72void ahd_pause(struct ahd_softc *ahd);
74void ahd_unpause(struct ahd_softc *ahd); 73void ahd_unpause(struct ahd_softc *ahd);
75 74
76static __inline void 75static inline void
77ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst) 76ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
78{ 77{
79 ahd->src_mode = src; 78 ahd->src_mode = src;
@@ -82,13 +81,13 @@ ahd_known_modes(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
82 ahd->saved_dst_mode = dst; 81 ahd->saved_dst_mode = dst;
83} 82}
84 83
85static __inline ahd_mode_state 84static inline ahd_mode_state
86ahd_build_mode_state(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst) 85ahd_build_mode_state(struct ahd_softc *ahd, ahd_mode src, ahd_mode dst)
87{ 86{
88 return ((src << SRC_MODE_SHIFT) | (dst << DST_MODE_SHIFT)); 87 return ((src << SRC_MODE_SHIFT) | (dst << DST_MODE_SHIFT));
89} 88}
90 89
91static __inline void 90static inline void
92ahd_extract_mode_state(struct ahd_softc *ahd, ahd_mode_state state, 91ahd_extract_mode_state(struct ahd_softc *ahd, ahd_mode_state state,
93 ahd_mode *src, ahd_mode *dst) 92 ahd_mode *src, ahd_mode *dst)
94{ 93{
@@ -102,13 +101,12 @@ void *ahd_sg_setup(struct ahd_softc *ahd, struct scb *scb,
102 bus_size_t len, int last); 101 bus_size_t len, int last);
103 102
104/************************** Memory mapping routines ***************************/ 103/************************** Memory mapping routines ***************************/
105static __inline size_t ahd_sg_size(struct ahd_softc *ahd); 104static inline size_t ahd_sg_size(struct ahd_softc *ahd);
106 105
107void ahd_sync_sglist(struct ahd_softc *ahd, 106void ahd_sync_sglist(struct ahd_softc *ahd,
108 struct scb *scb, int op); 107 struct scb *scb, int op);
109 108
110static __inline size_t 109static inline size_t ahd_sg_size(struct ahd_softc *ahd)
111ahd_sg_size(struct ahd_softc *ahd)
112{ 110{
113 if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0) 111 if ((ahd->flags & AHD_64BIT_ADDRESSING) != 0)
114 return (sizeof(struct ahd_dma64_seg)); 112 return (sizeof(struct ahd_dma64_seg));
@@ -141,11 +139,9 @@ struct scb *
141 ahd_lookup_scb(struct ahd_softc *ahd, u_int tag); 139 ahd_lookup_scb(struct ahd_softc *ahd, u_int tag);
142void ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb); 140void ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb);
143 141
144static __inline uint8_t * 142static inline uint8_t *ahd_get_sense_buf(struct ahd_softc *ahd,
145 ahd_get_sense_buf(struct ahd_softc *ahd,
146 struct scb *scb); 143 struct scb *scb);
147static __inline uint32_t 144static inline uint32_t ahd_get_sense_bufaddr(struct ahd_softc *ahd,
148 ahd_get_sense_bufaddr(struct ahd_softc *ahd,
149 struct scb *scb); 145 struct scb *scb);
150 146
151#if 0 /* unused */ 147#if 0 /* unused */
@@ -158,13 +154,13 @@ do { \
158 154
159#endif 155#endif
160 156
161static __inline uint8_t * 157static inline uint8_t *
162ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb) 158ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb)
163{ 159{
164 return (scb->sense_data); 160 return (scb->sense_data);
165} 161}
166 162
167static __inline uint32_t 163static inline uint32_t
168ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb) 164ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb)
169{ 165{
170 return (scb->sense_busaddr); 166 return (scb->sense_busaddr);
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.h b/drivers/scsi/aic7xxx/aic79xx_osm.h
index 8d6612c1992..55c1fe07969 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.h
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.h
@@ -395,19 +395,19 @@ struct info_str {
395}; 395};
396 396
397/******************************** Locking *************************************/ 397/******************************** Locking *************************************/
398static __inline void 398static inline void
399ahd_lockinit(struct ahd_softc *ahd) 399ahd_lockinit(struct ahd_softc *ahd)
400{ 400{
401 spin_lock_init(&ahd->platform_data->spin_lock); 401 spin_lock_init(&ahd->platform_data->spin_lock);
402} 402}
403 403
404static __inline void 404static inline void
405ahd_lock(struct ahd_softc *ahd, unsigned long *flags) 405ahd_lock(struct ahd_softc *ahd, unsigned long *flags)
406{ 406{
407 spin_lock_irqsave(&ahd->platform_data->spin_lock, *flags); 407 spin_lock_irqsave(&ahd->platform_data->spin_lock, *flags);
408} 408}
409 409
410static __inline void 410static inline void
411ahd_unlock(struct ahd_softc *ahd, unsigned long *flags) 411ahd_unlock(struct ahd_softc *ahd, unsigned long *flags)
412{ 412{
413 spin_unlock_irqrestore(&ahd->platform_data->spin_lock, *flags); 413 spin_unlock_irqrestore(&ahd->platform_data->spin_lock, *flags);
@@ -490,29 +490,29 @@ void ahd_pci_write_config(ahd_dev_softc_t pci,
490 int reg, uint32_t value, 490 int reg, uint32_t value,
491 int width); 491 int width);
492 492
493static __inline int ahd_get_pci_function(ahd_dev_softc_t); 493static inline int ahd_get_pci_function(ahd_dev_softc_t);
494static __inline int 494static inline int
495ahd_get_pci_function(ahd_dev_softc_t pci) 495ahd_get_pci_function(ahd_dev_softc_t pci)
496{ 496{
497 return (PCI_FUNC(pci->devfn)); 497 return (PCI_FUNC(pci->devfn));
498} 498}
499 499
500static __inline int ahd_get_pci_slot(ahd_dev_softc_t); 500static inline int ahd_get_pci_slot(ahd_dev_softc_t);
501static __inline int 501static inline int
502ahd_get_pci_slot(ahd_dev_softc_t pci) 502ahd_get_pci_slot(ahd_dev_softc_t pci)
503{ 503{
504 return (PCI_SLOT(pci->devfn)); 504 return (PCI_SLOT(pci->devfn));
505} 505}
506 506
507static __inline int ahd_get_pci_bus(ahd_dev_softc_t); 507static inline int ahd_get_pci_bus(ahd_dev_softc_t);
508static __inline int 508static inline int
509ahd_get_pci_bus(ahd_dev_softc_t pci) 509ahd_get_pci_bus(ahd_dev_softc_t pci)
510{ 510{
511 return (pci->bus->number); 511 return (pci->bus->number);
512} 512}
513 513
514static __inline void ahd_flush_device_writes(struct ahd_softc *); 514static inline void ahd_flush_device_writes(struct ahd_softc *);
515static __inline void 515static inline void
516ahd_flush_device_writes(struct ahd_softc *ahd) 516ahd_flush_device_writes(struct ahd_softc *ahd)
517{ 517{
518 /* XXX Is this sufficient for all architectures??? */ 518 /* XXX Is this sufficient for all architectures??? */
@@ -524,81 +524,81 @@ int ahd_linux_proc_info(struct Scsi_Host *, char *, char **,
524 off_t, int, int); 524 off_t, int, int);
525 525
526/*********************** Transaction Access Wrappers **************************/ 526/*********************** Transaction Access Wrappers **************************/
527static __inline void ahd_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t); 527static inline void ahd_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t);
528static __inline void ahd_set_transaction_status(struct scb *, uint32_t); 528static inline void ahd_set_transaction_status(struct scb *, uint32_t);
529static __inline void ahd_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t); 529static inline void ahd_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t);
530static __inline void ahd_set_scsi_status(struct scb *, uint32_t); 530static inline void ahd_set_scsi_status(struct scb *, uint32_t);
531static __inline uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd); 531static inline uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd);
532static __inline uint32_t ahd_get_transaction_status(struct scb *); 532static inline uint32_t ahd_get_transaction_status(struct scb *);
533static __inline uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd); 533static inline uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd);
534static __inline uint32_t ahd_get_scsi_status(struct scb *); 534static inline uint32_t ahd_get_scsi_status(struct scb *);
535static __inline void ahd_set_transaction_tag(struct scb *, int, u_int); 535static inline void ahd_set_transaction_tag(struct scb *, int, u_int);
536static __inline u_long ahd_get_transfer_length(struct scb *); 536static inline u_long ahd_get_transfer_length(struct scb *);
537static __inline int ahd_get_transfer_dir(struct scb *); 537static inline int ahd_get_transfer_dir(struct scb *);
538static __inline void ahd_set_residual(struct scb *, u_long); 538static inline void ahd_set_residual(struct scb *, u_long);
539static __inline void ahd_set_sense_residual(struct scb *scb, u_long resid); 539static inline void ahd_set_sense_residual(struct scb *scb, u_long resid);
540static __inline u_long ahd_get_residual(struct scb *); 540static inline u_long ahd_get_residual(struct scb *);
541static __inline u_long ahd_get_sense_residual(struct scb *); 541static inline u_long ahd_get_sense_residual(struct scb *);
542static __inline int ahd_perform_autosense(struct scb *); 542static inline int ahd_perform_autosense(struct scb *);
543static __inline uint32_t ahd_get_sense_bufsize(struct ahd_softc *, 543static inline uint32_t ahd_get_sense_bufsize(struct ahd_softc *,
544 struct scb *); 544 struct scb *);
545static __inline void ahd_notify_xfer_settings_change(struct ahd_softc *, 545static inline void ahd_notify_xfer_settings_change(struct ahd_softc *,
546 struct ahd_devinfo *); 546 struct ahd_devinfo *);
547static __inline void ahd_platform_scb_free(struct ahd_softc *ahd, 547static inline void ahd_platform_scb_free(struct ahd_softc *ahd,
548 struct scb *scb); 548 struct scb *scb);
549static __inline void ahd_freeze_scb(struct scb *scb); 549static inline void ahd_freeze_scb(struct scb *scb);
550 550
551static __inline 551static inline
552void ahd_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status) 552void ahd_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status)
553{ 553{
554 cmd->result &= ~(CAM_STATUS_MASK << 16); 554 cmd->result &= ~(CAM_STATUS_MASK << 16);
555 cmd->result |= status << 16; 555 cmd->result |= status << 16;
556} 556}
557 557
558static __inline 558static inline
559void ahd_set_transaction_status(struct scb *scb, uint32_t status) 559void ahd_set_transaction_status(struct scb *scb, uint32_t status)
560{ 560{
561 ahd_cmd_set_transaction_status(scb->io_ctx,status); 561 ahd_cmd_set_transaction_status(scb->io_ctx,status);
562} 562}
563 563
564static __inline 564static inline
565void ahd_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status) 565void ahd_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
566{ 566{
567 cmd->result &= ~0xFFFF; 567 cmd->result &= ~0xFFFF;
568 cmd->result |= status; 568 cmd->result |= status;
569} 569}
570 570
571static __inline 571static inline
572void ahd_set_scsi_status(struct scb *scb, uint32_t status) 572void ahd_set_scsi_status(struct scb *scb, uint32_t status)
573{ 573{
574 ahd_cmd_set_scsi_status(scb->io_ctx, status); 574 ahd_cmd_set_scsi_status(scb->io_ctx, status);
575} 575}
576 576
577static __inline 577static inline
578uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd) 578uint32_t ahd_cmd_get_transaction_status(struct scsi_cmnd *cmd)
579{ 579{
580 return ((cmd->result >> 16) & CAM_STATUS_MASK); 580 return ((cmd->result >> 16) & CAM_STATUS_MASK);
581} 581}
582 582
583static __inline 583static inline
584uint32_t ahd_get_transaction_status(struct scb *scb) 584uint32_t ahd_get_transaction_status(struct scb *scb)
585{ 585{
586 return (ahd_cmd_get_transaction_status(scb->io_ctx)); 586 return (ahd_cmd_get_transaction_status(scb->io_ctx));
587} 587}
588 588
589static __inline 589static inline
590uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd) 590uint32_t ahd_cmd_get_scsi_status(struct scsi_cmnd *cmd)
591{ 591{
592 return (cmd->result & 0xFFFF); 592 return (cmd->result & 0xFFFF);
593} 593}
594 594
595static __inline 595static inline
596uint32_t ahd_get_scsi_status(struct scb *scb) 596uint32_t ahd_get_scsi_status(struct scb *scb)
597{ 597{
598 return (ahd_cmd_get_scsi_status(scb->io_ctx)); 598 return (ahd_cmd_get_scsi_status(scb->io_ctx));
599} 599}
600 600
601static __inline 601static inline
602void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type) 602void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type)
603{ 603{
604 /* 604 /*
@@ -607,43 +607,43 @@ void ahd_set_transaction_tag(struct scb *scb, int enabled, u_int type)
607 */ 607 */
608} 608}
609 609
610static __inline 610static inline
611u_long ahd_get_transfer_length(struct scb *scb) 611u_long ahd_get_transfer_length(struct scb *scb)
612{ 612{
613 return (scb->platform_data->xfer_len); 613 return (scb->platform_data->xfer_len);
614} 614}
615 615
616static __inline 616static inline
617int ahd_get_transfer_dir(struct scb *scb) 617int ahd_get_transfer_dir(struct scb *scb)
618{ 618{
619 return (scb->io_ctx->sc_data_direction); 619 return (scb->io_ctx->sc_data_direction);
620} 620}
621 621
622static __inline 622static inline
623void ahd_set_residual(struct scb *scb, u_long resid) 623void ahd_set_residual(struct scb *scb, u_long resid)
624{ 624{
625 scsi_set_resid(scb->io_ctx, resid); 625 scsi_set_resid(scb->io_ctx, resid);
626} 626}
627 627
628static __inline 628static inline
629void ahd_set_sense_residual(struct scb *scb, u_long resid) 629void ahd_set_sense_residual(struct scb *scb, u_long resid)
630{ 630{
631 scb->platform_data->sense_resid = resid; 631 scb->platform_data->sense_resid = resid;
632} 632}
633 633
634static __inline 634static inline
635u_long ahd_get_residual(struct scb *scb) 635u_long ahd_get_residual(struct scb *scb)
636{ 636{
637 return scsi_get_resid(scb->io_ctx); 637 return scsi_get_resid(scb->io_ctx);
638} 638}
639 639
640static __inline 640static inline
641u_long ahd_get_sense_residual(struct scb *scb) 641u_long ahd_get_sense_residual(struct scb *scb)
642{ 642{
643 return (scb->platform_data->sense_resid); 643 return (scb->platform_data->sense_resid);
644} 644}
645 645
646static __inline 646static inline
647int ahd_perform_autosense(struct scb *scb) 647int ahd_perform_autosense(struct scb *scb)
648{ 648{
649 /* 649 /*
@@ -654,20 +654,20 @@ int ahd_perform_autosense(struct scb *scb)
654 return (1); 654 return (1);
655} 655}
656 656
657static __inline uint32_t 657static inline uint32_t
658ahd_get_sense_bufsize(struct ahd_softc *ahd, struct scb *scb) 658ahd_get_sense_bufsize(struct ahd_softc *ahd, struct scb *scb)
659{ 659{
660 return (sizeof(struct scsi_sense_data)); 660 return (sizeof(struct scsi_sense_data));
661} 661}
662 662
663static __inline void 663static inline void
664ahd_notify_xfer_settings_change(struct ahd_softc *ahd, 664ahd_notify_xfer_settings_change(struct ahd_softc *ahd,
665 struct ahd_devinfo *devinfo) 665 struct ahd_devinfo *devinfo)
666{ 666{
667 /* Nothing to do here for linux */ 667 /* Nothing to do here for linux */
668} 668}
669 669
670static __inline void 670static inline void
671ahd_platform_scb_free(struct ahd_softc *ahd, struct scb *scb) 671ahd_platform_scb_free(struct ahd_softc *ahd, struct scb *scb)
672{ 672{
673 ahd->flags &= ~AHD_RESOURCE_SHORTAGE; 673 ahd->flags &= ~AHD_RESOURCE_SHORTAGE;
@@ -678,7 +678,7 @@ void ahd_platform_free(struct ahd_softc *ahd);
678void ahd_platform_init(struct ahd_softc *ahd); 678void ahd_platform_init(struct ahd_softc *ahd);
679void ahd_platform_freeze_devq(struct ahd_softc *ahd, struct scb *scb); 679void ahd_platform_freeze_devq(struct ahd_softc *ahd, struct scb *scb);
680 680
681static __inline void 681static inline void
682ahd_freeze_scb(struct scb *scb) 682ahd_freeze_scb(struct scb *scb)
683{ 683{
684 if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) { 684 if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) {
diff --git a/drivers/scsi/aic7xxx/aic79xx_pci.c b/drivers/scsi/aic7xxx/aic79xx_pci.c
index a734d77e880..90a04a37b4f 100644
--- a/drivers/scsi/aic7xxx/aic79xx_pci.c
+++ b/drivers/scsi/aic7xxx/aic79xx_pci.c
@@ -51,7 +51,7 @@
51 51
52#include "aic79xx_pci.h" 52#include "aic79xx_pci.h"
53 53
54static __inline uint64_t 54static inline uint64_t
55ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor) 55ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
56{ 56{
57 uint64_t id; 57 uint64_t id;
@@ -377,14 +377,12 @@ ahd_pci_config(struct ahd_softc *ahd, const struct ahd_pci_identity *entry)
377 error = ahd_init(ahd); 377 error = ahd_init(ahd);
378 if (error != 0) 378 if (error != 0)
379 return (error); 379 return (error);
380 ahd->init_level++;
380 381
381 /* 382 /*
382 * Allow interrupts now that we are completely setup. 383 * Allow interrupts now that we are completely setup.
383 */ 384 */
384 error = ahd_pci_map_int(ahd); 385 return ahd_pci_map_int(ahd);
385 if (!error)
386 ahd->init_level++;
387 return error;
388} 386}
389 387
390#ifdef CONFIG_PM 388#ifdef CONFIG_PM
diff --git a/drivers/scsi/aic7xxx/aic7xxx_inline.h b/drivers/scsi/aic7xxx/aic7xxx_inline.h
index 09bf2f4d78d..0b57b783ef4 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_inline.h
+++ b/drivers/scsi/aic7xxx/aic7xxx_inline.h
@@ -55,10 +55,9 @@ void ahc_sync_sglist(struct ahc_softc *ahc,
55 struct scb *scb, int op); 55 struct scb *scb, int op);
56 56
57/******************************** Debugging ***********************************/ 57/******************************** Debugging ***********************************/
58static __inline char *ahc_name(struct ahc_softc *ahc); 58static inline char *ahc_name(struct ahc_softc *ahc);
59 59
60static __inline char * 60static inline char *ahc_name(struct ahc_softc *ahc)
61ahc_name(struct ahc_softc *ahc)
62{ 61{
63 return (ahc->name); 62 return (ahc->name);
64} 63}
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h
index 3f7238db35e..56f07e527b4 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.h
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.h
@@ -230,7 +230,7 @@ int ahc_dmamap_unload(struct ahc_softc *, bus_dma_tag_t, bus_dmamap_t);
230#include "aic7xxx.h" 230#include "aic7xxx.h"
231 231
232/***************************** Timer Facilities *******************************/ 232/***************************** Timer Facilities *******************************/
233static __inline void 233static inline void
234ahc_scb_timer_reset(struct scb *scb, u_int usec) 234ahc_scb_timer_reset(struct scb *scb, u_int usec)
235{ 235{
236} 236}
@@ -401,19 +401,19 @@ struct info_str {
401/******************************** Locking *************************************/ 401/******************************** Locking *************************************/
402/* Lock protecting internal data structures */ 402/* Lock protecting internal data structures */
403 403
404static __inline void 404static inline void
405ahc_lockinit(struct ahc_softc *ahc) 405ahc_lockinit(struct ahc_softc *ahc)
406{ 406{
407 spin_lock_init(&ahc->platform_data->spin_lock); 407 spin_lock_init(&ahc->platform_data->spin_lock);
408} 408}
409 409
410static __inline void 410static inline void
411ahc_lock(struct ahc_softc *ahc, unsigned long *flags) 411ahc_lock(struct ahc_softc *ahc, unsigned long *flags)
412{ 412{
413 spin_lock_irqsave(&ahc->platform_data->spin_lock, *flags); 413 spin_lock_irqsave(&ahc->platform_data->spin_lock, *flags);
414} 414}
415 415
416static __inline void 416static inline void
417ahc_unlock(struct ahc_softc *ahc, unsigned long *flags) 417ahc_unlock(struct ahc_softc *ahc, unsigned long *flags)
418{ 418{
419 spin_unlock_irqrestore(&ahc->platform_data->spin_lock, *flags); 419 spin_unlock_irqrestore(&ahc->platform_data->spin_lock, *flags);
@@ -493,22 +493,22 @@ void ahc_pci_write_config(ahc_dev_softc_t pci,
493 int reg, uint32_t value, 493 int reg, uint32_t value,
494 int width); 494 int width);
495 495
496static __inline int ahc_get_pci_function(ahc_dev_softc_t); 496static inline int ahc_get_pci_function(ahc_dev_softc_t);
497static __inline int 497static inline int
498ahc_get_pci_function(ahc_dev_softc_t pci) 498ahc_get_pci_function(ahc_dev_softc_t pci)
499{ 499{
500 return (PCI_FUNC(pci->devfn)); 500 return (PCI_FUNC(pci->devfn));
501} 501}
502 502
503static __inline int ahc_get_pci_slot(ahc_dev_softc_t); 503static inline int ahc_get_pci_slot(ahc_dev_softc_t);
504static __inline int 504static inline int
505ahc_get_pci_slot(ahc_dev_softc_t pci) 505ahc_get_pci_slot(ahc_dev_softc_t pci)
506{ 506{
507 return (PCI_SLOT(pci->devfn)); 507 return (PCI_SLOT(pci->devfn));
508} 508}
509 509
510static __inline int ahc_get_pci_bus(ahc_dev_softc_t); 510static inline int ahc_get_pci_bus(ahc_dev_softc_t);
511static __inline int 511static inline int
512ahc_get_pci_bus(ahc_dev_softc_t pci) 512ahc_get_pci_bus(ahc_dev_softc_t pci)
513{ 513{
514 return (pci->bus->number); 514 return (pci->bus->number);
@@ -521,8 +521,8 @@ static inline void ahc_linux_pci_exit(void) {
521} 521}
522#endif 522#endif
523 523
524static __inline void ahc_flush_device_writes(struct ahc_softc *); 524static inline void ahc_flush_device_writes(struct ahc_softc *);
525static __inline void 525static inline void
526ahc_flush_device_writes(struct ahc_softc *ahc) 526ahc_flush_device_writes(struct ahc_softc *ahc)
527{ 527{
528 /* XXX Is this sufficient for all architectures??? */ 528 /* XXX Is this sufficient for all architectures??? */
@@ -535,81 +535,81 @@ int ahc_linux_proc_info(struct Scsi_Host *, char *, char **,
535 535
536/*************************** Domain Validation ********************************/ 536/*************************** Domain Validation ********************************/
537/*********************** Transaction Access Wrappers *************************/ 537/*********************** Transaction Access Wrappers *************************/
538static __inline void ahc_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t); 538static inline void ahc_cmd_set_transaction_status(struct scsi_cmnd *, uint32_t);
539static __inline void ahc_set_transaction_status(struct scb *, uint32_t); 539static inline void ahc_set_transaction_status(struct scb *, uint32_t);
540static __inline void ahc_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t); 540static inline void ahc_cmd_set_scsi_status(struct scsi_cmnd *, uint32_t);
541static __inline void ahc_set_scsi_status(struct scb *, uint32_t); 541static inline void ahc_set_scsi_status(struct scb *, uint32_t);
542static __inline uint32_t ahc_cmd_get_transaction_status(struct scsi_cmnd *cmd); 542static inline uint32_t ahc_cmd_get_transaction_status(struct scsi_cmnd *cmd);
543static __inline uint32_t ahc_get_transaction_status(struct scb *); 543static inline uint32_t ahc_get_transaction_status(struct scb *);
544static __inline uint32_t ahc_cmd_get_scsi_status(struct scsi_cmnd *cmd); 544static inline uint32_t ahc_cmd_get_scsi_status(struct scsi_cmnd *cmd);
545static __inline uint32_t ahc_get_scsi_status(struct scb *); 545static inline uint32_t ahc_get_scsi_status(struct scb *);
546static __inline void ahc_set_transaction_tag(struct scb *, int, u_int); 546static inline void ahc_set_transaction_tag(struct scb *, int, u_int);
547static __inline u_long ahc_get_transfer_length(struct scb *); 547static inline u_long ahc_get_transfer_length(struct scb *);
548static __inline int ahc_get_transfer_dir(struct scb *); 548static inline int ahc_get_transfer_dir(struct scb *);
549static __inline void ahc_set_residual(struct scb *, u_long); 549static inline void ahc_set_residual(struct scb *, u_long);
550static __inline void ahc_set_sense_residual(struct scb *scb, u_long resid); 550static inline void ahc_set_sense_residual(struct scb *scb, u_long resid);
551static __inline u_long ahc_get_residual(struct scb *); 551static inline u_long ahc_get_residual(struct scb *);
552static __inline u_long ahc_get_sense_residual(struct scb *); 552static inline u_long ahc_get_sense_residual(struct scb *);
553static __inline int ahc_perform_autosense(struct scb *); 553static inline int ahc_perform_autosense(struct scb *);
554static __inline uint32_t ahc_get_sense_bufsize(struct ahc_softc *, 554static inline uint32_t ahc_get_sense_bufsize(struct ahc_softc *,
555 struct scb *); 555 struct scb *);
556static __inline void ahc_notify_xfer_settings_change(struct ahc_softc *, 556static inline void ahc_notify_xfer_settings_change(struct ahc_softc *,
557 struct ahc_devinfo *); 557 struct ahc_devinfo *);
558static __inline void ahc_platform_scb_free(struct ahc_softc *ahc, 558static inline void ahc_platform_scb_free(struct ahc_softc *ahc,
559 struct scb *scb); 559 struct scb *scb);
560static __inline void ahc_freeze_scb(struct scb *scb); 560static inline void ahc_freeze_scb(struct scb *scb);
561 561
562static __inline 562static inline
563void ahc_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status) 563void ahc_cmd_set_transaction_status(struct scsi_cmnd *cmd, uint32_t status)
564{ 564{
565 cmd->result &= ~(CAM_STATUS_MASK << 16); 565 cmd->result &= ~(CAM_STATUS_MASK << 16);
566 cmd->result |= status << 16; 566 cmd->result |= status << 16;
567} 567}
568 568
569static __inline 569static inline
570void ahc_set_transaction_status(struct scb *scb, uint32_t status) 570void ahc_set_transaction_status(struct scb *scb, uint32_t status)
571{ 571{
572 ahc_cmd_set_transaction_status(scb->io_ctx,status); 572 ahc_cmd_set_transaction_status(scb->io_ctx,status);
573} 573}
574 574
575static __inline 575static inline
576void ahc_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status) 576void ahc_cmd_set_scsi_status(struct scsi_cmnd *cmd, uint32_t status)
577{ 577{
578 cmd->result &= ~0xFFFF; 578 cmd->result &= ~0xFFFF;
579 cmd->result |= status; 579 cmd->result |= status;
580} 580}
581 581
582static __inline 582static inline
583void ahc_set_scsi_status(struct scb *scb, uint32_t status) 583void ahc_set_scsi_status(struct scb *scb, uint32_t status)
584{ 584{
585 ahc_cmd_set_scsi_status(scb->io_ctx, status); 585 ahc_cmd_set_scsi_status(scb->io_ctx, status);
586} 586}
587 587
588static __inline 588static inline
589uint32_t ahc_cmd_get_transaction_status(struct scsi_cmnd *cmd) 589uint32_t ahc_cmd_get_transaction_status(struct scsi_cmnd *cmd)
590{ 590{
591 return ((cmd->result >> 16) & CAM_STATUS_MASK); 591 return ((cmd->result >> 16) & CAM_STATUS_MASK);
592} 592}
593 593
594static __inline 594static inline
595uint32_t ahc_get_transaction_status(struct scb *scb) 595uint32_t ahc_get_transaction_status(struct scb *scb)
596{ 596{
597 return (ahc_cmd_get_transaction_status(scb->io_ctx)); 597 return (ahc_cmd_get_transaction_status(scb->io_ctx));
598} 598}
599 599
600static __inline 600static inline
601uint32_t ahc_cmd_get_scsi_status(struct scsi_cmnd *cmd) 601uint32_t ahc_cmd_get_scsi_status(struct scsi_cmnd *cmd)
602{ 602{
603 return (cmd->result & 0xFFFF); 603 return (cmd->result & 0xFFFF);
604} 604}
605 605
606static __inline 606static inline
607uint32_t ahc_get_scsi_status(struct scb *scb) 607uint32_t ahc_get_scsi_status(struct scb *scb)
608{ 608{
609 return (ahc_cmd_get_scsi_status(scb->io_ctx)); 609 return (ahc_cmd_get_scsi_status(scb->io_ctx));
610} 610}
611 611
612static __inline 612static inline
613void ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type) 613void ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type)
614{ 614{
615 /* 615 /*
@@ -618,43 +618,43 @@ void ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type)
618 */ 618 */
619} 619}
620 620
621static __inline 621static inline
622u_long ahc_get_transfer_length(struct scb *scb) 622u_long ahc_get_transfer_length(struct scb *scb)
623{ 623{
624 return (scb->platform_data->xfer_len); 624 return (scb->platform_data->xfer_len);
625} 625}
626 626
627static __inline 627static inline
628int ahc_get_transfer_dir(struct scb *scb) 628int ahc_get_transfer_dir(struct scb *scb)
629{ 629{
630 return (scb->io_ctx->sc_data_direction); 630 return (scb->io_ctx->sc_data_direction);
631} 631}
632 632
633static __inline 633static inline
634void ahc_set_residual(struct scb *scb, u_long resid) 634void ahc_set_residual(struct scb *scb, u_long resid)
635{ 635{
636 scsi_set_resid(scb->io_ctx, resid); 636 scsi_set_resid(scb->io_ctx, resid);
637} 637}
638 638
639static __inline 639static inline
640void ahc_set_sense_residual(struct scb *scb, u_long resid) 640void ahc_set_sense_residual(struct scb *scb, u_long resid)
641{ 641{
642 scb->platform_data->sense_resid = resid; 642 scb->platform_data->sense_resid = resid;
643} 643}
644 644
645static __inline 645static inline
646u_long ahc_get_residual(struct scb *scb) 646u_long ahc_get_residual(struct scb *scb)
647{ 647{
648 return scsi_get_resid(scb->io_ctx); 648 return scsi_get_resid(scb->io_ctx);
649} 649}
650 650
651static __inline 651static inline
652u_long ahc_get_sense_residual(struct scb *scb) 652u_long ahc_get_sense_residual(struct scb *scb)
653{ 653{
654 return (scb->platform_data->sense_resid); 654 return (scb->platform_data->sense_resid);
655} 655}
656 656
657static __inline 657static inline
658int ahc_perform_autosense(struct scb *scb) 658int ahc_perform_autosense(struct scb *scb)
659{ 659{
660 /* 660 /*
@@ -665,20 +665,20 @@ int ahc_perform_autosense(struct scb *scb)
665 return (1); 665 return (1);
666} 666}
667 667
668static __inline uint32_t 668static inline uint32_t
669ahc_get_sense_bufsize(struct ahc_softc *ahc, struct scb *scb) 669ahc_get_sense_bufsize(struct ahc_softc *ahc, struct scb *scb)
670{ 670{
671 return (sizeof(struct scsi_sense_data)); 671 return (sizeof(struct scsi_sense_data));
672} 672}
673 673
674static __inline void 674static inline void
675ahc_notify_xfer_settings_change(struct ahc_softc *ahc, 675ahc_notify_xfer_settings_change(struct ahc_softc *ahc,
676 struct ahc_devinfo *devinfo) 676 struct ahc_devinfo *devinfo)
677{ 677{
678 /* Nothing to do here for linux */ 678 /* Nothing to do here for linux */
679} 679}
680 680
681static __inline void 681static inline void
682ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb) 682ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb)
683{ 683{
684} 684}
@@ -687,7 +687,7 @@ int ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg);
687void ahc_platform_free(struct ahc_softc *ahc); 687void ahc_platform_free(struct ahc_softc *ahc);
688void ahc_platform_freeze_devq(struct ahc_softc *ahc, struct scb *scb); 688void ahc_platform_freeze_devq(struct ahc_softc *ahc, struct scb *scb);
689 689
690static __inline void 690static inline void
691ahc_freeze_scb(struct scb *scb) 691ahc_freeze_scb(struct scb *scb)
692{ 692{
693 if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) { 693 if ((scb->io_ctx->result & (CAM_DEV_QFRZN << 16)) == 0) {
diff --git a/drivers/scsi/aic7xxx/aic7xxx_pci.c b/drivers/scsi/aic7xxx/aic7xxx_pci.c
index c07cb6eebb0..27014b9de12 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_pci.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_pci.c
@@ -54,7 +54,7 @@
54 54
55#include "aic7xxx_pci.h" 55#include "aic7xxx_pci.h"
56 56
57static __inline uint64_t 57static inline uint64_t
58ahc_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor) 58ahc_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
59{ 59{
60 uint64_t id; 60 uint64_t id;
@@ -960,16 +960,12 @@ ahc_pci_config(struct ahc_softc *ahc, const struct ahc_pci_identity *entry)
960 error = ahc_init(ahc); 960 error = ahc_init(ahc);
961 if (error != 0) 961 if (error != 0)
962 return (error); 962 return (error);
963 ahc->init_level++;
963 964
964 /* 965 /*
965 * Allow interrupts now that we are completely setup. 966 * Allow interrupts now that we are completely setup.
966 */ 967 */
967 error = ahc_pci_map_int(ahc); 968 return ahc_pci_map_int(ahc);
968 if (error != 0)
969 return (error);
970
971 ahc->init_level++;
972 return (0);
973} 969}
974 970
975/* 971/*
diff --git a/drivers/scsi/aic7xxx/aiclib.h b/drivers/scsi/aic7xxx/aiclib.h
index 3bfbf0fe1ec..f8fd198aafb 100644
--- a/drivers/scsi/aic7xxx/aiclib.h
+++ b/drivers/scsi/aic7xxx/aiclib.h
@@ -133,7 +133,7 @@ struct scsi_sense_data
133#define SCSI_STATUS_TASK_ABORTED 0x40 133#define SCSI_STATUS_TASK_ABORTED 0x40
134 134
135/************************* Large Disk Handling ********************************/ 135/************************* Large Disk Handling ********************************/
136static __inline int 136static inline int
137aic_sector_div(sector_t capacity, int heads, int sectors) 137aic_sector_div(sector_t capacity, int heads, int sectors)
138{ 138{
139 /* ugly, ugly sector_div calling convention.. */ 139 /* ugly, ugly sector_div calling convention.. */
@@ -141,7 +141,7 @@ aic_sector_div(sector_t capacity, int heads, int sectors)
141 return (int)capacity; 141 return (int)capacity;
142} 142}
143 143
144static __inline uint32_t 144static inline uint32_t
145scsi_4btoul(uint8_t *bytes) 145scsi_4btoul(uint8_t *bytes)
146{ 146{
147 uint32_t rv; 147 uint32_t rv;
diff --git a/drivers/scsi/cxgb3i/Kbuild b/drivers/scsi/cxgb3i/Kbuild
index ee7d6d2f9c3..25a2032bfa2 100644
--- a/drivers/scsi/cxgb3i/Kbuild
+++ b/drivers/scsi/cxgb3i/Kbuild
@@ -1,4 +1,4 @@
1EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/cxgb3 1EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/cxgb3
2 2
3cxgb3i-y := cxgb3i_init.o cxgb3i_iscsi.o cxgb3i_pdu.o cxgb3i_offload.o 3cxgb3i-y := cxgb3i_init.o cxgb3i_iscsi.o cxgb3i_pdu.o cxgb3i_offload.o cxgb3i_ddp.o
4obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i_ddp.o cxgb3i.o 4obj-$(CONFIG_SCSI_CXGB3_ISCSI) += cxgb3i.o
diff --git a/drivers/scsi/cxgb3i/cxgb3i.h b/drivers/scsi/cxgb3i/cxgb3i.h
index a7cf550b9cc..d362860e750 100644
--- a/drivers/scsi/cxgb3i/cxgb3i.h
+++ b/drivers/scsi/cxgb3i/cxgb3i.h
@@ -66,10 +66,12 @@ struct cxgb3i_hba {
66 * @pdev: pointer to pci dev 66 * @pdev: pointer to pci dev
67 * @hba_cnt: # of hbas (the same as # of ports) 67 * @hba_cnt: # of hbas (the same as # of ports)
68 * @hba: all the hbas on this adapter 68 * @hba: all the hbas on this adapter
69 * @flags: bit flag for adapter event/status
69 * @tx_max_size: max. tx packet size supported 70 * @tx_max_size: max. tx packet size supported
70 * @rx_max_size: max. rx packet size supported 71 * @rx_max_size: max. rx packet size supported
71 * @tag_format: ddp tag format settings 72 * @tag_format: ddp tag format settings
72 */ 73 */
74#define CXGB3I_ADAPTER_FLAG_RESET 0x1
73struct cxgb3i_adapter { 75struct cxgb3i_adapter {
74 struct list_head list_head; 76 struct list_head list_head;
75 spinlock_t lock; 77 spinlock_t lock;
@@ -78,6 +80,7 @@ struct cxgb3i_adapter {
78 unsigned char hba_cnt; 80 unsigned char hba_cnt;
79 struct cxgb3i_hba *hba[MAX_NPORTS]; 81 struct cxgb3i_hba *hba[MAX_NPORTS];
80 82
83 unsigned int flags;
81 unsigned int tx_max_size; 84 unsigned int tx_max_size;
82 unsigned int rx_max_size; 85 unsigned int rx_max_size;
83 86
@@ -137,10 +140,9 @@ struct cxgb3i_task_data {
137int cxgb3i_iscsi_init(void); 140int cxgb3i_iscsi_init(void);
138void cxgb3i_iscsi_cleanup(void); 141void cxgb3i_iscsi_cleanup(void);
139 142
140struct cxgb3i_adapter *cxgb3i_adapter_add(struct t3cdev *); 143struct cxgb3i_adapter *cxgb3i_adapter_find_by_tdev(struct t3cdev *);
141void cxgb3i_adapter_remove(struct t3cdev *); 144void cxgb3i_adapter_open(struct t3cdev *);
142int cxgb3i_adapter_ulp_init(struct cxgb3i_adapter *); 145void cxgb3i_adapter_close(struct t3cdev *);
143void cxgb3i_adapter_ulp_cleanup(struct cxgb3i_adapter *);
144 146
145struct cxgb3i_hba *cxgb3i_hba_find_by_netdev(struct net_device *); 147struct cxgb3i_hba *cxgb3i_hba_find_by_netdev(struct net_device *);
146struct cxgb3i_hba *cxgb3i_hba_host_add(struct cxgb3i_adapter *, 148struct cxgb3i_hba *cxgb3i_hba_host_add(struct cxgb3i_adapter *,
diff --git a/drivers/scsi/cxgb3i/cxgb3i_ddp.c b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
index 4eb6f5593b3..d06a661c209 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_ddp.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
@@ -23,19 +23,6 @@
23 23
24#include "cxgb3i_ddp.h" 24#include "cxgb3i_ddp.h"
25 25
26#define DRV_MODULE_NAME "cxgb3i_ddp"
27#define DRV_MODULE_VERSION "1.0.0"
28#define DRV_MODULE_RELDATE "Dec. 1, 2008"
29
30static char version[] =
31 "Chelsio S3xx iSCSI DDP " DRV_MODULE_NAME
32 " v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
33
34MODULE_AUTHOR("Karen Xie <kxie@chelsio.com>");
35MODULE_DESCRIPTION("cxgb3i ddp pagepod manager");
36MODULE_LICENSE("GPL");
37MODULE_VERSION(DRV_MODULE_VERSION);
38
39#define ddp_log_error(fmt...) printk(KERN_ERR "cxgb3i_ddp: ERR! " fmt) 26#define ddp_log_error(fmt...) printk(KERN_ERR "cxgb3i_ddp: ERR! " fmt)
40#define ddp_log_warn(fmt...) printk(KERN_WARNING "cxgb3i_ddp: WARN! " fmt) 27#define ddp_log_warn(fmt...) printk(KERN_WARNING "cxgb3i_ddp: WARN! " fmt)
41#define ddp_log_info(fmt...) printk(KERN_INFO "cxgb3i_ddp: " fmt) 28#define ddp_log_info(fmt...) printk(KERN_INFO "cxgb3i_ddp: " fmt)
@@ -66,9 +53,6 @@ static unsigned char ddp_page_order[DDP_PGIDX_MAX] = {0, 1, 2, 4};
66static unsigned char ddp_page_shift[DDP_PGIDX_MAX] = {12, 13, 14, 16}; 53static unsigned char ddp_page_shift[DDP_PGIDX_MAX] = {12, 13, 14, 16};
67static unsigned char page_idx = DDP_PGIDX_MAX; 54static unsigned char page_idx = DDP_PGIDX_MAX;
68 55
69static LIST_HEAD(cxgb3i_ddp_list);
70static DEFINE_RWLOCK(cxgb3i_ddp_rwlock);
71
72/* 56/*
73 * functions to program the pagepod in h/w 57 * functions to program the pagepod in h/w
74 */ 58 */
@@ -113,8 +97,8 @@ static int set_ddp_map(struct cxgb3i_ddp_info *ddp, struct pagepod_hdr *hdr,
113 return 0; 97 return 0;
114} 98}
115 99
116static int clear_ddp_map(struct cxgb3i_ddp_info *ddp, unsigned int idx, 100static void clear_ddp_map(struct cxgb3i_ddp_info *ddp, unsigned int tag,
117 unsigned int npods) 101 unsigned int idx, unsigned int npods)
118{ 102{
119 unsigned int pm_addr = (idx << PPOD_SIZE_SHIFT) + ddp->llimit; 103 unsigned int pm_addr = (idx << PPOD_SIZE_SHIFT) + ddp->llimit;
120 int i; 104 int i;
@@ -122,13 +106,17 @@ static int clear_ddp_map(struct cxgb3i_ddp_info *ddp, unsigned int idx,
122 for (i = 0; i < npods; i++, idx++, pm_addr += PPOD_SIZE) { 106 for (i = 0; i < npods; i++, idx++, pm_addr += PPOD_SIZE) {
123 struct sk_buff *skb = ddp->gl_skb[idx]; 107 struct sk_buff *skb = ddp->gl_skb[idx];
124 108
109 if (!skb) {
110 ddp_log_error("ddp tag 0x%x, 0x%x, %d/%u, skb NULL.\n",
111 tag, idx, i, npods);
112 continue;
113 }
125 ddp->gl_skb[idx] = NULL; 114 ddp->gl_skb[idx] = NULL;
126 memset((skb->head + sizeof(struct ulp_mem_io)), 0, PPOD_SIZE); 115 memset((skb->head + sizeof(struct ulp_mem_io)), 0, PPOD_SIZE);
127 ulp_mem_io_set_hdr(skb, pm_addr); 116 ulp_mem_io_set_hdr(skb, pm_addr);
128 skb->priority = CPL_PRIORITY_CONTROL; 117 skb->priority = CPL_PRIORITY_CONTROL;
129 cxgb3_ofld_send(ddp->tdev, skb); 118 cxgb3_ofld_send(ddp->tdev, skb);
130 } 119 }
131 return 0;
132} 120}
133 121
134static inline int ddp_find_unused_entries(struct cxgb3i_ddp_info *ddp, 122static inline int ddp_find_unused_entries(struct cxgb3i_ddp_info *ddp,
@@ -211,7 +199,6 @@ int cxgb3i_ddp_find_page_index(unsigned long pgsz)
211 ddp_log_debug("ddp page size 0x%lx not supported.\n", pgsz); 199 ddp_log_debug("ddp page size 0x%lx not supported.\n", pgsz);
212 return DDP_PGIDX_MAX; 200 return DDP_PGIDX_MAX;
213} 201}
214EXPORT_SYMBOL_GPL(cxgb3i_ddp_find_page_index);
215 202
216static inline void ddp_gl_unmap(struct pci_dev *pdev, 203static inline void ddp_gl_unmap(struct pci_dev *pdev,
217 struct cxgb3i_gather_list *gl) 204 struct cxgb3i_gather_list *gl)
@@ -334,7 +321,6 @@ error_out:
334 kfree(gl); 321 kfree(gl);
335 return NULL; 322 return NULL;
336} 323}
337EXPORT_SYMBOL_GPL(cxgb3i_ddp_make_gl);
338 324
339/** 325/**
340 * cxgb3i_ddp_release_gl - release a page buffer list 326 * cxgb3i_ddp_release_gl - release a page buffer list
@@ -348,7 +334,6 @@ void cxgb3i_ddp_release_gl(struct cxgb3i_gather_list *gl,
348 ddp_gl_unmap(pdev, gl); 334 ddp_gl_unmap(pdev, gl);
349 kfree(gl); 335 kfree(gl);
350} 336}
351EXPORT_SYMBOL_GPL(cxgb3i_ddp_release_gl);
352 337
353/** 338/**
354 * cxgb3i_ddp_tag_reserve - set up ddp for a data transfer 339 * cxgb3i_ddp_tag_reserve - set up ddp for a data transfer
@@ -430,7 +415,6 @@ unmark_entries:
430 ddp_unmark_entries(ddp, idx, npods); 415 ddp_unmark_entries(ddp, idx, npods);
431 return err; 416 return err;
432} 417}
433EXPORT_SYMBOL_GPL(cxgb3i_ddp_tag_reserve);
434 418
435/** 419/**
436 * cxgb3i_ddp_tag_release - release a ddp tag 420 * cxgb3i_ddp_tag_release - release a ddp tag
@@ -453,22 +437,21 @@ void cxgb3i_ddp_tag_release(struct t3cdev *tdev, u32 tag)
453 struct cxgb3i_gather_list *gl = ddp->gl_map[idx]; 437 struct cxgb3i_gather_list *gl = ddp->gl_map[idx];
454 unsigned int npods; 438 unsigned int npods;
455 439
456 if (!gl) { 440 if (!gl || !gl->nelem) {
457 ddp_log_error("release ddp 0x%x, idx 0x%x, gl NULL.\n", 441 ddp_log_error("release 0x%x, idx 0x%x, gl 0x%p, %u.\n",
458 tag, idx); 442 tag, idx, gl, gl ? gl->nelem : 0);
459 return; 443 return;
460 } 444 }
461 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT; 445 npods = (gl->nelem + PPOD_PAGES_MAX - 1) >> PPOD_PAGES_SHIFT;
462 ddp_log_debug("ddp tag 0x%x, release idx 0x%x, npods %u.\n", 446 ddp_log_debug("ddp tag 0x%x, release idx 0x%x, npods %u.\n",
463 tag, idx, npods); 447 tag, idx, npods);
464 clear_ddp_map(ddp, idx, npods); 448 clear_ddp_map(ddp, tag, idx, npods);
465 ddp_unmark_entries(ddp, idx, npods); 449 ddp_unmark_entries(ddp, idx, npods);
466 cxgb3i_ddp_release_gl(gl, ddp->pdev); 450 cxgb3i_ddp_release_gl(gl, ddp->pdev);
467 } else 451 } else
468 ddp_log_error("ddp tag 0x%x, idx 0x%x > max 0x%x.\n", 452 ddp_log_error("ddp tag 0x%x, idx 0x%x > max 0x%x.\n",
469 tag, idx, ddp->nppods); 453 tag, idx, ddp->nppods);
470} 454}
471EXPORT_SYMBOL_GPL(cxgb3i_ddp_tag_release);
472 455
473static int setup_conn_pgidx(struct t3cdev *tdev, unsigned int tid, int pg_idx, 456static int setup_conn_pgidx(struct t3cdev *tdev, unsigned int tid, int pg_idx,
474 int reply) 457 int reply)
@@ -509,7 +492,6 @@ int cxgb3i_setup_conn_host_pagesize(struct t3cdev *tdev, unsigned int tid,
509{ 492{
510 return setup_conn_pgidx(tdev, tid, page_idx, reply); 493 return setup_conn_pgidx(tdev, tid, page_idx, reply);
511} 494}
512EXPORT_SYMBOL_GPL(cxgb3i_setup_conn_host_pagesize);
513 495
514/** 496/**
515 * cxgb3i_setup_conn_pagesize - setup the conn.'s ddp page size 497 * cxgb3i_setup_conn_pagesize - setup the conn.'s ddp page size
@@ -526,7 +508,6 @@ int cxgb3i_setup_conn_pagesize(struct t3cdev *tdev, unsigned int tid,
526 508
527 return setup_conn_pgidx(tdev, tid, pgidx, reply); 509 return setup_conn_pgidx(tdev, tid, pgidx, reply);
528} 510}
529EXPORT_SYMBOL_GPL(cxgb3i_setup_conn_pagesize);
530 511
531/** 512/**
532 * cxgb3i_setup_conn_digest - setup conn. digest setting 513 * cxgb3i_setup_conn_digest - setup conn. digest setting
@@ -562,26 +543,104 @@ int cxgb3i_setup_conn_digest(struct t3cdev *tdev, unsigned int tid,
562 cxgb3_ofld_send(tdev, skb); 543 cxgb3_ofld_send(tdev, skb);
563 return 0; 544 return 0;
564} 545}
565EXPORT_SYMBOL_GPL(cxgb3i_setup_conn_digest);
566 546
567static int ddp_init(struct t3cdev *tdev) 547
548/**
549 * cxgb3i_adapter_ddp_info - read the adapter's ddp information
550 * @tdev: t3cdev adapter
551 * @tformat: tag format
552 * @txsz: max tx pdu payload size, filled in by this func.
553 * @rxsz: max rx pdu payload size, filled in by this func.
554 * setup the tag format for a given iscsi entity
555 */
556int cxgb3i_adapter_ddp_info(struct t3cdev *tdev,
557 struct cxgb3i_tag_format *tformat,
558 unsigned int *txsz, unsigned int *rxsz)
559{
560 struct cxgb3i_ddp_info *ddp;
561 unsigned char idx_bits;
562
563 if (!tformat)
564 return -EINVAL;
565
566 if (!tdev->ulp_iscsi)
567 return -EINVAL;
568
569 ddp = (struct cxgb3i_ddp_info *)tdev->ulp_iscsi;
570
571 idx_bits = 32 - tformat->sw_bits;
572 tformat->rsvd_bits = ddp->idx_bits;
573 tformat->rsvd_shift = PPOD_IDX_SHIFT;
574 tformat->rsvd_mask = (1 << tformat->rsvd_bits) - 1;
575
576 ddp_log_info("tag format: sw %u, rsvd %u,%u, mask 0x%x.\n",
577 tformat->sw_bits, tformat->rsvd_bits,
578 tformat->rsvd_shift, tformat->rsvd_mask);
579
580 *txsz = min_t(unsigned int, ULP2_MAX_PDU_PAYLOAD,
581 ddp->max_txsz - ISCSI_PDU_NONPAYLOAD_LEN);
582 *rxsz = min_t(unsigned int, ULP2_MAX_PDU_PAYLOAD,
583 ddp->max_rxsz - ISCSI_PDU_NONPAYLOAD_LEN);
584 ddp_log_info("max payload size: %u/%u, %u/%u.\n",
585 *txsz, ddp->max_txsz, *rxsz, ddp->max_rxsz);
586 return 0;
587}
588
589/**
590 * cxgb3i_ddp_cleanup - release the cxgb3 adapter's ddp resource
591 * @tdev: t3cdev adapter
592 * release all the resource held by the ddp pagepod manager for a given
593 * adapter if needed
594 */
595void cxgb3i_ddp_cleanup(struct t3cdev *tdev)
596{
597 int i = 0;
598 struct cxgb3i_ddp_info *ddp = (struct cxgb3i_ddp_info *)tdev->ulp_iscsi;
599
600 ddp_log_info("t3dev 0x%p, release ddp 0x%p.\n", tdev, ddp);
601
602 if (ddp) {
603 tdev->ulp_iscsi = NULL;
604 while (i < ddp->nppods) {
605 struct cxgb3i_gather_list *gl = ddp->gl_map[i];
606 if (gl) {
607 int npods = (gl->nelem + PPOD_PAGES_MAX - 1)
608 >> PPOD_PAGES_SHIFT;
609 ddp_log_info("t3dev 0x%p, ddp %d + %d.\n",
610 tdev, i, npods);
611 kfree(gl);
612 ddp_free_gl_skb(ddp, i, npods);
613 i += npods;
614 } else
615 i++;
616 }
617 cxgb3i_free_big_mem(ddp);
618 }
619}
620
621/**
622 * ddp_init - initialize the cxgb3 adapter's ddp resource
623 * @tdev: t3cdev adapter
624 * initialize the ddp pagepod manager for a given adapter
625 */
626static void ddp_init(struct t3cdev *tdev)
568{ 627{
569 struct cxgb3i_ddp_info *ddp; 628 struct cxgb3i_ddp_info *ddp;
570 struct ulp_iscsi_info uinfo; 629 struct ulp_iscsi_info uinfo;
571 unsigned int ppmax, bits; 630 unsigned int ppmax, bits;
572 int i, err; 631 int i, err;
573 static int vers_printed;
574 632
575 if (!vers_printed) { 633 if (tdev->ulp_iscsi) {
576 printk(KERN_INFO "%s", version); 634 ddp_log_warn("t3dev 0x%p, ddp 0x%p already set up.\n",
577 vers_printed = 1; 635 tdev, tdev->ulp_iscsi);
636 return;
578 } 637 }
579 638
580 err = tdev->ctl(tdev, ULP_ISCSI_GET_PARAMS, &uinfo); 639 err = tdev->ctl(tdev, ULP_ISCSI_GET_PARAMS, &uinfo);
581 if (err < 0) { 640 if (err < 0) {
582 ddp_log_error("%s, failed to get iscsi param err=%d.\n", 641 ddp_log_error("%s, failed to get iscsi param err=%d.\n",
583 tdev->name, err); 642 tdev->name, err);
584 return err; 643 return;
585 } 644 }
586 645
587 ppmax = (uinfo.ulimit - uinfo.llimit + 1) >> PPOD_SIZE_SHIFT; 646 ppmax = (uinfo.ulimit - uinfo.llimit + 1) >> PPOD_SIZE_SHIFT;
@@ -598,7 +657,7 @@ static int ddp_init(struct t3cdev *tdev)
598 if (!ddp) { 657 if (!ddp) {
599 ddp_log_warn("%s unable to alloc ddp 0x%d, ddp disabled.\n", 658 ddp_log_warn("%s unable to alloc ddp 0x%d, ddp disabled.\n",
600 tdev->name, ppmax); 659 tdev->name, ppmax);
601 return 0; 660 return;
602 } 661 }
603 ddp->gl_map = (struct cxgb3i_gather_list **)(ddp + 1); 662 ddp->gl_map = (struct cxgb3i_gather_list **)(ddp + 1);
604 ddp->gl_skb = (struct sk_buff **)(((char *)ddp->gl_map) + 663 ddp->gl_skb = (struct sk_buff **)(((char *)ddp->gl_map) +
@@ -632,142 +691,26 @@ static int ddp_init(struct t3cdev *tdev)
632 691
633 tdev->ulp_iscsi = ddp; 692 tdev->ulp_iscsi = ddp;
634 693
635 /* add to the list */ 694 ddp_log_info("tdev 0x%p, nppods %u, bits %u, mask 0x%x,0x%x pkt %u/%u,"
636 write_lock(&cxgb3i_ddp_rwlock); 695 " %u/%u.\n",
637 list_add_tail(&ddp->list, &cxgb3i_ddp_list); 696 tdev, ppmax, ddp->idx_bits, ddp->idx_mask,
638 write_unlock(&cxgb3i_ddp_rwlock); 697 ddp->rsvd_tag_mask, ddp->max_txsz, uinfo.max_txsz,
639
640 ddp_log_info("nppods %u (0x%x ~ 0x%x), bits %u, mask 0x%x,0x%x "
641 "pkt %u/%u, %u/%u.\n",
642 ppmax, ddp->llimit, ddp->ulimit, ddp->idx_bits,
643 ddp->idx_mask, ddp->rsvd_tag_mask,
644 ddp->max_txsz, uinfo.max_txsz,
645 ddp->max_rxsz, uinfo.max_rxsz); 698 ddp->max_rxsz, uinfo.max_rxsz);
646 return 0; 699 return;
647 700
648free_ddp_map: 701free_ddp_map:
649 cxgb3i_free_big_mem(ddp); 702 cxgb3i_free_big_mem(ddp);
650 return err;
651}
652
653/**
654 * cxgb3i_adapter_ddp_init - initialize the adapter's ddp resource
655 * @tdev: t3cdev adapter
656 * @tformat: tag format
657 * @txsz: max tx pdu payload size, filled in by this func.
658 * @rxsz: max rx pdu payload size, filled in by this func.
659 * initialize the ddp pagepod manager for a given adapter if needed and
660 * setup the tag format for a given iscsi entity
661 */
662int cxgb3i_adapter_ddp_init(struct t3cdev *tdev,
663 struct cxgb3i_tag_format *tformat,
664 unsigned int *txsz, unsigned int *rxsz)
665{
666 struct cxgb3i_ddp_info *ddp;
667 unsigned char idx_bits;
668
669 if (!tformat)
670 return -EINVAL;
671
672 if (!tdev->ulp_iscsi) {
673 int err = ddp_init(tdev);
674 if (err < 0)
675 return err;
676 }
677 ddp = (struct cxgb3i_ddp_info *)tdev->ulp_iscsi;
678
679 idx_bits = 32 - tformat->sw_bits;
680 tformat->rsvd_bits = ddp->idx_bits;
681 tformat->rsvd_shift = PPOD_IDX_SHIFT;
682 tformat->rsvd_mask = (1 << tformat->rsvd_bits) - 1;
683
684 ddp_log_info("tag format: sw %u, rsvd %u,%u, mask 0x%x.\n",
685 tformat->sw_bits, tformat->rsvd_bits,
686 tformat->rsvd_shift, tformat->rsvd_mask);
687
688 *txsz = min_t(unsigned int, ULP2_MAX_PDU_PAYLOAD,
689 ddp->max_txsz - ISCSI_PDU_NONPAYLOAD_LEN);
690 *rxsz = min_t(unsigned int, ULP2_MAX_PDU_PAYLOAD,
691 ddp->max_rxsz - ISCSI_PDU_NONPAYLOAD_LEN);
692 ddp_log_info("max payload size: %u/%u, %u/%u.\n",
693 *txsz, ddp->max_txsz, *rxsz, ddp->max_rxsz);
694 return 0;
695}
696EXPORT_SYMBOL_GPL(cxgb3i_adapter_ddp_init);
697
698static void ddp_release(struct cxgb3i_ddp_info *ddp)
699{
700 int i = 0;
701 struct t3cdev *tdev = ddp->tdev;
702
703 tdev->ulp_iscsi = NULL;
704 while (i < ddp->nppods) {
705 struct cxgb3i_gather_list *gl = ddp->gl_map[i];
706 if (gl) {
707 int npods = (gl->nelem + PPOD_PAGES_MAX - 1)
708 >> PPOD_PAGES_SHIFT;
709
710 kfree(gl);
711 ddp_free_gl_skb(ddp, i, npods);
712 } else
713 i++;
714 }
715 cxgb3i_free_big_mem(ddp);
716}
717
718/**
719 * cxgb3i_adapter_ddp_cleanup - release the adapter's ddp resource
720 * @tdev: t3cdev adapter
721 * release all the resource held by the ddp pagepod manager for a given
722 * adapter if needed
723 */
724void cxgb3i_adapter_ddp_cleanup(struct t3cdev *tdev)
725{
726 struct cxgb3i_ddp_info *ddp;
727
728 /* remove from the list */
729 write_lock(&cxgb3i_ddp_rwlock);
730 list_for_each_entry(ddp, &cxgb3i_ddp_list, list) {
731 if (ddp->tdev == tdev) {
732 list_del(&ddp->list);
733 break;
734 }
735 }
736 write_unlock(&cxgb3i_ddp_rwlock);
737
738 if (ddp)
739 ddp_release(ddp);
740}
741EXPORT_SYMBOL_GPL(cxgb3i_adapter_ddp_cleanup);
742
743/**
744 * cxgb3i_ddp_init_module - module init entry point
745 * initialize any driver wide global data structures
746 */
747static int __init cxgb3i_ddp_init_module(void)
748{
749 page_idx = cxgb3i_ddp_find_page_index(PAGE_SIZE);
750 ddp_log_info("system PAGE_SIZE %lu, ddp idx %u.\n",
751 PAGE_SIZE, page_idx);
752 return 0;
753} 703}
754 704
755/** 705/**
756 * cxgb3i_ddp_exit_module - module cleanup/exit entry point 706 * cxgb3i_ddp_init - initialize ddp functions
757 * go through the ddp list and release any resource held.
758 */ 707 */
759static void __exit cxgb3i_ddp_exit_module(void) 708void cxgb3i_ddp_init(struct t3cdev *tdev)
760{ 709{
761 struct cxgb3i_ddp_info *ddp; 710 if (page_idx == DDP_PGIDX_MAX) {
762 711 page_idx = cxgb3i_ddp_find_page_index(PAGE_SIZE);
763 /* release all ddp manager if there is any */ 712 ddp_log_info("system PAGE_SIZE %lu, ddp idx %u.\n",
764 write_lock(&cxgb3i_ddp_rwlock); 713 PAGE_SIZE, page_idx);
765 list_for_each_entry(ddp, &cxgb3i_ddp_list, list) {
766 list_del(&ddp->list);
767 ddp_release(ddp);
768 } 714 }
769 write_unlock(&cxgb3i_ddp_rwlock); 715 ddp_init(tdev);
770} 716}
771
772module_init(cxgb3i_ddp_init_module);
773module_exit(cxgb3i_ddp_exit_module);
diff --git a/drivers/scsi/cxgb3i/cxgb3i_ddp.h b/drivers/scsi/cxgb3i/cxgb3i_ddp.h
index 75a63a81e87..0d296de7cf3 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_ddp.h
+++ b/drivers/scsi/cxgb3i/cxgb3i_ddp.h
@@ -301,7 +301,9 @@ int cxgb3i_setup_conn_pagesize(struct t3cdev *, unsigned int tid, int reply,
301int cxgb3i_setup_conn_digest(struct t3cdev *, unsigned int tid, 301int cxgb3i_setup_conn_digest(struct t3cdev *, unsigned int tid,
302 int hcrc, int dcrc, int reply); 302 int hcrc, int dcrc, int reply);
303int cxgb3i_ddp_find_page_index(unsigned long pgsz); 303int cxgb3i_ddp_find_page_index(unsigned long pgsz);
304int cxgb3i_adapter_ddp_init(struct t3cdev *, struct cxgb3i_tag_format *, 304int cxgb3i_adapter_ddp_info(struct t3cdev *, struct cxgb3i_tag_format *,
305 unsigned int *txsz, unsigned int *rxsz); 305 unsigned int *txsz, unsigned int *rxsz);
306void cxgb3i_adapter_ddp_cleanup(struct t3cdev *); 306
307void cxgb3i_ddp_init(struct t3cdev *);
308void cxgb3i_ddp_cleanup(struct t3cdev *);
307#endif 309#endif
diff --git a/drivers/scsi/cxgb3i/cxgb3i_init.c b/drivers/scsi/cxgb3i/cxgb3i_init.c
index 1ce9f244e46..042d9bce991 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_init.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_init.c
@@ -12,8 +12,8 @@
12#include "cxgb3i.h" 12#include "cxgb3i.h"
13 13
14#define DRV_MODULE_NAME "cxgb3i" 14#define DRV_MODULE_NAME "cxgb3i"
15#define DRV_MODULE_VERSION "1.0.1" 15#define DRV_MODULE_VERSION "1.0.2"
16#define DRV_MODULE_RELDATE "Jan. 2009" 16#define DRV_MODULE_RELDATE "Mar. 2009"
17 17
18static char version[] = 18static char version[] =
19 "Chelsio S3xx iSCSI Driver " DRV_MODULE_NAME 19 "Chelsio S3xx iSCSI Driver " DRV_MODULE_NAME
@@ -26,6 +26,7 @@ MODULE_VERSION(DRV_MODULE_VERSION);
26 26
27static void open_s3_dev(struct t3cdev *); 27static void open_s3_dev(struct t3cdev *);
28static void close_s3_dev(struct t3cdev *); 28static void close_s3_dev(struct t3cdev *);
29static void s3_err_handler(struct t3cdev *tdev, u32 status, u32 error);
29 30
30static cxgb3_cpl_handler_func cxgb3i_cpl_handlers[NUM_CPL_CMDS]; 31static cxgb3_cpl_handler_func cxgb3i_cpl_handlers[NUM_CPL_CMDS];
31static struct cxgb3_client t3c_client = { 32static struct cxgb3_client t3c_client = {
@@ -33,6 +34,7 @@ static struct cxgb3_client t3c_client = {
33 .handlers = cxgb3i_cpl_handlers, 34 .handlers = cxgb3i_cpl_handlers,
34 .add = open_s3_dev, 35 .add = open_s3_dev,
35 .remove = close_s3_dev, 36 .remove = close_s3_dev,
37 .err_handler = s3_err_handler,
36}; 38};
37 39
38/** 40/**
@@ -48,8 +50,9 @@ static void open_s3_dev(struct t3cdev *t3dev)
48 vers_printed = 1; 50 vers_printed = 1;
49 } 51 }
50 52
53 cxgb3i_ddp_init(t3dev);
51 cxgb3i_sdev_add(t3dev, &t3c_client); 54 cxgb3i_sdev_add(t3dev, &t3c_client);
52 cxgb3i_adapter_add(t3dev); 55 cxgb3i_adapter_open(t3dev);
53} 56}
54 57
55/** 58/**
@@ -58,8 +61,28 @@ static void open_s3_dev(struct t3cdev *t3dev)
58 */ 61 */
59static void close_s3_dev(struct t3cdev *t3dev) 62static void close_s3_dev(struct t3cdev *t3dev)
60{ 63{
61 cxgb3i_adapter_remove(t3dev); 64 cxgb3i_adapter_close(t3dev);
62 cxgb3i_sdev_remove(t3dev); 65 cxgb3i_sdev_remove(t3dev);
66 cxgb3i_ddp_cleanup(t3dev);
67}
68
69static void s3_err_handler(struct t3cdev *tdev, u32 status, u32 error)
70{
71 struct cxgb3i_adapter *snic = cxgb3i_adapter_find_by_tdev(tdev);
72
73 cxgb3i_log_info("snic 0x%p, tdev 0x%p, status 0x%x, err 0x%x.\n",
74 snic, tdev, status, error);
75 if (!snic)
76 return;
77
78 switch (status) {
79 case OFFLOAD_STATUS_DOWN:
80 snic->flags |= CXGB3I_ADAPTER_FLAG_RESET;
81 break;
82 case OFFLOAD_STATUS_UP:
83 snic->flags &= ~CXGB3I_ADAPTER_FLAG_RESET;
84 break;
85 }
63} 86}
64 87
65/** 88/**
diff --git a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
index e185dedc4c1..fff8e432764 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_iscsi.c
@@ -53,36 +53,52 @@ static LIST_HEAD(cxgb3i_snic_list);
53static DEFINE_RWLOCK(cxgb3i_snic_rwlock); 53static DEFINE_RWLOCK(cxgb3i_snic_rwlock);
54 54
55/** 55/**
56 * cxgb3i_adapter_add - init a s3 adapter structure and any h/w settings 56 * cxgb3i_adpater_find_by_tdev - find the cxgb3i_adapter structure via t3cdev
57 * @t3dev: t3cdev adapter 57 * @tdev: t3cdev pointer
58 * return the resulting cxgb3i_adapter struct
59 */ 58 */
60struct cxgb3i_adapter *cxgb3i_adapter_add(struct t3cdev *t3dev) 59struct cxgb3i_adapter *cxgb3i_adapter_find_by_tdev(struct t3cdev *tdev)
61{ 60{
62 struct cxgb3i_adapter *snic; 61 struct cxgb3i_adapter *snic;
63 struct adapter *adapter = tdev2adap(t3dev);
64 int i;
65 62
66 snic = kzalloc(sizeof(*snic), GFP_KERNEL); 63 read_lock(&cxgb3i_snic_rwlock);
67 if (!snic) { 64 list_for_each_entry(snic, &cxgb3i_snic_list, list_head) {
68 cxgb3i_api_debug("cxgb3 %s, OOM.\n", t3dev->name); 65 if (snic->tdev == tdev) {
69 return NULL; 66 read_unlock(&cxgb3i_snic_rwlock);
67 return snic;
68 }
70 } 69 }
71 spin_lock_init(&snic->lock); 70 read_unlock(&cxgb3i_snic_rwlock);
71 return NULL;
72}
73
74static inline int adapter_update(struct cxgb3i_adapter *snic)
75{
76 cxgb3i_log_info("snic 0x%p, t3dev 0x%p, updating.\n",
77 snic, snic->tdev);
78 return cxgb3i_adapter_ddp_info(snic->tdev, &snic->tag_format,
79 &snic->tx_max_size,
80 &snic->rx_max_size);
81}
82
83static int adapter_add(struct cxgb3i_adapter *snic)
84{
85 struct t3cdev *t3dev = snic->tdev;
86 struct adapter *adapter = tdev2adap(t3dev);
87 int i, err;
72 88
73 snic->tdev = t3dev;
74 snic->pdev = adapter->pdev; 89 snic->pdev = adapter->pdev;
75 snic->tag_format.sw_bits = sw_tag_idx_bits + sw_tag_age_bits; 90 snic->tag_format.sw_bits = sw_tag_idx_bits + sw_tag_age_bits;
76 91
77 if (cxgb3i_adapter_ddp_init(t3dev, &snic->tag_format, 92 err = cxgb3i_adapter_ddp_info(t3dev, &snic->tag_format,
78 &snic->tx_max_size, 93 &snic->tx_max_size,
79 &snic->rx_max_size) < 0) 94 &snic->rx_max_size);
80 goto free_snic; 95 if (err < 0)
96 return err;
81 97
82 for_each_port(adapter, i) { 98 for_each_port(adapter, i) {
83 snic->hba[i] = cxgb3i_hba_host_add(snic, adapter->port[i]); 99 snic->hba[i] = cxgb3i_hba_host_add(snic, adapter->port[i]);
84 if (!snic->hba[i]) 100 if (!snic->hba[i])
85 goto ulp_cleanup; 101 return -EINVAL;
86 } 102 }
87 snic->hba_cnt = adapter->params.nports; 103 snic->hba_cnt = adapter->params.nports;
88 104
@@ -91,46 +107,71 @@ struct cxgb3i_adapter *cxgb3i_adapter_add(struct t3cdev *t3dev)
91 list_add_tail(&snic->list_head, &cxgb3i_snic_list); 107 list_add_tail(&snic->list_head, &cxgb3i_snic_list);
92 write_unlock(&cxgb3i_snic_rwlock); 108 write_unlock(&cxgb3i_snic_rwlock);
93 109
94 return snic; 110 cxgb3i_log_info("t3dev 0x%p open, snic 0x%p, %u scsi hosts added.\n",
111 t3dev, snic, snic->hba_cnt);
112 return 0;
113}
95 114
96ulp_cleanup: 115/**
97 cxgb3i_adapter_ddp_cleanup(t3dev); 116 * cxgb3i_adapter_open - init a s3 adapter structure and any h/w settings
98free_snic: 117 * @t3dev: t3cdev adapter
99 kfree(snic); 118 */
100 return NULL; 119void cxgb3i_adapter_open(struct t3cdev *t3dev)
120{
121 struct cxgb3i_adapter *snic = cxgb3i_adapter_find_by_tdev(t3dev);
122 int err;
123
124 if (snic)
125 err = adapter_update(snic);
126 else {
127 snic = kzalloc(sizeof(*snic), GFP_KERNEL);
128 if (snic) {
129 spin_lock_init(&snic->lock);
130 snic->tdev = t3dev;
131 err = adapter_add(snic);
132 } else
133 err = -ENOMEM;
134 }
135
136 if (err < 0) {
137 cxgb3i_log_info("snic 0x%p, f 0x%x, t3dev 0x%p open, err %d.\n",
138 snic, snic ? snic->flags : 0, t3dev, err);
139 if (snic) {
140 snic->flags &= ~CXGB3I_ADAPTER_FLAG_RESET;
141 cxgb3i_adapter_close(t3dev);
142 }
143 }
101} 144}
102 145
103/** 146/**
104 * cxgb3i_adapter_remove - release the resources held and cleanup h/w settings 147 * cxgb3i_adapter_close - release the resources held and cleanup h/w settings
105 * @t3dev: t3cdev adapter 148 * @t3dev: t3cdev adapter
106 */ 149 */
107void cxgb3i_adapter_remove(struct t3cdev *t3dev) 150void cxgb3i_adapter_close(struct t3cdev *t3dev)
108{ 151{
152 struct cxgb3i_adapter *snic = cxgb3i_adapter_find_by_tdev(t3dev);
109 int i; 153 int i;
110 struct cxgb3i_adapter *snic; 154
155 if (!snic || snic->flags & CXGB3I_ADAPTER_FLAG_RESET) {
156 cxgb3i_log_info("t3dev 0x%p close, snic 0x%p, f 0x%x.\n",
157 t3dev, snic, snic ? snic->flags : 0);
158 return;
159 }
111 160
112 /* remove from the list */ 161 /* remove from the list */
113 write_lock(&cxgb3i_snic_rwlock); 162 write_lock(&cxgb3i_snic_rwlock);
114 list_for_each_entry(snic, &cxgb3i_snic_list, list_head) { 163 list_del(&snic->list_head);
115 if (snic->tdev == t3dev) {
116 list_del(&snic->list_head);
117 break;
118 }
119 }
120 write_unlock(&cxgb3i_snic_rwlock); 164 write_unlock(&cxgb3i_snic_rwlock);
121 165
122 if (snic) { 166 for (i = 0; i < snic->hba_cnt; i++) {
123 for (i = 0; i < snic->hba_cnt; i++) { 167 if (snic->hba[i]) {
124 if (snic->hba[i]) { 168 cxgb3i_hba_host_remove(snic->hba[i]);
125 cxgb3i_hba_host_remove(snic->hba[i]); 169 snic->hba[i] = NULL;
126 snic->hba[i] = NULL;
127 }
128 } 170 }
129
130 /* release ddp resources */
131 cxgb3i_adapter_ddp_cleanup(snic->tdev);
132 kfree(snic);
133 } 171 }
172 cxgb3i_log_info("t3dev 0x%p close, snic 0x%p, %u scsi hosts removed.\n",
173 t3dev, snic, snic->hba_cnt);
174 kfree(snic);
134} 175}
135 176
136/** 177/**
@@ -170,7 +211,8 @@ struct cxgb3i_hba *cxgb3i_hba_host_add(struct cxgb3i_adapter *snic,
170 shost = iscsi_host_alloc(&cxgb3i_host_template, 211 shost = iscsi_host_alloc(&cxgb3i_host_template,
171 sizeof(struct cxgb3i_hba), 1); 212 sizeof(struct cxgb3i_hba), 1);
172 if (!shost) { 213 if (!shost) {
173 cxgb3i_log_info("iscsi_host_alloc failed.\n"); 214 cxgb3i_log_info("snic 0x%p, ndev 0x%p, host_alloc failed.\n",
215 snic, ndev);
174 return NULL; 216 return NULL;
175 } 217 }
176 218
@@ -188,7 +230,8 @@ struct cxgb3i_hba *cxgb3i_hba_host_add(struct cxgb3i_adapter *snic,
188 pci_dev_get(snic->pdev); 230 pci_dev_get(snic->pdev);
189 err = iscsi_host_add(shost, &snic->pdev->dev); 231 err = iscsi_host_add(shost, &snic->pdev->dev);
190 if (err) { 232 if (err) {
191 cxgb3i_log_info("iscsi_host_add failed.\n"); 233 cxgb3i_log_info("snic 0x%p, ndev 0x%p, host_add failed.\n",
234 snic, ndev);
192 goto pci_dev_put; 235 goto pci_dev_put;
193 } 236 }
194 237
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c
index c2e434e54e2..4d8654cdbda 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c
@@ -94,29 +94,30 @@ static int c3cn_get_port(struct s3_conn *c3cn, struct cxgb3i_sdev_data *cdata)
94 if (!cdata) 94 if (!cdata)
95 goto error_out; 95 goto error_out;
96 96
97 if (c3cn->saddr.sin_port != 0) { 97 if (c3cn->saddr.sin_port) {
98 idx = ntohs(c3cn->saddr.sin_port) - cxgb3_sport_base; 98 cxgb3i_log_error("connect, sin_port NON-ZERO %u.\n",
99 if (idx < 0 || idx >= cxgb3_max_connect) 99 c3cn->saddr.sin_port);
100 return 0; 100 return -EADDRINUSE;
101 if (!test_and_set_bit(idx, cdata->sport_map))
102 return -EADDRINUSE;
103 } 101 }
104 102
105 /* the sport_map_next may not be accurate but that is okay, sport_map 103 spin_lock_bh(&cdata->lock);
106 should be */ 104 start = idx = cdata->sport_next;
107 start = idx = cdata->sport_map_next;
108 do { 105 do {
109 if (++idx >= cxgb3_max_connect) 106 if (++idx >= cxgb3_max_connect)
110 idx = 0; 107 idx = 0;
111 if (!(test_and_set_bit(idx, cdata->sport_map))) { 108 if (!cdata->sport_conn[idx]) {
112 c3cn->saddr.sin_port = htons(cxgb3_sport_base + idx); 109 c3cn->saddr.sin_port = htons(cxgb3_sport_base + idx);
113 cdata->sport_map_next = idx; 110 cdata->sport_next = idx;
111 cdata->sport_conn[idx] = c3cn;
112 spin_unlock_bh(&cdata->lock);
113
114 c3cn_conn_debug("%s reserve port %u.\n", 114 c3cn_conn_debug("%s reserve port %u.\n",
115 cdata->cdev->name, 115 cdata->cdev->name,
116 cxgb3_sport_base + idx); 116 cxgb3_sport_base + idx);
117 return 0; 117 return 0;
118 } 118 }
119 } while (idx != start); 119 } while (idx != start);
120 spin_unlock_bh(&cdata->lock);
120 121
121error_out: 122error_out:
122 return -EADDRNOTAVAIL; 123 return -EADDRNOTAVAIL;
@@ -124,15 +125,19 @@ error_out:
124 125
125static void c3cn_put_port(struct s3_conn *c3cn) 126static void c3cn_put_port(struct s3_conn *c3cn)
126{ 127{
127 struct cxgb3i_sdev_data *cdata = CXGB3_SDEV_DATA(c3cn->cdev); 128 if (!c3cn->cdev)
129 return;
128 130
129 if (c3cn->saddr.sin_port) { 131 if (c3cn->saddr.sin_port) {
132 struct cxgb3i_sdev_data *cdata = CXGB3_SDEV_DATA(c3cn->cdev);
130 int idx = ntohs(c3cn->saddr.sin_port) - cxgb3_sport_base; 133 int idx = ntohs(c3cn->saddr.sin_port) - cxgb3_sport_base;
131 134
132 c3cn->saddr.sin_port = 0; 135 c3cn->saddr.sin_port = 0;
133 if (idx < 0 || idx >= cxgb3_max_connect) 136 if (idx < 0 || idx >= cxgb3_max_connect)
134 return; 137 return;
135 clear_bit(idx, cdata->sport_map); 138 spin_lock_bh(&cdata->lock);
139 cdata->sport_conn[idx] = NULL;
140 spin_unlock_bh(&cdata->lock);
136 c3cn_conn_debug("%s, release port %u.\n", 141 c3cn_conn_debug("%s, release port %u.\n",
137 cdata->cdev->name, cxgb3_sport_base + idx); 142 cdata->cdev->name, cxgb3_sport_base + idx);
138 } 143 }
@@ -1305,11 +1310,7 @@ static void c3cn_release_offload_resources(struct s3_conn *c3cn)
1305 struct t3cdev *cdev = c3cn->cdev; 1310 struct t3cdev *cdev = c3cn->cdev;
1306 unsigned int tid = c3cn->tid; 1311 unsigned int tid = c3cn->tid;
1307 1312
1308 if (!cdev)
1309 return;
1310
1311 c3cn->qset = 0; 1313 c3cn->qset = 0;
1312
1313 c3cn_free_cpl_skbs(c3cn); 1314 c3cn_free_cpl_skbs(c3cn);
1314 1315
1315 if (c3cn->wr_avail != c3cn->wr_max) { 1316 if (c3cn->wr_avail != c3cn->wr_max) {
@@ -1317,18 +1318,22 @@ static void c3cn_release_offload_resources(struct s3_conn *c3cn)
1317 reset_wr_list(c3cn); 1318 reset_wr_list(c3cn);
1318 } 1319 }
1319 1320
1320 if (c3cn->l2t) { 1321 if (cdev) {
1321 l2t_release(L2DATA(cdev), c3cn->l2t); 1322 if (c3cn->l2t) {
1322 c3cn->l2t = NULL; 1323 l2t_release(L2DATA(cdev), c3cn->l2t);
1323 } 1324 c3cn->l2t = NULL;
1324 1325 }
1325 if (c3cn->state == C3CN_STATE_CONNECTING) /* we have ATID */ 1326 if (c3cn->state == C3CN_STATE_CONNECTING)
1326 s3_free_atid(cdev, tid); 1327 /* we have ATID */
1327 else { /* we have TID */ 1328 s3_free_atid(cdev, tid);
1328 cxgb3_remove_tid(cdev, (void *)c3cn, tid); 1329 else {
1329 c3cn_put(c3cn); 1330 /* we have TID */
1331 cxgb3_remove_tid(cdev, (void *)c3cn, tid);
1332 c3cn_put(c3cn);
1333 }
1330 } 1334 }
1331 1335
1336 c3cn->dst_cache = NULL;
1332 c3cn->cdev = NULL; 1337 c3cn->cdev = NULL;
1333} 1338}
1334 1339
@@ -1417,17 +1422,18 @@ static void c3cn_active_close(struct s3_conn *c3cn)
1417} 1422}
1418 1423
1419/** 1424/**
1420 * cxgb3i_c3cn_release - close and release an iscsi tcp connection 1425 * cxgb3i_c3cn_release - close and release an iscsi tcp connection and any
1426 * resource held
1421 * @c3cn: the iscsi tcp connection 1427 * @c3cn: the iscsi tcp connection
1422 */ 1428 */
1423void cxgb3i_c3cn_release(struct s3_conn *c3cn) 1429void cxgb3i_c3cn_release(struct s3_conn *c3cn)
1424{ 1430{
1425 c3cn_conn_debug("c3cn 0x%p, s %u, f 0x%lx.\n", 1431 c3cn_conn_debug("c3cn 0x%p, s %u, f 0x%lx.\n",
1426 c3cn, c3cn->state, c3cn->flags); 1432 c3cn, c3cn->state, c3cn->flags);
1427 if (likely(c3cn->state != C3CN_STATE_CONNECTING)) 1433 if (unlikely(c3cn->state == C3CN_STATE_CONNECTING))
1428 c3cn_active_close(c3cn);
1429 else
1430 c3cn_set_flag(c3cn, C3CN_ACTIVE_CLOSE_NEEDED); 1434 c3cn_set_flag(c3cn, C3CN_ACTIVE_CLOSE_NEEDED);
1435 else if (likely(c3cn->state != C3CN_STATE_CLOSED))
1436 c3cn_active_close(c3cn);
1431 c3cn_put(c3cn); 1437 c3cn_put(c3cn);
1432} 1438}
1433 1439
@@ -1656,7 +1662,6 @@ int cxgb3i_c3cn_connect(struct s3_conn *c3cn, struct sockaddr_in *usin)
1656 c3cn_set_state(c3cn, C3CN_STATE_CLOSED); 1662 c3cn_set_state(c3cn, C3CN_STATE_CLOSED);
1657 ip_rt_put(rt); 1663 ip_rt_put(rt);
1658 c3cn_put_port(c3cn); 1664 c3cn_put_port(c3cn);
1659 c3cn->daddr.sin_port = 0;
1660 return err; 1665 return err;
1661} 1666}
1662 1667
@@ -1776,10 +1781,25 @@ out_err:
1776static void sdev_data_cleanup(struct cxgb3i_sdev_data *cdata) 1781static void sdev_data_cleanup(struct cxgb3i_sdev_data *cdata)
1777{ 1782{
1778 struct adap_ports *ports = &cdata->ports; 1783 struct adap_ports *ports = &cdata->ports;
1784 struct s3_conn *c3cn;
1779 int i; 1785 int i;
1780 1786
1787 for (i = 0; i < cxgb3_max_connect; i++) {
1788 if (cdata->sport_conn[i]) {
1789 c3cn = cdata->sport_conn[i];
1790 cdata->sport_conn[i] = NULL;
1791
1792 spin_lock_bh(&c3cn->lock);
1793 c3cn->cdev = NULL;
1794 c3cn_set_flag(c3cn, C3CN_OFFLOAD_DOWN);
1795 c3cn_closed(c3cn);
1796 spin_unlock_bh(&c3cn->lock);
1797 }
1798 }
1799
1781 for (i = 0; i < ports->nports; i++) 1800 for (i = 0; i < ports->nports; i++)
1782 NDEV2CDATA(ports->lldevs[i]) = NULL; 1801 NDEV2CDATA(ports->lldevs[i]) = NULL;
1802
1783 cxgb3i_free_big_mem(cdata); 1803 cxgb3i_free_big_mem(cdata);
1784} 1804}
1785 1805
@@ -1821,21 +1841,27 @@ void cxgb3i_sdev_add(struct t3cdev *cdev, struct cxgb3_client *client)
1821 struct cxgb3i_sdev_data *cdata; 1841 struct cxgb3i_sdev_data *cdata;
1822 struct ofld_page_info rx_page_info; 1842 struct ofld_page_info rx_page_info;
1823 unsigned int wr_len; 1843 unsigned int wr_len;
1824 int mapsize = DIV_ROUND_UP(cxgb3_max_connect, 1844 int mapsize = cxgb3_max_connect * sizeof(struct s3_conn *);
1825 8 * sizeof(unsigned long));
1826 int i; 1845 int i;
1827 1846
1828 cdata = cxgb3i_alloc_big_mem(sizeof(*cdata) + mapsize, GFP_KERNEL); 1847 cdata = cxgb3i_alloc_big_mem(sizeof(*cdata) + mapsize, GFP_KERNEL);
1829 if (!cdata) 1848 if (!cdata) {
1849 cxgb3i_log_warn("t3dev 0x%p, offload up, OOM %d.\n",
1850 cdev, mapsize);
1830 return; 1851 return;
1852 }
1831 1853
1832 if (cdev->ctl(cdev, GET_WR_LEN, &wr_len) < 0 || 1854 if (cdev->ctl(cdev, GET_WR_LEN, &wr_len) < 0 ||
1833 cdev->ctl(cdev, GET_PORTS, &cdata->ports) < 0 || 1855 cdev->ctl(cdev, GET_PORTS, &cdata->ports) < 0 ||
1834 cdev->ctl(cdev, GET_RX_PAGE_INFO, &rx_page_info) < 0) 1856 cdev->ctl(cdev, GET_RX_PAGE_INFO, &rx_page_info) < 0) {
1857 cxgb3i_log_warn("t3dev 0x%p, offload up, ioctl failed.\n",
1858 cdev);
1835 goto free_cdata; 1859 goto free_cdata;
1860 }
1836 1861
1837 s3_init_wr_tab(wr_len); 1862 s3_init_wr_tab(wr_len);
1838 1863
1864 spin_lock_init(&cdata->lock);
1839 INIT_LIST_HEAD(&cdata->list); 1865 INIT_LIST_HEAD(&cdata->list);
1840 cdata->cdev = cdev; 1866 cdata->cdev = cdev;
1841 cdata->client = client; 1867 cdata->client = client;
@@ -1847,6 +1873,7 @@ void cxgb3i_sdev_add(struct t3cdev *cdev, struct cxgb3_client *client)
1847 list_add_tail(&cdata->list, &cdata_list); 1873 list_add_tail(&cdata->list, &cdata_list);
1848 write_unlock(&cdata_rwlock); 1874 write_unlock(&cdata_rwlock);
1849 1875
1876 cxgb3i_log_info("t3dev 0x%p, offload up, added.\n", cdev);
1850 return; 1877 return;
1851 1878
1852free_cdata: 1879free_cdata:
@@ -1861,6 +1888,8 @@ void cxgb3i_sdev_remove(struct t3cdev *cdev)
1861{ 1888{
1862 struct cxgb3i_sdev_data *cdata = CXGB3_SDEV_DATA(cdev); 1889 struct cxgb3i_sdev_data *cdata = CXGB3_SDEV_DATA(cdev);
1863 1890
1891 cxgb3i_log_info("t3dev 0x%p, offload down, remove.\n", cdev);
1892
1864 write_lock(&cdata_rwlock); 1893 write_lock(&cdata_rwlock);
1865 list_del(&cdata->list); 1894 list_del(&cdata->list);
1866 write_unlock(&cdata_rwlock); 1895 write_unlock(&cdata_rwlock);
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.h b/drivers/scsi/cxgb3i/cxgb3i_offload.h
index 275f23f16eb..ebfca960c0a 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.h
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.h
@@ -16,7 +16,7 @@
16#define _CXGB3I_OFFLOAD_H 16#define _CXGB3I_OFFLOAD_H
17 17
18#include <linux/skbuff.h> 18#include <linux/skbuff.h>
19#include <net/tcp.h> 19#include <linux/in.h>
20 20
21#include "common.h" 21#include "common.h"
22#include "adapter.h" 22#include "adapter.h"
@@ -135,11 +135,11 @@ enum c3cn_flags {
135 C3CN_ABORT_RPL_PENDING, /* expecting an abort reply */ 135 C3CN_ABORT_RPL_PENDING, /* expecting an abort reply */
136 C3CN_TX_DATA_SENT, /* already sent a TX_DATA WR */ 136 C3CN_TX_DATA_SENT, /* already sent a TX_DATA WR */
137 C3CN_ACTIVE_CLOSE_NEEDED, /* need to be closed */ 137 C3CN_ACTIVE_CLOSE_NEEDED, /* need to be closed */
138 C3CN_OFFLOAD_DOWN /* offload function off */
138}; 139};
139 140
140/** 141/**
141 * cxgb3i_sdev_data - Per adapter data. 142 * cxgb3i_sdev_data - Per adapter data.
142 *
143 * Linked off of each Ethernet device port on the adapter. 143 * Linked off of each Ethernet device port on the adapter.
144 * Also available via the t3cdev structure since we have pointers to our port 144 * Also available via the t3cdev structure since we have pointers to our port
145 * net_device's there ... 145 * net_device's there ...
@@ -148,16 +148,17 @@ enum c3cn_flags {
148 * @cdev: t3cdev adapter 148 * @cdev: t3cdev adapter
149 * @client: CPL client pointer 149 * @client: CPL client pointer
150 * @ports: array of adapter ports 150 * @ports: array of adapter ports
151 * @sport_map_next: next index into the port map 151 * @sport_next: next port
152 * @sport_map: source port map 152 * @sport_conn: source port connection
153 */ 153 */
154struct cxgb3i_sdev_data { 154struct cxgb3i_sdev_data {
155 struct list_head list; 155 struct list_head list;
156 struct t3cdev *cdev; 156 struct t3cdev *cdev;
157 struct cxgb3_client *client; 157 struct cxgb3_client *client;
158 struct adap_ports ports; 158 struct adap_ports ports;
159 unsigned int sport_map_next; 159 spinlock_t lock;
160 unsigned long sport_map[0]; 160 unsigned int sport_next;
161 struct s3_conn *sport_conn[0];
161}; 162};
162#define NDEV2CDATA(ndev) (*(struct cxgb3i_sdev_data **)&(ndev)->ec_ptr) 163#define NDEV2CDATA(ndev) (*(struct cxgb3i_sdev_data **)&(ndev)->ec_ptr)
163#define CXGB3_SDEV_DATA(cdev) NDEV2CDATA((cdev)->lldev) 164#define CXGB3_SDEV_DATA(cdev) NDEV2CDATA((cdev)->lldev)
diff --git a/drivers/scsi/fcoe/Makefile b/drivers/scsi/fcoe/Makefile
index b78da06d7c0..950f27615c7 100644
--- a/drivers/scsi/fcoe/Makefile
+++ b/drivers/scsi/fcoe/Makefile
@@ -1,8 +1,2 @@
1# $Id: Makefile
2
3obj-$(CONFIG_FCOE) += fcoe.o 1obj-$(CONFIG_FCOE) += fcoe.o
4 2obj-$(CONFIG_LIBFCOE) += libfcoe.o
5fcoe-y := \
6 libfcoe.o \
7 fcoe_sw.o \
8 fc_transport_fcoe.o
diff --git a/drivers/scsi/fcoe/fc_transport_fcoe.c b/drivers/scsi/fcoe/fc_transport_fcoe.c
deleted file mode 100644
index 8862758006c..00000000000
--- a/drivers/scsi/fcoe/fc_transport_fcoe.c
+++ /dev/null
@@ -1,443 +0,0 @@
1/*
2 * Copyright(c) 2007 - 2008 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16 *
17 * Maintained at www.Open-FCoE.org
18 */
19
20#include <linux/pci.h>
21#include <scsi/libfcoe.h>
22#include <scsi/fc_transport_fcoe.h>
23
24/* internal fcoe transport */
25struct fcoe_transport_internal {
26 struct fcoe_transport *t;
27 struct net_device *netdev;
28 struct list_head list;
29};
30
31/* fcoe transports list and its lock */
32static LIST_HEAD(fcoe_transports);
33static DEFINE_MUTEX(fcoe_transports_lock);
34
35/**
36 * fcoe_transport_default() - Returns ptr to the default transport fcoe_sw
37 */
38struct fcoe_transport *fcoe_transport_default(void)
39{
40 return &fcoe_sw_transport;
41}
42
43/**
44 * fcoe_transport_to_pcidev() - get the pci dev from a netdev
45 * @netdev: the netdev that pci dev will be retrived from
46 *
47 * Returns: NULL or the corrsponding pci_dev
48 */
49struct pci_dev *fcoe_transport_pcidev(const struct net_device *netdev)
50{
51 if (!netdev->dev.parent)
52 return NULL;
53 return to_pci_dev(netdev->dev.parent);
54}
55
56/**
57 * fcoe_transport_device_lookup() - Lookup a transport
58 * @netdev: the netdev the transport to be attached to
59 *
60 * This will look for existing offload driver, if not found, it falls back to
61 * the default sw hba (fcoe_sw) as its fcoe transport.
62 *
63 * Returns: 0 for success
64 */
65static struct fcoe_transport_internal *
66fcoe_transport_device_lookup(struct fcoe_transport *t,
67 struct net_device *netdev)
68{
69 struct fcoe_transport_internal *ti;
70
71 /* assign the transpor to this device */
72 mutex_lock(&t->devlock);
73 list_for_each_entry(ti, &t->devlist, list) {
74 if (ti->netdev == netdev) {
75 mutex_unlock(&t->devlock);
76 return ti;
77 }
78 }
79 mutex_unlock(&t->devlock);
80 return NULL;
81}
82/**
83 * fcoe_transport_device_add() - Assign a transport to a device
84 * @netdev: the netdev the transport to be attached to
85 *
86 * This will look for existing offload driver, if not found, it falls back to
87 * the default sw hba (fcoe_sw) as its fcoe transport.
88 *
89 * Returns: 0 for success
90 */
91static int fcoe_transport_device_add(struct fcoe_transport *t,
92 struct net_device *netdev)
93{
94 struct fcoe_transport_internal *ti;
95
96 ti = fcoe_transport_device_lookup(t, netdev);
97 if (ti) {
98 printk(KERN_DEBUG "fcoe_transport_device_add:"
99 "device %s is already added to transport %s\n",
100 netdev->name, t->name);
101 return -EEXIST;
102 }
103 /* allocate an internal struct to host the netdev and the list */
104 ti = kzalloc(sizeof(*ti), GFP_KERNEL);
105 if (!ti)
106 return -ENOMEM;
107
108 ti->t = t;
109 ti->netdev = netdev;
110 INIT_LIST_HEAD(&ti->list);
111 dev_hold(ti->netdev);
112
113 mutex_lock(&t->devlock);
114 list_add(&ti->list, &t->devlist);
115 mutex_unlock(&t->devlock);
116
117 printk(KERN_DEBUG "fcoe_transport_device_add:"
118 "device %s added to transport %s\n",
119 netdev->name, t->name);
120
121 return 0;
122}
123
124/**
125 * fcoe_transport_device_remove() - Remove a device from its transport
126 * @netdev: the netdev the transport to be attached to
127 *
128 * This removes the device from the transport so the given transport will
129 * not manage this device any more
130 *
131 * Returns: 0 for success
132 */
133static int fcoe_transport_device_remove(struct fcoe_transport *t,
134 struct net_device *netdev)
135{
136 struct fcoe_transport_internal *ti;
137
138 ti = fcoe_transport_device_lookup(t, netdev);
139 if (!ti) {
140 printk(KERN_DEBUG "fcoe_transport_device_remove:"
141 "device %s is not managed by transport %s\n",
142 netdev->name, t->name);
143 return -ENODEV;
144 }
145 mutex_lock(&t->devlock);
146 list_del(&ti->list);
147 mutex_unlock(&t->devlock);
148 printk(KERN_DEBUG "fcoe_transport_device_remove:"
149 "device %s removed from transport %s\n",
150 netdev->name, t->name);
151 dev_put(ti->netdev);
152 kfree(ti);
153 return 0;
154}
155
156/**
157 * fcoe_transport_device_remove_all() - Remove all from transport devlist
158 *
159 * This removes the device from the transport so the given transport will
160 * not manage this device any more
161 *
162 * Returns: 0 for success
163 */
164static void fcoe_transport_device_remove_all(struct fcoe_transport *t)
165{
166 struct fcoe_transport_internal *ti, *tmp;
167
168 mutex_lock(&t->devlock);
169 list_for_each_entry_safe(ti, tmp, &t->devlist, list) {
170 list_del(&ti->list);
171 kfree(ti);
172 }
173 mutex_unlock(&t->devlock);
174}
175
176/**
177 * fcoe_transport_match() - Use the bus device match function to match the hw
178 * @t: The fcoe transport to check
179 * @netdev: The netdev to match against
180 *
181 * This function is used to check if the given transport wants to manage the
182 * input netdev. if the transports implements the match function, it will be
183 * called, o.w. we just compare the pci vendor and device id.
184 *
185 * Returns: true for match up
186 */
187static bool fcoe_transport_match(struct fcoe_transport *t,
188 struct net_device *netdev)
189{
190 /* match transport by vendor and device id */
191 struct pci_dev *pci;
192
193 pci = fcoe_transport_pcidev(netdev);
194
195 if (pci) {
196 printk(KERN_DEBUG "fcoe_transport_match:"
197 "%s:%x:%x -- %s:%x:%x\n",
198 t->name, t->vendor, t->device,
199 netdev->name, pci->vendor, pci->device);
200
201 /* if transport supports match */
202 if (t->match)
203 return t->match(netdev);
204
205 /* else just compare the vendor and device id: pci only */
206 return (t->vendor == pci->vendor) && (t->device == pci->device);
207 }
208 return false;
209}
210
211/**
212 * fcoe_transport_lookup() - Check if the transport is already registered
213 * @t: the transport to be looked up
214 *
215 * This compares the parent device (pci) vendor and device id
216 *
217 * Returns: NULL if not found
218 *
219 * TODO: return default sw transport if no other transport is found
220 */
221static struct fcoe_transport *
222fcoe_transport_lookup(struct net_device *netdev)
223{
224 struct fcoe_transport *t;
225
226 mutex_lock(&fcoe_transports_lock);
227 list_for_each_entry(t, &fcoe_transports, list) {
228 if (fcoe_transport_match(t, netdev)) {
229 mutex_unlock(&fcoe_transports_lock);
230 return t;
231 }
232 }
233 mutex_unlock(&fcoe_transports_lock);
234
235 printk(KERN_DEBUG "fcoe_transport_lookup:"
236 "use default transport for %s\n", netdev->name);
237 return fcoe_transport_default();
238}
239
240/**
241 * fcoe_transport_register() - Adds a fcoe transport to the fcoe transports list
242 * @t: ptr to the fcoe transport to be added
243 *
244 * Returns: 0 for success
245 */
246int fcoe_transport_register(struct fcoe_transport *t)
247{
248 struct fcoe_transport *tt;
249
250 /* TODO - add fcoe_transport specific initialization here */
251 mutex_lock(&fcoe_transports_lock);
252 list_for_each_entry(tt, &fcoe_transports, list) {
253 if (tt == t) {
254 mutex_unlock(&fcoe_transports_lock);
255 return -EEXIST;
256 }
257 }
258 list_add_tail(&t->list, &fcoe_transports);
259 mutex_unlock(&fcoe_transports_lock);
260
261 printk(KERN_DEBUG "fcoe_transport_register:%s\n", t->name);
262
263 return 0;
264}
265EXPORT_SYMBOL_GPL(fcoe_transport_register);
266
267/**
268 * fcoe_transport_unregister() - Remove the tranport fro the fcoe transports list
269 * @t: ptr to the fcoe transport to be removed
270 *
271 * Returns: 0 for success
272 */
273int fcoe_transport_unregister(struct fcoe_transport *t)
274{
275 struct fcoe_transport *tt, *tmp;
276
277 mutex_lock(&fcoe_transports_lock);
278 list_for_each_entry_safe(tt, tmp, &fcoe_transports, list) {
279 if (tt == t) {
280 list_del(&t->list);
281 mutex_unlock(&fcoe_transports_lock);
282 fcoe_transport_device_remove_all(t);
283 printk(KERN_DEBUG "fcoe_transport_unregister:%s\n",
284 t->name);
285 return 0;
286 }
287 }
288 mutex_unlock(&fcoe_transports_lock);
289 return -ENODEV;
290}
291EXPORT_SYMBOL_GPL(fcoe_transport_unregister);
292
293/**
294 * fcoe_load_transport_driver() - Load an offload driver by alias name
295 * @netdev: the target net device
296 *
297 * Requests for an offload driver module as the fcoe transport, if fails, it
298 * falls back to use the SW HBA (fcoe_sw) as its transport
299 *
300 * TODO -
301 * 1. supports only PCI device
302 * 2. needs fix for VLAn and bonding
303 * 3. pure hw fcoe hba may not have netdev
304 *
305 * Returns: 0 for success
306 */
307int fcoe_load_transport_driver(struct net_device *netdev)
308{
309 struct pci_dev *pci;
310 struct device *dev = netdev->dev.parent;
311
312 if (fcoe_transport_lookup(netdev)) {
313 /* load default transport */
314 printk(KERN_DEBUG "fcoe: already loaded transport for %s\n",
315 netdev->name);
316 return -EEXIST;
317 }
318
319 pci = to_pci_dev(dev);
320 if (dev->bus != &pci_bus_type) {
321 printk(KERN_DEBUG "fcoe: support noly PCI device\n");
322 return -ENODEV;
323 }
324 printk(KERN_DEBUG "fcoe: loading driver fcoe-pci-0x%04x-0x%04x\n",
325 pci->vendor, pci->device);
326
327 return request_module("fcoe-pci-0x%04x-0x%04x",
328 pci->vendor, pci->device);
329
330}
331EXPORT_SYMBOL_GPL(fcoe_load_transport_driver);
332
333/**
334 * fcoe_transport_attach() - Load transport to fcoe
335 * @netdev: the netdev the transport to be attached to
336 *
337 * This will look for existing offload driver, if not found, it falls back to
338 * the default sw hba (fcoe_sw) as its fcoe transport.
339 *
340 * Returns: 0 for success
341 */
342int fcoe_transport_attach(struct net_device *netdev)
343{
344 struct fcoe_transport *t;
345
346 /* find the corresponding transport */
347 t = fcoe_transport_lookup(netdev);
348 if (!t) {
349 printk(KERN_DEBUG "fcoe_transport_attach"
350 ":no transport for %s:use %s\n",
351 netdev->name, t->name);
352 return -ENODEV;
353 }
354 /* add to the transport */
355 if (fcoe_transport_device_add(t, netdev)) {
356 printk(KERN_DEBUG "fcoe_transport_attach"
357 ":failed to add %s to tramsport %s\n",
358 netdev->name, t->name);
359 return -EIO;
360 }
361 /* transport create function */
362 if (t->create)
363 t->create(netdev);
364
365 printk(KERN_DEBUG "fcoe_transport_attach:transport %s for %s\n",
366 t->name, netdev->name);
367 return 0;
368}
369EXPORT_SYMBOL_GPL(fcoe_transport_attach);
370
371/**
372 * fcoe_transport_release() - Unload transport from fcoe
373 * @netdev: the net device on which fcoe is to be released
374 *
375 * Returns: 0 for success
376 */
377int fcoe_transport_release(struct net_device *netdev)
378{
379 struct fcoe_transport *t;
380
381 /* find the corresponding transport */
382 t = fcoe_transport_lookup(netdev);
383 if (!t) {
384 printk(KERN_DEBUG "fcoe_transport_release:"
385 "no transport for %s:use %s\n",
386 netdev->name, t->name);
387 return -ENODEV;
388 }
389 /* remove the device from the transport */
390 if (fcoe_transport_device_remove(t, netdev)) {
391 printk(KERN_DEBUG "fcoe_transport_release:"
392 "failed to add %s to tramsport %s\n",
393 netdev->name, t->name);
394 return -EIO;
395 }
396 /* transport destroy function */
397 if (t->destroy)
398 t->destroy(netdev);
399
400 printk(KERN_DEBUG "fcoe_transport_release:"
401 "device %s dettached from transport %s\n",
402 netdev->name, t->name);
403
404 return 0;
405}
406EXPORT_SYMBOL_GPL(fcoe_transport_release);
407
408/**
409 * fcoe_transport_init() - Initializes fcoe transport layer
410 *
411 * This prepares for the fcoe transport layer
412 *
413 * Returns: none
414 */
415int __init fcoe_transport_init(void)
416{
417 INIT_LIST_HEAD(&fcoe_transports);
418 mutex_init(&fcoe_transports_lock);
419 return 0;
420}
421
422/**
423 * fcoe_transport_exit() - Cleans up the fcoe transport layer
424 *
425 * This cleans up the fcoe transport layer. removing any transport on the list,
426 * note that the transport destroy func is not called here.
427 *
428 * Returns: none
429 */
430int __exit fcoe_transport_exit(void)
431{
432 struct fcoe_transport *t, *tmp;
433
434 mutex_lock(&fcoe_transports_lock);
435 list_for_each_entry_safe(t, tmp, &fcoe_transports, list) {
436 list_del(&t->list);
437 mutex_unlock(&fcoe_transports_lock);
438 fcoe_transport_device_remove_all(t);
439 mutex_lock(&fcoe_transports_lock);
440 }
441 mutex_unlock(&fcoe_transports_lock);
442 return 0;
443}
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
new file mode 100644
index 00000000000..94e1e318977
--- /dev/null
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -0,0 +1,1878 @@
1/*
2 * Copyright(c) 2007 - 2008 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16 *
17 * Maintained at www.Open-FCoE.org
18 */
19
20#include <linux/module.h>
21#include <linux/version.h>
22#include <linux/spinlock.h>
23#include <linux/netdevice.h>
24#include <linux/etherdevice.h>
25#include <linux/ethtool.h>
26#include <linux/if_ether.h>
27#include <linux/if_vlan.h>
28#include <linux/crc32.h>
29#include <linux/cpu.h>
30#include <linux/fs.h>
31#include <linux/sysfs.h>
32#include <linux/ctype.h>
33#include <scsi/scsi_tcq.h>
34#include <scsi/scsicam.h>
35#include <scsi/scsi_transport.h>
36#include <scsi/scsi_transport_fc.h>
37#include <net/rtnetlink.h>
38
39#include <scsi/fc/fc_encaps.h>
40#include <scsi/fc/fc_fip.h>
41
42#include <scsi/libfc.h>
43#include <scsi/fc_frame.h>
44#include <scsi/libfcoe.h>
45
46#include "fcoe.h"
47
48static int debug_fcoe;
49
50MODULE_AUTHOR("Open-FCoE.org");
51MODULE_DESCRIPTION("FCoE");
52MODULE_LICENSE("GPL v2");
53
54/* fcoe host list */
55LIST_HEAD(fcoe_hostlist);
56DEFINE_RWLOCK(fcoe_hostlist_lock);
57DEFINE_TIMER(fcoe_timer, NULL, 0, 0);
58DEFINE_PER_CPU(struct fcoe_percpu_s, fcoe_percpu);
59
60/* Function Prototyes */
61static int fcoe_reset(struct Scsi_Host *shost);
62static int fcoe_xmit(struct fc_lport *, struct fc_frame *);
63static int fcoe_rcv(struct sk_buff *, struct net_device *,
64 struct packet_type *, struct net_device *);
65static int fcoe_percpu_receive_thread(void *arg);
66static void fcoe_clean_pending_queue(struct fc_lport *lp);
67static void fcoe_percpu_clean(struct fc_lport *lp);
68static int fcoe_link_ok(struct fc_lport *lp);
69
70static struct fc_lport *fcoe_hostlist_lookup(const struct net_device *);
71static int fcoe_hostlist_add(const struct fc_lport *);
72static int fcoe_hostlist_remove(const struct fc_lport *);
73
74static int fcoe_check_wait_queue(struct fc_lport *);
75static int fcoe_device_notification(struct notifier_block *, ulong, void *);
76static void fcoe_dev_setup(void);
77static void fcoe_dev_cleanup(void);
78
79/* notification function from net device */
80static struct notifier_block fcoe_notifier = {
81 .notifier_call = fcoe_device_notification,
82};
83
84static struct scsi_transport_template *scsi_transport_fcoe_sw;
85
86struct fc_function_template fcoe_transport_function = {
87 .show_host_node_name = 1,
88 .show_host_port_name = 1,
89 .show_host_supported_classes = 1,
90 .show_host_supported_fc4s = 1,
91 .show_host_active_fc4s = 1,
92 .show_host_maxframe_size = 1,
93
94 .show_host_port_id = 1,
95 .show_host_supported_speeds = 1,
96 .get_host_speed = fc_get_host_speed,
97 .show_host_speed = 1,
98 .show_host_port_type = 1,
99 .get_host_port_state = fc_get_host_port_state,
100 .show_host_port_state = 1,
101 .show_host_symbolic_name = 1,
102
103 .dd_fcrport_size = sizeof(struct fc_rport_libfc_priv),
104 .show_rport_maxframe_size = 1,
105 .show_rport_supported_classes = 1,
106
107 .show_host_fabric_name = 1,
108 .show_starget_node_name = 1,
109 .show_starget_port_name = 1,
110 .show_starget_port_id = 1,
111 .set_rport_dev_loss_tmo = fc_set_rport_loss_tmo,
112 .show_rport_dev_loss_tmo = 1,
113 .get_fc_host_stats = fc_get_host_stats,
114 .issue_fc_host_lip = fcoe_reset,
115
116 .terminate_rport_io = fc_rport_terminate_io,
117};
118
119static struct scsi_host_template fcoe_shost_template = {
120 .module = THIS_MODULE,
121 .name = "FCoE Driver",
122 .proc_name = FCOE_NAME,
123 .queuecommand = fc_queuecommand,
124 .eh_abort_handler = fc_eh_abort,
125 .eh_device_reset_handler = fc_eh_device_reset,
126 .eh_host_reset_handler = fc_eh_host_reset,
127 .slave_alloc = fc_slave_alloc,
128 .change_queue_depth = fc_change_queue_depth,
129 .change_queue_type = fc_change_queue_type,
130 .this_id = -1,
131 .cmd_per_lun = 32,
132 .can_queue = FCOE_MAX_OUTSTANDING_COMMANDS,
133 .use_clustering = ENABLE_CLUSTERING,
134 .sg_tablesize = SG_ALL,
135 .max_sectors = 0xffff,
136};
137
138/**
139 * fcoe_lport_config() - sets up the fc_lport
140 * @lp: ptr to the fc_lport
141 * @shost: ptr to the parent scsi host
142 *
143 * Returns: 0 for success
144 */
145static int fcoe_lport_config(struct fc_lport *lp)
146{
147 lp->link_up = 0;
148 lp->qfull = 0;
149 lp->max_retry_count = 3;
150 lp->e_d_tov = 2 * 1000; /* FC-FS default */
151 lp->r_a_tov = 2 * 2 * 1000;
152 lp->service_params = (FCP_SPPF_INIT_FCN | FCP_SPPF_RD_XRDY_DIS |
153 FCP_SPPF_RETRY | FCP_SPPF_CONF_COMPL);
154
155 fc_lport_init_stats(lp);
156
157 /* lport fc_lport related configuration */
158 fc_lport_config(lp);
159
160 /* offload related configuration */
161 lp->crc_offload = 0;
162 lp->seq_offload = 0;
163 lp->lro_enabled = 0;
164 lp->lro_xid = 0;
165 lp->lso_max = 0;
166
167 return 0;
168}
169
170/**
171 * fcoe_netdev_config() - Set up netdev for SW FCoE
172 * @lp : ptr to the fc_lport
173 * @netdev : ptr to the associated netdevice struct
174 *
175 * Must be called after fcoe_lport_config() as it will use lport mutex
176 *
177 * Returns : 0 for success
178 */
179static int fcoe_netdev_config(struct fc_lport *lp, struct net_device *netdev)
180{
181 u32 mfs;
182 u64 wwnn, wwpn;
183 struct fcoe_softc *fc;
184 u8 flogi_maddr[ETH_ALEN];
185
186 /* Setup lport private data to point to fcoe softc */
187 fc = lport_priv(lp);
188 fc->ctlr.lp = lp;
189 fc->real_dev = netdev;
190 fc->phys_dev = netdev;
191
192 /* Require support for get_pauseparam ethtool op. */
193 if (netdev->priv_flags & IFF_802_1Q_VLAN)
194 fc->phys_dev = vlan_dev_real_dev(netdev);
195
196 /* Do not support for bonding device */
197 if ((fc->real_dev->priv_flags & IFF_MASTER_ALB) ||
198 (fc->real_dev->priv_flags & IFF_SLAVE_INACTIVE) ||
199 (fc->real_dev->priv_flags & IFF_MASTER_8023AD)) {
200 return -EOPNOTSUPP;
201 }
202
203 /*
204 * Determine max frame size based on underlying device and optional
205 * user-configured limit. If the MFS is too low, fcoe_link_ok()
206 * will return 0, so do this first.
207 */
208 mfs = fc->real_dev->mtu - (sizeof(struct fcoe_hdr) +
209 sizeof(struct fcoe_crc_eof));
210 if (fc_set_mfs(lp, mfs))
211 return -EINVAL;
212
213 /* offload features support */
214 if (fc->real_dev->features & NETIF_F_SG)
215 lp->sg_supp = 1;
216
217#ifdef NETIF_F_FCOE_CRC
218 if (netdev->features & NETIF_F_FCOE_CRC) {
219 lp->crc_offload = 1;
220 printk(KERN_DEBUG "fcoe:%s supports FCCRC offload\n",
221 netdev->name);
222 }
223#endif
224#ifdef NETIF_F_FSO
225 if (netdev->features & NETIF_F_FSO) {
226 lp->seq_offload = 1;
227 lp->lso_max = netdev->gso_max_size;
228 printk(KERN_DEBUG "fcoe:%s supports LSO for max len 0x%x\n",
229 netdev->name, lp->lso_max);
230 }
231#endif
232 if (netdev->fcoe_ddp_xid) {
233 lp->lro_enabled = 1;
234 lp->lro_xid = netdev->fcoe_ddp_xid;
235 printk(KERN_DEBUG "fcoe:%s supports LRO for max xid 0x%x\n",
236 netdev->name, lp->lro_xid);
237 }
238 skb_queue_head_init(&fc->fcoe_pending_queue);
239 fc->fcoe_pending_queue_active = 0;
240
241 /* setup Source Mac Address */
242 memcpy(fc->ctlr.ctl_src_addr, fc->real_dev->dev_addr,
243 fc->real_dev->addr_len);
244
245 wwnn = fcoe_wwn_from_mac(fc->real_dev->dev_addr, 1, 0);
246 fc_set_wwnn(lp, wwnn);
247 /* XXX - 3rd arg needs to be vlan id */
248 wwpn = fcoe_wwn_from_mac(fc->real_dev->dev_addr, 2, 0);
249 fc_set_wwpn(lp, wwpn);
250
251 /*
252 * Add FCoE MAC address as second unicast MAC address
253 * or enter promiscuous mode if not capable of listening
254 * for multiple unicast MACs.
255 */
256 rtnl_lock();
257 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
258 dev_unicast_add(fc->real_dev, flogi_maddr, ETH_ALEN);
259 rtnl_unlock();
260
261 /*
262 * setup the receive function from ethernet driver
263 * on the ethertype for the given device
264 */
265 fc->fcoe_packet_type.func = fcoe_rcv;
266 fc->fcoe_packet_type.type = __constant_htons(ETH_P_FCOE);
267 fc->fcoe_packet_type.dev = fc->real_dev;
268 dev_add_pack(&fc->fcoe_packet_type);
269
270 return 0;
271}
272
273/**
274 * fcoe_shost_config() - Sets up fc_lport->host
275 * @lp : ptr to the fc_lport
276 * @shost : ptr to the associated scsi host
277 * @dev : device associated to scsi host
278 *
279 * Must be called after fcoe_lport_config() and fcoe_netdev_config()
280 *
281 * Returns : 0 for success
282 */
283static int fcoe_shost_config(struct fc_lport *lp, struct Scsi_Host *shost,
284 struct device *dev)
285{
286 int rc = 0;
287
288 /* lport scsi host config */
289 lp->host = shost;
290
291 lp->host->max_lun = FCOE_MAX_LUN;
292 lp->host->max_id = FCOE_MAX_FCP_TARGET;
293 lp->host->max_channel = 0;
294 lp->host->transportt = scsi_transport_fcoe_sw;
295
296 /* add the new host to the SCSI-ml */
297 rc = scsi_add_host(lp->host, dev);
298 if (rc) {
299 FC_DBG("fcoe_shost_config:error on scsi_add_host\n");
300 return rc;
301 }
302 sprintf(fc_host_symbolic_name(lp->host), "%s v%s over %s",
303 FCOE_NAME, FCOE_VERSION,
304 fcoe_netdev(lp)->name);
305
306 return 0;
307}
308
309/**
310 * fcoe_em_config() - allocates em for this lport
311 * @lp: the port that em is to allocated for
312 *
313 * Returns : 0 on success
314 */
315static inline int fcoe_em_config(struct fc_lport *lp)
316{
317 BUG_ON(lp->emp);
318
319 lp->emp = fc_exch_mgr_alloc(lp, FC_CLASS_3,
320 FCOE_MIN_XID, FCOE_MAX_XID);
321 if (!lp->emp)
322 return -ENOMEM;
323
324 return 0;
325}
326
327/**
328 * fcoe_if_destroy() - FCoE software HBA tear-down function
329 * @netdev: ptr to the associated net_device
330 *
331 * Returns: 0 if link is OK for use by FCoE.
332 */
333static int fcoe_if_destroy(struct net_device *netdev)
334{
335 struct fc_lport *lp = NULL;
336 struct fcoe_softc *fc;
337 u8 flogi_maddr[ETH_ALEN];
338
339 BUG_ON(!netdev);
340
341 printk(KERN_DEBUG "fcoe_if_destroy:interface on %s\n",
342 netdev->name);
343
344 lp = fcoe_hostlist_lookup(netdev);
345 if (!lp)
346 return -ENODEV;
347
348 fc = lport_priv(lp);
349
350 /* Logout of the fabric */
351 fc_fabric_logoff(lp);
352
353 /* Remove the instance from fcoe's list */
354 fcoe_hostlist_remove(lp);
355
356 /* Don't listen for Ethernet packets anymore */
357 dev_remove_pack(&fc->fcoe_packet_type);
358 dev_remove_pack(&fc->fip_packet_type);
359 fcoe_ctlr_destroy(&fc->ctlr);
360
361 /* Cleanup the fc_lport */
362 fc_lport_destroy(lp);
363 fc_fcp_destroy(lp);
364
365 /* Detach from the scsi-ml */
366 fc_remove_host(lp->host);
367 scsi_remove_host(lp->host);
368
369 /* There are no more rports or I/O, free the EM */
370 if (lp->emp)
371 fc_exch_mgr_free(lp->emp);
372
373 /* Delete secondary MAC addresses */
374 rtnl_lock();
375 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
376 dev_unicast_delete(fc->real_dev, flogi_maddr, ETH_ALEN);
377 if (!is_zero_ether_addr(fc->ctlr.data_src_addr))
378 dev_unicast_delete(fc->real_dev,
379 fc->ctlr.data_src_addr, ETH_ALEN);
380 dev_mc_delete(fc->real_dev, FIP_ALL_ENODE_MACS, ETH_ALEN, 0);
381 rtnl_unlock();
382
383 /* Free the per-CPU revieve threads */
384 fcoe_percpu_clean(lp);
385
386 /* Free existing skbs */
387 fcoe_clean_pending_queue(lp);
388
389 /* Free memory used by statistical counters */
390 fc_lport_free_stats(lp);
391
392 /* Release the net_device and Scsi_Host */
393 dev_put(fc->real_dev);
394 scsi_host_put(lp->host);
395
396 return 0;
397}
398
399/*
400 * fcoe_ddp_setup - calls LLD's ddp_setup through net_device
401 * @lp: the corresponding fc_lport
402 * @xid: the exchange id for this ddp transfer
403 * @sgl: the scatterlist describing this transfer
404 * @sgc: number of sg items
405 *
406 * Returns : 0 no ddp
407 */
408static int fcoe_ddp_setup(struct fc_lport *lp, u16 xid,
409 struct scatterlist *sgl, unsigned int sgc)
410{
411 struct net_device *n = fcoe_netdev(lp);
412
413 if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_setup)
414 return n->netdev_ops->ndo_fcoe_ddp_setup(n, xid, sgl, sgc);
415
416 return 0;
417}
418
419/*
420 * fcoe_ddp_done - calls LLD's ddp_done through net_device
421 * @lp: the corresponding fc_lport
422 * @xid: the exchange id for this ddp transfer
423 *
424 * Returns : the length of data that have been completed by ddp
425 */
426static int fcoe_ddp_done(struct fc_lport *lp, u16 xid)
427{
428 struct net_device *n = fcoe_netdev(lp);
429
430 if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_done)
431 return n->netdev_ops->ndo_fcoe_ddp_done(n, xid);
432 return 0;
433}
434
435static struct libfc_function_template fcoe_libfc_fcn_templ = {
436 .frame_send = fcoe_xmit,
437 .ddp_setup = fcoe_ddp_setup,
438 .ddp_done = fcoe_ddp_done,
439};
440
441/**
442 * fcoe_fip_recv - handle a received FIP frame.
443 * @skb: the receive skb
444 * @dev: associated &net_device
445 * @ptype: the &packet_type structure which was used to register this handler.
446 * @orig_dev: original receive &net_device, in case @dev is a bond.
447 *
448 * Returns: 0 for success
449 */
450static int fcoe_fip_recv(struct sk_buff *skb, struct net_device *dev,
451 struct packet_type *ptype,
452 struct net_device *orig_dev)
453{
454 struct fcoe_softc *fc;
455
456 fc = container_of(ptype, struct fcoe_softc, fip_packet_type);
457 fcoe_ctlr_recv(&fc->ctlr, skb);
458 return 0;
459}
460
461/**
462 * fcoe_fip_send() - send an Ethernet-encapsulated FIP frame.
463 * @fip: FCoE controller.
464 * @skb: FIP Packet.
465 */
466static void fcoe_fip_send(struct fcoe_ctlr *fip, struct sk_buff *skb)
467{
468 skb->dev = fcoe_from_ctlr(fip)->real_dev;
469 dev_queue_xmit(skb);
470}
471
472/**
473 * fcoe_update_src_mac() - Update Ethernet MAC filters.
474 * @fip: FCoE controller.
475 * @old: Unicast MAC address to delete if the MAC is non-zero.
476 * @new: Unicast MAC address to add.
477 *
478 * Remove any previously-set unicast MAC filter.
479 * Add secondary FCoE MAC address filter for our OUI.
480 */
481static void fcoe_update_src_mac(struct fcoe_ctlr *fip, u8 *old, u8 *new)
482{
483 struct fcoe_softc *fc;
484
485 fc = fcoe_from_ctlr(fip);
486 rtnl_lock();
487 if (!is_zero_ether_addr(old))
488 dev_unicast_delete(fc->real_dev, old, ETH_ALEN);
489 dev_unicast_add(fc->real_dev, new, ETH_ALEN);
490 rtnl_unlock();
491}
492
493/**
494 * fcoe_if_create() - this function creates the fcoe interface
495 * @netdev: pointer the associated netdevice
496 *
497 * Creates fc_lport struct and scsi_host for lport, configures lport
498 * and starts fabric login.
499 *
500 * Returns : 0 on success
501 */
502static int fcoe_if_create(struct net_device *netdev)
503{
504 int rc;
505 struct fc_lport *lp = NULL;
506 struct fcoe_softc *fc;
507 struct Scsi_Host *shost;
508
509 BUG_ON(!netdev);
510
511 printk(KERN_DEBUG "fcoe_if_create:interface on %s\n",
512 netdev->name);
513
514 lp = fcoe_hostlist_lookup(netdev);
515 if (lp)
516 return -EEXIST;
517
518 shost = libfc_host_alloc(&fcoe_shost_template,
519 sizeof(struct fcoe_softc));
520 if (!shost) {
521 FC_DBG("Could not allocate host structure\n");
522 return -ENOMEM;
523 }
524 lp = shost_priv(shost);
525 fc = lport_priv(lp);
526
527 /* configure fc_lport, e.g., em */
528 rc = fcoe_lport_config(lp);
529 if (rc) {
530 FC_DBG("Could not configure lport\n");
531 goto out_host_put;
532 }
533
534 /* configure lport network properties */
535 rc = fcoe_netdev_config(lp, netdev);
536 if (rc) {
537 FC_DBG("Could not configure netdev for lport\n");
538 goto out_host_put;
539 }
540
541 /*
542 * Initialize FIP.
543 */
544 fcoe_ctlr_init(&fc->ctlr);
545 fc->ctlr.send = fcoe_fip_send;
546 fc->ctlr.update_mac = fcoe_update_src_mac;
547
548 fc->fip_packet_type.func = fcoe_fip_recv;
549 fc->fip_packet_type.type = htons(ETH_P_FIP);
550 fc->fip_packet_type.dev = fc->real_dev;
551 dev_add_pack(&fc->fip_packet_type);
552
553 /* configure lport scsi host properties */
554 rc = fcoe_shost_config(lp, shost, &netdev->dev);
555 if (rc) {
556 FC_DBG("Could not configure shost for lport\n");
557 goto out_host_put;
558 }
559
560 /* lport exch manager allocation */
561 rc = fcoe_em_config(lp);
562 if (rc) {
563 FC_DBG("Could not configure em for lport\n");
564 goto out_host_put;
565 }
566
567 /* Initialize the library */
568 rc = fcoe_libfc_config(lp, &fcoe_libfc_fcn_templ);
569 if (rc) {
570 FC_DBG("Could not configure libfc for lport!\n");
571 goto out_lp_destroy;
572 }
573
574 /* add to lports list */
575 fcoe_hostlist_add(lp);
576
577 lp->boot_time = jiffies;
578
579 fc_fabric_login(lp);
580
581 if (!fcoe_link_ok(lp))
582 fcoe_ctlr_link_up(&fc->ctlr);
583
584 dev_hold(netdev);
585
586 return rc;
587
588out_lp_destroy:
589 fc_exch_mgr_free(lp->emp); /* Free the EM */
590out_host_put:
591 scsi_host_put(lp->host);
592 return rc;
593}
594
595/**
596 * fcoe_if_init() - attach to scsi transport
597 *
598 * Returns : 0 on success
599 */
600static int __init fcoe_if_init(void)
601{
602 /* attach to scsi transport */
603 scsi_transport_fcoe_sw =
604 fc_attach_transport(&fcoe_transport_function);
605
606 if (!scsi_transport_fcoe_sw) {
607 printk(KERN_ERR "fcoe_init:fc_attach_transport() failed\n");
608 return -ENODEV;
609 }
610
611 return 0;
612}
613
614/**
615 * fcoe_if_exit() - detach from scsi transport
616 *
617 * Returns : 0 on success
618 */
619int __exit fcoe_if_exit(void)
620{
621 fc_release_transport(scsi_transport_fcoe_sw);
622 return 0;
623}
624
625/**
626 * fcoe_percpu_thread_create() - Create a receive thread for an online cpu
627 * @cpu: cpu index for the online cpu
628 */
629static void fcoe_percpu_thread_create(unsigned int cpu)
630{
631 struct fcoe_percpu_s *p;
632 struct task_struct *thread;
633
634 p = &per_cpu(fcoe_percpu, cpu);
635
636 thread = kthread_create(fcoe_percpu_receive_thread,
637 (void *)p, "fcoethread/%d", cpu);
638
639 if (likely(!IS_ERR(p->thread))) {
640 kthread_bind(thread, cpu);
641 wake_up_process(thread);
642
643 spin_lock_bh(&p->fcoe_rx_list.lock);
644 p->thread = thread;
645 spin_unlock_bh(&p->fcoe_rx_list.lock);
646 }
647}
648
649/**
650 * fcoe_percpu_thread_destroy() - removes the rx thread for the given cpu
651 * @cpu: cpu index the rx thread is to be removed
652 *
653 * Destroys a per-CPU Rx thread. Any pending skbs are moved to the
654 * current CPU's Rx thread. If the thread being destroyed is bound to
655 * the CPU processing this context the skbs will be freed.
656 */
657static void fcoe_percpu_thread_destroy(unsigned int cpu)
658{
659 struct fcoe_percpu_s *p;
660 struct task_struct *thread;
661 struct page *crc_eof;
662 struct sk_buff *skb;
663#ifdef CONFIG_SMP
664 struct fcoe_percpu_s *p0;
665 unsigned targ_cpu = smp_processor_id();
666#endif /* CONFIG_SMP */
667
668 printk(KERN_DEBUG "fcoe: Destroying receive thread for CPU %d\n", cpu);
669
670 /* Prevent any new skbs from being queued for this CPU. */
671 p = &per_cpu(fcoe_percpu, cpu);
672 spin_lock_bh(&p->fcoe_rx_list.lock);
673 thread = p->thread;
674 p->thread = NULL;
675 crc_eof = p->crc_eof_page;
676 p->crc_eof_page = NULL;
677 p->crc_eof_offset = 0;
678 spin_unlock_bh(&p->fcoe_rx_list.lock);
679
680#ifdef CONFIG_SMP
681 /*
682 * Don't bother moving the skb's if this context is running
683 * on the same CPU that is having its thread destroyed. This
684 * can easily happen when the module is removed.
685 */
686 if (cpu != targ_cpu) {
687 p0 = &per_cpu(fcoe_percpu, targ_cpu);
688 spin_lock_bh(&p0->fcoe_rx_list.lock);
689 if (p0->thread) {
690 FC_DBG("Moving frames from CPU %d to CPU %d\n",
691 cpu, targ_cpu);
692
693 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) != NULL)
694 __skb_queue_tail(&p0->fcoe_rx_list, skb);
695 spin_unlock_bh(&p0->fcoe_rx_list.lock);
696 } else {
697 /*
698 * The targeted CPU is not initialized and cannot accept
699 * new skbs. Unlock the targeted CPU and drop the skbs
700 * on the CPU that is going offline.
701 */
702 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) != NULL)
703 kfree_skb(skb);
704 spin_unlock_bh(&p0->fcoe_rx_list.lock);
705 }
706 } else {
707 /*
708 * This scenario occurs when the module is being removed
709 * and all threads are being destroyed. skbs will continue
710 * to be shifted from the CPU thread that is being removed
711 * to the CPU thread associated with the CPU that is processing
712 * the module removal. Once there is only one CPU Rx thread it
713 * will reach this case and we will drop all skbs and later
714 * stop the thread.
715 */
716 spin_lock_bh(&p->fcoe_rx_list.lock);
717 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) != NULL)
718 kfree_skb(skb);
719 spin_unlock_bh(&p->fcoe_rx_list.lock);
720 }
721#else
722 /*
723 * This a non-SMP scenario where the singluar Rx thread is
724 * being removed. Free all skbs and stop the thread.
725 */
726 spin_lock_bh(&p->fcoe_rx_list.lock);
727 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) != NULL)
728 kfree_skb(skb);
729 spin_unlock_bh(&p->fcoe_rx_list.lock);
730#endif
731
732 if (thread)
733 kthread_stop(thread);
734
735 if (crc_eof)
736 put_page(crc_eof);
737}
738
739/**
740 * fcoe_cpu_callback() - fcoe cpu hotplug event callback
741 * @nfb: callback data block
742 * @action: event triggering the callback
743 * @hcpu: index for the cpu of this event
744 *
745 * This creates or destroys per cpu data for fcoe
746 *
747 * Returns NOTIFY_OK always.
748 */
749static int fcoe_cpu_callback(struct notifier_block *nfb,
750 unsigned long action, void *hcpu)
751{
752 unsigned cpu = (unsigned long)hcpu;
753
754 switch (action) {
755 case CPU_ONLINE:
756 case CPU_ONLINE_FROZEN:
757 FC_DBG("CPU %x online: Create Rx thread\n", cpu);
758 fcoe_percpu_thread_create(cpu);
759 break;
760 case CPU_DEAD:
761 case CPU_DEAD_FROZEN:
762 FC_DBG("CPU %x offline: Remove Rx thread\n", cpu);
763 fcoe_percpu_thread_destroy(cpu);
764 break;
765 default:
766 break;
767 }
768 return NOTIFY_OK;
769}
770
771static struct notifier_block fcoe_cpu_notifier = {
772 .notifier_call = fcoe_cpu_callback,
773};
774
775/**
776 * fcoe_rcv() - this is the fcoe receive function called by NET_RX_SOFTIRQ
777 * @skb: the receive skb
778 * @dev: associated net device
779 * @ptype: context
780 * @odldev: last device
781 *
782 * this function will receive the packet and build fc frame and pass it up
783 *
784 * Returns: 0 for success
785 */
786int fcoe_rcv(struct sk_buff *skb, struct net_device *dev,
787 struct packet_type *ptype, struct net_device *olddev)
788{
789 struct fc_lport *lp;
790 struct fcoe_rcv_info *fr;
791 struct fcoe_softc *fc;
792 struct fc_frame_header *fh;
793 struct fcoe_percpu_s *fps;
794 unsigned short oxid;
795 unsigned int cpu = 0;
796
797 fc = container_of(ptype, struct fcoe_softc, fcoe_packet_type);
798 lp = fc->ctlr.lp;
799 if (unlikely(lp == NULL)) {
800 FC_DBG("cannot find hba structure");
801 goto err2;
802 }
803 if (!lp->link_up)
804 goto err2;
805
806 if (unlikely(debug_fcoe)) {
807 FC_DBG("skb_info: len:%d data_len:%d head:%p data:%p tail:%p "
808 "end:%p sum:%d dev:%s", skb->len, skb->data_len,
809 skb->head, skb->data, skb_tail_pointer(skb),
810 skb_end_pointer(skb), skb->csum,
811 skb->dev ? skb->dev->name : "<NULL>");
812
813 }
814
815 /* check for FCOE packet type */
816 if (unlikely(eth_hdr(skb)->h_proto != htons(ETH_P_FCOE))) {
817 FC_DBG("wrong FC type frame");
818 goto err;
819 }
820
821 /*
822 * Check for minimum frame length, and make sure required FCoE
823 * and FC headers are pulled into the linear data area.
824 */
825 if (unlikely((skb->len < FCOE_MIN_FRAME) ||
826 !pskb_may_pull(skb, FCOE_HEADER_LEN)))
827 goto err;
828
829 skb_set_transport_header(skb, sizeof(struct fcoe_hdr));
830 fh = (struct fc_frame_header *) skb_transport_header(skb);
831
832 oxid = ntohs(fh->fh_ox_id);
833
834 fr = fcoe_dev_from_skb(skb);
835 fr->fr_dev = lp;
836 fr->ptype = ptype;
837
838#ifdef CONFIG_SMP
839 /*
840 * The incoming frame exchange id(oxid) is ANDed with num of online
841 * cpu bits to get cpu and then this cpu is used for selecting
842 * a per cpu kernel thread from fcoe_percpu.
843 */
844 cpu = oxid & (num_online_cpus() - 1);
845#endif
846
847 fps = &per_cpu(fcoe_percpu, cpu);
848 spin_lock_bh(&fps->fcoe_rx_list.lock);
849 if (unlikely(!fps->thread)) {
850 /*
851 * The targeted CPU is not ready, let's target
852 * the first CPU now. For non-SMP systems this
853 * will check the same CPU twice.
854 */
855 FC_DBG("CPU is online, but no receive thread ready "
856 "for incoming skb- using first online CPU.\n");
857
858 spin_unlock_bh(&fps->fcoe_rx_list.lock);
859 cpu = first_cpu(cpu_online_map);
860 fps = &per_cpu(fcoe_percpu, cpu);
861 spin_lock_bh(&fps->fcoe_rx_list.lock);
862 if (!fps->thread) {
863 spin_unlock_bh(&fps->fcoe_rx_list.lock);
864 goto err;
865 }
866 }
867
868 /*
869 * We now have a valid CPU that we're targeting for
870 * this skb. We also have this receive thread locked,
871 * so we're free to queue skbs into it's queue.
872 */
873 __skb_queue_tail(&fps->fcoe_rx_list, skb);
874 if (fps->fcoe_rx_list.qlen == 1)
875 wake_up_process(fps->thread);
876
877 spin_unlock_bh(&fps->fcoe_rx_list.lock);
878
879 return 0;
880err:
881 fc_lport_get_stats(lp)->ErrorFrames++;
882
883err2:
884 kfree_skb(skb);
885 return -1;
886}
887EXPORT_SYMBOL_GPL(fcoe_rcv);
888
889/**
890 * fcoe_start_io() - pass to netdev to start xmit for fcoe
891 * @skb: the skb to be xmitted
892 *
893 * Returns: 0 for success
894 */
895static inline int fcoe_start_io(struct sk_buff *skb)
896{
897 int rc;
898
899 skb_get(skb);
900 rc = dev_queue_xmit(skb);
901 if (rc != 0)
902 return rc;
903 kfree_skb(skb);
904 return 0;
905}
906
907/**
908 * fcoe_get_paged_crc_eof() - in case we need alloc a page for crc_eof
909 * @skb: the skb to be xmitted
910 * @tlen: total len
911 *
912 * Returns: 0 for success
913 */
914static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen)
915{
916 struct fcoe_percpu_s *fps;
917 struct page *page;
918
919 fps = &get_cpu_var(fcoe_percpu);
920 page = fps->crc_eof_page;
921 if (!page) {
922 page = alloc_page(GFP_ATOMIC);
923 if (!page) {
924 put_cpu_var(fcoe_percpu);
925 return -ENOMEM;
926 }
927 fps->crc_eof_page = page;
928 fps->crc_eof_offset = 0;
929 }
930
931 get_page(page);
932 skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags, page,
933 fps->crc_eof_offset, tlen);
934 skb->len += tlen;
935 skb->data_len += tlen;
936 skb->truesize += tlen;
937 fps->crc_eof_offset += sizeof(struct fcoe_crc_eof);
938
939 if (fps->crc_eof_offset >= PAGE_SIZE) {
940 fps->crc_eof_page = NULL;
941 fps->crc_eof_offset = 0;
942 put_page(page);
943 }
944 put_cpu_var(fcoe_percpu);
945 return 0;
946}
947
948/**
949 * fcoe_fc_crc() - calculates FC CRC in this fcoe skb
950 * @fp: the fc_frame containg data to be checksummed
951 *
952 * This uses crc32() to calculate the crc for fc frame
953 * Return : 32 bit crc
954 */
955u32 fcoe_fc_crc(struct fc_frame *fp)
956{
957 struct sk_buff *skb = fp_skb(fp);
958 struct skb_frag_struct *frag;
959 unsigned char *data;
960 unsigned long off, len, clen;
961 u32 crc;
962 unsigned i;
963
964 crc = crc32(~0, skb->data, skb_headlen(skb));
965
966 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
967 frag = &skb_shinfo(skb)->frags[i];
968 off = frag->page_offset;
969 len = frag->size;
970 while (len > 0) {
971 clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK));
972 data = kmap_atomic(frag->page + (off >> PAGE_SHIFT),
973 KM_SKB_DATA_SOFTIRQ);
974 crc = crc32(crc, data + (off & ~PAGE_MASK), clen);
975 kunmap_atomic(data, KM_SKB_DATA_SOFTIRQ);
976 off += clen;
977 len -= clen;
978 }
979 }
980 return crc;
981}
982
983/**
984 * fcoe_xmit() - FCoE frame transmit function
985 * @lp: the associated local port
986 * @fp: the fc_frame to be transmitted
987 *
988 * Return : 0 for success
989 */
990int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp)
991{
992 int wlen, rc = 0;
993 u32 crc;
994 struct ethhdr *eh;
995 struct fcoe_crc_eof *cp;
996 struct sk_buff *skb;
997 struct fcoe_dev_stats *stats;
998 struct fc_frame_header *fh;
999 unsigned int hlen; /* header length implies the version */
1000 unsigned int tlen; /* trailer length */
1001 unsigned int elen; /* eth header, may include vlan */
1002 struct fcoe_softc *fc;
1003 u8 sof, eof;
1004 struct fcoe_hdr *hp;
1005
1006 WARN_ON((fr_len(fp) % sizeof(u32)) != 0);
1007
1008 fc = lport_priv(lp);
1009 fh = fc_frame_header_get(fp);
1010 skb = fp_skb(fp);
1011 wlen = skb->len / FCOE_WORD_TO_BYTE;
1012
1013 if (!lp->link_up) {
1014 kfree(skb);
1015 return 0;
1016 }
1017
1018 if (unlikely(fh->fh_r_ctl == FC_RCTL_ELS_REQ) &&
1019 fcoe_ctlr_els_send(&fc->ctlr, skb))
1020 return 0;
1021
1022 sof = fr_sof(fp);
1023 eof = fr_eof(fp);
1024
1025 elen = (fc->real_dev->priv_flags & IFF_802_1Q_VLAN) ?
1026 sizeof(struct vlan_ethhdr) : sizeof(struct ethhdr);
1027 hlen = sizeof(struct fcoe_hdr);
1028 tlen = sizeof(struct fcoe_crc_eof);
1029 wlen = (skb->len - tlen + sizeof(crc)) / FCOE_WORD_TO_BYTE;
1030
1031 /* crc offload */
1032 if (likely(lp->crc_offload)) {
1033 skb->ip_summed = CHECKSUM_PARTIAL;
1034 skb->csum_start = skb_headroom(skb);
1035 skb->csum_offset = skb->len;
1036 crc = 0;
1037 } else {
1038 skb->ip_summed = CHECKSUM_NONE;
1039 crc = fcoe_fc_crc(fp);
1040 }
1041
1042 /* copy fc crc and eof to the skb buff */
1043 if (skb_is_nonlinear(skb)) {
1044 skb_frag_t *frag;
1045 if (fcoe_get_paged_crc_eof(skb, tlen)) {
1046 kfree_skb(skb);
1047 return -ENOMEM;
1048 }
1049 frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1];
1050 cp = kmap_atomic(frag->page, KM_SKB_DATA_SOFTIRQ)
1051 + frag->page_offset;
1052 } else {
1053 cp = (struct fcoe_crc_eof *)skb_put(skb, tlen);
1054 }
1055
1056 memset(cp, 0, sizeof(*cp));
1057 cp->fcoe_eof = eof;
1058 cp->fcoe_crc32 = cpu_to_le32(~crc);
1059
1060 if (skb_is_nonlinear(skb)) {
1061 kunmap_atomic(cp, KM_SKB_DATA_SOFTIRQ);
1062 cp = NULL;
1063 }
1064
1065 /* adjust skb netowrk/transport offsets to match mac/fcoe/fc */
1066 skb_push(skb, elen + hlen);
1067 skb_reset_mac_header(skb);
1068 skb_reset_network_header(skb);
1069 skb->mac_len = elen;
1070 skb->protocol = htons(ETH_P_FCOE);
1071 skb->dev = fc->real_dev;
1072
1073 /* fill up mac and fcoe headers */
1074 eh = eth_hdr(skb);
1075 eh->h_proto = htons(ETH_P_FCOE);
1076 if (fc->ctlr.map_dest)
1077 fc_fcoe_set_mac(eh->h_dest, fh->fh_d_id);
1078 else
1079 /* insert GW address */
1080 memcpy(eh->h_dest, fc->ctlr.dest_addr, ETH_ALEN);
1081
1082 if (unlikely(fc->ctlr.flogi_oxid != FC_XID_UNKNOWN))
1083 memcpy(eh->h_source, fc->ctlr.ctl_src_addr, ETH_ALEN);
1084 else
1085 memcpy(eh->h_source, fc->ctlr.data_src_addr, ETH_ALEN);
1086
1087 hp = (struct fcoe_hdr *)(eh + 1);
1088 memset(hp, 0, sizeof(*hp));
1089 if (FC_FCOE_VER)
1090 FC_FCOE_ENCAPS_VER(hp, FC_FCOE_VER);
1091 hp->fcoe_sof = sof;
1092
1093#ifdef NETIF_F_FSO
1094 /* fcoe lso, mss is in max_payload which is non-zero for FCP data */
1095 if (lp->seq_offload && fr_max_payload(fp)) {
1096 skb_shinfo(skb)->gso_type = SKB_GSO_FCOE;
1097 skb_shinfo(skb)->gso_size = fr_max_payload(fp);
1098 } else {
1099 skb_shinfo(skb)->gso_type = 0;
1100 skb_shinfo(skb)->gso_size = 0;
1101 }
1102#endif
1103 /* update tx stats: regardless if LLD fails */
1104 stats = fc_lport_get_stats(lp);
1105 stats->TxFrames++;
1106 stats->TxWords += wlen;
1107
1108 /* send down to lld */
1109 fr_dev(fp) = lp;
1110 if (fc->fcoe_pending_queue.qlen)
1111 rc = fcoe_check_wait_queue(lp);
1112
1113 if (rc == 0)
1114 rc = fcoe_start_io(skb);
1115
1116 if (rc) {
1117 spin_lock_bh(&fc->fcoe_pending_queue.lock);
1118 __skb_queue_tail(&fc->fcoe_pending_queue, skb);
1119 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1120 if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH)
1121 lp->qfull = 1;
1122 }
1123
1124 return 0;
1125}
1126EXPORT_SYMBOL_GPL(fcoe_xmit);
1127
1128/**
1129 * fcoe_percpu_receive_thread() - recv thread per cpu
1130 * @arg: ptr to the fcoe per cpu struct
1131 *
1132 * Return: 0 for success
1133 */
1134int fcoe_percpu_receive_thread(void *arg)
1135{
1136 struct fcoe_percpu_s *p = arg;
1137 u32 fr_len;
1138 struct fc_lport *lp;
1139 struct fcoe_rcv_info *fr;
1140 struct fcoe_dev_stats *stats;
1141 struct fc_frame_header *fh;
1142 struct sk_buff *skb;
1143 struct fcoe_crc_eof crc_eof;
1144 struct fc_frame *fp;
1145 u8 *mac = NULL;
1146 struct fcoe_softc *fc;
1147 struct fcoe_hdr *hp;
1148
1149 set_user_nice(current, -20);
1150
1151 while (!kthread_should_stop()) {
1152
1153 spin_lock_bh(&p->fcoe_rx_list.lock);
1154 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) == NULL) {
1155 set_current_state(TASK_INTERRUPTIBLE);
1156 spin_unlock_bh(&p->fcoe_rx_list.lock);
1157 schedule();
1158 set_current_state(TASK_RUNNING);
1159 if (kthread_should_stop())
1160 return 0;
1161 spin_lock_bh(&p->fcoe_rx_list.lock);
1162 }
1163 spin_unlock_bh(&p->fcoe_rx_list.lock);
1164 fr = fcoe_dev_from_skb(skb);
1165 lp = fr->fr_dev;
1166 if (unlikely(lp == NULL)) {
1167 FC_DBG("invalid HBA Structure");
1168 kfree_skb(skb);
1169 continue;
1170 }
1171
1172 if (unlikely(debug_fcoe)) {
1173 FC_DBG("skb_info: len:%d data_len:%d head:%p data:%p "
1174 "tail:%p end:%p sum:%d dev:%s",
1175 skb->len, skb->data_len,
1176 skb->head, skb->data, skb_tail_pointer(skb),
1177 skb_end_pointer(skb), skb->csum,
1178 skb->dev ? skb->dev->name : "<NULL>");
1179 }
1180
1181 /*
1182 * Save source MAC address before discarding header.
1183 */
1184 fc = lport_priv(lp);
1185 if (skb_is_nonlinear(skb))
1186 skb_linearize(skb); /* not ideal */
1187 mac = eth_hdr(skb)->h_source;
1188
1189 /*
1190 * Frame length checks and setting up the header pointers
1191 * was done in fcoe_rcv already.
1192 */
1193 hp = (struct fcoe_hdr *) skb_network_header(skb);
1194 fh = (struct fc_frame_header *) skb_transport_header(skb);
1195
1196 stats = fc_lport_get_stats(lp);
1197 if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
1198 if (stats->ErrorFrames < 5)
1199 printk(KERN_WARNING "FCoE version "
1200 "mismatch: The frame has "
1201 "version %x, but the "
1202 "initiator supports version "
1203 "%x\n", FC_FCOE_DECAPS_VER(hp),
1204 FC_FCOE_VER);
1205 stats->ErrorFrames++;
1206 kfree_skb(skb);
1207 continue;
1208 }
1209
1210 skb_pull(skb, sizeof(struct fcoe_hdr));
1211 fr_len = skb->len - sizeof(struct fcoe_crc_eof);
1212
1213 stats->RxFrames++;
1214 stats->RxWords += fr_len / FCOE_WORD_TO_BYTE;
1215
1216 fp = (struct fc_frame *)skb;
1217 fc_frame_init(fp);
1218 fr_dev(fp) = lp;
1219 fr_sof(fp) = hp->fcoe_sof;
1220
1221 /* Copy out the CRC and EOF trailer for access */
1222 if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) {
1223 kfree_skb(skb);
1224 continue;
1225 }
1226 fr_eof(fp) = crc_eof.fcoe_eof;
1227 fr_crc(fp) = crc_eof.fcoe_crc32;
1228 if (pskb_trim(skb, fr_len)) {
1229 kfree_skb(skb);
1230 continue;
1231 }
1232
1233 /*
1234 * We only check CRC if no offload is available and if it is
1235 * it's solicited data, in which case, the FCP layer would
1236 * check it during the copy.
1237 */
1238 if (lp->crc_offload && skb->ip_summed == CHECKSUM_UNNECESSARY)
1239 fr_flags(fp) &= ~FCPHF_CRC_UNCHECKED;
1240 else
1241 fr_flags(fp) |= FCPHF_CRC_UNCHECKED;
1242
1243 fh = fc_frame_header_get(fp);
1244 if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA &&
1245 fh->fh_type == FC_TYPE_FCP) {
1246 fc_exch_recv(lp, lp->emp, fp);
1247 continue;
1248 }
1249 if (fr_flags(fp) & FCPHF_CRC_UNCHECKED) {
1250 if (le32_to_cpu(fr_crc(fp)) !=
1251 ~crc32(~0, skb->data, fr_len)) {
1252 if (debug_fcoe || stats->InvalidCRCCount < 5)
1253 printk(KERN_WARNING "fcoe: dropping "
1254 "frame with CRC error\n");
1255 stats->InvalidCRCCount++;
1256 stats->ErrorFrames++;
1257 fc_frame_free(fp);
1258 continue;
1259 }
1260 fr_flags(fp) &= ~FCPHF_CRC_UNCHECKED;
1261 }
1262 if (unlikely(fc->ctlr.flogi_oxid != FC_XID_UNKNOWN) &&
1263 fcoe_ctlr_recv_flogi(&fc->ctlr, fp, mac)) {
1264 fc_frame_free(fp);
1265 continue;
1266 }
1267 fc_exch_recv(lp, lp->emp, fp);
1268 }
1269 return 0;
1270}
1271
1272/**
1273 * fcoe_watchdog() - fcoe timer callback
1274 * @vp:
1275 *
1276 * This checks the pending queue length for fcoe and set lport qfull
1277 * if the FCOE_MAX_QUEUE_DEPTH is reached. This is done for all fc_lport on the
1278 * fcoe_hostlist.
1279 *
1280 * Returns: 0 for success
1281 */
1282void fcoe_watchdog(ulong vp)
1283{
1284 struct fcoe_softc *fc;
1285
1286 read_lock(&fcoe_hostlist_lock);
1287 list_for_each_entry(fc, &fcoe_hostlist, list) {
1288 if (fc->ctlr.lp)
1289 fcoe_check_wait_queue(fc->ctlr.lp);
1290 }
1291 read_unlock(&fcoe_hostlist_lock);
1292
1293 fcoe_timer.expires = jiffies + (1 * HZ);
1294 add_timer(&fcoe_timer);
1295}
1296
1297
1298/**
1299 * fcoe_check_wait_queue() - put the skb into fcoe pending xmit queue
1300 * @lp: the fc_port for this skb
1301 * @skb: the associated skb to be xmitted
1302 *
1303 * This empties the wait_queue, dequeue the head of the wait_queue queue
1304 * and calls fcoe_start_io() for each packet, if all skb have been
1305 * transmitted, return qlen or -1 if a error occurs, then restore
1306 * wait_queue and try again later.
1307 *
1308 * The wait_queue is used when the skb transmit fails. skb will go
1309 * in the wait_queue which will be emptied by the time function OR
1310 * by the next skb transmit.
1311 *
1312 * Returns: 0 for success
1313 */
1314static int fcoe_check_wait_queue(struct fc_lport *lp)
1315{
1316 struct fcoe_softc *fc = lport_priv(lp);
1317 struct sk_buff *skb;
1318 int rc = -1;
1319
1320 spin_lock_bh(&fc->fcoe_pending_queue.lock);
1321 if (fc->fcoe_pending_queue_active)
1322 goto out;
1323 fc->fcoe_pending_queue_active = 1;
1324
1325 while (fc->fcoe_pending_queue.qlen) {
1326 /* keep qlen > 0 until fcoe_start_io succeeds */
1327 fc->fcoe_pending_queue.qlen++;
1328 skb = __skb_dequeue(&fc->fcoe_pending_queue);
1329
1330 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1331 rc = fcoe_start_io(skb);
1332 spin_lock_bh(&fc->fcoe_pending_queue.lock);
1333
1334 if (rc) {
1335 __skb_queue_head(&fc->fcoe_pending_queue, skb);
1336 /* undo temporary increment above */
1337 fc->fcoe_pending_queue.qlen--;
1338 break;
1339 }
1340 /* undo temporary increment above */
1341 fc->fcoe_pending_queue.qlen--;
1342 }
1343
1344 if (fc->fcoe_pending_queue.qlen < FCOE_LOW_QUEUE_DEPTH)
1345 lp->qfull = 0;
1346 fc->fcoe_pending_queue_active = 0;
1347 rc = fc->fcoe_pending_queue.qlen;
1348out:
1349 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1350 return rc;
1351}
1352
1353/**
1354 * fcoe_dev_setup() - setup link change notification interface
1355 */
1356static void fcoe_dev_setup()
1357{
1358 /*
1359 * here setup a interface specific wd time to
1360 * monitor the link state
1361 */
1362 register_netdevice_notifier(&fcoe_notifier);
1363}
1364
1365/**
1366 * fcoe_dev_setup() - cleanup link change notification interface
1367 */
1368static void fcoe_dev_cleanup(void)
1369{
1370 unregister_netdevice_notifier(&fcoe_notifier);
1371}
1372
1373/**
1374 * fcoe_device_notification() - netdev event notification callback
1375 * @notifier: context of the notification
1376 * @event: type of event
1377 * @ptr: fixed array for output parsed ifname
1378 *
1379 * This function is called by the ethernet driver in case of link change event
1380 *
1381 * Returns: 0 for success
1382 */
1383static int fcoe_device_notification(struct notifier_block *notifier,
1384 ulong event, void *ptr)
1385{
1386 struct fc_lport *lp = NULL;
1387 struct net_device *real_dev = ptr;
1388 struct fcoe_softc *fc;
1389 struct fcoe_dev_stats *stats;
1390 u32 link_possible = 1;
1391 u32 mfs;
1392 int rc = NOTIFY_OK;
1393
1394 read_lock(&fcoe_hostlist_lock);
1395 list_for_each_entry(fc, &fcoe_hostlist, list) {
1396 if (fc->real_dev == real_dev) {
1397 lp = fc->ctlr.lp;
1398 break;
1399 }
1400 }
1401 read_unlock(&fcoe_hostlist_lock);
1402 if (lp == NULL) {
1403 rc = NOTIFY_DONE;
1404 goto out;
1405 }
1406
1407 switch (event) {
1408 case NETDEV_DOWN:
1409 case NETDEV_GOING_DOWN:
1410 link_possible = 0;
1411 break;
1412 case NETDEV_UP:
1413 case NETDEV_CHANGE:
1414 break;
1415 case NETDEV_CHANGEMTU:
1416 mfs = fc->real_dev->mtu -
1417 (sizeof(struct fcoe_hdr) +
1418 sizeof(struct fcoe_crc_eof));
1419 if (mfs >= FC_MIN_MAX_FRAME)
1420 fc_set_mfs(lp, mfs);
1421 break;
1422 case NETDEV_REGISTER:
1423 break;
1424 default:
1425 FC_DBG("Unknown event %ld from netdev netlink\n", event);
1426 }
1427 if (link_possible && !fcoe_link_ok(lp))
1428 fcoe_ctlr_link_up(&fc->ctlr);
1429 else if (fcoe_ctlr_link_down(&fc->ctlr)) {
1430 stats = fc_lport_get_stats(lp);
1431 stats->LinkFailureCount++;
1432 fcoe_clean_pending_queue(lp);
1433 }
1434out:
1435 return rc;
1436}
1437
1438/**
1439 * fcoe_if_to_netdev() - parse a name buffer to get netdev
1440 * @ifname: fixed array for output parsed ifname
1441 * @buffer: incoming buffer to be copied
1442 *
1443 * Returns: NULL or ptr to netdeive
1444 */
1445static struct net_device *fcoe_if_to_netdev(const char *buffer)
1446{
1447 char *cp;
1448 char ifname[IFNAMSIZ + 2];
1449
1450 if (buffer) {
1451 strlcpy(ifname, buffer, IFNAMSIZ);
1452 cp = ifname + strlen(ifname);
1453 while (--cp >= ifname && *cp == '\n')
1454 *cp = '\0';
1455 return dev_get_by_name(&init_net, ifname);
1456 }
1457 return NULL;
1458}
1459
1460/**
1461 * fcoe_netdev_to_module_owner() - finds out the nic drive moddule of the netdev
1462 * @netdev: the target netdev
1463 *
1464 * Returns: ptr to the struct module, NULL for failure
1465 */
1466static struct module *
1467fcoe_netdev_to_module_owner(const struct net_device *netdev)
1468{
1469 struct device *dev;
1470
1471 if (!netdev)
1472 return NULL;
1473
1474 dev = netdev->dev.parent;
1475 if (!dev)
1476 return NULL;
1477
1478 if (!dev->driver)
1479 return NULL;
1480
1481 return dev->driver->owner;
1482}
1483
1484/**
1485 * fcoe_ethdrv_get() - Hold the Ethernet driver
1486 * @netdev: the target netdev
1487 *
1488 * Holds the Ethernet driver module by try_module_get() for
1489 * the corresponding netdev.
1490 *
1491 * Returns: 0 for succsss
1492 */
1493static int fcoe_ethdrv_get(const struct net_device *netdev)
1494{
1495 struct module *owner;
1496
1497 owner = fcoe_netdev_to_module_owner(netdev);
1498 if (owner) {
1499 printk(KERN_DEBUG "fcoe:hold driver module %s for %s\n",
1500 module_name(owner), netdev->name);
1501 return try_module_get(owner);
1502 }
1503 return -ENODEV;
1504}
1505
1506/**
1507 * fcoe_ethdrv_put() - Release the Ethernet driver
1508 * @netdev: the target netdev
1509 *
1510 * Releases the Ethernet driver module by module_put for
1511 * the corresponding netdev.
1512 *
1513 * Returns: 0 for succsss
1514 */
1515static int fcoe_ethdrv_put(const struct net_device *netdev)
1516{
1517 struct module *owner;
1518
1519 owner = fcoe_netdev_to_module_owner(netdev);
1520 if (owner) {
1521 printk(KERN_DEBUG "fcoe:release driver module %s for %s\n",
1522 module_name(owner), netdev->name);
1523 module_put(owner);
1524 return 0;
1525 }
1526 return -ENODEV;
1527}
1528
1529/**
1530 * fcoe_destroy() - handles the destroy from sysfs
1531 * @buffer: expcted to be a eth if name
1532 * @kp: associated kernel param
1533 *
1534 * Returns: 0 for success
1535 */
1536static int fcoe_destroy(const char *buffer, struct kernel_param *kp)
1537{
1538 int rc;
1539 struct net_device *netdev;
1540
1541 netdev = fcoe_if_to_netdev(buffer);
1542 if (!netdev) {
1543 rc = -ENODEV;
1544 goto out_nodev;
1545 }
1546 /* look for existing lport */
1547 if (!fcoe_hostlist_lookup(netdev)) {
1548 rc = -ENODEV;
1549 goto out_putdev;
1550 }
1551 rc = fcoe_if_destroy(netdev);
1552 if (rc) {
1553 printk(KERN_ERR "fcoe: fcoe_if_destroy(%s) failed\n",
1554 netdev->name);
1555 rc = -EIO;
1556 goto out_putdev;
1557 }
1558 fcoe_ethdrv_put(netdev);
1559 rc = 0;
1560out_putdev:
1561 dev_put(netdev);
1562out_nodev:
1563 return rc;
1564}
1565
1566/**
1567 * fcoe_create() - Handles the create call from sysfs
1568 * @buffer: expcted to be a eth if name
1569 * @kp: associated kernel param
1570 *
1571 * Returns: 0 for success
1572 */
1573static int fcoe_create(const char *buffer, struct kernel_param *kp)
1574{
1575 int rc;
1576 struct net_device *netdev;
1577
1578 netdev = fcoe_if_to_netdev(buffer);
1579 if (!netdev) {
1580 rc = -ENODEV;
1581 goto out_nodev;
1582 }
1583 /* look for existing lport */
1584 if (fcoe_hostlist_lookup(netdev)) {
1585 rc = -EEXIST;
1586 goto out_putdev;
1587 }
1588 fcoe_ethdrv_get(netdev);
1589
1590 rc = fcoe_if_create(netdev);
1591 if (rc) {
1592 printk(KERN_ERR "fcoe: fcoe_if_create(%s) failed\n",
1593 netdev->name);
1594 fcoe_ethdrv_put(netdev);
1595 rc = -EIO;
1596 goto out_putdev;
1597 }
1598 rc = 0;
1599out_putdev:
1600 dev_put(netdev);
1601out_nodev:
1602 return rc;
1603}
1604
1605module_param_call(create, fcoe_create, NULL, NULL, S_IWUSR);
1606__MODULE_PARM_TYPE(create, "string");
1607MODULE_PARM_DESC(create, "Create fcoe port using net device passed in.");
1608module_param_call(destroy, fcoe_destroy, NULL, NULL, S_IWUSR);
1609__MODULE_PARM_TYPE(destroy, "string");
1610MODULE_PARM_DESC(destroy, "Destroy fcoe port");
1611
1612/**
1613 * fcoe_link_ok() - Check if link is ok for the fc_lport
1614 * @lp: ptr to the fc_lport
1615 *
1616 * Any permanently-disqualifying conditions have been previously checked.
1617 * This also updates the speed setting, which may change with link for 100/1000.
1618 *
1619 * This function should probably be checking for PAUSE support at some point
1620 * in the future. Currently Per-priority-pause is not determinable using
1621 * ethtool, so we shouldn't be restrictive until that problem is resolved.
1622 *
1623 * Returns: 0 if link is OK for use by FCoE.
1624 *
1625 */
1626int fcoe_link_ok(struct fc_lport *lp)
1627{
1628 struct fcoe_softc *fc = lport_priv(lp);
1629 struct net_device *dev = fc->real_dev;
1630 struct ethtool_cmd ecmd = { ETHTOOL_GSET };
1631 int rc = 0;
1632
1633 if ((dev->flags & IFF_UP) && netif_carrier_ok(dev)) {
1634 dev = fc->phys_dev;
1635 if (dev->ethtool_ops->get_settings) {
1636 dev->ethtool_ops->get_settings(dev, &ecmd);
1637 lp->link_supported_speeds &=
1638 ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT);
1639 if (ecmd.supported & (SUPPORTED_1000baseT_Half |
1640 SUPPORTED_1000baseT_Full))
1641 lp->link_supported_speeds |= FC_PORTSPEED_1GBIT;
1642 if (ecmd.supported & SUPPORTED_10000baseT_Full)
1643 lp->link_supported_speeds |=
1644 FC_PORTSPEED_10GBIT;
1645 if (ecmd.speed == SPEED_1000)
1646 lp->link_speed = FC_PORTSPEED_1GBIT;
1647 if (ecmd.speed == SPEED_10000)
1648 lp->link_speed = FC_PORTSPEED_10GBIT;
1649 }
1650 } else
1651 rc = -1;
1652
1653 return rc;
1654}
1655EXPORT_SYMBOL_GPL(fcoe_link_ok);
1656
1657/**
1658 * fcoe_percpu_clean() - Clear the pending skbs for an lport
1659 * @lp: the fc_lport
1660 */
1661void fcoe_percpu_clean(struct fc_lport *lp)
1662{
1663 struct fcoe_percpu_s *pp;
1664 struct fcoe_rcv_info *fr;
1665 struct sk_buff_head *list;
1666 struct sk_buff *skb, *next;
1667 struct sk_buff *head;
1668 unsigned int cpu;
1669
1670 for_each_possible_cpu(cpu) {
1671 pp = &per_cpu(fcoe_percpu, cpu);
1672 spin_lock_bh(&pp->fcoe_rx_list.lock);
1673 list = &pp->fcoe_rx_list;
1674 head = list->next;
1675 for (skb = head; skb != (struct sk_buff *)list;
1676 skb = next) {
1677 next = skb->next;
1678 fr = fcoe_dev_from_skb(skb);
1679 if (fr->fr_dev == lp) {
1680 __skb_unlink(skb, list);
1681 kfree_skb(skb);
1682 }
1683 }
1684 spin_unlock_bh(&pp->fcoe_rx_list.lock);
1685 }
1686}
1687EXPORT_SYMBOL_GPL(fcoe_percpu_clean);
1688
1689/**
1690 * fcoe_clean_pending_queue() - Dequeue a skb and free it
1691 * @lp: the corresponding fc_lport
1692 *
1693 * Returns: none
1694 */
1695void fcoe_clean_pending_queue(struct fc_lport *lp)
1696{
1697 struct fcoe_softc *fc = lport_priv(lp);
1698 struct sk_buff *skb;
1699
1700 spin_lock_bh(&fc->fcoe_pending_queue.lock);
1701 while ((skb = __skb_dequeue(&fc->fcoe_pending_queue)) != NULL) {
1702 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1703 kfree_skb(skb);
1704 spin_lock_bh(&fc->fcoe_pending_queue.lock);
1705 }
1706 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
1707}
1708EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue);
1709
1710/**
1711 * fcoe_reset() - Resets the fcoe
1712 * @shost: shost the reset is from
1713 *
1714 * Returns: always 0
1715 */
1716int fcoe_reset(struct Scsi_Host *shost)
1717{
1718 struct fc_lport *lport = shost_priv(shost);
1719 fc_lport_reset(lport);
1720 return 0;
1721}
1722EXPORT_SYMBOL_GPL(fcoe_reset);
1723
1724/**
1725 * fcoe_hostlist_lookup_softc() - find the corresponding lport by a given device
1726 * @device: this is currently ptr to net_device
1727 *
1728 * Returns: NULL or the located fcoe_softc
1729 */
1730static struct fcoe_softc *
1731fcoe_hostlist_lookup_softc(const struct net_device *dev)
1732{
1733 struct fcoe_softc *fc;
1734
1735 read_lock(&fcoe_hostlist_lock);
1736 list_for_each_entry(fc, &fcoe_hostlist, list) {
1737 if (fc->real_dev == dev) {
1738 read_unlock(&fcoe_hostlist_lock);
1739 return fc;
1740 }
1741 }
1742 read_unlock(&fcoe_hostlist_lock);
1743 return NULL;
1744}
1745
1746/**
1747 * fcoe_hostlist_lookup() - Find the corresponding lport by netdev
1748 * @netdev: ptr to net_device
1749 *
1750 * Returns: 0 for success
1751 */
1752struct fc_lport *fcoe_hostlist_lookup(const struct net_device *netdev)
1753{
1754 struct fcoe_softc *fc;
1755
1756 fc = fcoe_hostlist_lookup_softc(netdev);
1757
1758 return (fc) ? fc->ctlr.lp : NULL;
1759}
1760EXPORT_SYMBOL_GPL(fcoe_hostlist_lookup);
1761
1762/**
1763 * fcoe_hostlist_add() - Add a lport to lports list
1764 * @lp: ptr to the fc_lport to badded
1765 *
1766 * Returns: 0 for success
1767 */
1768int fcoe_hostlist_add(const struct fc_lport *lp)
1769{
1770 struct fcoe_softc *fc;
1771
1772 fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp));
1773 if (!fc) {
1774 fc = lport_priv(lp);
1775 write_lock_bh(&fcoe_hostlist_lock);
1776 list_add_tail(&fc->list, &fcoe_hostlist);
1777 write_unlock_bh(&fcoe_hostlist_lock);
1778 }
1779 return 0;
1780}
1781EXPORT_SYMBOL_GPL(fcoe_hostlist_add);
1782
1783/**
1784 * fcoe_hostlist_remove() - remove a lport from lports list
1785 * @lp: ptr to the fc_lport to badded
1786 *
1787 * Returns: 0 for success
1788 */
1789int fcoe_hostlist_remove(const struct fc_lport *lp)
1790{
1791 struct fcoe_softc *fc;
1792
1793 fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp));
1794 BUG_ON(!fc);
1795 write_lock_bh(&fcoe_hostlist_lock);
1796 list_del(&fc->list);
1797 write_unlock_bh(&fcoe_hostlist_lock);
1798
1799 return 0;
1800}
1801EXPORT_SYMBOL_GPL(fcoe_hostlist_remove);
1802
1803/**
1804 * fcoe_init() - fcoe module loading initialization
1805 *
1806 * Returns 0 on success, negative on failure
1807 */
1808static int __init fcoe_init(void)
1809{
1810 unsigned int cpu;
1811 int rc = 0;
1812 struct fcoe_percpu_s *p;
1813
1814 INIT_LIST_HEAD(&fcoe_hostlist);
1815 rwlock_init(&fcoe_hostlist_lock);
1816
1817 for_each_possible_cpu(cpu) {
1818 p = &per_cpu(fcoe_percpu, cpu);
1819 skb_queue_head_init(&p->fcoe_rx_list);
1820 }
1821
1822 for_each_online_cpu(cpu)
1823 fcoe_percpu_thread_create(cpu);
1824
1825 /* Initialize per CPU interrupt thread */
1826 rc = register_hotcpu_notifier(&fcoe_cpu_notifier);
1827 if (rc)
1828 goto out_free;
1829
1830 /* Setup link change notification */
1831 fcoe_dev_setup();
1832
1833 setup_timer(&fcoe_timer, fcoe_watchdog, 0);
1834
1835 mod_timer(&fcoe_timer, jiffies + (10 * HZ));
1836
1837 fcoe_if_init();
1838
1839 return 0;
1840
1841out_free:
1842 for_each_online_cpu(cpu) {
1843 fcoe_percpu_thread_destroy(cpu);
1844 }
1845
1846 return rc;
1847}
1848module_init(fcoe_init);
1849
1850/**
1851 * fcoe_exit() - fcoe module unloading cleanup
1852 *
1853 * Returns 0 on success, negative on failure
1854 */
1855static void __exit fcoe_exit(void)
1856{
1857 unsigned int cpu;
1858 struct fcoe_softc *fc, *tmp;
1859
1860 fcoe_dev_cleanup();
1861
1862 /* Stop the timer */
1863 del_timer_sync(&fcoe_timer);
1864
1865 /* releases the associated fcoe hosts */
1866 list_for_each_entry_safe(fc, tmp, &fcoe_hostlist, list)
1867 fcoe_if_destroy(fc->real_dev);
1868
1869 unregister_hotcpu_notifier(&fcoe_cpu_notifier);
1870
1871 for_each_online_cpu(cpu) {
1872 fcoe_percpu_thread_destroy(cpu);
1873 }
1874
1875 /* detach from scsi transport */
1876 fcoe_if_exit();
1877}
1878module_exit(fcoe_exit);
diff --git a/drivers/scsi/fcoe/fcoe.h b/drivers/scsi/fcoe/fcoe.h
new file mode 100644
index 00000000000..917aae88689
--- /dev/null
+++ b/drivers/scsi/fcoe/fcoe.h
@@ -0,0 +1,75 @@
1/*
2 * Copyright(c) 2009 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16 *
17 * Maintained at www.Open-FCoE.org
18 */
19
20#ifndef _FCOE_H_
21#define _FCOE_H_
22
23#include <linux/skbuff.h>
24#include <linux/kthread.h>
25
26#define FCOE_MAX_QUEUE_DEPTH 256
27#define FCOE_LOW_QUEUE_DEPTH 32
28
29#define FCOE_WORD_TO_BYTE 4
30
31#define FCOE_VERSION "0.1"
32#define FCOE_NAME "fcoe"
33#define FCOE_VENDOR "Open-FCoE.org"
34
35#define FCOE_MAX_LUN 255
36#define FCOE_MAX_FCP_TARGET 256
37
38#define FCOE_MAX_OUTSTANDING_COMMANDS 1024
39
40#define FCOE_MIN_XID 0x0001 /* the min xid supported by fcoe_sw */
41#define FCOE_MAX_XID 0x07ef /* the max xid supported by fcoe_sw */
42
43/*
44 * this percpu struct for fcoe
45 */
46struct fcoe_percpu_s {
47 struct task_struct *thread;
48 struct sk_buff_head fcoe_rx_list;
49 struct page *crc_eof_page;
50 int crc_eof_offset;
51};
52
53/*
54 * the fcoe sw transport private data
55 */
56struct fcoe_softc {
57 struct list_head list;
58 struct net_device *real_dev;
59 struct net_device *phys_dev; /* device with ethtool_ops */
60 struct packet_type fcoe_packet_type;
61 struct packet_type fip_packet_type;
62 struct sk_buff_head fcoe_pending_queue;
63 u8 fcoe_pending_queue_active;
64 struct fcoe_ctlr ctlr;
65};
66
67#define fcoe_from_ctlr(fc) container_of(fc, struct fcoe_softc, ctlr)
68
69static inline struct net_device *fcoe_netdev(
70 const struct fc_lport *lp)
71{
72 return ((struct fcoe_softc *)lport_priv(lp))->real_dev;
73}
74
75#endif /* _FCOE_H_ */
diff --git a/drivers/scsi/fcoe/fcoe_sw.c b/drivers/scsi/fcoe/fcoe_sw.c
deleted file mode 100644
index 2bbbe3c0cc7..00000000000
--- a/drivers/scsi/fcoe/fcoe_sw.c
+++ /dev/null
@@ -1,561 +0,0 @@
1/*
2 * Copyright(c) 2007 - 2008 Intel Corporation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
16 *
17 * Maintained at www.Open-FCoE.org
18 */
19
20#include <linux/module.h>
21#include <linux/version.h>
22#include <linux/kernel.h>
23#include <linux/pci.h>
24#include <linux/init.h>
25#include <linux/spinlock.h>
26#include <linux/netdevice.h>
27#include <linux/etherdevice.h>
28#include <linux/if_vlan.h>
29#include <net/rtnetlink.h>
30
31#include <scsi/fc/fc_els.h>
32#include <scsi/fc/fc_encaps.h>
33#include <scsi/fc/fc_fs.h>
34#include <scsi/scsi_transport.h>
35#include <scsi/scsi_transport_fc.h>
36
37#include <scsi/libfc.h>
38#include <scsi/libfcoe.h>
39#include <scsi/fc_transport_fcoe.h>
40
41#define FCOE_SW_VERSION "0.1"
42#define FCOE_SW_NAME "fcoesw"
43#define FCOE_SW_VENDOR "Open-FCoE.org"
44
45#define FCOE_MAX_LUN 255
46#define FCOE_MAX_FCP_TARGET 256
47
48#define FCOE_MAX_OUTSTANDING_COMMANDS 1024
49
50#define FCOE_MIN_XID 0x0001 /* the min xid supported by fcoe_sw */
51#define FCOE_MAX_XID 0x07ef /* the max xid supported by fcoe_sw */
52
53static struct scsi_transport_template *scsi_transport_fcoe_sw;
54
55struct fc_function_template fcoe_sw_transport_function = {
56 .show_host_node_name = 1,
57 .show_host_port_name = 1,
58 .show_host_supported_classes = 1,
59 .show_host_supported_fc4s = 1,
60 .show_host_active_fc4s = 1,
61 .show_host_maxframe_size = 1,
62
63 .show_host_port_id = 1,
64 .show_host_supported_speeds = 1,
65 .get_host_speed = fc_get_host_speed,
66 .show_host_speed = 1,
67 .show_host_port_type = 1,
68 .get_host_port_state = fc_get_host_port_state,
69 .show_host_port_state = 1,
70 .show_host_symbolic_name = 1,
71
72 .dd_fcrport_size = sizeof(struct fc_rport_libfc_priv),
73 .show_rport_maxframe_size = 1,
74 .show_rport_supported_classes = 1,
75
76 .show_host_fabric_name = 1,
77 .show_starget_node_name = 1,
78 .show_starget_port_name = 1,
79 .show_starget_port_id = 1,
80 .set_rport_dev_loss_tmo = fc_set_rport_loss_tmo,
81 .show_rport_dev_loss_tmo = 1,
82 .get_fc_host_stats = fc_get_host_stats,
83 .issue_fc_host_lip = fcoe_reset,
84
85 .terminate_rport_io = fc_rport_terminate_io,
86};
87
88static struct scsi_host_template fcoe_sw_shost_template = {
89 .module = THIS_MODULE,
90 .name = "FCoE Driver",
91 .proc_name = FCOE_SW_NAME,
92 .queuecommand = fc_queuecommand,
93 .eh_abort_handler = fc_eh_abort,
94 .eh_device_reset_handler = fc_eh_device_reset,
95 .eh_host_reset_handler = fc_eh_host_reset,
96 .slave_alloc = fc_slave_alloc,
97 .change_queue_depth = fc_change_queue_depth,
98 .change_queue_type = fc_change_queue_type,
99 .this_id = -1,
100 .cmd_per_lun = 32,
101 .can_queue = FCOE_MAX_OUTSTANDING_COMMANDS,
102 .use_clustering = ENABLE_CLUSTERING,
103 .sg_tablesize = SG_ALL,
104 .max_sectors = 0xffff,
105};
106
107/**
108 * fcoe_sw_lport_config() - sets up the fc_lport
109 * @lp: ptr to the fc_lport
110 * @shost: ptr to the parent scsi host
111 *
112 * Returns: 0 for success
113 */
114static int fcoe_sw_lport_config(struct fc_lport *lp)
115{
116 int i = 0;
117
118 lp->link_up = 0;
119 lp->qfull = 0;
120 lp->max_retry_count = 3;
121 lp->e_d_tov = 2 * 1000; /* FC-FS default */
122 lp->r_a_tov = 2 * 2 * 1000;
123 lp->service_params = (FCP_SPPF_INIT_FCN | FCP_SPPF_RD_XRDY_DIS |
124 FCP_SPPF_RETRY | FCP_SPPF_CONF_COMPL);
125
126 /*
127 * allocate per cpu stats block
128 */
129 for_each_online_cpu(i)
130 lp->dev_stats[i] = kzalloc(sizeof(struct fcoe_dev_stats),
131 GFP_KERNEL);
132
133 /* lport fc_lport related configuration */
134 fc_lport_config(lp);
135
136 /* offload related configuration */
137 lp->crc_offload = 0;
138 lp->seq_offload = 0;
139 lp->lro_enabled = 0;
140 lp->lro_xid = 0;
141 lp->lso_max = 0;
142
143 return 0;
144}
145
146/**
147 * fcoe_sw_netdev_config() - Set up netdev for SW FCoE
148 * @lp : ptr to the fc_lport
149 * @netdev : ptr to the associated netdevice struct
150 *
151 * Must be called after fcoe_sw_lport_config() as it will use lport mutex
152 *
153 * Returns : 0 for success
154 */
155static int fcoe_sw_netdev_config(struct fc_lport *lp, struct net_device *netdev)
156{
157 u32 mfs;
158 u64 wwnn, wwpn;
159 struct fcoe_softc *fc;
160 u8 flogi_maddr[ETH_ALEN];
161
162 /* Setup lport private data to point to fcoe softc */
163 fc = lport_priv(lp);
164 fc->lp = lp;
165 fc->real_dev = netdev;
166 fc->phys_dev = netdev;
167
168 /* Require support for get_pauseparam ethtool op. */
169 if (netdev->priv_flags & IFF_802_1Q_VLAN)
170 fc->phys_dev = vlan_dev_real_dev(netdev);
171
172 /* Do not support for bonding device */
173 if ((fc->real_dev->priv_flags & IFF_MASTER_ALB) ||
174 (fc->real_dev->priv_flags & IFF_SLAVE_INACTIVE) ||
175 (fc->real_dev->priv_flags & IFF_MASTER_8023AD)) {
176 return -EOPNOTSUPP;
177 }
178
179 /*
180 * Determine max frame size based on underlying device and optional
181 * user-configured limit. If the MFS is too low, fcoe_link_ok()
182 * will return 0, so do this first.
183 */
184 mfs = fc->real_dev->mtu - (sizeof(struct fcoe_hdr) +
185 sizeof(struct fcoe_crc_eof));
186 if (fc_set_mfs(lp, mfs))
187 return -EINVAL;
188
189 if (!fcoe_link_ok(lp))
190 lp->link_up = 1;
191
192 /* offload features support */
193 if (fc->real_dev->features & NETIF_F_SG)
194 lp->sg_supp = 1;
195
196#ifdef NETIF_F_FCOE_CRC
197 if (netdev->features & NETIF_F_FCOE_CRC) {
198 lp->crc_offload = 1;
199 printk(KERN_DEBUG "fcoe:%s supports FCCRC offload\n",
200 netdev->name);
201 }
202#endif
203#ifdef NETIF_F_FSO
204 if (netdev->features & NETIF_F_FSO) {
205 lp->seq_offload = 1;
206 lp->lso_max = netdev->gso_max_size;
207 printk(KERN_DEBUG "fcoe:%s supports LSO for max len 0x%x\n",
208 netdev->name, lp->lso_max);
209 }
210#endif
211 if (netdev->fcoe_ddp_xid) {
212 lp->lro_enabled = 1;
213 lp->lro_xid = netdev->fcoe_ddp_xid;
214 printk(KERN_DEBUG "fcoe:%s supports LRO for max xid 0x%x\n",
215 netdev->name, lp->lro_xid);
216 }
217 skb_queue_head_init(&fc->fcoe_pending_queue);
218 fc->fcoe_pending_queue_active = 0;
219
220 /* setup Source Mac Address */
221 memcpy(fc->ctl_src_addr, fc->real_dev->dev_addr,
222 fc->real_dev->addr_len);
223
224 wwnn = fcoe_wwn_from_mac(fc->real_dev->dev_addr, 1, 0);
225 fc_set_wwnn(lp, wwnn);
226 /* XXX - 3rd arg needs to be vlan id */
227 wwpn = fcoe_wwn_from_mac(fc->real_dev->dev_addr, 2, 0);
228 fc_set_wwpn(lp, wwpn);
229
230 /*
231 * Add FCoE MAC address as second unicast MAC address
232 * or enter promiscuous mode if not capable of listening
233 * for multiple unicast MACs.
234 */
235 rtnl_lock();
236 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
237 dev_unicast_add(fc->real_dev, flogi_maddr, ETH_ALEN);
238 rtnl_unlock();
239
240 /*
241 * setup the receive function from ethernet driver
242 * on the ethertype for the given device
243 */
244 fc->fcoe_packet_type.func = fcoe_rcv;
245 fc->fcoe_packet_type.type = __constant_htons(ETH_P_FCOE);
246 fc->fcoe_packet_type.dev = fc->real_dev;
247 dev_add_pack(&fc->fcoe_packet_type);
248
249 return 0;
250}
251
252/**
253 * fcoe_sw_shost_config() - Sets up fc_lport->host
254 * @lp : ptr to the fc_lport
255 * @shost : ptr to the associated scsi host
256 * @dev : device associated to scsi host
257 *
258 * Must be called after fcoe_sw_lport_config() and fcoe_sw_netdev_config()
259 *
260 * Returns : 0 for success
261 */
262static int fcoe_sw_shost_config(struct fc_lport *lp, struct Scsi_Host *shost,
263 struct device *dev)
264{
265 int rc = 0;
266
267 /* lport scsi host config */
268 lp->host = shost;
269
270 lp->host->max_lun = FCOE_MAX_LUN;
271 lp->host->max_id = FCOE_MAX_FCP_TARGET;
272 lp->host->max_channel = 0;
273 lp->host->transportt = scsi_transport_fcoe_sw;
274
275 /* add the new host to the SCSI-ml */
276 rc = scsi_add_host(lp->host, dev);
277 if (rc) {
278 FC_DBG("fcoe_sw_shost_config:error on scsi_add_host\n");
279 return rc;
280 }
281 sprintf(fc_host_symbolic_name(lp->host), "%s v%s over %s",
282 FCOE_SW_NAME, FCOE_SW_VERSION,
283 fcoe_netdev(lp)->name);
284
285 return 0;
286}
287
288/**
289 * fcoe_sw_em_config() - allocates em for this lport
290 * @lp: the port that em is to allocated for
291 *
292 * Returns : 0 on success
293 */
294static inline int fcoe_sw_em_config(struct fc_lport *lp)
295{
296 BUG_ON(lp->emp);
297
298 lp->emp = fc_exch_mgr_alloc(lp, FC_CLASS_3,
299 FCOE_MIN_XID, FCOE_MAX_XID);
300 if (!lp->emp)
301 return -ENOMEM;
302
303 return 0;
304}
305
306/**
307 * fcoe_sw_destroy() - FCoE software HBA tear-down function
308 * @netdev: ptr to the associated net_device
309 *
310 * Returns: 0 if link is OK for use by FCoE.
311 */
312static int fcoe_sw_destroy(struct net_device *netdev)
313{
314 int cpu;
315 struct fc_lport *lp = NULL;
316 struct fcoe_softc *fc;
317 u8 flogi_maddr[ETH_ALEN];
318
319 BUG_ON(!netdev);
320
321 printk(KERN_DEBUG "fcoe_sw_destroy:interface on %s\n",
322 netdev->name);
323
324 lp = fcoe_hostlist_lookup(netdev);
325 if (!lp)
326 return -ENODEV;
327
328 fc = lport_priv(lp);
329
330 /* Logout of the fabric */
331 fc_fabric_logoff(lp);
332
333 /* Remove the instance from fcoe's list */
334 fcoe_hostlist_remove(lp);
335
336 /* Don't listen for Ethernet packets anymore */
337 dev_remove_pack(&fc->fcoe_packet_type);
338
339 /* Cleanup the fc_lport */
340 fc_lport_destroy(lp);
341 fc_fcp_destroy(lp);
342
343 /* Detach from the scsi-ml */
344 fc_remove_host(lp->host);
345 scsi_remove_host(lp->host);
346
347 /* There are no more rports or I/O, free the EM */
348 if (lp->emp)
349 fc_exch_mgr_free(lp->emp);
350
351 /* Delete secondary MAC addresses */
352 rtnl_lock();
353 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
354 dev_unicast_delete(fc->real_dev, flogi_maddr, ETH_ALEN);
355 if (compare_ether_addr(fc->data_src_addr, (u8[6]) { 0 }))
356 dev_unicast_delete(fc->real_dev, fc->data_src_addr, ETH_ALEN);
357 rtnl_unlock();
358
359 /* Free the per-CPU revieve threads */
360 fcoe_percpu_clean(lp);
361
362 /* Free existing skbs */
363 fcoe_clean_pending_queue(lp);
364
365 /* Free memory used by statistical counters */
366 for_each_online_cpu(cpu)
367 kfree(lp->dev_stats[cpu]);
368
369 /* Release the net_device and Scsi_Host */
370 dev_put(fc->real_dev);
371 scsi_host_put(lp->host);
372
373 return 0;
374}
375
376/*
377 * fcoe_sw_ddp_setup - calls LLD's ddp_setup through net_device
378 * @lp: the corresponding fc_lport
379 * @xid: the exchange id for this ddp transfer
380 * @sgl: the scatterlist describing this transfer
381 * @sgc: number of sg items
382 *
383 * Returns : 0 no ddp
384 */
385static int fcoe_sw_ddp_setup(struct fc_lport *lp, u16 xid,
386 struct scatterlist *sgl, unsigned int sgc)
387{
388 struct net_device *n = fcoe_netdev(lp);
389
390 if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_setup)
391 return n->netdev_ops->ndo_fcoe_ddp_setup(n, xid, sgl, sgc);
392
393 return 0;
394}
395
396/*
397 * fcoe_sw_ddp_done - calls LLD's ddp_done through net_device
398 * @lp: the corresponding fc_lport
399 * @xid: the exchange id for this ddp transfer
400 *
401 * Returns : the length of data that have been completed by ddp
402 */
403static int fcoe_sw_ddp_done(struct fc_lport *lp, u16 xid)
404{
405 struct net_device *n = fcoe_netdev(lp);
406
407 if (n->netdev_ops && n->netdev_ops->ndo_fcoe_ddp_done)
408 return n->netdev_ops->ndo_fcoe_ddp_done(n, xid);
409 return 0;
410}
411
412static struct libfc_function_template fcoe_sw_libfc_fcn_templ = {
413 .frame_send = fcoe_xmit,
414 .ddp_setup = fcoe_sw_ddp_setup,
415 .ddp_done = fcoe_sw_ddp_done,
416};
417
418/**
419 * fcoe_sw_create() - this function creates the fcoe interface
420 * @netdev: pointer the associated netdevice
421 *
422 * Creates fc_lport struct and scsi_host for lport, configures lport
423 * and starts fabric login.
424 *
425 * Returns : 0 on success
426 */
427static int fcoe_sw_create(struct net_device *netdev)
428{
429 int rc;
430 struct fc_lport *lp = NULL;
431 struct fcoe_softc *fc;
432 struct Scsi_Host *shost;
433
434 BUG_ON(!netdev);
435
436 printk(KERN_DEBUG "fcoe_sw_create:interface on %s\n",
437 netdev->name);
438
439 lp = fcoe_hostlist_lookup(netdev);
440 if (lp)
441 return -EEXIST;
442
443 shost = fcoe_host_alloc(&fcoe_sw_shost_template,
444 sizeof(struct fcoe_softc));
445 if (!shost) {
446 FC_DBG("Could not allocate host structure\n");
447 return -ENOMEM;
448 }
449 lp = shost_priv(shost);
450 fc = lport_priv(lp);
451
452 /* configure fc_lport, e.g., em */
453 rc = fcoe_sw_lport_config(lp);
454 if (rc) {
455 FC_DBG("Could not configure lport\n");
456 goto out_host_put;
457 }
458
459 /* configure lport network properties */
460 rc = fcoe_sw_netdev_config(lp, netdev);
461 if (rc) {
462 FC_DBG("Could not configure netdev for lport\n");
463 goto out_host_put;
464 }
465
466 /* configure lport scsi host properties */
467 rc = fcoe_sw_shost_config(lp, shost, &netdev->dev);
468 if (rc) {
469 FC_DBG("Could not configure shost for lport\n");
470 goto out_host_put;
471 }
472
473 /* lport exch manager allocation */
474 rc = fcoe_sw_em_config(lp);
475 if (rc) {
476 FC_DBG("Could not configure em for lport\n");
477 goto out_host_put;
478 }
479
480 /* Initialize the library */
481 rc = fcoe_libfc_config(lp, &fcoe_sw_libfc_fcn_templ);
482 if (rc) {
483 FC_DBG("Could not configure libfc for lport!\n");
484 goto out_lp_destroy;
485 }
486
487 /* add to lports list */
488 fcoe_hostlist_add(lp);
489
490 lp->boot_time = jiffies;
491
492 fc_fabric_login(lp);
493
494 dev_hold(netdev);
495
496 return rc;
497
498out_lp_destroy:
499 fc_exch_mgr_free(lp->emp); /* Free the EM */
500out_host_put:
501 scsi_host_put(lp->host);
502 return rc;
503}
504
505/**
506 * fcoe_sw_match() - The FCoE SW transport match function
507 *
508 * Returns : false always
509 */
510static bool fcoe_sw_match(struct net_device *netdev)
511{
512 /* FIXME - for sw transport, always return false */
513 return false;
514}
515
516/* the sw hba fcoe transport */
517struct fcoe_transport fcoe_sw_transport = {
518 .name = "fcoesw",
519 .create = fcoe_sw_create,
520 .destroy = fcoe_sw_destroy,
521 .match = fcoe_sw_match,
522 .vendor = 0x0,
523 .device = 0xffff,
524};
525
526/**
527 * fcoe_sw_init() - Registers fcoe_sw_transport
528 *
529 * Returns : 0 on success
530 */
531int __init fcoe_sw_init(void)
532{
533 /* attach to scsi transport */
534 scsi_transport_fcoe_sw =
535 fc_attach_transport(&fcoe_sw_transport_function);
536
537 if (!scsi_transport_fcoe_sw) {
538 printk(KERN_ERR "fcoe_sw_init:fc_attach_transport() failed\n");
539 return -ENODEV;
540 }
541
542 mutex_init(&fcoe_sw_transport.devlock);
543 INIT_LIST_HEAD(&fcoe_sw_transport.devlist);
544
545 /* register sw transport */
546 fcoe_transport_register(&fcoe_sw_transport);
547 return 0;
548}
549
550/**
551 * fcoe_sw_exit() - Unregisters fcoe_sw_transport
552 *
553 * Returns : 0 on success
554 */
555int __exit fcoe_sw_exit(void)
556{
557 /* dettach the transport */
558 fc_release_transport(scsi_transport_fcoe_sw);
559 fcoe_transport_unregister(&fcoe_sw_transport);
560 return 0;
561}
diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c
index 0d6f5beb7f9..f410f4abb54 100644
--- a/drivers/scsi/fcoe/libfcoe.c
+++ b/drivers/scsi/fcoe/libfcoe.c
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright(c) 2007 - 2008 Intel Corporation. All rights reserved. 2 * Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
3 * Copyright (c) 2009 Intel Corporation. All rights reserved.
3 * 4 *
4 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 6 * under the terms and conditions of the GNU General Public License,
@@ -17,1200 +18,1260 @@
17 * Maintained at www.Open-FCoE.org 18 * Maintained at www.Open-FCoE.org
18 */ 19 */
19 20
21#include <linux/types.h>
20#include <linux/module.h> 22#include <linux/module.h>
21#include <linux/version.h>
22#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/list.h>
23#include <linux/spinlock.h> 25#include <linux/spinlock.h>
24#include <linux/skbuff.h> 26#include <linux/timer.h>
25#include <linux/netdevice.h> 27#include <linux/netdevice.h>
26#include <linux/etherdevice.h> 28#include <linux/etherdevice.h>
27#include <linux/ethtool.h> 29#include <linux/ethtool.h>
28#include <linux/if_ether.h> 30#include <linux/if_ether.h>
29#include <linux/if_vlan.h> 31#include <linux/if_vlan.h>
30#include <linux/kthread.h> 32#include <linux/netdevice.h>
31#include <linux/crc32.h> 33#include <linux/errno.h>
32#include <linux/cpu.h> 34#include <linux/bitops.h>
33#include <linux/fs.h>
34#include <linux/sysfs.h>
35#include <linux/ctype.h>
36#include <scsi/scsi_tcq.h>
37#include <scsi/scsicam.h>
38#include <scsi/scsi_transport.h>
39#include <scsi/scsi_transport_fc.h>
40#include <net/rtnetlink.h> 35#include <net/rtnetlink.h>
41 36
37#include <scsi/fc/fc_els.h>
38#include <scsi/fc/fc_fs.h>
39#include <scsi/fc/fc_fip.h>
42#include <scsi/fc/fc_encaps.h> 40#include <scsi/fc/fc_encaps.h>
41#include <scsi/fc/fc_fcoe.h>
43 42
44#include <scsi/libfc.h> 43#include <scsi/libfc.h>
45#include <scsi/fc_frame.h>
46#include <scsi/libfcoe.h> 44#include <scsi/libfcoe.h>
47#include <scsi/fc_transport_fcoe.h>
48
49static int debug_fcoe;
50 45
51#define FCOE_MAX_QUEUE_DEPTH 256 46MODULE_AUTHOR("Open-FCoE.org");
52#define FCOE_LOW_QUEUE_DEPTH 32 47MODULE_DESCRIPTION("FIP discovery protocol support for FCoE HBAs");
48MODULE_LICENSE("GPL v2");
53 49
54/* destination address mode */ 50#define FCOE_CTLR_MIN_FKA 500 /* min keep alive (mS) */
55#define FCOE_GW_ADDR_MODE 0x00 51#define FCOE_CTLR_DEF_FKA FIP_DEF_FKA /* default keep alive (mS) */
56#define FCOE_FCOUI_ADDR_MODE 0x01
57 52
58#define FCOE_WORD_TO_BYTE 4 53static void fcoe_ctlr_timeout(unsigned long);
54static void fcoe_ctlr_link_work(struct work_struct *);
55static void fcoe_ctlr_recv_work(struct work_struct *);
59 56
60MODULE_AUTHOR("Open-FCoE.org"); 57static u8 fcoe_all_fcfs[ETH_ALEN] = FIP_ALL_FCF_MACS;
61MODULE_DESCRIPTION("FCoE");
62MODULE_LICENSE("GPL");
63 58
64/* fcoe host list */ 59static u32 fcoe_ctlr_debug; /* 1 for basic, 2 for noisy debug */
65LIST_HEAD(fcoe_hostlist);
66DEFINE_RWLOCK(fcoe_hostlist_lock);
67DEFINE_TIMER(fcoe_timer, NULL, 0, 0);
68struct fcoe_percpu_s *fcoe_percpu[NR_CPUS];
69 60
61#define FIP_DBG_LVL(level, fmt, args...) \
62 do { \
63 if (fcoe_ctlr_debug >= (level)) \
64 FC_DBG(fmt, ##args); \
65 } while (0)
70 66
71/* Function Prototyes */ 67#define FIP_DBG(fmt, args...) FIP_DBG_LVL(1, fmt, ##args)
72static int fcoe_check_wait_queue(struct fc_lport *);
73static void fcoe_recv_flogi(struct fcoe_softc *, struct fc_frame *, u8 *);
74#ifdef CONFIG_HOTPLUG_CPU
75static int fcoe_cpu_callback(struct notifier_block *, ulong, void *);
76#endif /* CONFIG_HOTPLUG_CPU */
77static int fcoe_device_notification(struct notifier_block *, ulong, void *);
78static void fcoe_dev_setup(void);
79static void fcoe_dev_cleanup(void);
80 68
81/* notification function from net device */ 69/*
82static struct notifier_block fcoe_notifier = { 70 * Return non-zero if FCF fcoe_size has been validated.
83 .notifier_call = fcoe_device_notification, 71 */
84}; 72static inline int fcoe_ctlr_mtu_valid(const struct fcoe_fcf *fcf)
73{
74 return (fcf->flags & FIP_FL_SOL) != 0;
75}
85 76
77/*
78 * Return non-zero if the FCF is usable.
79 */
80static inline int fcoe_ctlr_fcf_usable(struct fcoe_fcf *fcf)
81{
82 u16 flags = FIP_FL_SOL | FIP_FL_AVAIL;
86 83
87#ifdef CONFIG_HOTPLUG_CPU 84 return (fcf->flags & flags) == flags;
88static struct notifier_block fcoe_cpu_notifier = { 85}
89 .notifier_call = fcoe_cpu_callback,
90};
91 86
92/** 87/**
93 * fcoe_create_percpu_data() - creates the associated cpu data 88 * fcoe_ctlr_init() - Initialize the FCoE Controller instance.
94 * @cpu: index for the cpu where fcoe cpu data will be created 89 * @fip: FCoE controller.
95 *
96 * create percpu stats block, from cpu add notifier
97 *
98 * Returns: none
99 */ 90 */
100static void fcoe_create_percpu_data(int cpu) 91void fcoe_ctlr_init(struct fcoe_ctlr *fip)
101{ 92{
102 struct fc_lport *lp; 93 fip->state = FIP_ST_LINK_WAIT;
103 struct fcoe_softc *fc; 94 INIT_LIST_HEAD(&fip->fcfs);
104 95 spin_lock_init(&fip->lock);
105 write_lock_bh(&fcoe_hostlist_lock); 96 fip->flogi_oxid = FC_XID_UNKNOWN;
106 list_for_each_entry(fc, &fcoe_hostlist, list) { 97 setup_timer(&fip->timer, fcoe_ctlr_timeout, (unsigned long)fip);
107 lp = fc->lp; 98 INIT_WORK(&fip->link_work, fcoe_ctlr_link_work);
108 if (lp->dev_stats[cpu] == NULL) 99 INIT_WORK(&fip->recv_work, fcoe_ctlr_recv_work);
109 lp->dev_stats[cpu] = 100 skb_queue_head_init(&fip->fip_recv_list);
110 kzalloc(sizeof(struct fcoe_dev_stats),
111 GFP_KERNEL);
112 }
113 write_unlock_bh(&fcoe_hostlist_lock);
114} 101}
102EXPORT_SYMBOL(fcoe_ctlr_init);
115 103
116/** 104/**
117 * fcoe_destroy_percpu_data() - destroys the associated cpu data 105 * fcoe_ctlr_reset_fcfs() - Reset and free all FCFs for a controller.
118 * @cpu: index for the cpu where fcoe cpu data will destroyed 106 * @fip: FCoE controller.
119 *
120 * destroy percpu stats block called by cpu add/remove notifier
121 * 107 *
122 * Retuns: none 108 * Called with &fcoe_ctlr lock held.
123 */ 109 */
124static void fcoe_destroy_percpu_data(int cpu) 110static void fcoe_ctlr_reset_fcfs(struct fcoe_ctlr *fip)
125{ 111{
126 struct fc_lport *lp; 112 struct fcoe_fcf *fcf;
127 struct fcoe_softc *fc; 113 struct fcoe_fcf *next;
128 114
129 write_lock_bh(&fcoe_hostlist_lock); 115 fip->sel_fcf = NULL;
130 list_for_each_entry(fc, &fcoe_hostlist, list) { 116 list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
131 lp = fc->lp; 117 list_del(&fcf->list);
132 kfree(lp->dev_stats[cpu]); 118 kfree(fcf);
133 lp->dev_stats[cpu] = NULL;
134 } 119 }
135 write_unlock_bh(&fcoe_hostlist_lock); 120 fip->fcf_count = 0;
121 fip->sel_time = 0;
136} 122}
137 123
138/** 124/**
139 * fcoe_cpu_callback() - fcoe cpu hotplug event callback 125 * fcoe_ctrl_destroy() - Disable and tear-down the FCoE controller.
140 * @nfb: callback data block 126 * @fip: FCoE controller.
141 * @action: event triggering the callback 127 *
142 * @hcpu: index for the cpu of this event 128 * This is called by FCoE drivers before freeing the &fcoe_ctlr.
143 * 129 *
144 * this creates or destroys per cpu data for fcoe 130 * The receive handler will have been deleted before this to guarantee
131 * that no more recv_work will be scheduled.
145 * 132 *
146 * Returns NOTIFY_OK always. 133 * The timer routine will simply return once we set FIP_ST_DISABLED.
134 * This guarantees that no further timeouts or work will be scheduled.
147 */ 135 */
148static int fcoe_cpu_callback(struct notifier_block *nfb, unsigned long action, 136void fcoe_ctlr_destroy(struct fcoe_ctlr *fip)
149 void *hcpu)
150{ 137{
151 unsigned int cpu = (unsigned long)hcpu; 138 flush_work(&fip->recv_work);
152 139 spin_lock_bh(&fip->lock);
153 switch (action) { 140 fip->state = FIP_ST_DISABLED;
154 case CPU_ONLINE: 141 fcoe_ctlr_reset_fcfs(fip);
155 fcoe_create_percpu_data(cpu); 142 spin_unlock_bh(&fip->lock);
156 break; 143 del_timer_sync(&fip->timer);
157 case CPU_DEAD: 144 flush_work(&fip->link_work);
158 fcoe_destroy_percpu_data(cpu);
159 break;
160 default:
161 break;
162 }
163 return NOTIFY_OK;
164} 145}
165#endif /* CONFIG_HOTPLUG_CPU */ 146EXPORT_SYMBOL(fcoe_ctlr_destroy);
166 147
167/** 148/**
168 * fcoe_rcv() - this is the fcoe receive function called by NET_RX_SOFTIRQ 149 * fcoe_ctlr_fcoe_size() - Return the maximum FCoE size required for VN_Port.
169 * @skb: the receive skb 150 * @fip: FCoE controller.
170 * @dev: associated net device
171 * @ptype: context
172 * @odldev: last device
173 *
174 * this function will receive the packet and build fc frame and pass it up
175 * 151 *
176 * Returns: 0 for success 152 * Returns the maximum packet size including the FCoE header and trailer,
153 * but not including any Ethernet or VLAN headers.
177 */ 154 */
178int fcoe_rcv(struct sk_buff *skb, struct net_device *dev, 155static inline u32 fcoe_ctlr_fcoe_size(struct fcoe_ctlr *fip)
179 struct packet_type *ptype, struct net_device *olddev)
180{ 156{
181 struct fc_lport *lp; 157 /*
182 struct fcoe_rcv_info *fr; 158 * Determine the max FCoE frame size allowed, including
183 struct fcoe_softc *fc; 159 * FCoE header and trailer.
184 struct fcoe_dev_stats *stats; 160 * Note: lp->mfs is currently the payload size, not the frame size.
185 struct fc_frame_header *fh; 161 */
186 unsigned short oxid; 162 return fip->lp->mfs + sizeof(struct fc_frame_header) +
187 int cpu_idx; 163 sizeof(struct fcoe_hdr) + sizeof(struct fcoe_crc_eof);
188 struct fcoe_percpu_s *fps; 164}
189
190 fc = container_of(ptype, struct fcoe_softc, fcoe_packet_type);
191 lp = fc->lp;
192 if (unlikely(lp == NULL)) {
193 FC_DBG("cannot find hba structure");
194 goto err2;
195 }
196
197 if (unlikely(debug_fcoe)) {
198 FC_DBG("skb_info: len:%d data_len:%d head:%p data:%p tail:%p "
199 "end:%p sum:%d dev:%s", skb->len, skb->data_len,
200 skb->head, skb->data, skb_tail_pointer(skb),
201 skb_end_pointer(skb), skb->csum,
202 skb->dev ? skb->dev->name : "<NULL>");
203 165
204 } 166/**
167 * fcoe_ctlr_solicit() - Send a solicitation.
168 * @fip: FCoE controller.
169 * @fcf: Destination FCF. If NULL, a multicast solicitation is sent.
170 */
171static void fcoe_ctlr_solicit(struct fcoe_ctlr *fip, struct fcoe_fcf *fcf)
172{
173 struct sk_buff *skb;
174 struct fip_sol {
175 struct ethhdr eth;
176 struct fip_header fip;
177 struct {
178 struct fip_mac_desc mac;
179 struct fip_wwn_desc wwnn;
180 struct fip_size_desc size;
181 } __attribute__((packed)) desc;
182 } __attribute__((packed)) *sol;
183 u32 fcoe_size;
184
185 skb = dev_alloc_skb(sizeof(*sol));
186 if (!skb)
187 return;
205 188
206 /* check for FCOE packet type */ 189 sol = (struct fip_sol *)skb->data;
207 if (unlikely(eth_hdr(skb)->h_proto != htons(ETH_P_FCOE))) {
208 FC_DBG("wrong FC type frame");
209 goto err;
210 }
211 190
212 /* 191 memset(sol, 0, sizeof(*sol));
213 * Check for minimum frame length, and make sure required FCoE 192 memcpy(sol->eth.h_dest, fcf ? fcf->fcf_mac : fcoe_all_fcfs, ETH_ALEN);
214 * and FC headers are pulled into the linear data area. 193 memcpy(sol->eth.h_source, fip->ctl_src_addr, ETH_ALEN);
215 */ 194 sol->eth.h_proto = htons(ETH_P_FIP);
216 if (unlikely((skb->len < FCOE_MIN_FRAME) ||
217 !pskb_may_pull(skb, FCOE_HEADER_LEN)))
218 goto err;
219 195
220 skb_set_transport_header(skb, sizeof(struct fcoe_hdr)); 196 sol->fip.fip_ver = FIP_VER_ENCAPS(FIP_VER);
221 fh = (struct fc_frame_header *) skb_transport_header(skb); 197 sol->fip.fip_op = htons(FIP_OP_DISC);
198 sol->fip.fip_subcode = FIP_SC_SOL;
199 sol->fip.fip_dl_len = htons(sizeof(sol->desc) / FIP_BPW);
200 sol->fip.fip_flags = htons(FIP_FL_FPMA);
222 201
223 oxid = ntohs(fh->fh_ox_id); 202 sol->desc.mac.fd_desc.fip_dtype = FIP_DT_MAC;
203 sol->desc.mac.fd_desc.fip_dlen = sizeof(sol->desc.mac) / FIP_BPW;
204 memcpy(sol->desc.mac.fd_mac, fip->ctl_src_addr, ETH_ALEN);
224 205
225 fr = fcoe_dev_from_skb(skb); 206 sol->desc.wwnn.fd_desc.fip_dtype = FIP_DT_NAME;
226 fr->fr_dev = lp; 207 sol->desc.wwnn.fd_desc.fip_dlen = sizeof(sol->desc.wwnn) / FIP_BPW;
227 fr->ptype = ptype; 208 put_unaligned_be64(fip->lp->wwnn, &sol->desc.wwnn.fd_wwn);
228 cpu_idx = 0;
229#ifdef CONFIG_SMP
230 /*
231 * The incoming frame exchange id(oxid) is ANDed with num of online
232 * cpu bits to get cpu_idx and then this cpu_idx is used for selecting
233 * a per cpu kernel thread from fcoe_percpu. In case the cpu is
234 * offline or no kernel thread for derived cpu_idx then cpu_idx is
235 * initialize to first online cpu index.
236 */
237 cpu_idx = oxid & (num_online_cpus() - 1);
238 if (!fcoe_percpu[cpu_idx] || !cpu_online(cpu_idx))
239 cpu_idx = first_cpu(cpu_online_map);
240#endif
241 fps = fcoe_percpu[cpu_idx];
242 209
243 spin_lock_bh(&fps->fcoe_rx_list.lock); 210 fcoe_size = fcoe_ctlr_fcoe_size(fip);
244 __skb_queue_tail(&fps->fcoe_rx_list, skb); 211 sol->desc.size.fd_desc.fip_dtype = FIP_DT_FCOE_SIZE;
245 if (fps->fcoe_rx_list.qlen == 1) 212 sol->desc.size.fd_desc.fip_dlen = sizeof(sol->desc.size) / FIP_BPW;
246 wake_up_process(fps->thread); 213 sol->desc.size.fd_size = htons(fcoe_size);
247 214
248 spin_unlock_bh(&fps->fcoe_rx_list.lock); 215 skb_put(skb, sizeof(*sol));
216 skb->protocol = htons(ETH_P_802_3);
217 skb_reset_mac_header(skb);
218 skb_reset_network_header(skb);
219 fip->send(fip, skb);
249 220
250 return 0; 221 if (!fcf)
251err: 222 fip->sol_time = jiffies;
252#ifdef CONFIG_SMP
253 stats = lp->dev_stats[smp_processor_id()];
254#else
255 stats = lp->dev_stats[0];
256#endif
257 if (stats)
258 stats->ErrorFrames++;
259
260err2:
261 kfree_skb(skb);
262 return -1;
263} 223}
264EXPORT_SYMBOL_GPL(fcoe_rcv);
265 224
266/** 225/**
267 * fcoe_start_io() - pass to netdev to start xmit for fcoe 226 * fcoe_ctlr_link_up() - Start FCoE controller.
268 * @skb: the skb to be xmitted 227 * @fip: FCoE controller.
269 * 228 *
270 * Returns: 0 for success 229 * Called from the LLD when the network link is ready.
271 */ 230 */
272static inline int fcoe_start_io(struct sk_buff *skb) 231void fcoe_ctlr_link_up(struct fcoe_ctlr *fip)
273{ 232{
274 int rc; 233 spin_lock_bh(&fip->lock);
275 234 if (fip->state == FIP_ST_NON_FIP || fip->state == FIP_ST_AUTO) {
276 skb_get(skb); 235 fip->last_link = 1;
277 rc = dev_queue_xmit(skb); 236 fip->link = 1;
278 if (rc != 0) 237 spin_unlock_bh(&fip->lock);
279 return rc; 238 fc_linkup(fip->lp);
280 kfree_skb(skb); 239 } else if (fip->state == FIP_ST_LINK_WAIT) {
281 return 0; 240 fip->state = FIP_ST_AUTO;
241 fip->last_link = 1;
242 fip->link = 1;
243 spin_unlock_bh(&fip->lock);
244 FIP_DBG("%s", "setting AUTO mode.\n");
245 fc_linkup(fip->lp);
246 fcoe_ctlr_solicit(fip, NULL);
247 } else
248 spin_unlock_bh(&fip->lock);
282} 249}
250EXPORT_SYMBOL(fcoe_ctlr_link_up);
283 251
284/** 252/**
285 * fcoe_get_paged_crc_eof() - in case we need alloc a page for crc_eof 253 * fcoe_ctlr_reset() - Reset FIP.
286 * @skb: the skb to be xmitted 254 * @fip: FCoE controller.
287 * @tlen: total len 255 * @new_state: FIP state to be entered.
288 * 256 *
289 * Returns: 0 for success 257 * Returns non-zero if the link was up and now isn't.
290 */ 258 */
291static int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen) 259static int fcoe_ctlr_reset(struct fcoe_ctlr *fip, enum fip_state new_state)
292{ 260{
293 struct fcoe_percpu_s *fps; 261 struct fc_lport *lp = fip->lp;
294 struct page *page; 262 int link_dropped;
295 int cpu_idx; 263
296 264 spin_lock_bh(&fip->lock);
297 cpu_idx = get_cpu(); 265 fcoe_ctlr_reset_fcfs(fip);
298 fps = fcoe_percpu[cpu_idx]; 266 del_timer(&fip->timer);
299 page = fps->crc_eof_page; 267 fip->state = new_state;
300 if (!page) { 268 fip->ctlr_ka_time = 0;
301 page = alloc_page(GFP_ATOMIC); 269 fip->port_ka_time = 0;
302 if (!page) { 270 fip->sol_time = 0;
303 put_cpu(); 271 fip->flogi_oxid = FC_XID_UNKNOWN;
304 return -ENOMEM; 272 fip->map_dest = 0;
305 } 273 fip->last_link = 0;
306 fps->crc_eof_page = page; 274 link_dropped = fip->link;
307 WARN_ON(fps->crc_eof_offset != 0); 275 fip->link = 0;
276 spin_unlock_bh(&fip->lock);
277
278 if (link_dropped)
279 fc_linkdown(lp);
280
281 if (new_state == FIP_ST_ENABLED) {
282 fcoe_ctlr_solicit(fip, NULL);
283 fc_linkup(lp);
284 link_dropped = 0;
308 } 285 }
309 286 return link_dropped;
310 get_page(page);
311 skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags, page,
312 fps->crc_eof_offset, tlen);
313 skb->len += tlen;
314 skb->data_len += tlen;
315 skb->truesize += tlen;
316 fps->crc_eof_offset += sizeof(struct fcoe_crc_eof);
317
318 if (fps->crc_eof_offset >= PAGE_SIZE) {
319 fps->crc_eof_page = NULL;
320 fps->crc_eof_offset = 0;
321 put_page(page);
322 }
323 put_cpu();
324 return 0;
325} 287}
326 288
327/** 289/**
328 * fcoe_fc_crc() - calculates FC CRC in this fcoe skb 290 * fcoe_ctlr_link_down() - Stop FCoE controller.
329 * @fp: the fc_frame containg data to be checksummed 291 * @fip: FCoE controller.
330 * 292 *
331 * This uses crc32() to calculate the crc for fc frame 293 * Returns non-zero if the link was up and now isn't.
332 * Return : 32 bit crc 294 *
295 * Called from the LLD when the network link is not ready.
296 * There may be multiple calls while the link is down.
333 */ 297 */
334u32 fcoe_fc_crc(struct fc_frame *fp) 298int fcoe_ctlr_link_down(struct fcoe_ctlr *fip)
335{ 299{
336 struct sk_buff *skb = fp_skb(fp); 300 return fcoe_ctlr_reset(fip, FIP_ST_LINK_WAIT);
337 struct skb_frag_struct *frag;
338 unsigned char *data;
339 unsigned long off, len, clen;
340 u32 crc;
341 unsigned i;
342
343 crc = crc32(~0, skb->data, skb_headlen(skb));
344
345 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
346 frag = &skb_shinfo(skb)->frags[i];
347 off = frag->page_offset;
348 len = frag->size;
349 while (len > 0) {
350 clen = min(len, PAGE_SIZE - (off & ~PAGE_MASK));
351 data = kmap_atomic(frag->page + (off >> PAGE_SHIFT),
352 KM_SKB_DATA_SOFTIRQ);
353 crc = crc32(crc, data + (off & ~PAGE_MASK), clen);
354 kunmap_atomic(data, KM_SKB_DATA_SOFTIRQ);
355 off += clen;
356 len -= clen;
357 }
358 }
359 return crc;
360} 301}
361EXPORT_SYMBOL_GPL(fcoe_fc_crc); 302EXPORT_SYMBOL(fcoe_ctlr_link_down);
362 303
363/** 304/**
364 * fcoe_xmit() - FCoE frame transmit function 305 * fcoe_ctlr_send_keep_alive() - Send a keep-alive to the selected FCF.
365 * @lp: the associated local port 306 * @fip: FCoE controller.
366 * @fp: the fc_frame to be transmitted 307 * @ports: 0 for controller keep-alive, 1 for port keep-alive.
308 * @sa: source MAC address.
367 * 309 *
368 * Return : 0 for success 310 * A controller keep-alive is sent every fka_period (typically 8 seconds).
311 * The source MAC is the native MAC address.
312 *
313 * A port keep-alive is sent every 90 seconds while logged in.
314 * The source MAC is the assigned mapped source address.
315 * The destination is the FCF's F-port.
369 */ 316 */
370int fcoe_xmit(struct fc_lport *lp, struct fc_frame *fp) 317static void fcoe_ctlr_send_keep_alive(struct fcoe_ctlr *fip, int ports, u8 *sa)
371{ 318{
372 int wlen, rc = 0;
373 u32 crc;
374 struct ethhdr *eh;
375 struct fcoe_crc_eof *cp;
376 struct sk_buff *skb; 319 struct sk_buff *skb;
377 struct fcoe_dev_stats *stats; 320 struct fip_kal {
378 struct fc_frame_header *fh; 321 struct ethhdr eth;
379 unsigned int hlen; /* header length implies the version */ 322 struct fip_header fip;
380 unsigned int tlen; /* trailer length */ 323 struct fip_mac_desc mac;
381 unsigned int elen; /* eth header, may include vlan */ 324 } __attribute__((packed)) *kal;
382 int flogi_in_progress = 0; 325 struct fip_vn_desc *vn;
383 struct fcoe_softc *fc; 326 u32 len;
384 u8 sof, eof; 327 struct fc_lport *lp;
385 struct fcoe_hdr *hp; 328 struct fcoe_fcf *fcf;
386
387 WARN_ON((fr_len(fp) % sizeof(u32)) != 0);
388
389 fc = lport_priv(lp);
390 /*
391 * if it is a flogi then we need to learn gw-addr
392 * and my own fcid
393 */
394 fh = fc_frame_header_get(fp);
395 if (unlikely(fh->fh_r_ctl == FC_RCTL_ELS_REQ)) {
396 if (fc_frame_payload_op(fp) == ELS_FLOGI) {
397 fc->flogi_oxid = ntohs(fh->fh_ox_id);
398 fc->address_mode = FCOE_FCOUI_ADDR_MODE;
399 fc->flogi_progress = 1;
400 flogi_in_progress = 1;
401 } else if (fc->flogi_progress && ntoh24(fh->fh_s_id) != 0) {
402 /*
403 * Here we must've gotten an SID by accepting an FLOGI
404 * from a point-to-point connection. Switch to using
405 * the source mac based on the SID. The destination
406 * MAC in this case would have been set by receving the
407 * FLOGI.
408 */
409 fc_fcoe_set_mac(fc->data_src_addr, fh->fh_s_id);
410 fc->flogi_progress = 0;
411 }
412 }
413
414 skb = fp_skb(fp);
415 sof = fr_sof(fp);
416 eof = fr_eof(fp);
417
418 elen = (fc->real_dev->priv_flags & IFF_802_1Q_VLAN) ?
419 sizeof(struct vlan_ethhdr) : sizeof(struct ethhdr);
420 hlen = sizeof(struct fcoe_hdr);
421 tlen = sizeof(struct fcoe_crc_eof);
422 wlen = (skb->len - tlen + sizeof(crc)) / FCOE_WORD_TO_BYTE;
423
424 /* crc offload */
425 if (likely(lp->crc_offload)) {
426 skb->ip_summed = CHECKSUM_PARTIAL;
427 skb->csum_start = skb_headroom(skb);
428 skb->csum_offset = skb->len;
429 crc = 0;
430 } else {
431 skb->ip_summed = CHECKSUM_NONE;
432 crc = fcoe_fc_crc(fp);
433 }
434 329
435 /* copy fc crc and eof to the skb buff */ 330 fcf = fip->sel_fcf;
436 if (skb_is_nonlinear(skb)) { 331 lp = fip->lp;
437 skb_frag_t *frag; 332 if (!fcf || !fc_host_port_id(lp->host))
438 if (fcoe_get_paged_crc_eof(skb, tlen)) { 333 return;
439 kfree_skb(skb);
440 return -ENOMEM;
441 }
442 frag = &skb_shinfo(skb)->frags[skb_shinfo(skb)->nr_frags - 1];
443 cp = kmap_atomic(frag->page, KM_SKB_DATA_SOFTIRQ)
444 + frag->page_offset;
445 } else {
446 cp = (struct fcoe_crc_eof *)skb_put(skb, tlen);
447 }
448 334
449 memset(cp, 0, sizeof(*cp)); 335 len = fcoe_ctlr_fcoe_size(fip) + sizeof(struct ethhdr);
450 cp->fcoe_eof = eof; 336 BUG_ON(len < sizeof(*kal) + sizeof(*vn));
451 cp->fcoe_crc32 = cpu_to_le32(~crc); 337 skb = dev_alloc_skb(len);
338 if (!skb)
339 return;
452 340
453 if (skb_is_nonlinear(skb)) { 341 kal = (struct fip_kal *)skb->data;
454 kunmap_atomic(cp, KM_SKB_DATA_SOFTIRQ); 342 memset(kal, 0, len);
455 cp = NULL; 343 memcpy(kal->eth.h_dest, fcf->fcf_mac, ETH_ALEN);
344 memcpy(kal->eth.h_source, sa, ETH_ALEN);
345 kal->eth.h_proto = htons(ETH_P_FIP);
346
347 kal->fip.fip_ver = FIP_VER_ENCAPS(FIP_VER);
348 kal->fip.fip_op = htons(FIP_OP_CTRL);
349 kal->fip.fip_subcode = FIP_SC_KEEP_ALIVE;
350 kal->fip.fip_dl_len = htons((sizeof(kal->mac) +
351 ports * sizeof(*vn)) / FIP_BPW);
352 kal->fip.fip_flags = htons(FIP_FL_FPMA);
353
354 kal->mac.fd_desc.fip_dtype = FIP_DT_MAC;
355 kal->mac.fd_desc.fip_dlen = sizeof(kal->mac) / FIP_BPW;
356 memcpy(kal->mac.fd_mac, fip->ctl_src_addr, ETH_ALEN);
357
358 if (ports) {
359 vn = (struct fip_vn_desc *)(kal + 1);
360 vn->fd_desc.fip_dtype = FIP_DT_VN_ID;
361 vn->fd_desc.fip_dlen = sizeof(*vn) / FIP_BPW;
362 memcpy(vn->fd_mac, fip->data_src_addr, ETH_ALEN);
363 hton24(vn->fd_fc_id, fc_host_port_id(lp->host));
364 put_unaligned_be64(lp->wwpn, &vn->fd_wwpn);
456 } 365 }
457 366
458 /* adjust skb netowrk/transport offsets to match mac/fcoe/fc */ 367 skb_put(skb, len);
459 skb_push(skb, elen + hlen); 368 skb->protocol = htons(ETH_P_802_3);
460 skb_reset_mac_header(skb); 369 skb_reset_mac_header(skb);
461 skb_reset_network_header(skb); 370 skb_reset_network_header(skb);
462 skb->mac_len = elen; 371 fip->send(fip, skb);
463 skb->protocol = htons(ETH_P_FCOE);
464 skb->dev = fc->real_dev;
465
466 /* fill up mac and fcoe headers */
467 eh = eth_hdr(skb);
468 eh->h_proto = htons(ETH_P_FCOE);
469 if (fc->address_mode == FCOE_FCOUI_ADDR_MODE)
470 fc_fcoe_set_mac(eh->h_dest, fh->fh_d_id);
471 else
472 /* insert GW address */
473 memcpy(eh->h_dest, fc->dest_addr, ETH_ALEN);
474
475 if (unlikely(flogi_in_progress))
476 memcpy(eh->h_source, fc->ctl_src_addr, ETH_ALEN);
477 else
478 memcpy(eh->h_source, fc->data_src_addr, ETH_ALEN);
479
480 hp = (struct fcoe_hdr *)(eh + 1);
481 memset(hp, 0, sizeof(*hp));
482 if (FC_FCOE_VER)
483 FC_FCOE_ENCAPS_VER(hp, FC_FCOE_VER);
484 hp->fcoe_sof = sof;
485
486#ifdef NETIF_F_FSO
487 /* fcoe lso, mss is in max_payload which is non-zero for FCP data */
488 if (lp->seq_offload && fr_max_payload(fp)) {
489 skb_shinfo(skb)->gso_type = SKB_GSO_FCOE;
490 skb_shinfo(skb)->gso_size = fr_max_payload(fp);
491 } else {
492 skb_shinfo(skb)->gso_type = 0;
493 skb_shinfo(skb)->gso_size = 0;
494 }
495#endif
496 /* update tx stats: regardless if LLD fails */
497 stats = lp->dev_stats[smp_processor_id()];
498 if (stats) {
499 stats->TxFrames++;
500 stats->TxWords += wlen;
501 }
502
503 /* send down to lld */
504 fr_dev(fp) = lp;
505 if (fc->fcoe_pending_queue.qlen)
506 rc = fcoe_check_wait_queue(lp);
507
508 if (rc == 0)
509 rc = fcoe_start_io(skb);
510
511 if (rc) {
512 spin_lock_bh(&fc->fcoe_pending_queue.lock);
513 __skb_queue_tail(&fc->fcoe_pending_queue, skb);
514 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
515 if (fc->fcoe_pending_queue.qlen > FCOE_MAX_QUEUE_DEPTH)
516 lp->qfull = 1;
517 }
518
519 return 0;
520} 372}
521EXPORT_SYMBOL_GPL(fcoe_xmit);
522 373
523/** 374/**
524 * fcoe_percpu_receive_thread() - recv thread per cpu 375 * fcoe_ctlr_encaps() - Encapsulate an ELS frame for FIP, without sending it.
525 * @arg: ptr to the fcoe per cpu struct 376 * @fip: FCoE controller.
377 * @dtype: FIP descriptor type for the frame.
378 * @skb: FCoE ELS frame including FC header but no FCoE headers.
379 *
380 * Returns non-zero error code on failure.
381 *
382 * The caller must check that the length is a multiple of 4.
526 * 383 *
527 * Return: 0 for success 384 * The @skb must have enough headroom (28 bytes) and tailroom (8 bytes).
385 * Headroom includes the FIP encapsulation description, FIP header, and
386 * Ethernet header. The tailroom is for the FIP MAC descriptor.
528 */ 387 */
529int fcoe_percpu_receive_thread(void *arg) 388static int fcoe_ctlr_encaps(struct fcoe_ctlr *fip,
389 u8 dtype, struct sk_buff *skb)
530{ 390{
531 struct fcoe_percpu_s *p = arg; 391 struct fip_encaps_head {
532 u32 fr_len; 392 struct ethhdr eth;
533 struct fc_lport *lp; 393 struct fip_header fip;
534 struct fcoe_rcv_info *fr; 394 struct fip_encaps encaps;
535 struct fcoe_dev_stats *stats; 395 } __attribute__((packed)) *cap;
536 struct fc_frame_header *fh; 396 struct fip_mac_desc *mac;
537 struct sk_buff *skb; 397 struct fcoe_fcf *fcf;
538 struct fcoe_crc_eof crc_eof; 398 size_t dlen;
539 struct fc_frame *fp; 399
540 u8 *mac = NULL; 400 fcf = fip->sel_fcf;
541 struct fcoe_softc *fc; 401 if (!fcf)
542 struct fcoe_hdr *hp; 402 return -ENODEV;
543 403 dlen = sizeof(struct fip_encaps) + skb->len; /* len before push */
544 set_user_nice(current, -20); 404 cap = (struct fip_encaps_head *)skb_push(skb, sizeof(*cap));
545 405
546 while (!kthread_should_stop()) { 406 memset(cap, 0, sizeof(*cap));
547 407 memcpy(cap->eth.h_dest, fcf->fcf_mac, ETH_ALEN);
548 spin_lock_bh(&p->fcoe_rx_list.lock); 408 memcpy(cap->eth.h_source, fip->ctl_src_addr, ETH_ALEN);
549 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) == NULL) { 409 cap->eth.h_proto = htons(ETH_P_FIP);
550 set_current_state(TASK_INTERRUPTIBLE); 410
551 spin_unlock_bh(&p->fcoe_rx_list.lock); 411 cap->fip.fip_ver = FIP_VER_ENCAPS(FIP_VER);
552 schedule(); 412 cap->fip.fip_op = htons(FIP_OP_LS);
553 set_current_state(TASK_RUNNING); 413 cap->fip.fip_subcode = FIP_SC_REQ;
554 if (kthread_should_stop()) 414 cap->fip.fip_dl_len = htons((dlen + sizeof(*mac)) / FIP_BPW);
555 return 0; 415 cap->fip.fip_flags = htons(FIP_FL_FPMA);
556 spin_lock_bh(&p->fcoe_rx_list.lock); 416
557 } 417 cap->encaps.fd_desc.fip_dtype = dtype;
558 spin_unlock_bh(&p->fcoe_rx_list.lock); 418 cap->encaps.fd_desc.fip_dlen = dlen / FIP_BPW;
559 fr = fcoe_dev_from_skb(skb); 419
560 lp = fr->fr_dev; 420 mac = (struct fip_mac_desc *)skb_put(skb, sizeof(*mac));
561 if (unlikely(lp == NULL)) { 421 memset(mac, 0, sizeof(mac));
562 FC_DBG("invalid HBA Structure"); 422 mac->fd_desc.fip_dtype = FIP_DT_MAC;
563 kfree_skb(skb); 423 mac->fd_desc.fip_dlen = sizeof(*mac) / FIP_BPW;
564 continue; 424 if (dtype != ELS_FLOGI)
565 } 425 memcpy(mac->fd_mac, fip->data_src_addr, ETH_ALEN);
566 426
567 stats = lp->dev_stats[smp_processor_id()]; 427 skb->protocol = htons(ETH_P_802_3);
568 428 skb_reset_mac_header(skb);
569 if (unlikely(debug_fcoe)) { 429 skb_reset_network_header(skb);
570 FC_DBG("skb_info: len:%d data_len:%d head:%p data:%p "
571 "tail:%p end:%p sum:%d dev:%s",
572 skb->len, skb->data_len,
573 skb->head, skb->data, skb_tail_pointer(skb),
574 skb_end_pointer(skb), skb->csum,
575 skb->dev ? skb->dev->name : "<NULL>");
576 }
577
578 /*
579 * Save source MAC address before discarding header.
580 */
581 fc = lport_priv(lp);
582 if (unlikely(fc->flogi_progress))
583 mac = eth_hdr(skb)->h_source;
584
585 if (skb_is_nonlinear(skb))
586 skb_linearize(skb); /* not ideal */
587
588 /*
589 * Frame length checks and setting up the header pointers
590 * was done in fcoe_rcv already.
591 */
592 hp = (struct fcoe_hdr *) skb_network_header(skb);
593 fh = (struct fc_frame_header *) skb_transport_header(skb);
594
595 if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
596 if (stats) {
597 if (stats->ErrorFrames < 5)
598 FC_DBG("unknown FCoE version %x",
599 FC_FCOE_DECAPS_VER(hp));
600 stats->ErrorFrames++;
601 }
602 kfree_skb(skb);
603 continue;
604 }
605
606 skb_pull(skb, sizeof(struct fcoe_hdr));
607 fr_len = skb->len - sizeof(struct fcoe_crc_eof);
608
609 if (stats) {
610 stats->RxFrames++;
611 stats->RxWords += fr_len / FCOE_WORD_TO_BYTE;
612 }
613
614 fp = (struct fc_frame *)skb;
615 fc_frame_init(fp);
616 fr_dev(fp) = lp;
617 fr_sof(fp) = hp->fcoe_sof;
618
619 /* Copy out the CRC and EOF trailer for access */
620 if (skb_copy_bits(skb, fr_len, &crc_eof, sizeof(crc_eof))) {
621 kfree_skb(skb);
622 continue;
623 }
624 fr_eof(fp) = crc_eof.fcoe_eof;
625 fr_crc(fp) = crc_eof.fcoe_crc32;
626 if (pskb_trim(skb, fr_len)) {
627 kfree_skb(skb);
628 continue;
629 }
630
631 /*
632 * We only check CRC if no offload is available and if it is
633 * it's solicited data, in which case, the FCP layer would
634 * check it during the copy.
635 */
636 if (lp->crc_offload && skb->ip_summed == CHECKSUM_UNNECESSARY)
637 fr_flags(fp) &= ~FCPHF_CRC_UNCHECKED;
638 else
639 fr_flags(fp) |= FCPHF_CRC_UNCHECKED;
640
641 fh = fc_frame_header_get(fp);
642 if (fh->fh_r_ctl == FC_RCTL_DD_SOL_DATA &&
643 fh->fh_type == FC_TYPE_FCP) {
644 fc_exch_recv(lp, lp->emp, fp);
645 continue;
646 }
647 if (fr_flags(fp) & FCPHF_CRC_UNCHECKED) {
648 if (le32_to_cpu(fr_crc(fp)) !=
649 ~crc32(~0, skb->data, fr_len)) {
650 if (debug_fcoe || stats->InvalidCRCCount < 5)
651 printk(KERN_WARNING "fcoe: dropping "
652 "frame with CRC error\n");
653 stats->InvalidCRCCount++;
654 stats->ErrorFrames++;
655 fc_frame_free(fp);
656 continue;
657 }
658 fr_flags(fp) &= ~FCPHF_CRC_UNCHECKED;
659 }
660 /* non flogi and non data exchanges are handled here */
661 if (unlikely(fc->flogi_progress))
662 fcoe_recv_flogi(fc, fp, mac);
663 fc_exch_recv(lp, lp->emp, fp);
664 }
665 return 0; 430 return 0;
666} 431}
667 432
668/** 433/**
669 * fcoe_recv_flogi() - flogi receive function 434 * fcoe_ctlr_els_send() - Send an ELS frame encapsulated by FIP if appropriate.
670 * @fc: associated fcoe_softc 435 * @fip: FCoE controller.
671 * @fp: the recieved frame 436 * @skb: FCoE ELS frame including FC header but no FCoE headers.
672 * @sa: the source address of this flogi
673 * 437 *
674 * This is responsible to parse the flogi response and sets the corresponding 438 * Returns a non-zero error code if the frame should not be sent.
675 * mac address for the initiator, eitehr OUI based or GW based. 439 * Returns zero if the caller should send the frame with FCoE encapsulation.
676 * 440 *
677 * Returns: none 441 * The caller must check that the length is a multiple of 4.
442 * The SKB must have enough headroom (28 bytes) and tailroom (8 bytes).
678 */ 443 */
679static void fcoe_recv_flogi(struct fcoe_softc *fc, struct fc_frame *fp, u8 *sa) 444int fcoe_ctlr_els_send(struct fcoe_ctlr *fip, struct sk_buff *skb)
680{ 445{
681 struct fc_frame_header *fh; 446 struct fc_frame_header *fh;
447 u16 old_xid;
682 u8 op; 448 u8 op;
683 449
684 fh = fc_frame_header_get(fp); 450 if (fip->state == FIP_ST_NON_FIP)
685 if (fh->fh_type != FC_TYPE_ELS) 451 return 0;
686 return;
687 op = fc_frame_payload_op(fp);
688 if (op == ELS_LS_ACC && fh->fh_r_ctl == FC_RCTL_ELS_REP &&
689 fc->flogi_oxid == ntohs(fh->fh_ox_id)) {
690 /*
691 * FLOGI accepted.
692 * If the src mac addr is FC_OUI-based, then we mark the
693 * address_mode flag to use FC_OUI-based Ethernet DA.
694 * Otherwise we use the FCoE gateway addr
695 */
696 if (!compare_ether_addr(sa, (u8[6]) FC_FCOE_FLOGI_MAC)) {
697 fc->address_mode = FCOE_FCOUI_ADDR_MODE;
698 } else {
699 memcpy(fc->dest_addr, sa, ETH_ALEN);
700 fc->address_mode = FCOE_GW_ADDR_MODE;
701 }
702 452
453 fh = (struct fc_frame_header *)skb->data;
454 op = *(u8 *)(fh + 1);
455
456 switch (op) {
457 case ELS_FLOGI:
458 old_xid = fip->flogi_oxid;
459 fip->flogi_oxid = ntohs(fh->fh_ox_id);
460 if (fip->state == FIP_ST_AUTO) {
461 if (old_xid == FC_XID_UNKNOWN)
462 fip->flogi_count = 0;
463 fip->flogi_count++;
464 if (fip->flogi_count < 3)
465 goto drop;
466 fip->map_dest = 1;
467 return 0;
468 }
469 op = FIP_DT_FLOGI;
470 break;
471 case ELS_FDISC:
472 if (ntoh24(fh->fh_s_id))
473 return 0;
474 op = FIP_DT_FDISC;
475 break;
476 case ELS_LOGO:
477 if (fip->state != FIP_ST_ENABLED)
478 return 0;
479 if (ntoh24(fh->fh_d_id) != FC_FID_FLOGI)
480 return 0;
481 op = FIP_DT_LOGO;
482 break;
483 case ELS_LS_ACC:
484 if (fip->flogi_oxid == FC_XID_UNKNOWN)
485 return 0;
486 if (!ntoh24(fh->fh_s_id))
487 return 0;
488 if (fip->state == FIP_ST_AUTO)
489 return 0;
703 /* 490 /*
704 * Remove any previously-set unicast MAC filter. 491 * Here we must've gotten an SID by accepting an FLOGI
705 * Add secondary FCoE MAC address filter for our OUI. 492 * from a point-to-point connection. Switch to using
706 */ 493 * the source mac based on the SID. The destination
707 rtnl_lock(); 494 * MAC in this case would have been set by receving the
708 if (compare_ether_addr(fc->data_src_addr, (u8[6]) { 0 })) 495 * FLOGI.
709 dev_unicast_delete(fc->real_dev, fc->data_src_addr,
710 ETH_ALEN);
711 fc_fcoe_set_mac(fc->data_src_addr, fh->fh_d_id);
712 dev_unicast_add(fc->real_dev, fc->data_src_addr, ETH_ALEN);
713 rtnl_unlock();
714
715 fc->flogi_progress = 0;
716 } else if (op == ELS_FLOGI && fh->fh_r_ctl == FC_RCTL_ELS_REQ && sa) {
717 /*
718 * Save source MAC for point-to-point responses.
719 */ 496 */
720 memcpy(fc->dest_addr, sa, ETH_ALEN); 497 fip->flogi_oxid = FC_XID_UNKNOWN;
721 fc->address_mode = FCOE_GW_ADDR_MODE; 498 fc_fcoe_set_mac(fip->data_src_addr, fh->fh_s_id);
499 return 0;
500 default:
501 if (fip->state != FIP_ST_ENABLED)
502 goto drop;
503 return 0;
722 } 504 }
505 if (fcoe_ctlr_encaps(fip, op, skb))
506 goto drop;
507 fip->send(fip, skb);
508 return -EINPROGRESS;
509drop:
510 kfree_skb(skb);
511 return -EINVAL;
723} 512}
513EXPORT_SYMBOL(fcoe_ctlr_els_send);
724 514
725/** 515/*
726 * fcoe_watchdog() - fcoe timer callback 516 * fcoe_ctlr_age_fcfs() - Reset and free all old FCFs for a controller.
727 * @vp: 517 * @fip: FCoE controller.
728 * 518 *
729 * This checks the pending queue length for fcoe and set lport qfull 519 * Called with lock held.
730 * if the FCOE_MAX_QUEUE_DEPTH is reached. This is done for all fc_lport on the
731 * fcoe_hostlist.
732 * 520 *
733 * Returns: 0 for success 521 * An FCF is considered old if we have missed three advertisements.
522 * That is, there have been no valid advertisement from it for three
523 * times its keep-alive period including fuzz.
524 *
525 * In addition, determine the time when an FCF selection can occur.
734 */ 526 */
735void fcoe_watchdog(ulong vp) 527static void fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
736{ 528{
737 struct fcoe_softc *fc; 529 struct fcoe_fcf *fcf;
738 530 struct fcoe_fcf *next;
739 read_lock(&fcoe_hostlist_lock); 531 unsigned long sel_time = 0;
740 list_for_each_entry(fc, &fcoe_hostlist, list) { 532
741 if (fc->lp) 533 list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
742 fcoe_check_wait_queue(fc->lp); 534 if (time_after(jiffies, fcf->time + fcf->fka_period * 3 +
535 msecs_to_jiffies(FIP_FCF_FUZZ * 3))) {
536 if (fip->sel_fcf == fcf)
537 fip->sel_fcf = NULL;
538 list_del(&fcf->list);
539 WARN_ON(!fip->fcf_count);
540 fip->fcf_count--;
541 kfree(fcf);
542 } else if (fcoe_ctlr_mtu_valid(fcf) &&
543 (!sel_time || time_before(sel_time, fcf->time))) {
544 sel_time = fcf->time;
545 }
546 }
547 if (sel_time) {
548 sel_time += msecs_to_jiffies(FCOE_CTLR_START_DELAY);
549 fip->sel_time = sel_time;
550 if (time_before(sel_time, fip->timer.expires))
551 mod_timer(&fip->timer, sel_time);
552 } else {
553 fip->sel_time = 0;
743 } 554 }
744 read_unlock(&fcoe_hostlist_lock);
745
746 fcoe_timer.expires = jiffies + (1 * HZ);
747 add_timer(&fcoe_timer);
748} 555}
749 556
750
751/** 557/**
752 * fcoe_check_wait_queue() - put the skb into fcoe pending xmit queue 558 * fcoe_ctlr_parse_adv() - Decode a FIP advertisement into a new FCF entry.
753 * @lp: the fc_port for this skb 559 * @skb: received FIP advertisement frame
754 * @skb: the associated skb to be xmitted 560 * @fcf: resulting FCF entry.
755 * 561 *
756 * This empties the wait_queue, dequeue the head of the wait_queue queue 562 * Returns zero on a valid parsed advertisement,
757 * and calls fcoe_start_io() for each packet, if all skb have been 563 * otherwise returns non zero value.
758 * transmitted, return qlen or -1 if a error occurs, then restore
759 * wait_queue and try again later.
760 *
761 * The wait_queue is used when the skb transmit fails. skb will go
762 * in the wait_queue which will be emptied by the time function OR
763 * by the next skb transmit.
764 *
765 * Returns: 0 for success
766 */ 564 */
767static int fcoe_check_wait_queue(struct fc_lport *lp) 565static int fcoe_ctlr_parse_adv(struct sk_buff *skb, struct fcoe_fcf *fcf)
768{ 566{
769 struct fcoe_softc *fc = lport_priv(lp); 567 struct fip_header *fiph;
770 struct sk_buff *skb; 568 struct fip_desc *desc = NULL;
771 int rc = -1; 569 struct fip_wwn_desc *wwn;
772 570 struct fip_fab_desc *fab;
773 spin_lock_bh(&fc->fcoe_pending_queue.lock); 571 struct fip_fka_desc *fka;
774 if (fc->fcoe_pending_queue_active) 572 unsigned long t;
775 goto out; 573 size_t rlen;
776 fc->fcoe_pending_queue_active = 1; 574 size_t dlen;
777 575
778 while (fc->fcoe_pending_queue.qlen) { 576 memset(fcf, 0, sizeof(*fcf));
779 /* keep qlen > 0 until fcoe_start_io succeeds */ 577 fcf->fka_period = msecs_to_jiffies(FCOE_CTLR_DEF_FKA);
780 fc->fcoe_pending_queue.qlen++; 578
781 skb = __skb_dequeue(&fc->fcoe_pending_queue); 579 fiph = (struct fip_header *)skb->data;
782 580 fcf->flags = ntohs(fiph->fip_flags);
783 spin_unlock_bh(&fc->fcoe_pending_queue.lock); 581
784 rc = fcoe_start_io(skb); 582 rlen = ntohs(fiph->fip_dl_len) * 4;
785 spin_lock_bh(&fc->fcoe_pending_queue.lock); 583 if (rlen + sizeof(*fiph) > skb->len)
786 584 return -EINVAL;
787 if (rc) { 585
788 __skb_queue_head(&fc->fcoe_pending_queue, skb); 586 desc = (struct fip_desc *)(fiph + 1);
789 /* undo temporary increment above */ 587 while (rlen > 0) {
790 fc->fcoe_pending_queue.qlen--; 588 dlen = desc->fip_dlen * FIP_BPW;
589 if (dlen < sizeof(*desc) || dlen > rlen)
590 return -EINVAL;
591 switch (desc->fip_dtype) {
592 case FIP_DT_PRI:
593 if (dlen != sizeof(struct fip_pri_desc))
594 goto len_err;
595 fcf->pri = ((struct fip_pri_desc *)desc)->fd_pri;
791 break; 596 break;
597 case FIP_DT_MAC:
598 if (dlen != sizeof(struct fip_mac_desc))
599 goto len_err;
600 memcpy(fcf->fcf_mac,
601 ((struct fip_mac_desc *)desc)->fd_mac,
602 ETH_ALEN);
603 if (!is_valid_ether_addr(fcf->fcf_mac)) {
604 FIP_DBG("invalid MAC addr in FIP adv\n");
605 return -EINVAL;
606 }
607 break;
608 case FIP_DT_NAME:
609 if (dlen != sizeof(struct fip_wwn_desc))
610 goto len_err;
611 wwn = (struct fip_wwn_desc *)desc;
612 fcf->switch_name = get_unaligned_be64(&wwn->fd_wwn);
613 break;
614 case FIP_DT_FAB:
615 if (dlen != sizeof(struct fip_fab_desc))
616 goto len_err;
617 fab = (struct fip_fab_desc *)desc;
618 fcf->fabric_name = get_unaligned_be64(&fab->fd_wwn);
619 fcf->vfid = ntohs(fab->fd_vfid);
620 fcf->fc_map = ntoh24(fab->fd_map);
621 break;
622 case FIP_DT_FKA:
623 if (dlen != sizeof(struct fip_fka_desc))
624 goto len_err;
625 fka = (struct fip_fka_desc *)desc;
626 t = ntohl(fka->fd_fka_period);
627 if (t >= FCOE_CTLR_MIN_FKA)
628 fcf->fka_period = msecs_to_jiffies(t);
629 break;
630 case FIP_DT_MAP_OUI:
631 case FIP_DT_FCOE_SIZE:
632 case FIP_DT_FLOGI:
633 case FIP_DT_FDISC:
634 case FIP_DT_LOGO:
635 case FIP_DT_ELP:
636 default:
637 FIP_DBG("unexpected descriptor type %x in FIP adv\n",
638 desc->fip_dtype);
639 /* standard says ignore unknown descriptors >= 128 */
640 if (desc->fip_dtype < FIP_DT_VENDOR_BASE)
641 return -EINVAL;
642 continue;
792 } 643 }
793 /* undo temporary increment above */ 644 desc = (struct fip_desc *)((char *)desc + dlen);
794 fc->fcoe_pending_queue.qlen--; 645 rlen -= dlen;
795 } 646 }
647 if (!fcf->fc_map || (fcf->fc_map & 0x10000))
648 return -EINVAL;
649 if (!fcf->switch_name || !fcf->fabric_name)
650 return -EINVAL;
651 return 0;
796 652
797 if (fc->fcoe_pending_queue.qlen < FCOE_LOW_QUEUE_DEPTH) 653len_err:
798 lp->qfull = 0; 654 FIP_DBG("FIP length error in descriptor type %x len %zu\n",
799 fc->fcoe_pending_queue_active = 0; 655 desc->fip_dtype, dlen);
800 rc = fc->fcoe_pending_queue.qlen; 656 return -EINVAL;
801out:
802 spin_unlock_bh(&fc->fcoe_pending_queue.lock);
803 return rc;
804} 657}
805 658
806/** 659/**
807 * fcoe_dev_setup() - setup link change notification interface 660 * fcoe_ctlr_recv_adv() - Handle an incoming advertisement.
661 * @fip: FCoE controller.
662 * @skb: Received FIP packet.
808 */ 663 */
809static void fcoe_dev_setup() 664static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, struct sk_buff *skb)
810{ 665{
666 struct fcoe_fcf *fcf;
667 struct fcoe_fcf new;
668 struct fcoe_fcf *found;
669 unsigned long sol_tov = msecs_to_jiffies(FCOE_CTRL_SOL_TOV);
670 int first = 0;
671 int mtu_valid;
672
673 if (fcoe_ctlr_parse_adv(skb, &new))
674 return;
675
676 spin_lock_bh(&fip->lock);
677 first = list_empty(&fip->fcfs);
678 found = NULL;
679 list_for_each_entry(fcf, &fip->fcfs, list) {
680 if (fcf->switch_name == new.switch_name &&
681 fcf->fabric_name == new.fabric_name &&
682 fcf->fc_map == new.fc_map &&
683 compare_ether_addr(fcf->fcf_mac, new.fcf_mac) == 0) {
684 found = fcf;
685 break;
686 }
687 }
688 if (!found) {
689 if (fip->fcf_count >= FCOE_CTLR_FCF_LIMIT)
690 goto out;
691
692 fcf = kmalloc(sizeof(*fcf), GFP_ATOMIC);
693 if (!fcf)
694 goto out;
695
696 fip->fcf_count++;
697 memcpy(fcf, &new, sizeof(new));
698 list_add(&fcf->list, &fip->fcfs);
699 } else {
700 /*
701 * Flags in advertisements are ignored once the FCF is
702 * selected. Flags in unsolicited advertisements are
703 * ignored after a usable solicited advertisement
704 * has been received.
705 */
706 if (fcf == fip->sel_fcf) {
707 fip->ctlr_ka_time -= fcf->fka_period;
708 fip->ctlr_ka_time += new.fka_period;
709 if (time_before(fip->ctlr_ka_time, fip->timer.expires))
710 mod_timer(&fip->timer, fip->ctlr_ka_time);
711 } else if (!fcoe_ctlr_fcf_usable(fcf))
712 fcf->flags = new.flags;
713 fcf->fka_period = new.fka_period;
714 memcpy(fcf->fcf_mac, new.fcf_mac, ETH_ALEN);
715 }
716 mtu_valid = fcoe_ctlr_mtu_valid(fcf);
717 fcf->time = jiffies;
718 FIP_DBG_LVL(found ? 2 : 1, "%s FCF for fab %llx map %x val %d\n",
719 found ? "old" : "new",
720 fcf->fabric_name, fcf->fc_map, mtu_valid);
721
811 /* 722 /*
812 * here setup a interface specific wd time to 723 * If this advertisement is not solicited and our max receive size
813 * monitor the link state 724 * hasn't been verified, send a solicited advertisement.
814 */ 725 */
815 register_netdevice_notifier(&fcoe_notifier); 726 if (!mtu_valid)
816} 727 fcoe_ctlr_solicit(fip, fcf);
817 728
818/** 729 /*
819 * fcoe_dev_setup() - cleanup link change notification interface 730 * If its been a while since we did a solicit, and this is
820 */ 731 * the first advertisement we've received, do a multicast
821static void fcoe_dev_cleanup(void) 732 * solicitation to gather as many advertisements as we can
822{ 733 * before selection occurs.
823 unregister_netdevice_notifier(&fcoe_notifier); 734 */
735 if (first && time_after(jiffies, fip->sol_time + sol_tov))
736 fcoe_ctlr_solicit(fip, NULL);
737
738 /*
739 * If this is the first validated FCF, note the time and
740 * set a timer to trigger selection.
741 */
742 if (mtu_valid && !fip->sel_time && fcoe_ctlr_fcf_usable(fcf)) {
743 fip->sel_time = jiffies +
744 msecs_to_jiffies(FCOE_CTLR_START_DELAY);
745 if (!timer_pending(&fip->timer) ||
746 time_before(fip->sel_time, fip->timer.expires))
747 mod_timer(&fip->timer, fip->sel_time);
748 }
749out:
750 spin_unlock_bh(&fip->lock);
824} 751}
825 752
826/** 753/**
827 * fcoe_device_notification() - netdev event notification callback 754 * fcoe_ctlr_recv_els() - Handle an incoming FIP-encapsulated ELS frame.
828 * @notifier: context of the notification 755 * @fip: FCoE controller.
829 * @event: type of event 756 * @skb: Received FIP packet.
830 * @ptr: fixed array for output parsed ifname
831 *
832 * This function is called by the ethernet driver in case of link change event
833 *
834 * Returns: 0 for success
835 */ 757 */
836static int fcoe_device_notification(struct notifier_block *notifier, 758static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
837 ulong event, void *ptr)
838{ 759{
839 struct fc_lport *lp = NULL; 760 struct fc_lport *lp = fip->lp;
840 struct net_device *real_dev = ptr; 761 struct fip_header *fiph;
841 struct fcoe_softc *fc; 762 struct fc_frame *fp;
763 struct fc_frame_header *fh = NULL;
764 struct fip_desc *desc;
765 struct fip_encaps *els;
842 struct fcoe_dev_stats *stats; 766 struct fcoe_dev_stats *stats;
843 u32 new_link_up; 767 enum fip_desc_type els_dtype = 0;
844 u32 mfs; 768 u8 els_op;
845 int rc = NOTIFY_OK; 769 u8 sub;
846 770 u8 granted_mac[ETH_ALEN] = { 0 };
847 read_lock(&fcoe_hostlist_lock); 771 size_t els_len = 0;
848 list_for_each_entry(fc, &fcoe_hostlist, list) { 772 size_t rlen;
849 if (fc->real_dev == real_dev) { 773 size_t dlen;
850 lp = fc->lp; 774
775 fiph = (struct fip_header *)skb->data;
776 sub = fiph->fip_subcode;
777 if (sub != FIP_SC_REQ && sub != FIP_SC_REP)
778 goto drop;
779
780 rlen = ntohs(fiph->fip_dl_len) * 4;
781 if (rlen + sizeof(*fiph) > skb->len)
782 goto drop;
783
784 desc = (struct fip_desc *)(fiph + 1);
785 while (rlen > 0) {
786 dlen = desc->fip_dlen * FIP_BPW;
787 if (dlen < sizeof(*desc) || dlen > rlen)
788 goto drop;
789 switch (desc->fip_dtype) {
790 case FIP_DT_MAC:
791 if (dlen != sizeof(struct fip_mac_desc))
792 goto len_err;
793 memcpy(granted_mac,
794 ((struct fip_mac_desc *)desc)->fd_mac,
795 ETH_ALEN);
796 if (!is_valid_ether_addr(granted_mac)) {
797 FIP_DBG("invalid MAC addrs in FIP ELS\n");
798 goto drop;
799 }
851 break; 800 break;
801 case FIP_DT_FLOGI:
802 case FIP_DT_FDISC:
803 case FIP_DT_LOGO:
804 case FIP_DT_ELP:
805 if (fh)
806 goto drop;
807 if (dlen < sizeof(*els) + sizeof(*fh) + 1)
808 goto len_err;
809 els_len = dlen - sizeof(*els);
810 els = (struct fip_encaps *)desc;
811 fh = (struct fc_frame_header *)(els + 1);
812 els_dtype = desc->fip_dtype;
813 break;
814 default:
815 FIP_DBG("unexpected descriptor type %x "
816 "in FIP adv\n", desc->fip_dtype);
817 /* standard says ignore unknown descriptors >= 128 */
818 if (desc->fip_dtype < FIP_DT_VENDOR_BASE)
819 goto drop;
820 continue;
852 } 821 }
853 } 822 desc = (struct fip_desc *)((char *)desc + dlen);
854 read_unlock(&fcoe_hostlist_lock); 823 rlen -= dlen;
855 if (lp == NULL) {
856 rc = NOTIFY_DONE;
857 goto out;
858 } 824 }
859 825
860 new_link_up = lp->link_up; 826 if (!fh)
861 switch (event) { 827 goto drop;
862 case NETDEV_DOWN: 828 els_op = *(u8 *)(fh + 1);
863 case NETDEV_GOING_DOWN:
864 new_link_up = 0;
865 break;
866 case NETDEV_UP:
867 case NETDEV_CHANGE:
868 new_link_up = !fcoe_link_ok(lp);
869 break;
870 case NETDEV_CHANGEMTU:
871 mfs = fc->real_dev->mtu -
872 (sizeof(struct fcoe_hdr) +
873 sizeof(struct fcoe_crc_eof));
874 if (mfs >= FC_MIN_MAX_FRAME)
875 fc_set_mfs(lp, mfs);
876 new_link_up = !fcoe_link_ok(lp);
877 break;
878 case NETDEV_REGISTER:
879 break;
880 default:
881 FC_DBG("unknown event %ld call", event);
882 }
883 if (lp->link_up != new_link_up) {
884 if (new_link_up)
885 fc_linkup(lp);
886 else {
887 stats = lp->dev_stats[smp_processor_id()];
888 if (stats)
889 stats->LinkFailureCount++;
890 fc_linkdown(lp);
891 fcoe_clean_pending_queue(lp);
892 }
893 }
894out:
895 return rc;
896}
897 829
898/** 830 if (els_dtype == FIP_DT_FLOGI && sub == FIP_SC_REP &&
899 * fcoe_if_to_netdev() - parse a name buffer to get netdev 831 fip->flogi_oxid == ntohs(fh->fh_ox_id) &&
900 * @ifname: fixed array for output parsed ifname 832 els_op == ELS_LS_ACC && is_valid_ether_addr(granted_mac)) {
901 * @buffer: incoming buffer to be copied 833 fip->flogi_oxid = FC_XID_UNKNOWN;
902 * 834 fip->update_mac(fip, fip->data_src_addr, granted_mac);
903 * Returns: NULL or ptr to netdeive 835 memcpy(fip->data_src_addr, granted_mac, ETH_ALEN);
904 */
905static struct net_device *fcoe_if_to_netdev(const char *buffer)
906{
907 char *cp;
908 char ifname[IFNAMSIZ + 2];
909
910 if (buffer) {
911 strlcpy(ifname, buffer, IFNAMSIZ);
912 cp = ifname + strlen(ifname);
913 while (--cp >= ifname && *cp == '\n')
914 *cp = '\0';
915 return dev_get_by_name(&init_net, ifname);
916 } 836 }
917 return NULL; 837
838 /*
839 * Convert skb into an fc_frame containing only the ELS.
840 */
841 skb_pull(skb, (u8 *)fh - skb->data);
842 skb_trim(skb, els_len);
843 fp = (struct fc_frame *)skb;
844 fc_frame_init(fp);
845 fr_sof(fp) = FC_SOF_I3;
846 fr_eof(fp) = FC_EOF_T;
847 fr_dev(fp) = lp;
848
849 stats = fc_lport_get_stats(lp);
850 stats->RxFrames++;
851 stats->RxWords += skb->len / FIP_BPW;
852
853 fc_exch_recv(lp, lp->emp, fp);
854 return;
855
856len_err:
857 FIP_DBG("FIP length error in descriptor type %x len %zu\n",
858 desc->fip_dtype, dlen);
859drop:
860 kfree_skb(skb);
918} 861}
919 862
920/** 863/**
921 * fcoe_netdev_to_module_owner() - finds out the nic drive moddule of the netdev 864 * fcoe_ctlr_recv_els() - Handle an incoming link reset frame.
922 * @netdev: the target netdev 865 * @fip: FCoE controller.
866 * @fh: Received FIP header.
923 * 867 *
924 * Returns: ptr to the struct module, NULL for failure 868 * There may be multiple VN_Port descriptors.
869 * The overall length has already been checked.
925 */ 870 */
926static struct module * 871static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
927fcoe_netdev_to_module_owner(const struct net_device *netdev) 872 struct fip_header *fh)
928{ 873{
929 struct device *dev; 874 struct fip_desc *desc;
930 875 struct fip_mac_desc *mp;
931 if (!netdev) 876 struct fip_wwn_desc *wp;
932 return NULL; 877 struct fip_vn_desc *vp;
933 878 size_t rlen;
934 dev = netdev->dev.parent; 879 size_t dlen;
935 if (!dev) 880 struct fcoe_fcf *fcf = fip->sel_fcf;
936 return NULL; 881 struct fc_lport *lp = fip->lp;
882 u32 desc_mask;
883
884 FIP_DBG("Clear Virtual Link received\n");
885 if (!fcf)
886 return;
887 if (!fcf || !fc_host_port_id(lp->host))
888 return;
937 889
938 if (!dev->driver) 890 /*
939 return NULL; 891 * mask of required descriptors. Validating each one clears its bit.
892 */
893 desc_mask = BIT(FIP_DT_MAC) | BIT(FIP_DT_NAME) | BIT(FIP_DT_VN_ID);
894
895 rlen = ntohs(fh->fip_dl_len) * FIP_BPW;
896 desc = (struct fip_desc *)(fh + 1);
897 while (rlen >= sizeof(*desc)) {
898 dlen = desc->fip_dlen * FIP_BPW;
899 if (dlen > rlen)
900 return;
901 switch (desc->fip_dtype) {
902 case FIP_DT_MAC:
903 mp = (struct fip_mac_desc *)desc;
904 if (dlen < sizeof(*mp))
905 return;
906 if (compare_ether_addr(mp->fd_mac, fcf->fcf_mac))
907 return;
908 desc_mask &= ~BIT(FIP_DT_MAC);
909 break;
910 case FIP_DT_NAME:
911 wp = (struct fip_wwn_desc *)desc;
912 if (dlen < sizeof(*wp))
913 return;
914 if (get_unaligned_be64(&wp->fd_wwn) != fcf->switch_name)
915 return;
916 desc_mask &= ~BIT(FIP_DT_NAME);
917 break;
918 case FIP_DT_VN_ID:
919 vp = (struct fip_vn_desc *)desc;
920 if (dlen < sizeof(*vp))
921 return;
922 if (compare_ether_addr(vp->fd_mac,
923 fip->data_src_addr) == 0 &&
924 get_unaligned_be64(&vp->fd_wwpn) == lp->wwpn &&
925 ntoh24(vp->fd_fc_id) == fc_host_port_id(lp->host))
926 desc_mask &= ~BIT(FIP_DT_VN_ID);
927 break;
928 default:
929 /* standard says ignore unknown descriptors >= 128 */
930 if (desc->fip_dtype < FIP_DT_VENDOR_BASE)
931 return;
932 break;
933 }
934 desc = (struct fip_desc *)((char *)desc + dlen);
935 rlen -= dlen;
936 }
940 937
941 return dev->driver->owner; 938 /*
939 * reset only if all required descriptors were present and valid.
940 */
941 if (desc_mask) {
942 FIP_DBG("missing descriptors mask %x\n", desc_mask);
943 } else {
944 FIP_DBG("performing Clear Virtual Link\n");
945 fcoe_ctlr_reset(fip, FIP_ST_ENABLED);
946 }
942} 947}
943 948
944/** 949/**
945 * fcoe_ethdrv_get() - Hold the Ethernet driver 950 * fcoe_ctlr_recv() - Receive a FIP frame.
946 * @netdev: the target netdev 951 * @fip: FCoE controller.
952 * @skb: Received FIP packet.
947 * 953 *
948 * Holds the Ethernet driver module by try_module_get() for 954 * This is called from NET_RX_SOFTIRQ.
949 * the corresponding netdev.
950 *
951 * Returns: 0 for succsss
952 */ 955 */
953static int fcoe_ethdrv_get(const struct net_device *netdev) 956void fcoe_ctlr_recv(struct fcoe_ctlr *fip, struct sk_buff *skb)
954{ 957{
955 struct module *owner; 958 spin_lock_bh(&fip->fip_recv_list.lock);
956 959 __skb_queue_tail(&fip->fip_recv_list, skb);
957 owner = fcoe_netdev_to_module_owner(netdev); 960 spin_unlock_bh(&fip->fip_recv_list.lock);
958 if (owner) { 961 schedule_work(&fip->recv_work);
959 printk(KERN_DEBUG "fcoe:hold driver module %s for %s\n",
960 module_name(owner), netdev->name);
961 return try_module_get(owner);
962 }
963 return -ENODEV;
964} 962}
963EXPORT_SYMBOL(fcoe_ctlr_recv);
965 964
966/** 965/**
967 * fcoe_ethdrv_put() - Release the Ethernet driver 966 * fcoe_ctlr_recv_handler() - Receive a FIP frame.
968 * @netdev: the target netdev 967 * @fip: FCoE controller.
968 * @skb: Received FIP packet.
969 * 969 *
970 * Releases the Ethernet driver module by module_put for 970 * Returns non-zero if the frame is dropped.
971 * the corresponding netdev.
972 *
973 * Returns: 0 for succsss
974 */ 971 */
975static int fcoe_ethdrv_put(const struct net_device *netdev) 972static int fcoe_ctlr_recv_handler(struct fcoe_ctlr *fip, struct sk_buff *skb)
976{ 973{
977 struct module *owner; 974 struct fip_header *fiph;
975 struct ethhdr *eh;
976 enum fip_state state;
977 u16 op;
978 u8 sub;
979
980 if (skb_linearize(skb))
981 goto drop;
982 if (skb->len < sizeof(*fiph))
983 goto drop;
984 eh = eth_hdr(skb);
985 if (compare_ether_addr(eh->h_dest, fip->ctl_src_addr) &&
986 compare_ether_addr(eh->h_dest, FIP_ALL_ENODE_MACS))
987 goto drop;
988 fiph = (struct fip_header *)skb->data;
989 op = ntohs(fiph->fip_op);
990 sub = fiph->fip_subcode;
991
992 FIP_DBG_LVL(2, "ver %x op %x/%x dl %x fl %x\n",
993 FIP_VER_DECAPS(fiph->fip_ver), op, sub,
994 ntohs(fiph->fip_dl_len), ntohs(fiph->fip_flags));
995
996 if (FIP_VER_DECAPS(fiph->fip_ver) != FIP_VER)
997 goto drop;
998 if (ntohs(fiph->fip_dl_len) * FIP_BPW + sizeof(*fiph) > skb->len)
999 goto drop;
1000
1001 spin_lock_bh(&fip->lock);
1002 state = fip->state;
1003 if (state == FIP_ST_AUTO) {
1004 fip->map_dest = 0;
1005 fip->state = FIP_ST_ENABLED;
1006 state = FIP_ST_ENABLED;
1007 FIP_DBG("using FIP mode\n");
1008 }
1009 spin_unlock_bh(&fip->lock);
1010 if (state != FIP_ST_ENABLED)
1011 goto drop;
978 1012
979 owner = fcoe_netdev_to_module_owner(netdev); 1013 if (op == FIP_OP_LS) {
980 if (owner) { 1014 fcoe_ctlr_recv_els(fip, skb); /* consumes skb */
981 printk(KERN_DEBUG "fcoe:release driver module %s for %s\n",
982 module_name(owner), netdev->name);
983 module_put(owner);
984 return 0; 1015 return 0;
985 } 1016 }
986 return -ENODEV; 1017 if (op == FIP_OP_DISC && sub == FIP_SC_ADV)
1018 fcoe_ctlr_recv_adv(fip, skb);
1019 else if (op == FIP_OP_CTRL && sub == FIP_SC_CLR_VLINK)
1020 fcoe_ctlr_recv_clr_vlink(fip, fiph);
1021 kfree_skb(skb);
1022 return 0;
1023drop:
1024 kfree_skb(skb);
1025 return -1;
987} 1026}
988 1027
989/** 1028/**
990 * fcoe_destroy() - handles the destroy from sysfs 1029 * fcoe_ctlr_select() - Select the best FCF, if possible.
991 * @buffer: expcted to be a eth if name 1030 * @fip: FCoE controller.
992 * @kp: associated kernel param 1031 *
1032 * If there are conflicting advertisements, no FCF can be chosen.
993 * 1033 *
994 * Returns: 0 for success 1034 * Called with lock held.
995 */ 1035 */
996static int fcoe_destroy(const char *buffer, struct kernel_param *kp) 1036static void fcoe_ctlr_select(struct fcoe_ctlr *fip)
997{ 1037{
998 int rc; 1038 struct fcoe_fcf *fcf;
999 struct net_device *netdev; 1039 struct fcoe_fcf *best = NULL;
1000 1040
1001 netdev = fcoe_if_to_netdev(buffer); 1041 list_for_each_entry(fcf, &fip->fcfs, list) {
1002 if (!netdev) { 1042 FIP_DBG("consider FCF for fab %llx VFID %d map %x val %d\n",
1003 rc = -ENODEV; 1043 fcf->fabric_name, fcf->vfid,
1004 goto out_nodev; 1044 fcf->fc_map, fcoe_ctlr_mtu_valid(fcf));
1005 } 1045 if (!fcoe_ctlr_fcf_usable(fcf)) {
1006 /* look for existing lport */ 1046 FIP_DBG("FCF for fab %llx map %x %svalid %savailable\n",
1007 if (!fcoe_hostlist_lookup(netdev)) { 1047 fcf->fabric_name, fcf->fc_map,
1008 rc = -ENODEV; 1048 (fcf->flags & FIP_FL_SOL) ? "" : "in",
1009 goto out_putdev; 1049 (fcf->flags & FIP_FL_AVAIL) ? "" : "un");
1010 } 1050 continue;
1011 /* pass to transport */ 1051 }
1012 rc = fcoe_transport_release(netdev); 1052 if (!best) {
1013 if (rc) { 1053 best = fcf;
1014 printk(KERN_ERR "fcoe: fcoe_transport_release(%s) failed\n", 1054 continue;
1015 netdev->name); 1055 }
1016 rc = -EIO; 1056 if (fcf->fabric_name != best->fabric_name ||
1017 goto out_putdev; 1057 fcf->vfid != best->vfid ||
1058 fcf->fc_map != best->fc_map) {
1059 FIP_DBG("conflicting fabric, VFID, or FC-MAP\n");
1060 return;
1061 }
1062 if (fcf->pri < best->pri)
1063 best = fcf;
1018 } 1064 }
1019 fcoe_ethdrv_put(netdev); 1065 fip->sel_fcf = best;
1020 rc = 0;
1021out_putdev:
1022 dev_put(netdev);
1023out_nodev:
1024 return rc;
1025} 1066}
1026 1067
1027/** 1068/**
1028 * fcoe_create() - Handles the create call from sysfs 1069 * fcoe_ctlr_timeout() - FIP timer function.
1029 * @buffer: expcted to be a eth if name 1070 * @arg: &fcoe_ctlr pointer.
1030 * @kp: associated kernel param
1031 * 1071 *
1032 * Returns: 0 for success 1072 * Ages FCFs. Triggers FCF selection if possible. Sends keep-alives.
1033 */ 1073 */
1034static int fcoe_create(const char *buffer, struct kernel_param *kp) 1074static void fcoe_ctlr_timeout(unsigned long arg)
1035{ 1075{
1036 int rc; 1076 struct fcoe_ctlr *fip = (struct fcoe_ctlr *)arg;
1037 struct net_device *netdev; 1077 struct fcoe_fcf *sel;
1038 1078 struct fcoe_fcf *fcf;
1039 netdev = fcoe_if_to_netdev(buffer); 1079 unsigned long next_timer = jiffies + msecs_to_jiffies(FIP_VN_KA_PERIOD);
1040 if (!netdev) { 1080 DECLARE_MAC_BUF(buf);
1041 rc = -ENODEV; 1081 u8 send_ctlr_ka;
1042 goto out_nodev; 1082 u8 send_port_ka;
1083
1084 spin_lock_bh(&fip->lock);
1085 if (fip->state == FIP_ST_DISABLED) {
1086 spin_unlock_bh(&fip->lock);
1087 return;
1043 } 1088 }
1044 /* look for existing lport */ 1089
1045 if (fcoe_hostlist_lookup(netdev)) { 1090 fcf = fip->sel_fcf;
1046 rc = -EEXIST; 1091 fcoe_ctlr_age_fcfs(fip);
1047 goto out_putdev; 1092
1093 sel = fip->sel_fcf;
1094 if (!sel && fip->sel_time && time_after_eq(jiffies, fip->sel_time)) {
1095 fcoe_ctlr_select(fip);
1096 sel = fip->sel_fcf;
1097 fip->sel_time = 0;
1048 } 1098 }
1049 fcoe_ethdrv_get(netdev); 1099
1050 1100 if (sel != fcf) {
1051 /* pass to transport */ 1101 fcf = sel; /* the old FCF may have been freed */
1052 rc = fcoe_transport_attach(netdev); 1102 if (sel) {
1053 if (rc) { 1103 printk(KERN_INFO "host%d: FIP selected "
1054 printk(KERN_ERR "fcoe: fcoe_transport_attach(%s) failed\n", 1104 "Fibre-Channel Forwarder MAC %s\n",
1055 netdev->name); 1105 fip->lp->host->host_no,
1056 fcoe_ethdrv_put(netdev); 1106 print_mac(buf, sel->fcf_mac));
1057 rc = -EIO; 1107 memcpy(fip->dest_addr, sel->fcf_mac, ETH_ALEN);
1058 goto out_putdev; 1108 fip->port_ka_time = jiffies +
1109 msecs_to_jiffies(FIP_VN_KA_PERIOD);
1110 fip->ctlr_ka_time = jiffies + sel->fka_period;
1111 fip->link = 1;
1112 } else {
1113 printk(KERN_NOTICE "host%d: "
1114 "FIP Fibre-Channel Forwarder timed out. "
1115 "Starting FCF discovery.\n",
1116 fip->lp->host->host_no);
1117 fip->link = 0;
1118 }
1119 schedule_work(&fip->link_work);
1059 } 1120 }
1060 rc = 0;
1061out_putdev:
1062 dev_put(netdev);
1063out_nodev:
1064 return rc;
1065}
1066 1121
1067module_param_call(create, fcoe_create, NULL, NULL, S_IWUSR); 1122 send_ctlr_ka = 0;
1068__MODULE_PARM_TYPE(create, "string"); 1123 send_port_ka = 0;
1069MODULE_PARM_DESC(create, "Create fcoe port using net device passed in."); 1124 if (sel) {
1070module_param_call(destroy, fcoe_destroy, NULL, NULL, S_IWUSR); 1125 if (time_after_eq(jiffies, fip->ctlr_ka_time)) {
1071__MODULE_PARM_TYPE(destroy, "string"); 1126 fip->ctlr_ka_time = jiffies + sel->fka_period;
1072MODULE_PARM_DESC(destroy, "Destroy fcoe port"); 1127 send_ctlr_ka = 1;
1128 }
1129 if (time_after(next_timer, fip->ctlr_ka_time))
1130 next_timer = fip->ctlr_ka_time;
1073 1131
1074/** 1132 if (time_after_eq(jiffies, fip->port_ka_time)) {
1075 * fcoe_link_ok() - Check if link is ok for the fc_lport 1133 fip->port_ka_time += jiffies +
1076 * @lp: ptr to the fc_lport 1134 msecs_to_jiffies(FIP_VN_KA_PERIOD);
1077 * 1135 send_port_ka = 1;
1078 * Any permanently-disqualifying conditions have been previously checked.
1079 * This also updates the speed setting, which may change with link for 100/1000.
1080 *
1081 * This function should probably be checking for PAUSE support at some point
1082 * in the future. Currently Per-priority-pause is not determinable using
1083 * ethtool, so we shouldn't be restrictive until that problem is resolved.
1084 *
1085 * Returns: 0 if link is OK for use by FCoE.
1086 *
1087 */
1088int fcoe_link_ok(struct fc_lport *lp)
1089{
1090 struct fcoe_softc *fc = lport_priv(lp);
1091 struct net_device *dev = fc->real_dev;
1092 struct ethtool_cmd ecmd = { ETHTOOL_GSET };
1093 int rc = 0;
1094
1095 if ((dev->flags & IFF_UP) && netif_carrier_ok(dev)) {
1096 dev = fc->phys_dev;
1097 if (dev->ethtool_ops->get_settings) {
1098 dev->ethtool_ops->get_settings(dev, &ecmd);
1099 lp->link_supported_speeds &=
1100 ~(FC_PORTSPEED_1GBIT | FC_PORTSPEED_10GBIT);
1101 if (ecmd.supported & (SUPPORTED_1000baseT_Half |
1102 SUPPORTED_1000baseT_Full))
1103 lp->link_supported_speeds |= FC_PORTSPEED_1GBIT;
1104 if (ecmd.supported & SUPPORTED_10000baseT_Full)
1105 lp->link_supported_speeds |=
1106 FC_PORTSPEED_10GBIT;
1107 if (ecmd.speed == SPEED_1000)
1108 lp->link_speed = FC_PORTSPEED_1GBIT;
1109 if (ecmd.speed == SPEED_10000)
1110 lp->link_speed = FC_PORTSPEED_10GBIT;
1111 } 1136 }
1112 } else 1137 if (time_after(next_timer, fip->port_ka_time))
1113 rc = -1; 1138 next_timer = fip->port_ka_time;
1139 mod_timer(&fip->timer, next_timer);
1140 } else if (fip->sel_time) {
1141 next_timer = fip->sel_time +
1142 msecs_to_jiffies(FCOE_CTLR_START_DELAY);
1143 mod_timer(&fip->timer, next_timer);
1144 }
1145 spin_unlock_bh(&fip->lock);
1114 1146
1115 return rc; 1147 if (send_ctlr_ka)
1148 fcoe_ctlr_send_keep_alive(fip, 0, fip->ctl_src_addr);
1149 if (send_port_ka)
1150 fcoe_ctlr_send_keep_alive(fip, 1, fip->data_src_addr);
1116} 1151}
1117EXPORT_SYMBOL_GPL(fcoe_link_ok);
1118 1152
1119/** 1153/**
1120 * fcoe_percpu_clean() - Clear the pending skbs for an lport 1154 * fcoe_ctlr_link_work() - worker thread function for link changes.
1121 * @lp: the fc_lport 1155 * @work: pointer to link_work member inside &fcoe_ctlr.
1156 *
1157 * See if the link status has changed and if so, report it.
1158 *
1159 * This is here because fc_linkup() and fc_linkdown() must not
1160 * be called from the timer directly, since they use a mutex.
1122 */ 1161 */
1123void fcoe_percpu_clean(struct fc_lport *lp) 1162static void fcoe_ctlr_link_work(struct work_struct *work)
1124{ 1163{
1125 int idx; 1164 struct fcoe_ctlr *fip;
1126 struct fcoe_percpu_s *pp; 1165 int link;
1127 struct fcoe_rcv_info *fr; 1166 int last_link;
1128 struct sk_buff_head *list; 1167
1129 struct sk_buff *skb, *next; 1168 fip = container_of(work, struct fcoe_ctlr, link_work);
1130 struct sk_buff *head; 1169 spin_lock_bh(&fip->lock);
1131 1170 last_link = fip->last_link;
1132 for (idx = 0; idx < NR_CPUS; idx++) { 1171 link = fip->link;
1133 if (fcoe_percpu[idx]) { 1172 fip->last_link = link;
1134 pp = fcoe_percpu[idx]; 1173 spin_unlock_bh(&fip->lock);
1135 spin_lock_bh(&pp->fcoe_rx_list.lock); 1174
1136 list = &pp->fcoe_rx_list; 1175 if (last_link != link) {
1137 head = list->next; 1176 if (link)
1138 for (skb = head; skb != (struct sk_buff *)list; 1177 fc_linkup(fip->lp);
1139 skb = next) { 1178 else
1140 next = skb->next; 1179 fcoe_ctlr_reset(fip, FIP_ST_LINK_WAIT);
1141 fr = fcoe_dev_from_skb(skb);
1142 if (fr->fr_dev == lp) {
1143 __skb_unlink(skb, list);
1144 kfree_skb(skb);
1145 }
1146 }
1147 spin_unlock_bh(&pp->fcoe_rx_list.lock);
1148 }
1149 } 1180 }
1150} 1181}
1151EXPORT_SYMBOL_GPL(fcoe_percpu_clean);
1152 1182
1153/** 1183/**
1154 * fcoe_clean_pending_queue() - Dequeue a skb and free it 1184 * fcoe_ctlr_recv_work() - Worker thread function for receiving FIP frames.
1155 * @lp: the corresponding fc_lport 1185 * @recv_work: pointer to recv_work member inside &fcoe_ctlr.
1156 *
1157 * Returns: none
1158 */ 1186 */
1159void fcoe_clean_pending_queue(struct fc_lport *lp) 1187static void fcoe_ctlr_recv_work(struct work_struct *recv_work)
1160{ 1188{
1161 struct fcoe_softc *fc = lport_priv(lp); 1189 struct fcoe_ctlr *fip;
1162 struct sk_buff *skb; 1190 struct sk_buff *skb;
1163 1191
1164 spin_lock_bh(&fc->fcoe_pending_queue.lock); 1192 fip = container_of(recv_work, struct fcoe_ctlr, recv_work);
1165 while ((skb = __skb_dequeue(&fc->fcoe_pending_queue)) != NULL) { 1193 spin_lock_bh(&fip->fip_recv_list.lock);
1166 spin_unlock_bh(&fc->fcoe_pending_queue.lock); 1194 while ((skb = __skb_dequeue(&fip->fip_recv_list))) {
1167 kfree_skb(skb); 1195 spin_unlock_bh(&fip->fip_recv_list.lock);
1168 spin_lock_bh(&fc->fcoe_pending_queue.lock); 1196 fcoe_ctlr_recv_handler(fip, skb);
1197 spin_lock_bh(&fip->fip_recv_list.lock);
1169 } 1198 }
1170 spin_unlock_bh(&fc->fcoe_pending_queue.lock); 1199 spin_unlock_bh(&fip->fip_recv_list.lock);
1171} 1200}
1172EXPORT_SYMBOL_GPL(fcoe_clean_pending_queue);
1173 1201
1174/** 1202/**
1175 * libfc_host_alloc() - Allocate a Scsi_Host with room for the fc_lport 1203 * fcoe_ctlr_recv_flogi() - snoop Pre-FIP receipt of FLOGI response or request.
1176 * @sht: ptr to the scsi host templ 1204 * @fip: FCoE controller.
1177 * @priv_size: size of private data after fc_lport 1205 * @fp: FC frame.
1206 * @sa: Ethernet source MAC address from received FCoE frame.
1178 * 1207 *
1179 * Returns: ptr to Scsi_Host 1208 * Snoop potential response to FLOGI or even incoming FLOGI.
1180 * TODO: to libfc?
1181 */
1182static inline struct Scsi_Host *
1183libfc_host_alloc(struct scsi_host_template *sht, int priv_size)
1184{
1185 return scsi_host_alloc(sht, sizeof(struct fc_lport) + priv_size);
1186}
1187
1188/**
1189 * fcoe_host_alloc() - Allocate a Scsi_Host with room for the fcoe_softc
1190 * @sht: ptr to the scsi host templ
1191 * @priv_size: size of private data after fc_lport
1192 * 1209 *
1193 * Returns: ptr to Scsi_Host 1210 * The caller has checked that we are waiting for login as indicated
1194 */ 1211 * by fip->flogi_oxid != FC_XID_UNKNOWN.
1195struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *sht, int priv_size) 1212 *
1196{ 1213 * The caller is responsible for freeing the frame.
1197 return libfc_host_alloc(sht, sizeof(struct fcoe_softc) + priv_size);
1198}
1199EXPORT_SYMBOL_GPL(fcoe_host_alloc);
1200
1201/**
1202 * fcoe_reset() - Resets the fcoe
1203 * @shost: shost the reset is from
1204 * 1214 *
1205 * Returns: always 0 1215 * Return non-zero if the frame should not be delivered to libfc.
1206 */ 1216 */
1207int fcoe_reset(struct Scsi_Host *shost) 1217int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *fip, struct fc_frame *fp, u8 *sa)
1208{ 1218{
1209 struct fc_lport *lport = shost_priv(shost); 1219 struct fc_frame_header *fh;
1210 fc_lport_reset(lport); 1220 u8 op;
1221 u8 mac[ETH_ALEN];
1222
1223 fh = fc_frame_header_get(fp);
1224 if (fh->fh_type != FC_TYPE_ELS)
1225 return 0;
1226
1227 op = fc_frame_payload_op(fp);
1228 if (op == ELS_LS_ACC && fh->fh_r_ctl == FC_RCTL_ELS_REP &&
1229 fip->flogi_oxid == ntohs(fh->fh_ox_id)) {
1230
1231 spin_lock_bh(&fip->lock);
1232 if (fip->state != FIP_ST_AUTO && fip->state != FIP_ST_NON_FIP) {
1233 spin_unlock_bh(&fip->lock);
1234 return -EINVAL;
1235 }
1236 fip->state = FIP_ST_NON_FIP;
1237 FIP_DBG("received FLOGI LS_ACC using non-FIP mode\n");
1238
1239 /*
1240 * FLOGI accepted.
1241 * If the src mac addr is FC_OUI-based, then we mark the
1242 * address_mode flag to use FC_OUI-based Ethernet DA.
1243 * Otherwise we use the FCoE gateway addr
1244 */
1245 if (!compare_ether_addr(sa, (u8[6])FC_FCOE_FLOGI_MAC)) {
1246 fip->map_dest = 1;
1247 } else {
1248 memcpy(fip->dest_addr, sa, ETH_ALEN);
1249 fip->map_dest = 0;
1250 }
1251 fip->flogi_oxid = FC_XID_UNKNOWN;
1252 memcpy(mac, fip->data_src_addr, ETH_ALEN);
1253 fc_fcoe_set_mac(fip->data_src_addr, fh->fh_d_id);
1254 spin_unlock_bh(&fip->lock);
1255
1256 fip->update_mac(fip, mac, fip->data_src_addr);
1257 } else if (op == ELS_FLOGI && fh->fh_r_ctl == FC_RCTL_ELS_REQ && sa) {
1258 /*
1259 * Save source MAC for point-to-point responses.
1260 */
1261 spin_lock_bh(&fip->lock);
1262 if (fip->state == FIP_ST_AUTO || fip->state == FIP_ST_NON_FIP) {
1263 memcpy(fip->dest_addr, sa, ETH_ALEN);
1264 fip->map_dest = 0;
1265 if (fip->state == FIP_ST_NON_FIP)
1266 FIP_DBG("received FLOGI REQ, "
1267 "using non-FIP mode\n");
1268 fip->state = FIP_ST_NON_FIP;
1269 }
1270 spin_unlock_bh(&fip->lock);
1271 }
1211 return 0; 1272 return 0;
1212} 1273}
1213EXPORT_SYMBOL_GPL(fcoe_reset); 1274EXPORT_SYMBOL(fcoe_ctlr_recv_flogi);
1214 1275
1215/** 1276/**
1216 * fcoe_wwn_from_mac() - Converts 48-bit IEEE MAC address to 64-bit FC WWN. 1277 * fcoe_wwn_from_mac() - Converts 48-bit IEEE MAC address to 64-bit FC WWN.
@@ -1254,85 +1315,6 @@ u64 fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN],
1254EXPORT_SYMBOL_GPL(fcoe_wwn_from_mac); 1315EXPORT_SYMBOL_GPL(fcoe_wwn_from_mac);
1255 1316
1256/** 1317/**
1257 * fcoe_hostlist_lookup_softc() - find the corresponding lport by a given device
1258 * @device: this is currently ptr to net_device
1259 *
1260 * Returns: NULL or the located fcoe_softc
1261 */
1262static struct fcoe_softc *
1263fcoe_hostlist_lookup_softc(const struct net_device *dev)
1264{
1265 struct fcoe_softc *fc;
1266
1267 read_lock(&fcoe_hostlist_lock);
1268 list_for_each_entry(fc, &fcoe_hostlist, list) {
1269 if (fc->real_dev == dev) {
1270 read_unlock(&fcoe_hostlist_lock);
1271 return fc;
1272 }
1273 }
1274 read_unlock(&fcoe_hostlist_lock);
1275 return NULL;
1276}
1277
1278/**
1279 * fcoe_hostlist_lookup() - Find the corresponding lport by netdev
1280 * @netdev: ptr to net_device
1281 *
1282 * Returns: 0 for success
1283 */
1284struct fc_lport *fcoe_hostlist_lookup(const struct net_device *netdev)
1285{
1286 struct fcoe_softc *fc;
1287
1288 fc = fcoe_hostlist_lookup_softc(netdev);
1289
1290 return (fc) ? fc->lp : NULL;
1291}
1292EXPORT_SYMBOL_GPL(fcoe_hostlist_lookup);
1293
1294/**
1295 * fcoe_hostlist_add() - Add a lport to lports list
1296 * @lp: ptr to the fc_lport to badded
1297 *
1298 * Returns: 0 for success
1299 */
1300int fcoe_hostlist_add(const struct fc_lport *lp)
1301{
1302 struct fcoe_softc *fc;
1303
1304 fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp));
1305 if (!fc) {
1306 fc = lport_priv(lp);
1307 write_lock_bh(&fcoe_hostlist_lock);
1308 list_add_tail(&fc->list, &fcoe_hostlist);
1309 write_unlock_bh(&fcoe_hostlist_lock);
1310 }
1311 return 0;
1312}
1313EXPORT_SYMBOL_GPL(fcoe_hostlist_add);
1314
1315/**
1316 * fcoe_hostlist_remove() - remove a lport from lports list
1317 * @lp: ptr to the fc_lport to badded
1318 *
1319 * Returns: 0 for success
1320 */
1321int fcoe_hostlist_remove(const struct fc_lport *lp)
1322{
1323 struct fcoe_softc *fc;
1324
1325 fc = fcoe_hostlist_lookup_softc(fcoe_netdev(lp));
1326 BUG_ON(!fc);
1327 write_lock_bh(&fcoe_hostlist_lock);
1328 list_del(&fc->list);
1329 write_unlock_bh(&fcoe_hostlist_lock);
1330
1331 return 0;
1332}
1333EXPORT_SYMBOL_GPL(fcoe_hostlist_remove);
1334
1335/**
1336 * fcoe_libfc_config() - sets up libfc related properties for lport 1318 * fcoe_libfc_config() - sets up libfc related properties for lport
1337 * @lp: ptr to the fc_lport 1319 * @lp: ptr to the fc_lport
1338 * @tt: libfc function template 1320 * @tt: libfc function template
@@ -1354,121 +1336,3 @@ int fcoe_libfc_config(struct fc_lport *lp, struct libfc_function_template *tt)
1354 return 0; 1336 return 0;
1355} 1337}
1356EXPORT_SYMBOL_GPL(fcoe_libfc_config); 1338EXPORT_SYMBOL_GPL(fcoe_libfc_config);
1357
1358/**
1359 * fcoe_init() - fcoe module loading initialization
1360 *
1361 * Initialization routine
1362 * 1. Will create fc transport software structure
1363 * 2. initialize the link list of port information structure
1364 *
1365 * Returns 0 on success, negative on failure
1366 */
1367static int __init fcoe_init(void)
1368{
1369 int cpu;
1370 struct fcoe_percpu_s *p;
1371
1372
1373 INIT_LIST_HEAD(&fcoe_hostlist);
1374 rwlock_init(&fcoe_hostlist_lock);
1375
1376#ifdef CONFIG_HOTPLUG_CPU
1377 register_cpu_notifier(&fcoe_cpu_notifier);
1378#endif /* CONFIG_HOTPLUG_CPU */
1379
1380 /*
1381 * initialize per CPU interrupt thread
1382 */
1383 for_each_online_cpu(cpu) {
1384 p = kzalloc(sizeof(struct fcoe_percpu_s), GFP_KERNEL);
1385 if (p) {
1386 p->thread = kthread_create(fcoe_percpu_receive_thread,
1387 (void *)p,
1388 "fcoethread/%d", cpu);
1389
1390 /*
1391 * if there is no error then bind the thread to the cpu
1392 * initialize the semaphore and skb queue head
1393 */
1394 if (likely(!IS_ERR(p->thread))) {
1395 p->cpu = cpu;
1396 fcoe_percpu[cpu] = p;
1397 skb_queue_head_init(&p->fcoe_rx_list);
1398 kthread_bind(p->thread, cpu);
1399 wake_up_process(p->thread);
1400 } else {
1401 fcoe_percpu[cpu] = NULL;
1402 kfree(p);
1403 }
1404 }
1405 }
1406
1407 /*
1408 * setup link change notification
1409 */
1410 fcoe_dev_setup();
1411
1412 setup_timer(&fcoe_timer, fcoe_watchdog, 0);
1413
1414 mod_timer(&fcoe_timer, jiffies + (10 * HZ));
1415
1416 /* initiatlize the fcoe transport */
1417 fcoe_transport_init();
1418
1419 fcoe_sw_init();
1420
1421 return 0;
1422}
1423module_init(fcoe_init);
1424
1425/**
1426 * fcoe_exit() - fcoe module unloading cleanup
1427 *
1428 * Returns 0 on success, negative on failure
1429 */
1430static void __exit fcoe_exit(void)
1431{
1432 u32 idx;
1433 struct fcoe_softc *fc, *tmp;
1434 struct fcoe_percpu_s *p;
1435 struct sk_buff *skb;
1436
1437 /*
1438 * Stop all call back interfaces
1439 */
1440#ifdef CONFIG_HOTPLUG_CPU
1441 unregister_cpu_notifier(&fcoe_cpu_notifier);
1442#endif /* CONFIG_HOTPLUG_CPU */
1443 fcoe_dev_cleanup();
1444
1445 /*
1446 * stop timer
1447 */
1448 del_timer_sync(&fcoe_timer);
1449
1450 /* releases the associated fcoe transport for each lport */
1451 list_for_each_entry_safe(fc, tmp, &fcoe_hostlist, list)
1452 fcoe_transport_release(fc->real_dev);
1453
1454 for (idx = 0; idx < NR_CPUS; idx++) {
1455 if (fcoe_percpu[idx]) {
1456 kthread_stop(fcoe_percpu[idx]->thread);
1457 p = fcoe_percpu[idx];
1458 spin_lock_bh(&p->fcoe_rx_list.lock);
1459 while ((skb = __skb_dequeue(&p->fcoe_rx_list)) != NULL)
1460 kfree_skb(skb);
1461 spin_unlock_bh(&p->fcoe_rx_list.lock);
1462 if (fcoe_percpu[idx]->crc_eof_page)
1463 put_page(fcoe_percpu[idx]->crc_eof_page);
1464 kfree(fcoe_percpu[idx]);
1465 }
1466 }
1467
1468 /* remove sw trasnport */
1469 fcoe_sw_exit();
1470
1471 /* detach the transport */
1472 fcoe_transport_exit();
1473}
1474module_exit(fcoe_exit);
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 93d1fbe4ee5..ea4abee7a2a 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -75,7 +75,7 @@ MODULE_PARM_DESC(max_lun, "Maximum allowed LUN. "
75module_param_named(max_targets, max_targets, uint, S_IRUGO); 75module_param_named(max_targets, max_targets, uint, S_IRUGO);
76MODULE_PARM_DESC(max_targets, "Maximum allowed targets. " 76MODULE_PARM_DESC(max_targets, "Maximum allowed targets. "
77 "[Default=" __stringify(IBMVFC_MAX_TARGETS) "]"); 77 "[Default=" __stringify(IBMVFC_MAX_TARGETS) "]");
78module_param_named(disc_threads, disc_threads, uint, S_IRUGO | S_IWUSR); 78module_param_named(disc_threads, disc_threads, uint, S_IRUGO);
79MODULE_PARM_DESC(disc_threads, "Number of device discovery threads to use. " 79MODULE_PARM_DESC(disc_threads, "Number of device discovery threads to use. "
80 "[Default=" __stringify(IBMVFC_MAX_DISC_THREADS) "]"); 80 "[Default=" __stringify(IBMVFC_MAX_DISC_THREADS) "]");
81module_param_named(debug, ibmvfc_debug, uint, S_IRUGO | S_IWUSR); 81module_param_named(debug, ibmvfc_debug, uint, S_IRUGO | S_IWUSR);
@@ -640,6 +640,7 @@ static void ibmvfc_release_crq_queue(struct ibmvfc_host *vhost)
640 640
641 ibmvfc_dbg(vhost, "Releasing CRQ\n"); 641 ibmvfc_dbg(vhost, "Releasing CRQ\n");
642 free_irq(vdev->irq, vhost); 642 free_irq(vdev->irq, vhost);
643 tasklet_kill(&vhost->tasklet);
643 do { 644 do {
644 rc = plpar_hcall_norets(H_FREE_CRQ, vdev->unit_address); 645 rc = plpar_hcall_norets(H_FREE_CRQ, vdev->unit_address);
645 } while (rc == H_BUSY || H_IS_LONG_BUSY(rc)); 646 } while (rc == H_BUSY || H_IS_LONG_BUSY(rc));
@@ -2699,6 +2700,25 @@ static struct ibmvfc_crq *ibmvfc_next_crq(struct ibmvfc_host *vhost)
2699static irqreturn_t ibmvfc_interrupt(int irq, void *dev_instance) 2700static irqreturn_t ibmvfc_interrupt(int irq, void *dev_instance)
2700{ 2701{
2701 struct ibmvfc_host *vhost = (struct ibmvfc_host *)dev_instance; 2702 struct ibmvfc_host *vhost = (struct ibmvfc_host *)dev_instance;
2703 unsigned long flags;
2704
2705 spin_lock_irqsave(vhost->host->host_lock, flags);
2706 vio_disable_interrupts(to_vio_dev(vhost->dev));
2707 tasklet_schedule(&vhost->tasklet);
2708 spin_unlock_irqrestore(vhost->host->host_lock, flags);
2709 return IRQ_HANDLED;
2710}
2711
2712/**
2713 * ibmvfc_tasklet - Interrupt handler tasklet
2714 * @data: ibmvfc host struct
2715 *
2716 * Returns:
2717 * Nothing
2718 **/
2719static void ibmvfc_tasklet(void *data)
2720{
2721 struct ibmvfc_host *vhost = data;
2702 struct vio_dev *vdev = to_vio_dev(vhost->dev); 2722 struct vio_dev *vdev = to_vio_dev(vhost->dev);
2703 struct ibmvfc_crq *crq; 2723 struct ibmvfc_crq *crq;
2704 struct ibmvfc_async_crq *async; 2724 struct ibmvfc_async_crq *async;
@@ -2706,7 +2726,6 @@ static irqreturn_t ibmvfc_interrupt(int irq, void *dev_instance)
2706 int done = 0; 2726 int done = 0;
2707 2727
2708 spin_lock_irqsave(vhost->host->host_lock, flags); 2728 spin_lock_irqsave(vhost->host->host_lock, flags);
2709 vio_disable_interrupts(to_vio_dev(vhost->dev));
2710 while (!done) { 2729 while (!done) {
2711 /* Pull all the valid messages off the CRQ */ 2730 /* Pull all the valid messages off the CRQ */
2712 while ((crq = ibmvfc_next_crq(vhost)) != NULL) { 2731 while ((crq = ibmvfc_next_crq(vhost)) != NULL) {
@@ -2734,7 +2753,6 @@ static irqreturn_t ibmvfc_interrupt(int irq, void *dev_instance)
2734 } 2753 }
2735 2754
2736 spin_unlock_irqrestore(vhost->host->host_lock, flags); 2755 spin_unlock_irqrestore(vhost->host->host_lock, flags);
2737 return IRQ_HANDLED;
2738} 2756}
2739 2757
2740/** 2758/**
@@ -3105,6 +3123,7 @@ static void ibmvfc_tgt_adisc_done(struct ibmvfc_event *evt)
3105 3123
3106 vhost->discovery_threads--; 3124 vhost->discovery_threads--;
3107 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); 3125 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3126 del_timer(&tgt->timer);
3108 3127
3109 switch (status) { 3128 switch (status) {
3110 case IBMVFC_MAD_SUCCESS: 3129 case IBMVFC_MAD_SUCCESS:
@@ -3161,9 +3180,89 @@ static void ibmvfc_init_passthru(struct ibmvfc_event *evt)
3161} 3180}
3162 3181
3163/** 3182/**
3183 * ibmvfc_tgt_adisc_cancel_done - Completion handler when cancelling an ADISC
3184 * @evt: ibmvfc event struct
3185 *
3186 * Just cleanup this event struct. Everything else is handled by
3187 * the ADISC completion handler. If the ADISC never actually comes
3188 * back, we still have the timer running on the ADISC event struct
3189 * which will fire and cause the CRQ to get reset.
3190 *
3191 **/
3192static void ibmvfc_tgt_adisc_cancel_done(struct ibmvfc_event *evt)
3193{
3194 struct ibmvfc_host *vhost = evt->vhost;
3195 struct ibmvfc_target *tgt = evt->tgt;
3196
3197 tgt_dbg(tgt, "ADISC cancel complete\n");
3198 vhost->abort_threads--;
3199 ibmvfc_free_event(evt);
3200 kref_put(&tgt->kref, ibmvfc_release_tgt);
3201 wake_up(&vhost->work_wait_q);
3202}
3203
3204/**
3205 * ibmvfc_adisc_timeout - Handle an ADISC timeout
3206 * @tgt: ibmvfc target struct
3207 *
3208 * If an ADISC times out, send a cancel. If the cancel times
3209 * out, reset the CRQ. When the ADISC comes back as cancelled,
3210 * log back into the target.
3211 **/
3212static void ibmvfc_adisc_timeout(struct ibmvfc_target *tgt)
3213{
3214 struct ibmvfc_host *vhost = tgt->vhost;
3215 struct ibmvfc_event *evt;
3216 struct ibmvfc_tmf *tmf;
3217 unsigned long flags;
3218 int rc;
3219
3220 tgt_dbg(tgt, "ADISC timeout\n");
3221 spin_lock_irqsave(vhost->host->host_lock, flags);
3222 if (vhost->abort_threads >= disc_threads ||
3223 tgt->action != IBMVFC_TGT_ACTION_INIT_WAIT ||
3224 vhost->state != IBMVFC_INITIALIZING ||
3225 vhost->action != IBMVFC_HOST_ACTION_QUERY_TGTS) {
3226 spin_unlock_irqrestore(vhost->host->host_lock, flags);
3227 return;
3228 }
3229
3230 vhost->abort_threads++;
3231 kref_get(&tgt->kref);
3232 evt = ibmvfc_get_event(vhost);
3233 ibmvfc_init_event(evt, ibmvfc_tgt_adisc_cancel_done, IBMVFC_MAD_FORMAT);
3234
3235 evt->tgt = tgt;
3236 tmf = &evt->iu.tmf;
3237 memset(tmf, 0, sizeof(*tmf));
3238 tmf->common.version = 1;
3239 tmf->common.opcode = IBMVFC_TMF_MAD;
3240 tmf->common.length = sizeof(*tmf);
3241 tmf->scsi_id = tgt->scsi_id;
3242 tmf->cancel_key = tgt->cancel_key;
3243
3244 rc = ibmvfc_send_event(evt, vhost, default_timeout);
3245
3246 if (rc) {
3247 tgt_err(tgt, "Failed to send cancel event for ADISC. rc=%d\n", rc);
3248 vhost->abort_threads--;
3249 kref_put(&tgt->kref, ibmvfc_release_tgt);
3250 __ibmvfc_reset_host(vhost);
3251 } else
3252 tgt_dbg(tgt, "Attempting to cancel ADISC\n");
3253 spin_unlock_irqrestore(vhost->host->host_lock, flags);
3254}
3255
3256/**
3164 * ibmvfc_tgt_adisc - Initiate an ADISC for specified target 3257 * ibmvfc_tgt_adisc - Initiate an ADISC for specified target
3165 * @tgt: ibmvfc target struct 3258 * @tgt: ibmvfc target struct
3166 * 3259 *
3260 * When sending an ADISC we end up with two timers running. The
3261 * first timer is the timer in the ibmvfc target struct. If this
3262 * fires, we send a cancel to the target. The second timer is the
3263 * timer on the ibmvfc event for the ADISC, which is longer. If that
3264 * fires, it means the ADISC timed out and our attempt to cancel it
3265 * also failed, so we need to reset the CRQ.
3167 **/ 3266 **/
3168static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt) 3267static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt)
3169{ 3268{
@@ -3184,6 +3283,7 @@ static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt)
3184 mad = &evt->iu.passthru; 3283 mad = &evt->iu.passthru;
3185 mad->iu.flags = IBMVFC_FC_ELS; 3284 mad->iu.flags = IBMVFC_FC_ELS;
3186 mad->iu.scsi_id = tgt->scsi_id; 3285 mad->iu.scsi_id = tgt->scsi_id;
3286 mad->iu.cancel_key = tgt->cancel_key;
3187 3287
3188 mad->fc_iu.payload[0] = IBMVFC_ADISC; 3288 mad->fc_iu.payload[0] = IBMVFC_ADISC;
3189 memcpy(&mad->fc_iu.payload[2], &vhost->login_buf->resp.port_name, 3289 memcpy(&mad->fc_iu.payload[2], &vhost->login_buf->resp.port_name,
@@ -3192,9 +3292,19 @@ static void ibmvfc_tgt_adisc(struct ibmvfc_target *tgt)
3192 sizeof(vhost->login_buf->resp.node_name)); 3292 sizeof(vhost->login_buf->resp.node_name));
3193 mad->fc_iu.payload[6] = vhost->login_buf->resp.scsi_id & 0x00ffffff; 3293 mad->fc_iu.payload[6] = vhost->login_buf->resp.scsi_id & 0x00ffffff;
3194 3294
3295 if (timer_pending(&tgt->timer))
3296 mod_timer(&tgt->timer, jiffies + (IBMVFC_ADISC_TIMEOUT * HZ));
3297 else {
3298 tgt->timer.data = (unsigned long) tgt;
3299 tgt->timer.expires = jiffies + (IBMVFC_ADISC_TIMEOUT * HZ);
3300 tgt->timer.function = (void (*)(unsigned long))ibmvfc_adisc_timeout;
3301 add_timer(&tgt->timer);
3302 }
3303
3195 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); 3304 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT);
3196 if (ibmvfc_send_event(evt, vhost, default_timeout)) { 3305 if (ibmvfc_send_event(evt, vhost, IBMVFC_ADISC_PLUS_CANCEL_TIMEOUT)) {
3197 vhost->discovery_threads--; 3306 vhost->discovery_threads--;
3307 del_timer(&tgt->timer);
3198 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); 3308 ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE);
3199 kref_put(&tgt->kref, ibmvfc_release_tgt); 3309 kref_put(&tgt->kref, ibmvfc_release_tgt);
3200 } else 3310 } else
@@ -3322,6 +3432,8 @@ static int ibmvfc_alloc_target(struct ibmvfc_host *vhost, u64 scsi_id)
3322 tgt->new_scsi_id = scsi_id; 3432 tgt->new_scsi_id = scsi_id;
3323 tgt->vhost = vhost; 3433 tgt->vhost = vhost;
3324 tgt->need_login = 1; 3434 tgt->need_login = 1;
3435 tgt->cancel_key = vhost->task_set++;
3436 init_timer(&tgt->timer);
3325 kref_init(&tgt->kref); 3437 kref_init(&tgt->kref);
3326 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout); 3438 ibmvfc_init_tgt(tgt, ibmvfc_tgt_implicit_logout);
3327 spin_lock_irqsave(vhost->host->host_lock, flags); 3439 spin_lock_irqsave(vhost->host->host_lock, flags);
@@ -3716,6 +3828,7 @@ static void ibmvfc_do_work(struct ibmvfc_host *vhost)
3716 spin_unlock_irqrestore(vhost->host->host_lock, flags); 3828 spin_unlock_irqrestore(vhost->host->host_lock, flags);
3717 if (rport) 3829 if (rport)
3718 fc_remote_port_delete(rport); 3830 fc_remote_port_delete(rport);
3831 del_timer_sync(&tgt->timer);
3719 kref_put(&tgt->kref, ibmvfc_release_tgt); 3832 kref_put(&tgt->kref, ibmvfc_release_tgt);
3720 return; 3833 return;
3721 } 3834 }
@@ -3859,6 +3972,8 @@ static int ibmvfc_init_crq(struct ibmvfc_host *vhost)
3859 3972
3860 retrc = 0; 3973 retrc = 0;
3861 3974
3975 tasklet_init(&vhost->tasklet, (void *)ibmvfc_tasklet, (unsigned long)vhost);
3976
3862 if ((rc = request_irq(vdev->irq, ibmvfc_interrupt, 0, IBMVFC_NAME, vhost))) { 3977 if ((rc = request_irq(vdev->irq, ibmvfc_interrupt, 0, IBMVFC_NAME, vhost))) {
3863 dev_err(dev, "Couldn't register irq 0x%x. rc=%d\n", vdev->irq, rc); 3978 dev_err(dev, "Couldn't register irq 0x%x. rc=%d\n", vdev->irq, rc);
3864 goto req_irq_failed; 3979 goto req_irq_failed;
@@ -3874,6 +3989,7 @@ static int ibmvfc_init_crq(struct ibmvfc_host *vhost)
3874 return retrc; 3989 return retrc;
3875 3990
3876req_irq_failed: 3991req_irq_failed:
3992 tasklet_kill(&vhost->tasklet);
3877 do { 3993 do {
3878 rc = plpar_hcall_norets(H_FREE_CRQ, vdev->unit_address); 3994 rc = plpar_hcall_norets(H_FREE_CRQ, vdev->unit_address);
3879 } while (rc == H_BUSY || H_IS_LONG_BUSY(rc)); 3995 } while (rc == H_BUSY || H_IS_LONG_BUSY(rc));
@@ -4040,6 +4156,7 @@ static int ibmvfc_probe(struct vio_dev *vdev, const struct vio_device_id *id)
4040 vhost->dev = dev; 4156 vhost->dev = dev;
4041 vhost->partition_number = -1; 4157 vhost->partition_number = -1;
4042 vhost->log_level = log_level; 4158 vhost->log_level = log_level;
4159 vhost->task_set = 1;
4043 strcpy(vhost->partition_name, "UNKNOWN"); 4160 strcpy(vhost->partition_name, "UNKNOWN");
4044 init_waitqueue_head(&vhost->work_wait_q); 4161 init_waitqueue_head(&vhost->work_wait_q);
4045 init_waitqueue_head(&vhost->init_wait_q); 4162 init_waitqueue_head(&vhost->init_wait_q);
@@ -4174,6 +4291,7 @@ static struct fc_function_template ibmvfc_transport_functions = {
4174 .show_host_supported_classes = 1, 4291 .show_host_supported_classes = 1,
4175 .show_host_port_type = 1, 4292 .show_host_port_type = 1,
4176 .show_host_port_id = 1, 4293 .show_host_port_id = 1,
4294 .show_host_maxframe_size = 1,
4177 4295
4178 .get_host_port_state = ibmvfc_get_host_port_state, 4296 .get_host_port_state = ibmvfc_get_host_port_state,
4179 .show_host_port_state = 1, 4297 .show_host_port_state = 1,
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h
index b21e071b986..ca1dcf7a756 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.h
+++ b/drivers/scsi/ibmvscsi/ibmvfc.h
@@ -29,10 +29,14 @@
29#include "viosrp.h" 29#include "viosrp.h"
30 30
31#define IBMVFC_NAME "ibmvfc" 31#define IBMVFC_NAME "ibmvfc"
32#define IBMVFC_DRIVER_VERSION "1.0.4" 32#define IBMVFC_DRIVER_VERSION "1.0.5"
33#define IBMVFC_DRIVER_DATE "(November 14, 2008)" 33#define IBMVFC_DRIVER_DATE "(March 19, 2009)"
34 34
35#define IBMVFC_DEFAULT_TIMEOUT 60 35#define IBMVFC_DEFAULT_TIMEOUT 60
36#define IBMVFC_ADISC_CANCEL_TIMEOUT 45
37#define IBMVFC_ADISC_TIMEOUT 15
38#define IBMVFC_ADISC_PLUS_CANCEL_TIMEOUT \
39 (IBMVFC_ADISC_TIMEOUT + IBMVFC_ADISC_CANCEL_TIMEOUT)
36#define IBMVFC_INIT_TIMEOUT 120 40#define IBMVFC_INIT_TIMEOUT 120
37#define IBMVFC_MAX_REQUESTS_DEFAULT 100 41#define IBMVFC_MAX_REQUESTS_DEFAULT 100
38 42
@@ -53,9 +57,9 @@
53 * Ensure we have resources for ERP and initialization: 57 * Ensure we have resources for ERP and initialization:
54 * 1 for ERP 58 * 1 for ERP
55 * 1 for initialization 59 * 1 for initialization
56 * 1 for each discovery thread 60 * 2 for each discovery thread
57 */ 61 */
58#define IBMVFC_NUM_INTERNAL_REQ (1 + 1 + disc_threads) 62#define IBMVFC_NUM_INTERNAL_REQ (1 + 1 + (disc_threads * 2))
59 63
60#define IBMVFC_MAD_SUCCESS 0x00 64#define IBMVFC_MAD_SUCCESS 0x00
61#define IBMVFC_MAD_NOT_SUPPORTED 0xF1 65#define IBMVFC_MAD_NOT_SUPPORTED 0xF1
@@ -585,10 +589,12 @@ struct ibmvfc_target {
585 enum ibmvfc_target_action action; 589 enum ibmvfc_target_action action;
586 int need_login; 590 int need_login;
587 int init_retries; 591 int init_retries;
592 u32 cancel_key;
588 struct ibmvfc_service_parms service_parms; 593 struct ibmvfc_service_parms service_parms;
589 struct ibmvfc_service_parms service_parms_change; 594 struct ibmvfc_service_parms service_parms_change;
590 struct fc_rport_identifiers ids; 595 struct fc_rport_identifiers ids;
591 void (*job_step) (struct ibmvfc_target *); 596 void (*job_step) (struct ibmvfc_target *);
597 struct timer_list timer;
592 struct kref kref; 598 struct kref kref;
593}; 599};
594 600
@@ -672,6 +678,7 @@ struct ibmvfc_host {
672 int task_set; 678 int task_set;
673 int init_retries; 679 int init_retries;
674 int discovery_threads; 680 int discovery_threads;
681 int abort_threads;
675 int client_migrated; 682 int client_migrated;
676 int reinit; 683 int reinit;
677 int delay_init; 684 int delay_init;
@@ -684,6 +691,7 @@ struct ibmvfc_host {
684 char partition_name[97]; 691 char partition_name[97];
685 void (*job_step) (struct ibmvfc_host *); 692 void (*job_step) (struct ibmvfc_host *);
686 struct task_struct *work_thread; 693 struct task_struct *work_thread;
694 struct tasklet_struct tasklet;
687 wait_queue_head_t init_wait_q; 695 wait_queue_head_t init_wait_q;
688 wait_queue_head_t work_wait_q; 696 wait_queue_head_t work_wait_q;
689}; 697};
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
index a5725f3b7ce..f555ae99ad4 100644
--- a/drivers/scsi/libfc/fc_fcp.c
+++ b/drivers/scsi/libfc/fc_fcp.c
@@ -41,7 +41,7 @@
41 41
42MODULE_AUTHOR("Open-FCoE.org"); 42MODULE_AUTHOR("Open-FCoE.org");
43MODULE_DESCRIPTION("libfc"); 43MODULE_DESCRIPTION("libfc");
44MODULE_LICENSE("GPL"); 44MODULE_LICENSE("GPL v2");
45 45
46static int fc_fcp_debug; 46static int fc_fcp_debug;
47 47
@@ -407,10 +407,12 @@ static void fc_fcp_recv_data(struct fc_fcp_pkt *fsp, struct fc_frame *fp)
407 407
408 if (~crc != le32_to_cpu(fr_crc(fp))) { 408 if (~crc != le32_to_cpu(fr_crc(fp))) {
409crc_err: 409crc_err:
410 stats = lp->dev_stats[smp_processor_id()]; 410 stats = fc_lport_get_stats(lp);
411 stats->ErrorFrames++; 411 stats->ErrorFrames++;
412 /* FIXME - per cpu count, not total count! */
412 if (stats->InvalidCRCCount++ < 5) 413 if (stats->InvalidCRCCount++ < 5)
413 FC_DBG("CRC error on data frame\n"); 414 printk(KERN_WARNING "CRC error on data frame for port (%6x)\n",
415 fc_host_port_id(lp->host));
414 /* 416 /*
415 * Assume the frame is total garbage. 417 * Assume the frame is total garbage.
416 * We may have copied it over the good part 418 * We may have copied it over the good part
@@ -1752,7 +1754,7 @@ int fc_queuecommand(struct scsi_cmnd *sc_cmd, void (*done)(struct scsi_cmnd *))
1752 /* 1754 /*
1753 * setup the data direction 1755 * setup the data direction
1754 */ 1756 */
1755 stats = lp->dev_stats[smp_processor_id()]; 1757 stats = fc_lport_get_stats(lp);
1756 if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) { 1758 if (sc_cmd->sc_data_direction == DMA_FROM_DEVICE) {
1757 fsp->req_flags = FC_SRB_READ; 1759 fsp->req_flags = FC_SRB_READ;
1758 stats->InputRequests++; 1760 stats->InputRequests++;
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 7ef44501ecc..b8178ef398d 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -267,10 +267,10 @@ EXPORT_SYMBOL(fc_get_host_speed);
267 267
268struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost) 268struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost)
269{ 269{
270 int i;
271 struct fc_host_statistics *fcoe_stats; 270 struct fc_host_statistics *fcoe_stats;
272 struct fc_lport *lp = shost_priv(shost); 271 struct fc_lport *lp = shost_priv(shost);
273 struct timespec v0, v1; 272 struct timespec v0, v1;
273 unsigned int cpu;
274 274
275 fcoe_stats = &lp->host_stats; 275 fcoe_stats = &lp->host_stats;
276 memset(fcoe_stats, 0, sizeof(struct fc_host_statistics)); 276 memset(fcoe_stats, 0, sizeof(struct fc_host_statistics));
@@ -279,10 +279,11 @@ struct fc_host_statistics *fc_get_host_stats(struct Scsi_Host *shost)
279 jiffies_to_timespec(lp->boot_time, &v1); 279 jiffies_to_timespec(lp->boot_time, &v1);
280 fcoe_stats->seconds_since_last_reset = (v0.tv_sec - v1.tv_sec); 280 fcoe_stats->seconds_since_last_reset = (v0.tv_sec - v1.tv_sec);
281 281
282 for_each_online_cpu(i) { 282 for_each_possible_cpu(cpu) {
283 struct fcoe_dev_stats *stats = lp->dev_stats[i]; 283 struct fcoe_dev_stats *stats;
284 if (stats == NULL) 284
285 continue; 285 stats = per_cpu_ptr(lp->dev_stats, cpu);
286
286 fcoe_stats->tx_frames += stats->TxFrames; 287 fcoe_stats->tx_frames += stats->TxFrames;
287 fcoe_stats->tx_words += stats->TxWords; 288 fcoe_stats->tx_words += stats->TxWords;
288 fcoe_stats->rx_frames += stats->RxFrames; 289 fcoe_stats->rx_frames += stats->RxFrames;
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index dfaa8adf099..68962835916 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1999,8 +1999,10 @@ iscsi_pool_init(struct iscsi_pool *q, int max, void ***items, int item_size)
1999 1999
2000 q->queue = kfifo_init((void*)q->pool, max * sizeof(void*), 2000 q->queue = kfifo_init((void*)q->pool, max * sizeof(void*),
2001 GFP_KERNEL, NULL); 2001 GFP_KERNEL, NULL);
2002 if (q->queue == ERR_PTR(-ENOMEM)) 2002 if (IS_ERR(q->queue)) {
2003 q->queue = NULL;
2003 goto enomem; 2004 goto enomem;
2005 }
2004 2006
2005 for (i = 0; i < max; i++) { 2007 for (i = 0; i < max; i++) {
2006 q->pool[i] = kzalloc(item_size, GFP_KERNEL); 2008 q->pool[i] = kzalloc(item_size, GFP_KERNEL);
diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c
index 552f58b655d..2a5f0777148 100644
--- a/drivers/scsi/osd/osd_initiator.c
+++ b/drivers/scsi/osd/osd_initiator.c
@@ -338,20 +338,6 @@ struct osd_request *osd_start_request(struct osd_dev *dev, gfp_t gfp)
338} 338}
339EXPORT_SYMBOL(osd_start_request); 339EXPORT_SYMBOL(osd_start_request);
340 340
341/*
342 * If osd_finalize_request() was called but the request was not executed through
343 * the block layer, then we must release BIOs.
344 */
345static void _abort_unexecuted_bios(struct request *rq)
346{
347 struct bio *bio;
348
349 while ((bio = rq->bio) != NULL) {
350 rq->bio = bio->bi_next;
351 bio_endio(bio, 0);
352 }
353}
354
355static void _osd_free_seg(struct osd_request *or __unused, 341static void _osd_free_seg(struct osd_request *or __unused,
356 struct _osd_req_data_segment *seg) 342 struct _osd_req_data_segment *seg)
357{ 343{
@@ -363,9 +349,30 @@ static void _osd_free_seg(struct osd_request *or __unused,
363 seg->alloc_size = 0; 349 seg->alloc_size = 0;
364} 350}
365 351
352static void _put_request(struct request *rq , bool is_async)
353{
354 if (is_async) {
355 WARN_ON(rq->bio);
356 __blk_put_request(rq->q, rq);
357 } else {
358 /*
359 * If osd_finalize_request() was called but the request was not
360 * executed through the block layer, then we must release BIOs.
361 * TODO: Keep error code in or->async_error. Need to audit all
362 * code paths.
363 */
364 if (unlikely(rq->bio))
365 blk_end_request(rq, -ENOMEM, blk_rq_bytes(rq));
366 else
367 blk_put_request(rq);
368 }
369}
370
366void osd_end_request(struct osd_request *or) 371void osd_end_request(struct osd_request *or)
367{ 372{
368 struct request *rq = or->request; 373 struct request *rq = or->request;
374 /* IMPORTANT: make sure this agrees with osd_execute_request_async */
375 bool is_async = (or->request->end_io_data == or);
369 376
370 _osd_free_seg(or, &or->set_attr); 377 _osd_free_seg(or, &or->set_attr);
371 _osd_free_seg(or, &or->enc_get_attr); 378 _osd_free_seg(or, &or->enc_get_attr);
@@ -373,12 +380,11 @@ void osd_end_request(struct osd_request *or)
373 380
374 if (rq) { 381 if (rq) {
375 if (rq->next_rq) { 382 if (rq->next_rq) {
376 _abort_unexecuted_bios(rq->next_rq); 383 _put_request(rq->next_rq, is_async);
377 blk_put_request(rq->next_rq); 384 rq->next_rq = NULL;
378 } 385 }
379 386
380 _abort_unexecuted_bios(rq); 387 _put_request(rq, is_async);
381 blk_put_request(rq);
382 } 388 }
383 _osd_request_free(or); 389 _osd_request_free(or);
384} 390}
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
index f8b1a749958..f644c9571ea 100644
--- a/drivers/scsi/osd/osd_uld.c
+++ b/drivers/scsi/osd/osd_uld.c
@@ -345,10 +345,6 @@ static int osd_probe(struct device *dev)
345 } 345 }
346 346
347 dev_set_drvdata(oud->class_member, oud); 347 dev_set_drvdata(oud->class_member, oud);
348 error = sysfs_create_link(&scsi_device->sdev_gendev.kobj,
349 &oud->class_member->kobj, osd_symlink);
350 if (error)
351 OSD_ERR("warning: unable to make symlink\n");
352 348
353 OSD_INFO("osd_probe %s\n", disk->disk_name); 349 OSD_INFO("osd_probe %s\n", disk->disk_name);
354 return 0; 350 return 0;
@@ -377,8 +373,6 @@ static int osd_remove(struct device *dev)
377 scsi_device); 373 scsi_device);
378 } 374 }
379 375
380 sysfs_remove_link(&oud->od.scsi_device->sdev_gendev.kobj, osd_symlink);
381
382 if (oud->class_member) 376 if (oud->class_member)
383 device_destroy(osd_sysfs_class, 377 device_destroy(osd_sysfs_class,
384 MKDEV(SCSI_OSD_MAJOR, oud->minor)); 378 MKDEV(SCSI_OSD_MAJOR, oud->minor));
diff --git a/drivers/scsi/ql1040_fw.h b/drivers/scsi/ql1040_fw.h
deleted file mode 100644
index aaf9284a8b7..00000000000
--- a/drivers/scsi/ql1040_fw.h
+++ /dev/null
@@ -1,2130 +0,0 @@
1/**************************************************************************
2 * QLOGIC LINUX SOFTWARE
3 *
4 * Copyright (C) 2004 QLogic Corporation
5 * (www.qlogic.com)
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2, or (at your option) any
10 * later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 *************************************************************************/
18
19/************************************************************************
20 * *
21 * --- ISP1040 Initiator/Target Firmware --- *
22 * 32 LUN Support *
23 * *
24 ************************************************************************
25 */
26
27/*
28 * Firmware Version 7.65.06 (14:38 Jan 07, 2002)
29 */
30
31static unsigned char firmware_version[] = {7,65,6};
32
33#define FW_VERSION_STRING "7.65.06"
34
35static unsigned short risc_code_addr01 = 0x1000 ;
36
37static unsigned short risc_code01[] = {
38 0x0078, 0x103a, 0x0000, 0x4158, 0x0000, 0x2043, 0x4f50, 0x5952,
39 0x4947, 0x4854, 0x2031, 0x3939, 0x3520, 0x514c, 0x4f47, 0x4943,
40 0x2043, 0x4f52, 0x504f, 0x5241, 0x5449, 0x4f4e, 0x2049, 0x5350,
41 0x3130, 0x3230, 0x2049, 0x2f54, 0x2046, 0x6972, 0x6d77, 0x6172,
42 0x6520, 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030, 0x372e, 0x3635,
43 0x2020, 0x2043, 0x7573, 0x746f, 0x6d65, 0x7220, 0x4e6f, 0x2e20,
44 0x3030, 0x2050, 0x726f, 0x6475, 0x6374, 0x204e, 0x6f2e, 0x2020,
45 0x3031, 0x2024, 0x2001, 0x04fd, 0x2004, 0xa082, 0x0005, 0x0048,
46 0x1045, 0x0038, 0x104b, 0x0078, 0x1047, 0x0028, 0x104b, 0x20b9,
47 0x1212, 0x0078, 0x104d, 0x20b9, 0x2222, 0x20c1, 0x0008, 0x2071,
48 0x0010, 0x70c3, 0x0004, 0x20c9, 0x78ff, 0x2089, 0x1186, 0x70c7,
49 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020, 0x70d3, 0x0007, 0x3f00,
50 0x70d6, 0x20c1, 0x0008, 0x2019, 0x0000, 0x2009, 0xfeff, 0x2100,
51 0x200b, 0xa5a5, 0xa1ec, 0x7fff, 0x2d64, 0x206b, 0x0a0a, 0xaddc,
52 0x3fff, 0x2b54, 0x205b, 0x5050, 0x2114, 0xa286, 0xa5a5, 0x0040,
53 0x10bf, 0xa386, 0x000f, 0x0040, 0x1085, 0x2c6a, 0x2a5a, 0x20c1,
54 0x0000, 0x2019, 0x000f, 0x0078, 0x1065, 0x2c6a, 0x2a5a, 0x20c1,
55 0x0008, 0x2009, 0x7fff, 0x2148, 0x2944, 0x204b, 0x0a0a, 0xa9bc,
56 0x3fff, 0x2734, 0x203b, 0x5050, 0x2114, 0xa286, 0x0a0a, 0x0040,
57 0x10a9, 0x284a, 0x263a, 0x20c1, 0x0004, 0x2009, 0x3fff, 0x2134,
58 0x200b, 0x5050, 0x2114, 0xa286, 0x5050, 0x0040, 0x10aa, 0x0078,
59 0x118e, 0x284a, 0x263a, 0x98c0, 0xa188, 0x1000, 0x212c, 0x200b,
60 0xa5a5, 0x2114, 0xa286, 0xa5a5, 0x0040, 0x10bc, 0x250a, 0xa18a,
61 0x1000, 0x98c1, 0x0078, 0x10c1, 0x250a, 0x0078, 0x10c1, 0x2c6a,
62 0x2a5a, 0x2130, 0xa18a, 0x0040, 0x2128, 0xa1a2, 0x5200, 0x8424,
63 0x8424, 0x8424, 0x8424, 0x8424, 0x8424, 0xa192, 0x7900, 0x2009,
64 0x0000, 0x2001, 0x0031, 0x1078, 0x1d26, 0x2218, 0x2079, 0x5200,
65 0x2fa0, 0x2408, 0x2011, 0x0000, 0x20a9, 0x0040, 0x42a4, 0x8109,
66 0x00c0, 0x10dc, 0x7ef2, 0x8528, 0x7de6, 0x7cea, 0x7bee, 0x7883,
67 0x0000, 0x2031, 0x0030, 0x78cf, 0x0101, 0x780b, 0x0002, 0x780f,
68 0x0002, 0x784f, 0x0003, 0x2069, 0x5240, 0x2001, 0x04fd, 0x2004,
69 0xa082, 0x0005, 0x0048, 0x1104, 0x0038, 0x1100, 0x0078, 0x1108,
70 0x681b, 0x003c, 0x0078, 0x110a, 0x00a8, 0x1108, 0x681b, 0x003c,
71 0x681b, 0x0028, 0x6807, 0x0007, 0x680b, 0x00fa, 0x680f, 0x0008,
72 0x6813, 0x0005, 0x6823, 0x0000, 0x6827, 0x0006, 0x6817, 0x0008,
73 0x682b, 0x0000, 0x681f, 0x0019, 0x2069, 0x5480, 0x2011, 0x0020,
74 0x2009, 0x0010, 0x680b, 0x080c, 0x680f, 0x0019, 0x6803, 0xfd00,
75 0x6807, 0x0018, 0x6a1a, 0x2d00, 0xa0e8, 0x0008, 0xa290, 0x0004,
76 0x8109, 0x00c0, 0x1122, 0x2069, 0x5500, 0x2009, 0x0002, 0x20a9,
77 0x0100, 0x6837, 0x0000, 0x680b, 0x0040, 0x7bf0, 0xa386, 0xfeff,
78 0x00c0, 0x1148, 0x6817, 0x0100, 0x681f, 0x0064, 0x0078, 0x114c,
79 0x6817, 0x0064, 0x681f, 0x0002, 0xade8, 0x0010, 0x0070, 0x1152,
80 0x0078, 0x1139, 0x8109, 0x00c0, 0x1137, 0x1078, 0x22a7, 0x1078,
81 0x493d, 0x1078, 0x19b5, 0x1078, 0x4e33, 0x3200, 0xa085, 0x000d,
82 0x2090, 0x70c3, 0x0000, 0x0090, 0x116c, 0x70c0, 0xa086, 0x0002,
83 0x00c0, 0x116c, 0x1078, 0x1284, 0x1078, 0x1196, 0x78cc, 0xa005,
84 0x00c0, 0x117a, 0x1078, 0x1d4f, 0x0010, 0x1180, 0x0068, 0x1180,
85 0x1078, 0x2186, 0x0010, 0x1180, 0x0068, 0x1180, 0x1078, 0x1ab9,
86 0x00e0, 0x116c, 0x1078, 0x4cba, 0x0078, 0x116c, 0x118e, 0x1190,
87 0x24ac, 0x24ac, 0x49be, 0x49be, 0x24ac, 0x24ac, 0x0078, 0x118e,
88 0x0078, 0x1190, 0x0078, 0x1192, 0x0078, 0x1194, 0x0068, 0x1201,
89 0x2061, 0x0000, 0x6018, 0xa084, 0x0001, 0x00c0, 0x1201, 0x7814,
90 0xa005, 0x00c0, 0x11a7, 0x0010, 0x1202, 0x0078, 0x1201, 0x2009,
91 0x525b, 0x2104, 0xa005, 0x00c0, 0x1201, 0x2009, 0x5264, 0x200b,
92 0x0000, 0x7914, 0xa186, 0x0042, 0x00c0, 0x11cc, 0x7816, 0x2009,
93 0x5262, 0x2164, 0x200b, 0x0000, 0x6018, 0x70c6, 0x6014, 0x70ca,
94 0x611c, 0xa18c, 0xff00, 0x6020, 0xa084, 0x00ff, 0xa105, 0x70ce,
95 0x1078, 0x199a, 0x0078, 0x11ff, 0x7814, 0xa086, 0x0018, 0x00c0,
96 0x11d3, 0x1078, 0x1678, 0x7817, 0x0000, 0x2009, 0x5262, 0x2104,
97 0xa065, 0x0040, 0x11ef, 0x0c7e, 0x609c, 0x2060, 0x1078, 0x1a17,
98 0x0c7f, 0x609f, 0x0000, 0x1078, 0x174e, 0x2009, 0x000c, 0x6007,
99 0x0103, 0x1078, 0x1976, 0x00c0, 0x11fb, 0x1078, 0x199a, 0x2009,
100 0x5262, 0x200b, 0x0000, 0x2009, 0x525c, 0x2104, 0x200b, 0x0000,
101 0xa005, 0x0040, 0x11ff, 0x2001, 0x4005, 0x0078, 0x1286, 0x0078,
102 0x1284, 0x007c, 0x70c3, 0x0000, 0x70c7, 0x0000, 0x70cb, 0x0000,
103 0x70cf, 0x0000, 0x70c0, 0xa0bc, 0xffc0, 0x00c0, 0x1252, 0x2038,
104 0x0079, 0x1212, 0x1284, 0x12e5, 0x12a9, 0x12fe, 0x130d, 0x1313,
105 0x12a0, 0x1766, 0x1317, 0x1298, 0x12ad, 0x12af, 0x12b1, 0x12b3,
106 0x176b, 0x1298, 0x1329, 0x1365, 0x1690, 0x1760, 0x12b5, 0x15af,
107 0x15cb, 0x15e7, 0x1612, 0x1568, 0x1576, 0x158a, 0x159e, 0x13e9,
108 0x1298, 0x1397, 0x139d, 0x13a2, 0x13a7, 0x13ad, 0x13b2, 0x13b7,
109 0x13bc, 0x13c1, 0x13c5, 0x13da, 0x13e6, 0x1298, 0x1298, 0x1298,
110 0x1298, 0x13f5, 0x13fe, 0x140d, 0x1451, 0x145b, 0x1462, 0x14a8,
111 0x14b7, 0x14c6, 0x14d8, 0x1548, 0x1558, 0x1298, 0x1298, 0x1298,
112 0x1298, 0x155d, 0xa0bc, 0xffa0, 0x00c0, 0x1298, 0x2038, 0xa084,
113 0x001f, 0x0079, 0x125b, 0x17a4, 0x17a7, 0x17b7, 0x1298, 0x1298,
114 0x1931, 0x194e, 0x1298, 0x1298, 0x1298, 0x1952, 0x195a, 0x1298,
115 0x1298, 0x1298, 0x1298, 0x12db, 0x12f4, 0x131f, 0x135b, 0x1686,
116 0x1782, 0x1796, 0x1298, 0x1847, 0x1960, 0x190d, 0x1917, 0x191b,
117 0x1929, 0x1298, 0x1298, 0x72ca, 0x71c6, 0x2001, 0x4006, 0x0078,
118 0x1286, 0x73ce, 0x72ca, 0x71c6, 0x2001, 0x4000, 0x70c2, 0x0068,
119 0x1287, 0x2061, 0x0000, 0x601b, 0x0001, 0x2091, 0x5000, 0x00e0,
120 0x128f, 0x00e0, 0x1291, 0x0068, 0x1291, 0x2091, 0x4080, 0x007c,
121 0x70c3, 0x4001, 0x0078, 0x1287, 0x70c3, 0x4006, 0x0078, 0x1287,
122 0x2099, 0x0041, 0x20a1, 0x0041, 0x20a9, 0x0005, 0x53a3, 0x0078,
123 0x1284, 0x70c4, 0x70c3, 0x0004, 0x007a, 0x0078, 0x1284, 0x0078,
124 0x1284, 0x0078, 0x1284, 0x0078, 0x1284, 0x2091, 0x8000, 0x70c3,
125 0x0000, 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020, 0x70d3,
126 0x0007, 0x3f00, 0x70d6, 0x2079, 0x0000, 0x781b, 0x0001, 0x2031,
127 0x0030, 0x2059, 0x1000, 0x2029, 0x0457, 0x2051, 0x0470, 0x2061,
128 0x0472, 0x20b9, 0xffff, 0x20c1, 0x0000, 0x2091, 0x5000, 0x2091,
129 0x4080, 0x0078, 0x0455, 0x1078, 0x1bc4, 0x00c0, 0x129c, 0x75d8,
130 0x74dc, 0x75da, 0x74de, 0x0078, 0x12e8, 0x2029, 0x0000, 0x2520,
131 0x71d0, 0x73c8, 0x72cc, 0x70c4, 0x1078, 0x1afe, 0x0040, 0x1284,
132 0x70c3, 0x4002, 0x0078, 0x1284, 0x1078, 0x1bc4, 0x00c0, 0x129c,
133 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0078, 0x1301, 0x2029, 0x0000,
134 0x2520, 0x71d0, 0x73c8, 0x72cc, 0x70c4, 0x1078, 0x1b5e, 0x0040,
135 0x1284, 0x70c3, 0x4002, 0x0078, 0x1284, 0x71c4, 0x70c8, 0x2114,
136 0x200a, 0x0078, 0x1282, 0x71c4, 0x2114, 0x0078, 0x1282, 0x70c7,
137 0x0007, 0x70cb, 0x0041, 0x70cf, 0x0006, 0x0078, 0x1284, 0x1078,
138 0x1bc4, 0x00c0, 0x129c, 0x75d8, 0x76dc, 0x75da, 0x76de, 0x0078,
139 0x132c, 0x2029, 0x0000, 0x2530, 0x70c4, 0x72c8, 0x73cc, 0x74d0,
140 0x70c6, 0x72ca, 0x73ce, 0x74d2, 0xa005, 0x0040, 0x1355, 0xa40a,
141 0x0040, 0x133c, 0x00c8, 0x1346, 0x8001, 0x7892, 0xa084, 0xfc00,
142 0x0040, 0x134a, 0x78cc, 0xa085, 0x0001, 0x78ce, 0x2001, 0x4005,
143 0x0078, 0x1286, 0x7a9a, 0x7b9e, 0x7da2, 0x7ea6, 0x7c96, 0x78cc,
144 0xa084, 0xfffc, 0x78ce, 0x0078, 0x1359, 0x78cc, 0xa085, 0x0001,
145 0x78ce, 0x0078, 0x1284, 0x1078, 0x1bc4, 0x00c0, 0x129c, 0x75d8,
146 0x76dc, 0x75da, 0x76de, 0x0078, 0x1368, 0x2029, 0x0000, 0x2530,
147 0x70c4, 0x72c8, 0x73cc, 0x74d4, 0x70c6, 0x72ca, 0x73ce, 0x74d6,
148 0xa005, 0x0040, 0x1391, 0xa40a, 0x0040, 0x1378, 0x00c8, 0x1382,
149 0x8001, 0x78ae, 0xa084, 0xfc00, 0x0040, 0x1386, 0x78cc, 0xa085,
150 0x0100, 0x78ce, 0x2001, 0x4005, 0x0078, 0x1286, 0x7ab6, 0x7bba,
151 0x7dbe, 0x7ec2, 0x7cb2, 0x78cc, 0xa084, 0xfcff, 0x78ce, 0x0078,
152 0x1395, 0x78cc, 0xa085, 0x0100, 0x78ce, 0x0078, 0x1284, 0x2009,
153 0x5261, 0x210c, 0x7aec, 0x0078, 0x1282, 0x2009, 0x5241, 0x210c,
154 0x0078, 0x1283, 0x2009, 0x5242, 0x210c, 0x0078, 0x1283, 0x2061,
155 0x5240, 0x610c, 0x6210, 0x0078, 0x1282, 0x2009, 0x5245, 0x210c,
156 0x0078, 0x1283, 0x2009, 0x5246, 0x210c, 0x0078, 0x1283, 0x2009,
157 0x5248, 0x210c, 0x0078, 0x1283, 0x2009, 0x5249, 0x210c, 0x0078,
158 0x1283, 0x7908, 0x7a0c, 0x0078, 0x1282, 0x71c4, 0x8107, 0xa084,
159 0x000f, 0x8003, 0x8003, 0x8003, 0xa0e8, 0x5480, 0x6a00, 0x6804,
160 0xa084, 0x0008, 0x0040, 0x13d7, 0x6b08, 0x0078, 0x13d8, 0x6b0c,
161 0x0078, 0x1281, 0x77c4, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6b1c,
162 0x6a14, 0x2091, 0x8001, 0x2708, 0x0078, 0x1281, 0x794c, 0x0078,
163 0x1283, 0x77c4, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6908, 0x6a18,
164 0x6b10, 0x2091, 0x8001, 0x0078, 0x1281, 0x71c4, 0xa182, 0x0010,
165 0x00c8, 0x127c, 0x1078, 0x237f, 0x0078, 0x1281, 0x71c4, 0xa182,
166 0x0010, 0x00c8, 0x127c, 0x2011, 0x5241, 0x2204, 0x007e, 0x2112,
167 0x1078, 0x2338, 0x017f, 0x0078, 0x1283, 0x71c4, 0x2019, 0x0100,
168 0x2304, 0xa082, 0x0006, 0x0048, 0x141b, 0x2011, 0x1449, 0x20a9,
169 0x0008, 0x0078, 0x141f, 0x2011, 0x1441, 0x20a9, 0x0008, 0x2204,
170 0xa106, 0x0040, 0x142a, 0x8210, 0x0070, 0x1428, 0x0078, 0x141f,
171 0x0078, 0x127c, 0x2304, 0xa082, 0x0006, 0x0048, 0x1433, 0xa292,
172 0x1449, 0x0078, 0x1435, 0xa292, 0x1441, 0x027e, 0x2011, 0x5242,
173 0x2204, 0x2112, 0x017f, 0x007e, 0x1078, 0x2344, 0x017f, 0x0078,
174 0x1283, 0x03e8, 0x00fa, 0x01f4, 0x02ee, 0x0064, 0x0019, 0x0032,
175 0x004b, 0x03e8, 0x00fa, 0x01f4, 0x02ee, 0x0004, 0x0001, 0x0002,
176 0x0003, 0x2061, 0x5240, 0x610c, 0x6210, 0x70c4, 0x600e, 0x70c8,
177 0x6012, 0x0078, 0x1282, 0x2061, 0x5240, 0x6114, 0x70c4, 0x6016,
178 0x0078, 0x1283, 0x2061, 0x5240, 0x71c4, 0x2011, 0x0004, 0x601f,
179 0x0019, 0x2019, 0x1212, 0xa186, 0x0028, 0x0040, 0x1483, 0x2011,
180 0x0005, 0x601f, 0x0019, 0x2019, 0x1212, 0xa186, 0x0032, 0x0040,
181 0x1483, 0x2011, 0x0006, 0x601f, 0x000c, 0x2019, 0x2222, 0xa186,
182 0x003c, 0x00c0, 0x127c, 0x6018, 0x007e, 0x611a, 0x7800, 0xa084,
183 0x0001, 0x00c0, 0x149e, 0x2001, 0x04fd, 0x2004, 0xa082, 0x0005,
184 0x0048, 0x1496, 0x0038, 0x149a, 0x0078, 0x149e, 0x0028, 0x149a,
185 0x0078, 0x149e, 0x2019, 0x2222, 0x0078, 0x14a0, 0x2019, 0x1212,
186 0x23b8, 0x1078, 0x2355, 0x1078, 0x4e33, 0x017f, 0x0078, 0x1283,
187 0x71c4, 0xa184, 0xffcf, 0x00c0, 0x127c, 0x2011, 0x5248, 0x2204,
188 0x2112, 0x007e, 0x1078, 0x2377, 0x017f, 0x0078, 0x1283, 0x71c4,
189 0xa182, 0x0010, 0x00c8, 0x127c, 0x2011, 0x5249, 0x2204, 0x007e,
190 0x2112, 0x1078, 0x2366, 0x017f, 0x0078, 0x1283, 0x71c4, 0x72c8,
191 0xa184, 0xfffd, 0x00c0, 0x127b, 0xa284, 0xfffd, 0x00c0, 0x127b,
192 0x2100, 0x7908, 0x780a, 0x2200, 0x7a0c, 0x780e, 0x0078, 0x1282,
193 0x71c4, 0x8107, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa0e8,
194 0x5480, 0x2019, 0x0000, 0x72c8, 0xd2bc, 0x0040, 0x14e9, 0xa39d,
195 0x0010, 0xd2b4, 0x0040, 0x14ee, 0xa39d, 0x0008, 0x6800, 0x007e,
196 0xa226, 0x0040, 0x1511, 0x6a02, 0xa484, 0x2000, 0x0040, 0x14fa,
197 0xa39d, 0x0010, 0xa484, 0x1000, 0x0040, 0x1500, 0xa39d, 0x0008,
198 0xa484, 0x4000, 0x0040, 0x1511, 0x810f, 0xa284, 0x4000, 0x0040,
199 0x150d, 0x1078, 0x2399, 0x0078, 0x1511, 0x1078, 0x238b, 0x0078,
200 0x1511, 0x72cc, 0x6808, 0xa206, 0x0040, 0x1540, 0xa2a4, 0x00ff,
201 0x2061, 0x5240, 0x6118, 0xa186, 0x0028, 0x0040, 0x1527, 0xa186,
202 0x0032, 0x0040, 0x152d, 0xa186, 0x003c, 0x0040, 0x1533, 0xa482,
203 0x0064, 0x0048, 0x153d, 0x0078, 0x1537, 0xa482, 0x0050, 0x0048,
204 0x153d, 0x0078, 0x1537, 0xa482, 0x0043, 0x0048, 0x153d, 0x71c4,
205 0x71c6, 0x027f, 0x72ca, 0x0078, 0x127d, 0x6a0a, 0xa39d, 0x000a,
206 0x6804, 0xa305, 0x6806, 0x027f, 0x6b0c, 0x71c4, 0x0078, 0x1281,
207 0x77c4, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6a14, 0x6b1c, 0x2091,
208 0x8001, 0x70c8, 0x6816, 0x70cc, 0x681e, 0x2708, 0x0078, 0x1281,
209 0x70c4, 0x794c, 0x784e, 0x0078, 0x1283, 0x71c4, 0x72c8, 0x73cc,
210 0xa182, 0x0010, 0x00c8, 0x127c, 0x1078, 0x23a7, 0x0078, 0x1281,
211 0x77c4, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6a08, 0xa295, 0x0002,
212 0x6a0a, 0x2091, 0x8001, 0x2708, 0x0078, 0x1282, 0x77c4, 0x1078,
213 0x19c5, 0x2091, 0x8000, 0x6a08, 0xa294, 0xfff9, 0x6a0a, 0x6804,
214 0xa005, 0x0040, 0x1585, 0x1078, 0x226f, 0x2091, 0x8001, 0x2708,
215 0x0078, 0x1282, 0x77c4, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6a08,
216 0xa295, 0x0004, 0x6a0a, 0x6804, 0xa005, 0x0040, 0x1599, 0x1078,
217 0x226f, 0x2091, 0x8001, 0x2708, 0x0078, 0x1282, 0x77c4, 0x2041,
218 0x0001, 0x2049, 0x0005, 0x2051, 0x0020, 0x2091, 0x8000, 0x1078,
219 0x19d2, 0x2091, 0x8001, 0x2708, 0x6a08, 0x0078, 0x1282, 0x77c4,
220 0x72c8, 0x73cc, 0x77c6, 0x72ca, 0x73ce, 0x1078, 0x1a52, 0x00c0,
221 0x15c7, 0x6818, 0xa005, 0x0040, 0x15c7, 0x2708, 0x1078, 0x23b7,
222 0x00c0, 0x15c7, 0x7817, 0x0015, 0x2091, 0x8001, 0x007c, 0x2091,
223 0x8001, 0x0078, 0x1284, 0x77c4, 0x77c6, 0x2041, 0x0021, 0x2049,
224 0x0005, 0x2051, 0x0020, 0x2091, 0x8000, 0x1078, 0x19d2, 0x2061,
225 0x5240, 0x606f, 0x0003, 0x6782, 0x6093, 0x000f, 0x6073, 0x0000,
226 0x7817, 0x0016, 0x1078, 0x226f, 0x2091, 0x8001, 0x007c, 0x77c8,
227 0x77ca, 0x77c4, 0x77c6, 0xa7bc, 0xff00, 0x2091, 0x8000, 0x2061,
228 0x5240, 0x606f, 0x0002, 0x6073, 0x0000, 0x6782, 0x6093, 0x000f,
229 0x7817, 0x0017, 0x1078, 0x226f, 0x2091, 0x8001, 0x2041, 0x0021,
230 0x2049, 0x0004, 0x2051, 0x0010, 0x2091, 0x8000, 0x1078, 0x19d2,
231 0x70c8, 0x6836, 0x8738, 0xa784, 0x001f, 0x00c0, 0x1606, 0x2091,
232 0x8001, 0x007c, 0x78cc, 0xa084, 0x0003, 0x00c0, 0x1636, 0x2039,
233 0x0000, 0x2041, 0x0021, 0x2049, 0x0004, 0x2051, 0x0008, 0x1078,
234 0x19c5, 0x2091, 0x8000, 0x6808, 0xa80d, 0x690a, 0x2091, 0x8001,
235 0x8738, 0xa784, 0x001f, 0x00c0, 0x161f, 0xa7bc, 0xff00, 0x873f,
236 0x8738, 0x873f, 0xa784, 0x0f00, 0x00c0, 0x161f, 0x2091, 0x8000,
237 0x2069, 0x0100, 0x6830, 0xa084, 0x0040, 0x0040, 0x165f, 0x684b,
238 0x0004, 0x20a9, 0x0014, 0x6848, 0xa084, 0x0004, 0x0040, 0x164c,
239 0x0070, 0x164c, 0x0078, 0x1643, 0x684b, 0x0009, 0x20a9, 0x0014,
240 0x6848, 0xa084, 0x0001, 0x0040, 0x1659, 0x0070, 0x1659, 0x0078,
241 0x1650, 0x20a9, 0x00fa, 0x0070, 0x165f, 0x0078, 0x165b, 0x2079,
242 0x5200, 0x7817, 0x0018, 0x2061, 0x5240, 0x606f, 0x0001, 0x6073,
243 0x0000, 0x6093, 0x000f, 0x78cc, 0xa085, 0x0002, 0x78ce, 0x6808,
244 0xa084, 0xfffd, 0x680a, 0x681b, 0x0048, 0x2091, 0x8001, 0x007c,
245 0x78cc, 0xa084, 0xfffd, 0x78ce, 0xa084, 0x0001, 0x00c0, 0x1682,
246 0x1078, 0x1a9c, 0x71c4, 0x71c6, 0x794a, 0x007c, 0x1078, 0x1bc4,
247 0x00c0, 0x129c, 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0078, 0x1693,
248 0x2029, 0x0000, 0x2520, 0x71c4, 0x73c8, 0x72cc, 0x71c6, 0x73ca,
249 0x72ce, 0x2079, 0x5200, 0x2091, 0x8000, 0x1078, 0x1980, 0x2091,
250 0x8001, 0x0040, 0x174a, 0x20a9, 0x0005, 0x20a1, 0x5218, 0x2091,
251 0x8000, 0x41a1, 0x2091, 0x8001, 0x2009, 0x0020, 0x1078, 0x197b,
252 0x0040, 0x16b6, 0x1078, 0x199a, 0x0078, 0x174a, 0x6004, 0xa084,
253 0xff00, 0x8007, 0x8009, 0x0040, 0x1719, 0x0c7e, 0x2c68, 0x2091,
254 0x8000, 0x1078, 0x1980, 0x2091, 0x8001, 0x0040, 0x16ea, 0x2c00,
255 0x689e, 0x8109, 0x00c0, 0x16be, 0x609f, 0x0000, 0x0c7f, 0x0c7e,
256 0x7218, 0x731c, 0x7420, 0x7524, 0x2c68, 0x689c, 0xa065, 0x0040,
257 0x1718, 0x2009, 0x0020, 0x1078, 0x197b, 0x00c0, 0x1701, 0x6004,
258 0xa084, 0x00ff, 0xa086, 0x0002, 0x00c0, 0x16ea, 0x2d00, 0x6002,
259 0x0078, 0x16d0, 0x0c7f, 0x0c7e, 0x609c, 0x2060, 0x1078, 0x1a17,
260 0x0c7f, 0x609f, 0x0000, 0x1078, 0x174e, 0x2009, 0x000c, 0x6008,
261 0xa085, 0x0200, 0x600a, 0x1078, 0x1976, 0x1078, 0x199a, 0x0078,
262 0x174a, 0x0c7f, 0x0c7e, 0x609c, 0x2060, 0x1078, 0x1a17, 0x0c7f,
263 0x609f, 0x0000, 0x1078, 0x174e, 0x2009, 0x000c, 0x6007, 0x0103,
264 0x601b, 0x0003, 0x1078, 0x1976, 0x1078, 0x199a, 0x0078, 0x174a,
265 0x0c7f, 0x74c4, 0x73c8, 0x72cc, 0x6014, 0x2091, 0x8000, 0x7817,
266 0x0012, 0x0e7e, 0x2071, 0x5240, 0x706f, 0x0005, 0x7073, 0x0000,
267 0x7376, 0x727a, 0x747e, 0x7082, 0x7087, 0x0000, 0x2c00, 0x708a,
268 0x708f, 0x0000, 0xa02e, 0x2530, 0x611c, 0x61a2, 0xa184, 0x0060,
269 0x0040, 0x173c, 0x1078, 0x48d3, 0x0e7f, 0x6596, 0x65a6, 0x669a,
270 0x66aa, 0x60af, 0x0000, 0x60b3, 0x0000, 0x1078, 0x226f, 0x2091,
271 0x8001, 0x007c, 0x70c3, 0x4005, 0x0078, 0x1287, 0x20a9, 0x0005,
272 0x2099, 0x5218, 0x2091, 0x8000, 0x530a, 0x2091, 0x8001, 0x2100,
273 0xa210, 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x007c,
274 0x71c4, 0x70c7, 0x0000, 0x7906, 0x0078, 0x1284, 0x71c4, 0x71c6,
275 0x2168, 0x0078, 0x176d, 0x2069, 0x1000, 0x690c, 0xa016, 0x2d04,
276 0xa210, 0x8d68, 0x8109, 0x00c0, 0x176f, 0xa285, 0x0000, 0x00c0,
277 0x177d, 0x70c3, 0x4000, 0x0078, 0x177f, 0x70c3, 0x4003, 0x70ca,
278 0x0078, 0x1287, 0x2011, 0x5267, 0x220c, 0x70c4, 0x8003, 0x0048,
279 0x178f, 0x1078, 0x3c51, 0xa184, 0x7fff, 0x0078, 0x1793, 0x1078,
280 0x3c44, 0xa185, 0x8000, 0x2012, 0x0078, 0x1283, 0x71c4, 0x1078,
281 0x3c3b, 0x6100, 0x2001, 0x5267, 0x2004, 0xa084, 0x8000, 0xa10d,
282 0x6204, 0x6308, 0x0078, 0x1281, 0x79e4, 0x0078, 0x1283, 0x71c4,
283 0x71c6, 0x2198, 0x20a1, 0x0042, 0x20a9, 0x0004, 0x53a3, 0x21a0,
284 0x2099, 0x0042, 0x20a9, 0x0004, 0x53a3, 0x0078, 0x1284, 0x70c4,
285 0x2068, 0x2079, 0x5200, 0x2091, 0x8000, 0x1078, 0x1980, 0x2091,
286 0x8001, 0x0040, 0x1843, 0x6007, 0x0001, 0x600b, 0x0000, 0x602b,
287 0x0000, 0x601b, 0x0006, 0x6a10, 0xa28c, 0x000f, 0xa284, 0x00f0,
288 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0x6016, 0xa284, 0x0800,
289 0x0040, 0x17de, 0x601b, 0x000a, 0x0078, 0x17e4, 0xa284, 0x1000,
290 0x0040, 0x17e4, 0x601b, 0x000c, 0xa284, 0x0300, 0x0040, 0x17ed,
291 0x602b, 0x0001, 0x8004, 0x8004, 0x8004, 0xa085, 0x0001, 0x601e,
292 0x6023, 0x0000, 0x6027, 0x0000, 0xa284, 0x0400, 0x0040, 0x17fa,
293 0x602b, 0x0000, 0x20a9, 0x0006, 0xac80, 0x000b, 0x20a0, 0xad80,
294 0x0005, 0x2098, 0x53a3, 0xa284, 0x0300, 0x00c0, 0x180f, 0x6046,
295 0x604a, 0x604e, 0x6052, 0x6096, 0x609a, 0x0078, 0x1819, 0x6800,
296 0x6046, 0x6804, 0x604a, 0x6e08, 0x664e, 0x6d0c, 0x6552, 0x6596,
297 0x669a, 0x6014, 0x2091, 0x8000, 0x7817, 0x0042, 0x2c08, 0x2061,
298 0x5240, 0x606f, 0x0005, 0x6073, 0x0000, 0x6077, 0x0000, 0x607b,
299 0x0000, 0x607f, 0x0000, 0x6082, 0x618a, 0xa284, 0x0400, 0x608e,
300 0x2091, 0x8001, 0x0e7e, 0x2071, 0x0020, 0x7007, 0x000a, 0x7007,
301 0x0002, 0x7003, 0x0000, 0x0e7f, 0x2091, 0x8000, 0x1078, 0x226f,
302 0x2091, 0x8001, 0x007c, 0x70c3, 0x4005, 0x0078, 0x1287, 0x0c7e,
303 0x0d7e, 0x0e7e, 0x0f7e, 0x2091, 0x8000, 0x2071, 0x5240, 0x2079,
304 0x0100, 0x2061, 0x0010, 0x70a0, 0xa06d, 0x0040, 0x1903, 0x6a04,
305 0xa294, 0x00ff, 0xa286, 0x0007, 0x0040, 0x1862, 0xa286, 0x000f,
306 0x00c0, 0x1903, 0x691c, 0xa184, 0x00c0, 0x0040, 0x1903, 0xa184,
307 0x0080, 0x00c0, 0x18d3, 0x6824, 0xa084, 0xff00, 0xa085, 0x0019,
308 0x6826, 0x71b0, 0x81ff, 0x0040, 0x1889, 0x0d7e, 0x2069, 0x0020,
309 0x6807, 0x0010, 0x6908, 0x6808, 0xa106, 0x00c0, 0x187a, 0x690c,
310 0x680c, 0xa106, 0x00c0, 0x187f, 0xa184, 0x00ff, 0x00c0, 0x187f,
311 0x0d7f, 0x78b8, 0xa084, 0x801f, 0x00c0, 0x1889, 0x7848, 0xa085,
312 0x000c, 0x784a, 0x71b0, 0x81ff, 0x0040, 0x18ac, 0x70b3, 0x0000,
313 0x0d7e, 0x2069, 0x0020, 0x6807, 0x0018, 0x6804, 0xa084, 0x0008,
314 0x00c0, 0x189d, 0x6807, 0x0008, 0x6804, 0xa084, 0x0008, 0x00c0,
315 0x18a4, 0x6807, 0x0002, 0x0d7f, 0x61c4, 0x62c8, 0x63cc, 0x61c6,
316 0x62ca, 0x63ce, 0x0e7e, 0x2071, 0x5200, 0x7266, 0x736a, 0xae80,
317 0x0019, 0x0e7f, 0x7848, 0xa084, 0x000c, 0x00c0, 0x18ba, 0x1078,
318 0x47e1, 0x78a3, 0x0000, 0x7858, 0xa084, 0xedff, 0x785a, 0x70b4,
319 0xa080, 0x00da, 0x781a, 0x0f7f, 0x0e7f, 0x0d7f, 0x0c7f, 0x2091,
320 0x8001, 0x0078, 0x1284, 0x6824, 0xa084, 0xff00, 0xa085, 0x0019,
321 0x6826, 0x78b8, 0xa084, 0x801f, 0x00c0, 0x18d9, 0x7848, 0xa085,
322 0x000c, 0x784a, 0x7848, 0xa084, 0x000c, 0x00c0, 0x18e2, 0x71b0,
323 0x81ff, 0x0040, 0x1901, 0x70b3, 0x0000, 0x0d7e, 0x2069, 0x0020,
324 0x6807, 0x0018, 0x6804, 0xa084, 0x0008, 0x00c0, 0x18f2, 0x6807,
325 0x0008, 0x6804, 0xa084, 0x0008, 0x00c0, 0x18f9, 0x6807, 0x0002,
326 0x0d7f, 0x0078, 0x18cb, 0x0f7f, 0x0e7f, 0x0d7f, 0x0c7f, 0x2091,
327 0x8001, 0x2001, 0x4005, 0x0078, 0x1286, 0x7980, 0x71c6, 0x71c4,
328 0xa182, 0x0003, 0x00c8, 0x127c, 0x7982, 0x0078, 0x1284, 0x7980,
329 0x71c6, 0x0078, 0x1284, 0x7974, 0x71c6, 0x71c4, 0x7976, 0x7978,
330 0x71ca, 0x71c8, 0x797a, 0x797c, 0x71ce, 0x71cc, 0x797e, 0x0078,
331 0x1284, 0x7974, 0x71c6, 0x7978, 0x71ca, 0x797c, 0x71ce, 0x0078,
332 0x1284, 0x7900, 0x71c6, 0x71c4, 0x7902, 0x2001, 0x04fd, 0x2004,
333 0xa082, 0x0005, 0x0048, 0x1940, 0x0038, 0x1942, 0x0078, 0x194c,
334 0x00a8, 0x194c, 0xa18c, 0x0001, 0x00c0, 0x194a, 0x20b9, 0x2222,
335 0x0078, 0x194c, 0x20b9, 0x1212, 0x0078, 0x1284, 0x7900, 0x71c6,
336 0x0078, 0x1284, 0x2009, 0x5274, 0x2104, 0x70c6, 0x70c4, 0x200a,
337 0x0078, 0x1284, 0x2009, 0x5274, 0x2104, 0x70c6, 0x0078, 0x1284,
338 0x71c4, 0x8107, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa0e8,
339 0x5480, 0x6a14, 0xd2b4, 0x0040, 0x1971, 0x2011, 0x0001, 0x0078,
340 0x1973, 0x2011, 0x0000, 0x6b0c, 0x0078, 0x1281, 0xac80, 0x0001,
341 0x1078, 0x1b80, 0x007c, 0xac80, 0x0001, 0x1078, 0x1b20, 0x007c,
342 0x7850, 0xa065, 0x0040, 0x1988, 0x2c04, 0x7852, 0x2063, 0x0000,
343 0x007c, 0x0f7e, 0x2079, 0x5200, 0x7850, 0xa06d, 0x0040, 0x1998,
344 0x2d04, 0x7852, 0x6803, 0x0000, 0x6807, 0x0000, 0x680b, 0x0000,
345 0x0f7f, 0x007c, 0x2091, 0x8000, 0x0f7e, 0x2079, 0x5200, 0x7850,
346 0x2062, 0x2c00, 0xa005, 0x00c0, 0x19a7, 0x1078, 0x248c, 0x7852,
347 0x0f7f, 0x2091, 0x8001, 0x007c, 0x0f7e, 0x2079, 0x5200, 0x7850,
348 0x206a, 0x2d00, 0x7852, 0x0f7f, 0x007c, 0x2011, 0x7900, 0x7a52,
349 0x7bec, 0x8319, 0x0040, 0x19c2, 0xa280, 0x0031, 0x2012, 0x2010,
350 0x0078, 0x19b9, 0x2013, 0x0000, 0x007c, 0xa784, 0x0f00, 0x800b,
351 0xa784, 0x001f, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0xa0e8,
352 0x5500, 0x007c, 0x1078, 0x19c5, 0x2900, 0x682a, 0x2a00, 0x682e,
353 0x6808, 0xa084, 0xffef, 0xa80d, 0x690a, 0x2009, 0x5252, 0x210c,
354 0x6804, 0xa005, 0x0040, 0x1a04, 0xa116, 0x00c0, 0x19ef, 0x2060,
355 0x6000, 0x6806, 0x017e, 0x200b, 0x0000, 0x0078, 0x19f2, 0x2009,
356 0x0000, 0x017e, 0x6804, 0xa065, 0x0040, 0x1a01, 0x6000, 0x6806,
357 0x1078, 0x1a31, 0x1078, 0x1ccb, 0x6810, 0x8001, 0x6812, 0x00c0,
358 0x19f2, 0x017f, 0x6902, 0x6906, 0x007c, 0xa065, 0x0040, 0x1a16,
359 0x2008, 0x609c, 0xa005, 0x0040, 0x1a13, 0x2062, 0x609f, 0x0000,
360 0xa065, 0x0078, 0x1a09, 0x7850, 0x7952, 0x2062, 0x007c, 0xa065,
361 0x0040, 0x1a30, 0x2008, 0x609c, 0xa005, 0x0040, 0x1a25, 0x2062,
362 0x609f, 0x0000, 0xa065, 0x0078, 0x1a1b, 0x0f7e, 0x2079, 0x5200,
363 0x2091, 0x8000, 0x7850, 0x7952, 0x0f7f, 0x2062, 0x2091, 0x8001,
364 0x007c, 0x6007, 0x0103, 0x608f, 0x0000, 0x20a9, 0x001c, 0xac80,
365 0x0005, 0x20a0, 0x2001, 0x0000, 0x40a4, 0x6828, 0x601a, 0x682c,
366 0x6022, 0x007c, 0x0e7e, 0x2071, 0x5240, 0x704c, 0xa08c, 0x0200,
367 0x00c0, 0x1a50, 0xa088, 0x5280, 0x2d0a, 0x8000, 0x704e, 0xa006,
368 0x0e7f, 0x007c, 0x1078, 0x19c5, 0x2091, 0x8000, 0x6804, 0x781e,
369 0xa065, 0x0040, 0x1a9b, 0x0078, 0x1a63, 0x2c00, 0x781e, 0x6000,
370 0xa065, 0x0040, 0x1a9b, 0x600c, 0xa306, 0x00c0, 0x1a5d, 0x6010,
371 0xa206, 0x00c0, 0x1a5d, 0x2c28, 0x2001, 0x5252, 0x2004, 0xac06,
372 0x00c0, 0x1a74, 0x0078, 0x1a99, 0x6804, 0xac06, 0x00c0, 0x1a81,
373 0x6000, 0xa065, 0x6806, 0x00c0, 0x1a8b, 0x6803, 0x0000, 0x0078,
374 0x1a8b, 0x6400, 0x781c, 0x2060, 0x6402, 0xa486, 0x0000, 0x00c0,
375 0x1a8b, 0x2c00, 0x6802, 0x2560, 0x1078, 0x1a31, 0x601b, 0x0005,
376 0x6023, 0x0020, 0x1078, 0x1ccb, 0x6810, 0x8001, 0x1050, 0x248c,
377 0x6812, 0xa085, 0xffff, 0x007c, 0x2039, 0x0000, 0x2041, 0x0021,
378 0x2049, 0x0004, 0x2051, 0x0008, 0x2091, 0x8000, 0x1078, 0x19d2,
379 0x8738, 0xa784, 0x001f, 0x00c0, 0x1aa6, 0xa7bc, 0xff00, 0x873f,
380 0x8738, 0x873f, 0xa784, 0x0f00, 0x00c0, 0x1aa6, 0x2091, 0x8001,
381 0x007c, 0x2061, 0x0000, 0x6018, 0xa084, 0x0001, 0x00c0, 0x1aca,
382 0x2091, 0x8000, 0x78e0, 0x78e3, 0x0000, 0x2091, 0x8001, 0xa005,
383 0x00c0, 0x1acb, 0x007c, 0xa08c, 0xfff0, 0x0040, 0x1ad1, 0x1078,
384 0x248c, 0x0079, 0x1ad3, 0x1ae3, 0x1ae6, 0x1aec, 0x1af0, 0x1ae4,
385 0x1af4, 0x1afa, 0x1ae4, 0x1ae4, 0x1c95, 0x1cb9, 0x1cbd, 0x1ae4,
386 0x1ae4, 0x1ae4, 0x1ae4, 0x007c, 0x1078, 0x248c, 0x1078, 0x1a9c,
387 0x2001, 0x8001, 0x0078, 0x1cc3, 0x2001, 0x8003, 0x0078, 0x1cc3,
388 0x2001, 0x8004, 0x0078, 0x1cc3, 0x1078, 0x1a9c, 0x2001, 0x8006,
389 0x0078, 0x1cc3, 0x2001, 0x8007, 0x0078, 0x1cc3, 0x2030, 0x2138,
390 0xa782, 0x0021, 0x0048, 0x1b06, 0x2009, 0x0020, 0x2600, 0x1078,
391 0x1b20, 0x00c0, 0x1b1f, 0xa7ba, 0x0020, 0x0048, 0x1b1e, 0x0040,
392 0x1b1e, 0x2708, 0xa6b0, 0x0020, 0xa290, 0x0040, 0xa399, 0x0000,
393 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x0078, 0x1b00, 0xa006, 0x007c,
394 0x81ff, 0x0040, 0x1b5b, 0x2099, 0x0030, 0x20a0, 0x700c, 0xa084,
395 0x00ff, 0x0040, 0x1b32, 0x7007, 0x0004, 0x7004, 0xa084, 0x0004,
396 0x00c0, 0x1b2d, 0x21a8, 0x7017, 0x0000, 0x810b, 0x7112, 0x721a,
397 0x731e, 0x7422, 0x7526, 0x780c, 0xa085, 0x0001, 0x7002, 0x7007,
398 0x0001, 0x2001, 0x04fd, 0x2004, 0xa082, 0x0005, 0x00c8, 0x1b4f,
399 0x2009, 0x0022, 0x2104, 0xa084, 0x4000, 0x00c0, 0x1b41, 0x7008,
400 0x800b, 0x00c8, 0x1b41, 0x7007, 0x0002, 0xa08c, 0x01e0, 0x00c0,
401 0x1b5b, 0x53a5, 0xa006, 0x7003, 0x0000, 0x007c, 0x2030, 0x2138,
402 0xa782, 0x0021, 0x0048, 0x1b66, 0x2009, 0x0020, 0x2600, 0x1078,
403 0x1b80, 0x00c0, 0x1b7f, 0xa7ba, 0x0020, 0x0048, 0x1b7e, 0x0040,
404 0x1b7e, 0x2708, 0xa6b0, 0x0020, 0xa290, 0x0040, 0xa399, 0x0000,
405 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x0078, 0x1b60, 0xa006, 0x007c,
406 0x81ff, 0x0040, 0x1bc1, 0x2098, 0x20a1, 0x0030, 0x700c, 0xa084,
407 0x00ff, 0x0040, 0x1b92, 0x7007, 0x0004, 0x7004, 0xa084, 0x0004,
408 0x00c0, 0x1b8d, 0x21a8, 0x7017, 0x0000, 0x810b, 0x7112, 0x721a,
409 0x731e, 0x7422, 0x7526, 0x780c, 0xa085, 0x0000, 0x7002, 0x53a6,
410 0x7007, 0x0001, 0x2001, 0x04fd, 0x2004, 0xa082, 0x0005, 0x00c8,
411 0x1bb0, 0x2009, 0x0022, 0x2104, 0xa084, 0x4000, 0x00c0, 0x1ba2,
412 0x7010, 0xa084, 0xf000, 0x0040, 0x1bb9, 0x7007, 0x0008, 0x0078,
413 0x1bbd, 0x7108, 0x8103, 0x00c8, 0x1ba2, 0x7007, 0x0002, 0xa184,
414 0x01e0, 0x7003, 0x0000, 0x007c, 0x2001, 0x04fd, 0x2004, 0xa082,
415 0x0004, 0x00c8, 0x1bcd, 0x0078, 0x1bd0, 0xa006, 0x0078, 0x1bd2,
416 0xa085, 0x0001, 0x007c, 0x0e7e, 0x2071, 0x5200, 0x2d08, 0x7058,
417 0x6802, 0xa005, 0x00c0, 0x1bdd, 0x715e, 0x715a, 0x0e7f, 0x007c,
418 0x2c08, 0x7858, 0x6002, 0xa005, 0x00c0, 0x1be7, 0x795e, 0x795a,
419 0x007c, 0x2091, 0x8000, 0x6114, 0x1078, 0x2180, 0x6900, 0xa184,
420 0x0100, 0x00c0, 0x2035, 0xa184, 0x0200, 0x00c0, 0x2031, 0x681c,
421 0xa005, 0x00c0, 0x203d, 0x6003, 0x0000, 0x2c08, 0x785c, 0xa065,
422 0x00c0, 0x1c05, 0x795a, 0x0078, 0x1c06, 0x6102, 0x795e, 0x2091,
423 0x8001, 0x1078, 0x228c, 0x007c, 0x0e7e, 0x2071, 0x5200, 0x7058,
424 0xa06d, 0x0040, 0x1c1a, 0x6800, 0x705a, 0xa005, 0x00c0, 0x1c19,
425 0x705e, 0x8dff, 0x0e7f, 0x007c, 0x0d7e, 0x0c7e, 0x0f7e, 0x2079,
426 0x5200, 0xaf80, 0x0016, 0x2060, 0x6000, 0xa005, 0x0040, 0x1c43,
427 0x2068, 0x6814, 0xa306, 0x00c0, 0x1c33, 0x6828, 0xa084, 0x00ff,
428 0xa406, 0x0040, 0x1c36, 0x2d60, 0x0078, 0x1c24, 0x6800, 0xa005,
429 0x6002, 0x00c0, 0x1c42, 0xaf80, 0x0016, 0xac06, 0x0040, 0x1c41,
430 0x2c00, 0x785e, 0x2d00, 0x0f7f, 0x0c7f, 0x0d7f, 0xa005, 0x007c,
431 0x0d7e, 0x0c7e, 0x0f7e, 0x2079, 0x5200, 0xaf80, 0x0016, 0x2060,
432 0x6000, 0xa005, 0x0040, 0x1c6b, 0x2068, 0x6814, 0xa084, 0x00ff,
433 0xa306, 0x0040, 0x1c5e, 0x2d60, 0x0078, 0x1c50, 0x6800, 0xa005,
434 0x6002, 0x00c0, 0x1c6a, 0xaf80, 0x0016, 0xac06, 0x0040, 0x1c69,
435 0x2c00, 0x785e, 0x2d00, 0x0f7f, 0x0c7f, 0x0d7f, 0xa005, 0x007c,
436 0x0d7e, 0x0c7e, 0x0f7e, 0x2079, 0x5200, 0xaf80, 0x0016, 0x2060,
437 0x6000, 0xa06d, 0x0040, 0x1c90, 0x6814, 0xa306, 0x0040, 0x1c83,
438 0x2d60, 0x0078, 0x1c78, 0x6800, 0xa005, 0x6002, 0x00c0, 0x1c8f,
439 0xaf80, 0x0016, 0xac06, 0x0040, 0x1c8e, 0x2c00, 0x785e, 0x2d00,
440 0x0f7f, 0x0c7f, 0x0d7f, 0xa005, 0x007c, 0x2091, 0x8000, 0x2069,
441 0x5240, 0x6800, 0xa086, 0x0000, 0x0040, 0x1ca3, 0x2091, 0x8001,
442 0x78e3, 0x0009, 0x007c, 0x6880, 0xa0bc, 0xff00, 0x2041, 0x0021,
443 0x2049, 0x0004, 0x2051, 0x0010, 0x1078, 0x19d2, 0x8738, 0xa784,
444 0x001f, 0x00c0, 0x1cac, 0x2091, 0x8001, 0x2001, 0x800a, 0x0078,
445 0x1cc3, 0x2001, 0x800c, 0x0078, 0x1cc3, 0x1078, 0x1a9c, 0x2001,
446 0x800d, 0x0078, 0x1cc3, 0x70c2, 0x2061, 0x0000, 0x601b, 0x0001,
447 0x2091, 0x4080, 0x007c, 0x6004, 0x2c08, 0x2063, 0x0000, 0x7884,
448 0x8000, 0x7886, 0x7888, 0xa005, 0x798a, 0x0040, 0x1cda, 0x2c02,
449 0x0078, 0x1cdb, 0x798e, 0x007c, 0x6807, 0x0103, 0x0c7e, 0x2061,
450 0x5200, 0x2d08, 0x206b, 0x0000, 0x6084, 0x8000, 0x6086, 0x6088,
451 0xa005, 0x618a, 0x0040, 0x1cef, 0x2d02, 0x0078, 0x1cf0, 0x618e,
452 0x0c7f, 0x007c, 0x1078, 0x1d03, 0x0040, 0x1d02, 0x0c7e, 0x609c,
453 0xa065, 0x0040, 0x1cfd, 0x1078, 0x1a17, 0x0c7f, 0x609f, 0x0000,
454 0x1078, 0x199a, 0x007c, 0x788c, 0xa065, 0x0040, 0x1d15, 0x2091,
455 0x8000, 0x7884, 0x8001, 0x7886, 0x2c04, 0x788e, 0xa005, 0x00c0,
456 0x1d13, 0x788a, 0x8000, 0x2091, 0x8001, 0x007c, 0x20a9, 0x0010,
457 0xa006, 0x8004, 0x8086, 0x818e, 0x00c8, 0x1d1f, 0xa200, 0x0070,
458 0x1d23, 0x0078, 0x1d1a, 0x8086, 0x818e, 0x007c, 0x157e, 0x20a9,
459 0x0010, 0xa005, 0x0040, 0x1d49, 0xa11a, 0x00c8, 0x1d49, 0x8213,
460 0x818d, 0x0048, 0x1d3a, 0xa11a, 0x00c8, 0x1d3b, 0x0070, 0x1d41,
461 0x0078, 0x1d2f, 0xa11a, 0x2308, 0x8210, 0x0070, 0x1d41, 0x0078,
462 0x1d2f, 0x007e, 0x3200, 0xa084, 0xf7ff, 0x2080, 0x007f, 0x157f,
463 0x007c, 0x007e, 0x3200, 0xa085, 0x0800, 0x0078, 0x1d45, 0x7994,
464 0x70d0, 0xa106, 0x0040, 0x1dbd, 0x2091, 0x8000, 0x2071, 0x0020,
465 0x7004, 0xa005, 0x00c0, 0x1dbd, 0x7008, 0x7208, 0xa206, 0x00c0,
466 0x1dbd, 0xa286, 0x0008, 0x00c0, 0x1dbd, 0x2071, 0x0010, 0x1078,
467 0x1980, 0x0040, 0x1dbd, 0x7a9c, 0x7b98, 0x7ca4, 0x7da0, 0xa184,
468 0xff00, 0x0040, 0x1d8b, 0x2031, 0x0000, 0x810b, 0x86b5, 0x810b,
469 0x86b5, 0x810b, 0x86b5, 0x810b, 0x86b5, 0x810b, 0x86b5, 0x810b,
470 0x86b5, 0x2100, 0xa210, 0x2600, 0xa319, 0xa4a1, 0x0000, 0xa5a9,
471 0x0000, 0x0078, 0x1d95, 0x8107, 0x8004, 0x8004, 0xa210, 0xa399,
472 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x2009, 0x0020, 0x1078,
473 0x197b, 0x2091, 0x8001, 0x0040, 0x1db4, 0x1078, 0x199a, 0x78a8,
474 0x8000, 0x78aa, 0xa086, 0x0002, 0x00c0, 0x1dbd, 0x2091, 0x8000,
475 0x78e3, 0x0002, 0x78ab, 0x0000, 0x78cc, 0xa085, 0x0003, 0x78ce,
476 0x2091, 0x8001, 0x0078, 0x1dbd, 0x78ab, 0x0000, 0x1078, 0x2149,
477 0x6004, 0xa084, 0x000f, 0x0079, 0x1dc2, 0x2071, 0x0010, 0x2091,
478 0x8001, 0x007c, 0x1dd2, 0x1df4, 0x1e1a, 0x1dd2, 0x1e37, 0x1de1,
479 0x1fc9, 0x1fe4, 0x1dd2, 0x1dee, 0x1e14, 0x1e7f, 0x1eee, 0x1f57,
480 0x1f69, 0x1fe0, 0x2039, 0x0400, 0x78dc, 0xa705, 0x78de, 0x6008,
481 0xa705, 0x600a, 0x1078, 0x2064, 0x609c, 0x78da, 0x1078, 0x2131,
482 0x007c, 0x78dc, 0xa084, 0x0100, 0x0040, 0x1de8, 0x0078, 0x1dd2,
483 0x601c, 0xa085, 0x0080, 0x601e, 0x0078, 0x1dfb, 0x1078, 0x1bc4,
484 0x00c0, 0x1dd2, 0x1078, 0x2163, 0x78dc, 0xa084, 0x0100, 0x0040,
485 0x1dfb, 0x0078, 0x1dd2, 0x78df, 0x0000, 0x6004, 0x8007, 0xa084,
486 0x00ff, 0x78d2, 0x8001, 0x609f, 0x0000, 0x0040, 0x1e11, 0x1078,
487 0x2064, 0x0040, 0x1e11, 0x78dc, 0xa085, 0x0100, 0x78de, 0x0078,
488 0x1e13, 0x1078, 0x2088, 0x007c, 0x1078, 0x1bc4, 0x00c0, 0x1dd2,
489 0x1078, 0x215f, 0x78dc, 0xa08c, 0x0e00, 0x00c0, 0x1e23, 0xa084,
490 0x0100, 0x00c0, 0x1e25, 0x0078, 0x1dd2, 0x1078, 0x2064, 0x00c0,
491 0x1e36, 0x6104, 0xa18c, 0x00ff, 0xa186, 0x0007, 0x0040, 0x2021,
492 0xa186, 0x000f, 0x0040, 0x2021, 0x1078, 0x2088, 0x007c, 0x78dc,
493 0xa084, 0x0100, 0x0040, 0x1e3e, 0x0078, 0x1dd2, 0x78df, 0x0000,
494 0x6714, 0x2011, 0x0001, 0x20a9, 0x0001, 0x6018, 0xa084, 0x00ff,
495 0xa005, 0x0040, 0x1e61, 0x2011, 0x0001, 0xa7bc, 0xff00, 0x20a9,
496 0x0020, 0xa08e, 0x0001, 0x0040, 0x1e61, 0x2039, 0x0000, 0x2011,
497 0x0002, 0x20a9, 0x0100, 0xa08e, 0x0002, 0x0040, 0x1e61, 0x0078,
498 0x1e7c, 0x1078, 0x19c5, 0x2091, 0x8000, 0x682b, 0x0000, 0x682f,
499 0x0000, 0x6808, 0xa084, 0xffde, 0x680a, 0xade8, 0x0010, 0x2091,
500 0x8001, 0x0070, 0x1e75, 0x0078, 0x1e63, 0x8211, 0x0040, 0x1e7c,
501 0x20a9, 0x0100, 0x0078, 0x1e63, 0x1078, 0x199a, 0x007c, 0x2001,
502 0x5267, 0x2004, 0xa084, 0x8000, 0x0040, 0x2049, 0x6114, 0x1078,
503 0x2180, 0x6900, 0xa184, 0x0001, 0x0040, 0x1ea0, 0x6028, 0xa084,
504 0x00ff, 0x00c0, 0x2041, 0x6800, 0xa084, 0x0001, 0x0040, 0x2049,
505 0x6803, 0x0000, 0x680b, 0x0000, 0x6807, 0x0000, 0x0078, 0x2051,
506 0x2011, 0x0001, 0x6020, 0xd0f4, 0x0040, 0x1ea8, 0xa295, 0x0002,
507 0xd0c4, 0x0040, 0x1ead, 0xa295, 0x0008, 0xd0cc, 0x0040, 0x1eb2,
508 0xa295, 0x0400, 0x601c, 0xa084, 0x0002, 0x0040, 0x1eb9, 0xa295,
509 0x0004, 0x602c, 0xa08c, 0x00ff, 0xa182, 0x0002, 0x0048, 0x204d,
510 0xa182, 0x001b, 0x00c8, 0x204d, 0x0040, 0x204d, 0x690e, 0x602c,
511 0x8007, 0xa08c, 0x00ff, 0xa182, 0x0002, 0x0048, 0x204d, 0xa182,
512 0x001b, 0x00c8, 0x204d, 0x0040, 0x204d, 0x6912, 0x6030, 0xa005,
513 0x00c0, 0x1edc, 0x2001, 0x001e, 0x8000, 0x6816, 0x6028, 0xa084,
514 0x00ff, 0x0040, 0x2049, 0x6806, 0x6028, 0x8007, 0xa084, 0x00ff,
515 0x0040, 0x2049, 0x680a, 0x6a02, 0x0078, 0x2051, 0x2001, 0x5240,
516 0x2004, 0xa086, 0x0007, 0x00c0, 0x1f53, 0x2001, 0x5267, 0x2004,
517 0xa084, 0x8000, 0x0040, 0x2049, 0x6114, 0x1078, 0x2180, 0x2001,
518 0x5252, 0x2004, 0x2010, 0x82ff, 0x0040, 0x1f0e, 0xa080, 0x0005,
519 0x2004, 0xa084, 0x00ff, 0xa106, 0x00c0, 0x1f53, 0x2091, 0x8000,
520 0x6a04, 0x6b08, 0x6418, 0xa484, 0x0003, 0x0040, 0x1f2d, 0x6128,
521 0xa18c, 0x00ff, 0x8001, 0x00c0, 0x1f23, 0x2100, 0xa210, 0x0048,
522 0x1f53, 0x0078, 0x1f2d, 0x8001, 0x00c0, 0x1f53, 0x2100, 0xa212,
523 0x0048, 0x1f53, 0x82ff, 0x0040, 0x1f53, 0xa484, 0x000c, 0x0040,
524 0x1f47, 0x6128, 0x810f, 0xa18c, 0x00ff, 0xa082, 0x0004, 0x00c0,
525 0x1f3f, 0x2100, 0xa318, 0x0048, 0x1f53, 0x0078, 0x1f47, 0xa082,
526 0x0004, 0x00c0, 0x1f53, 0x2100, 0xa31a, 0x0048, 0x1f53, 0x6030,
527 0xa005, 0x0040, 0x1f4d, 0x8000, 0x6816, 0x6a06, 0x6b0a, 0x2091,
528 0x8001, 0x0078, 0x2051, 0x2091, 0x8001, 0x0078, 0x204d, 0x6114,
529 0x1078, 0x2180, 0x2091, 0x8000, 0x6b08, 0x8318, 0x0048, 0x1f65,
530 0x6b0a, 0x2091, 0x8001, 0x0078, 0x2060, 0x2091, 0x8001, 0x0078,
531 0x204d, 0x6024, 0x8007, 0xa084, 0x00ff, 0x0040, 0x1f87, 0xa086,
532 0x0080, 0x00c0, 0x1fc7, 0x20a9, 0x0008, 0x2069, 0x7610, 0x2091,
533 0x8000, 0x6800, 0xa084, 0xfcff, 0x6802, 0xade8, 0x0008, 0x0070,
534 0x1f83, 0x0078, 0x1f79, 0x2091, 0x8001, 0x0078, 0x2051, 0x6028,
535 0xa015, 0x0040, 0x1fc7, 0x6114, 0x1078, 0x2180, 0x0c7e, 0x0d7e,
536 0xade8, 0x0007, 0x2091, 0x8000, 0x6800, 0xa00d, 0x0040, 0x1fc3,
537 0xa206, 0x0040, 0x1f9e, 0x2168, 0x0078, 0x1f94, 0x2160, 0x6000,
538 0x6802, 0x2c68, 0x1078, 0x19ac, 0x0d7f, 0x6818, 0xa00d, 0x0040,
539 0x1fbb, 0x2060, 0x6200, 0x6a1a, 0x6a1c, 0x6202, 0x681e, 0x1078,
540 0x1989, 0x2da0, 0x2198, 0x20a9, 0x0031, 0x53a3, 0x2d60, 0x1078,
541 0x1ccb, 0x0078, 0x1fbe, 0x6808, 0x8000, 0x680a, 0x2091, 0x8001,
542 0x0c7f, 0x0078, 0x2060, 0x2091, 0x8001, 0x0d7f, 0x0c7f, 0x0078,
543 0x2049, 0x6114, 0x1078, 0x2180, 0x6800, 0xa084, 0x0001, 0x0040,
544 0x2039, 0x2091, 0x8000, 0x6a04, 0x8210, 0x0048, 0x1fdc, 0x6a06,
545 0x2091, 0x8001, 0x0078, 0x2060, 0x2091, 0x8001, 0x0078, 0x204d,
546 0x1078, 0x1bc4, 0x00c0, 0x1dd2, 0x6114, 0x1078, 0x2180, 0x60be,
547 0x60bb, 0x0000, 0x6900, 0xa184, 0x0008, 0x0040, 0x1ff3, 0x6020,
548 0xa085, 0x0100, 0x6022, 0xa184, 0x0001, 0x0040, 0x2049, 0xa184,
549 0x0100, 0x00c0, 0x2035, 0xa184, 0x0200, 0x00c0, 0x2031, 0x681c,
550 0xa005, 0x00c0, 0x203d, 0x6004, 0xa084, 0x00ff, 0xa086, 0x000f,
551 0x00c0, 0x200c, 0x1078, 0x2163, 0x78df, 0x0000, 0x6004, 0x8007,
552 0xa084, 0x00ff, 0x78d2, 0x8001, 0x609f, 0x0000, 0x0040, 0x2021,
553 0x1078, 0x2064, 0x0040, 0x2021, 0x78dc, 0xa085, 0x0100, 0x78de,
554 0x007c, 0x78d7, 0x0000, 0x78db, 0x0000, 0x6024, 0xa084, 0xff00,
555 0x6026, 0x1078, 0x3aac, 0x0040, 0x1d4f, 0x1078, 0x1be9, 0x0078,
556 0x1d4f, 0x2009, 0x0017, 0x0078, 0x2053, 0x2009, 0x000e, 0x0078,
557 0x2053, 0x2009, 0x0007, 0x0078, 0x2053, 0x2009, 0x0035, 0x0078,
558 0x2053, 0x2009, 0x003e, 0x0078, 0x2053, 0x2009, 0x0004, 0x0078,
559 0x2053, 0x2009, 0x0006, 0x0078, 0x2053, 0x2009, 0x0016, 0x0078,
560 0x2053, 0x2009, 0x0001, 0x6024, 0xa084, 0xff00, 0xa105, 0x6026,
561 0x2091, 0x8000, 0x1078, 0x1ccb, 0x2091, 0x8001, 0x0078, 0x1d4f,
562 0x1078, 0x199a, 0x0078, 0x1d4f, 0x78d4, 0xa06d, 0x00c0, 0x206f,
563 0x2c00, 0x78d6, 0x78da, 0x609f, 0x0000, 0x0078, 0x207b, 0x2c00,
564 0x689e, 0x609f, 0x0000, 0x78d6, 0x2d00, 0x6002, 0x78d8, 0xad06,
565 0x00c0, 0x207b, 0x6002, 0x78d0, 0x8001, 0x78d2, 0x00c0, 0x2087,
566 0x78dc, 0xa084, 0xfeff, 0x78de, 0x78d8, 0x2060, 0xa006, 0x007c,
567 0xa02e, 0x2530, 0x611c, 0x61a2, 0xa184, 0xe1ff, 0x601e, 0xa184,
568 0x0060, 0x0040, 0x2097, 0x0e7e, 0x1078, 0x48d3, 0x0e7f, 0x6596,
569 0x65a6, 0x669a, 0x66aa, 0x60af, 0x0000, 0x60b3, 0x0000, 0x6714,
570 0x1078, 0x19c5, 0x2091, 0x8000, 0x60a0, 0xa084, 0x8000, 0x00c0,
571 0x20be, 0x6808, 0xa084, 0x0001, 0x0040, 0x20be, 0x2091, 0x8001,
572 0x1078, 0x1a31, 0x2091, 0x8000, 0x1078, 0x1ccb, 0x2091, 0x8001,
573 0x78d7, 0x0000, 0x78db, 0x0000, 0x0078, 0x2130, 0x6024, 0xa096,
574 0x0001, 0x00c0, 0x20c5, 0x8000, 0x6026, 0x6a10, 0x6814, 0x2091,
575 0x8001, 0xa202, 0x0048, 0x20d4, 0x0040, 0x20d4, 0x2039, 0x0200,
576 0x1078, 0x2131, 0x0078, 0x2130, 0x2c08, 0x2091, 0x8000, 0x60a0,
577 0xa084, 0x8000, 0x0040, 0x2101, 0x6800, 0xa065, 0x0040, 0x2106,
578 0x6a04, 0x0e7e, 0x2071, 0x5240, 0x7000, 0xa084, 0x0001, 0x0040,
579 0x20fb, 0x7048, 0xa206, 0x00c0, 0x20fb, 0x6b04, 0x231c, 0x2160,
580 0x6302, 0x2300, 0xa005, 0x00c0, 0x20f6, 0x6902, 0x2260, 0x6102,
581 0x0e7f, 0x0078, 0x210d, 0x2160, 0x6202, 0x6906, 0x0e7f, 0x0078,
582 0x210d, 0x6800, 0xa065, 0x0040, 0x2106, 0x6102, 0x6902, 0x00c0,
583 0x210a, 0x6906, 0x2160, 0x6003, 0x0000, 0x2160, 0x60a0, 0xa084,
584 0x8000, 0x0040, 0x2117, 0x6808, 0xa084, 0xfffc, 0x680a, 0x6810,
585 0x8000, 0x6812, 0x2091, 0x8001, 0x6808, 0xa08c, 0x0040, 0x0040,
586 0x2126, 0xa086, 0x0040, 0x680a, 0x1078, 0x1a42, 0x2091, 0x8000,
587 0x1078, 0x226f, 0x2091, 0x8001, 0x78db, 0x0000, 0x78d7, 0x0000,
588 0x007c, 0x6008, 0xa705, 0x600a, 0x2091, 0x8000, 0x1078, 0x1ccb,
589 0x2091, 0x8001, 0x78d8, 0xa065, 0x0040, 0x2144, 0x609c, 0x78da,
590 0x609f, 0x0000, 0x0078, 0x2134, 0x78d7, 0x0000, 0x78db, 0x0000,
591 0x007c, 0x7990, 0x7894, 0x8000, 0xa10a, 0x00c8, 0x2150, 0xa006,
592 0x7896, 0x70d2, 0x7804, 0xa005, 0x0040, 0x215e, 0x8001, 0x7806,
593 0x00c0, 0x215e, 0x0068, 0x215e, 0x2091, 0x4080, 0x007c, 0x2039,
594 0x2177, 0x0078, 0x2165, 0x2039, 0x217d, 0x2704, 0xa005, 0x0040,
595 0x2176, 0xac00, 0x2068, 0x6b08, 0x6c0c, 0x6910, 0x6a14, 0x690a,
596 0x6a0e, 0x6b12, 0x6c16, 0x8738, 0x0078, 0x2165, 0x007c, 0x0003,
597 0x0009, 0x000f, 0x0015, 0x001b, 0x0000, 0x0015, 0x001b, 0x0000,
598 0x0c7e, 0x1078, 0x3c3b, 0x2c68, 0x0c7f, 0x007c, 0x0010, 0x21f7,
599 0x0068, 0x21f7, 0x2029, 0x0000, 0x78cb, 0x0000, 0x788c, 0xa065,
600 0x0040, 0x21f0, 0x2009, 0x5274, 0x2104, 0xa084, 0x0001, 0x0040,
601 0x21be, 0x6004, 0xa086, 0x0103, 0x00c0, 0x21be, 0x6018, 0xa005,
602 0x00c0, 0x21be, 0x6014, 0xa005, 0x00c0, 0x21be, 0x0d7e, 0x2069,
603 0x0000, 0x6818, 0xa084, 0x0001, 0x00c0, 0x21bd, 0x600c, 0x70c6,
604 0x6010, 0x70ca, 0x70c3, 0x8020, 0x681b, 0x0001, 0x2091, 0x4080,
605 0x0d7f, 0x1078, 0x1cf2, 0x0078, 0x21f5, 0x0d7f, 0x1078, 0x21f8,
606 0x0040, 0x21f0, 0x6204, 0xa294, 0x00ff, 0xa296, 0x0003, 0x0040,
607 0x21d0, 0x6204, 0xa296, 0x0110, 0x00c0, 0x21de, 0x78cb, 0x0001,
608 0x6204, 0xa294, 0xff00, 0x8217, 0x8211, 0x0040, 0x21de, 0x85ff,
609 0x00c0, 0x21f0, 0x8210, 0xa202, 0x00c8, 0x21f0, 0x057e, 0x1078,
610 0x2207, 0x057f, 0x0040, 0x21eb, 0x78e0, 0xa086, 0x0003, 0x0040,
611 0x21f0, 0x0078, 0x21de, 0x8528, 0x78c8, 0xa005, 0x0040, 0x218e,
612 0x85ff, 0x0040, 0x21f7, 0x2091, 0x4080, 0x78b0, 0x70d6, 0x007c,
613 0x7bac, 0x79b0, 0x70d4, 0xa102, 0x00c0, 0x2201, 0x2300, 0xa005,
614 0x007c, 0x0048, 0x2205, 0xa302, 0x007c, 0x8002, 0x007c, 0x2001,
615 0x04fd, 0x2004, 0xa082, 0x0005, 0x00c8, 0x2221, 0x2091, 0x8000,
616 0x2071, 0x0020, 0x7004, 0xa005, 0x00c0, 0x2256, 0x7008, 0x7208,
617 0xa206, 0x00c0, 0x2256, 0xa286, 0x0008, 0x00c0, 0x2256, 0x2071,
618 0x0010, 0x1078, 0x225b, 0x2009, 0x0020, 0x6004, 0xa086, 0x0103,
619 0x00c0, 0x2230, 0x6028, 0xa005, 0x00c0, 0x2230, 0x2009, 0x000c,
620 0x1078, 0x1976, 0x0040, 0x2249, 0x78c4, 0x8000, 0x78c6, 0xa086,
621 0x0002, 0x00c0, 0x2256, 0x2091, 0x8000, 0x78e3, 0x0003, 0x78c7,
622 0x0000, 0x78cc, 0xa085, 0x0300, 0x78ce, 0x2091, 0x8001, 0x0078,
623 0x2256, 0x78c7, 0x0000, 0x1078, 0x1cf2, 0x79ac, 0x78b0, 0x8000,
624 0xa10a, 0x00c8, 0x2254, 0xa006, 0x78b2, 0xa006, 0x2071, 0x0010,
625 0x2091, 0x8001, 0x007c, 0x8107, 0x8004, 0x8004, 0x7ab8, 0x7bb4,
626 0x7cc0, 0x7dbc, 0xa210, 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9,
627 0x0000, 0x007c, 0x2009, 0x525b, 0x2091, 0x8000, 0x200a, 0x0f7e,
628 0x0e7e, 0x2071, 0x5240, 0x7000, 0xa086, 0x0000, 0x00c0, 0x2289,
629 0x2009, 0x5212, 0x2104, 0xa005, 0x00c0, 0x2289, 0x2079, 0x0100,
630 0x7830, 0xa084, 0x00c0, 0x00c0, 0x2289, 0x0018, 0x2289, 0x781b,
631 0x004b, 0x0e7f, 0x0f7f, 0x007c, 0x0f7e, 0x0e7e, 0x2071, 0x5240,
632 0x2091, 0x8000, 0x7000, 0xa086, 0x0000, 0x00c0, 0x22a2, 0x2079,
633 0x0100, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x22a2, 0x0018, 0x22a2,
634 0x781b, 0x004d, 0x2091, 0x8001, 0x0e7f, 0x0f7f, 0x007c, 0x127e,
635 0x2091, 0x2300, 0x2071, 0x5240, 0x2079, 0x0100, 0x784b, 0x000f,
636 0x0098, 0x22b5, 0x7838, 0x0078, 0x22ae, 0x20a9, 0x0040, 0x7800,
637 0xa082, 0x0004, 0x0048, 0x22be, 0x20a9, 0x0060, 0x789b, 0x0000,
638 0x78af, 0x0000, 0x78af, 0x0000, 0x0070, 0x22c8, 0x0078, 0x22c0,
639 0x7800, 0xa082, 0x0004, 0x0048, 0x22d7, 0x70b7, 0x0093, 0x2019,
640 0x4ff0, 0x1078, 0x2313, 0x702f, 0x8001, 0x0078, 0x22e3, 0x70b7,
641 0x0000, 0x2019, 0x4e70, 0x1078, 0x2313, 0x2019, 0x4eaf, 0x1078,
642 0x2313, 0x702f, 0x8000, 0x7003, 0x0000, 0x1078, 0x2420, 0x7004,
643 0xa084, 0x000f, 0x017e, 0x2009, 0x04fd, 0x210c, 0xa18a, 0x0005,
644 0x0048, 0x22f8, 0x0038, 0x22fe, 0xa085, 0x6280, 0x0078, 0x2300,
645 0x0028, 0x22fe, 0xa085, 0x6280, 0x0078, 0x2300, 0xa085, 0x62c0,
646 0x017f, 0x7806, 0x780f, 0xb204, 0x7843, 0x00d8, 0x7853, 0x0080,
647 0x780b, 0x0008, 0x7047, 0x0008, 0x7053, 0x527f, 0x704f, 0x0000,
648 0x127f, 0x2000, 0x007c, 0x137e, 0x147e, 0x157e, 0x047e, 0x20a1,
649 0x012b, 0x2304, 0xa005, 0x789a, 0x0040, 0x2333, 0x8318, 0x2324,
650 0x8318, 0x2398, 0x24a8, 0xa484, 0xff00, 0x0040, 0x232b, 0xa482,
651 0x0100, 0x20a9, 0x0100, 0x2020, 0x53a6, 0xa005, 0x00c0, 0x2322,
652 0x3318, 0x0078, 0x2319, 0x047f, 0x157f, 0x147f, 0x137f, 0x007c,
653 0xa18c, 0x000f, 0x2011, 0x0101, 0x2204, 0xa084, 0xfff0, 0xa105,
654 0x2012, 0x1078, 0x2420, 0x007c, 0x2011, 0x0101, 0x20a9, 0x0009,
655 0x810b, 0x0070, 0x234d, 0x0078, 0x2348, 0xa18c, 0x0e00, 0x2204,
656 0xa084, 0xf1ff, 0xa105, 0x2012, 0x007c, 0x2009, 0x0101, 0x20a9,
657 0x0005, 0x8213, 0x0070, 0x235e, 0x0078, 0x2359, 0xa294, 0x00e0,
658 0x2104, 0xa084, 0xff1f, 0xa205, 0x200a, 0x007c, 0x2011, 0x0101,
659 0x20a9, 0x000c, 0x810b, 0x0070, 0x236f, 0x0078, 0x236a, 0xa18c,
660 0xf000, 0x2204, 0xa084, 0x0fff, 0xa105, 0x2012, 0x007c, 0x2011,
661 0x0102, 0x2204, 0xa084, 0xffcf, 0xa105, 0x2012, 0x007c, 0x8103,
662 0x8003, 0xa080, 0x0020, 0x0c7e, 0x2061, 0x0100, 0x609a, 0x62ac,
663 0x63ac, 0x0c7f, 0x007c, 0x8103, 0x8003, 0xa080, 0x0022, 0x0c7e,
664 0x2061, 0x0100, 0x609a, 0x60a4, 0xa084, 0xffdf, 0x60ae, 0x0c7f,
665 0x007c, 0x8103, 0x8003, 0xa080, 0x0022, 0x0c7e, 0x2061, 0x0100,
666 0x609a, 0x60a4, 0xa085, 0x0020, 0x60ae, 0x0c7f, 0x007c, 0x8103,
667 0x8003, 0xa080, 0x0020, 0x0c7e, 0x2061, 0x0100, 0x609a, 0x60a4,
668 0x62ae, 0x2010, 0x60a4, 0x63ae, 0x2018, 0x0c7f, 0x007c, 0x2091,
669 0x8000, 0x0c7e, 0x0e7e, 0x6818, 0xa005, 0x0040, 0x23fe, 0x2061,
670 0x7600, 0x1078, 0x2406, 0x0040, 0x23e8, 0x20a9, 0x0000, 0x2061,
671 0x7500, 0x0c7e, 0x1078, 0x2406, 0x0040, 0x23d6, 0x0c7f, 0x8c60,
672 0x0070, 0x23d4, 0x0078, 0x23c9, 0x0078, 0x23fe, 0x007f, 0xa082,
673 0x7500, 0x2071, 0x5240, 0x7086, 0x7182, 0x2001, 0x0004, 0x706e,
674 0x7093, 0x000f, 0x7073, 0x0000, 0x1078, 0x226a, 0x0078, 0x23fa,
675 0x60c0, 0xa005, 0x00c0, 0x23fe, 0x2071, 0x5240, 0x7182, 0x2c00,
676 0x708a, 0x2001, 0x0006, 0x706e, 0x7093, 0x000f, 0x7073, 0x0000,
677 0x1078, 0x226a, 0x2001, 0x0000, 0x0078, 0x2400, 0x2001, 0x0001,
678 0x2091, 0x8001, 0xa005, 0x0e7f, 0x0c7f, 0x007c, 0x2c04, 0xa005,
679 0x0040, 0x241d, 0x2060, 0x600c, 0xa306, 0x00c0, 0x241a, 0x6010,
680 0xa206, 0x00c0, 0x241a, 0x6014, 0xa106, 0x00c0, 0x241a, 0xa006,
681 0x0078, 0x241f, 0x6000, 0x0078, 0x2407, 0xa085, 0x0001, 0x007c,
682 0x2011, 0x5241, 0x220c, 0xa18c, 0x000f, 0x2011, 0x013b, 0x2204,
683 0xa084, 0x0100, 0x0040, 0x2436, 0x2021, 0xff04, 0x2122, 0x810b,
684 0x810b, 0x810b, 0x810b, 0xa18d, 0x0f00, 0x2104, 0x007c, 0x0e7e,
685 0x68e4, 0xa08c, 0x0020, 0x0040, 0x248a, 0xa084, 0x0006, 0x00c0,
686 0x248a, 0x6014, 0x8007, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003,
687 0xa0f0, 0x5480, 0x7004, 0xa084, 0x000a, 0x00c0, 0x248a, 0x7108,
688 0xa194, 0xff00, 0x0040, 0x248a, 0xa18c, 0x00ff, 0x2001, 0x000c,
689 0xa106, 0x0040, 0x2471, 0x2001, 0x0012, 0xa106, 0x0040, 0x2475,
690 0x2001, 0x0014, 0xa106, 0x0040, 0x2479, 0x2001, 0x0019, 0xa106,
691 0x0040, 0x247d, 0x2001, 0x0032, 0xa106, 0x0040, 0x2481, 0x0078,
692 0x2485, 0x2009, 0x0012, 0x0078, 0x2487, 0x2009, 0x0014, 0x0078,
693 0x2487, 0x2009, 0x0019, 0x0078, 0x2487, 0x2009, 0x0020, 0x0078,
694 0x2487, 0x2009, 0x003f, 0x0078, 0x2487, 0x2011, 0x0000, 0x2100,
695 0xa205, 0x700a, 0x0e7f, 0x007c, 0x0068, 0x248c, 0x2091, 0x8000,
696 0x2071, 0x0000, 0x007e, 0x7018, 0xa084, 0x0001, 0x00c0, 0x2493,
697 0x007f, 0x2071, 0x0010, 0x70ca, 0x007f, 0x70c6, 0x70c3, 0x8002,
698 0x70db, 0x0741, 0x70df, 0x0006, 0x2071, 0x0000, 0x701b, 0x0001,
699 0x2091, 0x4080, 0x0078, 0x24aa, 0x107e, 0x007e, 0x127e, 0x2091,
700 0x2300, 0x7f3c, 0x7e58, 0x7c30, 0x7d38, 0x77c2, 0x74c6, 0x76ca,
701 0x75ce, 0xa594, 0x003f, 0xa49c, 0x0003, 0xa484, 0x000f, 0x0079,
702 0x24c1, 0x24d3, 0x24d3, 0x24d3, 0x280d, 0x3a09, 0x24d1, 0x2502,
703 0x250c, 0x24d1, 0x24d1, 0x24d1, 0x24d1, 0x24d1, 0x24d1, 0x24d1,
704 0x24d1, 0x1078, 0x248c, 0x8507, 0xa084, 0x001f, 0x0079, 0x24d8,
705 0x2516, 0x280d, 0x29c7, 0x2ac4, 0x2aec, 0x2d8c, 0x3037, 0x309a,
706 0x30fb, 0x3180, 0x3238, 0x32d6, 0x2502, 0x28e9, 0x300c, 0x24f8,
707 0x3dac, 0x3dcc, 0x3f8f, 0x3f9b, 0x4074, 0x24f8, 0x24f8, 0x4149,
708 0x414d, 0x3daa, 0x24f8, 0x3efa, 0x24f8, 0x3c5e, 0x250c, 0x24f8,
709 0x1078, 0x248c, 0x0018, 0x24b1, 0x127f, 0x2091, 0x8001, 0x007f,
710 0x107f, 0x007c, 0x2019, 0x4f49, 0x1078, 0x2313, 0x702f, 0x0001,
711 0x781b, 0x004f, 0x0078, 0x24fa, 0x2019, 0x4eaf, 0x1078, 0x2313,
712 0x702f, 0x8000, 0x781b, 0x00cd, 0x0078, 0x24fa, 0x7242, 0x2009,
713 0x520f, 0x200b, 0x0000, 0xa584, 0x0001, 0x00c0, 0x3c72, 0x0040,
714 0x2533, 0x1078, 0x248c, 0x7003, 0x0000, 0x704b, 0x0000, 0x7043,
715 0x0000, 0x7037, 0x0000, 0x1078, 0x39e0, 0x0018, 0x24b1, 0x2009,
716 0x520f, 0x200b, 0x0000, 0x7068, 0xa005, 0x00c0, 0x25fe, 0x706c,
717 0xa084, 0x0007, 0x0079, 0x253c, 0x2635, 0x2544, 0x2550, 0x256d,
718 0x258f, 0x25dc, 0x25b5, 0x2544, 0x1078, 0x39c8, 0x2009, 0x0048,
719 0x1078, 0x2ed8, 0x00c0, 0x254e, 0x7003, 0x0004, 0x0078, 0x24fa,
720 0x1078, 0x39c8, 0x00c0, 0x256b, 0x7080, 0x8007, 0x7882, 0x789b,
721 0x0010, 0x78ab, 0x000c, 0x789b, 0x0060, 0x78ab, 0x0001, 0x785b,
722 0x0004, 0x2009, 0x00dd, 0x1078, 0x2ecc, 0x00c0, 0x256b, 0x7003,
723 0x0004, 0x7093, 0x000f, 0x0078, 0x24fa, 0x1078, 0x39c8, 0x00c0,
724 0x258d, 0x7180, 0x8107, 0x7882, 0x789b, 0x0010, 0xa18c, 0x001f,
725 0xa18d, 0x00c0, 0x79aa, 0x78ab, 0x0006, 0x789b, 0x0060, 0x78ab,
726 0x0002, 0x785b, 0x0004, 0x2009, 0x00dd, 0x1078, 0x2ecc, 0x00c0,
727 0x258d, 0x7003, 0x0004, 0x7093, 0x000f, 0x0078, 0x24fa, 0x1078,
728 0x39c8, 0x00c0, 0x25b3, 0x7180, 0x8107, 0x7882, 0x789b, 0x0010,
729 0xa18c, 0x001f, 0xa18d, 0x00c0, 0x79aa, 0x78ab, 0x0020, 0x7184,
730 0x79aa, 0x78ab, 0x000d, 0x789b, 0x0060, 0x78ab, 0x0004, 0x785b,
731 0x0004, 0x2009, 0x00dd, 0x1078, 0x2ecc, 0x00c0, 0x25b3, 0x7003,
732 0x0004, 0x7093, 0x000f, 0x0078, 0x24fa, 0x1078, 0x39c8, 0x00c0,
733 0x25da, 0x7180, 0x8107, 0x7882, 0x789b, 0x0010, 0xa18c, 0x001f,
734 0xa18d, 0x00c0, 0x79aa, 0x78ab, 0x0006, 0x789b, 0x0060, 0x78ab,
735 0x0002, 0x785b, 0x0004, 0x2009, 0x00dd, 0x1078, 0x2ecc, 0x00c0,
736 0x25da, 0x7088, 0x708b, 0x0000, 0x2068, 0x704a, 0x7003, 0x0002,
737 0x7093, 0x000f, 0x0078, 0x24fa, 0x1078, 0x39c8, 0x00c0, 0x24fa,
738 0x7088, 0x2068, 0x6f14, 0x1078, 0x38bd, 0x2c50, 0x1078, 0x3a7a,
739 0x789b, 0x0010, 0x6814, 0xa084, 0x001f, 0xa085, 0x0080, 0x78aa,
740 0x6e1c, 0x2041, 0x0001, 0x708c, 0xa084, 0x0400, 0x2001, 0x0004,
741 0x0040, 0x25fc, 0x2001, 0x0006, 0x0078, 0x271d, 0x1078, 0x39c8,
742 0x00c0, 0x24fa, 0x789b, 0x0010, 0x7068, 0x2068, 0x6f14, 0x1078,
743 0x38bd, 0x2c50, 0x1078, 0x3a7a, 0x6008, 0xa085, 0x0010, 0x600a,
744 0x6824, 0xa005, 0x0040, 0x261c, 0xa082, 0x0006, 0x0048, 0x261a,
745 0x0078, 0x261c, 0x6827, 0x0005, 0x6b14, 0xa39c, 0x001f, 0xa39d,
746 0x00c0, 0x7058, 0xa084, 0x8000, 0x0040, 0x262a, 0xa684, 0x0001,
747 0x0040, 0x262c, 0xa39c, 0xffbf, 0x7baa, 0x2031, 0x0020, 0x2041,
748 0x0001, 0x2001, 0x0003, 0x0078, 0x271d, 0x0018, 0x24b1, 0x744c,
749 0xa485, 0x0000, 0x0040, 0x264f, 0xa080, 0x5280, 0x2030, 0x7150,
750 0x8108, 0xa12a, 0x0048, 0x2646, 0x2009, 0x5280, 0x2164, 0x6504,
751 0x85ff, 0x00c0, 0x2660, 0x8421, 0x00c0, 0x2640, 0x7152, 0x7003,
752 0x0000, 0x704b, 0x0000, 0x7040, 0xa005, 0x0040, 0x3c72, 0x0078,
753 0x24fa, 0x764c, 0xa6b0, 0x5280, 0x7150, 0x2600, 0x0078, 0x264b,
754 0x7152, 0x2568, 0x2558, 0x754a, 0x2c50, 0x6034, 0xa085, 0x0000,
755 0x00c0, 0x265d, 0x6708, 0x773a, 0xa784, 0x033f, 0x0040, 0x2696,
756 0xa784, 0x0021, 0x00c0, 0x265d, 0xa784, 0x0002, 0x0040, 0x267f,
757 0xa784, 0x0004, 0x0040, 0x265d, 0xa7bc, 0xfffb, 0x670a, 0xa784,
758 0x0008, 0x00c0, 0x265d, 0xa784, 0x0010, 0x00c0, 0x265d, 0xa784,
759 0x0200, 0x00c0, 0x265d, 0xa784, 0x0100, 0x0040, 0x2696, 0x6018,
760 0xa005, 0x00c0, 0x265d, 0xa7bc, 0xfeff, 0x670a, 0x6823, 0x0000,
761 0x6e1c, 0xa684, 0x000e, 0x6118, 0x0040, 0x26a6, 0x601c, 0xa102,
762 0x0048, 0x26a9, 0x0040, 0x26a9, 0x0078, 0x2659, 0x81ff, 0x00c0,
763 0x2659, 0x68c3, 0x0000, 0xa784, 0x0080, 0x00c0, 0x26b1, 0x700c,
764 0x6022, 0xa7bc, 0xff7f, 0x670a, 0x1078, 0x3a7a, 0x0018, 0x24b1,
765 0x789b, 0x0010, 0xa046, 0x1078, 0x39c8, 0x00c0, 0x24fa, 0x6b14,
766 0xa39c, 0x001f, 0xa39d, 0x00c0, 0x7058, 0xa084, 0x8000, 0x0040,
767 0x26cd, 0xa684, 0x0001, 0x0040, 0x26cf, 0xa39c, 0xffbf, 0xa684,
768 0x0010, 0x0040, 0x26d5, 0xa39d, 0x0020, 0x7baa, 0x8840, 0xa684,
769 0x000e, 0x00c0, 0x26e0, 0xa7bd, 0x0010, 0x670a, 0x0078, 0x271b,
770 0x7158, 0xa18c, 0x0800, 0x0040, 0x34cb, 0x2011, 0x0020, 0xa684,
771 0x0008, 0x00c0, 0x26f1, 0x8210, 0xa684, 0x0002, 0x00c0, 0x26f1,
772 0x8210, 0x7aaa, 0x8840, 0x1078, 0x39e0, 0x6a14, 0x610c, 0x8108,
773 0xa18c, 0x00ff, 0xa1e0, 0x7500, 0x2c64, 0x8cff, 0x0040, 0x2712,
774 0x6014, 0xa206, 0x00c0, 0x26fc, 0x60b8, 0x8001, 0x60ba, 0x00c0,
775 0x26f7, 0x0c7e, 0x2a60, 0x6008, 0xa085, 0x0100, 0x600a, 0x0c7f,
776 0x0078, 0x2635, 0x1078, 0x39c8, 0x00c0, 0x24fa, 0x2a60, 0x610e,
777 0x79aa, 0x8840, 0x7132, 0x2001, 0x0001, 0x007e, 0x715c, 0xa184,
778 0x0018, 0x0040, 0x2738, 0xa184, 0x0010, 0x0040, 0x272b, 0x1078,
779 0x36d0, 0x00c0, 0x275b, 0xa184, 0x0008, 0x0040, 0x2738, 0x69a0,
780 0xa184, 0x0600, 0x00c0, 0x2738, 0x1078, 0x35bb, 0x0078, 0x275b,
781 0x69a0, 0xa184, 0x0800, 0x0040, 0x274f, 0x0c7e, 0x027e, 0x2960,
782 0x6000, 0xa085, 0x2000, 0x6002, 0x6104, 0xa18d, 0x0010, 0x6106,
783 0x027f, 0x0c7f, 0x1078, 0x36d0, 0x00c0, 0x275b, 0x69a0, 0xa184,
784 0x0200, 0x0040, 0x2757, 0x1078, 0x360c, 0x0078, 0x275b, 0xa184,
785 0x0400, 0x00c0, 0x2734, 0x69a0, 0xa184, 0x1000, 0x0040, 0x2766,
786 0x6914, 0xa18c, 0xff00, 0x810f, 0x1078, 0x238b, 0x007f, 0x7002,
787 0xa68c, 0x00e0, 0xa684, 0x0060, 0x0040, 0x2774, 0xa086, 0x0060,
788 0x00c0, 0x2774, 0xa18d, 0x4000, 0x88ff, 0x0040, 0x2779, 0xa18d,
789 0x0004, 0x795a, 0x69b6, 0x789b, 0x0060, 0x2800, 0x78aa, 0x789b,
790 0x0061, 0x6818, 0xa08d, 0x8000, 0xa084, 0x7fff, 0x691a, 0xa68c,
791 0x0080, 0x0040, 0x2798, 0x7097, 0x0000, 0xa08a, 0x000d, 0x0050,
792 0x2796, 0xa08a, 0x000c, 0x7196, 0x2001, 0x000c, 0x800c, 0x719a,
793 0x78aa, 0x8008, 0x810c, 0x0040, 0x34d1, 0xa18c, 0x00f8, 0x00c0,
794 0x34d1, 0x157e, 0x137e, 0x147e, 0x20a1, 0x012b, 0x789b, 0x0000,
795 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x147f, 0x137f,
796 0x157f, 0x6814, 0x8007, 0x7882, 0x6d94, 0x7dd6, 0x7dde, 0x6e98,
797 0x7ed2, 0x7eda, 0x1078, 0x39c8, 0x00c0, 0x27cf, 0x702c, 0x8003,
798 0x0048, 0x27c8, 0x2019, 0x4eaf, 0x1078, 0x2313, 0x702f, 0x8000,
799 0x7830, 0xa084, 0x00c0, 0x00c0, 0x27cf, 0x0098, 0x27d7, 0x6008,
800 0xa084, 0xffef, 0x600a, 0x1078, 0x39e0, 0x0078, 0x2523, 0x7200,
801 0xa284, 0x0007, 0xa086, 0x0001, 0x00c0, 0x27e4, 0x781b, 0x004f,
802 0x1078, 0x39e0, 0x0078, 0x27f5, 0x6ab4, 0xa295, 0x2000, 0x7a5a,
803 0x781b, 0x004f, 0x1078, 0x39e0, 0x7200, 0x2500, 0xa605, 0x0040,
804 0x27f5, 0xa284, 0x0007, 0x1079, 0x2803, 0xad80, 0x0009, 0x7036,
805 0xa284, 0x0007, 0xa086, 0x0001, 0x00c0, 0x24fa, 0x6018, 0x8000,
806 0x601a, 0x0078, 0x24fa, 0x280b, 0x4b4b, 0x4b4b, 0x4b3a, 0x4b4b,
807 0x280b, 0x4b3a, 0x280b, 0x1078, 0x248c, 0x1078, 0x39c8, 0x0f7e,
808 0x2079, 0x5200, 0x78cc, 0x0f7f, 0xa084, 0x0001, 0x0040, 0x2831,
809 0x706c, 0xa086, 0x0001, 0x00c0, 0x2820, 0x706e, 0x0078, 0x28c4,
810 0x706c, 0xa086, 0x0005, 0x00c0, 0x282f, 0x7088, 0x2068, 0x681b,
811 0x0004, 0x6817, 0x0000, 0x6820, 0xa085, 0x0008, 0x6822, 0x706f,
812 0x0000, 0x2011, 0x0004, 0x716c, 0xa186, 0x0001, 0x0040, 0x2852,
813 0xa186, 0x0007, 0x00c0, 0x2842, 0x2009, 0x5238, 0x200b, 0x0005,
814 0x0078, 0x2852, 0x2009, 0x5213, 0x2104, 0x2009, 0x5212, 0x200a,
815 0x2009, 0x5238, 0x200b, 0x0001, 0x706f, 0x0000, 0x7073, 0x0001,
816 0x0078, 0x2854, 0x706f, 0x0000, 0x1078, 0x4887, 0x157e, 0x20a9,
817 0x0010, 0x2039, 0x0000, 0x1078, 0x37b0, 0xa7b8, 0x0100, 0x0070,
818 0x2863, 0x0078, 0x285b, 0x157f, 0x7000, 0x0079, 0x2867, 0x2895,
819 0x287c, 0x287c, 0x286f, 0x2895, 0x2895, 0x2895, 0x2895, 0x2021,
820 0x525a, 0x2404, 0xa005, 0x0040, 0x2895, 0xad06, 0x00c0, 0x287c,
821 0x6800, 0x2022, 0x0078, 0x288c, 0x6820, 0xa084, 0x0001, 0x00c0,
822 0x2888, 0x6f14, 0x1078, 0x38bd, 0x1078, 0x34a2, 0x0078, 0x288c,
823 0x7060, 0x2060, 0x6800, 0x6002, 0x6a1a, 0x6817, 0x0000, 0x6820,
824 0xa085, 0x0008, 0x6822, 0x1078, 0x1cdc, 0x2021, 0x7600, 0x1078,
825 0x28d1, 0x2021, 0x525a, 0x1078, 0x28d1, 0x157e, 0x20a9, 0x0000,
826 0x2021, 0x7500, 0x1078, 0x28d1, 0x8420, 0x0070, 0x28a9, 0x0078,
827 0x28a2, 0x2061, 0x5500, 0x2021, 0x0002, 0x20a9, 0x0100, 0x6018,
828 0x6110, 0x81ff, 0x0040, 0x28b8, 0xa102, 0x0050, 0x28b8, 0x6012,
829 0x601b, 0x0000, 0xace0, 0x0010, 0x0070, 0x28c0, 0x0078, 0x28af,
830 0x8421, 0x00c0, 0x28ad, 0x157f, 0x709c, 0xa084, 0x8000, 0x0040,
831 0x28cb, 0x1078, 0x3ace, 0x7003, 0x0000, 0x704b, 0x0000, 0x0078,
832 0x24fa, 0x047e, 0x2404, 0xa005, 0x0040, 0x28e5, 0x2068, 0x6800,
833 0x007e, 0x6a1a, 0x6817, 0x0000, 0x6820, 0xa085, 0x0008, 0x6822,
834 0x1078, 0x1cdc, 0x007f, 0x0078, 0x28d3, 0x047f, 0x2023, 0x0000,
835 0x007c, 0xa282, 0x0003, 0x0050, 0x28ef, 0x1078, 0x248c, 0x2300,
836 0x0079, 0x28f2, 0x28f5, 0x2968, 0x2985, 0xa282, 0x0002, 0x0040,
837 0x28fb, 0x1078, 0x248c, 0x706c, 0x706f, 0x0000, 0x7093, 0x0000,
838 0x0079, 0x2902, 0x290a, 0x290a, 0x290c, 0x2940, 0x34d7, 0x290a,
839 0x2940, 0x290a, 0x1078, 0x248c, 0x7780, 0x1078, 0x37b0, 0x7780,
840 0xa7bc, 0x0f00, 0x1078, 0x38bd, 0x6018, 0xa005, 0x0040, 0x2937,
841 0x2021, 0x7600, 0x2009, 0x0004, 0x2011, 0x0010, 0x1078, 0x29a0,
842 0x0040, 0x2937, 0x157e, 0x20a9, 0x0000, 0x2021, 0x7500, 0x047e,
843 0x2009, 0x0004, 0x2011, 0x0010, 0x1078, 0x29a0, 0x047f, 0x0040,
844 0x2936, 0x8420, 0x0070, 0x2936, 0x0078, 0x2927, 0x157f, 0x8738,
845 0xa784, 0x001f, 0x00c0, 0x2912, 0x0078, 0x2523, 0x0078, 0x2523,
846 0x7780, 0x1078, 0x38bd, 0x6018, 0xa005, 0x0040, 0x2966, 0x2021,
847 0x7600, 0x2009, 0x0005, 0x2011, 0x0020, 0x1078, 0x29a0, 0x0040,
848 0x2966, 0x157e, 0x20a9, 0x0000, 0x2021, 0x7500, 0x047e, 0x2009,
849 0x0005, 0x2011, 0x0020, 0x1078, 0x29a0, 0x047f, 0x0040, 0x2965,
850 0x8420, 0x0070, 0x2965, 0x0078, 0x2956, 0x157f, 0x0078, 0x2523,
851 0x2200, 0x0079, 0x296b, 0x296e, 0x2970, 0x2970, 0x1078, 0x248c,
852 0x2009, 0x0012, 0x706c, 0xa086, 0x0002, 0x0040, 0x2979, 0x2009,
853 0x000e, 0x6818, 0xa084, 0x8000, 0x0040, 0x297f, 0x691a, 0x706f,
854 0x0000, 0x7073, 0x0001, 0x0078, 0x3956, 0x2200, 0x0079, 0x2988,
855 0x298d, 0x2970, 0x298b, 0x1078, 0x248c, 0x1078, 0x4887, 0x7000,
856 0xa086, 0x0001, 0x00c0, 0x3467, 0x1078, 0x34b8, 0x6008, 0xa084,
857 0xffef, 0x600a, 0x1078, 0x345a, 0x0040, 0x3467, 0x0078, 0x2635,
858 0x2404, 0xa005, 0x0040, 0x29c3, 0x2068, 0x2d04, 0x007e, 0x6814,
859 0xa706, 0x0040, 0x29af, 0x2d20, 0x007f, 0x0078, 0x29a1, 0x007f,
860 0x2022, 0x691a, 0x6817, 0x0000, 0x6820, 0xa205, 0x6822, 0x1078,
861 0x1cdc, 0x6010, 0x8001, 0x6012, 0x6008, 0xa084, 0xffef, 0x600a,
862 0x1078, 0x34b8, 0x007c, 0xa085, 0x0001, 0x0078, 0x29c2, 0x2300,
863 0x0079, 0x29ca, 0x29cf, 0x29cd, 0x2a68, 0x1078, 0x248c, 0x78ec,
864 0xa084, 0x0001, 0x00c0, 0x29e3, 0x7000, 0xa086, 0x0004, 0x00c0,
865 0x29db, 0x0078, 0x2a06, 0x1078, 0x34b8, 0x6008, 0xa084, 0xffef,
866 0x600a, 0x0078, 0x3467, 0x78e4, 0xa005, 0x00d0, 0x2a06, 0x0018,
867 0x24fa, 0x2008, 0xa084, 0x0030, 0x00c0, 0x29f2, 0x781b, 0x004f,
868 0x0078, 0x24fa, 0x78ec, 0xa084, 0x0003, 0x0040, 0x29ee, 0x2100,
869 0xa084, 0x0007, 0x0079, 0x29fc, 0x2a3f, 0x2a4a, 0x2a30, 0x2a04,
870 0x39bb, 0x39bb, 0x2a04, 0x2a59, 0x1078, 0x248c, 0x7000, 0xa086,
871 0x0004, 0x00c0, 0x2a20, 0x706c, 0xa086, 0x0002, 0x00c0, 0x2a16,
872 0x2011, 0x0002, 0x2019, 0x0000, 0x0078, 0x28e9, 0x706c, 0xa086,
873 0x0006, 0x0040, 0x2a10, 0x706c, 0xa086, 0x0004, 0x0040, 0x2a10,
874 0x79e4, 0xa184, 0x0030, 0x0040, 0x2a2a, 0x78ec, 0xa084, 0x0003,
875 0x00c0, 0x2a2c, 0x0078, 0x300c, 0x2001, 0x0003, 0x0078, 0x2da0,
876 0x6818, 0xa084, 0x8000, 0x0040, 0x2a37, 0x681b, 0x001d, 0x1078,
877 0x378f, 0x782b, 0x3008, 0x781b, 0x0056, 0x0078, 0x24fa, 0x6818,
878 0xa084, 0x8000, 0x0040, 0x2a46, 0x681b, 0x001d, 0x1078, 0x378f,
879 0x0078, 0x3986, 0x6818, 0xa084, 0x8000, 0x0040, 0x2a51, 0x681b,
880 0x001d, 0x1078, 0x378f, 0x782b, 0x3008, 0x781b, 0x00ca, 0x0078,
881 0x24fa, 0x6818, 0xa084, 0x8000, 0x0040, 0x2a60, 0x681b, 0x001d,
882 0x1078, 0x378f, 0x782b, 0x3008, 0x781b, 0x008f, 0x0078, 0x24fa,
883 0xa584, 0x000f, 0x00c0, 0x2a85, 0x7000, 0x0079, 0x2a6f, 0x2523,
884 0x2a79, 0x2a77, 0x3467, 0x3467, 0x3467, 0x3467, 0x2a77, 0x1078,
885 0x248c, 0x1078, 0x34b8, 0x6008, 0xa084, 0xffef, 0x600a, 0x1078,
886 0x345a, 0x0040, 0x3467, 0x0078, 0x2635, 0x78e4, 0xa005, 0x00d0,
887 0x2a06, 0x0018, 0x2a06, 0x2008, 0xa084, 0x0030, 0x00c0, 0x2a94,
888 0x781b, 0x004f, 0x0078, 0x24fa, 0x78ec, 0xa084, 0x0003, 0x0040,
889 0x2a90, 0x2100, 0xa184, 0x0007, 0x0079, 0x2a9e, 0x2ab0, 0x2ab4,
890 0x2aa8, 0x2aa6, 0x39bb, 0x39bb, 0x2aa6, 0x39b1, 0x1078, 0x248c,
891 0x1078, 0x3797, 0x782b, 0x3008, 0x781b, 0x0056, 0x0078, 0x24fa,
892 0x1078, 0x3797, 0x0078, 0x3986, 0x1078, 0x3797, 0x782b, 0x3008,
893 0x781b, 0x00ca, 0x0078, 0x24fa, 0x1078, 0x3797, 0x782b, 0x3008,
894 0x781b, 0x008f, 0x0078, 0x24fa, 0x2300, 0x0079, 0x2ac7, 0x2acc,
895 0x2aca, 0x2ace, 0x1078, 0x248c, 0x0078, 0x3180, 0x681b, 0x0008,
896 0x78a3, 0x0000, 0x79e4, 0xa184, 0x0030, 0x0040, 0x3180, 0x78ec,
897 0xa084, 0x0003, 0x0040, 0x3180, 0xa184, 0x0007, 0x0079, 0x2ae0,
898 0x2ae8, 0x2ab4, 0x2a30, 0x3956, 0x39bb, 0x39bb, 0x2ae8, 0x39b1,
899 0x1078, 0x396a, 0x0078, 0x24fa, 0xa282, 0x0005, 0x0050, 0x2af2,
900 0x1078, 0x248c, 0x2300, 0x0079, 0x2af5, 0x2af8, 0x2d4d, 0x2d5b,
901 0x2200, 0x0079, 0x2afb, 0x2b15, 0x2b02, 0x2b15, 0x2b00, 0x2d32,
902 0x1078, 0x248c, 0x789b, 0x0018, 0x78a8, 0xa084, 0x00ff, 0xa082,
903 0x0020, 0x0048, 0x376b, 0xa08a, 0x0004, 0x00c8, 0x376b, 0x0079,
904 0x2b11, 0x376b, 0x376b, 0x376b, 0x3719, 0x789b, 0x0018, 0x79a8,
905 0xa184, 0x0080, 0x0040, 0x2b26, 0x0078, 0x376b, 0x7000, 0xa005,
906 0x00c0, 0x2b1c, 0x2011, 0x0004, 0x0078, 0x32e9, 0xa184, 0x00ff,
907 0xa08a, 0x0010, 0x00c8, 0x376b, 0x0079, 0x2b2e, 0x2b40, 0x2b3e,
908 0x2b58, 0x2b5c, 0x2c17, 0x376b, 0x376b, 0x2c19, 0x376b, 0x376b,
909 0x2d2e, 0x2d2e, 0x376b, 0x376b, 0x376b, 0x2d30, 0x1078, 0x248c,
910 0xa684, 0x1000, 0x0040, 0x2b4d, 0x2001, 0x0500, 0x8000, 0x8000,
911 0x783a, 0x781b, 0x008d, 0x0078, 0x24fa, 0x6818, 0xa084, 0x8000,
912 0x0040, 0x2b56, 0x681b, 0x001d, 0x0078, 0x2b44, 0x0078, 0x3956,
913 0x681b, 0x001d, 0x0078, 0x377b, 0x6920, 0x6922, 0xa684, 0x1800,
914 0x00c0, 0x2b9d, 0x6820, 0xa084, 0x0001, 0x00c0, 0x2ba5, 0x6818,
915 0xa086, 0x0008, 0x00c0, 0x2b6e, 0x681b, 0x0000, 0xa684, 0x0400,
916 0x0040, 0x2c13, 0xa684, 0x0080, 0x0040, 0x2b99, 0x7097, 0x0000,
917 0x6818, 0xa084, 0x003f, 0xa08a, 0x000d, 0x0050, 0x2b99, 0xa08a,
918 0x000c, 0x7196, 0x2001, 0x000c, 0x800c, 0x719a, 0x789b, 0x0061,
919 0x78aa, 0x157e, 0x137e, 0x147e, 0x20a1, 0x012b, 0x789b, 0x0000,
920 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x147f, 0x137f,
921 0x157f, 0x781b, 0x0058, 0x0078, 0x24fa, 0xa684, 0x1000, 0x0040,
922 0x2ba5, 0x781b, 0x0065, 0x0078, 0x24fa, 0xa684, 0x0060, 0x0040,
923 0x2c0f, 0xa684, 0x0800, 0x0040, 0x2c0f, 0xa684, 0x8000, 0x00c0,
924 0x2bb3, 0x0078, 0x2bcb, 0xa6b4, 0x7fff, 0x7e5a, 0x6eb6, 0x7adc,
925 0x79d8, 0x78d0, 0x801b, 0x00c8, 0x2bbe, 0x8000, 0xa084, 0x003f,
926 0xa108, 0xa291, 0x0000, 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94,
927 0x2200, 0xa303, 0x68ae, 0xa684, 0x4000, 0x0040, 0x2bd3, 0xa6b4,
928 0xbfff, 0x7e5a, 0x6eb6, 0x7000, 0xa086, 0x0003, 0x00c0, 0x2be0,
929 0x1078, 0x493d, 0x1078, 0x4b3a, 0x781b, 0x0064, 0x0078, 0x24fa,
930 0xa006, 0x1078, 0x4c41, 0x6ab0, 0x69ac, 0x6c98, 0x6b94, 0x2200,
931 0xa105, 0x0040, 0x2bef, 0x2200, 0xa422, 0x2100, 0xa31b, 0x6caa,
932 0x7cd2, 0x7cda, 0x6ba6, 0x7bd6, 0x7bde, 0x2300, 0xa405, 0x00c0,
933 0x2c01, 0xa6b5, 0x4000, 0x7e5a, 0x6eb6, 0x781b, 0x0064, 0x0078,
934 0x24fa, 0x781b, 0x0064, 0x2200, 0xa115, 0x00c0, 0x2c0b, 0x1078,
935 0x4b4b, 0x0078, 0x24fa, 0x1078, 0x4b96, 0x0078, 0x24fa, 0x781b,
936 0x0065, 0x0078, 0x24fa, 0x781b, 0x0058, 0x0078, 0x24fa, 0x1078,
937 0x248c, 0x0078, 0x2c7a, 0x6920, 0xa184, 0x0100, 0x0040, 0x2c31,
938 0xa18c, 0xfeff, 0x6922, 0x0c7e, 0x7054, 0x2060, 0x6000, 0xa084,
939 0xefff, 0x6002, 0x6004, 0xa084, 0xfff5, 0x6006, 0x0c7f, 0x0078,
940 0x2c69, 0xa184, 0x0200, 0x0040, 0x2c69, 0xa18c, 0xfdff, 0x6922,
941 0x0c7e, 0x7054, 0x2060, 0x6000, 0xa084, 0xdfff, 0x6002, 0x6004,
942 0xa084, 0xffef, 0x6006, 0x2008, 0x2c48, 0x0c7f, 0xa184, 0x0008,
943 0x0040, 0x2c69, 0x1078, 0x38b9, 0x1078, 0x35bb, 0x88ff, 0x0040,
944 0x2c69, 0x789b, 0x0060, 0x2800, 0x78aa, 0x7e58, 0xa6b5, 0x0004,
945 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x2c63, 0x782b, 0x3008, 0x781b,
946 0x0056, 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b, 0x0065, 0x0078,
947 0x24fa, 0x7e58, 0xa684, 0x0400, 0x00c0, 0x2c72, 0x781b, 0x0058,
948 0x0078, 0x24fa, 0x781b, 0x0065, 0x0078, 0x24fa, 0x0078, 0x3773,
949 0x0078, 0x3773, 0x2019, 0x0000, 0x7990, 0xa18c, 0x0007, 0x00c0,
950 0x2c88, 0x6820, 0xa084, 0x0100, 0x0040, 0x2c78, 0x2009, 0x0008,
951 0x789b, 0x0010, 0x78a8, 0xa094, 0x00ff, 0xa286, 0x0001, 0x00c0,
952 0x2cbf, 0x2300, 0x7ca8, 0xa400, 0x2018, 0xa102, 0x0040, 0x2cb7,
953 0x0048, 0x2c9c, 0x0078, 0x2cb9, 0xa380, 0x0002, 0xa102, 0x00c8,
954 0x2cb7, 0x6920, 0xa18c, 0xfcff, 0x6922, 0x0c7e, 0x7054, 0x2060,
955 0x6000, 0xa084, 0xefef, 0x6002, 0x6004, 0xa084, 0xffe5, 0x6006,
956 0x0c7f, 0x7e58, 0xa6b4, 0xfffb, 0x7e5a, 0x0078, 0x2c6a, 0x0078,
957 0x2c1b, 0x24a8, 0x7aa8, 0x00f0, 0x2cb9, 0x0078, 0x2c8a, 0xa284,
958 0x00f0, 0xa086, 0x0020, 0x00c0, 0x2d1f, 0x8318, 0x8318, 0x2300,
959 0xa102, 0x0040, 0x2ccf, 0x0048, 0x2ccf, 0x0078, 0x2d1c, 0xa286,
960 0x0023, 0x0040, 0x2c78, 0x681c, 0xa084, 0xfff1, 0x681e, 0x7e58,
961 0xa684, 0xfff1, 0xa085, 0x0010, 0x2030, 0x7e5a, 0x6008, 0xa085,
962 0x0010, 0x600a, 0x0c7e, 0x7054, 0x2060, 0x6004, 0x2008, 0x2c48,
963 0x0c7f, 0xa184, 0x0010, 0x0040, 0x2cf3, 0x1078, 0x38b9, 0x1078,
964 0x36d0, 0x0078, 0x2d02, 0x0c7e, 0x7054, 0x2060, 0x6004, 0x2008,
965 0x2c48, 0x0c7f, 0xa184, 0x0008, 0x0040, 0x2c69, 0x1078, 0x38b9,
966 0x1078, 0x35bb, 0x88ff, 0x0040, 0x2c69, 0x789b, 0x0060, 0x2800,
967 0x78aa, 0xa6b5, 0x0004, 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x2d16,
968 0x782b, 0x3008, 0x781b, 0x0056, 0x0078, 0x24fa, 0x782b, 0x3008,
969 0x781b, 0x0065, 0x0078, 0x24fa, 0x7aa8, 0x0078, 0x2c8a, 0x8318,
970 0x2300, 0xa102, 0x0040, 0x2d28, 0x0048, 0x2d28, 0x0078, 0x2c8a,
971 0xa284, 0x0080, 0x00c0, 0x377b, 0x0078, 0x3773, 0x0078, 0x377b,
972 0x0078, 0x376b, 0x789b, 0x0018, 0x78a8, 0xa084, 0x00ff, 0xa08e,
973 0x0001, 0x0040, 0x2d3d, 0x1078, 0x248c, 0x7aa8, 0xa294, 0x00ff,
974 0x78a8, 0xa084, 0x00ff, 0xa08a, 0x0004, 0x00c8, 0x376b, 0x0079,
975 0x2d49, 0x376b, 0x3508, 0x376b, 0x3665, 0xa282, 0x0000, 0x00c0,
976 0x2d53, 0x1078, 0x248c, 0x1078, 0x378f, 0x782b, 0x3008, 0x781b,
977 0x0065, 0x0078, 0x24fa, 0xa282, 0x0003, 0x00c0, 0x2d61, 0x1078,
978 0x248c, 0xa484, 0x8000, 0x00c0, 0x2d84, 0x706c, 0xa005, 0x0040,
979 0x2d6b, 0x1078, 0x248c, 0x6f14, 0x7782, 0xa7bc, 0x0f00, 0x1078,
980 0x38bd, 0x6008, 0xa085, 0x0021, 0x600a, 0x8738, 0xa784, 0x001f,
981 0x00c0, 0x2d6f, 0x1078, 0x3793, 0x706f, 0x0002, 0x2009, 0x5238,
982 0x200b, 0x0009, 0x0078, 0x2d86, 0x1078, 0x379f, 0x782b, 0x3008,
983 0x781b, 0x0065, 0x0078, 0x24fa, 0xa282, 0x0004, 0x0050, 0x2d92,
984 0x1078, 0x248c, 0x2300, 0x0079, 0x2d95, 0x2d98, 0x2e81, 0x2eb4,
985 0xa286, 0x0003, 0x0040, 0x2d9e, 0x1078, 0x248c, 0x2001, 0x0000,
986 0x007e, 0x68c0, 0xa005, 0x0040, 0x2da7, 0x7003, 0x0003, 0x68a0,
987 0xa084, 0x2000, 0x0040, 0x2db0, 0x6008, 0xa085, 0x0002, 0x600a,
988 0x007f, 0x703e, 0x7000, 0xa084, 0x0007, 0x0079, 0x2db7, 0x2523,
989 0x2dc1, 0x2dc1, 0x2fb6, 0x2ff2, 0x2523, 0x2ff2, 0x2dbf, 0x1078,
990 0x248c, 0xa684, 0x1000, 0x00c0, 0x2dc9, 0x1078, 0x4887, 0x0040,
991 0x2e5b, 0x7868, 0xa08c, 0x00ff, 0x0040, 0x2e11, 0xa186, 0x0008,
992 0x00c0, 0x2de0, 0x1078, 0x34b8, 0x6008, 0xa084, 0xffef, 0x600a,
993 0x1078, 0x345a, 0x0040, 0x2e11, 0x1078, 0x4887, 0x0078, 0x2df8,
994 0xa186, 0x0028, 0x00c0, 0x2e11, 0x1078, 0x4887, 0x6008, 0xa084,
995 0xffef, 0x600a, 0x6018, 0xa005, 0x0040, 0x2df8, 0x8001, 0x601a,
996 0xa005, 0x0040, 0x2df8, 0x8001, 0xa005, 0x0040, 0x2df8, 0x601e,
997 0x6820, 0xa084, 0x0001, 0x0040, 0x2523, 0x6820, 0xa084, 0xfffe,
998 0x6822, 0x7060, 0x0c7e, 0x2060, 0x6800, 0x6002, 0x0c7f, 0x6004,
999 0x6802, 0xa005, 0x2d00, 0x00c0, 0x2e0e, 0x6002, 0x6006, 0x0078,
1000 0x2523, 0x017e, 0x1078, 0x2ee5, 0x017f, 0xa684, 0xdf00, 0x681e,
1001 0x682b, 0x0000, 0x6f14, 0x81ff, 0x0040, 0x2e5b, 0xa186, 0x0002,
1002 0x00c0, 0x2e5b, 0xa684, 0x0800, 0x00c0, 0x2e2e, 0xa684, 0x0060,
1003 0x0040, 0x2e2e, 0x78d8, 0x7adc, 0x682e, 0x6a32, 0x6820, 0xa084,
1004 0x0800, 0x00c0, 0x2e5b, 0x8717, 0xa294, 0x000f, 0x8213, 0x8213,
1005 0x8213, 0xa290, 0x5480, 0xa290, 0x0000, 0x221c, 0xa384, 0x0100,
1006 0x00c0, 0x2e44, 0x0078, 0x2e4a, 0x8210, 0x2204, 0xa085, 0x0018,
1007 0x2012, 0x8211, 0xa384, 0x0400, 0x0040, 0x2e57, 0x68a0, 0xa084,
1008 0x0100, 0x00c0, 0x2e57, 0x1078, 0x2f69, 0x0078, 0x2523, 0x6008,
1009 0xa085, 0x0002, 0x600a, 0x6916, 0x6818, 0xa084, 0x8000, 0x0040,
1010 0x2e63, 0x703c, 0x681a, 0xa68c, 0xdf00, 0x691e, 0x1078, 0x34a9,
1011 0x1078, 0x34b8, 0x00c0, 0x2e70, 0x6008, 0xa084, 0xffef, 0x600a,
1012 0x6820, 0xa084, 0x0001, 0x00c0, 0x2e79, 0x1078, 0x34a2, 0x0078,
1013 0x2e7d, 0x7060, 0x2060, 0x6800, 0x6002, 0x1078, 0x1cdc, 0x0078,
1014 0x2523, 0xa282, 0x0004, 0x0048, 0x2e87, 0x1078, 0x248c, 0x2200,
1015 0x0079, 0x2e8a, 0x2e85, 0x2e8e, 0x2e9b, 0x2e8e, 0x7000, 0xa086,
1016 0x0005, 0x0040, 0x2e97, 0x1078, 0x378f, 0x782b, 0x3008, 0x781b,
1017 0x0065, 0x0078, 0x24fa, 0x7890, 0x8007, 0x8001, 0xa084, 0x0007,
1018 0xa080, 0x0018, 0x789a, 0x79a8, 0xa18c, 0x00ff, 0xa186, 0x0003,
1019 0x0040, 0x2eb0, 0xa186, 0x0000, 0x0040, 0x2eb0, 0x0078, 0x376b,
1020 0x781b, 0x0065, 0x0078, 0x24fa, 0x6820, 0xa085, 0x0004, 0x6822,
1021 0x82ff, 0x00c0, 0x2ebf, 0x1078, 0x378f, 0x0078, 0x2ec6, 0x8211,
1022 0x0040, 0x2ec4, 0x1078, 0x248c, 0x1078, 0x379f, 0x782b, 0x3008,
1023 0x781b, 0x0065, 0x0078, 0x24fa, 0x702c, 0x8003, 0x0048, 0x2ed6,
1024 0x2019, 0x4eaf, 0x1078, 0x2313, 0x702f, 0x8000, 0x1078, 0x39e0,
1025 0x7830, 0xa084, 0x00c0, 0x00c0, 0x2ee2, 0x0018, 0x2ee2, 0x791a,
1026 0xa006, 0x007c, 0xa085, 0x0001, 0x007c, 0xa684, 0x0060, 0x00c0,
1027 0x2eef, 0x682f, 0x0000, 0x6833, 0x0000, 0x0078, 0x2f68, 0xa684,
1028 0x0800, 0x00c0, 0x2f11, 0x68b4, 0xa084, 0x4800, 0xa635, 0xa684,
1029 0x0800, 0x00c0, 0x2f11, 0x6998, 0x6a94, 0x692e, 0x6a32, 0x703c,
1030 0xa005, 0x00c0, 0x2f09, 0x2200, 0xa105, 0x0040, 0x2f10, 0x703f,
1031 0x0015, 0x7000, 0xa086, 0x0006, 0x0040, 0x2f10, 0x1078, 0x4887,
1032 0x007c, 0xa684, 0x0020, 0x0040, 0x2f33, 0xa684, 0x4000, 0x0040,
1033 0x2f1f, 0x682f, 0x0000, 0x6833, 0x0000, 0x0078, 0x2f09, 0x68b4,
1034 0xa084, 0x4800, 0xa635, 0xa684, 0x4000, 0x00c0, 0x2f19, 0x703c,
1035 0xa005, 0x00c0, 0x2f2d, 0x703f, 0x0015, 0x79d8, 0x7adc, 0x692e,
1036 0x6a32, 0x0078, 0x2f09, 0xa684, 0x4000, 0x0040, 0x2f3d, 0x682f,
1037 0x0000, 0x6833, 0x0000, 0x0078, 0x2f09, 0x68b4, 0xa084, 0x4800,
1038 0xa635, 0xa684, 0x4000, 0x00c0, 0x2f37, 0x703c, 0xa005, 0x00c0,
1039 0x2f4b, 0x703f, 0x0015, 0x79d8, 0x7adc, 0x78d0, 0x80fb, 0x00c8,
1040 0x2f52, 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000, 0x692e,
1041 0x6a32, 0x2100, 0xa205, 0x00c0, 0x2f5f, 0x0078, 0x2f09, 0x7000,
1042 0xa086, 0x0006, 0x0040, 0x2f68, 0x1078, 0x4c41, 0x0078, 0x2f09,
1043 0x007c, 0x6008, 0xa085, 0x0200, 0x600a, 0xa384, 0x0200, 0x0040,
1044 0x2f75, 0x6008, 0xa085, 0x0002, 0x600a, 0x681b, 0x0006, 0x688f,
1045 0x0000, 0x6893, 0x0000, 0x6a30, 0x692c, 0x6a3e, 0x6942, 0x682f,
1046 0x0003, 0x6833, 0x0000, 0x6837, 0x0020, 0x6897, 0x0000, 0x689b,
1047 0x0020, 0x68b3, 0x0000, 0x68af, 0x0000, 0x7000, 0x0079, 0x2f90,
1048 0x2523, 0x2f9a, 0x2fa3, 0x2f98, 0x2f98, 0x2f98, 0x2f98, 0x2f98,
1049 0x1078, 0x248c, 0x6820, 0xa084, 0x0001, 0x00c0, 0x2fa3, 0x1078,
1050 0x34a2, 0x0078, 0x2fa9, 0x7060, 0x2c50, 0x2060, 0x6800, 0x6002,
1051 0x2a60, 0x2021, 0x525a, 0x2404, 0xa005, 0x0040, 0x2fb2, 0x2020,
1052 0x0078, 0x2fab, 0x2d22, 0x206b, 0x0000, 0x007c, 0x1078, 0x34a9,
1053 0x1078, 0x34b8, 0x6008, 0xa084, 0xfdff, 0x600a, 0x682b, 0x0000,
1054 0x789b, 0x000e, 0x6f14, 0x6817, 0x0002, 0x1078, 0x4c89, 0xa684,
1055 0x0800, 0x0040, 0x2fcf, 0x691c, 0xa18d, 0x2000, 0x691e, 0x6818,
1056 0xa084, 0x8000, 0x0040, 0x2fdf, 0x7868, 0xa08c, 0x00ff, 0x0040,
1057 0x2fdd, 0x681b, 0x001e, 0x0078, 0x2fdf, 0x681b, 0x0000, 0x2021,
1058 0x525a, 0x2404, 0xad06, 0x0040, 0x2fe6, 0x7460, 0x6800, 0x2022,
1059 0x68c3, 0x0000, 0x6a3c, 0x6940, 0x6a32, 0x692e, 0x1078, 0x1cdc,
1060 0x0078, 0x2523, 0x1078, 0x2ee5, 0x682b, 0x0000, 0x2001, 0x000e,
1061 0x6f14, 0x1078, 0x39e6, 0xa08c, 0x00ff, 0x6916, 0x6818, 0xa084,
1062 0x8000, 0x0040, 0x3005, 0x703c, 0x681a, 0xa68c, 0xdf00, 0x691e,
1063 0x706f, 0x0000, 0x0078, 0x2523, 0x7000, 0xa005, 0x00c0, 0x3012,
1064 0x0078, 0x2523, 0xa006, 0x1078, 0x4887, 0x6817, 0x0000, 0x681b,
1065 0x0014, 0xa68c, 0xdf00, 0x691e, 0x682b, 0x0000, 0x6820, 0xa085,
1066 0x00ff, 0x6822, 0x7000, 0x0079, 0x3025, 0x2523, 0x302f, 0x302f,
1067 0x3031, 0x3031, 0x3031, 0x3031, 0x302d, 0x1078, 0x248c, 0x1078,
1068 0x34b8, 0x6008, 0xa084, 0xffef, 0x600a, 0x0078, 0x3472, 0x2300,
1069 0x0079, 0x303a, 0x303d, 0x303f, 0x3098, 0x1078, 0x248c, 0xa684,
1070 0x8000, 0x00c0, 0x307d, 0x7000, 0x0079, 0x3046, 0x2523, 0x3050,
1071 0x3050, 0x306c, 0x3050, 0x3079, 0x306c, 0x304e, 0x1078, 0x248c,
1072 0xa684, 0x0060, 0xa086, 0x0060, 0x00c0, 0x3068, 0xa6b4, 0xffdf,
1073 0xa6b4, 0xbfff, 0xa6b5, 0x2000, 0x7e5a, 0x6eb6, 0x681c, 0xa084,
1074 0xffdf, 0x681e, 0x1078, 0x4887, 0x1078, 0x4b4b, 0x0078, 0x3956,
1075 0xa684, 0x2000, 0x0040, 0x305a, 0x6818, 0xa084, 0x8000, 0x0040,
1076 0x3079, 0x681b, 0x0015, 0xa684, 0x4000, 0x0040, 0x3079, 0x681b,
1077 0x0007, 0x1078, 0x396a, 0x0078, 0x24fa, 0xa6b4, 0x7fff, 0x7e5a,
1078 0x7adc, 0x79d8, 0x78d0, 0x79d2, 0x801b, 0x00c8, 0x3088, 0x8000,
1079 0xa084, 0x003f, 0xa108, 0xa291, 0x0000, 0x6b98, 0x2100, 0xa302,
1080 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae, 0x781b, 0x0065, 0x007c,
1081 0x1078, 0x248c, 0x2300, 0x0079, 0x309d, 0x30a0, 0x30a2, 0x30eb,
1082 0x1078, 0x248c, 0xa684, 0x8000, 0x00c0, 0x30da, 0x7000, 0x0079,
1083 0x30a9, 0x2523, 0x30b3, 0x30b3, 0x30cf, 0x30b3, 0x30d6, 0x30cf,
1084 0x30b1, 0x1078, 0x248c, 0xa684, 0x0060, 0xa086, 0x0060, 0x00c0,
1085 0x30cb, 0xa6b4, 0xffbf, 0xa6b4, 0xbfff, 0xa6b5, 0x2000, 0x7e5a,
1086 0x6eb6, 0x681c, 0xa084, 0xffbf, 0x681e, 0x1078, 0x4887, 0x1078,
1087 0x4b4b, 0x0078, 0x3956, 0xa684, 0x2000, 0x0040, 0x30bd, 0x6818,
1088 0xa084, 0x8000, 0x0040, 0x30d6, 0x681b, 0x0007, 0x781b, 0x00ca,
1089 0x0078, 0x24fa, 0xa6b4, 0x7fff, 0x7e5a, 0x7adc, 0x79d8, 0x6b98,
1090 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae, 0x79d2,
1091 0x781b, 0x0065, 0x007c, 0x6820, 0xa085, 0x0004, 0x6822, 0x1078,
1092 0x3921, 0xa6b5, 0x0800, 0x1078, 0x378f, 0x782b, 0x3008, 0x781b,
1093 0x0065, 0x0078, 0x24fa, 0x2300, 0x0079, 0x30fe, 0x3101, 0x3103,
1094 0x3105, 0x1078, 0x248c, 0x0078, 0x377b, 0xa684, 0x0400, 0x00c0,
1095 0x312e, 0x79e4, 0xa184, 0x0020, 0x0040, 0x3115, 0x78ec, 0xa084,
1096 0x0003, 0x0040, 0x3115, 0x782b, 0x3009, 0x789b, 0x0060, 0x78ab,
1097 0x0000, 0xa684, 0xfffb, 0x785a, 0x79e4, 0xa184, 0x0020, 0x0040,
1098 0x3126, 0x78ec, 0xa084, 0x0003, 0x00c0, 0x312a, 0x2001, 0x0014,
1099 0x0078, 0x2da0, 0xa184, 0x0007, 0x0079, 0x3166, 0x7a90, 0xa294,
1100 0x0007, 0x789b, 0x0060, 0x79a8, 0x81ff, 0x0040, 0x3164, 0x789b,
1101 0x0010, 0x7ba8, 0xa384, 0x0001, 0x00c0, 0x3155, 0x7ba8, 0x7ba8,
1102 0xa386, 0x0001, 0x00c0, 0x3148, 0x2009, 0xfff7, 0x0078, 0x314e,
1103 0xa386, 0x0003, 0x00c0, 0x3155, 0x2009, 0xffef, 0x0c7e, 0x7054,
1104 0x2060, 0x6004, 0xa104, 0x6006, 0x0c7f, 0x789b, 0x0060, 0x78ab,
1105 0x0000, 0xa684, 0xfffb, 0x785a, 0x782b, 0x3009, 0x6920, 0xa18c,
1106 0xfdff, 0xa18c, 0xfeff, 0x6922, 0x0078, 0x3956, 0x2a3f, 0x2a4a,
1107 0x3170, 0x3178, 0x316e, 0x316e, 0x3956, 0x3956, 0x1078, 0x248c,
1108 0x6920, 0xa18c, 0xfdff, 0xa18c, 0xfeff, 0x6922, 0x0078, 0x3960,
1109 0x6920, 0xa18c, 0xfdff, 0xa18c, 0xfeff, 0x6922, 0x0078, 0x3956,
1110 0x79e4, 0xa184, 0x0030, 0x0040, 0x318a, 0x78ec, 0xa084, 0x0003,
1111 0x00c0, 0x31b1, 0x7000, 0xa086, 0x0004, 0x00c0, 0x31a4, 0x706c,
1112 0xa086, 0x0002, 0x00c0, 0x319a, 0x2011, 0x0002, 0x2019, 0x0000,
1113 0x0078, 0x28e9, 0x706c, 0xa086, 0x0006, 0x0040, 0x3194, 0x706c,
1114 0xa086, 0x0004, 0x0040, 0x3194, 0x7000, 0xa086, 0x0000, 0x0040,
1115 0x24fa, 0x6818, 0xa085, 0x8000, 0x681a, 0x2001, 0x0014, 0x0078,
1116 0x2da0, 0xa184, 0x0007, 0x0079, 0x31b5, 0x3956, 0x3956, 0x31bd,
1117 0x3956, 0x39bb, 0x39bb, 0x3956, 0x3956, 0xa684, 0x0080, 0x0040,
1118 0x31ec, 0x7194, 0x81ff, 0x0040, 0x31ec, 0xa182, 0x000d, 0x00d0,
1119 0x31cd, 0x7097, 0x0000, 0x0078, 0x31d2, 0xa182, 0x000c, 0x7096,
1120 0x2009, 0x000c, 0x789b, 0x0061, 0x79aa, 0x157e, 0x137e, 0x147e,
1121 0x7098, 0x8114, 0xa210, 0x729a, 0xa080, 0x000b, 0xad00, 0x2098,
1122 0x20a1, 0x012b, 0x789b, 0x0000, 0x8108, 0x81ac, 0x53a6, 0x147f,
1123 0x137f, 0x157f, 0x0078, 0x3960, 0xa684, 0x0400, 0x00c0, 0x322d,
1124 0x6820, 0xa084, 0x0001, 0x0040, 0x3960, 0xa68c, 0x0060, 0xa684,
1125 0x0060, 0x0040, 0x3201, 0xa086, 0x0060, 0x00c0, 0x3201, 0xa18d,
1126 0x4000, 0xa18c, 0xfffb, 0x795a, 0x69b6, 0x789b, 0x0060, 0x78ab,
1127 0x0000, 0x789b, 0x0061, 0x6818, 0xa085, 0x8000, 0x681a, 0x78aa,
1128 0x8008, 0x810c, 0x0040, 0x34d1, 0xa18c, 0x00f8, 0x00c0, 0x34d1,
1129 0x157e, 0x137e, 0x147e, 0x20a1, 0x012b, 0x789b, 0x0000, 0x8000,
1130 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x147f, 0x137f, 0x157f,
1131 0x6814, 0x8007, 0x7882, 0x0078, 0x3960, 0x6818, 0xa084, 0x8000,
1132 0x0040, 0x3234, 0x681b, 0x0008, 0x781b, 0x00c0, 0x0078, 0x24fa,
1133 0x2300, 0x0079, 0x323b, 0x3240, 0x32d4, 0x323e, 0x1078, 0x248c,
1134 0x7000, 0xa084, 0x0007, 0x0079, 0x3245, 0x2523, 0x324f, 0x3284,
1135 0x325a, 0x324d, 0x2523, 0x324d, 0x324d, 0x1078, 0x248c, 0x681c,
1136 0xa084, 0x2000, 0x0040, 0x3268, 0x6008, 0xa085, 0x0002, 0x600a,
1137 0x0078, 0x3268, 0x68c0, 0xa005, 0x00c0, 0x3284, 0x6920, 0xa18d,
1138 0x0001, 0x6922, 0x68c3, 0x0001, 0x6800, 0x706a, 0x0078, 0x327e,
1139 0x6920, 0xa18d, 0x0001, 0x6922, 0x6800, 0x6006, 0xa005, 0x00c0,
1140 0x3272, 0x6002, 0x681c, 0xa084, 0x000e, 0x0040, 0x327e, 0x7014,
1141 0x68ba, 0x7130, 0xa188, 0x7500, 0x0078, 0x3280, 0x2009, 0x7600,
1142 0x2104, 0x6802, 0x2d0a, 0x7162, 0x6eb6, 0xa684, 0x0060, 0x0040,
1143 0x32d2, 0xa684, 0x0800, 0x00c0, 0x3298, 0xa684, 0x7fff, 0x68b6,
1144 0x6894, 0x68a6, 0x6898, 0x68aa, 0x1078, 0x4887, 0x0078, 0x32d2,
1145 0xa684, 0x0020, 0x0040, 0x32ad, 0x68c0, 0xa005, 0x0040, 0x32a4,
1146 0x1078, 0x4c89, 0x0078, 0x32a7, 0xa006, 0x1078, 0x4c41, 0x79d8,
1147 0x7adc, 0x69aa, 0x6aa6, 0x0078, 0x32b3, 0x1078, 0x38ca, 0x69aa,
1148 0x6aa6, 0x1078, 0x4c41, 0xa684, 0x8000, 0x0040, 0x32d2, 0xa684,
1149 0x7fff, 0x68b6, 0x7adc, 0x79d8, 0xa684, 0x0020, 0x00c0, 0x32ca,
1150 0x78d0, 0x801b, 0x00c8, 0x32c5, 0x8000, 0xa084, 0x003f, 0xa108,
1151 0xa291, 0x0000, 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200,
1152 0xa303, 0x68ae, 0x0078, 0x2523, 0x0078, 0x377b, 0x7037, 0x0000,
1153 0xa282, 0x0006, 0x0050, 0x32de, 0x1078, 0x248c, 0x7000, 0xa084,
1154 0x0007, 0x10c0, 0x3a8c, 0x2300, 0x0079, 0x32e6, 0x32e9, 0x3312,
1155 0x3326, 0x2200, 0x0079, 0x32ec, 0x3310, 0x377b, 0x32f2, 0x3310,
1156 0x3342, 0x3384, 0x7003, 0x0005, 0x2001, 0x7710, 0x2068, 0x704a,
1157 0x157e, 0x20a9, 0x0031, 0x2003, 0x0000, 0x8000, 0x0070, 0x3302,
1158 0x0078, 0x32fb, 0x157f, 0xad80, 0x0009, 0x7036, 0x6817, 0x0000,
1159 0x68b7, 0x0700, 0x6823, 0x0800, 0x6827, 0x0003, 0x0078, 0x376b,
1160 0x1078, 0x248c, 0x7003, 0x0005, 0x2001, 0x7710, 0x2068, 0x704a,
1161 0xad80, 0x0009, 0x7036, 0x2200, 0x0079, 0x331e, 0x377b, 0x3324,
1162 0x3324, 0x3342, 0x3324, 0x377b, 0x1078, 0x248c, 0x7003, 0x0005,
1163 0x2001, 0x7710, 0x2068, 0x704a, 0xad80, 0x0009, 0x7036, 0x2200,
1164 0x0079, 0x3332, 0x333a, 0x3338, 0x3338, 0x333a, 0x3338, 0x333a,
1165 0x1078, 0x248c, 0x1078, 0x379f, 0x782b, 0x3008, 0x781b, 0x0065,
1166 0x0078, 0x24fa, 0x7003, 0x0002, 0x7a80, 0xa294, 0x0f00, 0x789b,
1167 0x0018, 0x7ca8, 0xa484, 0x001f, 0xa215, 0x2069, 0x7600, 0x2d04,
1168 0x2d08, 0x7162, 0x2068, 0xa005, 0x0040, 0x335d, 0x6814, 0xa206,
1169 0x0040, 0x3379, 0x6800, 0x0078, 0x3350, 0x7003, 0x0005, 0x2001,
1170 0x7710, 0x2068, 0x704a, 0x7036, 0x157e, 0x20a9, 0x0031, 0x2003,
1171 0x0000, 0x8000, 0x0070, 0x336e, 0x0078, 0x3367, 0x157f, 0xad80,
1172 0x0009, 0x7036, 0x6a16, 0x68b7, 0x0700, 0x6823, 0x0800, 0x6827,
1173 0x0003, 0x6eb4, 0x7e5a, 0x6820, 0xa084, 0x0c00, 0x0040, 0x33d3,
1174 0x1078, 0x3797, 0x0078, 0x33d3, 0x7003, 0x0002, 0x7a80, 0xa294,
1175 0x0f00, 0x789b, 0x0018, 0x7ca8, 0xa484, 0x001f, 0xa215, 0x79a8,
1176 0x79a8, 0xa18c, 0x00ff, 0xa1e8, 0x7500, 0x2d04, 0x2d08, 0x7162,
1177 0x2068, 0xa005, 0x0040, 0x33a3, 0x6814, 0xa206, 0x0040, 0x33be,
1178 0x6800, 0x0078, 0x3396, 0x7003, 0x0005, 0x2001, 0x7710, 0x2068,
1179 0x704a, 0x157e, 0x20a9, 0x0031, 0x2003, 0x0000, 0x8000, 0x0070,
1180 0x33b3, 0x0078, 0x33ac, 0x157f, 0xad80, 0x0009, 0x7036, 0x6a16,
1181 0x68b7, 0x0700, 0x6823, 0x0800, 0x6827, 0x0003, 0x6eb4, 0x7e5a,
1182 0x6820, 0xa084, 0x0c00, 0x0040, 0x33d3, 0xa084, 0x0800, 0x0040,
1183 0x33cd, 0x1078, 0x379b, 0x0078, 0x33d3, 0x1078, 0x3797, 0x708b,
1184 0x0000, 0x0078, 0x33d3, 0x027e, 0x8207, 0xa084, 0x000f, 0x8003,
1185 0x8003, 0x8003, 0xa080, 0x5480, 0x2060, 0x7056, 0x6000, 0x705a,
1186 0x6004, 0x705e, 0xa684, 0x0060, 0x0040, 0x342b, 0x6b98, 0x6c94,
1187 0x69ac, 0x68b0, 0xa105, 0x00c0, 0x340d, 0x7bd2, 0x7bda, 0x7cd6,
1188 0x7cde, 0xa6b4, 0xb7ff, 0x7e5a, 0xa684, 0x0060, 0xa086, 0x0060,
1189 0x0040, 0x342b, 0x68c0, 0xa005, 0x0040, 0x3406, 0x7003, 0x0003,
1190 0x682b, 0x0000, 0x1078, 0x4b3a, 0x0078, 0x3408, 0x1078, 0x4b4b,
1191 0xa6b5, 0x2000, 0x7e5a, 0x0078, 0x342b, 0x68b0, 0xa31a, 0x2100,
1192 0xa423, 0x2400, 0xa305, 0x0040, 0x342b, 0x7bd2, 0x7bda, 0x7cd6,
1193 0x7cde, 0x68b0, 0xa6b4, 0xbfff, 0x7e5a, 0x007e, 0x68c0, 0xa005,
1194 0x007f, 0x0040, 0x3429, 0x7003, 0x0003, 0x1078, 0x4b3a, 0x0078,
1195 0x342b, 0x1078, 0x4b96, 0x077f, 0x1078, 0x38bd, 0x2009, 0x0065,
1196 0xa684, 0x0004, 0x0040, 0x344c, 0x78e4, 0xa084, 0x0030, 0x0040,
1197 0x3444, 0x78ec, 0xa084, 0x0003, 0x0040, 0x3444, 0x782b, 0x3008,
1198 0x2009, 0x0065, 0x0078, 0x344c, 0x0f7e, 0x2079, 0x5200, 0x1078,
1199 0x4887, 0x0f7f, 0x0040, 0x2523, 0x791a, 0x2d00, 0x704a, 0x8207,
1200 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080, 0x5480, 0x2048,
1201 0x0078, 0x24fa, 0x6020, 0xa005, 0x0040, 0x3466, 0x8001, 0x6022,
1202 0x6008, 0xa085, 0x0008, 0x600a, 0x7010, 0x6026, 0x007c, 0xa006,
1203 0x1078, 0x4887, 0x6817, 0x0000, 0x681b, 0x0001, 0x6823, 0x0040,
1204 0x681f, 0x0100, 0x7000, 0xa084, 0x0007, 0x0079, 0x3477, 0x2523,
1205 0x3481, 0x3481, 0x349e, 0x3489, 0x3487, 0x3489, 0x347f, 0x1078,
1206 0x248c, 0x1078, 0x34a9, 0x1078, 0x34a2, 0x1078, 0x1cdc, 0x0078,
1207 0x2523, 0x706c, 0x706f, 0x0000, 0x7093, 0x0000, 0x0079, 0x3490,
1208 0x349a, 0x349a, 0x3498, 0x3498, 0x3498, 0x349a, 0x3498, 0x349a,
1209 0x0079, 0x2902, 0x706f, 0x0000, 0x0078, 0x2523, 0x681b, 0x0000,
1210 0x0078, 0x2fb6, 0x6800, 0xa005, 0x00c0, 0x34a7, 0x6002, 0x6006,
1211 0x007c, 0x6010, 0xa005, 0x0040, 0x34b2, 0x8001, 0x00d0, 0x34b2,
1212 0x1078, 0x248c, 0x6012, 0x6008, 0xa084, 0xffef, 0x600a, 0x007c,
1213 0x6018, 0xa005, 0x0040, 0x34be, 0x8001, 0x601a, 0x007c, 0x1078,
1214 0x39e0, 0x681b, 0x0018, 0x0078, 0x34f5, 0x1078, 0x39e0, 0x681b,
1215 0x0019, 0x0078, 0x34f5, 0x1078, 0x39e0, 0x681b, 0x001a, 0x0078,
1216 0x34f5, 0x1078, 0x39e0, 0x681b, 0x0003, 0x0078, 0x34f5, 0x7780,
1217 0x1078, 0x38bd, 0x7184, 0xa18c, 0x00ff, 0xa1e8, 0x7500, 0x2d04,
1218 0x2d08, 0x2068, 0xa005, 0x00c0, 0x34e7, 0x0078, 0x2523, 0x6814,
1219 0x7280, 0xa206, 0x0040, 0x34ef, 0x6800, 0x0078, 0x34e0, 0x6800,
1220 0x200a, 0x681b, 0x0005, 0x708b, 0x0000, 0x1078, 0x34a9, 0x6820,
1221 0xa084, 0x0001, 0x00c0, 0x34fe, 0x1078, 0x34a2, 0x1078, 0x34b8,
1222 0x681f, 0x0000, 0x6823, 0x0020, 0x1078, 0x1cdc, 0x0078, 0x2523,
1223 0xa282, 0x0003, 0x00c0, 0x376b, 0x7da8, 0xa5ac, 0x00ff, 0x7ca8,
1224 0xa4a4, 0x00ff, 0x6920, 0xa18d, 0x0080, 0x6922, 0xa184, 0x0100,
1225 0x0040, 0x356c, 0xa18c, 0xfeff, 0x6922, 0xa4a4, 0x00ff, 0x0040,
1226 0x3556, 0xa482, 0x000c, 0x0048, 0x3529, 0x0040, 0x3529, 0x2021,
1227 0x000c, 0x852b, 0x852b, 0x1078, 0x382e, 0x0040, 0x3533, 0x1078,
1228 0x3627, 0x0078, 0x355f, 0x1078, 0x37e9, 0x0c7e, 0x2960, 0x6004,
1229 0xa084, 0xfff5, 0x6006, 0x1078, 0x3652, 0x0c7f, 0x6920, 0xa18d,
1230 0x0100, 0x6922, 0x7e58, 0xa6b5, 0x0004, 0x7e5a, 0xa684, 0x0400,
1231 0x00c0, 0x3550, 0x782b, 0x3008, 0x781b, 0x0056, 0x0078, 0x24fa,
1232 0x782b, 0x3008, 0x781b, 0x0065, 0x0078, 0x24fa, 0x0c7e, 0x2960,
1233 0x6004, 0xa084, 0xfff5, 0x6006, 0x1078, 0x3652, 0x0c7f, 0x7e58,
1234 0xa684, 0x0400, 0x00c0, 0x3568, 0x781b, 0x0058, 0x0078, 0x24fa,
1235 0x781b, 0x0065, 0x0078, 0x24fa, 0x0c7e, 0x7054, 0x2060, 0x6100,
1236 0xa18c, 0x1000, 0x0040, 0x35ac, 0x6208, 0x8217, 0xa294, 0x00ff,
1237 0xa282, 0x000c, 0x0048, 0x3580, 0x0040, 0x3580, 0x2011, 0x000c,
1238 0x2400, 0xa202, 0x00c8, 0x3585, 0x2220, 0x6208, 0xa294, 0x00ff,
1239 0x7018, 0xa086, 0x0028, 0x00c0, 0x3595, 0xa282, 0x0019, 0x00c8,
1240 0x359b, 0x2011, 0x0019, 0x0078, 0x359b, 0xa282, 0x000c, 0x00c8,
1241 0x359b, 0x2011, 0x000c, 0x2200, 0xa502, 0x00c8, 0x35a0, 0x2228,
1242 0x1078, 0x37ed, 0x852b, 0x852b, 0x1078, 0x382e, 0x0040, 0x35ac,
1243 0x1078, 0x3627, 0x0078, 0x35b0, 0x1078, 0x37e9, 0x1078, 0x3652,
1244 0x7858, 0xa085, 0x0004, 0x785a, 0x0c7f, 0x782b, 0x3008, 0x781b,
1245 0x0065, 0x0078, 0x24fa, 0x0c7e, 0x2960, 0x6000, 0xd0e4, 0x00c0,
1246 0x35d5, 0xd0b4, 0x00c0, 0x35cf, 0x6010, 0xa084, 0x000f, 0x00c0,
1247 0x35cf, 0x6104, 0xa18c, 0xfff5, 0x6106, 0x0c7f, 0x007c, 0x2011,
1248 0x0032, 0x2019, 0x0000, 0x0078, 0x35fc, 0x68a0, 0xa084, 0x0200,
1249 0x00c0, 0x35cf, 0x6208, 0xa294, 0x00ff, 0x7018, 0xa086, 0x0028,
1250 0x00c0, 0x35ea, 0xa282, 0x0019, 0x00c8, 0x35f0, 0x2011, 0x0019,
1251 0x0078, 0x35f0, 0xa282, 0x000c, 0x00c8, 0x35f0, 0x2011, 0x000c,
1252 0x6308, 0x831f, 0xa39c, 0x00ff, 0xa382, 0x000c, 0x0048, 0x35fc,
1253 0x0040, 0x35fc, 0x2019, 0x000c, 0x78ab, 0x0001, 0x78ab, 0x0003,
1254 0x78ab, 0x0001, 0x7aaa, 0x7baa, 0xa8c0, 0x0005, 0x6820, 0xa085,
1255 0x0100, 0x6822, 0x0c7f, 0x007c, 0x0c7e, 0x2960, 0xa18c, 0xfff5,
1256 0x6106, 0x2011, 0x0032, 0x2019, 0x0000, 0x0078, 0x3617, 0x78ab,
1257 0x0001, 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7aaa, 0x7baa, 0xa8c0,
1258 0x0005, 0x6820, 0xa085, 0x0100, 0x6822, 0x0c7f, 0x007c, 0x0c7e,
1259 0x7154, 0x2160, 0x1078, 0x362e, 0x0c7f, 0x007c, 0x2008, 0xa084,
1260 0xfff0, 0xa425, 0x7c86, 0x6018, 0x789a, 0x7cae, 0x6412, 0x78a4,
1261 0xa084, 0xfff8, 0xa18c, 0x0007, 0xa105, 0x78a6, 0x6016, 0x788a,
1262 0xa4a4, 0x000f, 0x8427, 0x8204, 0x8004, 0xa084, 0x00ff, 0xa405,
1263 0x600e, 0x78ec, 0xd08c, 0x00c0, 0x3651, 0x6004, 0xa084, 0xfff5,
1264 0x6006, 0x007c, 0x0c7e, 0x7054, 0x2060, 0x1078, 0x3659, 0x0c7f,
1265 0x007c, 0x6018, 0x789a, 0x78a4, 0xa084, 0xfff0, 0x78a6, 0x6012,
1266 0x7884, 0xa084, 0xfff0, 0x7886, 0x007c, 0xa282, 0x0002, 0x00c0,
1267 0x376b, 0x7aa8, 0x6920, 0xa18d, 0x0080, 0x6922, 0xa184, 0x0200,
1268 0x0040, 0x36ae, 0xa18c, 0xfdff, 0x6922, 0xa294, 0x00ff, 0xa282,
1269 0x0002, 0x00c8, 0x376b, 0x1078, 0x36f9, 0x1078, 0x3652, 0xa980,
1270 0x0001, 0x200c, 0x1078, 0x38b9, 0x1078, 0x35bb, 0x88ff, 0x0040,
1271 0x36a1, 0x789b, 0x0060, 0x2800, 0x78aa, 0x7e58, 0xa6b5, 0x0004,
1272 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x369b, 0x782b, 0x3008, 0x781b,
1273 0x0056, 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b, 0x0065, 0x0078,
1274 0x24fa, 0x7e58, 0xa684, 0x0400, 0x00c0, 0x36aa, 0x781b, 0x0058,
1275 0x0078, 0x24fa, 0x781b, 0x0065, 0x0078, 0x24fa, 0xa282, 0x0002,
1276 0x00c8, 0x36b6, 0xa284, 0x0001, 0x0040, 0x36c0, 0x7154, 0xa188,
1277 0x0000, 0x210c, 0xa18c, 0x2000, 0x00c0, 0x36c0, 0x2011, 0x0000,
1278 0x1078, 0x37db, 0x1078, 0x36f9, 0x1078, 0x3652, 0x7858, 0xa085,
1279 0x0004, 0x785a, 0x782b, 0x3008, 0x781b, 0x0065, 0x0078, 0x24fa,
1280 0x0c7e, 0x027e, 0x2960, 0x6000, 0x2011, 0x0001, 0xd0ec, 0x00c0,
1281 0x36e9, 0xd0bc, 0x00c0, 0x36e7, 0x6014, 0xa084, 0x0040, 0x00c0,
1282 0x36e7, 0xa18c, 0xffef, 0x6106, 0xa006, 0x0078, 0x36f6, 0x2011,
1283 0x0000, 0x78ab, 0x0001, 0x78ab, 0x0002, 0x78ab, 0x0003, 0x7aaa,
1284 0xa8c0, 0x0004, 0x6820, 0xa085, 0x0200, 0x6822, 0x027f, 0x0c7f,
1285 0x007c, 0x0c7e, 0x7054, 0x2060, 0x1078, 0x3700, 0x0c7f, 0x007c,
1286 0x82ff, 0x0040, 0x3705, 0x2011, 0x0040, 0x6018, 0xa080, 0x0002,
1287 0x789a, 0x78a4, 0xa084, 0xffbf, 0xa205, 0x78a6, 0x788a, 0x6016,
1288 0x78ec, 0xd08c, 0x00c0, 0x3718, 0x6004, 0xa084, 0xffef, 0x6006,
1289 0x007c, 0x007e, 0x7000, 0xa086, 0x0003, 0x0040, 0x3722, 0x007f,
1290 0x0078, 0x3725, 0x007f, 0x0078, 0x3767, 0xa684, 0x0020, 0x0040,
1291 0x3767, 0x7888, 0xa084, 0x0040, 0x0040, 0x3767, 0x7bb8, 0xa384,
1292 0x003f, 0x831b, 0x00c8, 0x3735, 0x8000, 0xa005, 0x0040, 0x374b,
1293 0x831b, 0x00c8, 0x373e, 0x8001, 0x0040, 0x3763, 0xa684, 0x4000,
1294 0x0040, 0x374b, 0x78b8, 0x801b, 0x00c8, 0x3747, 0x8000, 0xa084,
1295 0x003f, 0x00c0, 0x3763, 0xa6b4, 0xbfff, 0x7e5a, 0x79d8, 0x7adc,
1296 0x2001, 0x0001, 0xa108, 0x00c8, 0x3757, 0xa291, 0x0000, 0x79d2,
1297 0x79da, 0x7ad6, 0x7ade, 0x1078, 0x4c41, 0x781b, 0x0064, 0x1078,
1298 0x4ac6, 0x0078, 0x24fa, 0x781b, 0x0064, 0x0078, 0x24fa, 0x781b,
1299 0x0065, 0x0078, 0x24fa, 0x1078, 0x37a3, 0x782b, 0x3008, 0x781b,
1300 0x0065, 0x0078, 0x24fa, 0x1078, 0x378f, 0x782b, 0x3008, 0x781b,
1301 0x0065, 0x0078, 0x24fa, 0x6827, 0x0002, 0x1078, 0x3797, 0x78e4,
1302 0xa084, 0x0030, 0x0040, 0x2523, 0x78ec, 0xa084, 0x0003, 0x0040,
1303 0x2523, 0x782b, 0x3008, 0x781b, 0x0065, 0x0078, 0x24fa, 0x2001,
1304 0x0005, 0x0078, 0x37a5, 0x2001, 0x000c, 0x0078, 0x37a5, 0x2001,
1305 0x0006, 0x0078, 0x37a5, 0x2001, 0x000d, 0x0078, 0x37a5, 0x2001,
1306 0x0009, 0x0078, 0x37a5, 0x2001, 0x0007, 0x789b, 0x0010, 0x78aa,
1307 0x789b, 0x0060, 0x78ab, 0x0001, 0xa6b5, 0x0004, 0x7e5a, 0x007c,
1308 0x077e, 0x873f, 0xa7bc, 0x000f, 0x873b, 0x873b, 0x8703, 0xa0e0,
1309 0x5480, 0xa7b8, 0x0020, 0x7f9a, 0x79a4, 0xa184, 0x000f, 0x0040,
1310 0x37c9, 0xa184, 0xfff0, 0x78a6, 0x6012, 0x6004, 0xa085, 0x0008,
1311 0x6006, 0x8738, 0x8738, 0x7f9a, 0x79a4, 0xa184, 0x0040, 0x0040,
1312 0x37d9, 0xa184, 0xffbf, 0x78a6, 0x6016, 0x6004, 0xa085, 0x0010,
1313 0x6006, 0x077f, 0x007c, 0x789b, 0x0010, 0x78ab, 0x0001, 0x78ab,
1314 0x0002, 0x78ab, 0x0003, 0x7aaa, 0x789b, 0x0060, 0x78ab, 0x0004,
1315 0x007c, 0x2021, 0x0000, 0x2029, 0x0032, 0x789b, 0x0010, 0x78ab,
1316 0x0001, 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7daa, 0x7caa, 0x789b,
1317 0x0060, 0x78ab, 0x0005, 0x007c, 0x157e, 0x8007, 0xa084, 0x00ff,
1318 0x8003, 0x8003, 0xa080, 0x0020, 0x789a, 0x79a4, 0xa18c, 0xfff0,
1319 0x2001, 0x5246, 0x2004, 0xa082, 0x0028, 0x0040, 0x3817, 0x2021,
1320 0x38a0, 0x2019, 0x0014, 0x20a9, 0x000c, 0x0078, 0x381d, 0x2021,
1321 0x38ac, 0x2019, 0x0019, 0x20a9, 0x000d, 0x2011, 0x0064, 0x2404,
1322 0xa084, 0xfff0, 0xa106, 0x0040, 0x382c, 0x8420, 0x2300, 0xa210,
1323 0x0070, 0x382c, 0x0078, 0x381f, 0x157f, 0x007c, 0x157e, 0x2009,
1324 0x5246, 0x210c, 0xa182, 0x0032, 0x0048, 0x3842, 0x0040, 0x3846,
1325 0x2009, 0x3892, 0x2019, 0x0011, 0x20a9, 0x000e, 0x2011, 0x0032,
1326 0x0078, 0x3858, 0xa182, 0x0028, 0x0040, 0x3850, 0x2009, 0x38a0,
1327 0x2019, 0x0014, 0x20a9, 0x000c, 0x2011, 0x0064, 0x0078, 0x3858,
1328 0x2009, 0x38ac, 0x2019, 0x0019, 0x20a9, 0x000d, 0x2011, 0x0064,
1329 0x2200, 0xa502, 0x0040, 0x3868, 0x0048, 0x3868, 0x8108, 0x2300,
1330 0xa210, 0x0070, 0x3865, 0x0078, 0x3858, 0x157f, 0xa006, 0x007c,
1331 0x157f, 0xa582, 0x0064, 0x00c8, 0x3877, 0x7808, 0xa085, 0x0070,
1332 0x780a, 0x7044, 0xa085, 0x0070, 0x7046, 0x0078, 0x3877, 0x78ec,
1333 0xa084, 0x0300, 0x0040, 0x387f, 0x2104, 0x0078, 0x3890, 0x2104,
1334 0xa09e, 0x1102, 0x00c0, 0x3890, 0x2001, 0x04fd, 0x2004, 0xa082,
1335 0x0005, 0x0048, 0x388f, 0x2001, 0x1201, 0x0078, 0x3890, 0x2104,
1336 0xa005, 0x007c, 0x1102, 0x3002, 0x3202, 0x4203, 0x4403, 0x5404,
1337 0x5604, 0x6605, 0x6805, 0x7806, 0x7a06, 0x0c07, 0x0c07, 0x0e07,
1338 0x3202, 0x4202, 0x5202, 0x6202, 0x7202, 0x6605, 0x7605, 0x7805,
1339 0x7a05, 0x7c05, 0x7e05, 0x7f05, 0x2202, 0x3202, 0x4202, 0x5202,
1340 0x5404, 0x6404, 0x7404, 0x7604, 0x7804, 0x7a04, 0x7c04, 0x7e04,
1341 0x7f04, 0x789b, 0x0010, 0xa046, 0x007c, 0xa784, 0x0f00, 0x800b,
1342 0xa784, 0x001f, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0xa0e0,
1343 0x5500, 0x007c, 0x79d8, 0x7adc, 0x78d0, 0x801b, 0x00c8, 0x38d1,
1344 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000, 0x007c, 0x0f7e,
1345 0x2079, 0x0100, 0x2009, 0x5240, 0x2091, 0x8000, 0x2104, 0x0079,
1346 0x38e1, 0x3917, 0x38eb, 0x38eb, 0x38eb, 0x38eb, 0x38eb, 0x38eb,
1347 0x391b, 0x1078, 0x248c, 0x784b, 0x0004, 0x7848, 0xa084, 0x0004,
1348 0x00c0, 0x38ed, 0x784b, 0x0008, 0x7848, 0xa084, 0x0008, 0x00c0,
1349 0x38f4, 0x68b4, 0xa085, 0x4000, 0x68b6, 0x7858, 0xa085, 0x4000,
1350 0x785a, 0x7830, 0xa084, 0x0080, 0x00c0, 0x3917, 0x0018, 0x3917,
1351 0x681c, 0xa084, 0x0020, 0x00c0, 0x3915, 0x0e7e, 0x2071, 0x5240,
1352 0x1078, 0x396a, 0x0e7f, 0x0078, 0x3917, 0x781b, 0x00ca, 0x2091,
1353 0x8001, 0x0f7f, 0x007c, 0x70b3, 0x0000, 0x1078, 0x3b44, 0x0078,
1354 0x3917, 0x0c7e, 0x6814, 0x8007, 0xa084, 0x000f, 0x8003, 0x8003,
1355 0x8003, 0xa0e0, 0x5480, 0x6004, 0xa084, 0x000a, 0x00c0, 0x3954,
1356 0x6108, 0xa194, 0xff00, 0x0040, 0x3954, 0xa18c, 0x00ff, 0x2001,
1357 0x0019, 0xa106, 0x0040, 0x3943, 0x2001, 0x0032, 0xa106, 0x0040,
1358 0x3947, 0x0078, 0x394b, 0x2009, 0x0020, 0x0078, 0x394d, 0x2009,
1359 0x003f, 0x0078, 0x394d, 0x2011, 0x0000, 0x2100, 0xa205, 0x600a,
1360 0x6004, 0xa085, 0x0002, 0x6006, 0x0c7f, 0x007c, 0x781b, 0x0065,
1361 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b, 0x0065, 0x0078, 0x24fa,
1362 0x781b, 0x0058, 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b, 0x0056,
1363 0x0078, 0x24fa, 0x2009, 0x5220, 0x210c, 0xa186, 0x0000, 0x0040,
1364 0x397e, 0xa186, 0x0001, 0x0040, 0x3981, 0x2009, 0x5238, 0x200b,
1365 0x000b, 0x706f, 0x0001, 0x781b, 0x0048, 0x007c, 0x781b, 0x00c4,
1366 0x007c, 0x2009, 0x5238, 0x200b, 0x000a, 0x007c, 0x2009, 0x5220,
1367 0x210c, 0xa186, 0x0000, 0x0040, 0x39a1, 0xa186, 0x0001, 0x0040,
1368 0x399b, 0x2009, 0x5238, 0x200b, 0x000b, 0x706f, 0x0001, 0x781b,
1369 0x0048, 0x0078, 0x24fa, 0x2009, 0x5238, 0x200b, 0x000a, 0x0078,
1370 0x24fa, 0x782b, 0x3008, 0x781b, 0x00c4, 0x0078, 0x24fa, 0x781b,
1371 0x00ca, 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b, 0x00ca, 0x0078,
1372 0x24fa, 0x781b, 0x008f, 0x0078, 0x24fa, 0x782b, 0x3008, 0x781b,
1373 0x008f, 0x0078, 0x24fa, 0x6818, 0xa084, 0x8000, 0x0040, 0x39c2,
1374 0x681b, 0x001d, 0x706f, 0x0001, 0x781b, 0x0048, 0x0078, 0x24fa,
1375 0x007e, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x39de, 0x7808, 0xa084,
1376 0xfffc, 0x780a, 0x0005, 0x0005, 0x0005, 0x0005, 0x78ec, 0xa084,
1377 0x0021, 0x0040, 0x39de, 0x7044, 0x780a, 0xa005, 0x007f, 0x007c,
1378 0x7044, 0xa085, 0x0002, 0x7046, 0x780a, 0x007c, 0x007e, 0x7830,
1379 0xa084, 0x0040, 0x00c0, 0x39e7, 0x0098, 0x39f2, 0x007f, 0x789a,
1380 0x78ac, 0x007c, 0x7808, 0xa084, 0xfffd, 0x780a, 0x0005, 0x0005,
1381 0x0005, 0x0005, 0x78ec, 0xa084, 0x0021, 0x0040, 0x3a01, 0x0098,
1382 0x39ff, 0x007f, 0x789a, 0x78ac, 0x007e, 0x7044, 0x780a, 0x007f,
1383 0x007c, 0x78ec, 0xa084, 0x0002, 0x00c0, 0x4871, 0xa784, 0x007d,
1384 0x00c0, 0x3a15, 0x2700, 0x1078, 0x248c, 0xa784, 0x0001, 0x00c0,
1385 0x300c, 0xa784, 0x0070, 0x0040, 0x3a25, 0x0c7e, 0x2d60, 0x2f68,
1386 0x1078, 0x2437, 0x2d78, 0x2c68, 0x0c7f, 0xa784, 0x0008, 0x0040,
1387 0x3a32, 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003, 0x0040, 0x2523,
1388 0x0078, 0x3956, 0xa784, 0x0004, 0x0040, 0x3a65, 0x78b8, 0xa084,
1389 0x4001, 0x0040, 0x3a65, 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003,
1390 0x0040, 0x2523, 0x78e4, 0xa084, 0x0007, 0xa086, 0x0001, 0x00c0,
1391 0x3a65, 0x78c0, 0xa085, 0x4800, 0x2030, 0x7e5a, 0x781b, 0x00ca,
1392 0x0078, 0x24fa, 0x784b, 0x0008, 0x6818, 0xa084, 0x8000, 0x0040,
1393 0x3a61, 0x681b, 0x0015, 0xa684, 0x4000, 0x0040, 0x3a61, 0x681b,
1394 0x0007, 0x1078, 0x396a, 0x0078, 0x24fa, 0x681b, 0x0003, 0x7858,
1395 0xa084, 0x3f00, 0x681e, 0x682f, 0x0000, 0x6833, 0x0000, 0x784b,
1396 0x0008, 0x78ec, 0xa084, 0x0003, 0x0040, 0x2a06, 0x0018, 0x24fa,
1397 0x0078, 0x3773, 0x6b14, 0x8307, 0xa084, 0x000f, 0x8003, 0x8003,
1398 0x8003, 0xa080, 0x5480, 0x2060, 0x2048, 0x7056, 0x6000, 0x705a,
1399 0x6004, 0x705e, 0x2a60, 0x007c, 0x0079, 0x3a8e, 0x3a96, 0x3a97,
1400 0x3a96, 0x3a99, 0x3a96, 0x3a96, 0x3a96, 0x3a9e, 0x007c, 0x1078,
1401 0x34b8, 0x1078, 0x4887, 0x7038, 0x600a, 0x007c, 0x70a0, 0xa005,
1402 0x0040, 0x3aab, 0x2068, 0x1078, 0x1bd3, 0x1078, 0x47fe, 0x1078,
1403 0x4805, 0x70a3, 0x0000, 0x007c, 0x0e7e, 0x2091, 0x8000, 0x2071,
1404 0x5240, 0x7000, 0xa086, 0x0007, 0x00c0, 0x3ac2, 0x6110, 0x70bc,
1405 0xa106, 0x00c0, 0x3ac2, 0x0e7f, 0x1078, 0x1be0, 0x1078, 0x3ac8,
1406 0xa006, 0x007c, 0x2091, 0x8001, 0x0e7f, 0xa085, 0x0001, 0x007c,
1407 0x0f7e, 0x0e7e, 0x2071, 0x5240, 0x0078, 0x2297, 0x785b, 0x0000,
1408 0x70af, 0x000e, 0x2009, 0x0100, 0x017e, 0x70a0, 0xa06d, 0x0040,
1409 0x3add, 0x70a3, 0x0000, 0x0078, 0x3ae3, 0x70b3, 0x0000, 0x1078,
1410 0x1c0c, 0x0040, 0x3ae9, 0x70ac, 0x6826, 0x1078, 0x3bc6, 0x0078,
1411 0x3add, 0x017f, 0x157e, 0x0c7e, 0x0d7e, 0x20a9, 0x0008, 0x2061,
1412 0x7610, 0x6000, 0xa105, 0x6002, 0x601c, 0xa06d, 0x0040, 0x3b01,
1413 0x6800, 0x601e, 0x1078, 0x19ac, 0x6008, 0x8000, 0x600a, 0x0078,
1414 0x3af4, 0x6018, 0xa06d, 0x0040, 0x3b0b, 0x6800, 0x601a, 0x1078,
1415 0x19ac, 0x0078, 0x3b01, 0xace0, 0x0008, 0x0070, 0x3b11, 0x0078,
1416 0x3af1, 0x709c, 0xa084, 0x8000, 0x0040, 0x3b18, 0x1078, 0x3c44,
1417 0x0d7f, 0x0c7f, 0x157f, 0x007c, 0x127e, 0x2091, 0x2300, 0x6804,
1418 0xa084, 0x000f, 0x0079, 0x3b24, 0x3b34, 0x3b34, 0x3b34, 0x3b34,
1419 0x3b34, 0x3b34, 0x3b36, 0x3b3c, 0x3b34, 0x3b34, 0x3b34, 0x3b34,
1420 0x3b34, 0x3b3e, 0x3b34, 0x3b36, 0x1078, 0x248c, 0x1078, 0x45d3,
1421 0x1078, 0x19ac, 0x0078, 0x3b42, 0x6827, 0x000b, 0x1078, 0x45d3,
1422 0x1078, 0x3bc6, 0x127f, 0x007c, 0x127e, 0x2091, 0x2300, 0x0098,
1423 0x3b60, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x3b60, 0x0d7e, 0x1078,
1424 0x4812, 0x2d00, 0x682e, 0x2009, 0x0004, 0x2001, 0x0000, 0x6827,
1425 0x0084, 0x1078, 0x47c7, 0x1078, 0x3bc6, 0x0d7f, 0x0078, 0x3b94,
1426 0x7948, 0xa185, 0x4000, 0x784a, 0x0098, 0x3b69, 0x794a, 0x0078,
1427 0x3b4e, 0x7828, 0xa086, 0x1834, 0x00c0, 0x3b72, 0xa185, 0x0004,
1428 0x0078, 0x3b79, 0x7828, 0xa086, 0x1814, 0x00c0, 0x3b66, 0xa185,
1429 0x000c, 0x784a, 0x789b, 0x000e, 0x78ab, 0x0002, 0x7858, 0xa084,
1430 0x00ff, 0xa085, 0x0400, 0x785a, 0x70b4, 0xa080, 0x0091, 0x781a,
1431 0x6827, 0x0284, 0x682c, 0x6836, 0x6830, 0x683a, 0x2009, 0x0004,
1432 0x2001, 0x0000, 0x1078, 0x47c7, 0x127f, 0x007c, 0x0d7e, 0x6b14,
1433 0x1078, 0x1c70, 0x0040, 0x3ba3, 0x2068, 0x6827, 0x0002, 0x1078,
1434 0x3bc6, 0x0078, 0x3b98, 0x0d7f, 0x007c, 0x0d7e, 0x6b14, 0x6c28,
1435 0xa4a4, 0x00ff, 0x1078, 0x1c1c, 0x0040, 0x3bb3, 0x2068, 0x6827,
1436 0x0002, 0x1078, 0x3bc6, 0x0d7f, 0x007c, 0x0d7e, 0x6b14, 0xa39c,
1437 0x00ff, 0x1078, 0x1c48, 0x0040, 0x3bc4, 0x2068, 0x6827, 0x0002,
1438 0x1078, 0x3bc6, 0x0078, 0x3bb9, 0x0d7f, 0x007c, 0x0c7e, 0x6914,
1439 0x1078, 0x3c3b, 0x6904, 0xa18c, 0x00ff, 0xa186, 0x0006, 0x0040,
1440 0x3be1, 0xa186, 0x000d, 0x0040, 0x3c00, 0xa186, 0x0017, 0x00c0,
1441 0x3bdd, 0x1078, 0x19ac, 0x0078, 0x3bdf, 0x1078, 0x1cde, 0x0c7f,
1442 0x007c, 0x6004, 0x8001, 0x0048, 0x3bfe, 0x6006, 0x2009, 0x0000,
1443 0xa684, 0x0001, 0x00c0, 0x3bee, 0xa18d, 0x8000, 0xa684, 0x0004,
1444 0x0040, 0x3bf4, 0xa18d, 0x0002, 0x691e, 0x6823, 0x0000, 0x7104,
1445 0x810f, 0x6818, 0xa105, 0x681a, 0x0078, 0x3bdd, 0x1078, 0x248c,
1446 0x6018, 0xa005, 0x00c0, 0x3c0f, 0x6008, 0x8001, 0x0048, 0x3c0f,
1447 0x600a, 0x601c, 0x6802, 0x2d00, 0x601e, 0x0078, 0x3c25, 0xac88,
1448 0x0006, 0x2104, 0xa005, 0x0040, 0x3c18, 0x2008, 0x0078, 0x3c11,
1449 0x6802, 0x2d0a, 0x6008, 0x8001, 0x0048, 0x3bdf, 0x600a, 0x6018,
1450 0x2068, 0x6800, 0x601a, 0x0078, 0x3c09, 0x157e, 0x137e, 0x147e,
1451 0x0c7e, 0x0d7e, 0x1078, 0x1989, 0x00c0, 0x3c30, 0x1078, 0x248c,
1452 0x2da0, 0x137f, 0x20a9, 0x0031, 0x53a3, 0x0c7f, 0x147f, 0x137f,
1453 0x157f, 0x0078, 0x3bdd, 0xa184, 0x001f, 0x8003, 0x8003, 0x8003,
1454 0xa080, 0x7610, 0x2060, 0x007c, 0x2019, 0x5251, 0x2304, 0xa085,
1455 0x0001, 0x201a, 0x2019, 0x0102, 0x2304, 0xa085, 0x0001, 0x201a,
1456 0x007c, 0x2019, 0x5251, 0x2304, 0xa084, 0xfffe, 0x201a, 0x2019,
1457 0x0102, 0x2304, 0xa084, 0xfffe, 0x201a, 0x007c, 0x7990, 0xa18c,
1458 0xfff8, 0x7992, 0x70b4, 0xa080, 0x00d8, 0x781a, 0x0078, 0x24fa,
1459 0x70a3, 0x0000, 0x7003, 0x0000, 0x7043, 0x0001, 0x7037, 0x0000,
1460 0x0018, 0x24b1, 0x1078, 0x1c0c, 0x0040, 0x3c99, 0x2009, 0x520f,
1461 0x200b, 0x0000, 0x68bc, 0x2060, 0x6100, 0xa184, 0x0300, 0x0040,
1462 0x3c8d, 0x6827, 0x000e, 0xa084, 0x0200, 0x0040, 0x3c89, 0x6827,
1463 0x0017, 0x1078, 0x3bc6, 0x0078, 0x3c68, 0x7000, 0xa086, 0x0007,
1464 0x00c0, 0x3d0d, 0x2d00, 0x70a2, 0xad80, 0x000f, 0x7036, 0x0078,
1465 0x3ca0, 0x7040, 0xa086, 0x0001, 0x0040, 0x2533, 0x0078, 0x24fa,
1466 0x2031, 0x0000, 0x691c, 0xa184, 0x0002, 0x0040, 0x3ca9, 0xa6b5,
1467 0x0004, 0xa184, 0x00c0, 0x8003, 0x8003, 0x8007, 0xa080, 0x3da6,
1468 0x2004, 0xa635, 0x6820, 0xa084, 0x0400, 0x0040, 0x3cc1, 0x789b,
1469 0x0018, 0x78ab, 0x0003, 0x789b, 0x0081, 0x78ab, 0x0001, 0xa6b5,
1470 0x5000, 0x6820, 0xa084, 0x8000, 0x0040, 0x3ccf, 0xa6b5, 0x0400,
1471 0x789b, 0x000e, 0x6824, 0x8007, 0x78aa, 0x0078, 0x3cef, 0x681c,
1472 0xd0fc, 0x00c0, 0x3cdd, 0xa6b5, 0x0800, 0x6820, 0xd0c4, 0x0040,
1473 0x3cef, 0xa6b5, 0x4000, 0x0078, 0x3cef, 0x6820, 0xd0c4, 0x0040,
1474 0x3ce5, 0xa6b5, 0x4000, 0x0078, 0x3cef, 0x789b, 0x0018, 0x78ab,
1475 0x0002, 0x789b, 0x0081, 0x78ab, 0x0001, 0xa6b5, 0x1000, 0xa684,
1476 0x0200, 0x0040, 0x3d09, 0x682c, 0x78d2, 0x6830, 0x78d6, 0xa684,
1477 0x0100, 0x0040, 0x3d07, 0x682c, 0xa084, 0x0001, 0x0040, 0x3d07,
1478 0x7888, 0xa084, 0x0040, 0x0040, 0x3d07, 0xa6b5, 0x8000, 0x1078,
1479 0x47f6, 0x7e5a, 0x6eb6, 0x0078, 0x4835, 0x1078, 0x39c8, 0x00c0,
1480 0x3da0, 0x702c, 0x8004, 0x0048, 0x3d1b, 0x2019, 0x4f49, 0x1078,
1481 0x2313, 0x702f, 0x0001, 0x2041, 0x0001, 0x2031, 0x1000, 0x789b,
1482 0x0018, 0x6814, 0xa084, 0x001f, 0xa085, 0x0080, 0x78aa, 0x691c,
1483 0xa184, 0x0002, 0x0040, 0x3d34, 0xa6b5, 0x0004, 0x78ab, 0x0020,
1484 0x6828, 0x78aa, 0xa8c0, 0x0002, 0x681c, 0xd0f4, 0x0040, 0x3d3d,
1485 0x2c50, 0x1078, 0x3a7a, 0x1078, 0x4702, 0x6820, 0xa084, 0x8000,
1486 0x0040, 0x3d4b, 0xa6b5, 0x0400, 0x789b, 0x000e, 0x6824, 0x8007,
1487 0x78aa, 0x0078, 0x3d52, 0x681c, 0xa084, 0x8000, 0x00c0, 0x3d52,
1488 0xa6b5, 0x0800, 0x6820, 0xa084, 0x0100, 0x0040, 0x3d59, 0xa6b5,
1489 0x4000, 0x681c, 0xa084, 0x00c0, 0x8003, 0x8003, 0x8007, 0xa080,
1490 0x3da6, 0x2004, 0xa635, 0xa684, 0x0100, 0x0040, 0x3d73, 0x682c,
1491 0xa084, 0x0001, 0x0040, 0x3d73, 0x7888, 0xa084, 0x0040, 0x0040,
1492 0x3d73, 0xa6b5, 0x8000, 0x789b, 0x007e, 0x7eae, 0x6eb6, 0x6814,
1493 0x8007, 0x78aa, 0x7882, 0x2810, 0x7aaa, 0x7830, 0xa084, 0x00c0,
1494 0x00c0, 0x3da0, 0x0018, 0x3da0, 0x70b4, 0xa080, 0x00dd, 0x781a,
1495 0x1078, 0x39e0, 0xa684, 0x0200, 0x0040, 0x3d94, 0x682c, 0x78d2,
1496 0x6830, 0x78d6, 0x1078, 0x47f6, 0x2d00, 0x70a2, 0x704a, 0x6810,
1497 0x70be, 0x7003, 0x0007, 0xad80, 0x000f, 0x7036, 0x0078, 0x24fa,
1498 0x1078, 0x1bd3, 0x1078, 0x39e0, 0x0078, 0x24fa, 0x0000, 0x0300,
1499 0x0200, 0x0000, 0x1078, 0x248c, 0x2300, 0x0079, 0x3daf, 0x3db2,
1500 0x3db2, 0x3db4, 0x1078, 0x248c, 0x1078, 0x4805, 0x6924, 0xa184,
1501 0x00ff, 0xa086, 0x000a, 0x0040, 0x3dc6, 0xa184, 0xff00, 0xa085,
1502 0x000a, 0x6826, 0x1078, 0x1bd3, 0x0078, 0x3c68, 0x2001, 0x000a,
1503 0x1078, 0x4797, 0x0078, 0x3c68, 0xa282, 0x0005, 0x0050, 0x3dd2,
1504 0x1078, 0x248c, 0x7000, 0xa084, 0x0007, 0x10c0, 0x3a8c, 0x1078,
1505 0x1989, 0x00c0, 0x3df4, 0x2069, 0xffff, 0xa684, 0x0004, 0x0040,
1506 0x3de5, 0x2001, 0x2800, 0x0078, 0x3de7, 0x2001, 0x0800, 0x71b4,
1507 0xa188, 0x0091, 0x789b, 0x000e, 0x8007, 0x78aa, 0x2031, 0x0400,
1508 0x7e5a, 0x791a, 0x0078, 0x24fa, 0x6807, 0x0106, 0x680b, 0x0000,
1509 0x689f, 0x0000, 0x6827, 0x0000, 0xa386, 0x0002, 0x00c0, 0x3e15,
1510 0xa286, 0x0002, 0x00c0, 0x3e15, 0x78a0, 0xa005, 0x00c0, 0x3e15,
1511 0xa484, 0x8000, 0x00c0, 0x3e15, 0x78e4, 0xa084, 0x0008, 0x0040,
1512 0x3e15, 0xa6b5, 0x0008, 0x2019, 0x0000, 0x1078, 0x4217, 0x2d00,
1513 0x70a2, 0x704a, 0x7003, 0x0007, 0x7037, 0x0000, 0x6824, 0xa084,
1514 0x0080, 0x0040, 0x3e27, 0x1078, 0x42cd, 0x0078, 0x24fa, 0x2300,
1515 0x0079, 0x3e2a, 0x3e2d, 0x3eae, 0x3ec7, 0x2200, 0x0079, 0x3e30,
1516 0x3e35, 0x3e45, 0x3e6b, 0x3e77, 0x3e9a, 0x2029, 0x0001, 0xa026,
1517 0x2011, 0x0000, 0x1078, 0x43f3, 0x0079, 0x3e3e, 0x3e43, 0x24fa,
1518 0x3c68, 0x3e43, 0x3e43, 0x1078, 0x248c, 0x7990, 0xa18c, 0x0007,
1519 0x00c0, 0x3e4c, 0x2009, 0x0008, 0x2011, 0x0001, 0xa684, 0x0004,
1520 0x0040, 0x3e54, 0x2011, 0x0003, 0x2220, 0xa12a, 0x2011, 0x0001,
1521 0x1078, 0x43f3, 0x0079, 0x3e5c, 0x3e61, 0x24fa, 0x3c68, 0x3e69,
1522 0x3e63, 0x0078, 0x483b, 0x70ab, 0x3e67, 0x0078, 0x24fa, 0x0078,
1523 0x3e61, 0x1078, 0x248c, 0xa684, 0x0010, 0x0040, 0x3e75, 0x1078,
1524 0x429c, 0x0040, 0x3e75, 0x0078, 0x24fa, 0x0078, 0x430d, 0x6000,
1525 0xa084, 0x0002, 0x0040, 0x3e94, 0x70b4, 0xa080, 0x00cd, 0x781a,
1526 0x0d7e, 0x1078, 0x4812, 0x2d00, 0x682e, 0x6827, 0x0000, 0x1078,
1527 0x3bc6, 0x0d7f, 0x1078, 0x19ac, 0x7003, 0x0000, 0x7037, 0x0000,
1528 0x704b, 0x0000, 0x0078, 0x3c68, 0xa684, 0x0004, 0x00c0, 0x3e9a,
1529 0x0078, 0x483b, 0x6000, 0xa084, 0x0004, 0x00c0, 0x3eac, 0x6000,
1530 0xa084, 0x0001, 0x0040, 0x3eac, 0x70ab, 0x3eac, 0x2001, 0x0007,
1531 0x1078, 0x478f, 0x0078, 0x4841, 0x0078, 0x483b, 0x2200, 0x0079,
1532 0x3eb1, 0x3eb6, 0x3eb8, 0x3eb6, 0x3eb6, 0x3eb6, 0x1078, 0x248c,
1533 0x70a7, 0x3ebc, 0x0078, 0x4847, 0x78e4, 0xa084, 0x0008, 0x00c0,
1534 0x3eb8, 0x1078, 0x4781, 0x70ab, 0x3ec5, 0x0078, 0x483b, 0x2200,
1535 0x0079, 0x3eca, 0x3ecf, 0x3ed1, 0x3ed1, 0x3ecf, 0x3ecf, 0x1078,
1536 0x248c, 0x78e4, 0xa084, 0x0008, 0x0040, 0x3ee6, 0x70a7, 0x3eda,
1537 0x0078, 0x4847, 0x2011, 0x0004, 0x1078, 0x43ed, 0x0079, 0x3ee0,
1538 0x3ee6, 0x24fa, 0x3c68, 0x3ee6, 0x3ef0, 0x3ef4, 0x70ab, 0x3eee,
1539 0x2001, 0x0003, 0x1078, 0x478f, 0x0078, 0x4841, 0x0078, 0x483b,
1540 0x70ab, 0x3ee6, 0x0078, 0x24fa, 0x70ab, 0x3ef8, 0x0078, 0x24fa,
1541 0x0078, 0x3eee, 0xa282, 0x0003, 0x0050, 0x3f00, 0x1078, 0x248c,
1542 0xa386, 0x0002, 0x00c0, 0x3f19, 0xa286, 0x0002, 0x00c0, 0x3f1f,
1543 0x78a0, 0xa005, 0x00c0, 0x3f1f, 0xa484, 0x8000, 0x00c0, 0x3f1f,
1544 0x78e4, 0xa084, 0x0008, 0x0040, 0x3f19, 0xa6b5, 0x0008, 0x2019,
1545 0x0000, 0xa684, 0x0008, 0x0040, 0x3f1f, 0x1078, 0x4279, 0x6810,
1546 0x70be, 0x7003, 0x0007, 0x2300, 0x0079, 0x3f26, 0x3f29, 0x3f56,
1547 0x3f5e, 0x2200, 0x0079, 0x3f2c, 0x3f31, 0x3f2f, 0x3f4a, 0x1078,
1548 0x248c, 0x7990, 0xa1ac, 0x0007, 0xa026, 0x2011, 0x0001, 0x1078,
1549 0x43f3, 0x0079, 0x3f3b, 0x3f40, 0x24fa, 0x3c68, 0x3f48, 0x3f42,
1550 0x0078, 0x483b, 0x70ab, 0x3f46, 0x0078, 0x24fa, 0x0078, 0x3f40,
1551 0x1078, 0x248c, 0xa684, 0x0010, 0x0040, 0x3f54, 0x1078, 0x429c,
1552 0x0040, 0x3f54, 0x0078, 0x24fa, 0x0078, 0x430d, 0x2200, 0x0079,
1553 0x3f59, 0x3f5c, 0x3f5c, 0x3f5c, 0x1078, 0x248c, 0x2200, 0x0079,
1554 0x3f61, 0x3f64, 0x3f66, 0x3f66, 0x1078, 0x248c, 0x78e4, 0xa084,
1555 0x0008, 0x0040, 0x3f7b, 0x70a7, 0x3f6f, 0x0078, 0x4847, 0x2011,
1556 0x0004, 0x1078, 0x43ed, 0x0079, 0x3f75, 0x3f7b, 0x24fa, 0x3c68,
1557 0x3f7b, 0x3f85, 0x3f89, 0x70ab, 0x3f83, 0x2001, 0x0003, 0x1078,
1558 0x478f, 0x0078, 0x4841, 0x0078, 0x483b, 0x70ab, 0x3f7b, 0x0078,
1559 0x24fa, 0x70ab, 0x3f8d, 0x0078, 0x24fa, 0x0078, 0x3f83, 0x2300,
1560 0x0079, 0x3f92, 0x3f97, 0x3f99, 0x3f95, 0x1078, 0x248c, 0x70a4,
1561 0x007a, 0x70a4, 0x007a, 0xa282, 0x0002, 0x0050, 0x3fa1, 0x1078,
1562 0x248c, 0xa684, 0x0200, 0x0040, 0x3fab, 0x1078, 0x47fe, 0x1078,
1563 0x43d5, 0x1078, 0x4805, 0x2300, 0x0079, 0x3fae, 0x3fb1, 0x3fd9,
1564 0x403f, 0xad86, 0xffff, 0x0040, 0x3c68, 0xa286, 0x0001, 0x0040,
1565 0x3fbb, 0x1078, 0x248c, 0xa684, 0x0200, 0x0040, 0x3fc3, 0x1078,
1566 0x47fe, 0x1078, 0x4805, 0x2001, 0x0001, 0x1078, 0x4797, 0x78b8,
1567 0xa084, 0xc001, 0x0040, 0x3fd5, 0x7848, 0xa085, 0x0008, 0x784a,
1568 0x7848, 0xa084, 0x0008, 0x00c0, 0x3fd0, 0x7003, 0x0000, 0x0078,
1569 0x3c68, 0x2200, 0x0079, 0x3fdc, 0x3fde, 0x400f, 0x70a7, 0x3fe2,
1570 0x0078, 0x4847, 0x2011, 0x000d, 0x1078, 0x43ed, 0x0079, 0x3fe8,
1571 0x3fef, 0x24fa, 0x3c68, 0x3ff7, 0x3fff, 0x4005, 0x4007, 0xa6b4,
1572 0x00ff, 0xa6b5, 0x0400, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0xa6b4,
1573 0x00ff, 0xa6b5, 0x0400, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0x70ab,
1574 0x4003, 0x0078, 0x24fa, 0x0078, 0x3fef, 0x1078, 0x248c, 0x70ab,
1575 0x400b, 0x0078, 0x24fa, 0x1078, 0x484d, 0x0078, 0x24fa, 0x70a7,
1576 0x4013, 0x0078, 0x4847, 0x2011, 0x0012, 0x1078, 0x43ed, 0x0079,
1577 0x4019, 0x401f, 0x24fa, 0x3c68, 0x402b, 0x4033, 0x4039, 0xa6b4,
1578 0x00ff, 0xa6b5, 0x0400, 0x6eb6, 0x7e5a, 0x70b4, 0xa080, 0x00aa,
1579 0x781a, 0x0078, 0x24fa, 0xa6b4, 0x00ff, 0xa6b5, 0x0400, 0x6eb6,
1580 0x7e5a, 0x0078, 0x4835, 0x70ab, 0x4037, 0x0078, 0x24fa, 0x0078,
1581 0x401f, 0x70ab, 0x403d, 0x0078, 0x24fa, 0x0078, 0x402b, 0xa286,
1582 0x0001, 0x0040, 0x4045, 0x1078, 0x248c, 0x70a7, 0x4049, 0x0078,
1583 0x4847, 0x2011, 0x0015, 0x1078, 0x43ed, 0x0079, 0x404f, 0x4054,
1584 0x24fa, 0x3c68, 0x4062, 0x406e, 0xa6b4, 0x00ff, 0xa6b5, 0x0400,
1585 0x6eb6, 0x7e5a, 0x783b, 0x1301, 0x70b4, 0xa080, 0x00b5, 0x781a,
1586 0x0078, 0x24fa, 0xa6b4, 0x00ff, 0xa6b5, 0x0400, 0x6eb6, 0x7e5a,
1587 0x70b4, 0xa080, 0x00aa, 0x781a, 0x0078, 0x24fa, 0x70ab, 0x4072,
1588 0x0078, 0x24fa, 0x0078, 0x4054, 0xa282, 0x0003, 0x0050, 0x407a,
1589 0x1078, 0x248c, 0x2300, 0x0079, 0x407d, 0x4080, 0x40b7, 0x4114,
1590 0xa286, 0x0001, 0x0040, 0x4086, 0x1078, 0x248c, 0x6804, 0xa084,
1591 0x00ff, 0xa086, 0x0006, 0x00c0, 0x4093, 0x1078, 0x3bc6, 0x7003,
1592 0x0000, 0x0078, 0x3c68, 0x683b, 0x0000, 0x6837, 0x0000, 0xa684,
1593 0x0200, 0x0040, 0x40a1, 0x1078, 0x47fe, 0x1078, 0x43d5, 0x1078,
1594 0x4805, 0x2001, 0x0001, 0x1078, 0x4797, 0x78b8, 0xa084, 0xc001,
1595 0x0040, 0x40b3, 0x7848, 0xa085, 0x0008, 0x784a, 0x7848, 0xa084,
1596 0x0008, 0x00c0, 0x40ae, 0x7003, 0x0000, 0x0078, 0x3c68, 0x2200,
1597 0x0079, 0x40ba, 0x40bc, 0x40ef, 0x70a7, 0x40c0, 0x0078, 0x4847,
1598 0x2011, 0x000d, 0x1078, 0x43ed, 0x0079, 0x40c6, 0x40cd, 0x24fa,
1599 0x3c68, 0x40d5, 0x40dd, 0x40e3, 0x40e5, 0xa6b4, 0x00ff, 0xa6b5,
1600 0x0800, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0xa6b4, 0x00ff, 0xa6b5,
1601 0x0800, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0x70ab, 0x40e1, 0x0078,
1602 0x24fa, 0x0078, 0x40cd, 0x1078, 0x248c, 0x70ab, 0x40eb, 0x1078,
1603 0x4805, 0x0078, 0x24fa, 0x1078, 0x484d, 0x0078, 0x24fa, 0x70a7,
1604 0x40f3, 0x0078, 0x4847, 0x2011, 0x0005, 0x1078, 0x43ed, 0x0079,
1605 0x40f9, 0x40fe, 0x24fa, 0x3c68, 0x4106, 0x410e, 0xa6b4, 0x00ff,
1606 0xa6b5, 0x0800, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0xa6b4, 0x00ff,
1607 0xa6b5, 0x0800, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0x70ab, 0x4112,
1608 0x0078, 0x24fa, 0x0078, 0x40fe, 0xa286, 0x0001, 0x0040, 0x411a,
1609 0x1078, 0x248c, 0x70a7, 0x411e, 0x0078, 0x4847, 0x2011, 0x0006,
1610 0x1078, 0x43ed, 0x0079, 0x4124, 0x4129, 0x24fa, 0x3c68, 0x412f,
1611 0x4139, 0xa6b5, 0x0800, 0x6eb6, 0x7e5a, 0x0078, 0x4835, 0xa6b4,
1612 0x00ff, 0xa6b5, 0x0800, 0x6eb6, 0xa6b5, 0x4000, 0x7e5a, 0x0078,
1613 0x4835, 0x70ab, 0x413d, 0x0078, 0x24fa, 0x0078, 0x4129, 0x2300,
1614 0x0079, 0x4142, 0x4147, 0x4145, 0x4145, 0x1078, 0x248c, 0x1078,
1615 0x248c, 0x2300, 0x71a8, 0xa005, 0x017a, 0x6810, 0x70be, 0xa282,
1616 0x0003, 0x0050, 0x4155, 0x1078, 0x248c, 0x2300, 0x0079, 0x4158,
1617 0x415b, 0x4169, 0x418b, 0xa684, 0x0200, 0x0040, 0x4163, 0x1078,
1618 0x47fe, 0x1078, 0x4805, 0x2001, 0x0001, 0x1078, 0x4797, 0x0078,
1619 0x24fa, 0xa296, 0x0002, 0x0040, 0x4172, 0x82ff, 0x0040, 0x4172,
1620 0x1078, 0x248c, 0x70a7, 0x4176, 0x0078, 0x4847, 0x2011, 0x0018,
1621 0x1078, 0x43ed, 0x0079, 0x417c, 0x4181, 0x24fa, 0x3c68, 0x4183,
1622 0x4185, 0x0078, 0x4835, 0x0078, 0x4835, 0x70ab, 0x4189, 0x0078,
1623 0x24fa, 0x0078, 0x4181, 0x2200, 0x0079, 0x418e, 0x4190, 0x41a9,
1624 0x70a7, 0x4194, 0x0078, 0x4847, 0x2011, 0x0017, 0x1078, 0x43ed,
1625 0x0079, 0x419a, 0x419f, 0x24fa, 0x3c68, 0x41a1, 0x41a3, 0x0078,
1626 0x4835, 0x0078, 0x4835, 0x70ab, 0x41a7, 0x0078, 0x24fa, 0x0078,
1627 0x419f, 0xa484, 0x8000, 0x00c0, 0x4205, 0xa684, 0x0100, 0x0040,
1628 0x41b5, 0x1078, 0x47fe, 0x1078, 0x43d5, 0x78d8, 0x78d2, 0x78dc,
1629 0x78d6, 0xa6b4, 0xefff, 0x7e5a, 0x70a7, 0x41c0, 0x0078, 0x4847,
1630 0x2011, 0x000d, 0x1078, 0x43ed, 0x0079, 0x41c6, 0x41cd, 0x24fa,
1631 0x3c68, 0x41cd, 0x41f3, 0x41f9, 0x41fb, 0x78d8, 0x79dc, 0xa105,
1632 0x00c0, 0x41df, 0x78b8, 0xa084, 0x001f, 0x00c0, 0x41df, 0x70b3,
1633 0x0000, 0x7858, 0xa084, 0xfdff, 0x785a, 0x0078, 0x4835, 0xa684,
1634 0x0100, 0x0040, 0x41f1, 0x7848, 0xa085, 0x0008, 0x784a, 0x1078,
1635 0x47bc, 0x682c, 0x78d2, 0x6830, 0x78d6, 0x70b3, 0x0000, 0x1078,
1636 0x47f6, 0x0078, 0x4835, 0x70ab, 0x41f7, 0x0078, 0x24fa, 0x0078,
1637 0x41cd, 0x1078, 0x248c, 0x70ab, 0x4201, 0x1078, 0x4805, 0x0078,
1638 0x24fa, 0x1078, 0x484d, 0x0078, 0x24fa, 0x1078, 0x4805, 0x70ab,
1639 0x420f, 0x2001, 0x0003, 0x1078, 0x478f, 0x0078, 0x4841, 0x1078,
1640 0x47f6, 0x682c, 0x78d2, 0x6830, 0x78d6, 0x0078, 0x4835, 0x70b8,
1641 0x6812, 0x70be, 0x8000, 0x70ba, 0x681b, 0x0000, 0xa684, 0x0008,
1642 0x0040, 0x423a, 0x157e, 0x137e, 0x147e, 0x7890, 0x8004, 0x8004,
1643 0x8004, 0x8004, 0xa084, 0x000f, 0x681a, 0x80ac, 0x789b, 0x0000,
1644 0xaf80, 0x002b, 0x2098, 0xad80, 0x000b, 0x20a0, 0x53a5, 0x147f,
1645 0x137f, 0x157f, 0xa6c4, 0x0f00, 0xa684, 0x0002, 0x00c0, 0x4249,
1646 0x692c, 0x810d, 0x810d, 0x810d, 0xa184, 0x0007, 0x2008, 0x0078,
1647 0x425c, 0x789b, 0x0010, 0x79ac, 0xa184, 0x0020, 0x0040, 0x425c,
1648 0x017e, 0x2009, 0x0005, 0x2001, 0x3d00, 0x1078, 0x47c7, 0x6824,
1649 0xa085, 0x003b, 0x6826, 0x017f, 0xa184, 0x001f, 0xa805, 0x6816,
1650 0x1078, 0x3c3b, 0x68be, 0xa684, 0x0004, 0x0040, 0x426d, 0xa18c,
1651 0xff00, 0x78a8, 0xa084, 0x00ff, 0xa105, 0x682a, 0xa6b4, 0x00ff,
1652 0x6000, 0xa084, 0x0008, 0x0040, 0x4277, 0xa6b5, 0x4000, 0x6eb6,
1653 0x007c, 0x157e, 0x137e, 0x147e, 0x6918, 0x7890, 0x8004, 0x8004,
1654 0x8004, 0x8004, 0xa084, 0x000f, 0x007e, 0xa100, 0x681a, 0x007f,
1655 0x8000, 0x8004, 0x0040, 0x4298, 0x20a8, 0x8104, 0xa080, 0x000b,
1656 0xad00, 0x20a0, 0x789b, 0x0000, 0xaf80, 0x002b, 0x2098, 0x53a5,
1657 0x147f, 0x137f, 0x157f, 0x007c, 0x682c, 0xa084, 0x0020, 0x00c0,
1658 0x42a4, 0x620c, 0x0078, 0x42a5, 0x6210, 0x6b18, 0x2300, 0xa202,
1659 0x0040, 0x42c5, 0x2018, 0xa382, 0x000e, 0x0048, 0x42b5, 0x0040,
1660 0x42b5, 0x2019, 0x000e, 0x0078, 0x42b9, 0x7858, 0xa084, 0xffef,
1661 0x785a, 0x783b, 0x1b01, 0x7893, 0x0000, 0x7ba2, 0x70b4, 0xa080,
1662 0x008e, 0x781a, 0xa085, 0x0001, 0x007c, 0x7858, 0xa084, 0xffef,
1663 0x785a, 0x7893, 0x0000, 0xa006, 0x007c, 0x6904, 0xa18c, 0x00ff,
1664 0xa196, 0x0007, 0x0040, 0x42da, 0xa196, 0x000f, 0x0040, 0x42da,
1665 0x6807, 0x0117, 0x6914, 0x1078, 0x3c3b, 0x6100, 0x8104, 0x00c8,
1666 0x42f5, 0x601c, 0xa005, 0x0040, 0x42e9, 0x2001, 0x0800, 0x0078,
1667 0x42f7, 0x0d7e, 0x6824, 0x007e, 0x1078, 0x4812, 0x007f, 0x6826,
1668 0x2d00, 0x682e, 0x1078, 0x3bc6, 0x0d7f, 0x2001, 0x0200, 0x6924,
1669 0xa18c, 0x00ff, 0xa10d, 0x6926, 0x8007, 0x789b, 0x000e, 0x78aa,
1670 0x6820, 0xa085, 0x8000, 0x6822, 0x2031, 0x0400, 0x6eb6, 0x7e5a,
1671 0x71b4, 0xa188, 0x0091, 0x791a, 0x007c, 0xa6c4, 0x0f00, 0xa684,
1672 0x0002, 0x00c0, 0x4321, 0x692c, 0x810d, 0x810d, 0x810d, 0xa184,
1673 0x0007, 0x2008, 0xa805, 0x6816, 0x1078, 0x3c3b, 0x68be, 0x0078,
1674 0x4324, 0x6914, 0x1078, 0x3c3b, 0x6100, 0x8104, 0x00c8, 0x4382,
1675 0xa184, 0x0300, 0x0040, 0x4330, 0x6807, 0x0117, 0x0078, 0x434e,
1676 0x6004, 0xa005, 0x00c0, 0x4357, 0x6807, 0x0117, 0x601c, 0xa005,
1677 0x00c0, 0x4344, 0x0d7e, 0x1078, 0x4812, 0x6827, 0x0034, 0x2d00,
1678 0x682e, 0x1078, 0x3bc6, 0x0d7f, 0xa684, 0x0004, 0x0040, 0x434e,
1679 0x2031, 0x0400, 0x2001, 0x2800, 0x0078, 0x4352, 0x2031, 0x0400,
1680 0x2001, 0x0800, 0x71b4, 0xa188, 0x0091, 0x0078, 0x43b0, 0x6018,
1681 0xa005, 0x00c0, 0x4344, 0x601c, 0xa005, 0x00c0, 0x4344, 0x689f,
1682 0x0000, 0x6827, 0x003d, 0xa684, 0x0001, 0x0040, 0x43be, 0xd694,
1683 0x00c0, 0x437b, 0x6100, 0xd1d4, 0x0040, 0x437b, 0x692c, 0xa18c,
1684 0x00ff, 0x0040, 0x43be, 0xa186, 0x0003, 0x0040, 0x43be, 0xa186,
1685 0x0012, 0x0040, 0x43be, 0xa6b5, 0x0800, 0x71b4, 0xa188, 0x00ae,
1686 0x0078, 0x43b9, 0x6807, 0x0117, 0x2031, 0x0400, 0x692c, 0xa18c,
1687 0x00ff, 0xa186, 0x0012, 0x00c0, 0x4393, 0x2001, 0x43cb, 0x2009,
1688 0x0001, 0x0078, 0x43a4, 0xa186, 0x0003, 0x00c0, 0x439d, 0x2001,
1689 0x43cc, 0x2009, 0x0012, 0x0078, 0x43a4, 0x2001, 0x0200, 0x71b4,
1690 0xa188, 0x0091, 0x0078, 0x43b0, 0x1078, 0x47e1, 0x78a3, 0x0000,
1691 0x681c, 0xa085, 0x0040, 0x681e, 0x71b4, 0xa188, 0x00da, 0xa006,
1692 0x6826, 0x8007, 0x789b, 0x000e, 0x78aa, 0x6820, 0xa085, 0x8000,
1693 0x6822, 0x6eb6, 0x7e5a, 0x791a, 0x0078, 0x24fa, 0x6eb6, 0x1078,
1694 0x3bc6, 0x6810, 0x70be, 0x7003, 0x0007, 0x70a3, 0x0000, 0x704b,
1695 0x0000, 0x0078, 0x24fa, 0x0023, 0x0070, 0x0005, 0x0000, 0x0a00,
1696 0x0000, 0x0000, 0x0025, 0x0000, 0x0000, 0x683b, 0x0000, 0x6837,
1697 0x0000, 0xa684, 0x0200, 0x0040, 0x43ec, 0x78b8, 0xa08c, 0x001f,
1698 0xa084, 0x8000, 0x0040, 0x43e5, 0x8108, 0x78d8, 0xa100, 0x6836,
1699 0x78dc, 0xa081, 0x0000, 0x683a, 0x007c, 0x7990, 0x810f, 0xa5ac,
1700 0x0007, 0x2021, 0x0000, 0xa480, 0x0010, 0x789a, 0x79a8, 0xa18c,
1701 0x00ff, 0xa184, 0x0080, 0x00c0, 0x441b, 0xa182, 0x0020, 0x00c8,
1702 0x4439, 0xa182, 0x0012, 0x00c8, 0x4781, 0x2100, 0x1079, 0x4409,
1703 0x007c, 0x4781, 0x45eb, 0x4781, 0x4781, 0x4446, 0x4449, 0x4483,
1704 0x44b9, 0x44ed, 0x44f0, 0x4781, 0x4781, 0x44a4, 0x4514, 0x454e,
1705 0x4781, 0x4781, 0x4574, 0xa184, 0x0020, 0x00c0, 0x45a8, 0xa18c,
1706 0x001f, 0x6814, 0xa084, 0x001f, 0xa106, 0x0040, 0x4436, 0x70b4,
1707 0xa080, 0x00cd, 0x781a, 0x2001, 0x0014, 0x1078, 0x4797, 0x1078,
1708 0x4805, 0x7003, 0x0000, 0x2001, 0x0002, 0x007c, 0x2001, 0x0000,
1709 0x007c, 0xa182, 0x0024, 0x00c8, 0x4781, 0xa184, 0x0003, 0x1079,
1710 0x4409, 0x007c, 0x4781, 0x4781, 0x4781, 0x4781, 0x1078, 0x4781,
1711 0x007c, 0x2200, 0x0079, 0x444c, 0x4577, 0x4577, 0x4470, 0x4470,
1712 0x4470, 0x4470, 0x4470, 0x4470, 0x4470, 0x4470, 0x446e, 0x4470,
1713 0x4465, 0x4470, 0x4470, 0x4470, 0x4470, 0x4470, 0x4478, 0x447b,
1714 0x4577, 0x447b, 0x4470, 0x4470, 0x4470, 0x0c7e, 0x077e, 0x6f14,
1715 0x1078, 0x37b0, 0x077f, 0x0c7f, 0x0078, 0x4470, 0x1078, 0x468e,
1716 0x6827, 0x02b3, 0x2009, 0x000b, 0x2001, 0x4800, 0x0078, 0x45ab,
1717 0x1078, 0x4773, 0x007c, 0x6827, 0x0093, 0x2009, 0x000b, 0x2001,
1718 0x4800, 0x0078, 0x4593, 0x2d58, 0x6804, 0xa084, 0x00ff, 0xa086,
1719 0x0006, 0x00c0, 0x448d, 0x6807, 0x0117, 0x6827, 0x0002, 0x1078,
1720 0x4812, 0x6827, 0x0036, 0x6932, 0x2d00, 0x682e, 0x0d7e, 0x1078,
1721 0x3b96, 0x1078, 0x45d3, 0x2b68, 0x1078, 0x3bc6, 0x0d7f, 0x1078,
1722 0x3bc6, 0x2001, 0x0002, 0x007c, 0x1078, 0x45d3, 0x2001, 0x0017,
1723 0x1078, 0x4797, 0x70a3, 0x0000, 0x2009, 0x5238, 0x200b, 0x0006,
1724 0x70af, 0x0017, 0x2009, 0x0200, 0x1078, 0x3ad4, 0x2001, 0x0001,
1725 0x007c, 0x2200, 0x0079, 0x44bc, 0x4577, 0x45a8, 0x45a8, 0x45a8,
1726 0x44dd, 0x45ba, 0x44e5, 0x45ba, 0x45ba, 0x45bd, 0x45bd, 0x45c2,
1727 0x45c2, 0x44d5, 0x44d5, 0x45a8, 0x45a8, 0x45ba, 0x45a8, 0x44e5,
1728 0x4577, 0x44e5, 0x44e5, 0x44e5, 0x44e5, 0x6827, 0x0084, 0x2009,
1729 0x000b, 0x2001, 0x4300, 0x0078, 0x45cc, 0x6827, 0x000d, 0x2009,
1730 0x000b, 0x2001, 0x4300, 0x0078, 0x45ab, 0x6827, 0x0093, 0x2009,
1731 0x000b, 0x2001, 0x4300, 0x0078, 0x4593, 0x2001, 0x0000, 0x007c,
1732 0x2200, 0x0079, 0x44f3, 0x4577, 0x450c, 0x450c, 0x450c, 0x450c,
1733 0x45ba, 0x45ba, 0x45ba, 0x45ba, 0x45ba, 0x45ba, 0x45ba, 0x45ba,
1734 0x450c, 0x450c, 0x450c, 0x450c, 0x45ba, 0x450c, 0x450c, 0x45ba,
1735 0x45ba, 0x45ba, 0x45ba, 0x4577, 0x6827, 0x0093, 0x2009, 0x000b,
1736 0x2001, 0x4300, 0x0078, 0x4593, 0xa684, 0x0004, 0x00c0, 0x4528,
1737 0x6804, 0xa084, 0x00ff, 0xa086, 0x0006, 0x00c0, 0x4781, 0x1078,
1738 0x45d3, 0x6807, 0x0117, 0x1078, 0x3bc6, 0x2001, 0x0002, 0x007c,
1739 0x6000, 0xa084, 0x0004, 0x0040, 0x4781, 0x2d58, 0x6804, 0xa084,
1740 0x00ff, 0xa086, 0x0006, 0x00c0, 0x4537, 0x6807, 0x0117, 0x6827,
1741 0x0002, 0x1078, 0x4812, 0x6827, 0x0036, 0x6932, 0x2d00, 0x682e,
1742 0x0d7e, 0x1078, 0x3ba5, 0x1078, 0x45d3, 0x2b68, 0x1078, 0x3bc6,
1743 0x0d7f, 0x1078, 0x3bc6, 0x2001, 0x0002, 0x007c, 0x6000, 0xa084,
1744 0x0004, 0x0040, 0x4781, 0x6a04, 0xa294, 0x00ff, 0xa286, 0x0006,
1745 0x00c0, 0x455c, 0x6807, 0x0117, 0x6827, 0x0002, 0x2d58, 0x1078,
1746 0x4812, 0x6827, 0x0036, 0x6932, 0x2d00, 0x682e, 0x0d7e, 0x1078,
1747 0x3bb5, 0x1078, 0x45d3, 0x2b68, 0x1078, 0x3bc6, 0x0d7f, 0x1078,
1748 0x3bc6, 0x2001, 0x0002, 0x007c, 0x1078, 0x4781, 0x007c, 0x70b4,
1749 0xa080, 0x00cd, 0x781a, 0x2001, 0x0001, 0x1078, 0x4797, 0x1078,
1750 0x4805, 0x7003, 0x0000, 0x2001, 0x0002, 0x007c, 0x1078, 0x47c7,
1751 0x1078, 0x47fe, 0x1078, 0x43d5, 0x1078, 0x42cd, 0x1078, 0x4805,
1752 0x2001, 0x0001, 0x007c, 0x1078, 0x47c7, 0x1078, 0x47fe, 0x1078,
1753 0x43d5, 0x70b4, 0xa080, 0x00cd, 0x781a, 0x2001, 0x0013, 0x1078,
1754 0x4797, 0x1078, 0x4805, 0x7003, 0x0000, 0x2001, 0x0002, 0x007c,
1755 0x1078, 0x4781, 0x007c, 0x1078, 0x47c7, 0x1078, 0x47fe, 0x1078,
1756 0x43d5, 0x1078, 0x42cd, 0x1078, 0x4805, 0x1078, 0x484d, 0x2001,
1757 0x0001, 0x007c, 0x2001, 0x0003, 0x007c, 0x1078, 0x468e, 0x2001,
1758 0x0000, 0x007c, 0x0c7e, 0x077e, 0x6f14, 0x1078, 0x37b0, 0x077f,
1759 0x0c7f, 0x2001, 0x0000, 0x007c, 0x1078, 0x47c7, 0x1078, 0x4781,
1760 0x2001, 0x0006, 0x007c, 0x6904, 0xa18c, 0x00ff, 0xa186, 0x0007,
1761 0x0040, 0x45de, 0xa186, 0x000f, 0x00c0, 0x45e2, 0x1078, 0x47fe,
1762 0x1078, 0x43d5, 0x70b4, 0xa080, 0x00cd, 0x781a, 0x1078, 0x4805,
1763 0x7003, 0x0000, 0x007c, 0x7aa8, 0xa294, 0x00ff, 0x78a8, 0xa084,
1764 0x00ff, 0xa08a, 0x0004, 0x00c8, 0x4781, 0x1079, 0x45f8, 0x007c,
1765 0x4781, 0x45fc, 0x4781, 0x4695, 0xa282, 0x0003, 0x0040, 0x4603,
1766 0x1078, 0x4781, 0x007c, 0x7da8, 0xa5ac, 0x00ff, 0x7ca8, 0xa4a4,
1767 0x00ff, 0x69b8, 0xa184, 0x0100, 0x0040, 0x4642, 0xa18c, 0xfeff,
1768 0x69ba, 0x78a0, 0xa005, 0x00c0, 0x4642, 0xa4a4, 0x00ff, 0x0040,
1769 0x4636, 0xa482, 0x000c, 0x0040, 0x461f, 0x00c8, 0x4629, 0x852b,
1770 0x852b, 0x1078, 0x382e, 0x0040, 0x4629, 0x1078, 0x3627, 0x0078,
1771 0x4638, 0x1078, 0x4760, 0x1078, 0x3652, 0x69b8, 0xa18d, 0x0100,
1772 0x69ba, 0xa6b5, 0x1000, 0x7e5a, 0x0078, 0x463b, 0x1078, 0x3652,
1773 0xa6b4, 0xefff, 0x7e5a, 0x70b4, 0xa080, 0x0091, 0x781a, 0x2001,
1774 0x0001, 0x007c, 0x0c7e, 0x1078, 0x4682, 0x6200, 0xd2e4, 0x0040,
1775 0x4673, 0x6208, 0x8217, 0xa294, 0x00ff, 0xa282, 0x000c, 0x0048,
1776 0x4655, 0x0040, 0x4655, 0x2011, 0x000c, 0x2400, 0xa202, 0x00c8,
1777 0x465a, 0x2220, 0x6208, 0xa294, 0x00ff, 0x701c, 0xa202, 0x00c8,
1778 0x4662, 0x721c, 0x2200, 0xa502, 0x00c8, 0x4667, 0x2228, 0x1078,
1779 0x4764, 0x852b, 0x852b, 0x1078, 0x382e, 0x0040, 0x4673, 0x1078,
1780 0x362e, 0x0078, 0x4677, 0x1078, 0x4760, 0x1078, 0x3659, 0xa6b5,
1781 0x1000, 0x7e5a, 0x70b4, 0xa080, 0x00b9, 0x781a, 0x2001, 0x0004,
1782 0x0c7f, 0x007c, 0x007e, 0x6814, 0x8007, 0xa084, 0x000f, 0x8003,
1783 0x8003, 0x8003, 0xa0e0, 0x5480, 0x007f, 0x007c, 0x0c7e, 0x1078,
1784 0x4682, 0x1078, 0x3659, 0x0c7f, 0x007c, 0xa282, 0x0002, 0x00c0,
1785 0x4781, 0x7aa8, 0xa294, 0x00ff, 0x69b8, 0xa184, 0x0200, 0x0040,
1786 0x46cc, 0xa18c, 0xfdff, 0x69ba, 0x78a0, 0xa005, 0x00c0, 0x46cc,
1787 0xa282, 0x0002, 0x00c8, 0x376b, 0x1078, 0x472a, 0x1078, 0x36f9,
1788 0x1078, 0x3652, 0xa684, 0x0100, 0x0040, 0x46c2, 0x682c, 0xa084,
1789 0x0001, 0x0040, 0x46c2, 0xc6fc, 0x7888, 0xa084, 0x0040, 0x0040,
1790 0x46c2, 0xc6fd, 0xa6b5, 0x1000, 0x7e5a, 0x70b4, 0xa080, 0x0091,
1791 0x781a, 0x2001, 0x0001, 0x007c, 0x0c7e, 0x1078, 0x4682, 0xa284,
1792 0xfffe, 0x0040, 0x46d7, 0x2011, 0x0001, 0x0078, 0x46db, 0xa284,
1793 0x0001, 0x0040, 0x46e1, 0x6100, 0xd1ec, 0x00c0, 0x46e1, 0x2011,
1794 0x0000, 0x1078, 0x471c, 0x1078, 0x3700, 0x1078, 0x3659, 0xa684,
1795 0x0100, 0x0040, 0x46f7, 0x682c, 0xa084, 0x0001, 0x0040, 0x46f7,
1796 0xc6fc, 0x7888, 0xa084, 0x0040, 0x0040, 0x46f7, 0xc6fd, 0xa6b5,
1797 0x1000, 0x7e5a, 0x70b4, 0xa080, 0x00b9, 0x781a, 0x2001, 0x0004,
1798 0x0c7f, 0x007c, 0x0c7e, 0x2960, 0x6000, 0x2011, 0x0001, 0xa084,
1799 0x2000, 0x00c0, 0x470d, 0x2011, 0x0000, 0x78ab, 0x0001, 0x78ab,
1800 0x0002, 0x78ab, 0x0003, 0x7aaa, 0xa8c0, 0x0004, 0x68b8, 0xa085,
1801 0x0200, 0x68ba, 0x0c7f, 0x007c, 0x789b, 0x0018, 0x78ab, 0x0001,
1802 0x78ab, 0x0002, 0x78ab, 0x0003, 0x7aaa, 0x789b, 0x0081, 0x78ab,
1803 0x0004, 0x007c, 0x0c7e, 0x7054, 0x2060, 0x6000, 0xa084, 0x1000,
1804 0x00c0, 0x4738, 0x2029, 0x0032, 0x2021, 0x0000, 0x0078, 0x4758,
1805 0x6508, 0xa5ac, 0x00ff, 0x7018, 0xa086, 0x0028, 0x00c0, 0x4748,
1806 0xa582, 0x0019, 0x00c8, 0x474e, 0x2029, 0x0019, 0x0078, 0x474e,
1807 0xa582, 0x000c, 0x00c8, 0x474e, 0x2029, 0x000c, 0x6408, 0x8427,
1808 0xa4a4, 0x00ff, 0xa482, 0x000c, 0x0048, 0x4758, 0x2021, 0x000c,
1809 0x1078, 0x4764, 0x68b8, 0xa085, 0x0100, 0x68ba, 0x0c7f, 0x007c,
1810 0x2021, 0x0000, 0x2029, 0x0032, 0x789b, 0x0018, 0x78ab, 0x0001,
1811 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7daa, 0x7caa, 0x789b, 0x0081,
1812 0x78ab, 0x0005, 0x007c, 0x2001, 0x0003, 0x1078, 0x478f, 0xa6b5,
1813 0x1000, 0x7e5a, 0x70b4, 0xa080, 0x00b9, 0x781a, 0x2001, 0x0005,
1814 0x007c, 0x2001, 0x0007, 0x1078, 0x478f, 0xa6b5, 0x1000, 0x7e5a,
1815 0x70b4, 0xa080, 0x00b9, 0x781a, 0x2001, 0x0004, 0x007c, 0x789b,
1816 0x0018, 0x78aa, 0x789b, 0x0081, 0x78ab, 0x0001, 0x007c, 0x6904,
1817 0xa18c, 0x00ff, 0xa196, 0x0007, 0x0040, 0x47a5, 0xa196, 0x000f,
1818 0x0040, 0x47a5, 0x1078, 0x19ac, 0x007c, 0x6924, 0xa194, 0x003f,
1819 0x00c0, 0x47ae, 0xa18c, 0xffc0, 0xa105, 0x6826, 0x1078, 0x3bc6,
1820 0x691c, 0xa184, 0x0100, 0x0040, 0x47bb, 0x6914, 0x1078, 0x3c3b,
1821 0x6204, 0x8210, 0x6206, 0x007c, 0x692c, 0x6834, 0x682e, 0xa112,
1822 0x6930, 0x6838, 0x6832, 0xa11b, 0xa200, 0xa301, 0x007c, 0x0c7e,
1823 0xade0, 0x0018, 0x6003, 0x0070, 0x6106, 0x600b, 0x0000, 0x600f,
1824 0x0a00, 0x6013, 0x0000, 0x6017, 0x0000, 0x8007, 0x601a, 0x601f,
1825 0x0000, 0x6023, 0x0000, 0x0c7f, 0x6824, 0xa085, 0x0080, 0x6826,
1826 0x007c, 0x157e, 0x137e, 0x147e, 0x2098, 0xaf80, 0x002d, 0x20a0,
1827 0x81ac, 0x0040, 0x47ec, 0x53a6, 0xa184, 0x0001, 0x0040, 0x47f2,
1828 0x3304, 0x78be, 0x147f, 0x137f, 0x157f, 0x007c, 0x70b0, 0xa005,
1829 0x10c0, 0x248c, 0x70b3, 0x8000, 0x0078, 0x4b4b, 0x71b0, 0x81ff,
1830 0x0040, 0x4804, 0x1078, 0x4c41, 0x007c, 0x71b0, 0x81ff, 0x0040,
1831 0x4811, 0x7848, 0xa085, 0x0008, 0x784a, 0x70b3, 0x0000, 0x1078,
1832 0x4887, 0x007c, 0x0c7e, 0x0d7e, 0x1078, 0x1989, 0x00c0, 0x481a,
1833 0x1078, 0x248c, 0x0c7f, 0x157e, 0x137e, 0x147e, 0x2da0, 0x2c98,
1834 0x20a9, 0x0031, 0x53a3, 0x147f, 0x137f, 0x157f, 0x6807, 0x010d,
1835 0x680b, 0x0000, 0x7004, 0x8007, 0x681a, 0x6823, 0x0000, 0x681f,
1836 0x0000, 0x689f, 0x0000, 0x0c7f, 0x007c, 0x70b4, 0xa080, 0x0091,
1837 0x781a, 0x0078, 0x24fa, 0x70b4, 0xa080, 0x0081, 0x781a, 0x0078,
1838 0x24fa, 0x70b4, 0xa080, 0x00b9, 0x781a, 0x0078, 0x24fa, 0x70b4,
1839 0xa080, 0x00c3, 0x781a, 0x0078, 0x24fa, 0x6904, 0xa18c, 0x00ff,
1840 0xa196, 0x0007, 0x0040, 0x485a, 0xa196, 0x000f, 0x0040, 0x485a,
1841 0x6807, 0x0117, 0x6824, 0xa084, 0x00ff, 0xa085, 0x0200, 0x6826,
1842 0x8007, 0x789b, 0x000e, 0x78aa, 0x6820, 0xa085, 0x8000, 0x6822,
1843 0x2031, 0x0400, 0x6eb6, 0x7e5a, 0x71b4, 0xa188, 0x0091, 0x791a,
1844 0x007c, 0x1078, 0x4805, 0x7848, 0xa085, 0x000c, 0x784a, 0x70b4,
1845 0xa080, 0x00cd, 0x781a, 0x2009, 0x000b, 0x2001, 0x4400, 0x1078,
1846 0x47c7, 0x2001, 0x0013, 0x1078, 0x4797, 0x0078, 0x3c68, 0x127e,
1847 0x2091, 0x2200, 0x2049, 0x4887, 0x7000, 0x7204, 0xa205, 0x720c,
1848 0xa215, 0x7008, 0xa084, 0xfff7, 0xa205, 0x0040, 0x4899, 0x0078,
1849 0x489e, 0x7003, 0x0000, 0x127f, 0x2000, 0x007c, 0x7000, 0xa084,
1850 0x0001, 0x00c0, 0x48cc, 0x7108, 0x8103, 0x00c8, 0x48ab, 0x1078,
1851 0x49ce, 0x0078, 0x48a3, 0x700c, 0xa08c, 0x00ff, 0x0040, 0x48cc,
1852 0x7004, 0x8004, 0x00c8, 0x48c3, 0x7014, 0xa005, 0x00c0, 0x48bf,
1853 0x7010, 0xa005, 0x0040, 0x48c3, 0xa102, 0x00c8, 0x48a3, 0x7007,
1854 0x0010, 0x0078, 0x48cc, 0x8aff, 0x0040, 0x48cc, 0x1078, 0x4c18,
1855 0x00c0, 0x48c6, 0x0040, 0x48a3, 0x1078, 0x4957, 0x7003, 0x0000,
1856 0x127f, 0x2000, 0x007c, 0x017e, 0x6104, 0xa18c, 0x00ff, 0xa186,
1857 0x0007, 0x0040, 0x48df, 0xa18e, 0x000f, 0x00c0, 0x48e2, 0x6040,
1858 0x0078, 0x48e3, 0x6428, 0x017f, 0x84ff, 0x0040, 0x490d, 0x2c70,
1859 0x7004, 0xa0bc, 0x000f, 0xa7b8, 0x491d, 0x273c, 0x87fb, 0x00c0,
1860 0x48fb, 0x0048, 0x48f5, 0x1078, 0x248c, 0x609c, 0xa075, 0x0040,
1861 0x490d, 0x0078, 0x48e8, 0x2704, 0xae68, 0x6808, 0xa630, 0x680c,
1862 0xa529, 0x8421, 0x0040, 0x490d, 0x8738, 0x2704, 0xa005, 0x00c0,
1863 0x48fc, 0x709c, 0xa075, 0x00c0, 0x48e8, 0x007c, 0x0000, 0x0005,
1864 0x0009, 0x000d, 0x0011, 0x0015, 0x0019, 0x001d, 0x0000, 0x0003,
1865 0x0009, 0x000f, 0x0015, 0x001b, 0x0000, 0x0000, 0x4912, 0x490f,
1866 0x0000, 0x0000, 0x8000, 0x0000, 0x4912, 0x0000, 0x491a, 0x4917,
1867 0x0000, 0x0000, 0x0000, 0x0000, 0x491a, 0x0000, 0x4915, 0x4915,
1868 0x0000, 0x0000, 0x8000, 0x0000, 0x4915, 0x0000, 0x491b, 0x491b,
1869 0x0000, 0x0000, 0x0000, 0x0000, 0x491b, 0x127e, 0x2091, 0x2200,
1870 0x2079, 0x5200, 0x2071, 0x0010, 0x7007, 0x000a, 0x7007, 0x0002,
1871 0x7003, 0x0000, 0x2071, 0x0020, 0x7007, 0x000a, 0x7007, 0x0002,
1872 0x7003, 0x0000, 0x2049, 0x0000, 0x127f, 0x2000, 0x007c, 0x2049,
1873 0x4957, 0x2019, 0x0000, 0x7004, 0x8004, 0x00c8, 0x49aa, 0x7007,
1874 0x0012, 0x7108, 0x7008, 0xa106, 0x00c0, 0x4961, 0xa184, 0x01e0,
1875 0x0040, 0x496c, 0x1078, 0x248c, 0x2001, 0x04fd, 0x2004, 0xa082,
1876 0x0005, 0x00c8, 0x4977, 0xa184, 0x4000, 0x00c0, 0x4961, 0xa19c,
1877 0x300c, 0xa386, 0x2004, 0x0040, 0x4985, 0xa386, 0x0008, 0x0040,
1878 0x4990, 0xa386, 0x200c, 0x00c0, 0x4961, 0x7200, 0x8204, 0x0048,
1879 0x4990, 0x730c, 0xa384, 0x00ff, 0x0040, 0x4990, 0x1078, 0x248c,
1880 0x7007, 0x0012, 0x7000, 0xa084, 0x0001, 0x00c0, 0x49aa, 0x7008,
1881 0xa084, 0x01e0, 0x00c0, 0x49aa, 0x7310, 0x7014, 0xa305, 0x0040,
1882 0x49aa, 0x710c, 0xa184, 0x0300, 0x00c0, 0x49aa, 0xa184, 0x00ff,
1883 0x00c0, 0x4957, 0x7007, 0x0012, 0x7007, 0x0008, 0x7004, 0xa084,
1884 0x0008, 0x00c0, 0x49ae, 0x7007, 0x0012, 0x7108, 0x8103, 0x0048,
1885 0x49b3, 0x7003, 0x0000, 0x2049, 0x0000, 0x007c, 0x107e, 0x007e,
1886 0x127e, 0x157e, 0x2091, 0x2200, 0x7108, 0x1078, 0x49ce, 0x157f,
1887 0x127f, 0x2091, 0x8001, 0x007f, 0x107f, 0x007c, 0x7204, 0x7500,
1888 0x730c, 0xa384, 0x0300, 0x00c0, 0x49f5, 0xa184, 0x01e0, 0x00c0,
1889 0x4a19, 0x7108, 0xa184, 0x01e0, 0x00c0, 0x4a19, 0x2001, 0x04fd,
1890 0x2004, 0xa082, 0x0005, 0x00c8, 0x49e9, 0xa184, 0x4000, 0x00c0,
1891 0x49d9, 0xa184, 0x0007, 0x0079, 0x49ed, 0x49f7, 0x4a09, 0x49f5,
1892 0x4a09, 0x49f5, 0x4a55, 0x49f5, 0x4a53, 0x1078, 0x248c, 0x7004,
1893 0xa084, 0x0010, 0xa085, 0x0002, 0x7006, 0x8aff, 0x00c0, 0x4a04,
1894 0x2049, 0x0000, 0x0078, 0x4a08, 0x1078, 0x4c18, 0x00c0, 0x4a04,
1895 0x007c, 0x7004, 0xa084, 0x0010, 0xa085, 0x0002, 0x7006, 0x8aff,
1896 0x00c0, 0x4a14, 0x0078, 0x4a18, 0x1078, 0x4c18, 0x00c0, 0x4a14,
1897 0x007c, 0x7007, 0x0012, 0x7108, 0x00e0, 0x4a1c, 0x2091, 0x6000,
1898 0x00e0, 0x4a20, 0x2091, 0x6000, 0x7007, 0x0012, 0x7007, 0x0008,
1899 0x7004, 0xa084, 0x0008, 0x00c0, 0x4a28, 0x7007, 0x0012, 0x7108,
1900 0x8103, 0x0048, 0x4a2d, 0x7003, 0x0000, 0x7000, 0xa005, 0x00c0,
1901 0x4a41, 0x7004, 0xa005, 0x00c0, 0x4a41, 0x700c, 0xa005, 0x0040,
1902 0x4a43, 0x0078, 0x4a24, 0x2049, 0x0000, 0x1078, 0x38d7, 0x6818,
1903 0xa084, 0x8000, 0x0040, 0x4a4e, 0x681b, 0x0002, 0x007c, 0x1078,
1904 0x248c, 0x1078, 0x248c, 0x1078, 0x4ab1, 0x7210, 0x7114, 0x700c,
1905 0xa09c, 0x00ff, 0x2800, 0xa300, 0xa211, 0xa189, 0x0000, 0x1078,
1906 0x4ab1, 0x2704, 0x2c58, 0xac60, 0x6308, 0x2200, 0xa322, 0x630c,
1907 0x2100, 0xa31b, 0x2400, 0xa305, 0x0040, 0x4a78, 0x00c8, 0x4a78,
1908 0x8412, 0x8210, 0x830a, 0xa189, 0x0000, 0x2b60, 0x0078, 0x4a5f,
1909 0x2b60, 0x8a07, 0x007e, 0x6004, 0xa084, 0x0008, 0x0040, 0x4a84,
1910 0xa7ba, 0x4917, 0x0078, 0x4a86, 0xa7ba, 0x490f, 0x007f, 0xa73d,
1911 0x2c00, 0x6886, 0x6f8a, 0x6c92, 0x6b8e, 0x7007, 0x0012, 0x1078,
1912 0x4957, 0x007c, 0x8738, 0x2704, 0xa005, 0x00c0, 0x4aa5, 0x609c,
1913 0xa005, 0x0040, 0x4aae, 0x2060, 0x6004, 0xa084, 0x000f, 0xa080,
1914 0x491d, 0x203c, 0x87fb, 0x1040, 0x248c, 0x8a51, 0x0040, 0x4aad,
1915 0x7008, 0xa084, 0x0003, 0xa086, 0x0003, 0x007c, 0x2051, 0x0000,
1916 0x007c, 0x8a50, 0x8739, 0x2704, 0xa004, 0x00c0, 0x4ac5, 0x6000,
1917 0xa064, 0x00c0, 0x4abc, 0x2d60, 0x6004, 0xa084, 0x000f, 0xa080,
1918 0x492d, 0x203c, 0x87fb, 0x1040, 0x248c, 0x007c, 0x127e, 0x0d7e,
1919 0x2091, 0x2200, 0x0d7f, 0x6884, 0x2060, 0x6888, 0x6b8c, 0x6c90,
1920 0x8057, 0xaad4, 0x00ff, 0xa084, 0x00ff, 0x007e, 0x6804, 0xa084,
1921 0x0008, 0x007f, 0x0040, 0x4ae0, 0xa0b8, 0x4917, 0x0078, 0x4ae2,
1922 0xa0b8, 0x490f, 0x7e08, 0xa6b5, 0x000c, 0x6904, 0xa18c, 0x00ff,
1923 0xa186, 0x0007, 0x0040, 0x4af0, 0xa18e, 0x000f, 0x00c0, 0x4af9,
1924 0x681c, 0xa084, 0x0040, 0x0040, 0x4b00, 0xa6b5, 0x0001, 0x0078,
1925 0x4b00, 0x681c, 0xa084, 0x0040, 0x0040, 0x4b00, 0xa6b5, 0x0001,
1926 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x4b02, 0x2400,
1927 0xa305, 0x00c0, 0x4b0d, 0x0078, 0x4b33, 0x2c58, 0x2704, 0x6104,
1928 0xac60, 0x6000, 0xa400, 0x701a, 0x6004, 0xa301, 0x701e, 0xa184,
1929 0x0008, 0x0040, 0x4b23, 0x6010, 0xa081, 0x0000, 0x7022, 0x6014,
1930 0xa081, 0x0000, 0x7026, 0x6208, 0x2400, 0xa202, 0x7012, 0x620c,
1931 0x2300, 0xa203, 0x7016, 0x7602, 0x7007, 0x0001, 0x2b60, 0x1078,
1932 0x4a92, 0x0078, 0x4b35, 0x1078, 0x4c18, 0x00c0, 0x4b33, 0x127f,
1933 0x2000, 0x007c, 0x127e, 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x7007,
1934 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x4b41, 0x7003, 0x0008,
1935 0x127f, 0x2000, 0x007c, 0x127e, 0x0d7e, 0x2091, 0x2200, 0x0d7f,
1936 0x2049, 0x4b4b, 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0,
1937 0x4b54, 0x7e08, 0xa6b5, 0x000c, 0x6904, 0xa18c, 0x00ff, 0xa186,
1938 0x0007, 0x0040, 0x4b67, 0xa18e, 0x000f, 0x00c0, 0x4b72, 0x681c,
1939 0xa084, 0x0040, 0x0040, 0x4b6e, 0xa6b5, 0x0001, 0x6840, 0x2050,
1940 0x0078, 0x4b7b, 0x681c, 0xa084, 0x0020, 0x00c0, 0x4b79, 0xa6b5,
1941 0x0001, 0x6828, 0x2050, 0x2d60, 0x6004, 0xa0bc, 0x000f, 0xa7b8,
1942 0x491d, 0x273c, 0x87fb, 0x00c0, 0x4b8f, 0x0048, 0x4b89, 0x1078,
1943 0x248c, 0x689c, 0xa065, 0x0040, 0x4b93, 0x0078, 0x4b7c, 0x1078,
1944 0x4c18, 0x00c0, 0x4b8f, 0x127f, 0x2000, 0x007c, 0x127e, 0x007e,
1945 0x017e, 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x037f, 0x047f, 0x7e08,
1946 0xa6b5, 0x000c, 0x6904, 0xa18c, 0x00ff, 0xa186, 0x0007, 0x0040,
1947 0x4bad, 0xa18e, 0x000f, 0x00c0, 0x4bb6, 0x681c, 0xa084, 0x0040,
1948 0x0040, 0x4bbd, 0xa6b5, 0x0001, 0x0078, 0x4bbd, 0x681c, 0xa084,
1949 0x0040, 0x0040, 0x4bbd, 0xa6b5, 0x0001, 0x2049, 0x4b96, 0x017e,
1950 0x6904, 0xa18c, 0x00ff, 0xa186, 0x0007, 0x0040, 0x4bcb, 0xa18e,
1951 0x000f, 0x00c0, 0x4bce, 0x6840, 0x0078, 0x4bcf, 0x6828, 0x017f,
1952 0xa055, 0x0040, 0x4c15, 0x2d70, 0x2e60, 0x7004, 0xa0bc, 0x000f,
1953 0xa7b8, 0x491d, 0x273c, 0x87fb, 0x00c0, 0x4be9, 0x0048, 0x4be2,
1954 0x1078, 0x248c, 0x709c, 0xa075, 0x2060, 0x0040, 0x4c15, 0x0078,
1955 0x4bd5, 0x2704, 0xae68, 0x6808, 0xa422, 0x680c, 0xa31b, 0x0048,
1956 0x4c02, 0x8a51, 0x00c0, 0x4bf6, 0x1078, 0x248c, 0x8738, 0x2704,
1957 0xa005, 0x00c0, 0x4bea, 0x709c, 0xa075, 0x2060, 0x0040, 0x4c15,
1958 0x0078, 0x4bd5, 0x8422, 0x8420, 0x831a, 0xa399, 0x0000, 0x6908,
1959 0x2400, 0xa122, 0x690c, 0x2300, 0xa11b, 0x00c8, 0x4c11, 0x1078,
1960 0x248c, 0x2071, 0x0020, 0x0078, 0x4b00, 0x127f, 0x2000, 0x007c,
1961 0x7008, 0xa084, 0x0003, 0xa086, 0x0003, 0x0040, 0x4c40, 0x2704,
1962 0xac08, 0x2104, 0x701a, 0x8108, 0x2104, 0x701e, 0x8108, 0x2104,
1963 0x7012, 0x8108, 0x2104, 0x7016, 0x6004, 0xa084, 0x0008, 0x0040,
1964 0x4c37, 0x8108, 0x2104, 0x7022, 0x8108, 0x2104, 0x7026, 0x7602,
1965 0x7004, 0xa084, 0x0010, 0xa085, 0x0001, 0x7006, 0x1078, 0x4a92,
1966 0x007c, 0x127e, 0x007e, 0x0d7e, 0x2091, 0x2200, 0x2049, 0x4c41,
1967 0x0d7f, 0x087f, 0x7108, 0xa184, 0x0003, 0x00c0, 0x4c6b, 0x017e,
1968 0x6904, 0xa18c, 0x00ff, 0xa186, 0x0007, 0x0040, 0x4c5b, 0xa18e,
1969 0x000f, 0x00c0, 0x4c5e, 0x6840, 0x0078, 0x4c5f, 0x6828, 0x017f,
1970 0xa005, 0x0040, 0x4c79, 0x0078, 0x489e, 0x0020, 0x4c6b, 0x1078,
1971 0x4a55, 0x0078, 0x4c79, 0x00a0, 0x4c72, 0x7108, 0x1078, 0x49ce,
1972 0x0078, 0x4c4a, 0x7007, 0x0010, 0x00a0, 0x4c74, 0x7108, 0x1078,
1973 0x49ce, 0x7008, 0xa086, 0x0008, 0x00c0, 0x4c4a, 0x7000, 0xa005,
1974 0x00c0, 0x4c4a, 0x7003, 0x0000, 0x2049, 0x0000, 0x127f, 0x2000,
1975 0x007c, 0x127e, 0x147e, 0x137e, 0x157e, 0x0c7e, 0x0d7e, 0x2091,
1976 0x2200, 0x0d7f, 0x2049, 0x4c89, 0xad80, 0x0011, 0x20a0, 0x2099,
1977 0x0031, 0x700c, 0xa084, 0x00ff, 0x682a, 0x7007, 0x0008, 0x7007,
1978 0x0002, 0x7003, 0x0001, 0x0040, 0x4ca8, 0x8000, 0x80ac, 0x53a5,
1979 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x4caa, 0x0c7f,
1980 0x2049, 0x0000, 0x7003, 0x0000, 0x157f, 0x137f, 0x147f, 0x127f,
1981 0x2000, 0x007c, 0x2091, 0x6000, 0x2091, 0x8000, 0x78cc, 0xa005,
1982 0x0040, 0x4cd1, 0x7994, 0x70d0, 0xa106, 0x00c0, 0x4cd1, 0x7804,
1983 0xa005, 0x0040, 0x4cd1, 0x7807, 0x0000, 0x0068, 0x4cd1, 0x2091,
1984 0x4080, 0x7820, 0x8001, 0x7822, 0x00c0, 0x4d2c, 0x7824, 0x7822,
1985 0x2069, 0x5240, 0x6800, 0xa084, 0x0007, 0x0040, 0x4cef, 0xa086,
1986 0x0002, 0x0040, 0x4cef, 0x6834, 0xa00d, 0x0040, 0x4cef, 0x2104,
1987 0xa005, 0x0040, 0x4cef, 0x8001, 0x200a, 0x0040, 0x4dd4, 0x7848,
1988 0xa005, 0x0040, 0x4cfd, 0x8001, 0x784a, 0x00c0, 0x4cfd, 0x2009,
1989 0x0102, 0x6844, 0x200a, 0x1078, 0x226f, 0x6890, 0xa005, 0x0040,
1990 0x4d09, 0x8001, 0x6892, 0x00c0, 0x4d09, 0x686f, 0x0000, 0x6873,
1991 0x0001, 0x2061, 0x5500, 0x20a9, 0x0100, 0x2009, 0x0002, 0x6034,
1992 0xa005, 0x0040, 0x4d1f, 0x8001, 0x6036, 0x00c0, 0x4d1f, 0x6010,
1993 0xa005, 0x0040, 0x4d1f, 0x017e, 0x1078, 0x226f, 0x017f, 0xace0,
1994 0x0010, 0x0070, 0x4d25, 0x0078, 0x4d0f, 0x8109, 0x0040, 0x4d2c,
1995 0x20a9, 0x0100, 0x0078, 0x4d0f, 0x1078, 0x4d39, 0x1078, 0x4d5e,
1996 0x2009, 0x5251, 0x2104, 0x2009, 0x0102, 0x200a, 0x2091, 0x8001,
1997 0x007c, 0x7834, 0x8001, 0x7836, 0x00c0, 0x4d5d, 0x7838, 0x7836,
1998 0x2091, 0x8000, 0x7844, 0xa005, 0x00c0, 0x4d48, 0x2001, 0x0101,
1999 0x8001, 0x7846, 0xa080, 0x7500, 0x2040, 0x2004, 0xa065, 0x0040,
2000 0x4d5d, 0x6024, 0xa005, 0x0040, 0x4d59, 0x8001, 0x6026, 0x0040,
2001 0x4d8d, 0x6000, 0x2c40, 0x0078, 0x4d4e, 0x007c, 0x7828, 0x8001,
2002 0x782a, 0x00c0, 0x4d8c, 0x782c, 0x782a, 0x7830, 0xa005, 0x00c0,
2003 0x4d6b, 0x2001, 0x0200, 0x8001, 0x7832, 0x8003, 0x8003, 0x8003,
2004 0x8003, 0xa090, 0x5500, 0xa298, 0x0002, 0x2304, 0xa084, 0x0008,
2005 0x0040, 0x4d8c, 0xa290, 0x0009, 0x2204, 0xa005, 0x0040, 0x4d84,
2006 0x8001, 0x2012, 0x00c0, 0x4d8c, 0x2304, 0xa084, 0xfff7, 0xa085,
2007 0x0080, 0x201a, 0x1078, 0x226f, 0x007c, 0x2069, 0x5240, 0x6800,
2008 0xa005, 0x0040, 0x4d97, 0x6848, 0xac06, 0x0040, 0x4dd4, 0x601b,
2009 0x0006, 0x60b4, 0xa084, 0x3f00, 0x601e, 0x6020, 0xa084, 0x00ff,
2010 0xa085, 0x0060, 0x6022, 0x6000, 0x2042, 0x6714, 0x6f82, 0x1078,
2011 0x19c5, 0x6818, 0xa005, 0x0040, 0x4daf, 0x8001, 0x681a, 0x6808,
2012 0xa084, 0xffef, 0x680a, 0x6810, 0x8001, 0x00d0, 0x4db9, 0x1078,
2013 0x248c, 0x6812, 0x602f, 0x0000, 0x6033, 0x0000, 0x2c68, 0x1078,
2014 0x1cdc, 0x2069, 0x5240, 0x7944, 0xa184, 0x0100, 0x2001, 0x0006,
2015 0x686e, 0x00c0, 0x4dcf, 0x6986, 0x2001, 0x0004, 0x686e, 0x1078,
2016 0x226a, 0x2091, 0x8001, 0x007c, 0x2069, 0x0100, 0x2009, 0x5240,
2017 0x2104, 0xa084, 0x0007, 0x0040, 0x4e30, 0xa086, 0x0007, 0x00c0,
2018 0x4dea, 0x0d7e, 0x2009, 0x5252, 0x216c, 0x1078, 0x3b1c, 0x0d7f,
2019 0x0078, 0x4e30, 0x2009, 0x5252, 0x2164, 0x1078, 0x2437, 0x601b,
2020 0x0006, 0x6858, 0xa084, 0x3f00, 0x601e, 0x6020, 0xa084, 0x00ff,
2021 0xa085, 0x0048, 0x6022, 0x602f, 0x0000, 0x6033, 0x0000, 0x6830,
2022 0xa084, 0x0040, 0x0040, 0x4e24, 0x684b, 0x0004, 0x20a9, 0x0014,
2023 0x6848, 0xa084, 0x0004, 0x0040, 0x4e11, 0x0070, 0x4e11, 0x0078,
2024 0x4e08, 0x684b, 0x0009, 0x20a9, 0x0014, 0x6848, 0xa084, 0x0001,
2025 0x0040, 0x4e1e, 0x0070, 0x4e1e, 0x0078, 0x4e15, 0x20a9, 0x00fa,
2026 0x0070, 0x4e24, 0x0078, 0x4e20, 0x6808, 0xa084, 0xfffd, 0x680a,
2027 0x681b, 0x0048, 0x2009, 0x525b, 0x200b, 0x0007, 0x784c, 0x784a,
2028 0x2091, 0x8001, 0x007c, 0x2079, 0x5200, 0x1078, 0x4e5e, 0x1078,
2029 0x4e42, 0x1078, 0x4e50, 0x7833, 0x0000, 0x7847, 0x0000, 0x784b,
2030 0x0000, 0x007c, 0x2019, 0x0003, 0x2011, 0x5246, 0x2204, 0xa086,
2031 0x003c, 0x0040, 0x4e4d, 0x2019, 0x0002, 0x7b2a, 0x7b2e, 0x007c,
2032 0x2019, 0x0039, 0x2011, 0x5246, 0x2204, 0xa086, 0x003c, 0x0040,
2033 0x4e5b, 0x2019, 0x0027, 0x7b36, 0x7b3a, 0x007c, 0x2019, 0x3971,
2034 0x2011, 0x5246, 0x2204, 0xa086, 0x003c, 0x0040, 0x4e69, 0x2019,
2035 0x2626, 0x7b22, 0x7b26, 0x783f, 0x0000, 0x7843, 0x000a, 0x007c,
2036 0x0020, 0x002b, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2037 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2038 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2039 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2040 0x0000, 0x0020, 0x0000, 0x0014, 0x0014, 0x9849, 0x0014, 0x0014,
2041 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0080, 0x000f, 0x0000,
2042 0x0201, 0x0604, 0x0c08, 0x2120, 0x4022, 0xf880, 0x0018, 0x300b,
2043 0xa201, 0x0014, 0xa200, 0x0014, 0xa200, 0x0214, 0x0000, 0x006c,
2044 0x0002, 0x0014, 0x98cd, 0x009e, 0x0093, 0xa202, 0x8838, 0x3806,
2045 0x8839, 0x20c3, 0x0864, 0x9885, 0x28c1, 0x9cae, 0xa203, 0x300c,
2046 0x2846, 0x8161, 0x846a, 0x8300, 0x1856, 0x883a, 0x9865, 0x28f2,
2047 0x9c91, 0x9858, 0x300c, 0x28e1, 0x9c91, 0x2802, 0xa206, 0x64c3,
2048 0x282e, 0xa207, 0x64a0, 0x6de0, 0x67a0, 0x6fc0, 0x1814, 0x883b,
2049 0x7824, 0x68c1, 0x7864, 0x883e, 0x9879, 0x8576, 0x8677, 0x206b,
2050 0x28c1, 0x9cae, 0x2044, 0x2103, 0x20a2, 0x2081, 0x9865, 0xa209,
2051 0x2901, 0x988d, 0x0014, 0xa205, 0xa300, 0x1872, 0x879a, 0x883c,
2052 0x1fe2, 0xc601, 0xa20a, 0x856e, 0x0704, 0x9c91, 0x0014, 0xa204,
2053 0xa300, 0x3009, 0x19e2, 0xf864, 0x856e, 0x883f, 0x08e6, 0x9891,
2054 0xf881, 0x988c, 0xc801, 0x0014, 0xf8c1, 0x0016, 0x85b2, 0x80f0,
2055 0x9532, 0xfb02, 0x1de2, 0x0014, 0x8532, 0xf241, 0x0014, 0x1de2,
2056 0x84a8, 0xd7a0, 0x1fe6, 0x0014, 0xa208, 0x6043, 0x8008, 0x1dc1,
2057 0x0016, 0x8300, 0x8160, 0x842a, 0xf041, 0x3008, 0x84a8, 0x11d6,
2058 0x7042, 0x20dd, 0x0011, 0x20d5, 0x8822, 0x0016, 0x8000, 0x2847,
2059 0x1011, 0x98c0, 0x8000, 0xa000, 0x2802, 0x1011, 0x98c6, 0x9865,
2060 0x283e, 0x1011, 0x98ca, 0xa20b, 0x0017, 0x300c, 0xa300, 0x1de2,
2061 0xdb81, 0x0014, 0x0210, 0x98d7, 0x0014, 0x26e0, 0x873a, 0xfb02,
2062 0x19f2, 0x1fe2, 0x0014, 0xa20d, 0x3806, 0x0210, 0x9cb3, 0x0704,
2063 0x0000, 0x006c, 0x0002, 0x984f, 0x0014, 0x009e, 0x00a0, 0x0017,
2064 0x60ff, 0x300c, 0x8720, 0xa211, 0x9cd0, 0x8772, 0x8837, 0x2101,
2065 0x987a, 0x10d2, 0x78e2, 0x9cd3, 0x9859, 0xd984, 0xf0e2, 0xf0a1,
2066 0x98cd, 0x0014, 0x8831, 0xd166, 0x8830, 0x800f, 0x9401, 0xb520,
2067 0xc802, 0x8820, 0x987a, 0x2301, 0x987a, 0x10d2, 0x78e4, 0x9cd3,
2068 0x8821, 0x8820, 0x9859, 0xf123, 0xf142, 0xf101, 0x98c6, 0x10d2,
2069 0x70f6, 0x8832, 0x8203, 0x870c, 0xd99e, 0x6001, 0x0014, 0x6845,
2070 0x0214, 0xa21b, 0x9cd0, 0x2001, 0x98c5, 0x8201, 0x1852, 0xd184,
2071 0xd163, 0x8834, 0x8001, 0x988d, 0x3027, 0x84a8, 0x1a56, 0x8833,
2072 0x0014, 0xa218, 0x6981, 0x9cbc, 0x6926, 0x6902, 0x1a34, 0x9899,
2073 0x1a14, 0x7021, 0x0014, 0xa300, 0x6141, 0x6964, 0x8010, 0x8592,
2074 0x8026, 0x84b9, 0x69e4, 0x8023, 0x16e1, 0x8001, 0x10f1, 0x6946,
2075 0xa213, 0x1462, 0xa213, 0x8000, 0x16e1, 0x98b5, 0x6969, 0xa214,
2076 0x61c2, 0x8002, 0x14e1, 0x8004, 0x16e1, 0x0101, 0x300a, 0x8827,
2077 0x0014, 0xa217, 0x9cbc, 0x0014, 0xa300, 0x8181, 0x842a, 0x84a8,
2078 0x1ce6, 0x882c, 0x0016, 0xa212, 0x9cd0, 0x10d2, 0x70e4, 0x0004,
2079 0x8007, 0x9424, 0xcc1a, 0x9cd3, 0x98c5, 0x8827, 0x300a, 0x0013,
2080 0x8000, 0x84a4, 0x0016, 0x11c2, 0x211e, 0x870e, 0xa21d, 0x0014,
2081 0x878e, 0x0016, 0xa21c, 0x1035, 0x9891, 0xa210, 0xa000, 0x8010,
2082 0x8592, 0x853b, 0xd044, 0x8022, 0x3807, 0x84bb, 0x98ea, 0x8021,
2083 0x3807, 0x84b9, 0x300c, 0x817e, 0x872b, 0x8772, 0x9891, 0x0000,
2084 0x0020, 0x002b, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2085 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2086 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2087 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
2088 0x0000, 0x0020, 0x0000, 0x0014, 0x0014, 0x9849, 0x0014, 0x0014,
2089 0x98e2, 0x98cd, 0x0014, 0x0014, 0x0014, 0x0080, 0x0137, 0x0000,
2090 0x0201, 0x0604, 0x0c08, 0x2120, 0x4022, 0xf880, 0x0018, 0x300b,
2091 0xa201, 0x0014, 0xa200, 0x0014, 0xa200, 0x0214, 0xa202, 0x8838,
2092 0x3806, 0x8839, 0x20c3, 0x0864, 0xa82f, 0x28c1, 0x9cae, 0xa203,
2093 0x300c, 0x2846, 0x8161, 0x846a, 0x8300, 0x1856, 0x883a, 0xa804,
2094 0x28f2, 0x9c91, 0xa8f4, 0x300c, 0x28e1, 0x9c91, 0x2802, 0xa206,
2095 0x64c3, 0x282e, 0xa207, 0x64a0, 0x6de0, 0x67a0, 0x6fc0, 0x1814,
2096 0x883b, 0x7824, 0x68c1, 0x7864, 0x883e, 0xa802, 0x8576, 0x8677,
2097 0x206b, 0x28c1, 0x9cae, 0x2044, 0x2103, 0x20a2, 0x2081, 0xa8e4,
2098 0xa209, 0x2901, 0xa809, 0x0014, 0xa205, 0xa300, 0x1872, 0x879a,
2099 0x883c, 0x1fe2, 0xc601, 0xa20a, 0x856e, 0x0704, 0x9c91, 0x0014,
2100 0xa204, 0xa300, 0x3009, 0x19e2, 0xf864, 0x856e, 0x883f, 0x08e6,
2101 0xa8f7, 0xf881, 0xa8f0, 0xc801, 0x0014, 0xf8c1, 0x0016, 0x85b2,
2102 0x80f0, 0x9532, 0xfb02, 0x1de2, 0x0014, 0x8532, 0xf241, 0x0014,
2103 0x1de2, 0x84a8, 0xd7a0, 0x1fe6, 0x0014, 0xa208, 0x6043, 0x8008,
2104 0x1dc1, 0x0016, 0x8300, 0x8160, 0x842a, 0xf041, 0x3008, 0x84a8,
2105 0x11d6, 0x7042, 0x20dd, 0x0011, 0x20d5, 0x8822, 0x0016, 0x8000,
2106 0x2847, 0x1011, 0xa8fc, 0x8000, 0xa000, 0x2802, 0x1011, 0xa8fd,
2107 0xa89b, 0x283e, 0x1011, 0xa8fd, 0xa20b, 0x0017, 0x300c, 0xa300,
2108 0x1de2, 0xdb81, 0x0014, 0x0210, 0xa801, 0x0014, 0x26e0, 0x873a,
2109 0xfb02, 0x19f2, 0x1fe2, 0x0014, 0xa20d, 0x3806, 0x0210, 0x9cb3,
2110 0x0704, 0x0017, 0x60ff, 0x300c, 0x8720, 0xa211, 0x9d63, 0x8772,
2111 0x8837, 0x2101, 0xa821, 0x10d2, 0x78e2, 0x9d66, 0xa8fc, 0xd984,
2112 0xf0e2, 0xf0a1, 0xa86c, 0x0014, 0x8831, 0xd166, 0x8830, 0x800f,
2113 0x9401, 0xb520, 0xc802, 0x8820, 0xa80f, 0x2301, 0xa80d, 0x10d2,
2114 0x78e4, 0x9d66, 0x8821, 0x8820, 0xa8e6, 0xf123, 0xf142, 0xf101,
2115 0xa84f, 0x10d2, 0x70f6, 0x8832, 0x8203, 0x870c, 0xd99e, 0x6001,
2116 0x0014, 0x6845, 0x0214, 0xa21b, 0x9d63, 0x2001, 0xa840, 0x8201,
2117 0x1852, 0xd184, 0xd163, 0x8834, 0x8001, 0xa801, 0x3027, 0x84a8,
2118 0x1a56, 0x8833, 0x0014, 0xa218, 0x6981, 0x9d4f, 0x6926, 0x6902,
2119 0x1a34, 0xa801, 0x1a14, 0x7021, 0x0014, 0xa300, 0x6141, 0x6964,
2120 0x8010, 0x8592, 0x8026, 0x84b9, 0x69e4, 0x8023, 0x16e1, 0x8001,
2121 0x10f1, 0x6946, 0xa213, 0x1462, 0xa213, 0x8000, 0x16e1, 0xa807,
2122 0x6969, 0xa214, 0x61c2, 0x8002, 0x14e1, 0x8004, 0x16e1, 0x0101,
2123 0x300a, 0x8827, 0x0014, 0xa217, 0x9d4f, 0x0014, 0xa300, 0x8181,
2124 0x842a, 0x84a8, 0x1ce6, 0x882c, 0x0016, 0xa212, 0x9d63, 0x10d2,
2125 0x70e4, 0x0004, 0x8007, 0x9424, 0xcc1a, 0x9d66, 0xa8f8, 0x8827,
2126 0x300a, 0x0013, 0x8000, 0x84a4, 0x0016, 0x11c2, 0x211e, 0x870e,
2127 0xa21d, 0x0014, 0x878e, 0x0016, 0xa21c, 0x1035, 0xa8b4, 0xa210,
2128 0x3807, 0x300c, 0x817e, 0x872b, 0x8772, 0xa8ad, 0x0000, 0x0d0c
2129};
2130static unsigned short risc_code_length01 = 0x4158;
diff --git a/drivers/scsi/ql12160_fw.h b/drivers/scsi/ql12160_fw.h
deleted file mode 100644
index d89dac0cc9d..00000000000
--- a/drivers/scsi/ql12160_fw.h
+++ /dev/null
@@ -1,1811 +0,0 @@
1/*****************************************************************************
2 * QLOGIC LINUX SOFTWARE
3 *
4 * QLogic ISP12160 device driver for Linux 2.2.x and 2.4.x
5 * Copyright (C) 2002 Qlogic Corporation (www.qlogic.com)
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2, or (at your option) any
10 * later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 *****************************************************************************/
18
19/************************************************************************
20 * --- ISP12160A Initiator Firmware --- *
21 * 32 LUN Support *
22 ************************************************************************/
23
24/*
25 * Firmware Version 10.04.42 (15:44 Apr 18, 2003)
26 */
27
28#ifdef UNIQUE_FW_NAME
29static unsigned char fw12160i_version_str[] = {10,4,42};
30#else
31static unsigned char firmware_version[] = {10,4,42};
32#endif
33
34#ifdef UNIQUE_FW_NAME
35#define fw12160i_VERSION_STRING "10.04.42"
36#else
37#define FW_VERSION_STRING "10.04.42"
38#endif
39
40#ifdef UNIQUE_FW_NAME
41static unsigned short fw12160i_addr01 = 0x1000;
42#else
43static unsigned short risc_code_addr01 = 0x1000;
44#endif
45
46#ifdef UNIQUE_FW_NAME
47static unsigned short fw12160i_code01[] = {
48#else
49static unsigned short risc_code01[] = {
50#endif
51 0x0804, 0x1041, 0x0000, 0x36c9, 0x0000, 0x2043, 0x4f50, 0x5952,
52 0x4947, 0x4854, 0x2031, 0x3939, 0x312c, 0x3139, 0x3932, 0x2c31,
53 0x3939, 0x332c, 0x3139, 0x3934, 0x2051, 0x4c4f, 0x4749, 0x4320,
54 0x434f, 0x5250, 0x4f52, 0x4154, 0x494f, 0x4e00, 0x2049, 0x5350,
55 0x3132, 0x3136, 0x2046, 0x6972, 0x6d77, 0x6172, 0x6520, 0x2056,
56 0x6572, 0x7369, 0x6f6e, 0x2031, 0x302e, 0x3034, 0x2020, 0x2043,
57 0x7573, 0x746f, 0x6d65, 0x7220, 0x4e6f, 0x2e20, 0x3030, 0x2050,
58 0x726f, 0x6475, 0x6374, 0x204e, 0x6f2e, 0x2020, 0x3030, 0x2020,
59 0x2400, 0x20c9, 0x90ff, 0x2071, 0x0200, 0x70a0, 0x70a2, 0x2001,
60 0x01ff, 0x2004, 0xd0fc, 0x1120, 0x2071, 0x0100, 0x70a0, 0x70a2,
61 0x20c1, 0x0020, 0x2089, 0x1221, 0x2071, 0x0010, 0x70c3, 0x0004,
62 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020, 0x70d3, 0x000a,
63 0x2001, 0x04fd, 0x2004, 0x70d6, 0x2009, 0xfeff, 0x2130, 0x2128,
64 0xa1a2, 0x4700, 0x8424, 0x8424, 0x8424, 0x8424, 0x8424, 0x8424,
65 0xa192, 0x9100, 0x2009, 0x0000, 0x2001, 0x0032, 0x080c, 0x1e05,
66 0x2218, 0x2079, 0x4700, 0x2fa0, 0x2408, 0x2011, 0x0000, 0x20a9,
67 0x0040, 0x42a4, 0x8109, 0x1dd8, 0x2009, 0xff00, 0x3400, 0xa102,
68 0x0218, 0x0110, 0x20a8, 0x42a4, 0x781b, 0x0064, 0x7814, 0xc0cd,
69 0xc0d5, 0x7816, 0x2071, 0x0200, 0x00d6, 0x2069, 0x4740, 0x080c,
70 0x465c, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1130, 0x2069, 0x4780,
71 0x2071, 0x0100, 0x080c, 0x465c, 0x7814, 0xc0d4, 0x7816, 0x00de,
72 0x7eca, 0x7cc2, 0x7bc6, 0x7867, 0x0000, 0x7800, 0xc08d, 0x7802,
73 0x2031, 0x0030, 0x78af, 0x0101, 0x7823, 0x0002, 0x7827, 0x0002,
74 0x2009, 0x0002, 0x2069, 0x4740, 0x681b, 0x0003, 0x6823, 0x0007,
75 0x6827, 0x00fa, 0x682b, 0x0008, 0x682f, 0x0028, 0x6837, 0x0006,
76 0x6833, 0x0008, 0x683b, 0x0000, 0x8109, 0x0500, 0x68cf, 0x000a,
77 0x68bf, 0x47c0, 0x2079, 0x4700, 0x68d3, 0x762d, 0x68c3, 0x4cc0,
78 0x68c7, 0x4bc0, 0x68cb, 0x8cc0, 0x68a7, 0x8f44, 0x68ab, 0x8f49,
79 0x68af, 0x8f44, 0x68b3, 0x8f44, 0x68a3, 0x0001, 0x2001, 0x01ff,
80 0x2004, 0xd0fc, 0x11c8, 0x2069, 0x4780, 0x0870, 0x68cf, 0x000a,
81 0x68bf, 0x49c0, 0x68d3, 0x7839, 0x68c3, 0x6cc0, 0x68c7, 0x4c40,
82 0x68cb, 0x8dd0, 0x68a7, 0x8f49, 0x68ab, 0x8f4e, 0x68af, 0x8f49,
83 0x68b3, 0x8f49, 0x68a3, 0x0001, 0x00e6, 0x2069, 0x4bc0, 0x2071,
84 0x0200, 0x70ec, 0xd0e4, 0x2019, 0x1809, 0x2021, 0x0009, 0x1120,
85 0x2019, 0x180c, 0x2021, 0x000c, 0x080c, 0x1d75, 0x2001, 0x01ff,
86 0x2004, 0xd0fc, 0x1188, 0x2069, 0x4c40, 0x2071, 0x0100, 0x70ec,
87 0xd0e4, 0x2019, 0x1809, 0x2021, 0x0009, 0x1120, 0x2019, 0x180c,
88 0x2021, 0x000c, 0x080c, 0x1d75, 0x00ee, 0x2011, 0x0002, 0x2069,
89 0x4cc0, 0x2009, 0x0002, 0x20a9, 0x0100, 0x6837, 0x0000, 0x680b,
90 0x0040, 0x7bc8, 0xa386, 0xfeff, 0x1128, 0x6817, 0x0100, 0x681f,
91 0x0064, 0x0020, 0x6817, 0x0064, 0x681f, 0x0002, 0xade8, 0x0010,
92 0x1f04, 0x1135, 0x8109, 0x1d38, 0x2001, 0x01ff, 0x2004, 0xd0fc,
93 0x1128, 0x8211, 0x0118, 0x2069, 0x6cc0, 0x08d8, 0x080c, 0x22f6,
94 0x080c, 0x403d, 0x080c, 0x1b8c, 0x080c, 0x4615, 0x2091, 0x2200,
95 0x2079, 0x4700, 0x2071, 0x0050, 0x2091, 0x2400, 0x2079, 0x4700,
96 0x2071, 0x0020, 0x2091, 0x2600, 0x2079, 0x0200, 0x2071, 0x4740,
97 0x2091, 0x2800, 0x2079, 0x0100, 0x2071, 0x4780, 0x2091, 0x2000,
98 0x2079, 0x4700, 0x2071, 0x0010, 0x3200, 0xa085, 0x303d, 0x2090,
99 0x2071, 0x0010, 0x70c3, 0x0000, 0x1004, 0x118c, 0x70c0, 0xa086,
100 0x0002, 0x1110, 0x080c, 0x13ba, 0x2039, 0x0000, 0x080c, 0x12ab,
101 0x78ac, 0xa005, 0x1180, 0x0e04, 0x119a, 0x786c, 0xa065, 0x0110,
102 0x080c, 0x20a1, 0x080c, 0x1e26, 0x0e04, 0x11af, 0x786c, 0xa065,
103 0x0110, 0x080c, 0x20a1, 0x0e04, 0x11af, 0x2009, 0x4747, 0x2011,
104 0x4787, 0x2104, 0x220c, 0xa105, 0x0110, 0x080c, 0x1c9b, 0x2071,
105 0x4740, 0x70a0, 0xa005, 0x01e8, 0x744c, 0xa485, 0x0000, 0x01c8,
106 0x2079, 0x0200, 0x2091, 0x8000, 0x72d0, 0xa28c, 0x303d, 0x2190,
107 0x080c, 0x274c, 0x2091, 0x8000, 0x2091, 0x303d, 0x0e04, 0x11d1,
108 0x2079, 0x4700, 0x786c, 0xa065, 0x0120, 0x2071, 0x0010, 0x080c,
109 0x20a1, 0x1d04, 0x11d9, 0x2079, 0x4700, 0x2071, 0x0010, 0x080c,
110 0x4429, 0x2071, 0x4780, 0x70a0, 0xa005, 0x0188, 0x704c, 0xa025,
111 0x0170, 0x2079, 0x0100, 0x2091, 0x8000, 0x72d0, 0xa28c, 0x303d,
112 0x2190, 0x080c, 0x274c, 0x2091, 0x8000, 0x2091, 0x303d, 0x2079,
113 0x4700, 0x2071, 0x0010, 0x0e04, 0x11fa, 0x786c, 0xa065, 0x0110,
114 0x080c, 0x20a1, 0x1d04, 0x118e, 0x080c, 0x4429, 0x0804, 0x118e,
115 0x3c00, 0xa084, 0x0007, 0x0002, 0x120c, 0x120c, 0x120e, 0x120e,
116 0x1213, 0x1213, 0x1218, 0x1218, 0x080c, 0x2575, 0x2091, 0x2400,
117 0x080c, 0x40d5, 0x0005, 0x2091, 0x2200, 0x080c, 0x40d5, 0x0005,
118 0x2091, 0x2200, 0x080c, 0x40d5, 0x2091, 0x2400, 0x080c, 0x40d5,
119 0x0005, 0x1241, 0x1241, 0x1242, 0x1242, 0x124d, 0x124d, 0x124d,
120 0x124d, 0x1256, 0x1256, 0x1261, 0x1261, 0x124d, 0x124d, 0x124d,
121 0x124d, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270,
122 0x1270, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270, 0x1270,
123 0x1270, 0x0cf8, 0x0006, 0x0106, 0x0126, 0x2091, 0x2800, 0x080c,
124 0x2592, 0x012e, 0x010e, 0x000e, 0x000d, 0x0006, 0x0106, 0x0126,
125 0x080c, 0x1200, 0x012e, 0x010e, 0x000e, 0x000d, 0x0006, 0x0106,
126 0x0126, 0x2091, 0x2600, 0x080c, 0x2592, 0x012e, 0x010e, 0x000e,
127 0x000d, 0x0006, 0x0106, 0x0126, 0x2091, 0x2600, 0x080c, 0x2592,
128 0x2091, 0x2800, 0x080c, 0x2592, 0x012e, 0x010e, 0x000e, 0x000d,
129 0x0006, 0x0106, 0x0126, 0x00d6, 0x00e6, 0x00f6, 0x2079, 0x4700,
130 0x2071, 0x0200, 0x2069, 0x4740, 0x3d00, 0xd08c, 0x0130, 0x70ec,
131 0xa084, 0x1c00, 0x78e2, 0x080c, 0x465c, 0x3d00, 0xd084, 0x0150,
132 0x2069, 0x4780, 0x2071, 0x0100, 0x70ec, 0xa084, 0x1c00, 0x78e6,
133 0x080c, 0x465c, 0x080c, 0x2526, 0x00fe, 0x00ee, 0x00de, 0x012e,
134 0x010e, 0x000e, 0x000d, 0x7008, 0x800b, 0x1240, 0x7007, 0x0002,
135 0xa08c, 0x01e0, 0x1120, 0xd09c, 0x0108, 0x0887, 0x0897, 0x70c3,
136 0x4002, 0x0804, 0x13bd, 0x0e04, 0x131e, 0x2061, 0x0000, 0x6018,
137 0xd084, 0x1904, 0x131e, 0x7828, 0xa005, 0x1120, 0x0004, 0x131f,
138 0x0804, 0x131e, 0xd0fc, 0x0130, 0x0006, 0x080c, 0x1b29, 0x000e,
139 0x0150, 0x0028, 0x0006, 0x080c, 0x1b1e, 0x000e, 0x0120, 0x2001,
140 0x4007, 0x0804, 0x13bc, 0x7910, 0xd0fc, 0x1128, 0x2061, 0x4740,
141 0xc19c, 0xc7fc, 0x0020, 0x2061, 0x4780, 0xc19d, 0xc7fd, 0x6060,
142 0xa005, 0x1904, 0x131e, 0x7912, 0x607e, 0x7828, 0xc0fc, 0xa086,
143 0x0018, 0x1120, 0x00c6, 0x080c, 0x1926, 0x00ce, 0x782b, 0x0000,
144 0x6078, 0xa065, 0x01e0, 0x00c6, 0x609c, 0x080c, 0x1bf3, 0x00ce,
145 0x609f, 0x0000, 0x080c, 0x1a60, 0x2009, 0x0018, 0x6087, 0x0103,
146 0x7810, 0x0006, 0x84ff, 0x1110, 0x85ff, 0x0110, 0xc0c5, 0x7812,
147 0x080c, 0x1b34, 0x000e, 0x7812, 0x1198, 0x080c, 0x1b7f, 0x7810,
148 0xd09c, 0x1118, 0x2061, 0x4740, 0x0020, 0x2061, 0x4780, 0xc09c,
149 0x7812, 0x607b, 0x0000, 0x60d0, 0xd0c4, 0x0130, 0xc0c4, 0x60d2,
150 0x2001, 0x4005, 0x0804, 0x13bc, 0x0804, 0x13ba, 0x0005, 0xa006,
151 0x70c2, 0x70c6, 0x70ca, 0x70ce, 0x70da, 0x70c0, 0xa03d, 0xa08a,
152 0x0040, 0x1a04, 0x136c, 0x0002, 0x13ba, 0x1408, 0x13d6, 0x143c,
153 0x1470, 0x1470, 0x13ce, 0x1a78, 0x147a, 0x13c8, 0x13da, 0x13db,
154 0x13dc, 0x13dd, 0x1a7c, 0x13c8, 0x1487, 0x14db, 0x1941, 0x1a72,
155 0x13de, 0x17c8, 0x17fe, 0x1830, 0x1876, 0x1785, 0x1792, 0x17a5,
156 0x17b7, 0x15bf, 0x13c8, 0x150d, 0x1518, 0x1526, 0x1534, 0x154b,
157 0x1559, 0x155c, 0x156e, 0x157c, 0x1586, 0x15a5, 0x15b1, 0x13c8,
158 0x13c8, 0x13c8, 0x13c8, 0x15cc, 0x15dd, 0x15f7, 0x162b, 0x1654,
159 0x1666, 0x1669, 0x1693, 0x16cc, 0x16de, 0x1753, 0x1763, 0x13c8,
160 0x13c8, 0x13c8, 0x13c8, 0x1775, 0x2100, 0xa08a, 0x0040, 0x1a04,
161 0x13c8, 0x0002, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x1a9e,
162 0x1aa4, 0x13c8, 0x13c8, 0x13c8, 0x1aa8, 0x1ae8, 0x13c8, 0x13c8,
163 0x13c8, 0x13c8, 0x1403, 0x146b, 0x1482, 0x14d6, 0x193c, 0x13c8,
164 0x13c8, 0x190b, 0x13c8, 0x1aec, 0x1a90, 0x1a9a, 0x13c8, 0x13c8,
165 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8,
166 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8,
167 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8,
168 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8, 0x13c8,
169 0x13c8, 0x13c8, 0x72ca, 0x71c6, 0x2001, 0x4006, 0x0028, 0x73ce,
170 0x72ca, 0x71c6, 0x2001, 0x4000, 0x70c2, 0x0e04, 0x13bd, 0x2061,
171 0x0000, 0x601b, 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x0005,
172 0x70c3, 0x4001, 0x0c90, 0x70c3, 0x4006, 0x0c78, 0x2099, 0x0041,
173 0x20a1, 0x0041, 0x20a9, 0x0005, 0x53a3, 0x0c20, 0x70c4, 0x70c3,
174 0x0004, 0x0807, 0x08f8, 0x08f0, 0x08e8, 0x08e0, 0x2091, 0x8000,
175 0x70c3, 0x0004, 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020,
176 0x70d3, 0x000a, 0x2001, 0x0004, 0x70d6, 0x2079, 0x0000, 0x781b,
177 0x0001, 0x2031, 0x0030, 0x2059, 0x1000, 0x2029, 0x041a, 0x2051,
178 0x0445, 0x2061, 0x0447, 0x20c1, 0x0020, 0x2091, 0x5000, 0x2091,
179 0x4080, 0x0804, 0x0418, 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0018,
180 0x2029, 0x0000, 0x2520, 0x71d0, 0x72c8, 0x73cc, 0x70c4, 0x20a0,
181 0x2099, 0x0030, 0x7003, 0x0001, 0x7007, 0x0006, 0x731a, 0x721e,
182 0x7422, 0x7526, 0x2021, 0x0040, 0x81ff, 0x0904, 0x13ba, 0xa182,
183 0x0040, 0x1210, 0x2120, 0xa006, 0x2008, 0x8403, 0x7012, 0x7007,
184 0x0004, 0x7007, 0x0001, 0x7008, 0xd0fc, 0x0de8, 0x7007, 0x0002,
185 0xa084, 0x01e0, 0x0120, 0x70c3, 0x4002, 0x0804, 0x13bd, 0x24a8,
186 0x53a5, 0x0c10, 0x0804, 0x13ba, 0x2029, 0x0000, 0x2520, 0x71d0,
187 0x72c8, 0x73cc, 0x70c4, 0x2098, 0x20a1, 0x0030, 0x7003, 0x0000,
188 0x7007, 0x0006, 0x731a, 0x721e, 0x7422, 0x7526, 0x2021, 0x0040,
189 0x7007, 0x0006, 0x81ff, 0x0904, 0x13ba, 0xa182, 0x0040, 0x1210,
190 0x2120, 0xa006, 0x2008, 0x8403, 0x7012, 0x24a8, 0x53a6, 0x7007,
191 0x0001, 0x7008, 0xd0fc, 0x0de8, 0xa084, 0x01e0, 0x0d48, 0x70c3,
192 0x4002, 0x0804, 0x13bd, 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0878,
193 0x71c4, 0x70c8, 0x2114, 0xa79e, 0x0004, 0x1108, 0x200a, 0x72ca,
194 0x0804, 0x13b9, 0x70c7, 0x000a, 0x70cb, 0x0004, 0x70cf, 0x002a,
195 0x0804, 0x13ba, 0x75d8, 0x76dc, 0x75da, 0x76de, 0x0018, 0x2029,
196 0x0000, 0x2530, 0x70c4, 0x72c8, 0x73cc, 0x74d0, 0x70c6, 0x72ca,
197 0x73ce, 0x74d2, 0xa005, 0x05e8, 0xa40a, 0x0108, 0x1240, 0x8001,
198 0x7872, 0xa084, 0xfc00, 0x0138, 0x78ac, 0xc085, 0x78ae, 0x2001,
199 0x4005, 0x0804, 0x13bc, 0x7b7e, 0x7a7a, 0x7e86, 0x7d82, 0x7c76,
200 0xa48c, 0xff00, 0x0170, 0x8407, 0x8004, 0x8004, 0x810c, 0x810c,
201 0x810f, 0xa118, 0xa291, 0x0000, 0xa6b1, 0x0000, 0xa581, 0x0000,
202 0x0050, 0x8407, 0x8004, 0x8004, 0xa318, 0xa291, 0x0000, 0xa6b1,
203 0x0000, 0xa581, 0x0000, 0x731a, 0x721e, 0x7622, 0x7026, 0xa605,
204 0x0118, 0x7a10, 0xc2c5, 0x7a12, 0x78ac, 0xa084, 0xfffc, 0x78ae,
205 0x0018, 0x78ac, 0xc085, 0x78ae, 0x0804, 0x13ba, 0x75d8, 0x76dc,
206 0x75da, 0x76de, 0x0018, 0x2029, 0x0000, 0x2530, 0x70c4, 0x72c8,
207 0x73cc, 0x74d4, 0x70c6, 0x72ca, 0x73ce, 0x74d6, 0xa005, 0x0500,
208 0xa40a, 0x0110, 0x1a04, 0x13bc, 0x8001, 0x7892, 0xa084, 0xfc00,
209 0x0138, 0x78ac, 0xc0c5, 0x78ae, 0x2001, 0x4005, 0x0804, 0x13bc,
210 0x7a9a, 0x7b9e, 0x7da2, 0x7ea6, 0x2600, 0xa505, 0x0118, 0x7a10,
211 0xc2c5, 0x7a12, 0x7c96, 0x78ac, 0xa084, 0xfcff, 0x78ae, 0x0018,
212 0x78ac, 0xc0c5, 0x78ae, 0x0804, 0x13ba, 0x2009, 0x0000, 0x786c,
213 0xa065, 0x0118, 0x8108, 0x6000, 0x0cd8, 0x7ac4, 0x0804, 0x13b8,
214 0x2009, 0x4748, 0x210c, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904,
215 0x13b9, 0x2011, 0x4788, 0x2214, 0x0804, 0x13b8, 0x2009, 0x4749,
216 0x210c, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x2011,
217 0x4789, 0x2214, 0x0804, 0x13b8, 0x2061, 0x4740, 0x6128, 0x622c,
218 0x8214, 0x8214, 0x8214, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1148,
219 0x2061, 0x4780, 0x6328, 0x73da, 0x632c, 0x831c, 0x831c, 0x831c,
220 0x73de, 0x0804, 0x13b8, 0x2009, 0x474c, 0x210c, 0x2001, 0x01ff,
221 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x2011, 0x478c, 0x2214, 0x0804,
222 0x13b8, 0x7918, 0x0804, 0x13b9, 0x2009, 0x0202, 0x210c, 0xa18c,
223 0x0f30, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x2011,
224 0x0102, 0x2214, 0xa294, 0x0f30, 0x0804, 0x13b8, 0x2009, 0x474d,
225 0x210c, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x2011,
226 0x478d, 0x2214, 0x0804, 0x13b8, 0x7920, 0x2001, 0x01ff, 0x2004,
227 0xd0fc, 0x1904, 0x13b9, 0x7a24, 0x0804, 0x13b8, 0x2011, 0x4c40,
228 0x71c4, 0xd1fc, 0x1110, 0x2011, 0x4bc0, 0x8107, 0xa084, 0x000f,
229 0x8003, 0x8003, 0x8003, 0xa268, 0x6a00, 0x6b08, 0x6c1c, 0x74da,
230 0xd1fc, 0x1118, 0x2021, 0x023b, 0x0010, 0x2021, 0x013b, 0x2424,
231 0xa4a4, 0x1c00, 0x74de, 0x0804, 0x13b7, 0x77c4, 0x080c, 0x1b9a,
232 0x2091, 0x8000, 0x6b1c, 0x6a14, 0x2091, 0x8001, 0x2708, 0x0804,
233 0x13b7, 0x2061, 0x4740, 0x6118, 0x2001, 0x01ff, 0x2004, 0xd0fc,
234 0x1904, 0x13b9, 0x2061, 0x4780, 0x6218, 0x0804, 0x13b8, 0x77c4,
235 0x080c, 0x1b9a, 0x2091, 0x8000, 0x6908, 0x6a18, 0x6b10, 0x77da,
236 0x2091, 0x8001, 0x0804, 0x13b7, 0x71c4, 0x2110, 0xa294, 0x000f,
237 0xa282, 0x0010, 0x1a04, 0x13b3, 0x080c, 0x23b4, 0xa384, 0x4000,
238 0x0110, 0xa295, 0x0020, 0x0804, 0x13b7, 0x71c4, 0x2100, 0xc0bc,
239 0xa082, 0x0010, 0x1a04, 0x13b3, 0xd1bc, 0x1120, 0x2011, 0x4748,
240 0x2204, 0x0020, 0x2011, 0x4788, 0x2204, 0xc0bd, 0x0006, 0x2100,
241 0xc0bc, 0x2012, 0x080c, 0x2358, 0x001e, 0x0804, 0x13b9, 0x71c4,
242 0x2021, 0x4749, 0x2404, 0x70c6, 0x2019, 0x0000, 0x0030, 0x71c8,
243 0x2021, 0x4789, 0x2404, 0x70ca, 0xc3fd, 0x2011, 0x1623, 0x20a9,
244 0x0008, 0x2204, 0xa106, 0x0138, 0x8210, 0x1f04, 0x1609, 0x71c4,
245 0x72c8, 0x0804, 0x13b2, 0xa292, 0x1623, 0x0026, 0x2122, 0x001e,
246 0x080c, 0x236a, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1110, 0xd3fc,
247 0x09f0, 0x0804, 0x13ba, 0x03e8, 0x00fa, 0x01f4, 0x02ee, 0x0004,
248 0x0001, 0x0002, 0x0003, 0x2061, 0x4740, 0x6128, 0x622c, 0x8214,
249 0x8214, 0x8214, 0x70c4, 0x602a, 0x70c8, 0x8003, 0x8003, 0x8003,
250 0x602e, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x11a0, 0x0026, 0x0016,
251 0x2061, 0x4780, 0x6128, 0x622c, 0x8214, 0x8214, 0x8214, 0x70d8,
252 0x602a, 0x70dc, 0x8003, 0x8003, 0x8003, 0x602e, 0x71da, 0x72de,
253 0x001e, 0x002e, 0x0804, 0x13b8, 0x2061, 0x4740, 0x6130, 0x70c4,
254 0x6032, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x2061,
255 0x4780, 0x6230, 0x70c8, 0x6032, 0x0804, 0x13b8, 0x7918, 0x0804,
256 0x13b9, 0x71c4, 0xa184, 0xf0cf, 0x0148, 0x2001, 0x01ff, 0x2004,
257 0xd0fc, 0x1904, 0x13b3, 0x72c8, 0x0804, 0x13b2, 0x2019, 0x0000,
258 0x080c, 0x23a6, 0x0036, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x0118,
259 0x001e, 0x0804, 0x13b9, 0x71c8, 0xa184, 0xf0cf, 0x0128, 0x000e,
260 0x2110, 0x71c4, 0x0804, 0x13b2, 0xc3fd, 0x080c, 0x23a6, 0x2310,
261 0x001e, 0x0804, 0x13b8, 0x71c4, 0xa182, 0x0010, 0x0248, 0x2001,
262 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b3, 0x72c8, 0x0804, 0x13b2,
263 0x2011, 0x474d, 0x2204, 0x0006, 0x8104, 0x1208, 0x8108, 0x2112,
264 0x2019, 0x0000, 0x080c, 0x2393, 0x2001, 0x01ff, 0x2004, 0xd0fc,
265 0x0118, 0x001e, 0x0804, 0x13b9, 0x71c8, 0xa182, 0x0010, 0x0228,
266 0x0006, 0x2110, 0x71c4, 0x0804, 0x13b2, 0x2011, 0x478d, 0x2204,
267 0x0006, 0x8104, 0x1208, 0x8108, 0x2112, 0xc3fd, 0x080c, 0x2393,
268 0x002e, 0x001e, 0x0804, 0x13b8, 0x71c4, 0x72c8, 0xa184, 0xfffd,
269 0x1904, 0x13b2, 0xa284, 0xfffd, 0x1904, 0x13b2, 0x2100, 0x7920,
270 0x7822, 0x2200, 0x7a24, 0x7826, 0x0804, 0x13b8, 0x2011, 0x4c40,
271 0x71c4, 0xd1fc, 0x1110, 0x2011, 0x4bc0, 0x8107, 0xa084, 0x000f,
272 0x8003, 0x8003, 0x8003, 0xa268, 0x72c8, 0x73cc, 0x74d8, 0x71c6,
273 0x6800, 0x70ca, 0x73ce, 0x74da, 0x2091, 0x8000, 0x6a02, 0xd2ac,
274 0x1118, 0x2021, 0x0000, 0x0090, 0xa484, 0x00ff, 0xa082, 0x0002,
275 0x1a04, 0x174f, 0x843f, 0xa7bc, 0x00ff, 0x0140, 0xa786, 0x0002,
276 0x1904, 0x174f, 0xa484, 0x00ff, 0x0904, 0x174f, 0x2061, 0x0200,
277 0xd1fc, 0x0110, 0x2061, 0x0100, 0x2029, 0x0009, 0x2031, 0x0062,
278 0x843f, 0xa7bc, 0x00ff, 0x0130, 0x8307, 0xa084, 0x00ff, 0x1110,
279 0xa73d, 0x1138, 0x2041, 0x0019, 0xa384, 0x00ff, 0xa082, 0x001a,
280 0x0210, 0xa4a4, 0x00ff, 0x8307, 0xa084, 0x00ff, 0x0188, 0xa842,
281 0x02f0, 0xa086, 0x0010, 0x1120, 0xa39c, 0x00ff, 0xa39d, 0x0f00,
282 0xa3bc, 0x00ff, 0x2500, 0xa702, 0x0290, 0x2600, 0xa702, 0x1278,
283 0x2039, 0x003a, 0x6804, 0xa705, 0x6806, 0x6b0a, 0x6b0c, 0x73ce,
284 0x681c, 0x70da, 0x6c1e, 0x2091, 0x8001, 0x0804, 0x13ba, 0x2091,
285 0x8001, 0x0804, 0x13b4, 0x77c4, 0x080c, 0x1b9a, 0x2091, 0x8000,
286 0x6a14, 0x6b1c, 0x2091, 0x8001, 0x70c8, 0x6816, 0x70cc, 0x681e,
287 0x2708, 0x0804, 0x13b7, 0x70c4, 0x2061, 0x4740, 0x6118, 0x601a,
288 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x13b9, 0x70c8, 0x2061,
289 0x4780, 0x6218, 0x601a, 0x0804, 0x13b8, 0x71c4, 0x72c8, 0x73cc,
290 0xa182, 0x0010, 0x1a04, 0x13b3, 0x080c, 0x23d8, 0xa384, 0x4000,
291 0x0110, 0xa295, 0x0020, 0x0804, 0x13b7, 0x77c4, 0x080c, 0x1b9a,
292 0x2091, 0x8000, 0x6a08, 0xc28d, 0x6a0a, 0x2091, 0x8001, 0x2708,
293 0x0804, 0x13b8, 0x77c4, 0x080c, 0x1b9a, 0x2091, 0x8000, 0x6a08,
294 0xa294, 0xfff9, 0x6a0a, 0x6804, 0xa005, 0x0110, 0x080c, 0x22d5,
295 0x2091, 0x8001, 0x2708, 0x0804, 0x13b8, 0x77c4, 0x080c, 0x1b9a,
296 0x2091, 0x8000, 0x6a08, 0xc295, 0x6a0a, 0x6804, 0xa005, 0x0110,
297 0x080c, 0x22d5, 0x2091, 0x8001, 0x2708, 0x0804, 0x13b8, 0x77c4,
298 0x2041, 0x0001, 0x2049, 0x0005, 0x2051, 0x0020, 0x2091, 0x8000,
299 0x080c, 0x1bb2, 0x2091, 0x8001, 0x2708, 0x6a08, 0x0804, 0x13b8,
300 0x77c4, 0xd7fc, 0x0128, 0x080c, 0x1b29, 0x0138, 0x0804, 0x13bc,
301 0x080c, 0x1b1e, 0x0110, 0x0804, 0x13bc, 0x73c8, 0x72cc, 0x77c6,
302 0x73ca, 0x72ce, 0x080c, 0x1c2a, 0x11e8, 0x6818, 0xa005, 0x01a0,
303 0x2708, 0x0076, 0x080c, 0x23f7, 0x007e, 0x1170, 0x2001, 0x0015,
304 0xd7fc, 0x1118, 0x2061, 0x4740, 0x0018, 0xc0fd, 0x2061, 0x4780,
305 0x782a, 0x2091, 0x8001, 0x0005, 0x2091, 0x8001, 0x2001, 0x4005,
306 0x0804, 0x13bc, 0x2091, 0x8001, 0x0804, 0x13ba, 0x77c4, 0xd7fc,
307 0x0128, 0x080c, 0x1b29, 0x0138, 0x0804, 0x13bc, 0x080c, 0x1b1e,
308 0x0110, 0x0804, 0x13bc, 0x77c6, 0x2041, 0x0021, 0x2049, 0x0005,
309 0x2051, 0x0020, 0x2091, 0x8000, 0x080c, 0x1bb2, 0x2009, 0x0016,
310 0xd7fc, 0x1118, 0x2061, 0x4740, 0x0018, 0x2061, 0x4780, 0xc1fd,
311 0x6063, 0x0003, 0x607b, 0x0000, 0x6772, 0x607f, 0x000f, 0x792a,
312 0x61d0, 0xc1c4, 0x61d2, 0x080c, 0x22d5, 0x2091, 0x8001, 0x0005,
313 0x77c8, 0x77ca, 0x77c4, 0x77c6, 0xd7fc, 0x0128, 0x080c, 0x1b29,
314 0x0138, 0x0804, 0x13bc, 0x080c, 0x1b1e, 0x0110, 0x0804, 0x13bc,
315 0xa7bc, 0xff00, 0x2091, 0x8000, 0x2009, 0x0017, 0xd7fc, 0x1118,
316 0x2061, 0x4740, 0x0018, 0x2061, 0x4780, 0xc1fd, 0x607b, 0x0000,
317 0x6063, 0x0002, 0x6772, 0x607f, 0x000f, 0x792a, 0x61d0, 0xc1c4,
318 0x61d2, 0x080c, 0x22d5, 0x2091, 0x8001, 0x2041, 0x0021, 0x2049,
319 0x0005, 0x2051, 0x0010, 0x2091, 0x8000, 0x70c8, 0xa005, 0x0118,
320 0x60d0, 0xc0fd, 0x60d2, 0x080c, 0x1bb2, 0x70c8, 0x6836, 0x8738,
321 0xa784, 0x001f, 0x1dc0, 0x2091, 0x8001, 0x0005, 0x2019, 0x0000,
322 0x72c8, 0xd284, 0x0128, 0x080c, 0x1b29, 0x0138, 0x0804, 0x13bc,
323 0x080c, 0x1b1e, 0x0110, 0x0804, 0x13bc, 0x72c8, 0x72ca, 0x78ac,
324 0xa084, 0x0003, 0x1518, 0x2039, 0x0000, 0xd284, 0x0108, 0xc7fd,
325 0x2041, 0x0021, 0x2049, 0x0004, 0x2051, 0x0008, 0x080c, 0x1b9a,
326 0x2091, 0x8000, 0x6808, 0xc0d4, 0xa80d, 0x690a, 0x6837, 0x0000,
327 0x2091, 0x8001, 0x8738, 0xa784, 0x001f, 0x1d80, 0xa7bc, 0xff00,
328 0x873f, 0x8738, 0x873f, 0xa784, 0x0f00, 0x1d40, 0x2091, 0x8000,
329 0x72c8, 0x2069, 0x0100, 0xd284, 0x1110, 0x2069, 0x0200, 0x6808,
330 0xa084, 0xfffd, 0x680a, 0x6830, 0xd0b4, 0x01b0, 0x684b, 0x0004,
331 0x20a9, 0x0014, 0x6848, 0xd094, 0x0110, 0x1f04, 0x18c2, 0x684b,
332 0x0009, 0x20a9, 0x0014, 0x6848, 0xd084, 0x0110, 0x1f04, 0x18cb,
333 0x20a9, 0x00fa, 0x1f04, 0x18d2, 0x2079, 0x4700, 0x2009, 0x0018,
334 0x72c8, 0xd284, 0x1118, 0x2061, 0x4740, 0x0018, 0x2061, 0x4780,
335 0xc1fd, 0x607b, 0x0000, 0x792a, 0x6063, 0x0001, 0x607f, 0x000f,
336 0x60a3, 0x0000, 0x60a4, 0x60ae, 0x60b2, 0x60d0, 0xd0b4, 0x0160,
337 0xc0b4, 0x60d2, 0x00c6, 0x60b4, 0xa065, 0x6008, 0xc0d4, 0x600a,
338 0x6018, 0x8001, 0x601a, 0x00ce, 0x60d0, 0xa084, 0x7eff, 0x60d2,
339 0x78ac, 0xc08d, 0x78ae, 0x83ff, 0x0108, 0x0005, 0x681b, 0x0054,
340 0x2091, 0x8001, 0x0005, 0x73cc, 0x080c, 0x1878, 0x69ec, 0x6a48,
341 0xa185, 0x1800, 0x684a, 0xa185, 0x0040, 0x68ee, 0x73cc, 0x2021,
342 0x0004, 0x20a9, 0x09ff, 0x1f04, 0x191b, 0x8421, 0x1dd0, 0x8319,
343 0x1db0, 0x69ee, 0x6a4a, 0x2091, 0x8001, 0x0005, 0xd7fc, 0x1118,
344 0x2069, 0x4740, 0x0010, 0x2069, 0x4780, 0x71c4, 0x71c6, 0x6916,
345 0x81ff, 0x1110, 0x68a3, 0x0001, 0x78ac, 0xc08c, 0x78ae, 0xd084,
346 0x1110, 0x080c, 0x1c7a, 0x0005, 0x75d8, 0x74dc, 0x75da, 0x74de,
347 0x0010, 0xa02e, 0x2520, 0x71c4, 0x73c8, 0x72cc, 0x71c6, 0x73ca,
348 0x72ce, 0x2079, 0x4700, 0x7dde, 0x7cda, 0x7bd6, 0x7ad2, 0x080c,
349 0x1b77, 0x0904, 0x1a5c, 0x20a9, 0x0005, 0x20a1, 0x4714, 0x2091,
350 0x8000, 0x41a1, 0x2091, 0x8001, 0x2009, 0x0040, 0x080c, 0x1d41,
351 0x0120, 0x080c, 0x1b7f, 0x0804, 0x1a5c, 0x6004, 0xa08c, 0x00ff,
352 0xa18e, 0x0009, 0x1120, 0x0006, 0x080c, 0x2086, 0x000e, 0xa084,
353 0xff00, 0x8007, 0x8009, 0x0904, 0x19f1, 0x00c6, 0x2c68, 0x080c,
354 0x1b77, 0x05a8, 0x2c00, 0x689e, 0x8109, 0x1dc0, 0x609f, 0x0000,
355 0x00ce, 0x00c6, 0x7ddc, 0x7cd8, 0x7bd4, 0x7ad0, 0xa290, 0x0040,
356 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x7dde, 0x7cda,
357 0x7bd6, 0x7ad2, 0x2c68, 0x689c, 0xa065, 0x0904, 0x19f0, 0x2009,
358 0x0040, 0x080c, 0x1d41, 0x15a0, 0x6004, 0xa084, 0x00ff, 0xa086,
359 0x0002, 0x0150, 0x6004, 0xa084, 0x00ff, 0xa086, 0x000a, 0x1138,
360 0x0016, 0x080c, 0x2083, 0x001e, 0x2d00, 0x6002, 0x0898, 0x00ce,
361 0x00c6, 0x609c, 0x080c, 0x1bf3, 0x00ce, 0x609f, 0x0000, 0x080c,
362 0x1a60, 0x2009, 0x0018, 0x6008, 0xc0cd, 0x600a, 0x6004, 0x6086,
363 0x7810, 0x0006, 0x84ff, 0x1110, 0x85ff, 0x0110, 0xc0c5, 0x7812,
364 0x080c, 0x1b34, 0x000e, 0x7812, 0x080c, 0x1b7f, 0x0804, 0x1a5c,
365 0x00ce, 0x00c6, 0x609c, 0x080c, 0x1bf3, 0x00ce, 0x609f, 0x0000,
366 0x080c, 0x1a60, 0x2009, 0x0018, 0x6087, 0x0103, 0x601b, 0x0003,
367 0x7810, 0x0006, 0x84ff, 0x1110, 0x85ff, 0x0110, 0xc0c5, 0x7812,
368 0x080c, 0x1b34, 0x000e, 0x7812, 0x080c, 0x1b7f, 0x0804, 0x1a5c,
369 0x00ce, 0x6114, 0xd1fc, 0x0120, 0x080c, 0x1b29, 0x01f0, 0x0018,
370 0x080c, 0x1b1e, 0x01d0, 0x080c, 0x1a60, 0x2009, 0x0018, 0x6087,
371 0x0103, 0x601b, 0x0021, 0x7810, 0x0006, 0x84ff, 0x1110, 0x85ff,
372 0x0110, 0xc0c5, 0x7812, 0x080c, 0x1b34, 0x000e, 0x7812, 0x080c,
373 0x1b7f, 0x2001, 0x4007, 0x0804, 0x13bc, 0x6104, 0xa18c, 0x00ff,
374 0xa186, 0x0005, 0x1118, 0x601c, 0xc0bd, 0x601e, 0x74c4, 0x73c8,
375 0x72cc, 0x6014, 0x2091, 0x8000, 0x00e6, 0x2009, 0x0012, 0xd0fc,
376 0x1118, 0x2071, 0x4740, 0x0018, 0x2071, 0x4780, 0xc1fd, 0x792a,
377 0x7063, 0x0005, 0x71d0, 0xc1c4, 0x71d2, 0x7366, 0x726a, 0x746e,
378 0x7072, 0x7077, 0x0000, 0x2c00, 0x707a, 0xa02e, 0x2530, 0x611c,
379 0xa184, 0x0060, 0x0110, 0x080c, 0x3fe9, 0x00ee, 0x6596, 0x65a6,
380 0x669a, 0x66aa, 0x60af, 0x0000, 0x60b3, 0x0000, 0x6714, 0x6023,
381 0x0000, 0x6024, 0xa096, 0x0001, 0x1110, 0x8000, 0x6026, 0x080c,
382 0x22d5, 0x2091, 0x8001, 0x0005, 0x70c3, 0x4005, 0x0804, 0x13bd,
383 0x20a9, 0x0005, 0x2099, 0x4714, 0x2091, 0x8000, 0x530a, 0x2091,
384 0x8001, 0x2100, 0xa210, 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9,
385 0x0000, 0x0005, 0x71c4, 0x70c7, 0x0000, 0x791e, 0x0804, 0x13ba,
386 0x71c4, 0x71c6, 0x2168, 0x0010, 0x2069, 0x1000, 0x690c, 0xa016,
387 0x2d04, 0xa210, 0x8d68, 0x8109, 0x1dd8, 0xa285, 0x0000, 0x1118,
388 0x70c3, 0x4000, 0x0010, 0x70c3, 0x4003, 0x70ca, 0x0804, 0x13bd,
389 0x7964, 0x71c6, 0x71c4, 0xa182, 0x0003, 0x1a04, 0x13b3, 0x7966,
390 0x0804, 0x13ba, 0x7964, 0x71c6, 0x0804, 0x13ba, 0x7900, 0x71c6,
391 0x71c4, 0x7902, 0x0804, 0x13ba, 0x7900, 0x71c6, 0x0804, 0x13ba,
392 0x70c4, 0x2011, 0x0000, 0xa08c, 0x000d, 0x0160, 0x810c, 0x0230,
393 0x8210, 0x810c, 0x810c, 0x0210, 0x8210, 0x810c, 0x81ff, 0x1904,
394 0x13b4, 0x8210, 0x7a0e, 0xd28c, 0x0538, 0x7910, 0xc1cd, 0x7912,
395 0x2009, 0x0021, 0x2019, 0x0003, 0xd284, 0x01c0, 0x8108, 0x2019,
396 0x0041, 0x2011, 0x8f4e, 0x2312, 0x2019, 0x0042, 0x8210, 0x2312,
397 0x2019, 0x0043, 0x8210, 0x2312, 0x2019, 0x0046, 0x8210, 0x2312,
398 0x2019, 0x0047, 0x8210, 0x2312, 0x2019, 0x0006, 0x2011, 0x8f53,
399 0x2112, 0x2011, 0x8f73, 0x2312, 0x7904, 0x7806, 0x0804, 0x13b9,
400 0x7804, 0x70c6, 0x0804, 0x13ba, 0x71c4, 0xd1fc, 0x1118, 0x2011,
401 0x4bc0, 0x0010, 0x2011, 0x4c40, 0x8107, 0xa084, 0x000f, 0x8003,
402 0x8003, 0x8003, 0xa268, 0x2011, 0x0000, 0x6814, 0xd0fc, 0x0110,
403 0xa295, 0x0200, 0xd0b4, 0x0110, 0xa295, 0x0001, 0x6b0c, 0x6800,
404 0x70da, 0x0804, 0x13b7, 0x7814, 0xd0f4, 0x0130, 0x2001, 0x4007,
405 0x70db, 0x0000, 0xa005, 0x0048, 0xd0fc, 0x0130, 0x2001, 0x4007,
406 0x70db, 0x0001, 0xa005, 0x0008, 0xa006, 0x0005, 0x7814, 0xd0f4,
407 0x0130, 0x2001, 0x4007, 0x70db, 0x0000, 0xa005, 0x0008, 0xa006,
408 0x0005, 0x7814, 0xd0fc, 0x0130, 0x2001, 0x4007, 0x70db, 0x0001,
409 0xa005, 0x0008, 0xa006, 0x0005, 0x7112, 0x721a, 0x731e, 0x7810,
410 0xd0c4, 0x0110, 0x7422, 0x7526, 0xac80, 0x0001, 0x8108, 0x810c,
411 0x81a9, 0x8098, 0x20a1, 0x0030, 0x7003, 0x0000, 0x6084, 0x20a2,
412 0x53a6, 0x7007, 0x0001, 0x7974, 0xa184, 0xff00, 0x0140, 0x810f,
413 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100, 0x0018, 0x8107,
414 0x8004, 0x8004, 0x797c, 0xa108, 0x7a78, 0xa006, 0xa211, 0x7d10,
415 0xd5c4, 0x0120, 0x7b84, 0xa319, 0x7c80, 0xa421, 0x7008, 0xd0fc,
416 0x0de8, 0x7003, 0x0001, 0x7007, 0x0006, 0x711a, 0x721e, 0x7d10,
417 0xd5c4, 0x0110, 0x7322, 0x7426, 0xa084, 0x01e0, 0x0005, 0x7848,
418 0xa065, 0x0120, 0x2c04, 0x784a, 0x2063, 0x0000, 0x0005, 0x00f6,
419 0x2079, 0x4700, 0x7848, 0x2062, 0x2c00, 0xa005, 0x1110, 0x080c,
420 0x2575, 0x784a, 0x00fe, 0x0005, 0x2011, 0x9100, 0x7a4a, 0x7bc4,
421 0x8319, 0x0128, 0xa280, 0x0032, 0x2012, 0x2010, 0x0cc8, 0x2013,
422 0x0000, 0x0005, 0x0016, 0x0026, 0xd7fc, 0x1118, 0x2011, 0x4cc0,
423 0x0010, 0x2011, 0x6cc0, 0xa784, 0x0f00, 0x800b, 0xa784, 0x001f,
424 0x0120, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0xa268, 0x002e,
425 0x001e, 0x0005, 0x0c39, 0x2900, 0x682a, 0x2a00, 0x682e, 0x6808,
426 0xa084, 0xf9ef, 0xa80d, 0x690a, 0x00e6, 0xd7fc, 0x1128, 0x2009,
427 0x4752, 0x2071, 0x4740, 0x0020, 0x2009, 0x4792, 0x2071, 0x4780,
428 0x210c, 0x6804, 0xa005, 0x0148, 0xa116, 0x1138, 0x2060, 0x6000,
429 0x6806, 0x0016, 0x200b, 0x0000, 0x0018, 0x2009, 0x0000, 0x0016,
430 0x6804, 0xa065, 0x0178, 0x6000, 0x6806, 0x0421, 0x080c, 0x1db2,
431 0x6810, 0x7908, 0x8109, 0x790a, 0x8001, 0x6812, 0x1d88, 0x7910,
432 0xc1a5, 0x7912, 0x001e, 0x6902, 0x6906, 0x2d00, 0x2060, 0x080c,
433 0x26bf, 0x00ee, 0x0005, 0xa065, 0x0160, 0x2008, 0x609c, 0xa005,
434 0x0128, 0x2062, 0x609f, 0x0000, 0xa065, 0x0cc0, 0x7848, 0x794a,
435 0x2062, 0x0005, 0x6007, 0x0103, 0x608f, 0x0000, 0x20a9, 0x001c,
436 0xac80, 0x0005, 0x20a0, 0x2001, 0x0000, 0x40a4, 0x6828, 0x601a,
437 0x682c, 0x6022, 0x0005, 0x00e6, 0xd7fc, 0x1128, 0x2071, 0x4740,
438 0x2031, 0x47c0, 0x0020, 0x2071, 0x4780, 0x2031, 0x49c0, 0x704c,
439 0xa08c, 0x0200, 0x1128, 0xa608, 0x2d0a, 0x8000, 0x704e, 0xa006,
440 0x00ee, 0x0005, 0x00f6, 0xd7fc, 0x1118, 0x2079, 0x4740, 0x0010,
441 0x2079, 0x4780, 0x080c, 0x1b9a, 0x2091, 0x8000, 0x6804, 0x780a,
442 0xa065, 0x05f0, 0x0030, 0x2c00, 0x780a, 0x2060, 0x6000, 0xa065,
443 0x05b8, 0x6010, 0xa306, 0x1db8, 0x600c, 0xa206, 0x1da0, 0x2c28,
444 0x7848, 0xac06, 0x1108, 0x0448, 0x6804, 0xac06, 0x1140, 0x6000,
445 0x2060, 0x6806, 0xa005, 0x1118, 0x6803, 0x0000, 0x0048, 0x6400,
446 0x7808, 0x2060, 0x6402, 0xa486, 0x0000, 0x1110, 0x2c00, 0x6802,
447 0x2560, 0x080c, 0x1c02, 0x601b, 0x0005, 0x6023, 0x0020, 0x00fe,
448 0x080c, 0x1db2, 0x00f6, 0x7908, 0x8109, 0x790a, 0x6810, 0x8001,
449 0x6812, 0x1118, 0x7810, 0xc0a5, 0x7812, 0x2001, 0xffff, 0xa005,
450 0x00fe, 0x0005, 0x0076, 0x2700, 0x2039, 0x0000, 0xd0fc, 0x0108,
451 0xc7fd, 0x2041, 0x0021, 0x2049, 0x0004, 0x2051, 0x0008, 0x2091,
452 0x8000, 0x080c, 0x1bb2, 0x8738, 0xa784, 0x001f, 0x1dd0, 0xa7bc,
453 0xff00, 0x873f, 0x8738, 0x873f, 0xa784, 0x0f00, 0x1d90, 0x2091,
454 0x8001, 0x007e, 0x0005, 0x786c, 0x2009, 0x8f74, 0x210c, 0xa10d,
455 0x0118, 0xa065, 0x0804, 0x20a1, 0x2061, 0x0000, 0x6018, 0xd084,
456 0x11b8, 0x7810, 0xd08c, 0x0130, 0xc08c, 0x7812, 0xc7fc, 0x2069,
457 0x4740, 0x0028, 0xc08d, 0x7812, 0x2069, 0x4780, 0xc7fd, 0x2091,
458 0x8000, 0x681c, 0x681f, 0x0000, 0x2091, 0x8001, 0xa005, 0x1108,
459 0x0005, 0xa08c, 0xfff0, 0x0110, 0x080c, 0x2575, 0x0002, 0x1cd7,
460 0x1cda, 0x1ce0, 0x1ce4, 0x1cd8, 0x1ce8, 0x1cd8, 0x1cd8, 0x1cd8,
461 0x1cee, 0x1d18, 0x1d1b, 0x1d20, 0x1d29, 0x1cd8, 0x1cd8, 0x0005,
462 0x080c, 0x2575, 0x080c, 0x1c7a, 0x2001, 0x8001, 0x0804, 0x1d32,
463 0x2001, 0x8003, 0x0804, 0x1d32, 0x2001, 0x8004, 0x0804, 0x1d32,
464 0x080c, 0x1c7a, 0x2001, 0x8006, 0x0804, 0x1d32, 0x2011, 0x800a,
465 0x2091, 0x8000, 0xd7fc, 0x1118, 0x2069, 0x4740, 0x0010, 0x2069,
466 0x4780, 0x2038, 0x6800, 0xa086, 0x0000, 0x0120, 0x6f1e, 0x2091,
467 0x8001, 0x0005, 0x0026, 0x6870, 0xa0bc, 0xff00, 0x2041, 0x0021,
468 0x2049, 0x0004, 0x2051, 0x0010, 0x080c, 0x1bb2, 0x8738, 0xa784,
469 0x001f, 0x1dd0, 0x2091, 0x8001, 0x000e, 0x6970, 0x71c6, 0x00d0,
470 0x2001, 0x800c, 0x00b8, 0x080c, 0x1c7a, 0x2001, 0x800d, 0x0090,
471 0xd7fc, 0x0110, 0x78e4, 0x0008, 0x78e0, 0x70c6, 0x2001, 0x800e,
472 0x0048, 0xd7fc, 0x0110, 0x78ec, 0x0008, 0x78e8, 0x70c6, 0x2001,
473 0x800f, 0x0000, 0x70c2, 0xd7fc, 0x1118, 0x70db, 0x0000, 0x0010,
474 0x70db, 0x0001, 0x2061, 0x0000, 0x601b, 0x0001, 0x2091, 0x4080,
475 0x0005, 0xac80, 0x0001, 0x81ff, 0x0518, 0x2099, 0x0030, 0x20a0,
476 0x700c, 0xa084, 0x07ff, 0x0100, 0x7018, 0x0006, 0x701c, 0x0006,
477 0x7020, 0x0006, 0x7024, 0x0006, 0x7112, 0x81ac, 0x721a, 0x731e,
478 0x7422, 0x7526, 0x7003, 0x0001, 0x7007, 0x0001, 0x7008, 0x800b,
479 0x1ee8, 0x7007, 0x0002, 0xa08c, 0x01e0, 0x1110, 0x53a5, 0xa006,
480 0x7003, 0x0000, 0x7007, 0x0004, 0x000e, 0x7026, 0x000e, 0x7022,
481 0x000e, 0x701e, 0x000e, 0x701a, 0x0005, 0x2011, 0x0020, 0x2009,
482 0x0010, 0x6b0a, 0x6c0e, 0x681f, 0x0201, 0x6803, 0xfd20, 0x6807,
483 0x0038, 0x6a1a, 0x2d00, 0xa0e8, 0x0008, 0xa290, 0x0004, 0x8109,
484 0x1d80, 0x0005, 0x70ec, 0xd0dc, 0x1520, 0x2029, 0x0001, 0x7814,
485 0xd0cc, 0x1160, 0x70ec, 0xd0e4, 0x2019, 0x0c0a, 0x2021, 0x000a,
486 0x1120, 0x2019, 0x0c0c, 0x2021, 0x000c, 0x0070, 0x70ec, 0xd0e4,
487 0x1128, 0x2019, 0x180c, 0x2021, 0x000c, 0x0030, 0x2019, 0x1809,
488 0x2021, 0x0009, 0xa5ad, 0x0200, 0x6b0a, 0x6c0e, 0x6d1e, 0x6807,
489 0x0038, 0x0005, 0x6004, 0x6086, 0x2c08, 0x2063, 0x0000, 0x7868,
490 0xa005, 0x796a, 0x0110, 0x2c02, 0x0008, 0x796e, 0x0005, 0x00c6,
491 0x2061, 0x4700, 0x6887, 0x0103, 0x2d08, 0x206b, 0x0000, 0x6068,
492 0xa005, 0x616a, 0x0110, 0x2d02, 0x0008, 0x616e, 0x00ce, 0x0005,
493 0x2091, 0x8000, 0x2c04, 0x786e, 0xa005, 0x1108, 0x786a, 0x2091,
494 0x8001, 0x609c, 0xa005, 0x0188, 0x00c6, 0x2060, 0x2008, 0x609c,
495 0xa005, 0x0138, 0x2062, 0x609f, 0x0000, 0xa065, 0x609c, 0xa005,
496 0x1dc8, 0x7848, 0x794a, 0x2062, 0x00ce, 0x7848, 0x2062, 0x609f,
497 0x0000, 0xac85, 0x0000, 0x1110, 0x080c, 0x2575, 0x784a, 0x0005,
498 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086, 0x818e, 0x1208, 0xa200,
499 0x1f04, 0x1dfc, 0x8086, 0x818e, 0x0005, 0x0156, 0x20a9, 0x0010,
500 0xa005, 0x01b8, 0xa11a, 0x12a8, 0x8213, 0x818d, 0x0228, 0xa11a,
501 0x1220, 0x1f04, 0x1e0c, 0x0028, 0xa11a, 0x2308, 0x8210, 0x1f04,
502 0x1e0c, 0x0006, 0x3200, 0xa084, 0xefff, 0x2080, 0x000e, 0x015e,
503 0x0005, 0x0006, 0x3200, 0xa085, 0x1000, 0x0cb8, 0x7d74, 0x70d0,
504 0xa506, 0x0904, 0x1eda, 0x7810, 0x2050, 0x080c, 0x1b77, 0x0904,
505 0x1eda, 0xa046, 0x7970, 0x2500, 0x8000, 0xa112, 0x2009, 0x0040,
506 0x1208, 0x0030, 0x72d0, 0xa206, 0x0118, 0x8840, 0x2009, 0x0080,
507 0x00c6, 0x7112, 0x7007, 0x0001, 0x2099, 0x0030, 0x20a9, 0x0020,
508 0xac80, 0x0001, 0x20a0, 0x2061, 0x0000, 0x88ff, 0x0110, 0x080c,
509 0x1b77, 0x7008, 0xd0fc, 0x0de8, 0x7007, 0x0002, 0x2091, 0x8001,
510 0xa08c, 0x01e0, 0x1538, 0x53a5, 0x8cff, 0x1120, 0x88ff, 0x0904,
511 0x1ec7, 0x0050, 0x2c00, 0x788e, 0x20a9, 0x0020, 0xac80, 0x0001,
512 0x20a0, 0x53a5, 0x0804, 0x1ec7, 0xa046, 0x7218, 0x731c, 0xdac4,
513 0x0110, 0x7420, 0x7524, 0xa292, 0x0040, 0xa39b, 0x0000, 0xa4a3,
514 0x0000, 0xa5ab, 0x0000, 0x721a, 0x731e, 0xdac4, 0x0118, 0x7422,
515 0x7526, 0xa006, 0x7007, 0x0004, 0x0904, 0x1ec7, 0x8cff, 0x0110,
516 0x080c, 0x1b7f, 0x00ce, 0x080c, 0x1b7f, 0xa046, 0x7888, 0x8000,
517 0x788a, 0xa086, 0x0002, 0x01c0, 0x7a7c, 0x7b78, 0xdac4, 0x0110,
518 0x7c84, 0x7d80, 0x7974, 0x8107, 0x8004, 0x8004, 0xa210, 0xa399,
519 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x721a, 0x731e, 0xdac4,
520 0x0588, 0x7422, 0x7526, 0x0470, 0x6014, 0xd0fc, 0x1118, 0x2069,
521 0x4740, 0x0010, 0x2069, 0x4780, 0x2091, 0x8000, 0x681f, 0x0002,
522 0x88ff, 0x0120, 0xa046, 0x788c, 0x2060, 0x0c70, 0x788b, 0x0000,
523 0x78ac, 0xa085, 0x0003, 0x78ae, 0x2091, 0x8001, 0x0098, 0x00ce,
524 0x788b, 0x0000, 0x080c, 0x205c, 0x6004, 0xa084, 0x000f, 0x0059,
525 0x88ff, 0x0130, 0x788c, 0x2060, 0x6004, 0xa084, 0x000f, 0x0019,
526 0x0804, 0x1e26, 0x0005, 0x0002, 0x1eec, 0x1f07, 0x1f20, 0x1eec,
527 0x1f2d, 0x1efd, 0x1eec, 0x1eec, 0x1eec, 0x1f05, 0x1f1e, 0x1eec,
528 0x1eec, 0x1eec, 0x1eec, 0x1eec, 0x2039, 0x0400, 0x78bc, 0xa705,
529 0x78be, 0x6008, 0xa705, 0x600a, 0x080c, 0x1f69, 0x609c, 0x78ba,
530 0x609f, 0x0000, 0x080c, 0x2048, 0x0005, 0x78bc, 0xd0c4, 0x0108,
531 0x0c58, 0x601c, 0xc0bd, 0x601e, 0x0030, 0x080c, 0x2086, 0x78bc,
532 0xd0c4, 0x0108, 0x0c08, 0x78bf, 0x0000, 0x6004, 0x8007, 0xa084,
533 0x00ff, 0x78b2, 0x8001, 0x0138, 0x080c, 0x1f69, 0x0120, 0x78bc,
534 0xc0c5, 0x78be, 0x0010, 0x0804, 0x1f84, 0x0005, 0x080c, 0x2083,
535 0x78bc, 0xa08c, 0x0e00, 0x1110, 0xd0c4, 0x1108, 0x0828, 0x080c,
536 0x1f69, 0x1110, 0x0804, 0x1f84, 0x0005, 0x78bc, 0xd0c4, 0x0110,
537 0x0804, 0x1eec, 0x78bf, 0x0000, 0x6714, 0x2011, 0x0001, 0x22a8,
538 0x6018, 0xa084, 0x00ff, 0xa005, 0x0188, 0xa7bc, 0xff00, 0x20a9,
539 0x0020, 0xa08e, 0x0001, 0x0150, 0xa7bc, 0x8000, 0x2011, 0x0002,
540 0x20a9, 0x0100, 0xa08e, 0x0002, 0x0108, 0x00c0, 0x080c, 0x1b9a,
541 0x2d00, 0x2091, 0x8000, 0x682b, 0x0000, 0x682f, 0x0000, 0x6808,
542 0xa084, 0xffde, 0x680a, 0xade8, 0x0010, 0x2091, 0x8001, 0x1f04,
543 0x1f51, 0x8211, 0x0118, 0x20a9, 0x0100, 0x0c58, 0x080c, 0x1b7f,
544 0x0005, 0x609f, 0x0000, 0x78b4, 0xa06d, 0x2c00, 0x78b6, 0x1110,
545 0x78ba, 0x0038, 0x689e, 0x2d00, 0x6002, 0x78b8, 0xad06, 0x1108,
546 0x6002, 0x78b0, 0x8001, 0x78b2, 0x1130, 0x78bc, 0xc0c4, 0x78be,
547 0x78b8, 0x2060, 0xa006, 0x0005, 0x00e6, 0xa02e, 0x2530, 0x7dba,
548 0x7db6, 0x65ae, 0x65b2, 0x601c, 0x60a2, 0x2048, 0xa984, 0xe1ff,
549 0x601e, 0xa984, 0x0060, 0x0160, 0x080c, 0x3fe9, 0x86ff, 0x1140,
550 0x85ff, 0x1130, 0x2039, 0x0800, 0x080c, 0x2048, 0x0804, 0x2046,
551 0x6596, 0x65a6, 0x669a, 0x66aa, 0x6714, 0x2071, 0x4780, 0xd7fc,
552 0x1110, 0x2071, 0x4740, 0xa784, 0x0f00, 0x800b, 0xa784, 0x001f,
553 0x0120, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0x71c0, 0xa168,
554 0x2700, 0x8007, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0x71c4,
555 0xa100, 0x60c2, 0x2091, 0x8000, 0x7814, 0xd0c4, 0x0138, 0xd7fc,
556 0x1118, 0xd0f4, 0x1140, 0x0010, 0xd0fc, 0x1128, 0x6e08, 0xd684,
557 0x01f0, 0xd9fc, 0x11e0, 0x2091, 0x8001, 0x080c, 0x1c02, 0x2091,
558 0x8000, 0x080c, 0x1db2, 0x2091, 0x8001, 0x7814, 0xd0c4, 0x0904,
559 0x2046, 0xd7fc, 0x1120, 0xd0f4, 0x1130, 0x0804, 0x2046, 0xd0fc,
560 0x1110, 0x0804, 0x2046, 0x601b, 0x0021, 0x0804, 0x2046, 0x6024,
561 0xa096, 0x0001, 0x1110, 0x8000, 0x6026, 0x6a10, 0x6814, 0xa202,
562 0x0268, 0x0160, 0x2091, 0x8001, 0x2039, 0x0200, 0x609c, 0x78ba,
563 0x609f, 0x0000, 0x080c, 0x2048, 0x0804, 0x2046, 0x2c08, 0xd9fc,
564 0x01f0, 0x6800, 0xa065, 0x01d8, 0x6a04, 0x7000, 0xa084, 0x0002,
565 0x0168, 0x7048, 0xa206, 0x1150, 0x6b04, 0x2160, 0x2304, 0x6002,
566 0xa005, 0x1108, 0x6902, 0x2260, 0x6102, 0x0098, 0x2d00, 0x2060,
567 0x080c, 0x26bf, 0x6e08, 0x2160, 0x6202, 0x6906, 0x0050, 0x6800,
568 0x6902, 0xa065, 0x0110, 0x6102, 0x0008, 0x6906, 0x2160, 0x6003,
569 0x0000, 0x2160, 0xd9fc, 0x0118, 0xa6b4, 0xfffc, 0x6e0a, 0x6810,
570 0x7d08, 0x8528, 0x7d0a, 0x8000, 0x6812, 0x2091, 0x8001, 0xd6b4,
571 0x0128, 0xa6b6, 0x0040, 0x6e0a, 0x080c, 0x1c13, 0x00ee, 0x0005,
572 0x6008, 0xa705, 0x600a, 0x2091, 0x8000, 0x080c, 0x1db2, 0x2091,
573 0x8001, 0x78b8, 0xa065, 0x0128, 0x609c, 0x78ba, 0x609f, 0x0000,
574 0x0c78, 0x78b6, 0x78ba, 0x0005, 0x7970, 0x7874, 0x2818, 0xd384,
575 0x0118, 0x8000, 0xa112, 0x0220, 0x8000, 0xa112, 0x1278, 0xc384,
576 0x7a7c, 0x721a, 0x7a78, 0x721e, 0xdac4, 0x0120, 0x7a84, 0x7222,
577 0x7a80, 0x7226, 0xa006, 0xd384, 0x0108, 0x8000, 0x7876, 0x70d2,
578 0x781c, 0xa005, 0x0138, 0x8001, 0x781e, 0x1120, 0x0e04, 0x2082,
579 0x2091, 0x4080, 0x0005, 0x2039, 0x2098, 0x0010, 0x2039, 0x209e,
580 0x2704, 0xa005, 0x0160, 0xac00, 0x2068, 0x6908, 0x6810, 0x6912,
581 0x680a, 0x690c, 0x6814, 0x6916, 0x680e, 0x8738, 0x0c88, 0x0005,
582 0x0003, 0x0009, 0x000f, 0x0015, 0x001b, 0x0000, 0x0015, 0x001b,
583 0x0000, 0x2041, 0x0000, 0x780c, 0x0002, 0x224a, 0x2225, 0x20a9,
584 0x2119, 0x2039, 0x8f74, 0x2734, 0x7d10, 0x00c0, 0x6084, 0xa086,
585 0x0103, 0x1904, 0x2103, 0x6114, 0x6018, 0xa105, 0x0120, 0x86ff,
586 0x11d8, 0x0804, 0x2103, 0x8603, 0xa080, 0x8f55, 0x620c, 0x2202,
587 0x8000, 0x6210, 0x2202, 0x080c, 0x1dd0, 0x8630, 0xa68e, 0x000f,
588 0x0904, 0x2184, 0x786c, 0xa065, 0x1d08, 0x7808, 0xa602, 0x1220,
589 0xd5ac, 0x1110, 0x263a, 0x0005, 0xa682, 0x0003, 0x1a04, 0x2184,
590 0x2091, 0x8000, 0x2069, 0x0000, 0x6818, 0xd084, 0x11f8, 0x2011,
591 0x8f55, 0x2204, 0x70c6, 0x8210, 0x2204, 0x70ca, 0xd684, 0x1130,
592 0x8210, 0x2204, 0x70da, 0x8210, 0x2204, 0x70de, 0xa685, 0x8020,
593 0x70c2, 0x681b, 0x0001, 0x2091, 0x4080, 0x7810, 0xa084, 0xffcf,
594 0x7812, 0x2091, 0x8001, 0x203b, 0x0000, 0x0005, 0x7810, 0xc0ad,
595 0x7812, 0x0804, 0x2184, 0x263a, 0x080c, 0x2250, 0x1904, 0x226c,
596 0x786c, 0xa065, 0x1904, 0x20ae, 0x2091, 0x8000, 0x7810, 0xa084,
597 0xffcf, 0x86ff, 0x0108, 0xc0ad, 0x7812, 0x2091, 0x8001, 0x0804,
598 0x226c, 0x2039, 0x8f74, 0x2734, 0x7d10, 0x00a0, 0x6084, 0xa086,
599 0x0103, 0x1904, 0x216e, 0x6114, 0x6018, 0xa105, 0x0120, 0x86ff,
600 0x11b8, 0x0804, 0x216e, 0xa680, 0x8f55, 0x620c, 0x2202, 0x080c,
601 0x1dd0, 0x8630, 0xa68e, 0x001e, 0x0904, 0x2184, 0x786c, 0xa065,
602 0x1d28, 0x7808, 0xa602, 0x1220, 0xd5ac, 0x1110, 0x263a, 0x0005,
603 0xa682, 0x0006, 0x1a04, 0x2184, 0x2091, 0x8000, 0x2069, 0x0000,
604 0x6818, 0xd084, 0x11f8, 0x2011, 0x8f55, 0x2009, 0x8f4e, 0x26a8,
605 0x211c, 0x2204, 0x201a, 0x8108, 0x8210, 0x1f04, 0x2150, 0xa685,
606 0x8030, 0x70c2, 0x681b, 0x0001, 0x2091, 0x4080, 0x7810, 0xa084,
607 0xffcf, 0x7812, 0x2091, 0x8001, 0xa006, 0x2009, 0x8f75, 0x200a,
608 0x203a, 0x0005, 0x7810, 0xc0ad, 0x7812, 0x00b0, 0x263a, 0x080c,
609 0x2250, 0x1904, 0x226c, 0x786c, 0xa065, 0x1904, 0x211e, 0x2091,
610 0x8000, 0x7810, 0xa084, 0xffcf, 0x86ff, 0x0108, 0xc0ad, 0x7812,
611 0x2091, 0x8001, 0x0804, 0x226c, 0x2091, 0x8000, 0x7007, 0x0004,
612 0x7994, 0x70d4, 0xa102, 0x0228, 0x0168, 0x7b90, 0xa302, 0x1150,
613 0x0010, 0x8002, 0x1138, 0x263a, 0x7810, 0xc0ad, 0x7812, 0x2091,
614 0x8001, 0x0005, 0xa184, 0xff00, 0x0140, 0x810f, 0x810c, 0x810c,
615 0x8004, 0x8004, 0x8007, 0xa100, 0x0018, 0x8107, 0x8004, 0x8004,
616 0x7a9c, 0xa210, 0x721a, 0x7a98, 0xa006, 0xa211, 0x721e, 0xd4c4,
617 0x0130, 0x7aa4, 0xa211, 0x7222, 0x7aa0, 0xa211, 0x7226, 0x20a1,
618 0x0030, 0x7003, 0x0000, 0x2009, 0x8f54, 0x260a, 0x8109, 0x2198,
619 0x2104, 0xd084, 0x0108, 0x8633, 0xa6b0, 0x0002, 0x26a8, 0x53a6,
620 0x8603, 0x7012, 0x7007, 0x0001, 0x7990, 0x7894, 0x8000, 0xa10a,
621 0x1208, 0xa006, 0x2028, 0x7974, 0xa184, 0xff00, 0x0140, 0x810f,
622 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100, 0x0018, 0x8107,
623 0x8004, 0x8004, 0x797c, 0xa108, 0x7a78, 0xa006, 0xa211, 0xd4c4,
624 0x0120, 0x7b84, 0xa319, 0x7c80, 0xa421, 0x7008, 0xd0fc, 0x0de8,
625 0xa084, 0x01e0, 0x01d0, 0x7d10, 0x2031, 0x8f54, 0x2634, 0x78a8,
626 0x8000, 0x78aa, 0xd08c, 0x1138, 0x7007, 0x0006, 0x7004, 0xd094,
627 0x1de8, 0x0804, 0x2186, 0x2069, 0x4747, 0x206b, 0x0003, 0x78ac,
628 0xa085, 0x0300, 0x78ae, 0xa006, 0x0048, 0x2030, 0x75d6, 0x2091,
629 0x4080, 0x7d96, 0x7d10, 0xa5ac, 0xffcf, 0x7d12, 0x2091, 0x8001,
630 0x78aa, 0x7007, 0x0006, 0x263a, 0x7003, 0x0001, 0x711a, 0x721e,
631 0xd5c4, 0x0110, 0x7322, 0x7426, 0x0005, 0x6084, 0xa086, 0x0103,
632 0x11d8, 0x6114, 0x6018, 0xa105, 0x11b8, 0x2069, 0x0000, 0x6818,
633 0xd084, 0x1190, 0x600c, 0x70c6, 0x6010, 0x70ca, 0x70c3, 0x8020,
634 0x681b, 0x0001, 0x2091, 0x4080, 0x080c, 0x1dd0, 0x0e04, 0x2243,
635 0x786c, 0xa065, 0x1d10, 0x0005, 0x0059, 0x1530, 0x786c, 0xa065,
636 0x19e0, 0x0410, 0x0029, 0x1500, 0x786c, 0xa065, 0x1dd8, 0x00e0,
637 0x6084, 0xa086, 0x0103, 0x1168, 0x6018, 0xc0fc, 0x601a, 0xa086,
638 0x0004, 0x1138, 0x7804, 0xd0a4, 0x0120, 0x080c, 0x1dd0, 0xa006,
639 0x0005, 0x0079, 0x1118, 0xa085, 0x0001, 0x0005, 0x00b9, 0x1110,
640 0x2041, 0x0001, 0x7d10, 0x0005, 0x88ff, 0x0110, 0x2091, 0x4080,
641 0x0005, 0x7b90, 0x7994, 0x70d4, 0xa102, 0x1118, 0xa385, 0x0000,
642 0x0005, 0x0210, 0xa302, 0x0005, 0x8002, 0x0005, 0xa184, 0xff00,
643 0x0140, 0x810f, 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100,
644 0x0018, 0x8107, 0x8004, 0x8004, 0x7a9c, 0x7b98, 0x7ca4, 0x7da0,
645 0xa210, 0xa006, 0xa319, 0xa421, 0xa529, 0x2009, 0x0018, 0x6028,
646 0xa005, 0x0110, 0x2009, 0x0040, 0x080c, 0x1b34, 0x01d0, 0x78a8,
647 0x8000, 0x78aa, 0xd08c, 0x1510, 0x6014, 0xd0fc, 0x1118, 0x2069,
648 0x4740, 0x0010, 0x2069, 0x4780, 0x2091, 0x8000, 0x681f, 0x0003,
649 0x78ab, 0x0000, 0x78ac, 0xa085, 0x0300, 0x78ae, 0x2091, 0x8001,
650 0x0068, 0x78ab, 0x0000, 0x080c, 0x1dd0, 0x7990, 0x7894, 0x8000,
651 0xa10a, 0x1208, 0xa006, 0x7896, 0x70d6, 0xa006, 0x2071, 0x0010,
652 0x2091, 0x8001, 0x0005, 0xd7fc, 0x1118, 0x2009, 0x4758, 0x0010,
653 0x2009, 0x4798, 0x2091, 0x8000, 0x200a, 0x00f6, 0x2009, 0x4780,
654 0x2079, 0x0100, 0xd7fc, 0x1120, 0x2009, 0x4740, 0x2079, 0x0200,
655 0x2104, 0xa086, 0x0000, 0x1180, 0xd7fc, 0x1118, 0x2009, 0x4745,
656 0x0010, 0x2009, 0x4785, 0x2104, 0xa005, 0x1130, 0x7830, 0xa084,
657 0x00c0, 0x1110, 0x781b, 0x0052, 0x00fe, 0x0005, 0x2009, 0x0002,
658 0x2069, 0x4700, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1904, 0x234b,
659 0x2071, 0x4780, 0x2079, 0x0100, 0x2021, 0x49bf, 0x784b, 0x000f,
660 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x0118, 0x2019, 0x3e37, 0x0030,
661 0x20a1, 0x012b, 0x2019, 0x3e37, 0xd184, 0x0110, 0x20a1, 0x022b,
662 0x2304, 0xa005, 0x0140, 0x789a, 0x8318, 0x23ac, 0x8318, 0x2398,
663 0x53a6, 0x3318, 0x0ca8, 0x789b, 0x0000, 0x789b, 0x0020, 0x20a9,
664 0x0010, 0x78af, 0x0000, 0x78af, 0x2020, 0x1f04, 0x2329, 0x7003,
665 0x0000, 0x0016, 0xd18c, 0x2009, 0x0000, 0x0108, 0xc1bd, 0x080c,
666 0x246c, 0x001e, 0x7020, 0xa084, 0x000f, 0xa085, 0x6300, 0x7806,
667 0x780f, 0x9000, 0x7843, 0x00d8, 0x7853, 0x0090, 0x780b, 0x2f08,
668 0x7452, 0x704f, 0x0000, 0x8109, 0x0140, 0x2071, 0x4740, 0x2079,
669 0x0200, 0x2021, 0x47bf, 0x0804, 0x2306, 0x080c, 0x2526, 0x0005,
670 0x0016, 0x2011, 0x0101, 0xd1bc, 0x1110, 0x2011, 0x0201, 0xa18c,
671 0x000f, 0x2204, 0xa084, 0xfff0, 0xa105, 0x2012, 0x001e, 0x080c,
672 0x246c, 0x0005, 0x2011, 0x0101, 0xd3fc, 0x1110, 0x2011, 0x0201,
673 0x20a9, 0x0009, 0x810b, 0x1f04, 0x2372, 0xa18c, 0x0e00, 0x2204,
674 0xa084, 0xf1ff, 0xa105, 0x2012, 0x0005, 0x2019, 0x0002, 0x2009,
675 0x0101, 0x20a9, 0x0005, 0x8213, 0x1f04, 0x2383, 0xa294, 0x00e0,
676 0x2104, 0xa084, 0xff1f, 0xa205, 0x200a, 0x8319, 0x0118, 0x2009,
677 0x0201, 0x0c78, 0x0005, 0x2011, 0x0101, 0xd3fc, 0x1110, 0x2011,
678 0x0201, 0x20a9, 0x000c, 0x810b, 0x1f04, 0x239b, 0xa18c, 0xf000,
679 0x2204, 0xa084, 0x0fff, 0xa105, 0x2012, 0x0005, 0x2011, 0x0102,
680 0xd3fc, 0x1110, 0x2011, 0x0202, 0x2204, 0xa09c, 0x0f30, 0xa084,
681 0xf0cf, 0xa105, 0x2012, 0x0005, 0x00c6, 0x2061, 0x0100, 0xd1bc,
682 0x1110, 0x2061, 0x0200, 0xc1bc, 0x8103, 0x8003, 0xa080, 0x0020,
683 0x609a, 0x62ac, 0x63ac, 0x00ce, 0x0005, 0x00c6, 0x2061, 0x0100,
684 0xd1bc, 0x1110, 0x2061, 0x0200, 0xc1bc, 0x8103, 0x8003, 0xa080,
685 0x0022, 0x609a, 0x60a4, 0xa084, 0xffdf, 0x60ae, 0x00ce, 0x0005,
686 0x00c6, 0x2061, 0x0100, 0xd1bc, 0x1110, 0x2061, 0x0200, 0xc1bc,
687 0x8103, 0x8003, 0xa080, 0x0020, 0x609a, 0x60a4, 0xa28c, 0x0020,
688 0x0118, 0xc2ac, 0xa39d, 0x4000, 0xc3ec, 0xd3b4, 0x1108, 0xc3ed,
689 0x62ae, 0x2010, 0x60a4, 0x63ae, 0x2018, 0x00ce, 0x0005, 0x2091,
690 0x8000, 0x00c6, 0x00e6, 0x6818, 0xa005, 0x0904, 0x2450, 0xd1fc,
691 0x0118, 0x2061, 0x8ed0, 0x0010, 0x2061, 0x8dc0, 0x080c, 0x2458,
692 0x0560, 0x20a9, 0x0101, 0xd1fc, 0x0118, 0x2061, 0x8dd0, 0x0010,
693 0x2061, 0x8cc0, 0x00c6, 0x080c, 0x2458, 0x0128, 0x00ce, 0x8c60,
694 0x1f04, 0x2412, 0x04a8, 0x000e, 0xd1fc, 0x0128, 0xa082, 0x8dd0,
695 0x2071, 0x4780, 0x0020, 0xa082, 0x8cc0, 0x2071, 0x4740, 0x7076,
696 0x7172, 0x2138, 0x2001, 0x0004, 0x7062, 0x707f, 0x000f, 0x71d0,
697 0xc1c4, 0x71d2, 0x080c, 0x22cb, 0x00c0, 0xd1fc, 0x1118, 0x2071,
698 0x4740, 0x0010, 0x2071, 0x4780, 0x6020, 0xc0dd, 0x6022, 0x7172,
699 0x2138, 0x2c00, 0x707a, 0x2001, 0x0006, 0x7062, 0x707f, 0x000f,
700 0x71d0, 0xc1c4, 0x71d2, 0x080c, 0x22cb, 0x2001, 0x0000, 0x0010,
701 0x2001, 0x0001, 0x2091, 0x8001, 0xa005, 0x00ee, 0x00ce, 0x0005,
702 0x2c04, 0xa005, 0x0170, 0x2060, 0x6010, 0xa306, 0x1140, 0x600c,
703 0xa206, 0x1128, 0x6014, 0xa106, 0x1110, 0xa006, 0x0020, 0x6000,
704 0x0c80, 0xa085, 0x0001, 0x0005, 0x00f6, 0x00e6, 0x0016, 0x2079,
705 0x4780, 0x2071, 0x0100, 0xd1bc, 0x1120, 0x2079, 0x4740, 0x2071,
706 0x0200, 0x7920, 0xa18c, 0x000f, 0x70ec, 0xd0c4, 0x1110, 0x001e,
707 0x0060, 0x810b, 0x810b, 0x810b, 0x810b, 0x000e, 0xa18d, 0x0800,
708 0xd0bc, 0x1110, 0xa18d, 0x0f00, 0x2104, 0x00ee, 0x00fe, 0x0005,
709 0x2001, 0x4701, 0x2004, 0xd0ac, 0x1138, 0x68e4, 0xd0ac, 0x0120,
710 0xa084, 0x0006, 0x1108, 0x0009, 0x0005, 0x6014, 0x00e6, 0x0036,
711 0x2018, 0x2071, 0x4c40, 0xd0fc, 0x1110, 0x2071, 0x4bc0, 0x8007,
712 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xae70, 0x7004, 0xa084,
713 0x000a, 0x1904, 0x2523, 0x7108, 0xa194, 0xff00, 0x0904, 0x2523,
714 0xa18c, 0x00ff, 0x701c, 0xa084, 0xff00, 0x01c0, 0x7004, 0xa085,
715 0x003a, 0x7006, 0x2001, 0x0009, 0xa102, 0x16d8, 0x2001, 0x000a,
716 0xa102, 0x16d0, 0x2001, 0x000c, 0xa102, 0x16c8, 0x701c, 0xa084,
717 0x00ff, 0x701e, 0x7004, 0xa084, 0xffdf, 0x7006, 0x2001, 0x000a,
718 0xa106, 0x01a8, 0x2001, 0x000c, 0xa106, 0x01a0, 0x2001, 0x0012,
719 0xa106, 0x0198, 0x2001, 0x0014, 0xa106, 0x0190, 0x2001, 0x0019,
720 0xa106, 0x0188, 0x2001, 0x0032, 0xa106, 0x0180, 0x00d8, 0x2009,
721 0x000c, 0x00d0, 0x2009, 0x0012, 0x00b8, 0x2009, 0x0014, 0x00a0,
722 0x2009, 0x0019, 0x0088, 0x2009, 0x0020, 0x0070, 0x2009, 0x003f,
723 0x0058, 0x2009, 0x000a, 0x0040, 0x2009, 0x000c, 0x0028, 0x2009,
724 0x0019, 0x0010, 0x2011, 0x0000, 0x2100, 0xa205, 0x700a, 0x7004,
725 0xa085, 0x000a, 0x7006, 0x2071, 0x4700, 0x7004, 0xd0bc, 0x0158,
726 0xd3fc, 0x1120, 0x73ea, 0x2071, 0x4740, 0x0018, 0x73ee, 0x2071,
727 0x4780, 0x701f, 0x000d, 0x003e, 0x00ee, 0x0005, 0x2001, 0x01ff,
728 0x2004, 0xd0fc, 0x11d0, 0x2001, 0x04fd, 0x2004, 0xa082, 0x0005,
729 0x12a0, 0x2071, 0x0200, 0x71ec, 0xa18c, 0x1c00, 0x810f, 0x810c,
730 0x810c, 0x2079, 0x0100, 0x78ec, 0xa084, 0x1c00, 0x8007, 0x8004,
731 0x8004, 0xa105, 0xa08a, 0x0007, 0x0208, 0x0005, 0x0002, 0x2574,
732 0x255b, 0x2574, 0x255b, 0x254e, 0x2568, 0x254e, 0x7008, 0xa084,
733 0xc3ff, 0xa085, 0x3000, 0x700a, 0x7808, 0xa084, 0xc3ff, 0xa085,
734 0x3000, 0x780a, 0x0005, 0x7008, 0xa084, 0xc3ff, 0xa085, 0x2000,
735 0x700a, 0x7808, 0xa084, 0xc3ff, 0xa085, 0x2000, 0x780a, 0x0005,
736 0x7008, 0xa084, 0xc3ff, 0xa085, 0x0c00, 0x700a, 0x7808, 0xa084,
737 0xc3ff, 0xa085, 0x0c00, 0x780a, 0x0005, 0x0e04, 0x2575, 0x2091,
738 0x8000, 0x2071, 0x0000, 0x0006, 0x7018, 0xd084, 0x1de8, 0x000e,
739 0x2071, 0x0010, 0x70ca, 0x000e, 0x70c6, 0x70c3, 0x8002, 0x70db,
740 0x0a04, 0x70df, 0x002a, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091,
741 0x4080, 0x0cf8, 0x7f3c, 0x7e58, 0x7c30, 0x7d38, 0x78a0, 0x708a,
742 0x758e, 0x7492, 0x7696, 0x779a, 0xa594, 0x003f, 0xd4f4, 0x0138,
743 0xd7bc, 0x1128, 0xa784, 0x007d, 0x1904, 0x3c9c, 0x0871, 0xa49c,
744 0x000f, 0xa382, 0x0004, 0x0320, 0xa3a6, 0x0007, 0x1930, 0x2418,
745 0x8507, 0xa084, 0x000f, 0x0002, 0x2b6c, 0x2c57, 0x2c95, 0x2efb,
746 0x3279, 0x32d0, 0x3376, 0x3405, 0x34d9, 0x35ab, 0x25c7, 0x25c4,
747 0x299e, 0x2a85, 0x324d, 0x25c4, 0x080c, 0x2575, 0x0005, 0xa006,
748 0x0038, 0x7808, 0xc08d, 0x780a, 0xa006, 0x7002, 0x704a, 0x7042,
749 0x70ce, 0x705c, 0xa005, 0x1904, 0x2718, 0x7060, 0xa084, 0x0007,
750 0x0002, 0x25e1, 0x2652, 0x265a, 0x2663, 0x266c, 0x26fe, 0x2675,
751 0x2652, 0x7830, 0xd0bc, 0x1d10, 0x71d0, 0xd1bc, 0x19f8, 0xd1b4,
752 0x1904, 0x262f, 0x70a0, 0xa086, 0x0001, 0x09c0, 0x7014, 0xa005,
753 0x19a8, 0x70b0, 0xa06d, 0x6800, 0xa065, 0xa055, 0x789b, 0x0080,
754 0x6b0c, 0x7baa, 0x6808, 0xa045, 0x6d10, 0x6804, 0xa06d, 0xa05d,
755 0xa886, 0x0001, 0x0118, 0x69bc, 0x7daa, 0x79aa, 0x68c0, 0xa04d,
756 0x6e1c, 0x2001, 0x0010, 0x0804, 0x284b, 0x705c, 0xa005, 0x1904,
757 0x25c6, 0x00c6, 0x00d6, 0x70b0, 0xa06d, 0x6800, 0xa065, 0xa055,
758 0x789b, 0x0080, 0x6b0c, 0x7baa, 0x6808, 0xa045, 0x6d10, 0x6804,
759 0xa06d, 0xa05d, 0xa886, 0x0001, 0x0118, 0x69bc, 0x7daa, 0x79aa,
760 0x68c0, 0xa04d, 0x6e1c, 0x2001, 0x0020, 0x0804, 0x284b, 0x080c,
761 0x3c5b, 0x1904, 0x25c6, 0x781b, 0x0068, 0x70b8, 0xa06d, 0x68b4,
762 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0x7808,
763 0xc08d, 0x780a, 0x68bc, 0x703e, 0xc1b4, 0x71d2, 0x70b4, 0xa065,
764 0x68c0, 0x7056, 0x7003, 0x0002, 0x2d00, 0x704a, 0xad80, 0x0009,
765 0x7042, 0x0005, 0x080c, 0x3c5b, 0x1120, 0x781b, 0x0054, 0x7003,
766 0x0004, 0x0005, 0x080c, 0x3c5b, 0x1128, 0x2011, 0x000c, 0x0419,
767 0x7003, 0x0004, 0x0005, 0x080c, 0x3c5b, 0x1128, 0x2011, 0x0006,
768 0x00d1, 0x7003, 0x0004, 0x0005, 0x080c, 0x3c5b, 0x1128, 0x2011,
769 0x000d, 0x0089, 0x7003, 0x0004, 0x0005, 0x080c, 0x3c5b, 0x1150,
770 0x2011, 0x0006, 0x0041, 0x7078, 0x707b, 0x0000, 0x2068, 0x704a,
771 0x7003, 0x0004, 0x0005, 0x7170, 0xc1fc, 0x8107, 0x7882, 0x789b,
772 0x0080, 0xa286, 0x000c, 0x1120, 0x7aaa, 0x2001, 0x0001, 0x0098,
773 0xa18c, 0x001f, 0xa18d, 0x00c0, 0x79aa, 0xa286, 0x000d, 0x0120,
774 0x7aaa, 0x2001, 0x0002, 0x0038, 0x78ab, 0x0020, 0x7174, 0x79aa,
775 0x7aaa, 0x2001, 0x0004, 0x789b, 0x0060, 0x78aa, 0x785b, 0x0004,
776 0x781b, 0x0113, 0x080c, 0x3c6e, 0x707f, 0x000f, 0x70d0, 0xd0b4,
777 0x0168, 0xc0b4, 0x70d2, 0x00c6, 0x70b4, 0xa065, 0x6008, 0xa084,
778 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a, 0x00ce, 0x0005, 0x7014,
779 0xa005, 0x1138, 0x70d0, 0xd0b4, 0x0128, 0x70b4, 0xac06, 0x1110,
780 0x0c29, 0x0005, 0x0016, 0x71a0, 0xa186, 0x0001, 0x0528, 0x00d6,
781 0x0026, 0x2100, 0x2011, 0x0001, 0xa212, 0x70b0, 0x2068, 0x6800,
782 0xac06, 0x0120, 0x8211, 0x01b0, 0x00c9, 0x0cc8, 0x00c6, 0x2100,
783 0x2011, 0x0001, 0xa212, 0x70b0, 0x2068, 0x6800, 0x2060, 0x6008,
784 0xa084, 0xfbef, 0x600a, 0x8211, 0x0110, 0x0041, 0x0cb0, 0x70a3,
785 0x0001, 0x00ce, 0x002e, 0x00de, 0x001e, 0x0005, 0xade8, 0x0005,
786 0x70a8, 0xad06, 0x1110, 0x70a4, 0x2068, 0x0005, 0x080c, 0x3c5b,
787 0x1904, 0x25c6, 0x7078, 0x2068, 0x7770, 0x080c, 0x3b95, 0x2c50,
788 0x080c, 0x3cf6, 0x789b, 0x0080, 0x6814, 0xa084, 0x001f, 0xc0bd,
789 0x78aa, 0x6e1c, 0x2041, 0x0001, 0x2001, 0x0004, 0x0804, 0x2850,
790 0x080c, 0x3c5b, 0x1904, 0x25c6, 0x789b, 0x0080, 0x705c, 0x2068,
791 0x6f14, 0x70d0, 0xd0b4, 0x0168, 0xc0b4, 0x70d2, 0x00c6, 0x70b4,
792 0xa065, 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a,
793 0x00ce, 0x080c, 0x3b95, 0x2c50, 0x080c, 0x3cf6, 0x6824, 0xa005,
794 0x0130, 0xa082, 0x0006, 0x0208, 0x0010, 0x6827, 0x0005, 0x6814,
795 0xa084, 0x001f, 0xc0bd, 0x78aa, 0x2031, 0x0020, 0x2041, 0x0001,
796 0x2001, 0x0003, 0x0804, 0x2850, 0xc28d, 0x72d2, 0x72bc, 0xa200,
797 0xa015, 0x7150, 0x8108, 0xa12a, 0x0208, 0x71bc, 0x2164, 0x6504,
798 0x85ff, 0x1170, 0x7152, 0x8421, 0x1da8, 0x70d0, 0xd08c, 0x0128,
799 0x70cc, 0xa005, 0x1110, 0x70cf, 0x000a, 0x0005, 0x2200, 0x0c90,
800 0x70d0, 0xc08c, 0x70d2, 0x70cf, 0x0000, 0x6034, 0xa005, 0x1db0,
801 0x6708, 0xa784, 0x073f, 0x01d0, 0xd7d4, 0x1d80, 0xa784, 0x0021,
802 0x1d68, 0xa784, 0x0002, 0x0130, 0xa784, 0x0004, 0x0d38, 0xa7bc,
803 0xfffb, 0x670a, 0xa784, 0x0218, 0x1d08, 0xa784, 0x0100, 0x0130,
804 0x6018, 0xa005, 0x19d8, 0xa7bc, 0xfeff, 0x670a, 0x2568, 0x6823,
805 0x0000, 0x6e1c, 0xa684, 0x000e, 0x6318, 0x0128, 0x601c, 0xa302,
806 0x0220, 0x0118, 0x0858, 0x83ff, 0x1948, 0x2d58, 0x2c50, 0x7152,
807 0xd7bc, 0x1120, 0x7028, 0x6022, 0x603a, 0x0010, 0xc7bc, 0x670a,
808 0x68c0, 0xa065, 0xa04d, 0x6100, 0x2a60, 0x2041, 0x0001, 0x6b14,
809 0xa39c, 0x001f, 0xa39d, 0x00c0, 0xd1fc, 0x0110, 0xd684, 0x0110,
810 0xa39c, 0xffbf, 0xd6a4, 0x0110, 0xa39d, 0x0020, 0xa684, 0x000e,
811 0x1904, 0x2802, 0xc7a5, 0x670a, 0x2c00, 0x68c6, 0x77a0, 0xa786,
812 0x0001, 0x1178, 0x70d0, 0xd0b4, 0x1160, 0x7000, 0xa082, 0x0002,
813 0x1240, 0x7830, 0xd0bc, 0x1128, 0x789b, 0x0080, 0x7baa, 0x0804,
814 0x2849, 0x8739, 0x77a2, 0x2750, 0x77ac, 0xa7b0, 0x0005, 0x70a8,
815 0xa606, 0x1108, 0x76a4, 0x76ae, 0x2c3a, 0x8738, 0x2d3a, 0x8738,
816 0x283a, 0x8738, 0x233a, 0x8738, 0x253a, 0x7830, 0xd0bc, 0x0150,
817 0x2091, 0x8000, 0x2091, 0x303d, 0x70d0, 0xa084, 0x303d, 0x2091,
818 0x8000, 0x2090, 0xaad5, 0x0000, 0x0120, 0x8421, 0x2200, 0x1904,
819 0x2751, 0x0005, 0xd1dc, 0x0904, 0x37f1, 0x2029, 0x0020, 0xd69c,
820 0x1120, 0x8528, 0xd68c, 0x1108, 0x8528, 0x8840, 0x6f14, 0x610c,
821 0x8108, 0xa18c, 0x00ff, 0x70c8, 0xa160, 0x2c64, 0x8cff, 0x0188,
822 0x6014, 0xa706, 0x1dd0, 0x60b8, 0x8001, 0x60ba, 0x1d88, 0x2a60,
823 0x6008, 0xa085, 0x0100, 0x600a, 0x2200, 0x8421, 0x1904, 0x2751,
824 0x0005, 0x2a60, 0x610e, 0x69be, 0x2c00, 0x68c6, 0x8840, 0x6008,
825 0xc0d5, 0x600a, 0x77a0, 0xa786, 0x0001, 0x1904, 0x27d9, 0x70d0,
826 0xd0b4, 0x1904, 0x27d9, 0x7000, 0xa082, 0x0002, 0x1a04, 0x27d9,
827 0x7830, 0xd0bc, 0x1904, 0x27d9, 0x789b, 0x0080, 0x7baa, 0x7daa,
828 0x79aa, 0x2001, 0x0002, 0x0006, 0x6018, 0x8000, 0x601a, 0x0008,
829 0x0006, 0x2960, 0x6104, 0x2a60, 0x080c, 0x3d09, 0x1590, 0xa184,
830 0x0018, 0x0180, 0xa184, 0x0010, 0x0118, 0x080c, 0x399a, 0x1548,
831 0xa184, 0x0008, 0x0138, 0x69a0, 0xa184, 0x0600, 0x1118, 0x080c,
832 0x38b8, 0x00f8, 0x69a0, 0xa184, 0x1e00, 0x0528, 0xa184, 0x0800,
833 0x0178, 0x00c6, 0x2960, 0x6000, 0xa085, 0x2000, 0x6002, 0x6104,
834 0xa18d, 0x0010, 0x6106, 0x00ce, 0x080c, 0x399a, 0x1150, 0x69a0,
835 0xa184, 0x0200, 0x0118, 0x080c, 0x38fd, 0x0018, 0xa184, 0x0400,
836 0x19f0, 0x69a0, 0xa184, 0x1000, 0x0130, 0x6914, 0xa18c, 0xff00,
837 0x810f, 0x080c, 0x23c5, 0x002e, 0xa68c, 0x00e0, 0xa684, 0x0060,
838 0x0128, 0xa086, 0x0060, 0x1110, 0xa18d, 0x4000, 0xa18d, 0x0104,
839 0x69b6, 0x789b, 0x0060, 0x2800, 0x78aa, 0x6818, 0xc0fd, 0x681a,
840 0xd6bc, 0x0168, 0xc0fc, 0x7083, 0x0000, 0xa08a, 0x000d, 0x0328,
841 0xa08a, 0x000c, 0x7182, 0x2001, 0x000c, 0x800c, 0x7186, 0x78aa,
842 0x3518, 0x3340, 0x3428, 0x8000, 0x80ac, 0xaf80, 0x002b, 0x20a0,
843 0x789b, 0x0000, 0xad80, 0x000b, 0x2098, 0x53a6, 0x23a8, 0x2898,
844 0x25a0, 0xa286, 0x0020, 0x1508, 0x70d0, 0xc0b5, 0x70d2, 0x2c00,
845 0x70b6, 0x2d00, 0x70ba, 0x6814, 0xc0fc, 0x8007, 0x7882, 0xa286,
846 0x0002, 0x0904, 0x2921, 0x70a0, 0x8000, 0x70a2, 0x74b0, 0xa498,
847 0x0005, 0x70a8, 0xa306, 0x1108, 0x73a4, 0x73b2, 0xa286, 0x0010,
848 0x0904, 0x25c6, 0x00de, 0x00ce, 0x0005, 0x7000, 0xa005, 0x19e0,
849 0xa286, 0x0002, 0x1904, 0x2938, 0x080c, 0x3c5b, 0x19a8, 0x6814,
850 0xc0fc, 0x8007, 0x7882, 0x2091, 0x8000, 0x781b, 0x0068, 0x68b4,
851 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0x2091,
852 0x8001, 0x7808, 0xc08d, 0x780a, 0x0126, 0x00d6, 0x00c6, 0x70d0,
853 0xa084, 0x2e00, 0x2090, 0x00ce, 0x00de, 0x012e, 0x2900, 0x7056,
854 0x68bc, 0x703e, 0x7003, 0x0002, 0x2d00, 0x704a, 0xad80, 0x0009,
855 0x7042, 0x7830, 0xd0bc, 0x0140, 0x2091, 0x303d, 0x70d0, 0xa084,
856 0x303d, 0x2091, 0x8000, 0x2090, 0x70a0, 0xa005, 0x1108, 0x0005,
857 0x8421, 0x0de8, 0x724c, 0x70bc, 0xa200, 0xa015, 0x0804, 0x2751,
858 0xa286, 0x0010, 0x1560, 0x080c, 0x3c5b, 0x1904, 0x28cc, 0x6814,
859 0xc0fc, 0x8007, 0x7882, 0x781b, 0x0068, 0x68b4, 0x785a, 0x6894,
860 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0x7808, 0xc08d, 0x780a,
861 0x70a0, 0x8000, 0x70a2, 0x74b0, 0xa490, 0x0005, 0x70a8, 0xa206,
862 0x1108, 0x72a4, 0x72b2, 0x2900, 0x7056, 0x68bc, 0x703e, 0x7003,
863 0x0002, 0x2d00, 0x704a, 0xad80, 0x0009, 0x7042, 0x0005, 0x6bb4,
864 0xa39d, 0x2000, 0x7b5a, 0x6814, 0xc0fc, 0x8007, 0x7882, 0x6b94,
865 0x7bd6, 0x7bde, 0x6e98, 0x7ed2, 0x7eda, 0x781b, 0x0068, 0x2900,
866 0x7056, 0x7202, 0x7808, 0xc08d, 0x780a, 0x2300, 0xa605, 0x0170,
867 0x70d0, 0xa084, 0x2e00, 0xa086, 0x2600, 0x1118, 0x2009, 0x0000,
868 0x0010, 0x2009, 0x0001, 0xa284, 0x000f, 0x0033, 0xad80, 0x0009,
869 0x7042, 0x2d00, 0x704a, 0x0005, 0x299c, 0x4208, 0x4208, 0x41f6,
870 0x4208, 0x299c, 0x299c, 0x299c, 0x080c, 0x2575, 0x7808, 0xa084,
871 0xfffd, 0x780a, 0x00f6, 0x2079, 0x4700, 0x78ac, 0x00fe, 0xd084,
872 0x01c0, 0x7160, 0xa186, 0x0001, 0x0904, 0x2a61, 0xa186, 0x0007,
873 0x0170, 0xa186, 0x0005, 0x1158, 0x7078, 0x2068, 0x681b, 0x0004,
874 0x6817, 0x0000, 0x6820, 0xa084, 0x00ff, 0xc09d, 0x6822, 0x7063,
875 0x0000, 0x70a3, 0x0000, 0x70a4, 0x70ae, 0x70b2, 0x080c, 0x26ae,
876 0x0156, 0x2011, 0x0004, 0x7160, 0xa186, 0x0001, 0x0158, 0xa186,
877 0x0007, 0x1118, 0x701f, 0x0005, 0x0010, 0x701f, 0x0001, 0x70d0,
878 0xc0c5, 0x70d2, 0x2001, 0x470a, 0x2004, 0xa084, 0x00ff, 0xa086,
879 0x0018, 0x0130, 0x7018, 0x7016, 0xa005, 0x1110, 0x70a3, 0x0001,
880 0x0066, 0x080c, 0x3f4e, 0x20a9, 0x0010, 0x2039, 0x0000, 0x080c,
881 0x3a8b, 0xa7b8, 0x0100, 0x1f04, 0x29ef, 0x006e, 0x7000, 0x0002,
882 0x2a2c, 0x2a0a, 0x2a0a, 0x2a02, 0x2a2c, 0x2a2c, 0x2a2c, 0x2a00,
883 0x080c, 0x2575, 0x705c, 0xa005, 0x0538, 0xad06, 0x1118, 0x6800,
884 0x705e, 0x0080, 0x6820, 0xd084, 0x1148, 0x6f14, 0x080c, 0x3b95,
885 0x6008, 0xc0d4, 0x600a, 0x080c, 0x37c7, 0x0020, 0x7058, 0x2060,
886 0x6800, 0x6002, 0xa684, 0x5f00, 0x681e, 0x6818, 0xd0fc, 0x0108,
887 0x6a1a, 0x6817, 0x0000, 0x682b, 0x0000, 0x6820, 0xa084, 0x00ff,
888 0xc09d, 0x6822, 0x080c, 0x1dbf, 0x2011, 0x0004, 0x74c8, 0xa4a0,
889 0x0100, 0x04b1, 0xaea0, 0x0017, 0x0499, 0x20a9, 0x0101, 0x74c8,
890 0x0479, 0x8420, 0x1f04, 0x2a38, 0x70c0, 0x2060, 0x2021, 0x0002,
891 0x20a9, 0x0100, 0x6110, 0x81ff, 0x0198, 0x6018, 0x0016, 0x0006,
892 0x2011, 0x4702, 0x220c, 0xa102, 0x2012, 0x000e, 0x001e, 0xa102,
893 0x0338, 0x6012, 0x1128, 0x2011, 0x4704, 0x2204, 0xc0a5, 0x2012,
894 0x601b, 0x0000, 0xace0, 0x0010, 0x1f04, 0x2a42, 0x8421, 0x1d00,
895 0x015e, 0x7063, 0x0000, 0x7003, 0x0000, 0x704b, 0x0000, 0x0005,
896 0x0046, 0x2404, 0xa005, 0x01a8, 0x2068, 0x6800, 0x0006, 0x6a1a,
897 0x6817, 0x0000, 0x682b, 0x0000, 0x68b4, 0xa084, 0x5f00, 0x681e,
898 0x6820, 0xa084, 0x00ff, 0xc09d, 0x6822, 0x080c, 0x1dbf, 0x000e,
899 0x0c48, 0x004e, 0x2023, 0x0000, 0x0005, 0xa282, 0x0003, 0x0310,
900 0x080c, 0x2575, 0x2300, 0x0002, 0x2a8f, 0x2b0c, 0x2b1a, 0xa282,
901 0x0002, 0x0110, 0x080c, 0x2575, 0x7060, 0x7063, 0x0000, 0x707f,
902 0x0000, 0x0022, 0x77d0, 0xc7c5, 0x77d2, 0x0002, 0x2aa6, 0x2aa6,
903 0x2aa8, 0x2ae0, 0x37fb, 0x2aa6, 0x2ae0, 0x2aa6, 0x080c, 0x2575,
904 0x7770, 0x080c, 0x3a8b, 0x7770, 0xa7bc, 0x8f00, 0x080c, 0x3b95,
905 0x6018, 0xa005, 0x0528, 0xd7fc, 0x1118, 0x2021, 0x8dc0, 0x0010,
906 0x2021, 0x8ed0, 0x2009, 0x0005, 0x2011, 0x0010, 0x080c, 0x2b34,
907 0x01b8, 0x0156, 0x20a9, 0x0101, 0xd7fc, 0x1118, 0x2021, 0x8cc0,
908 0x0010, 0x2021, 0x8dd0, 0x0046, 0x2009, 0x0005, 0x2011, 0x0010,
909 0x080c, 0x2b34, 0x004e, 0x0118, 0x8420, 0x1f04, 0x2acb, 0x015e,
910 0x8738, 0xa784, 0x001f, 0x1990, 0x0804, 0x25c9, 0x0804, 0x25c9,
911 0x7770, 0x080c, 0x3b95, 0x6018, 0xa005, 0x0520, 0xd7fc, 0x1118,
912 0x2021, 0x8dc0, 0x0010, 0x2021, 0x8ed0, 0x2009, 0x0005, 0x2011,
913 0x0020, 0x080c, 0x2b34, 0x01b0, 0x0156, 0x20a9, 0x0101, 0xd7fc,
914 0x1118, 0x2021, 0x8cc0, 0x0010, 0x2021, 0x8dd0, 0x0046, 0x2009,
915 0x0005, 0x2011, 0x0020, 0x0481, 0x004e, 0x0118, 0x8420, 0x1f04,
916 0x2afe, 0x015e, 0x0804, 0x25c9, 0x2200, 0x0002, 0x2b11, 0x2b13,
917 0x2b13, 0x080c, 0x2575, 0x7063, 0x0000, 0x70d0, 0xc0c5, 0x70d2,
918 0x0804, 0x25c9, 0x2200, 0x0002, 0x2b21, 0x2b13, 0x2b1f, 0x080c,
919 0x2575, 0x080c, 0x3f4e, 0x7000, 0xa086, 0x0002, 0x1904, 0x3780,
920 0x080c, 0x37e1, 0x6008, 0xa084, 0xfbef, 0x600a, 0x080c, 0x3772,
921 0x0904, 0x3780, 0x0804, 0x25c9, 0x2404, 0xa005, 0x0590, 0x2068,
922 0x2d04, 0x0006, 0x6814, 0xa706, 0x0118, 0x2d20, 0x000e, 0x0ca8,
923 0x000e, 0x2022, 0x691a, 0x6817, 0x0000, 0x682b, 0x0000, 0x68b4,
924 0xa084, 0x5f00, 0x681e, 0x6820, 0xa084, 0x00ff, 0xa205, 0x6822,
925 0x080c, 0x1dbf, 0x2021, 0x4702, 0x241c, 0x8319, 0x2322, 0x6010,
926 0x8001, 0x6012, 0x1128, 0x2021, 0x4704, 0x2404, 0xc0a5, 0x2022,
927 0x6008, 0xa084, 0xf9ef, 0x600a, 0x080c, 0x26ca, 0x080c, 0x37e1,
928 0x0005, 0xa085, 0x0001, 0x0ce0, 0x2300, 0x0002, 0x2b73, 0x2b71,
929 0x2bee, 0x080c, 0x2575, 0x78e4, 0xa005, 0x17b0, 0x3208, 0xa18c,
930 0x0800, 0x0118, 0x0104, 0x25c6, 0x0010, 0x0304, 0x25c6, 0x2008,
931 0xa084, 0x0030, 0x1110, 0x0804, 0x324d, 0x78ec, 0xa084, 0x0003,
932 0x0dd0, 0x7884, 0xd0fc, 0x1118, 0xa184, 0x0007, 0x0090, 0xa184,
933 0x0007, 0xa086, 0x0004, 0x1118, 0x2001, 0x0000, 0x0050, 0xa184,
934 0x0007, 0xa086, 0x0005, 0x0118, 0xa184, 0x0007, 0x0010, 0x2001,
935 0x0001, 0x0002, 0x2bd1, 0x2bda, 0x2bc7, 0x2baa, 0x3c4f, 0x3c4f,
936 0x2baa, 0x2be4, 0x080c, 0x2575, 0x7000, 0xa086, 0x0004, 0x1190,
937 0x7060, 0xa086, 0x0002, 0x1130, 0x2011, 0x0002, 0x2019, 0x0000,
938 0x0804, 0x2a85, 0x7060, 0xa086, 0x0006, 0x0db0, 0x7060, 0xa086,
939 0x0004, 0x0d90, 0x79e4, 0x2001, 0x0003, 0x0804, 0x2f3b, 0x6818,
940 0xd0fc, 0x0110, 0x681b, 0x001d, 0x080c, 0x3a61, 0x781b, 0x006e,
941 0x0005, 0x6818, 0xd0fc, 0x0110, 0x681b, 0x001d, 0x080c, 0x3a61,
942 0x0804, 0x3c2d, 0x6818, 0xd0fc, 0x0110, 0x681b, 0x001d, 0x080c,
943 0x3a61, 0x781b, 0x00fa, 0x0005, 0x6818, 0xd0fc, 0x0110, 0x681b,
944 0x001d, 0x080c, 0x3a61, 0x781b, 0x00cb, 0x0005, 0xa584, 0x000f,
945 0x11c0, 0x7000, 0x0002, 0x25c9, 0x2bfb, 0x2bfd, 0x3780, 0x3780,
946 0x3780, 0x2bfb, 0x2bfb, 0x080c, 0x2575, 0x080c, 0x37e1, 0x6008,
947 0xa084, 0xfbef, 0x600a, 0x080c, 0x3772, 0x0904, 0x3780, 0x0804,
948 0x25c9, 0x78e4, 0xa005, 0x1b04, 0x2bac, 0x3208, 0xa18c, 0x0800,
949 0x0118, 0x0104, 0x2bac, 0x0010, 0x0304, 0x2bac, 0x2008, 0xa084,
950 0x0030, 0x1118, 0x781b, 0x0068, 0x0005, 0x78ec, 0xa084, 0x0003,
951 0x0dc8, 0x7884, 0xd0fc, 0x1118, 0xa184, 0x0007, 0x0090, 0xa184,
952 0x0007, 0xa086, 0x0004, 0x1118, 0x2001, 0x0000, 0x0050, 0xa184,
953 0x0007, 0xa086, 0x0005, 0x0118, 0xa184, 0x0007, 0x0010, 0x2001,
954 0x0001, 0x0002, 0x2c49, 0x2c4d, 0x2c44, 0x2c42, 0x3c4f, 0x3c4f,
955 0x2c42, 0x3c49, 0x080c, 0x2575, 0x080c, 0x3a67, 0x781b, 0x006e,
956 0x0005, 0x080c, 0x3a67, 0x0804, 0x3c2d, 0x080c, 0x3a67, 0x781b,
957 0x00fa, 0x0005, 0x080c, 0x3a67, 0x781b, 0x00cb, 0x0005, 0x2300,
958 0x0002, 0x2c5e, 0x2c5c, 0x2c60, 0x080c, 0x2575, 0x0804, 0x3405,
959 0x681b, 0x0016, 0x78a3, 0x0000, 0x79e4, 0xa184, 0x0030, 0x0904,
960 0x3405, 0x78ec, 0xa084, 0x0003, 0x0904, 0x3405, 0xa184, 0x0100,
961 0x0d98, 0x7884, 0xd0fc, 0x1118, 0xa184, 0x0007, 0x0090, 0xa184,
962 0x0007, 0xa086, 0x0004, 0x1118, 0x2001, 0x0000, 0x0050, 0xa184,
963 0x0007, 0xa086, 0x0005, 0x0118, 0xa184, 0x0007, 0x0010, 0x2001,
964 0x0001, 0x0002, 0x2c92, 0x2c4d, 0x2bc7, 0x3c0b, 0x3c4f, 0x3c4f,
965 0x3c0b, 0x3c49, 0x080c, 0x3c17, 0x0005, 0xa282, 0x0005, 0x0310,
966 0x080c, 0x2575, 0x7898, 0x2040, 0x2300, 0x0002, 0x2ca1, 0x2ecb,
967 0x2ed5, 0x2200, 0x0002, 0x2cbd, 0x2caa, 0x2cbd, 0x2ca8, 0x2ead,
968 0x080c, 0x2575, 0x789b, 0x0018, 0x78a8, 0x2010, 0xa084, 0x00ff,
969 0xa082, 0x0020, 0x0a04, 0x3a30, 0xa08a, 0x0004, 0x1a04, 0x3a30,
970 0x0002, 0x3a30, 0x3a30, 0x3a30, 0x39e4, 0x789b, 0x0018, 0x79a8,
971 0xa184, 0x0080, 0x0148, 0x0804, 0x3a30, 0x7000, 0xa005, 0x1dd8,
972 0x2011, 0x0004, 0x0804, 0x35b7, 0xa184, 0x00ff, 0xa08a, 0x0010,
973 0x1a04, 0x3a30, 0x0002, 0x2ce5, 0x2ce3, 0x2cf7, 0x2cfb, 0x2da9,
974 0x3a30, 0x3a30, 0x2dab, 0x3a30, 0x3a30, 0x2ea9, 0x2ea9, 0x3a30,
975 0x3a30, 0x3a30, 0x2eab, 0x080c, 0x2575, 0xd6e4, 0x0140, 0x2001,
976 0x0300, 0x8000, 0x8000, 0x783a, 0x781b, 0x00c7, 0x0005, 0x6818,
977 0xd0fc, 0x0118, 0x681b, 0x001d, 0x0c90, 0x0804, 0x3c0b, 0x681b,
978 0x001d, 0x0804, 0x3a5b, 0x6920, 0x6922, 0xa684, 0x1800, 0x1904,
979 0x2d4c, 0x6820, 0xd084, 0x1904, 0x2d54, 0x6818, 0xa086, 0x0008,
980 0x1110, 0x681b, 0x0000, 0xd6d4, 0x0568, 0xd6bc, 0x0558, 0x7083,
981 0x0000, 0x6818, 0xa084, 0x003f, 0xa08a, 0x000d, 0x0718, 0xa08a,
982 0x000c, 0x7182, 0x2001, 0x000c, 0x800c, 0x7186, 0x789b, 0x0061,
983 0x78aa, 0x0156, 0x0136, 0x0146, 0x0016, 0x3208, 0xa18c, 0x0600,
984 0x0118, 0x20a1, 0x022b, 0x0010, 0x20a1, 0x012b, 0x001e, 0x789b,
985 0x0000, 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x014e,
986 0x013e, 0x015e, 0x6038, 0xa005, 0x1150, 0x681c, 0xa084, 0x000e,
987 0x0904, 0x3a5b, 0x080c, 0x3a6d, 0x782b, 0x3008, 0x0010, 0x8001,
988 0x603a, 0x781b, 0x0071, 0x0005, 0xd6e4, 0x0130, 0x781b, 0x0083,
989 0x0005, 0x781b, 0x0083, 0x0005, 0xa684, 0x0060, 0x0dd0, 0xd6dc,
990 0x0dc0, 0xd6fc, 0x01a0, 0xc6fc, 0x7e5a, 0x6eb6, 0x7adc, 0x79d8,
991 0x78d0, 0x8007, 0xa084, 0x007f, 0xa108, 0xa291, 0x0000, 0x6b98,
992 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae, 0xd6f4,
993 0x0118, 0xc6f4, 0x7e5a, 0x6eb6, 0x7000, 0xa086, 0x0003, 0x1148,
994 0x0006, 0x080c, 0x3f4e, 0x080c, 0x4208, 0x000e, 0x781b, 0x0080,
995 0x0005, 0xa006, 0x080c, 0x42e8, 0x6ab0, 0x69ac, 0x6c98, 0x6b94,
996 0x2200, 0xa105, 0x0120, 0x2200, 0xa422, 0x2100, 0xa31b, 0x6caa,
997 0x7cd2, 0x7cda, 0x6ba6, 0x7bd6, 0x7bde, 0x2300, 0xa405, 0x1130,
998 0xc6f5, 0x7e5a, 0x6eb6, 0x781b, 0x0080, 0x0005, 0x781b, 0x0080,
999 0x2200, 0xa115, 0x1118, 0x080c, 0x4208, 0x0005, 0x080c, 0x4235,
1000 0x0005, 0x080c, 0x2575, 0x0804, 0x2e3f, 0x00c6, 0x7054, 0x2060,
1001 0x6920, 0xa18c, 0xecff, 0x6922, 0x6000, 0xa084, 0xcfdf, 0x6002,
1002 0x080c, 0x3917, 0xa006, 0x2040, 0x2038, 0x080c, 0x39bf, 0x0804,
1003 0x2e33, 0x00c6, 0x7054, 0x2060, 0x2c48, 0x7aa8, 0xa294, 0x00ff,
1004 0xa286, 0x0004, 0x11d8, 0x6920, 0xd1e4, 0x1170, 0x2039, 0x0000,
1005 0x2041, 0x0000, 0x2031, 0x0000, 0xa006, 0x2010, 0x080c, 0x391a,
1006 0x080c, 0x39bf, 0x0804, 0x2e33, 0xa18c, 0xecff, 0x6922, 0x6104,
1007 0xa18c, 0xffdd, 0x6106, 0x6000, 0xc0ac, 0x6002, 0xa286, 0x0003,
1008 0x01d0, 0x6104, 0xa184, 0x0010, 0x0548, 0x080c, 0x3b91, 0x080c,
1009 0x399a, 0x88ff, 0x0518, 0x00ce, 0x789b, 0x0060, 0x2800, 0x78aa,
1010 0x7e58, 0xc695, 0x7e5a, 0xd6d4, 0x1118, 0x781b, 0x006e, 0x0005,
1011 0x781b, 0x0082, 0x0005, 0x6920, 0xd1cc, 0x0130, 0xa18c, 0xfdff,
1012 0x6922, 0x6000, 0xc0ec, 0x6002, 0x2039, 0x0000, 0x2041, 0x0000,
1013 0x2031, 0x0000, 0xa006, 0x2010, 0x080c, 0x39bf, 0xa286, 0x0001,
1014 0x0158, 0x6104, 0xa184, 0x0008, 0x01b0, 0x080c, 0x3b91, 0x080c,
1015 0x38b8, 0x88ff, 0x1980, 0x0078, 0x6920, 0xd1c4, 0x0130, 0xa18c,
1016 0xfeff, 0x6922, 0x6000, 0xc0e4, 0x6002, 0x2031, 0x0000, 0xa006,
1017 0x2010, 0x080c, 0x391a, 0x00ce, 0x7e58, 0xd6d4, 0x1118, 0x781b,
1018 0x0071, 0x0005, 0x781b, 0x0083, 0x0005, 0x0804, 0x3a57, 0x2808,
1019 0x789b, 0x0080, 0x2019, 0x0080, 0x78a8, 0xa094, 0x00ff, 0xa286,
1020 0x0001, 0x11b8, 0x2300, 0xa102, 0xa086, 0x0001, 0x0904, 0x2dad,
1021 0x7ca8, 0xa4a4, 0x00ff, 0xa480, 0x0002, 0xa300, 0x2018, 0xa102,
1022 0x0a04, 0x2dc1, 0x0904, 0x2dc1, 0x24a8, 0x7aa8, 0x1f04, 0x2e5d,
1023 0x0c18, 0xa284, 0x00f0, 0xa082, 0x0020, 0x06b8, 0x2200, 0xa082,
1024 0x0021, 0x1698, 0x7aa8, 0x8318, 0x8318, 0x2100, 0xa302, 0x0aa0,
1025 0xa286, 0x0023, 0x0950, 0x681c, 0xa084, 0xfff1, 0x681e, 0x7e58,
1026 0xa684, 0xfff1, 0xc0a5, 0x2030, 0x7e5a, 0x6008, 0xc0a5, 0x600a,
1027 0x78a0, 0xa005, 0x0904, 0x2e34, 0x20a8, 0x7998, 0x789b, 0x0060,
1028 0x78aa, 0x2011, 0x0080, 0x799a, 0x78a8, 0x7998, 0x7a9a, 0x78aa,
1029 0x7a98, 0x1f04, 0x2e8b, 0xc695, 0x7e5a, 0xd6d4, 0x1118, 0x781b,
1030 0x006e, 0x0005, 0x781b, 0x0082, 0x0005, 0x8318, 0x2100, 0xa302,
1031 0x0a04, 0x2e44, 0xa284, 0x0080, 0x1904, 0x3a5b, 0x78a0, 0xa005,
1032 0x08c8, 0x0804, 0x3a5b, 0x0804, 0x3a30, 0x7054, 0xa04d, 0x789b,
1033 0x0018, 0x78a8, 0xa084, 0x00ff, 0xa08e, 0x0001, 0x0110, 0x080c,
1034 0x2575, 0x7aa8, 0xa294, 0x00ff, 0x784b, 0x0008, 0x78a8, 0xa084,
1035 0x00ff, 0xa08a, 0x0005, 0x1a04, 0x3a30, 0x0002, 0x3a30, 0x382f,
1036 0x3a30, 0x394a, 0x3d59, 0xa282, 0x0000, 0x1110, 0x080c, 0x2575,
1037 0x080c, 0x3a61, 0x781b, 0x0082, 0x0005, 0xa282, 0x0003, 0x1110,
1038 0x080c, 0x2575, 0xd4fc, 0x11d0, 0x7060, 0xa005, 0x0110, 0x080c,
1039 0x2575, 0x6f14, 0x7772, 0xa7bc, 0x8f00, 0x080c, 0x3b95, 0x6008,
1040 0xa085, 0x0021, 0x600a, 0x8738, 0xa784, 0x001f, 0x1db0, 0x080c,
1041 0x3a64, 0x7063, 0x0002, 0x701f, 0x0009, 0x0010, 0x080c, 0x3a70,
1042 0x781b, 0x0082, 0x0005, 0xa282, 0x0004, 0x0310, 0x080c, 0x2575,
1043 0x2300, 0x0002, 0x2f05, 0x309b, 0x30d7, 0xa286, 0x0003, 0x0598,
1044 0x7200, 0x7cd8, 0x7ddc, 0x7fd0, 0x71d0, 0xd1b4, 0x0528, 0xd1bc,
1045 0x1518, 0x2001, 0x4701, 0x2004, 0xd0c4, 0x11f0, 0x7868, 0xa084,
1046 0x00ff, 0x11d0, 0xa282, 0x0002, 0x12b8, 0x00d6, 0x783b, 0x8300,
1047 0x781b, 0x0059, 0x70b8, 0xa06d, 0x68b4, 0x785a, 0x6894, 0x78d6,
1048 0x78de, 0x6898, 0x78d2, 0x78da, 0xc1b4, 0x71d2, 0x7003, 0x0030,
1049 0x00de, 0x2001, 0x0000, 0x0058, 0x783b, 0x1300, 0x781b, 0x0057,
1050 0x2001, 0x0000, 0x0020, 0x7200, 0x7cd8, 0x7ddc, 0x7fd0, 0x7046,
1051 0x68a0, 0xd0ec, 0x0118, 0x6008, 0xc08d, 0x600a, 0xa284, 0x000f,
1052 0x0002, 0x307c, 0x2f56, 0x2f53, 0x31a7, 0x3232, 0x25c9, 0x2f51,
1053 0x2f51, 0x080c, 0x2575, 0x6008, 0xc0d4, 0x600a, 0xd6e4, 0x0120,
1054 0x7044, 0xa086, 0x0014, 0x11e8, 0x080c, 0x3f4e, 0x2009, 0x0000,
1055 0x6818, 0xd0fc, 0x0108, 0x7044, 0xa086, 0x0014, 0x0168, 0x6818,
1056 0xa086, 0x0008, 0x1904, 0x303e, 0x7858, 0xd09c, 0x0904, 0x303e,
1057 0x6820, 0xd0ac, 0x0904, 0x303e, 0x681b, 0x0014, 0x2009, 0x0002,
1058 0x04a8, 0x7868, 0xa08c, 0x00ff, 0x0588, 0xa186, 0x0008, 0x1158,
1059 0x6008, 0xc0a4, 0x600a, 0x080c, 0x3772, 0x0540, 0x080c, 0x37e1,
1060 0x080c, 0x3f4e, 0x0060, 0xa186, 0x0028, 0x1500, 0x6018, 0xa005,
1061 0x0d78, 0x8001, 0x0d68, 0x8001, 0x0d58, 0x601e, 0x0c48, 0x6820,
1062 0xd084, 0x0904, 0x25c9, 0xc084, 0x6822, 0x080c, 0x26bf, 0x7058,
1063 0x00c6, 0x2060, 0x6800, 0x6002, 0x00ce, 0x6004, 0x6802, 0xa005,
1064 0x2d00, 0x1108, 0x6002, 0x6006, 0x0804, 0x25c9, 0x0016, 0x81ff,
1065 0x15f0, 0x7000, 0xa086, 0x0030, 0x05d0, 0x71d0, 0xd1bc, 0x15b8,
1066 0xd1b4, 0x11e8, 0x705c, 0xa005, 0x1590, 0x70a0, 0xa086, 0x0001,
1067 0x0570, 0x7003, 0x0000, 0x0046, 0x0056, 0x0076, 0x0066, 0x00c6,
1068 0x00d6, 0x080c, 0x25f1, 0x00de, 0x00ce, 0x006e, 0x007e, 0x005e,
1069 0x004e, 0x71d0, 0xd1b4, 0x11d8, 0x7003, 0x0040, 0x00c0, 0x080c,
1070 0x3c5b, 0x11a8, 0x781b, 0x0068, 0x00d6, 0x70b8, 0xa06d, 0x68b4,
1071 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0xc1b4,
1072 0x71d2, 0x7003, 0x0030, 0x7808, 0xc08d, 0x780a, 0x00de, 0x080c,
1073 0x30ff, 0x001e, 0x81ff, 0x0904, 0x303e, 0xa684, 0xdf00, 0x681e,
1074 0x682b, 0x0000, 0x6f14, 0xa186, 0x0002, 0x1904, 0x303f, 0x6818,
1075 0xa086, 0x0014, 0x1130, 0x2008, 0xd6e4, 0x0118, 0x7868, 0xa08c,
1076 0x00ff, 0x080c, 0x3a7a, 0x080c, 0x26ca, 0x6820, 0xd0dc, 0x1578,
1077 0x8717, 0xa294, 0x000f, 0x8213, 0x8213, 0x8213, 0xb284, 0x0600,
1078 0x0118, 0xa290, 0x4bc0, 0x0010, 0xa290, 0x4c40, 0xa290, 0x0000,
1079 0x221c, 0xd3c4, 0x0170, 0x6820, 0xd0e4, 0x0128, 0xa084, 0xefff,
1080 0x6822, 0xc3ac, 0x2312, 0x8210, 0x2204, 0xa085, 0x0038, 0x2012,
1081 0x8211, 0xd3d4, 0x0138, 0x68a0, 0xd0c4, 0x1120, 0x080c, 0x3167,
1082 0x0804, 0x25c9, 0x6008, 0xc08d, 0x600a, 0x0008, 0x692a, 0x6916,
1083 0x6818, 0xd0fc, 0x0110, 0x7044, 0x681a, 0xa68c, 0xdf00, 0x691e,
1084 0x6410, 0x84ff, 0x0168, 0x2009, 0x4702, 0x2104, 0x8001, 0x200a,
1085 0x8421, 0x6412, 0x1128, 0x2021, 0x4704, 0x2404, 0xc0a5, 0x2022,
1086 0x6018, 0xa005, 0x0118, 0x8001, 0x601a, 0x1118, 0x6008, 0xc0a4,
1087 0x600a, 0x6820, 0xd084, 0x1130, 0x6800, 0xa005, 0x1108, 0x6002,
1088 0x6006, 0x0020, 0x7058, 0x2060, 0x6800, 0x6002, 0x2061, 0x4700,
1089 0x6887, 0x0103, 0x2d08, 0x206b, 0x0000, 0x6068, 0xa005, 0x616a,
1090 0x0110, 0x2d02, 0x0008, 0x616e, 0x7200, 0xa286, 0x0030, 0x0158,
1091 0xa286, 0x0040, 0x1904, 0x25c9, 0x7003, 0x0002, 0x7048, 0x2068,
1092 0x68c4, 0x2060, 0x0005, 0x7003, 0x0002, 0x70b8, 0xa06d, 0x68bc,
1093 0x703e, 0x70b4, 0xa065, 0x68c0, 0x7056, 0x2d00, 0x704a, 0xad80,
1094 0x0009, 0x7042, 0x0005, 0xa282, 0x0004, 0x0210, 0x080c, 0x2575,
1095 0x2200, 0x0002, 0x30a6, 0x30b5, 0x30c1, 0x30b5, 0xa586, 0x1300,
1096 0x0160, 0xa586, 0x8300, 0x1d90, 0x7003, 0x0000, 0x6018, 0x8001,
1097 0x601a, 0x6008, 0xa084, 0xfbef, 0x600a, 0x7000, 0xa086, 0x0005,
1098 0x0128, 0x080c, 0x3a61, 0x781b, 0x0082, 0x0005, 0x781b, 0x0083,
1099 0x0005, 0x7890, 0x8007, 0x8001, 0xa084, 0x0007, 0xa080, 0x0018,
1100 0x789a, 0x79a8, 0xa18c, 0x00ff, 0xa186, 0x0003, 0x0128, 0xa186,
1101 0x0000, 0x0110, 0x0804, 0x3a30, 0x781b, 0x0083, 0x0005, 0x6820,
1102 0xc095, 0x6822, 0x82ff, 0x1118, 0x080c, 0x3a61, 0x0030, 0x8211,
1103 0x0110, 0x080c, 0x2575, 0x080c, 0x3a70, 0x781b, 0x0082, 0x0005,
1104 0x080c, 0x3c6e, 0x7830, 0xa084, 0x00c0, 0x1170, 0x0016, 0x3208,
1105 0xa18c, 0x0800, 0x001e, 0x0118, 0x0104, 0x30fc, 0x0010, 0x0304,
1106 0x30fc, 0x791a, 0xa006, 0x0005, 0xa085, 0x0001, 0x0005, 0xa684,
1107 0x0060, 0x1130, 0x682f, 0x0000, 0x6833, 0x0000, 0x0804, 0x3166,
1108 0xd6dc, 0x1198, 0x68b4, 0xd0dc, 0x1180, 0x6998, 0x6a94, 0x692e,
1109 0x6a32, 0x7044, 0xa005, 0x1130, 0x2200, 0xa105, 0x0904, 0x3f4e,
1110 0x7047, 0x0015, 0x0804, 0x3f4e, 0x0005, 0xd6ac, 0x01f0, 0xd6f4,
1111 0x0130, 0x682f, 0x0000, 0x6833, 0x0000, 0x0804, 0x3f4e, 0x68b4,
1112 0xa084, 0x4000, 0xa635, 0xd6f4, 0x1da0, 0x7044, 0xa005, 0x1110,
1113 0x7047, 0x0015, 0xd6dc, 0x1128, 0x68b4, 0xd0dc, 0x0110, 0x6ca8,
1114 0x6da4, 0x6c2e, 0x6d32, 0x0804, 0x3f4e, 0xd6f4, 0x0130, 0x682f,
1115 0x0000, 0x6833, 0x0000, 0x0804, 0x3f4e, 0x68b4, 0xa084, 0x4800,
1116 0xa635, 0xd6f4, 0x1da0, 0x7044, 0xa005, 0x1110, 0x7047, 0x0015,
1117 0x2408, 0x2510, 0x2700, 0x8007, 0xa084, 0x007f, 0xa108, 0xa291,
1118 0x0000, 0x692e, 0x6a32, 0x2100, 0xa205, 0x1110, 0x0804, 0x3f4e,
1119 0x7000, 0xa086, 0x0006, 0x0110, 0x0804, 0x3f4e, 0x0005, 0x6946,
1120 0x6008, 0xc0cd, 0xd3cc, 0x0108, 0xc08d, 0x600a, 0x6818, 0x683a,
1121 0x681b, 0x0006, 0x688f, 0x0000, 0x6893, 0x0000, 0x6a30, 0x692c,
1122 0x6a3e, 0x6942, 0x682f, 0x0003, 0x6833, 0x0000, 0x6837, 0x0020,
1123 0x6897, 0x0000, 0x689b, 0x0020, 0x7000, 0x0002, 0x25c9, 0x3196,
1124 0x3190, 0x318e, 0x318e, 0x318e, 0x318e, 0x318e, 0x080c, 0x2575,
1125 0x6820, 0xd084, 0x1118, 0x080c, 0x37c7, 0x0030, 0x7058, 0x2c50,
1126 0x2060, 0x6800, 0x6002, 0x2a60, 0xaea0, 0x0017, 0x2404, 0xa005,
1127 0x0110, 0x2020, 0x0cd8, 0x2d22, 0x206b, 0x0000, 0x0005, 0x080c,
1128 0x37cd, 0x080c, 0x37e1, 0x6008, 0xc0cc, 0x600a, 0x682b, 0x0000,
1129 0x789b, 0x000e, 0x6f14, 0x6938, 0x691a, 0x6944, 0x6916, 0x2009,
1130 0x0000, 0xae86, 0x4740, 0x0110, 0x2009, 0x0001, 0x080c, 0x431f,
1131 0xd6dc, 0x01c8, 0x691c, 0xc1ed, 0x691e, 0x6828, 0xa082, 0x000e,
1132 0x0290, 0x6848, 0xa084, 0x000f, 0xa086, 0x000b, 0x1160, 0x685c,
1133 0xa086, 0x0047, 0x1140, 0x2001, 0x4701, 0x2004, 0xd0ac, 0x1118,
1134 0x2700, 0x080c, 0x249e, 0x6818, 0xd0fc, 0x0140, 0x681b, 0x0000,
1135 0x7868, 0xa08c, 0x00ff, 0x0110, 0x681b, 0x001e, 0xaea0, 0x0017,
1136 0x6800, 0x2022, 0x6a3c, 0x6940, 0x6a32, 0x692e, 0x68c0, 0x2060,
1137 0x6000, 0xd0a4, 0x0580, 0x2041, 0x0021, 0x2049, 0x0005, 0x2051,
1138 0x0020, 0x00d6, 0x00f6, 0x0156, 0x0146, 0x2079, 0x4700, 0x080c,
1139 0x1bb2, 0x014e, 0x015e, 0x00fe, 0x70c8, 0x2010, 0x2009, 0x0101,
1140 0x0026, 0x2204, 0xa06d, 0x0140, 0x6814, 0xa706, 0x0110, 0x6800,
1141 0x0cc8, 0x6820, 0xc0d5, 0x6822, 0x002e, 0x8210, 0x8109, 0x1d80,
1142 0x00de, 0x7063, 0x0003, 0x707b, 0x0000, 0x7772, 0x707f, 0x000f,
1143 0x71d0, 0xc1c4, 0x71d2, 0x6818, 0xa086, 0x0002, 0x1138, 0x6817,
1144 0x0000, 0x682b, 0x0000, 0x681c, 0xc0ec, 0x681e, 0x080c, 0x1dbf,
1145 0x0804, 0x25c9, 0x7cd8, 0x7ddc, 0x7fd0, 0x080c, 0x30ff, 0x682b,
1146 0x0000, 0x789b, 0x000e, 0x6f14, 0x080c, 0x3c72, 0xa08c, 0x00ff,
1147 0x6916, 0x6818, 0xd0fc, 0x0110, 0x7044, 0x681a, 0xa68c, 0xdf00,
1148 0x691e, 0x7063, 0x0000, 0x0804, 0x25c9, 0x7000, 0xa005, 0x1110,
1149 0x0804, 0x25c9, 0xa006, 0x080c, 0x3f4e, 0x6920, 0xd1ac, 0x1110,
1150 0x681b, 0x0014, 0xa68c, 0xdf00, 0x691e, 0x682b, 0x0000, 0x6820,
1151 0xa084, 0x00ff, 0x6822, 0x7000, 0x0002, 0x25c9, 0x326f, 0x326f,
1152 0x3272, 0x3272, 0x3272, 0x326d, 0x326d, 0x080c, 0x2575, 0x6818,
1153 0x0804, 0x2f3b, 0x6008, 0xc0a4, 0x600a, 0x6817, 0x0000, 0x0804,
1154 0x3795, 0x2300, 0x0002, 0x327e, 0x3280, 0x32ce, 0x080c, 0x2575,
1155 0xd6fc, 0x1904, 0x2d5b, 0x7000, 0xa00d, 0x0002, 0x25c9, 0x3290,
1156 0x3290, 0x32ba, 0x3290, 0x32cb, 0x328e, 0x328e, 0x080c, 0x2575,
1157 0xa684, 0x0060, 0x0538, 0xa086, 0x0060, 0x1510, 0xc6ac, 0xc6f4,
1158 0xc6ed, 0x7e5a, 0x6eb6, 0x681c, 0xc0ac, 0x681e, 0xa186, 0x0002,
1159 0x0148, 0x080c, 0x3f4e, 0x69ac, 0x68b0, 0xa115, 0x0118, 0x080c,
1160 0x4235, 0x0010, 0x080c, 0x4208, 0x781b, 0x0083, 0x71d0, 0xd1b4,
1161 0x1904, 0x25c6, 0x70a0, 0xa086, 0x0001, 0x1904, 0x260d, 0x0005,
1162 0xd6ec, 0x09f0, 0x6818, 0xd0fc, 0x0170, 0xd6f4, 0x1130, 0x681b,
1163 0x0015, 0x781b, 0x0083, 0x0804, 0x25c6, 0x681b, 0x0007, 0x682f,
1164 0x0000, 0x6833, 0x0000, 0x080c, 0x3c17, 0x0005, 0x080c, 0x2575,
1165 0x2300, 0x0002, 0x32d7, 0x32f9, 0x3351, 0x080c, 0x2575, 0x7000,
1166 0x0002, 0x32e1, 0x32e3, 0x32ea, 0x32e1, 0x32e1, 0x32e1, 0x32e1,
1167 0x32e1, 0x080c, 0x2575, 0x69ac, 0x68b0, 0xa115, 0x0118, 0x080c,
1168 0x4235, 0x0010, 0x080c, 0x4208, 0x681c, 0xc0b4, 0x681e, 0x70d0,
1169 0xd0b4, 0x1904, 0x25c6, 0x70a0, 0xa086, 0x0001, 0x1904, 0x260d,
1170 0x0005, 0xd6fc, 0x1904, 0x3341, 0x7000, 0xa00d, 0x0002, 0x25c9,
1171 0x330f, 0x3309, 0x3339, 0x330f, 0x333e, 0x3307, 0x3307, 0x080c,
1172 0x2575, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0xa684,
1173 0x0060, 0x0538, 0xa086, 0x0060, 0x1510, 0xa6b4, 0xbfbf, 0xc6ed,
1174 0x7e5a, 0x6eb6, 0xa186, 0x0002, 0x0148, 0x080c, 0x3f4e, 0x69ac,
1175 0x68b0, 0xa115, 0x0118, 0x080c, 0x4235, 0x0010, 0x080c, 0x4208,
1176 0x781b, 0x0083, 0x681c, 0xc0b4, 0x681e, 0x71d0, 0xd1b4, 0x1904,
1177 0x25c6, 0x70a0, 0xa086, 0x0001, 0x1904, 0x260d, 0x0005, 0xd6ec,
1178 0x09f0, 0x6818, 0xd0fc, 0x0110, 0x681b, 0x0007, 0x781b, 0x00fb,
1179 0x0005, 0xc6fc, 0x7e5a, 0x7adc, 0x79d8, 0x6b98, 0x2100, 0xa302,
1180 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae, 0x79d2, 0x781b, 0x0083,
1181 0x0005, 0xd6dc, 0x0130, 0x782b, 0x3009, 0x781b, 0x0083, 0x0804,
1182 0x25c6, 0x7884, 0xc0ac, 0x7886, 0x78e4, 0xa084, 0x0008, 0x1150,
1183 0xa484, 0x0200, 0x0108, 0xc6f5, 0xc6dd, 0x7e5a, 0x781b, 0x0083,
1184 0x0804, 0x25c6, 0x6820, 0xc095, 0x6822, 0x080c, 0x3c02, 0xc6dd,
1185 0x080c, 0x3a61, 0x781b, 0x0082, 0x0804, 0x25c6, 0x2300, 0x0002,
1186 0x337b, 0x337d, 0x337f, 0x080c, 0x2575, 0x0804, 0x3a5b, 0x7d98,
1187 0xd6d4, 0x15a8, 0x79e4, 0xd1ac, 0x0130, 0x78ec, 0xa084, 0x0003,
1188 0x0110, 0x782b, 0x3009, 0x789b, 0x0060, 0x78ab, 0x0000, 0xa684,
1189 0xfffb, 0x785a, 0x7d9a, 0x79e4, 0xd1ac, 0x0120, 0x78ec, 0xa084,
1190 0x0003, 0x1120, 0x2001, 0x0014, 0x0804, 0x2f3b, 0x7884, 0xd0fc,
1191 0x1118, 0xa184, 0x0007, 0x0090, 0xa184, 0x0007, 0xa086, 0x0004,
1192 0x1118, 0x2001, 0x0000, 0x0050, 0xa184, 0x0007, 0xa086, 0x0005,
1193 0x0118, 0xa184, 0x0007, 0x0010, 0x2001, 0x0001, 0x04c2, 0x7a90,
1194 0xa294, 0x0007, 0x789b, 0x0060, 0x79a8, 0x81ff, 0x0568, 0x789b,
1195 0x0080, 0x7ba8, 0xa384, 0x0001, 0x11d0, 0x7ba8, 0x7ba8, 0xa386,
1196 0x0004, 0x1118, 0x2009, 0xffdf, 0x0058, 0xa386, 0x0001, 0x1118,
1197 0x2009, 0xfff7, 0x0028, 0xa386, 0x0003, 0x1148, 0x2009, 0xffef,
1198 0x00c6, 0x7054, 0x2060, 0x6004, 0xa104, 0x6006, 0x00ce, 0x789b,
1199 0x0060, 0x78ab, 0x0000, 0xa684, 0xfffb, 0x785a, 0x782b, 0x3009,
1200 0x6920, 0xa18c, 0xecff, 0x6922, 0x7d9a, 0x0804, 0x3c0b, 0x2bd1,
1201 0x2bda, 0x33f9, 0x33ff, 0x33f7, 0x33f7, 0x3c0b, 0x3c0b, 0x080c,
1202 0x2575, 0x6920, 0xa18c, 0xfcff, 0x6922, 0x0804, 0x3c11, 0x6920,
1203 0xa18c, 0xfcff, 0x6922, 0x0804, 0x3c0b, 0x79e4, 0xa184, 0x0030,
1204 0x0120, 0x78ec, 0xa084, 0x0003, 0x1570, 0x7000, 0xa086, 0x0004,
1205 0x1190, 0x7060, 0xa086, 0x0002, 0x1130, 0x2011, 0x0002, 0x2019,
1206 0x0000, 0x0804, 0x2a85, 0x7060, 0xa086, 0x0006, 0x0db0, 0x7060,
1207 0xa086, 0x0004, 0x0d90, 0x7000, 0xa086, 0x0000, 0x0904, 0x25c6,
1208 0x6920, 0xa184, 0x0420, 0x0128, 0xc1d4, 0x6922, 0x6818, 0x0804,
1209 0x2f3b, 0x6818, 0xa08e, 0x0002, 0x0120, 0xc0fd, 0x681a, 0x2001,
1210 0x0014, 0x0804, 0x2f3b, 0x7884, 0xd0fc, 0x1118, 0xa184, 0x0007,
1211 0x0090, 0xa184, 0x0007, 0xa086, 0x0004, 0x1118, 0x2001, 0x0000,
1212 0x0050, 0xa184, 0x0007, 0xa086, 0x0005, 0x0118, 0xa184, 0x0007,
1213 0x0010, 0x2001, 0x0001, 0x0002, 0x3c0b, 0x3c0b, 0x345c, 0x3c0b,
1214 0x3c4f, 0x3c4f, 0x3c0b, 0x3c0b, 0xd6bc, 0x0570, 0x7180, 0x81ff,
1215 0x0558, 0xa182, 0x000d, 0x1318, 0x7083, 0x0000, 0x0028, 0xa182,
1216 0x000c, 0x7082, 0x2009, 0x000c, 0x789b, 0x0061, 0x79aa, 0x0156,
1217 0x0136, 0x0146, 0x7084, 0x8114, 0xa210, 0x7286, 0xa080, 0x000b,
1218 0xad00, 0x2098, 0xb284, 0x0600, 0x0118, 0x20a1, 0x022b, 0x0010,
1219 0x20a1, 0x012b, 0x789b, 0x0000, 0x8108, 0x81ac, 0x53a6, 0x014e,
1220 0x013e, 0x015e, 0x0804, 0x3c11, 0xd6d4, 0x1904, 0x34cf, 0x6820,
1221 0xd084, 0x0904, 0x3c11, 0xa68c, 0x0060, 0xa684, 0x0060, 0x0120,
1222 0xa086, 0x0060, 0x1108, 0xc1f5, 0xc194, 0x795a, 0x69b6, 0x789b,
1223 0x0060, 0x78ab, 0x0000, 0x789b, 0x0061, 0x6818, 0xc0fd, 0x681a,
1224 0x78aa, 0x8008, 0x810c, 0x0904, 0x37f6, 0xa18c, 0x00f8, 0x1904,
1225 0x37f6, 0x0156, 0x0136, 0x0146, 0x0016, 0x20a1, 0x012b, 0x3208,
1226 0xa18c, 0x0600, 0x0110, 0x20a1, 0x022b, 0x001e, 0x789b, 0x0000,
1227 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x014e, 0x013e,
1228 0x015e, 0x6814, 0xc0fc, 0x8007, 0x7882, 0x0804, 0x3c11, 0x6818,
1229 0xd0fc, 0x0110, 0x681b, 0x0008, 0x080c, 0x3a61, 0x781b, 0x00ed,
1230 0x0005, 0x2300, 0x0002, 0x34e0, 0x359d, 0x34de, 0x080c, 0x2575,
1231 0x7cd8, 0x7ddc, 0x7fd0, 0x82ff, 0x1528, 0x7200, 0xa286, 0x0003,
1232 0x0904, 0x2f09, 0x71d0, 0xd1bc, 0x11f8, 0xd1b4, 0x01e8, 0x2001,
1233 0x4701, 0x2004, 0xd0c4, 0x11c0, 0x00d6, 0x783b, 0x8800, 0x781b,
1234 0x0059, 0x70b8, 0xa06d, 0x68b4, 0xc0a5, 0x785a, 0x6894, 0x78d6,
1235 0x78de, 0x6898, 0x78d2, 0x78da, 0xc1b4, 0x71d2, 0x7003, 0x0030,
1236 0x00de, 0x0030, 0x7200, 0x0020, 0x783b, 0x1800, 0x781b, 0x0057,
1237 0xa284, 0x000f, 0x0002, 0x3588, 0x3545, 0x351d, 0x2f38, 0x351b,
1238 0x3588, 0x351b, 0x351b, 0x080c, 0x2575, 0x681c, 0xd0ec, 0x0118,
1239 0x6008, 0xc08d, 0x600a, 0x6920, 0xc185, 0x6922, 0x6800, 0x6006,
1240 0xa005, 0x1108, 0x6002, 0x6008, 0xc0d4, 0x600a, 0x681c, 0xa084,
1241 0x000e, 0x1120, 0x71c8, 0xa188, 0x0100, 0x0028, 0x7030, 0x68ba,
1242 0x713c, 0x70c8, 0xa108, 0x2104, 0x6802, 0x2d0a, 0x715a, 0xd6dc,
1243 0x1120, 0xc6fc, 0x6eb6, 0x0804, 0x3588, 0x6eb6, 0xa684, 0x0060,
1244 0x1120, 0xa684, 0x7fff, 0x68b6, 0x04d8, 0xd6dc, 0x1150, 0xa684,
1245 0x7fff, 0x68b6, 0x6894, 0x68a6, 0x6898, 0x68aa, 0x080c, 0x3f4e,
1246 0x0478, 0xd6ac, 0x0140, 0xa006, 0x080c, 0x3f4e, 0x2408, 0x2510,
1247 0x69aa, 0x6aa6, 0x0068, 0x2408, 0x2510, 0x2700, 0x8007, 0xa084,
1248 0x007f, 0xa108, 0xa291, 0x0000, 0x69aa, 0x6aa6, 0x080c, 0x3f4e,
1249 0xd6fc, 0x01b0, 0xa684, 0x7fff, 0x68b6, 0x2510, 0x2408, 0xd6ac,
1250 0x1138, 0x2700, 0x8007, 0xa084, 0x007f, 0xa108, 0xa291, 0x0000,
1251 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae,
1252 0x7000, 0xa086, 0x0030, 0x1904, 0x25c9, 0x7003, 0x0002, 0x70b8,
1253 0xa06d, 0x68bc, 0x703e, 0x70b4, 0xa065, 0x68c0, 0x7056, 0x2d00,
1254 0x704a, 0xad80, 0x0009, 0x7042, 0x0005, 0xa586, 0x8800, 0x1148,
1255 0x7003, 0x0000, 0x6018, 0x8001, 0x601a, 0x6008, 0xa084, 0xfbef,
1256 0x600a, 0x0804, 0x3a5b, 0x7043, 0x0000, 0xa282, 0x0006, 0x0310,
1257 0x080c, 0x2575, 0x2300, 0x0002, 0x35b7, 0x35c8, 0x35d2, 0x2200,
1258 0x0002, 0x35bf, 0x3a5b, 0x35c1, 0x35bf, 0x3603, 0x3651, 0x080c,
1259 0x2575, 0x7a80, 0xa294, 0x0f00, 0x080c, 0x36a5, 0x0804, 0x3a30,
1260 0x00c1, 0x0002, 0x3a5b, 0x35d0, 0x35d0, 0x3603, 0x35d0, 0x3a5b,
1261 0x080c, 0x2575, 0x0071, 0x0002, 0x35dc, 0x35da, 0x35da, 0x35dc,
1262 0x35da, 0x35dc, 0x080c, 0x2575, 0x080c, 0x3a70, 0x781b, 0x0082,
1263 0x0005, 0x7000, 0xa086, 0x0002, 0x1150, 0x080c, 0x37e1, 0x0010,
1264 0x080c, 0x3f4e, 0x6008, 0xa084, 0xfbef, 0x600a, 0x0020, 0x7000,
1265 0xa086, 0x0003, 0x0da8, 0x7003, 0x0005, 0x2001, 0x8ee0, 0xae8e,
1266 0x4740, 0x0110, 0x2001, 0x8f12, 0x2068, 0x704a, 0xad80, 0x0009,
1267 0x7042, 0x2200, 0x0005, 0x7000, 0xa086, 0x0002, 0x1158, 0x70d0,
1268 0xc0b5, 0x70d2, 0x2c00, 0x70b6, 0x2d00, 0x70ba, 0x0038, 0x080c,
1269 0x3f4e, 0x0020, 0x7000, 0xa086, 0x0003, 0x0dc8, 0x7003, 0x0001,
1270 0x7a80, 0xa294, 0x0f00, 0x789b, 0x0018, 0x7ca8, 0xa484, 0x001f,
1271 0xa215, 0x2069, 0x8dc0, 0xb284, 0x0600, 0x1118, 0xc2fd, 0x2069,
1272 0x8ed0, 0x2d04, 0x2d08, 0x715a, 0xa06d, 0x0128, 0x6814, 0xa206,
1273 0x0120, 0x6800, 0x0cb8, 0x080c, 0x36a5, 0x6eb4, 0x7e5a, 0x6920,
1274 0xa184, 0x0c00, 0x0904, 0x36cb, 0x7060, 0xa086, 0x0006, 0x1128,
1275 0x7070, 0xa206, 0x1110, 0x7062, 0x707a, 0x681b, 0x0005, 0xc1ad,
1276 0x681b, 0x0005, 0xc1ad, 0xc1d4, 0x6922, 0x080c, 0x3a67, 0x0804,
1277 0x36cb, 0x7200, 0xa286, 0x0002, 0x1158, 0x70d0, 0xc0b5, 0x70d2,
1278 0x2c00, 0x70b6, 0x2d00, 0x70ba, 0x0030, 0x080c, 0x3f4e, 0x0018,
1279 0xa286, 0x0003, 0x0dd0, 0x7003, 0x0001, 0x7a80, 0xa294, 0x0f00,
1280 0x789b, 0x0018, 0x7ca8, 0xa484, 0x001f, 0xa215, 0xae86, 0x4740,
1281 0x0108, 0xc2fd, 0x79a8, 0x79a8, 0xa18c, 0x00ff, 0x2118, 0x70c8,
1282 0xa168, 0x2d04, 0x2d08, 0x715a, 0xa06d, 0x0128, 0x6814, 0xa206,
1283 0x0118, 0x6800, 0x0cb8, 0x0409, 0x6eb4, 0x6920, 0xa184, 0x0c00,
1284 0x0904, 0x36cb, 0xd0dc, 0x0178, 0x7060, 0xa086, 0x0004, 0x1140,
1285 0x7070, 0xa206, 0x1128, 0x7074, 0xa306, 0x1110, 0x7062, 0x707a,
1286 0x080c, 0x3a6d, 0x0480, 0x681b, 0x0005, 0xc1ad, 0xc1d4, 0x6922,
1287 0x080c, 0x3a67, 0x707b, 0x0000, 0x0430, 0x7003, 0x0005, 0xb284,
1288 0x0600, 0x0118, 0x2001, 0x8ee0, 0x0010, 0x2001, 0x8f12, 0x2068,
1289 0x704a, 0x0156, 0x20a9, 0x0032, 0x2003, 0x0000, 0x8000, 0x1f04,
1290 0x36b4, 0x015e, 0xb284, 0x0600, 0x0110, 0xc2fc, 0x0008, 0xc2fd,
1291 0x6a16, 0xad80, 0x0009, 0x7042, 0x68b7, 0x0700, 0x6823, 0x0800,
1292 0x6827, 0x0003, 0x0005, 0xc6ec, 0xa6ac, 0x0060, 0x0904, 0x3712,
1293 0x6b98, 0x6c94, 0x69ac, 0x68b0, 0xa105, 0x11e0, 0x7bd2, 0x7bda,
1294 0x7cd6, 0x7cde, 0xa586, 0x0060, 0x05c8, 0xd6f4, 0x1108, 0xc6ed,
1295 0xa6b4, 0xb7ff, 0x7e5a, 0x2009, 0x0083, 0xd69c, 0x0128, 0x2009,
1296 0x0082, 0x2019, 0x0000, 0x2320, 0x791a, 0xd6ec, 0x0588, 0x080c,
1297 0x4208, 0x0470, 0x68b0, 0xa31a, 0x2100, 0xa423, 0x2400, 0xa305,
1298 0x01f8, 0x7bd2, 0x7bda, 0x7cd6, 0x7cde, 0x68b0, 0xd6f4, 0x1108,
1299 0xc6ed, 0xc6f4, 0x7e5a, 0x2011, 0x0083, 0xd69c, 0x0128, 0x2011,
1300 0x0082, 0x2019, 0x0000, 0x2320, 0x7a1a, 0xd6ec, 0x0188, 0x080c,
1301 0x4235, 0x0070, 0x2019, 0x0000, 0x2320, 0x0010, 0xa6b4, 0xb7ff,
1302 0x7e5a, 0x2009, 0x0083, 0xd69c, 0x0110, 0x2009, 0x0082, 0x791a,
1303 0x68c0, 0x7056, 0x2d00, 0x704a, 0x68c4, 0x2060, 0x71d0, 0x2001,
1304 0x4701, 0x2004, 0xd0c4, 0x15c8, 0x70d4, 0xa02d, 0x01b8, 0xd1bc,
1305 0x0548, 0x7a80, 0xa294, 0x0f00, 0x70d8, 0xa206, 0x0118, 0x78e0,
1306 0xa504, 0x1558, 0x70d6, 0xc1bc, 0x71d2, 0x0438, 0x2031, 0x0001,
1307 0x852c, 0x0218, 0x8633, 0x8210, 0x0cd8, 0x0005, 0x7de0, 0xa594,
1308 0xff00, 0x0130, 0x2011, 0x0008, 0x852f, 0x0c81, 0x8637, 0x0008,
1309 0x0c69, 0x8217, 0x7880, 0xa084, 0x0f00, 0xa206, 0x0170, 0x72da,
1310 0x76d6, 0x0058, 0x7a80, 0xa294, 0x0f00, 0x70d8, 0xa236, 0x0dc0,
1311 0x78e0, 0xa534, 0x0da8, 0xc1bd, 0x71d2, 0xd1b4, 0x1904, 0x25c6,
1312 0x2300, 0xa405, 0x0904, 0x25c6, 0x70a0, 0xa086, 0x0001, 0x1904,
1313 0x260d, 0x0005, 0x6020, 0xa005, 0x0150, 0x8001, 0x6022, 0x6008,
1314 0xa085, 0x0008, 0x600a, 0x700f, 0x0100, 0x702c, 0x6026, 0x0005,
1315 0xa006, 0x080c, 0x3f4e, 0x7000, 0xa086, 0x0002, 0x0120, 0x7060,
1316 0xa086, 0x0005, 0x1150, 0x682b, 0x0000, 0x6817, 0x0000, 0x681b,
1317 0x0001, 0x6823, 0x0040, 0x681f, 0x0100, 0x7000, 0xa084, 0x000f,
1318 0x0002, 0x25c9, 0x37a6, 0x37a3, 0x37c3, 0x37af, 0x25c9, 0x37a1,
1319 0x37a1, 0x080c, 0x2575, 0x0449, 0x0411, 0x0028, 0x0431, 0x7058,
1320 0x2060, 0x6800, 0x6002, 0x080c, 0x1dbf, 0x0804, 0x25c9, 0x7060,
1321 0x7063, 0x0000, 0x707f, 0x0000, 0x0002, 0x37bf, 0x37bf, 0x37bd,
1322 0x37bd, 0x37bd, 0x37bf, 0x37bd, 0x37bf, 0x0804, 0x2a9a, 0x7063,
1323 0x0000, 0x0804, 0x25c9, 0x681b, 0x0000, 0x0804, 0x31a7, 0x6800,
1324 0xa005, 0x1108, 0x6002, 0x6006, 0x0005, 0x6410, 0x84ff, 0x0168,
1325 0x2009, 0x4702, 0x2104, 0x8001, 0x200a, 0x8421, 0x6412, 0x1128,
1326 0x2021, 0x4704, 0x2404, 0xc0a5, 0x2022, 0x6008, 0xc0a4, 0x600a,
1327 0x0005, 0x6018, 0xa005, 0x0110, 0x8001, 0x601a, 0x0005, 0x080c,
1328 0x3c6e, 0x681b, 0x0018, 0x0490, 0x080c, 0x3c6e, 0x681b, 0x0019,
1329 0x0468, 0x080c, 0x3c6e, 0x681b, 0x001a, 0x0440, 0x080c, 0x3c6e,
1330 0x681b, 0x0003, 0x0418, 0x7770, 0x080c, 0x3b95, 0x7174, 0xa18c,
1331 0x00ff, 0x3210, 0xa294, 0x0600, 0x0118, 0xa1e8, 0x8cc0, 0x0010,
1332 0xa1e8, 0x8dd0, 0x2d04, 0x2d08, 0x2068, 0xa005, 0x1118, 0x707a,
1333 0x0804, 0x25c9, 0x6814, 0x7270, 0xa206, 0x0110, 0x6800, 0x0c98,
1334 0x6800, 0x200a, 0x681b, 0x0005, 0x707b, 0x0000, 0x080c, 0x37cd,
1335 0x6820, 0xd084, 0x1110, 0x080c, 0x37c7, 0x080c, 0x37e1, 0x681f,
1336 0x0000, 0x6823, 0x0020, 0x080c, 0x1dbf, 0x0804, 0x25c9, 0xa282,
1337 0x0003, 0x1904, 0x3a35, 0x7da8, 0xa5ac, 0x00ff, 0x7ea8, 0xa6b4,
1338 0x00ff, 0x6920, 0xc1bd, 0x6922, 0xd1c4, 0x05b0, 0xc1c4, 0x6922,
1339 0xa6b4, 0x00ff, 0x0530, 0xa682, 0x0018, 0x0218, 0x0110, 0x2031,
1340 0x0018, 0xa686, 0x0010, 0x1108, 0x8630, 0x852b, 0x852b, 0x2041,
1341 0x0000, 0x080c, 0x3aee, 0x0118, 0x080c, 0x391a, 0x00a0, 0x080c,
1342 0x3aba, 0x080c, 0x3917, 0x6920, 0xc1c5, 0x6922, 0x7e58, 0xc695,
1343 0x7e5a, 0xd6d4, 0x1118, 0x781b, 0x006e, 0x0005, 0x781b, 0x0082,
1344 0x0005, 0x080c, 0x3917, 0x7e58, 0xd6d4, 0x1118, 0x781b, 0x0071,
1345 0x0005, 0x781b, 0x0083, 0x0005, 0x00c6, 0x7054, 0x2060, 0x6100,
1346 0xd1e4, 0x0598, 0x6208, 0x8217, 0xa294, 0x00ff, 0xa282, 0x0018,
1347 0x0218, 0x0110, 0x2011, 0x0018, 0x2600, 0xa202, 0x1208, 0x2230,
1348 0xa686, 0x0010, 0x1108, 0x8630, 0x6208, 0xa294, 0x00ff, 0x78ec,
1349 0xd0e4, 0x0130, 0xa282, 0x000a, 0x1240, 0x2011, 0x000a, 0x0028,
1350 0xa282, 0x000c, 0x1210, 0x2011, 0x000c, 0x2200, 0xa502, 0x1208,
1351 0x2228, 0x080c, 0x3abe, 0x852b, 0x852b, 0x2041, 0x0000, 0x080c,
1352 0x3aee, 0x0118, 0x080c, 0x391a, 0x0020, 0x080c, 0x3aba, 0x080c,
1353 0x3917, 0x7858, 0xc095, 0x785a, 0x00ce, 0x781b, 0x0082, 0x0005,
1354 0x00c6, 0x2960, 0x6000, 0xd0e4, 0x1188, 0xd0b4, 0x1150, 0x6010,
1355 0xa084, 0x000f, 0x1130, 0x6104, 0xa18c, 0xfff5, 0x6106, 0x00ce,
1356 0x0005, 0x2011, 0x0032, 0x2019, 0x0000, 0x00f0, 0x68a0, 0xd0cc,
1357 0x1dc0, 0x6208, 0xa294, 0x00ff, 0x78ec, 0xd0e4, 0x0130, 0xa282,
1358 0x000b, 0x1218, 0x2011, 0x000a, 0x0028, 0xa282, 0x000c, 0x1210,
1359 0x2011, 0x000c, 0x6308, 0x831f, 0xa39c, 0x00ff, 0xa382, 0x0018,
1360 0x0218, 0x0110, 0x2019, 0x0018, 0x78ab, 0x0001, 0x78ab, 0x0003,
1361 0x78ab, 0x0001, 0x7aaa, 0x7baa, 0xa8c0, 0x0005, 0x6820, 0xc0c5,
1362 0x6822, 0x080c, 0x3a7a, 0x00ce, 0x0005, 0x00c6, 0x2960, 0x6104,
1363 0xa18c, 0xfff5, 0x6106, 0x2011, 0x0032, 0x2019, 0x0000, 0x0000,
1364 0x78ab, 0x0001, 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7aaa, 0x7baa,
1365 0xa8c0, 0x0005, 0x6820, 0xc0c5, 0x6822, 0x00ce, 0x0005, 0xa006,
1366 0x2030, 0x2010, 0x00c6, 0x7154, 0x2160, 0x2018, 0x2008, 0xa084,
1367 0xffe0, 0xa635, 0x7e86, 0x6018, 0x789a, 0x7eae, 0x6612, 0x78a4,
1368 0xa084, 0x7770, 0xa18c, 0x000f, 0xa105, 0x2029, 0x4705, 0x252c,
1369 0xd5cc, 0x0140, 0xd3a4, 0x0110, 0xa085, 0x0800, 0xd3fc, 0x0110,
1370 0xa085, 0x8080, 0x78a6, 0x6016, 0x788a, 0xa6b4, 0x001f, 0x8637,
1371 0x8204, 0x8004, 0xa605, 0x600e, 0x6004, 0xa084, 0xffd5, 0x6006,
1372 0x00ce, 0x0005, 0xa282, 0x0002, 0x1904, 0x3a3f, 0x7aa8, 0x6920,
1373 0xc1bd, 0x6922, 0xd1cc, 0x0568, 0xc1cc, 0x6922, 0xa294, 0x00ff,
1374 0xa282, 0x0002, 0x1a04, 0x3a30, 0x080c, 0x39c1, 0x080c, 0x3917,
1375 0xa980, 0x0001, 0x200c, 0x080c, 0x3b91, 0x080c, 0x38b8, 0x88ff,
1376 0x0178, 0x789b, 0x0060, 0x2800, 0x78aa, 0x7e58, 0xc695, 0x7e5a,
1377 0xd6d4, 0x1118, 0x781b, 0x006e, 0x0005, 0x781b, 0x0082, 0x0005,
1378 0x7e58, 0xd6d4, 0x1118, 0x781b, 0x0071, 0x0005, 0x781b, 0x0083,
1379 0x0005, 0xa282, 0x0002, 0x1218, 0xa284, 0x0001, 0x0140, 0x7154,
1380 0xa188, 0x0000, 0x210c, 0xd1ec, 0x1110, 0x2011, 0x0000, 0x080c,
1381 0x3aac, 0x0479, 0x080c, 0x3917, 0x7858, 0xc095, 0x785a, 0x781b,
1382 0x0082, 0x0005, 0x00c6, 0x0026, 0x2960, 0x6000, 0x2011, 0x0001,
1383 0xd0ec, 0x1158, 0xd0bc, 0x1138, 0x6014, 0xd0b4, 0x1120, 0xc1a4,
1384 0x6106, 0xa006, 0x0088, 0x2011, 0x0000, 0x78ab, 0x0001, 0x78ab,
1385 0x0002, 0x78ab, 0x0003, 0x7aaa, 0xa8c0, 0x0004, 0x080c, 0x3a7a,
1386 0x6820, 0xa085, 0x0200, 0x6822, 0x002e, 0x00ce, 0x0005, 0x8807,
1387 0xa715, 0x00c6, 0x2009, 0x0000, 0x7054, 0x2060, 0x82ff, 0x0110,
1388 0x2009, 0x0040, 0x6018, 0xa080, 0x0002, 0x789a, 0x78a4, 0xa084,
1389 0xff9f, 0xa105, 0xc0ec, 0xd0b4, 0x1108, 0xc0ed, 0x6100, 0xd1f4,
1390 0x0110, 0xa085, 0x0020, 0x78a6, 0x6016, 0x788a, 0x6004, 0xa084,
1391 0xffef, 0x6006, 0x00ce, 0x0005, 0x0006, 0x7000, 0xa086, 0x0003,
1392 0x0110, 0x000e, 0x0010, 0x000e, 0x0498, 0xd6ac, 0x0588, 0x7888,
1393 0xa084, 0x0040, 0x0568, 0x7bb8, 0x8307, 0xa084, 0x007f, 0x1518,
1394 0x8207, 0xa084, 0x00ff, 0x0904, 0x3a57, 0xa09a, 0x0004, 0x1a04,
1395 0x3a57, 0xd6f4, 0x11d0, 0x79d8, 0x7adc, 0xa108, 0xa291, 0x0000,
1396 0x79d2, 0x79da, 0x7ad6, 0x7ade, 0x080c, 0x42e8, 0x781b, 0x0080,
1397 0xb284, 0x0600, 0x0118, 0x2001, 0x0000, 0x0010, 0x2001, 0x0001,
1398 0x080c, 0x419a, 0x0005, 0x080c, 0x2575, 0x781b, 0x0080, 0x0005,
1399 0x781b, 0x0083, 0x0005, 0x2039, 0x0000, 0x2041, 0x0000, 0x2031,
1400 0x0000, 0xa006, 0x2010, 0x080c, 0x391a, 0x080c, 0x39bf, 0x7e58,
1401 0x080c, 0x3a73, 0x781b, 0x0082, 0x0005, 0x0cd1, 0x6820, 0xc0c4,
1402 0x6822, 0x00c6, 0x7054, 0x2060, 0x080c, 0x3944, 0x00b0, 0x0c81,
1403 0x6820, 0xc0cc, 0x6822, 0x00c6, 0x7054, 0x2060, 0x080c, 0x39de,
1404 0x0060, 0x0c31, 0x6820, 0xa084, 0xecff, 0x6822, 0x00c6, 0x7054,
1405 0x2060, 0x6004, 0xa084, 0xffc5, 0x6006, 0x00ce, 0x0005, 0x0049,
1406 0x781b, 0x0082, 0x0005, 0x6827, 0x0002, 0x0049, 0x781b, 0x0082,
1407 0x0005, 0x2001, 0x0005, 0x0088, 0x2001, 0x000c, 0x0070, 0x6820,
1408 0xc0d5, 0x6822, 0x2001, 0x0006, 0x0040, 0x2001, 0x000d, 0x0028,
1409 0x2001, 0x0009, 0x0010, 0x2001, 0x0007, 0x789b, 0x007e, 0x78aa,
1410 0xc69d, 0x7e5a, 0x70d0, 0xd0b4, 0x0168, 0xc0b4, 0x70d2, 0x00c6,
1411 0x70b4, 0xa065, 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001,
1412 0x601a, 0x00ce, 0x0005, 0x0076, 0x873f, 0xa7bc, 0x000f, 0x873b,
1413 0x873b, 0x8703, 0xa0e0, 0x4bc0, 0xae8e, 0x4740, 0x0110, 0xa0e0,
1414 0x4c40, 0xa7b8, 0x0020, 0x7f9a, 0x79a4, 0xa184, 0x7fe0, 0x78ae,
1415 0x6012, 0x79a4, 0xa184, 0x773f, 0x78a6, 0x6016, 0x6004, 0xa085,
1416 0x0038, 0x6006, 0x007e, 0x0005, 0x789b, 0x0080, 0x78ab, 0x0001,
1417 0x78ab, 0x0002, 0x78ab, 0x0003, 0x7aaa, 0x789b, 0x0060, 0x78ab,
1418 0x0004, 0x0800, 0x2031, 0x0000, 0x2029, 0x0032, 0x789b, 0x0080,
1419 0x78ab, 0x0001, 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7daa, 0x7eaa,
1420 0x789b, 0x0060, 0x78ab, 0x0005, 0x0804, 0x3a7a, 0x0156, 0x8007,
1421 0xa084, 0x00ff, 0x8003, 0x8003, 0xa080, 0x0020, 0x789a, 0x79a4,
1422 0xa18c, 0xffe0, 0x2021, 0x3b7a, 0x2019, 0x0011, 0x20a9, 0x000e,
1423 0x2011, 0x0032, 0x2404, 0xa084, 0xffe0, 0xa106, 0x0128, 0x8420,
1424 0x2300, 0xa210, 0x1f04, 0x3ae2, 0x015e, 0x0005, 0x0156, 0x0804,
1425 0x3b30, 0x2021, 0x3b88, 0x20a9, 0x0009, 0x2011, 0x0029, 0xa582,
1426 0x0028, 0x0550, 0x8420, 0x95a9, 0x2011, 0x0033, 0xa582, 0x0033,
1427 0x0618, 0x8420, 0x95a9, 0x2019, 0x000a, 0x2011, 0x0065, 0x2200,
1428 0xa502, 0x02d0, 0x8420, 0x2300, 0xa210, 0x1f04, 0x3b07, 0x015e,
1429 0x0088, 0x2021, 0x3b7a, 0x2019, 0x0011, 0x20a9, 0x000e, 0x2011,
1430 0x0033, 0x2200, 0xa502, 0x0240, 0x8420, 0x2300, 0xa210, 0x1f04,
1431 0x3b19, 0x015e, 0xa006, 0x0005, 0x8211, 0x015e, 0xa582, 0x0064,
1432 0x1220, 0x7808, 0xa085, 0x0070, 0x780a, 0x2404, 0xa005, 0x0005,
1433 0xa886, 0x0002, 0x01e8, 0x2021, 0x3b66, 0x20a9, 0x000d, 0x2011,
1434 0x0028, 0xa582, 0x0028, 0x0d48, 0x8420, 0x2019, 0x0019, 0x2011,
1435 0x0033, 0x2200, 0xa502, 0x0e00, 0x8420, 0x2300, 0xa210, 0x1f04,
1436 0x3b41, 0x015e, 0x2011, 0x0184, 0xa582, 0x0185, 0x0ab0, 0x0890,
1437 0x2021, 0x3b75, 0x20a9, 0x0003, 0x2011, 0x0024, 0xa586, 0x0024,
1438 0x0960, 0x8420, 0x2011, 0x0028, 0xa586, 0x0028, 0x0930, 0x8420,
1439 0x2019, 0x0019, 0x2011, 0x0033, 0x0804, 0x3b19, 0x1021, 0x2202,
1440 0x3403, 0x4604, 0x5805, 0x6a06, 0x7c07, 0x4610, 0x4612, 0x5812,
1441 0x5a12, 0x6a14, 0x6c14, 0x6e14, 0x7e17, 0x9021, 0xb002, 0xe204,
1442 0xe210, 0xe210, 0x1209, 0x3002, 0x3202, 0x4203, 0x4403, 0x5404,
1443 0x5604, 0x6605, 0x6805, 0x7806, 0x7a06, 0x0c07, 0x0c07, 0x0e07,
1444 0x10e1, 0x330a, 0x5805, 0x5a05, 0x6a06, 0x6c06, 0x7c07, 0x7e07,
1445 0x0e00, 0x789b, 0x0080, 0xa046, 0x0005, 0xa784, 0x0f00, 0x800b,
1446 0xa784, 0x001f, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105, 0xd7fc,
1447 0x0118, 0xa0e0, 0x6cc0, 0x0010, 0xa0e0, 0x4cc0, 0x0005, 0x00e6,
1448 0x00f6, 0xd084, 0x0138, 0x2079, 0x0100, 0x2009, 0x4780, 0x2071,
1449 0x4780, 0x0030, 0x2009, 0x4740, 0x2079, 0x0200, 0x2071, 0x4740,
1450 0x2091, 0x8000, 0x2104, 0xa084, 0x000f, 0x0002, 0x3bc8, 0x3bc8,
1451 0x3bc8, 0x3bc8, 0x3bc8, 0x3bc8, 0x3bc6, 0x3bc6, 0x080c, 0x2575,
1452 0x69b4, 0xc1f5, 0xa18c, 0xff9f, 0x69b6, 0xa005, 0x0580, 0x7858,
1453 0xa084, 0xff9f, 0xa085, 0x6000, 0x785a, 0x7828, 0xa086, 0x1814,
1454 0x1530, 0x784b, 0x0004, 0x7848, 0xa084, 0x0004, 0x1de0, 0x784b,
1455 0x0008, 0x7848, 0xa084, 0x0008, 0x1de0, 0x7830, 0xd0bc, 0x11b8,
1456 0xb284, 0x0800, 0x0118, 0x0104, 0x3bff, 0x0010, 0x0304, 0x3bff,
1457 0x79e4, 0xa184, 0x0030, 0x0158, 0x78ec, 0xa084, 0x0003, 0x0138,
1458 0x681c, 0xd0ac, 0x1110, 0x00d9, 0x0010, 0x781b, 0x00fb, 0x00fe,
1459 0x00ee, 0x0005, 0x2001, 0x4701, 0x2004, 0xd0ac, 0x1118, 0x6814,
1460 0x080c, 0x249e, 0x0005, 0x781b, 0x0083, 0x0005, 0x781b, 0x0082,
1461 0x0005, 0x781b, 0x0071, 0x0005, 0x781b, 0x006e, 0x0005, 0x2009,
1462 0x4719, 0x210c, 0xa186, 0x0000, 0x0150, 0xa186, 0x0001, 0x0150,
1463 0x701f, 0x000b, 0x7063, 0x0001, 0x781b, 0x0054, 0x0005, 0x781b,
1464 0x00f3, 0x0005, 0x701f, 0x000a, 0x0005, 0x2009, 0x4719, 0x210c,
1465 0xa186, 0x0000, 0x0168, 0xa186, 0x0001, 0x0138, 0x701f, 0x000b,
1466 0x7063, 0x0001, 0x781b, 0x0054, 0x0005, 0x701f, 0x000a, 0x0005,
1467 0x781b, 0x00f2, 0x0005, 0x781b, 0x00fb, 0x0005, 0x781b, 0x00fa,
1468 0x0005, 0x781b, 0x00cc, 0x0005, 0x781b, 0x00cb, 0x0005, 0x6818,
1469 0xd0fc, 0x0110, 0x681b, 0x001d, 0x701f, 0x000b, 0x7063, 0x0001,
1470 0x781b, 0x0054, 0x0005, 0x7830, 0xa084, 0x00c0, 0x1170, 0x7808,
1471 0xc08c, 0x780a, 0xe000, 0xe000, 0xe000, 0xe000, 0x78ec, 0xa084,
1472 0x0021, 0x0118, 0x7808, 0xc08d, 0x780a, 0x0005, 0x7808, 0xc08d,
1473 0x780a, 0x0005, 0x7830, 0xa084, 0x0040, 0x1de0, 0xb284, 0x0800,
1474 0x0118, 0x1104, 0x3c80, 0x0010, 0x1304, 0x3c80, 0x78ac, 0x0005,
1475 0x7808, 0xa084, 0xfffd, 0x780a, 0xe000, 0xe000, 0xe000, 0xe000,
1476 0x78ec, 0xa084, 0x0021, 0x0140, 0xb284, 0x0800, 0x0118, 0x1104,
1477 0x3c8f, 0x0010, 0x1304, 0x3c92, 0x78ac, 0x0006, 0x7808, 0xa085,
1478 0x0002, 0x780a, 0x000e, 0x0005, 0xa784, 0x0001, 0x1904, 0x324d,
1479 0xa784, 0x0070, 0x0140, 0x00c6, 0x2d60, 0x2f68, 0x080c, 0x2490,
1480 0x2d78, 0x2c68, 0x00ce, 0xa784, 0x0008, 0x0148, 0x784b, 0x0008,
1481 0x78ec, 0xa084, 0x0003, 0x0904, 0x324d, 0x0804, 0x3c0b, 0xa784,
1482 0x0004, 0x01c8, 0x78b8, 0xa084, 0x8000, 0x01a8, 0x784b, 0x0008,
1483 0x78ec, 0xa084, 0x0003, 0x0904, 0x324d, 0x78e4, 0xa084, 0x0007,
1484 0xa086, 0x0001, 0x1140, 0x78c0, 0xa685, 0x4800, 0x2030, 0x7e5a,
1485 0x781b, 0x00fb, 0x0005, 0xa784, 0x0080, 0x0140, 0x7884, 0xd0fc,
1486 0x0128, 0x080c, 0x3a57, 0x681b, 0x0022, 0x0005, 0x681b, 0x0003,
1487 0x7858, 0xa084, 0x5f00, 0x681e, 0x682f, 0x0000, 0x6833, 0x0000,
1488 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003, 0x0904, 0x2bac, 0xb284,
1489 0x0800, 0x0110, 0x0104, 0x25c6, 0x0304, 0x25c6, 0x6b14, 0x8307,
1490 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xd3fc, 0x0118, 0xa080,
1491 0x4c40, 0x0010, 0xa080, 0x4bc0, 0x2060, 0x2048, 0x7056, 0x2a60,
1492 0x0005, 0x00c6, 0x2960, 0x6000, 0xd0ac, 0x0904, 0x3d57, 0x68a0,
1493 0xd1ac, 0x1120, 0xa084, 0x0e00, 0x0904, 0x3d55, 0x6108, 0x8117,
1494 0xa18c, 0x00ff, 0x631c, 0x832f, 0xd0dc, 0x0110, 0xa39d, 0x0001,
1495 0xd0cc, 0x11c8, 0xa584, 0x00ff, 0x0138, 0x78ec, 0xd0e4, 0x0110,
1496 0x8213, 0x00b8, 0x2029, 0x0000, 0xa182, 0x000c, 0x1290, 0x78ec,
1497 0xd0e4, 0x1118, 0x2009, 0x000c, 0x0060, 0xa182, 0x000b, 0x1248,
1498 0x2009, 0x000a, 0x0030, 0x2009, 0x0032, 0x2011, 0x0000, 0x2029,
1499 0x0000, 0x78ab, 0x0001, 0x78ab, 0x0006, 0x78ab, 0x0004, 0x79aa,
1500 0x78ab, 0x0000, 0x7aaa, 0x7baa, 0x7daa, 0xa8c0, 0x0008, 0x6820,
1501 0xa085, 0x1000, 0x6822, 0x080c, 0x3a7a, 0xa085, 0x0001, 0x00ce,
1502 0x0005, 0xa282, 0x0006, 0x1904, 0x3a49, 0x7da8, 0x7eac, 0x8637,
1503 0xa5ac, 0x00ff, 0xa6b4, 0x00ff, 0x7fac, 0x8747, 0xa7bc, 0x00ff,
1504 0xa8c4, 0x00ff, 0x6920, 0xc1bd, 0x6922, 0xd1e4, 0x0904, 0x3dcb,
1505 0xa18c, 0xecff, 0x6922, 0xa782, 0x0002, 0x1a04, 0x3a23, 0xa6b4,
1506 0x00ff, 0x0904, 0x3dc8, 0xa682, 0x0031, 0x1a04, 0x3a23, 0xa582,
1507 0x0009, 0x0a04, 0x3a23, 0xa882, 0x0003, 0x1a04, 0x3a23, 0xa886,
1508 0x0002, 0x01d0, 0xa886, 0x0000, 0x1904, 0x3a23, 0x2001, 0x000c,
1509 0x79ec, 0xd1e4, 0x0110, 0x2001, 0x000a, 0xa502, 0x1290, 0x080c,
1510 0x3a23, 0x00c6, 0x2960, 0x6004, 0xa085, 0x001a, 0x6006, 0x6000,
1511 0xc0ac, 0x6002, 0x00ce, 0x0005, 0xa786, 0x0000, 0x0904, 0x3a23,
1512 0x8634, 0xa682, 0x0018, 0x0228, 0x0120, 0x2031, 0x0018, 0x0804,
1513 0x3e19, 0xa686, 0x0010, 0x1108, 0x8630, 0x852b, 0x852b, 0x080c,
1514 0x3aee, 0x0904, 0x3a23, 0x080c, 0x391a, 0x080c, 0x39bf, 0x7e58,
1515 0xd6d4, 0x1118, 0x781b, 0x0071, 0x0005, 0x781b, 0x0083, 0x0005,
1516 0x080c, 0x3917, 0x0c90, 0xa886, 0x0002, 0x1108, 0x8634, 0x7154,
1517 0xa188, 0x0000, 0x210c, 0xd1ac, 0x0904, 0x3a23, 0xd1ec, 0x1120,
1518 0x2039, 0x0000, 0x2041, 0x0000, 0xd1e4, 0x1120, 0x2031, 0x0000,
1519 0x2041, 0x0000, 0xa782, 0x0002, 0x12c8, 0x621c, 0xa284, 0x00ff,
1520 0xa706, 0x0110, 0x2039, 0x0000, 0xa605, 0x0190, 0x6108, 0x811f,
1521 0xa39c, 0x00ff, 0x0168, 0xa302, 0x1208, 0x2330, 0x8807, 0xa705,
1522 0xa086, 0x0201, 0x0160, 0xa886, 0x0000, 0x0168, 0x2039, 0x0000,
1523 0x2041, 0x0000, 0x2031, 0x0000, 0xa006, 0x2010, 0x0070, 0xa284,
1524 0xff00, 0x1108, 0x2040, 0xa184, 0x00ff, 0xa502, 0x0108, 0x2128,
1525 0x852b, 0x852b, 0x080c, 0x3aee, 0x0d58, 0x080c, 0x391a, 0x080c,
1526 0x39bf, 0x789b, 0x0080, 0x78ab, 0x0001, 0x78ab, 0x0006, 0x78ab,
1527 0x0004, 0x7daa, 0x78ab, 0x0000, 0x7eaa, 0x7faa, 0x2800, 0x78aa,
1528 0x789b, 0x0060, 0x78ab, 0x0008, 0x6820, 0xc0e5, 0x6822, 0x080c,
1529 0x3a7a, 0x7858, 0xc095, 0x785a, 0x781b, 0x0082, 0x0005, 0x0020,
1530 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1531 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1532 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1533 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1534 0x0020, 0x0062, 0x0009, 0x0014, 0x0014, 0x9855, 0x984d, 0x0014,
1535 0x9911, 0x98ff, 0x0014, 0x0014, 0x0090, 0x00e7, 0x0100, 0x0402,
1536 0x2008, 0xf880, 0x0018, 0x0017, 0x840f, 0xd8c1, 0x0014, 0x0016,
1537 0xa20a, 0x0014, 0x300b, 0xa20c, 0x0014, 0x2500, 0x0013, 0x2500,
1538 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
1539 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0xa200, 0x3806,
1540 0x8839, 0x20c4, 0x0864, 0xa850, 0x3008, 0x28c1, 0x9d18, 0xa201,
1541 0x300c, 0x2847, 0x8161, 0x846a, 0x8000, 0x84a4, 0x1856, 0x883a,
1542 0xa808, 0x28e2, 0x9cce, 0xa8f3, 0x0864, 0xa83e, 0x300c, 0xa801,
1543 0x3008, 0x28e1, 0x9cce, 0x28a2, 0x7163, 0xa831, 0x2021, 0xa818,
1544 0xa205, 0x870c, 0xd8de, 0x64a0, 0x6de0, 0x6fc0, 0x67a4, 0x6c80,
1545 0x0212, 0xa205, 0x883d, 0x882b, 0x1814, 0x883b, 0x7027, 0x85f2,
1546 0xa737, 0xa532, 0xf003, 0x8576, 0x8677, 0xa813, 0x883e, 0xa811,
1547 0x2882, 0x7162, 0xa814, 0x280a, 0xa204, 0x64c0, 0x6de0, 0x67a0,
1548 0x6fc0, 0x1814, 0x883b, 0x7023, 0x8576, 0x8677, 0xa802, 0x7861,
1549 0x883e, 0x206a, 0x28c1, 0x9d18, 0x2042, 0x2101, 0xa8ca, 0x2902,
1550 0xa20e, 0xa80b, 0xa207, 0x0014, 0xa203, 0x8000, 0x85a4, 0x1872,
1551 0x879a, 0x883c, 0x1fe2, 0xf601, 0xa208, 0x856e, 0x7121, 0x0014,
1552 0x0704, 0x3008, 0x9cce, 0x0014, 0xa202, 0x8000, 0x85a4, 0x3009,
1553 0x84a8, 0x19e2, 0xf844, 0x856e, 0x883f, 0x08e6, 0xa8f5, 0xf861,
1554 0xa8eb, 0xf801, 0x0014, 0xf881, 0x0016, 0x85b2, 0x80f0, 0x9532,
1555 0xfaa2, 0x1de2, 0x0014, 0x8532, 0xf221, 0x0014, 0x1de2, 0x84a8,
1556 0xd6e0, 0x1fe6, 0x0014, 0x3008, 0x8000, 0x2849, 0x1011, 0xa8fc,
1557 0x3008, 0x8000, 0xa000, 0x2081, 0x2802, 0x1011, 0xa8fc, 0xa889,
1558 0x3008, 0x20a1, 0x283c, 0x1011, 0xa8fc, 0xa209, 0x0017, 0x300c,
1559 0x8000, 0x85a4, 0x1de2, 0xdac1, 0x0014, 0x0210, 0xa801, 0x0014,
1560 0x26e0, 0x873a, 0xfaa3, 0x19f2, 0x26e0, 0x18f2, 0x0014, 0xa20b,
1561 0x0014, 0xa20d, 0x3806, 0x0210, 0x9d22, 0x0704, 0xa206, 0x6865,
1562 0x817e, 0x842a, 0x1dc1, 0x8823, 0x0016, 0x6042, 0x8008, 0xa8fa,
1563 0x8160, 0x842a, 0x8180, 0xf021, 0x3008, 0x84a8, 0x11d7, 0x7042,
1564 0x20dd, 0x0011, 0x20d5, 0x8822, 0x0016, 0x0000, 0x0126, 0x70d0,
1565 0xa084, 0x4c00, 0x8004, 0x2090, 0x7204, 0x7008, 0xc09c, 0xa205,
1566 0x11a0, 0x720c, 0x82ff, 0x0128, 0x8aff, 0x1178, 0x7200, 0xd284,
1567 0x1160, 0x7804, 0xd0cc, 0x0110, 0x080c, 0x435b, 0x7007, 0x0008,
1568 0x7003, 0x0008, 0x012e, 0x2000, 0x0005, 0x7000, 0xa084, 0x0003,
1569 0x7002, 0xc69c, 0xd084, 0x0588, 0x7108, 0xe000, 0x7008, 0xa106,
1570 0x1dd8, 0xa184, 0x0003, 0x0904, 0x3fca, 0xa184, 0x01e0, 0x1904,
1571 0x3fca, 0xd1f4, 0x1d88, 0xa184, 0x3000, 0xa086, 0x1000, 0x0d60,
1572 0x2011, 0x0180, 0x710c, 0x8211, 0x0130, 0x7008, 0xd0f4, 0x1d20,
1573 0x700c, 0xa106, 0x0dc0, 0x7007, 0x0012, 0x7108, 0xe000, 0x7008,
1574 0xa106, 0x1dd8, 0xa184, 0x0003, 0x0568, 0xd194, 0x0db0, 0xd1f4,
1575 0x0548, 0x7007, 0x0002, 0x0880, 0x0428, 0x7108, 0xd1fc, 0x0130,
1576 0x080c, 0x40d6, 0x8aff, 0x0904, 0x3f54, 0x0cb8, 0x700c, 0xa08c,
1577 0x07ff, 0x01e8, 0x7004, 0xd084, 0x0178, 0x7014, 0xa005, 0x1148,
1578 0x7010, 0x7310, 0xa306, 0x1de0, 0x2300, 0xa005, 0x0128, 0xa102,
1579 0x1e20, 0x7007, 0x0010, 0x0030, 0x8aff, 0x0148, 0x080c, 0x429a,
1580 0x1de8, 0x09d8, 0x080c, 0x405c, 0x012e, 0x2000, 0x0005, 0x7204,
1581 0x7108, 0xc19c, 0x8103, 0x1218, 0x7007, 0x0002, 0x0cc0, 0xa205,
1582 0x1d88, 0x7007, 0x0008, 0x7003, 0x0008, 0x0006, 0x2001, 0x4701,
1583 0x2004, 0xd0cc, 0x0110, 0x080c, 0x435b, 0x000e, 0x012e, 0x2000,
1584 0x0005, 0x6428, 0x84ff, 0x0508, 0x2c70, 0x7004, 0xa0bc, 0x000f,
1585 0xa7b8, 0x401d, 0x273c, 0x87fb, 0x1148, 0x0210, 0x080c, 0x2575,
1586 0x609c, 0xa075, 0x0190, 0x0c88, 0x2039, 0x4012, 0x2704, 0xae68,
1587 0x6808, 0xa630, 0x680c, 0xa529, 0x8421, 0x0138, 0x8738, 0x2704,
1588 0xa005, 0x1da8, 0x709c, 0xa075, 0x1d00, 0x0005, 0x0000, 0x0005,
1589 0x0009, 0x000d, 0x0011, 0x0015, 0x0019, 0x001d, 0x0000, 0x0003,
1590 0x0009, 0x000f, 0x0015, 0x001b, 0x0000, 0x0000, 0x4012, 0x400f,
1591 0x0000, 0x0000, 0x8000, 0x0000, 0x4012, 0x0000, 0x401a, 0x4017,
1592 0x0000, 0x0000, 0x0000, 0x0000, 0x401a, 0x0000, 0x4015, 0x4015,
1593 0x0000, 0x0000, 0x8000, 0x0000, 0x4015, 0x0000, 0x401b, 0x401b,
1594 0x0000, 0x0000, 0x0000, 0x0000, 0x401b, 0x2079, 0x4700, 0x2071,
1595 0x0010, 0x7007, 0x000a, 0x7007, 0x0002, 0x7003, 0x0001, 0x2009,
1596 0x0002, 0x2071, 0x0050, 0x7007, 0x000a, 0x7007, 0x0002, 0x7003,
1597 0x0000, 0x2001, 0x01ff, 0x2004, 0xd0fc, 0x1128, 0x8109, 0x0118,
1598 0x2071, 0x0020, 0x0c80, 0x0005, 0x7004, 0x8004, 0x1a04, 0x40b2,
1599 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184, 0x01e0, 0x0120, 0x080c,
1600 0x410e, 0x0804, 0x40d2, 0x7007, 0x0012, 0x2019, 0x0000, 0x7108,
1601 0x7008, 0xa106, 0x1de0, 0xa184, 0x01e0, 0x0120, 0x080c, 0x410e,
1602 0x0804, 0x40d2, 0xa19c, 0x300c, 0xa386, 0x2004, 0x0190, 0xa386,
1603 0x0008, 0x01c0, 0x7004, 0xd084, 0x1148, 0x7108, 0x7008, 0xa106,
1604 0x1de0, 0xa184, 0x0003, 0x0110, 0x0804, 0x410e, 0xa386, 0x200c,
1605 0x19f0, 0x7200, 0x8204, 0x0230, 0x730c, 0xa384, 0x07ff, 0x0110,
1606 0x080c, 0x2575, 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184, 0x01e0,
1607 0x0118, 0x080c, 0x410e, 0x0470, 0x7007, 0x0012, 0x7000, 0xd084,
1608 0x1148, 0x7310, 0x7014, 0xa305, 0x0128, 0x710c, 0xa184, 0x07ff,
1609 0x1904, 0x405c, 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184, 0x01e0,
1610 0x0118, 0x080c, 0x410e, 0x00b0, 0x7007, 0x0012, 0x7007, 0x0008,
1611 0x7004, 0xd09c, 0x1de8, 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184,
1612 0x01e0, 0x0118, 0x080c, 0x410e, 0x0028, 0x7007, 0x0012, 0x7108,
1613 0x8103, 0x0e88, 0x7003, 0x0008, 0x0005, 0x7108, 0xa184, 0x01e0,
1614 0x15a8, 0x7108, 0xa184, 0x01e0, 0x1588, 0xa184, 0x0007, 0x0002,
1615 0x40ea, 0x40f8, 0x40e8, 0x40f8, 0x40e8, 0x4148, 0x40e8, 0x4146,
1616 0x080c, 0x2575, 0x7004, 0xa084, 0x0010, 0xc08d, 0x7006, 0x8aff,
1617 0x1118, 0x2049, 0x0000, 0x0005, 0x080c, 0x429a, 0x1de8, 0x0005,
1618 0x7004, 0xa084, 0x0010, 0xc08d, 0x7006, 0x7004, 0xd084, 0x1140,
1619 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184, 0x0003, 0x0108, 0x0030,
1620 0x8aff, 0x0118, 0x080c, 0x429a, 0x1de8, 0x0005, 0x7007, 0x0012,
1621 0x7108, 0x1d04, 0x4111, 0x2091, 0x6000, 0x1d04, 0x4115, 0x2091,
1622 0x6000, 0x7007, 0x0012, 0x7007, 0x0008, 0x7004, 0xd09c, 0x1de8,
1623 0x7007, 0x0012, 0x7108, 0xd1fc, 0x1dd8, 0x7003, 0x0000, 0x7000,
1624 0xa005, 0x1130, 0x7004, 0xa005, 0x1118, 0x700c, 0xa005, 0x0108,
1625 0x0c40, 0x2049, 0x0000, 0xb284, 0x0200, 0x0118, 0x2001, 0x0000,
1626 0x0010, 0x2001, 0x0001, 0x080c, 0x3ba7, 0x681b, 0x0002, 0x2051,
1627 0x0000, 0x0005, 0x080c, 0x2575, 0x080c, 0x2575, 0x080c, 0x4187,
1628 0x7210, 0x7114, 0x700c, 0xa09c, 0x07ff, 0x2800, 0xa300, 0xa211,
1629 0xa189, 0x0000, 0x04a1, 0x2704, 0x2c58, 0xac60, 0x6308, 0x2200,
1630 0xa322, 0x630c, 0x2100, 0xa31b, 0x2400, 0xa305, 0x0140, 0x1238,
1631 0x8412, 0x8210, 0x830a, 0xa189, 0x0000, 0x2b60, 0x0c58, 0x2b60,
1632 0x8a07, 0x0006, 0x6004, 0xd09c, 0x0118, 0xa7ba, 0x4017, 0x0010,
1633 0xa7ba, 0x400f, 0x000e, 0xa73d, 0x2c00, 0x6886, 0x6f8a, 0x6c92,
1634 0x6b8e, 0x7108, 0x7008, 0xa106, 0x1de0, 0xa184, 0x01e0, 0x0110,
1635 0x080c, 0x410e, 0x7007, 0x0012, 0x080c, 0x405c, 0x0005, 0x8a50,
1636 0x8739, 0x2704, 0xa004, 0x1168, 0x6000, 0xa064, 0x1108, 0x2d60,
1637 0x6004, 0xa084, 0x000f, 0xa080, 0x402d, 0x203c, 0x87fb, 0x090c,
1638 0x2575, 0x0005, 0x0126, 0x00d6, 0x70d0, 0xa084, 0x4c00, 0x8004,
1639 0x2090, 0x00de, 0x6884, 0x2060, 0x6888, 0x6b8c, 0x6c90, 0x8057,
1640 0xaad4, 0x00ff, 0xa084, 0x00ff, 0x0006, 0x6804, 0xa084, 0x0008,
1641 0x000e, 0x0118, 0xa0b8, 0x4017, 0x0010, 0xa0b8, 0x400f, 0xb284,
1642 0x0200, 0x0110, 0x7e20, 0x0008, 0x7e24, 0xa6b5, 0x000c, 0x681c,
1643 0xd0b4, 0x0108, 0xc685, 0x2400, 0xa305, 0x0550, 0x2c58, 0x2704,
1644 0x6104, 0xac60, 0x6000, 0xa400, 0x2048, 0xa9cc, 0x0004, 0x0118,
1645 0x080c, 0x43a3, 0x0400, 0x701a, 0x6004, 0xa301, 0x701e, 0xd19c,
1646 0x0140, 0x6010, 0xa081, 0x0000, 0x7022, 0x6014, 0xa081, 0x0000,
1647 0x7026, 0x6208, 0x2400, 0xa202, 0x7012, 0x620c, 0x2300, 0xa203,
1648 0x7016, 0x7602, 0x7007, 0x0001, 0x2b60, 0x080c, 0x42c5, 0x0010,
1649 0x080c, 0x429a, 0x1de8, 0x012e, 0x2000, 0x0005, 0x0126, 0x00d6,
1650 0x70d0, 0xa084, 0x4c00, 0x8004, 0x2090, 0x00de, 0x7007, 0x0004,
1651 0x7004, 0xd094, 0x1de8, 0x7003, 0x0008, 0x012e, 0x2000, 0x0005,
1652 0x0126, 0x00d6, 0x70d0, 0xa084, 0x4c00, 0x8004, 0x2090, 0x00de,
1653 0x7e20, 0xb284, 0x0200, 0x1108, 0x7e24, 0xa6b5, 0x000c, 0x681c,
1654 0xd0ac, 0x1118, 0xc685, 0x7003, 0x0000, 0x6828, 0x2050, 0x2d60,
1655 0x6004, 0xa0bc, 0x000f, 0xa7b8, 0x401d, 0x273c, 0x87fb, 0x1138,
1656 0x0210, 0x080c, 0x2575, 0x689c, 0xa065, 0x0120, 0x0c88, 0x080c,
1657 0x429a, 0x1de8, 0x012e, 0x2000, 0x0005, 0x0126, 0x0006, 0x0016,
1658 0x00d6, 0x70d0, 0xa084, 0x4c00, 0x8004, 0x2090, 0x7e20, 0xb284,
1659 0x0200, 0x1108, 0x7e24, 0x00de, 0x003e, 0x004e, 0xa6b5, 0x000c,
1660 0x681c, 0xd0b4, 0x0128, 0xc685, 0x7003, 0x0000, 0x7007, 0x0004,
1661 0x2049, 0x4235, 0x6828, 0xa055, 0x00d6, 0x0904, 0x4296, 0x2d70,
1662 0x2e60, 0x7004, 0xa0bc, 0x000f, 0xa7b8, 0x401d, 0x273c, 0x87fb,
1663 0x1140, 0x0210, 0x080c, 0x2575, 0x709c, 0xa075, 0x2060, 0x0570,
1664 0x0c80, 0x2704, 0xae68, 0x6808, 0xa422, 0x680c, 0xa31b, 0x0268,
1665 0x8a51, 0x1110, 0x080c, 0x2575, 0x8738, 0x2704, 0xa005, 0x1d90,
1666 0x709c, 0xa075, 0x2060, 0x01d0, 0x08e0, 0x8422, 0x8420, 0x831a,
1667 0xa399, 0x0000, 0x6908, 0x2400, 0xa122, 0x690c, 0x2300, 0xa11b,
1668 0x1210, 0x080c, 0x2575, 0xb284, 0x0200, 0x0118, 0x2071, 0x0050,
1669 0x0010, 0x2071, 0x0020, 0x00de, 0x0804, 0x41c3, 0x00de, 0x012e,
1670 0x2000, 0x0005, 0x7008, 0x0006, 0xa084, 0x01e0, 0x000e, 0x0110,
1671 0xa006, 0x0005, 0xa084, 0x0003, 0xa086, 0x0003, 0x1108, 0x0005,
1672 0x2704, 0xac78, 0x7800, 0x2f08, 0xd094, 0x1904, 0x43a6, 0x701a,
1673 0x7804, 0x701e, 0x7808, 0x7012, 0x780c, 0x7016, 0x6004, 0xd09c,
1674 0x0120, 0x7810, 0x7022, 0x7814, 0x7026, 0x7602, 0x7004, 0xa084,
1675 0x0010, 0xc085, 0x7006, 0x2079, 0x4700, 0x8a51, 0x01e8, 0x8738,
1676 0x2704, 0xa005, 0x1168, 0x609c, 0xa005, 0x01b8, 0x2060, 0x6004,
1677 0xa084, 0x000f, 0xa080, 0x401d, 0x203c, 0x87fb, 0x090c, 0x2575,
1678 0x7008, 0x0006, 0xa084, 0x01e0, 0x000e, 0x0110, 0xa006, 0x0028,
1679 0xa084, 0x0003, 0xa086, 0x0003, 0x0005, 0x2051, 0x0000, 0x0005,
1680 0x0126, 0x0006, 0x00d6, 0x70d0, 0xa084, 0x4c00, 0x8004, 0x2090,
1681 0x00de, 0x008e, 0x7108, 0xa184, 0x0003, 0x1128, 0x6828, 0xa005,
1682 0x0178, 0x0804, 0x3f6d, 0x7108, 0xd1fc, 0x0118, 0x080c, 0x40d6,
1683 0x0c88, 0x7007, 0x0010, 0x7108, 0xd1fc, 0x0de8, 0x080c, 0x40d6,
1684 0x7008, 0xa086, 0x0008, 0x1d30, 0x7000, 0xa005, 0x1d18, 0x7003,
1685 0x0000, 0x2049, 0x0000, 0x0006, 0x2001, 0x4701, 0x2004, 0xd0cc,
1686 0x0110, 0x080c, 0x435b, 0x000e, 0x012e, 0x2000, 0x0005, 0x0126,
1687 0x0146, 0x0136, 0x0156, 0x00c6, 0x00d6, 0x70d0, 0xa084, 0x4c00,
1688 0x8004, 0x2090, 0x00de, 0x2049, 0x431f, 0xad80, 0x0011, 0x20a0,
1689 0xb284, 0x0200, 0x0118, 0x2099, 0x0032, 0x0010, 0x2099, 0x0031,
1690 0x700c, 0xa084, 0x07ff, 0x682a, 0x7007, 0x0008, 0x7007, 0x0002,
1691 0x7003, 0x0001, 0x0118, 0x8000, 0x80ac, 0x53a5, 0x700c, 0xa084,
1692 0x07ff, 0x0130, 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x1de0,
1693 0x00ce, 0x2049, 0x0000, 0x7003, 0x0000, 0x015e, 0x013e, 0x014e,
1694 0x012e, 0x2000, 0x0005, 0x6814, 0xd0fc, 0x0904, 0x439e, 0x7000,
1695 0xd084, 0x05e0, 0x7e24, 0xa6b5, 0x0004, 0x7007, 0x0004, 0x7004,
1696 0xa084, 0x0004, 0x1de0, 0x7118, 0x0016, 0x711c, 0x0016, 0x7120,
1697 0x0016, 0x7124, 0x0016, 0x701b, 0x0000, 0x701f, 0x3fff, 0x7023,
1698 0x0000, 0x7027, 0x0000, 0x7013, 0x0004, 0x7017, 0x0000, 0x7602,
1699 0x7007, 0x0001, 0x2001, 0xffff, 0x2009, 0x0031, 0x200a, 0x200a,
1700 0x7108, 0x7008, 0xa106, 0x1de0, 0xd1fc, 0x0dd0, 0x002e, 0x7226,
1701 0x002e, 0x7222, 0x002e, 0x721e, 0x002e, 0x721a, 0x7007, 0x0002,
1702 0x7008, 0xa086, 0x0008, 0x0110, 0x0804, 0x410e, 0x7007, 0x0004,
1703 0x7003, 0x0000, 0x0005, 0x2049, 0x41c3, 0x0068, 0x7008, 0xa084,
1704 0x0003, 0x0110, 0xa006, 0x0005, 0xa006, 0x2020, 0x2018, 0x2c58,
1705 0x2160, 0x2049, 0x0000, 0x8b58, 0x6100, 0x2100, 0xa408, 0x711a,
1706 0x6004, 0xa301, 0x701e, 0x0006, 0x2b04, 0xa084, 0x0008, 0x0150,
1707 0x6010, 0xa081, 0x0000, 0x7022, 0x0006, 0x6014, 0xa081, 0x0000,
1708 0x7026, 0x0006, 0xa184, 0x0007, 0x2011, 0x0008, 0xa22a, 0x6208,
1709 0x2400, 0xa212, 0x0026, 0x620c, 0x2240, 0x2300, 0xa843, 0x002e,
1710 0x88ff, 0x1170, 0x2500, 0xa202, 0x0108, 0x1250, 0x2220, 0x2041,
1711 0x0000, 0x2b04, 0xd09c, 0x0110, 0x000e, 0x000e, 0x000e, 0x0450,
1712 0x7512, 0x7017, 0x0000, 0x7602, 0xa986, 0x41c3, 0x1118, 0x7007,
1713 0x0001, 0x0028, 0x7004, 0xa084, 0x0010, 0xc085, 0x7006, 0x2500,
1714 0xa100, 0x701a, 0x2b04, 0xa084, 0x0008, 0x0110, 0x000e, 0x004e,
1715 0x001e, 0xa189, 0x0000, 0x711e, 0x2b0c, 0xa18c, 0x0008, 0x0130,
1716 0xa4a1, 0x0000, 0x7422, 0xa081, 0x0000, 0x7026, 0x2500, 0xa222,
1717 0xa8c3, 0x0000, 0x7412, 0x2820, 0x7416, 0x7602, 0xa986, 0x41c3,
1718 0x1118, 0x7007, 0x0001, 0x0028, 0x7004, 0xa084, 0x0010, 0xc085,
1719 0x7006, 0x8b59, 0x2b60, 0x2079, 0x4700, 0x080c, 0x42c5, 0xa006,
1720 0x0005, 0x2091, 0x8000, 0x2091, 0x6000, 0x78ac, 0xa005, 0x1168,
1721 0x7974, 0x70d0, 0xa106, 0x1148, 0x781c, 0xa005, 0x0130, 0x781f,
1722 0x0000, 0x0e04, 0x443d, 0x2091, 0x4080, 0x2069, 0x4780, 0xc7fd,
1723 0x6800, 0xa084, 0x000f, 0x1198, 0x68d0, 0xd0b4, 0x0180, 0xd0bc,
1724 0x1170, 0x00f6, 0x2079, 0x0100, 0xd7fc, 0x1110, 0x2079, 0x0200,
1725 0x7830, 0xa084, 0x00c0, 0x1110, 0x080c, 0x22d5, 0x00fe, 0xd7fc,
1726 0x0120, 0x2069, 0x4740, 0xc7fc, 0x0c18, 0x7830, 0x8001, 0x7832,
1727 0x1904, 0x44c7, 0x7834, 0x7832, 0x2061, 0x6cc0, 0x2069, 0x4780,
1728 0xc7fd, 0x68cc, 0xa005, 0x0128, 0x8001, 0x68ce, 0x1110, 0x080c,
1729 0x4639, 0x6800, 0xa084, 0x000f, 0x0168, 0xa086, 0x0001, 0x0150,
1730 0x6840, 0xa00d, 0x0138, 0x2104, 0xa005, 0x0120, 0x8001, 0x200a,
1731 0x0904, 0x45d6, 0x6814, 0xa005, 0x01a8, 0x8001, 0x6816, 0x1190,
1732 0x68a3, 0x0001, 0x00f6, 0xd7fc, 0x1118, 0x2079, 0x0200, 0x0010,
1733 0x2079, 0x0100, 0x080c, 0x3c6e, 0x00fe, 0x6860, 0xa005, 0x0110,
1734 0x080c, 0x22d5, 0x687c, 0xa005, 0x0140, 0x8001, 0x687e, 0x1128,
1735 0x6863, 0x0000, 0x68d0, 0xc0c5, 0x68d2, 0x68d0, 0xd0fc, 0x01b0,
1736 0xc0fc, 0x68d2, 0x20a9, 0x0200, 0x6034, 0xa005, 0x0158, 0x8001,
1737 0x6036, 0x68d0, 0xc0fd, 0x68d2, 0x1128, 0x6010, 0xa005, 0x0110,
1738 0x080c, 0x22d5, 0xace0, 0x0010, 0x1f04, 0x44ac, 0xd7fc, 0x0138,
1739 0x2061, 0x4cc0, 0x2069, 0x4740, 0xc7fc, 0x0804, 0x4469, 0x0459,
1740 0x7838, 0x8001, 0x783a, 0x11a0, 0x783c, 0x783a, 0x2061, 0x4cc0,
1741 0x2069, 0x4740, 0xc7fc, 0x680c, 0xa005, 0x0110, 0x080c, 0x4543,
1742 0xd7fc, 0x1130, 0x2061, 0x6cc0, 0x2069, 0x4780, 0xc7fd, 0x0c98,
1743 0x7810, 0xd0cc, 0x0168, 0xd0ac, 0x1120, 0xd0a4, 0x0148, 0xc0ad,
1744 0x7812, 0x2091, 0x8001, 0x0e04, 0x44ef, 0x080c, 0x20a1, 0x0005,
1745 0x2091, 0x8001, 0x0005, 0x7840, 0x8001, 0x7842, 0x1904, 0x4542,
1746 0x7844, 0x7842, 0x2069, 0x4740, 0xc7fc, 0x2079, 0x0200, 0x68d4,
1747 0xa005, 0x0138, 0x7de0, 0xa504, 0x1120, 0x68d6, 0x68d0, 0xc0bc,
1748 0x68d2, 0x2079, 0x4700, 0x6810, 0xa005, 0x1110, 0x2001, 0x0101,
1749 0x8001, 0x6812, 0xd7fc, 0x0118, 0xa080, 0x8dd0, 0x0010, 0xa080,
1750 0x8cc0, 0x2040, 0x2004, 0xa065, 0x01e0, 0x6024, 0xa005, 0x01b0,
1751 0x8001, 0x6026, 0x1198, 0x6800, 0xa005, 0x0130, 0x6848, 0xac06,
1752 0x1118, 0x080c, 0x45d6, 0x0068, 0x6860, 0xa005, 0x0118, 0x6027,
1753 0x0001, 0x0020, 0x080c, 0x4584, 0x2804, 0x0c28, 0x6000, 0x2c40,
1754 0x0c10, 0xd7fc, 0x1138, 0x2069, 0x4780, 0xc7fd, 0x2079, 0x0100,
1755 0x0804, 0x44ff, 0x0005, 0x2009, 0x0000, 0x20a9, 0x0200, 0x6008,
1756 0xd09c, 0x0558, 0x6024, 0xa005, 0x0118, 0x8001, 0x6026, 0x0418,
1757 0x6008, 0xc09c, 0xd084, 0x1110, 0xd0ac, 0x01c0, 0x600a, 0x6004,
1758 0xa005, 0x01d8, 0x00d6, 0x00c6, 0x0016, 0x2068, 0x6010, 0x8001,
1759 0x6012, 0x080c, 0x37c7, 0x2d00, 0x2c68, 0x2060, 0x080c, 0x1c02,
1760 0x080c, 0x1db2, 0x001e, 0x00ce, 0x00de, 0x0038, 0xc0bd, 0x600a,
1761 0xa18d, 0x0001, 0x0010, 0xa18d, 0x0100, 0xace0, 0x0010, 0x1f04,
1762 0x4547, 0xa184, 0x0001, 0x0130, 0xa18c, 0xfffe, 0x690e, 0x080c,
1763 0x22d5, 0x0008, 0x690e, 0x0005, 0x2c00, 0x687a, 0x6714, 0x6f72,
1764 0x6017, 0x0000, 0x602b, 0x0000, 0x601b, 0x0006, 0x60b4, 0xa084,
1765 0x5f00, 0x601e, 0x6020, 0xa084, 0x00ff, 0xa085, 0x0060, 0x6022,
1766 0x6000, 0x2042, 0x2069, 0x4780, 0xd7fc, 0x1110, 0x2069, 0x4740,
1767 0x6858, 0xac06, 0x1110, 0x2800, 0x685a, 0x080c, 0x1b9a, 0x6818,
1768 0xa005, 0x0110, 0x8001, 0x681a, 0x6808, 0xc0a4, 0x680a, 0x6810,
1769 0x7908, 0x8109, 0x790a, 0x8001, 0x1310, 0x080c, 0x2575, 0x6812,
1770 0x1118, 0x7910, 0xc1a5, 0x7912, 0x602f, 0x0000, 0x6033, 0x0000,
1771 0x2c68, 0x080c, 0x1dbf, 0xd7fc, 0x1118, 0x2069, 0x4740, 0x0010,
1772 0x2069, 0x4780, 0x6910, 0xa184, 0x0100, 0x2001, 0x0006, 0x1118,
1773 0x6976, 0x2001, 0x0004, 0x080c, 0x22cb, 0x0005, 0x00d6, 0x6948,
1774 0x2160, 0xd7fc, 0x1118, 0x2069, 0x0200, 0x0010, 0x2069, 0x0100,
1775 0x080c, 0x2490, 0x601b, 0x0006, 0x6858, 0xa084, 0x5f00, 0x601e,
1776 0x6020, 0xa084, 0x00ff, 0xa085, 0x0048, 0x6022, 0x602f, 0x0000,
1777 0x6033, 0x0000, 0x6808, 0xa084, 0xfffd, 0x680a, 0x6830, 0xd0b4,
1778 0x01b0, 0x684b, 0x0004, 0x20a9, 0x0014, 0x6848, 0xd094, 0x0110,
1779 0x1f04, 0x45fd, 0x684b, 0x0009, 0x20a9, 0x0014, 0x6848, 0xd084,
1780 0x0110, 0x1f04, 0x4606, 0x20a9, 0x00fa, 0x1f04, 0x460d, 0x681b,
1781 0x0054, 0x00de, 0x6863, 0x0007, 0x0005, 0x2079, 0x4700, 0x00e1,
1782 0x0089, 0x00a9, 0x2009, 0x0002, 0x2069, 0x4780, 0x680f, 0x0000,
1783 0x6813, 0x0000, 0x6817, 0x0000, 0x8109, 0x0118, 0x2069, 0x4740,
1784 0x0ca8, 0x0005, 0x2019, 0x00a3, 0x7b3a, 0x7b3e, 0x0005, 0x2019,
1785 0x0033, 0x7b42, 0x7b46, 0x0005, 0x2019, 0x32dd, 0x7b32, 0x7b36,
1786 0x0005, 0x6a4c, 0xa285, 0x0000, 0x01f0, 0x6950, 0x6bbc, 0xa300,
1787 0x00c6, 0x2164, 0x6304, 0x83ff, 0x1138, 0x8211, 0x0148, 0x8108,
1788 0xa11a, 0x0eb8, 0x69bc, 0x0ca8, 0x68cf, 0x000a, 0x00ce, 0x0005,
1789 0x694c, 0x6abc, 0x2264, 0x6008, 0xc0b5, 0x600a, 0x8210, 0x8109,
1790 0x1dc8, 0x694e, 0x00ce, 0x0005, 0x0016, 0x1d04, 0x465d, 0x2091,
1791 0x6000, 0x1d04, 0x4661, 0x2091, 0x6000, 0x70ec, 0xd0dc, 0x1118,
1792 0xd0d4, 0x0190, 0x00a0, 0xae8e, 0x0100, 0x0138, 0x7814, 0xc0f5,
1793 0xc0c5, 0x7816, 0xd0d4, 0x1580, 0x0460, 0x7814, 0xc0fd, 0xc0c5,
1794 0x7816, 0xd0d4, 0x1548, 0x0428, 0xd0e4, 0x0904, 0x46c4, 0x1d04,
1795 0x467f, 0x2091, 0x6000, 0x2009, 0x000c, 0x1d04, 0x4685, 0x2091,
1796 0x6000, 0x8109, 0x1dd0, 0x70e4, 0xa084, 0x01ff, 0xa086, 0x01ff,
1797 0x1110, 0x70ec, 0x08c0, 0xae8e, 0x0100, 0x0128, 0x7814, 0xc0f4,
1798 0xd0fc, 0x1130, 0x0020, 0x7814, 0xc0fc, 0xd0f4, 0x1108, 0xc0c4,
1799 0x7816, 0x7804, 0xd08c, 0x0500, 0x00c6, 0x2061, 0x0000, 0x6018,
1800 0xd084, 0x11b8, 0xae86, 0x0200, 0x00e6, 0x2071, 0x0010, 0x0120,
1801 0x70db, 0x0001, 0x78e4, 0x0018, 0x70db, 0x0000, 0x78e0, 0x70c6,
1802 0x70c3, 0x800e, 0x601b, 0x0001, 0x2091, 0x4080, 0x00ee, 0x00ce,
1803 0x0018, 0x00ce, 0x681f, 0x000c, 0x001e, 0x70a0, 0x70a2, 0x0005,
1804 0x0c26
1805};
1806#ifdef UNIQUE_FW_NAME
1807static unsigned short fw12160i_length01 = 0x36c9;
1808#else
1809static unsigned short risc_code_length01 = 0x36c9;
1810#endif
1811
diff --git a/drivers/scsi/ql1280_fw.h b/drivers/scsi/ql1280_fw.h
deleted file mode 100644
index 784f2a04bf2..00000000000
--- a/drivers/scsi/ql1280_fw.h
+++ /dev/null
@@ -1,2048 +0,0 @@
1/*****************************************************************************
2 * QLOGIC LINUX SOFTWARE
3 *
4 * QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x
5 * Copyright (C) 2001 Qlogic Corporation (www.qlogic.com)
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation; either version 2, or (at your option) any
10 * later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 *****************************************************************************/
18
19/************************************************************************
20 * --- ISP1240/1080/1280 Initiator Firmware --- *
21 * 32 LUN Support *
22 ************************************************************************/
23
24
25/*
26 * Firmware Version 8.15.11 (10:20 Jan 02, 2002)
27 */
28
29#ifdef UNIQUE_FW_NAME
30static unsigned char fw1280ei_version_str[] = {8,15,11};
31#else
32static unsigned char firmware_version[] = {8,15,11};
33#endif
34
35#ifdef UNIQUE_FW_NAME
36#define fw1280ei_VERSION_STRING "8.15.11"
37#else
38#define FW_VERSION_STRING "8.15.11"
39#endif
40
41#ifdef UNIQUE_FW_NAME
42static unsigned short fw1280ei_addr01 = 0x1000 ;
43#else
44static unsigned short risc_code_addr01 = 0x1000 ;
45#endif
46
47#ifdef UNIQUE_FW_NAME
48static unsigned short fw1280ei_code01[] = {
49#else
50static unsigned short risc_code01[] = {
51#endif
52 0x0078, 0x1041, 0x0000, 0x3e2e, 0x0000, 0x2043, 0x4f50, 0x5952,
53 0x4947, 0x4854, 0x2031, 0x3939, 0x312c, 0x3139, 0x3932, 0x2c31,
54 0x3939, 0x332c, 0x3139, 0x3934, 0x2051, 0x4c4f, 0x4749, 0x4320,
55 0x434f, 0x5250, 0x4f52, 0x4154, 0x494f, 0x4e00, 0x2049, 0x5350,
56 0x3132, 0x3430, 0x2046, 0x6972, 0x6d77, 0x6172, 0x6520, 0x2056,
57 0x6572, 0x7369, 0x6f6e, 0x2030, 0x382e, 0x3135, 0x2020, 0x2043,
58 0x7573, 0x746f, 0x6d65, 0x7220, 0x4e6f, 0x2e20, 0x3030, 0x2050,
59 0x726f, 0x6475, 0x6374, 0x204e, 0x6f2e, 0x2020, 0x3030, 0x2020,
60 0x2400, 0x20c9, 0x98ff, 0x2001, 0x04fc, 0x2004, 0xa086, 0x1080,
61 0x00c0, 0x1054, 0x2071, 0x0100, 0x70a0, 0x70a2, 0x20c1, 0x0010,
62 0x2089, 0x1374, 0x0078, 0x106d, 0x2001, 0x04fc, 0x2004, 0xa086,
63 0x1280, 0x00c0, 0x1069, 0x2071, 0x0200, 0x70a0, 0x70a2, 0x2071,
64 0x0100, 0x70a0, 0x70a2, 0x20c1, 0x0010, 0x2089, 0x13f8, 0x0078,
65 0x106d, 0x20c1, 0x0020, 0x2089, 0x131c, 0x2071, 0x0010, 0x70c3,
66 0x0004, 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020, 0x70d3,
67 0x0008, 0x2001, 0x04fe, 0x70d6, 0x20c1, 0x0021, 0x2019, 0x0000,
68 0x2009, 0xfeff, 0x2100, 0x200b, 0xa5a5, 0xa1ec, 0x7fff, 0x2d64,
69 0x206b, 0x0a0a, 0xaddc, 0x3fff, 0x2b54, 0x205b, 0x5050, 0x2114,
70 0xa286, 0xa5a5, 0x0040, 0x10a4, 0xa386, 0x000f, 0x0040, 0x10a0,
71 0x2c6a, 0x2a5a, 0x20c1, 0x0020, 0x2019, 0x000f, 0x0078, 0x1080,
72 0x2c6a, 0x2a5a, 0x0078, 0x10a2, 0x2c6a, 0x2a5a, 0x2130, 0x2128,
73 0xa1a2, 0x4f00, 0x8424, 0x8424, 0x8424, 0x8424, 0x8424, 0x8424,
74 0xa192, 0x9900, 0x2009, 0x0000, 0x2001, 0x0032, 0x1078, 0x20c1,
75 0x2218, 0x2079, 0x4f00, 0x2fa0, 0x2408, 0x2011, 0x0000, 0x20a9,
76 0x0040, 0x42a4, 0x8109, 0x00c0, 0x10bf, 0x2009, 0xff00, 0x3400,
77 0xa102, 0x0048, 0x10cf, 0x0040, 0x10cf, 0x20a8, 0x42a4, 0x2001,
78 0x04fc, 0x2004, 0xa086, 0x1080, 0x00c0, 0x10e5, 0x2071, 0x0100,
79 0x0d7e, 0x2069, 0x4f40, 0x1078, 0x4db0, 0x0d7f, 0x7810, 0xc0ed,
80 0x7812, 0x781b, 0x0064, 0x0078, 0x110a, 0x2001, 0x04fc, 0x2004,
81 0xa086, 0x1280, 0x00c0, 0x1105, 0x7814, 0xc0ed, 0xc0d5, 0x7816,
82 0x781b, 0x0064, 0x2071, 0x0200, 0x0d7e, 0x2069, 0x4f40, 0x1078,
83 0x4db0, 0x2069, 0x4f80, 0x2071, 0x0100, 0x1078, 0x4db0, 0x7814,
84 0xc0d4, 0x7816, 0x0d7f, 0x0078, 0x110a, 0x7814, 0xc0e5, 0x7816,
85 0x781b, 0x003c, 0x7eca, 0x7cc2, 0x7bc6, 0x7867, 0x0000, 0x7800,
86 0xc08d, 0x7802, 0x2031, 0x0030, 0x78af, 0x0101, 0x7823, 0x0002,
87 0x7827, 0x0002, 0x2009, 0x0002, 0x2069, 0x4f40, 0x681b, 0x0003,
88 0x6823, 0x0007, 0x6827, 0x00fa, 0x682b, 0x0008, 0x682f, 0x0028,
89 0x6837, 0x0000, 0x683b, 0x0006, 0x6833, 0x0008, 0x683f, 0x0000,
90 0x8109, 0x0040, 0x115e, 0x68d3, 0x000a, 0x68c3, 0x4fc0, 0x2079,
91 0x4f00, 0x7814, 0xd0e4, 0x00c0, 0x1144, 0xd0ec, 0x00c0, 0x1148,
92 0x68d7, 0x7329, 0x0078, 0x114a, 0x68d7, 0x730d, 0x0078, 0x114a,
93 0x68d7, 0x732d, 0x68c7, 0x54c0, 0x68cb, 0x53c0, 0x68cf, 0x94c0,
94 0x68ab, 0x9744, 0x68af, 0x9749, 0x68b3, 0x9744, 0x68b7, 0x9744,
95 0x68a7, 0x0001, 0x2069, 0x4f80, 0x0078, 0x111e, 0x68d3, 0x000a,
96 0x68c3, 0x51c0, 0x7814, 0xd0e4, 0x00c0, 0x116a, 0x68d7, 0x7439,
97 0x0078, 0x116c, 0x68d7, 0x7419, 0x68c7, 0x74c0, 0x68cb, 0x5440,
98 0x68cf, 0x95d0, 0x68ab, 0x9749, 0x68af, 0x974e, 0x68b3, 0x9749,
99 0x68b7, 0x9749, 0x68a7, 0x0001, 0x7810, 0xd0ec, 0x00c0, 0x11c2,
100 0x7814, 0xd0e4, 0x00c0, 0x11b4, 0x0e7e, 0x2069, 0x53c0, 0x2071,
101 0x0200, 0x70ec, 0xd0e4, 0x00c0, 0x1195, 0x2019, 0x0c0c, 0x2021,
102 0x000c, 0x1078, 0x2050, 0x0078, 0x119b, 0x2019, 0x0c0a, 0x2021,
103 0x000a, 0x1078, 0x2050, 0x2069, 0x5440, 0x2071, 0x0100, 0x70ec,
104 0xd0e4, 0x00c0, 0x11ab, 0x2019, 0x0c0c, 0x2021, 0x000c, 0x1078,
105 0x2050, 0x0078, 0x11b1, 0x2019, 0x0c0a, 0x2021, 0x000a, 0x1078,
106 0x2050, 0x0e7f, 0x0078, 0x11db, 0x2019, 0x0c0c, 0x2021, 0x000c,
107 0x2069, 0x53c0, 0x1078, 0x2050, 0x2069, 0x5440, 0x1078, 0x2050,
108 0x0078, 0x11db, 0x2069, 0x53c0, 0x0e7e, 0x2071, 0x0100, 0x70ec,
109 0xd0e4, 0x00c0, 0x11d4, 0x2019, 0x0c0c, 0x2021, 0x000c, 0x1078,
110 0x2050, 0x0e7f, 0x0078, 0x11db, 0x2019, 0x0c0a, 0x2021, 0x000a,
111 0x1078, 0x2050, 0x0e7f, 0x2011, 0x0002, 0x2069, 0x54c0, 0x2009,
112 0x0002, 0x20a9, 0x0100, 0x6837, 0x0000, 0x680b, 0x0040, 0x7bc8,
113 0xa386, 0xfeff, 0x00c0, 0x11f2, 0x6817, 0x0100, 0x681f, 0x0064,
114 0x0078, 0x11f6, 0x6817, 0x0064, 0x681f, 0x0002, 0xade8, 0x0010,
115 0x00f0, 0x11e3, 0x8109, 0x00c0, 0x11e1, 0x8211, 0x0040, 0x1204,
116 0x2069, 0x74c0, 0x0078, 0x11df, 0x1078, 0x26a2, 0x1078, 0x4712,
117 0x1078, 0x1e1b, 0x1078, 0x4d42, 0x2091, 0x2100, 0x2079, 0x4f00,
118 0x7810, 0xd0ec, 0x0040, 0x1218, 0x2071, 0x0020, 0x0078, 0x121a,
119 0x2071, 0x0050, 0x2091, 0x2200, 0x2079, 0x4f00, 0x2071, 0x0020,
120 0x2091, 0x2300, 0x2079, 0x4f00, 0x7810, 0xd0ec, 0x0040, 0x122c,
121 0x2079, 0x0100, 0x0078, 0x122e, 0x2079, 0x0200, 0x2071, 0x4f40,
122 0x2091, 0x2400, 0x2079, 0x0100, 0x2071, 0x4f80, 0x2091, 0x2000,
123 0x2079, 0x4f00, 0x2071, 0x0010, 0x3200, 0xa085, 0x303d, 0x2090,
124 0x2071, 0x0010, 0x70c3, 0x0000, 0x0090, 0x124d, 0x70c0, 0xa086,
125 0x0002, 0x00c0, 0x124d, 0x1078, 0x15c1, 0x2039, 0x0000, 0x7810,
126 0xd0ec, 0x00c0, 0x12cf, 0x1078, 0x148e, 0x78ac, 0xa005, 0x00c0,
127 0x126b, 0x0068, 0x1261, 0x786c, 0xa065, 0x0040, 0x1261, 0x1078,
128 0x23dc, 0x1078, 0x20e8, 0x0068, 0x1278, 0x786c, 0xa065, 0x0040,
129 0x126b, 0x1078, 0x23dc, 0x0068, 0x1278, 0x2009, 0x4f47, 0x2011,
130 0x4f87, 0x2104, 0x220c, 0xa105, 0x0040, 0x1278, 0x1078, 0x1f51,
131 0x2071, 0x4f40, 0x70a4, 0xa005, 0x0040, 0x129d, 0x7450, 0xa485,
132 0x0000, 0x0040, 0x129d, 0x2079, 0x0200, 0x2091, 0x8000, 0x72d4,
133 0xa28c, 0x303d, 0x2190, 0x1078, 0x2bb1, 0x2091, 0x8000, 0x2091,
134 0x303d, 0x0068, 0x129d, 0x2079, 0x4f00, 0x786c, 0xa065, 0x0040,
135 0x129d, 0x2071, 0x0010, 0x1078, 0x23dc, 0x00e0, 0x12a5, 0x2079,
136 0x4f00, 0x2071, 0x0010, 0x1078, 0x4b16, 0x2071, 0x4f80, 0x70a4,
137 0xa005, 0x0040, 0x12bd, 0x7050, 0xa025, 0x0040, 0x12bd, 0x2079,
138 0x0100, 0x2091, 0x8000, 0x72d4, 0xa28c, 0x303d, 0x2190, 0x1078,
139 0x2bb1, 0x2091, 0x8000, 0x2091, 0x303d, 0x2079, 0x4f00, 0x2071,
140 0x0010, 0x0068, 0x12c9, 0x786c, 0xa065, 0x0040, 0x12c9, 0x1078,
141 0x23dc, 0x00e0, 0x1253, 0x1078, 0x4b16, 0x0078, 0x1253, 0x1078,
142 0x148e, 0x78ac, 0xa005, 0x00c0, 0x12e7, 0x0068, 0x12dd, 0x786c,
143 0xa065, 0x0040, 0x12dd, 0x1078, 0x23dc, 0x1078, 0x20e8, 0x0068,
144 0x12f1, 0x786c, 0xa065, 0x0040, 0x12e7, 0x1078, 0x23dc, 0x0068,
145 0x12f1, 0x2009, 0x4f47, 0x2104, 0xa005, 0x0040, 0x12f1, 0x1078,
146 0x1f51, 0x2071, 0x4f40, 0x70a4, 0xa005, 0x0040, 0x130c, 0x7450,
147 0xa485, 0x0000, 0x0040, 0x130c, 0x2079, 0x0100, 0x2091, 0x8000,
148 0x72d4, 0xa28c, 0x303d, 0x2190, 0x1078, 0x2bb1, 0x2091, 0x8000,
149 0x2091, 0x303d, 0x2079, 0x4f00, 0x2071, 0x0010, 0x0068, 0x1316,
150 0x786c, 0xa065, 0x0040, 0x1316, 0x1078, 0x23dc, 0x00e0, 0x12cf,
151 0x1078, 0x4b16, 0x0078, 0x12cf, 0x133c, 0x133c, 0x133e, 0x133e,
152 0x134b, 0x134b, 0x134b, 0x134b, 0x1356, 0x1356, 0x1363, 0x1363,
153 0x134b, 0x134b, 0x134b, 0x134b, 0x133c, 0x133c, 0x133e, 0x133e,
154 0x134b, 0x134b, 0x134b, 0x134b, 0x1356, 0x1356, 0x1363, 0x1363,
155 0x134b, 0x134b, 0x134b, 0x134b, 0x0078, 0x133c, 0x007e, 0x107e,
156 0x127e, 0x2091, 0x2400, 0x1078, 0x29d1, 0x127f, 0x107f, 0x007f,
157 0x2091, 0x8001, 0x007c, 0x007e, 0x107e, 0x127e, 0x1078, 0x13c8,
158 0x127f, 0x107f, 0x007f, 0x2091, 0x8001, 0x007c, 0x007e, 0x107e,
159 0x127e, 0x2091, 0x2300, 0x1078, 0x29d1, 0x127f, 0x107f, 0x007f,
160 0x2091, 0x8001, 0x007c, 0x007e, 0x107e, 0x127e, 0x2091, 0x2300,
161 0x1078, 0x29d1, 0x2091, 0x2400, 0x1078, 0x29d1, 0x127f, 0x107f,
162 0x007f, 0x2091, 0x8001, 0x007c, 0x1394, 0x1394, 0x1396, 0x1396,
163 0x13a3, 0x13a3, 0x13a3, 0x13a3, 0x13ae, 0x13ae, 0x1396, 0x1396,
164 0x13a3, 0x13a3, 0x13a3, 0x13a3, 0x13af, 0x13af, 0x13af, 0x13af,
165 0x13af, 0x13af, 0x13af, 0x13af, 0x13af, 0x13af, 0x13af, 0x13af,
166 0x13af, 0x13af, 0x13af, 0x13af, 0x0078, 0x1394, 0x007e, 0x107e,
167 0x127e, 0x2091, 0x2300, 0x1078, 0x29d1, 0x127f, 0x107f, 0x007f,
168 0x2091, 0x8001, 0x007c, 0x007e, 0x107e, 0x127e, 0x1078, 0x13d5,
169 0x127f, 0x107f, 0x007f, 0x2091, 0x8001, 0x007c, 0x007c, 0x107e,
170 0x127e, 0x0d7e, 0x0e7e, 0x0f7e, 0x007e, 0x2071, 0x0100, 0x2069,
171 0x4f40, 0x2079, 0x4f00, 0x70ec, 0xa084, 0x1c00, 0x78e2, 0x1078,
172 0x4db0, 0x007f, 0x0f7f, 0x0e7f, 0x0d7f, 0x127f, 0x107f, 0x007c,
173 0x3c00, 0xa084, 0x0007, 0x0079, 0x13cd, 0x13de, 0x13de, 0x13e0,
174 0x13e0, 0x13e5, 0x13e5, 0x13ea, 0x13ea, 0x3c00, 0xa084, 0x0003,
175 0x0079, 0x13da, 0x13de, 0x13de, 0x13f3, 0x13f3, 0x1078, 0x29b2,
176 0x2091, 0x2200, 0x1078, 0x47ec, 0x007c, 0x2091, 0x2100, 0x1078,
177 0x47ec, 0x007c, 0x2091, 0x2100, 0x1078, 0x47ec, 0x2091, 0x2200,
178 0x1078, 0x47ec, 0x007c, 0x2091, 0x2100, 0x1078, 0x47ec, 0x007c,
179 0x1418, 0x1418, 0x141a, 0x141a, 0x1427, 0x1427, 0x1427, 0x1427,
180 0x1432, 0x1432, 0x143f, 0x143f, 0x1427, 0x1427, 0x1427, 0x1427,
181 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450,
182 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450, 0x1450,
183 0x0078, 0x1418, 0x007e, 0x107e, 0x127e, 0x2091, 0x2400, 0x1078,
184 0x29d1, 0x127f, 0x107f, 0x007f, 0x2091, 0x8001, 0x007c, 0x007e,
185 0x107e, 0x127e, 0x1078, 0x13c8, 0x127f, 0x107f, 0x007f, 0x2091,
186 0x8001, 0x007c, 0x007e, 0x107e, 0x127e, 0x2091, 0x2300, 0x1078,
187 0x29d1, 0x127f, 0x107f, 0x007f, 0x2091, 0x8001, 0x007c, 0x007e,
188 0x107e, 0x127e, 0x2091, 0x2300, 0x1078, 0x29d1, 0x2091, 0x2400,
189 0x1078, 0x29d1, 0x127f, 0x107f, 0x007f, 0x2091, 0x8001, 0x007c,
190 0x007e, 0x107e, 0x127e, 0x0d7e, 0x0e7e, 0x0f7e, 0x2079, 0x4f00,
191 0x2071, 0x0200, 0x2069, 0x4f40, 0x3d00, 0xd08c, 0x0040, 0x1466,
192 0x70ec, 0xa084, 0x1c00, 0x78e2, 0x1078, 0x4db0, 0x3d00, 0xd084,
193 0x0040, 0x1474, 0x2069, 0x4f80, 0x2071, 0x0100, 0x70ec, 0xa084,
194 0x1c00, 0x78e6, 0x1078, 0x4db0, 0x0f7f, 0x0e7f, 0x0d7f, 0x127f,
195 0x107f, 0x007f, 0x007c, 0x7008, 0x800b, 0x00c8, 0x1489, 0x7007,
196 0x0002, 0xa08c, 0x01e0, 0x00c0, 0x148a, 0xd09c, 0x0040, 0x1489,
197 0x087a, 0x097a, 0x70c3, 0x4002, 0x0078, 0x15c4, 0x0068, 0x151a,
198 0x2061, 0x0000, 0x6018, 0xd084, 0x00c0, 0x151a, 0x7828, 0xa005,
199 0x00c0, 0x149e, 0x0010, 0x151b, 0x0078, 0x151a, 0x7910, 0xd1f4,
200 0x0040, 0x14a4, 0x0078, 0x14b9, 0x7914, 0xd1ec, 0x0040, 0x14bd,
201 0xd0fc, 0x0040, 0x14b3, 0x007e, 0x1078, 0x1dae, 0x007f, 0x0040,
202 0x14bd, 0x0078, 0x14b9, 0x007e, 0x1078, 0x1da1, 0x007f, 0x0040,
203 0x14bd, 0x2001, 0x4007, 0x0078, 0x15c3, 0x7910, 0xd0fc, 0x00c0,
204 0x14c7, 0x2061, 0x4f40, 0xc19c, 0xc7fc, 0x0078, 0x14cb, 0x2061,
205 0x4f80, 0xc19d, 0xc7fd, 0x6064, 0xa005, 0x00c0, 0x151a, 0x7912,
206 0x6082, 0x7828, 0xc0fc, 0xa086, 0x0018, 0x00c0, 0x14db, 0x0c7e,
207 0x1078, 0x1b85, 0x0c7f, 0x782b, 0x0000, 0x607c, 0xa065, 0x0040,
208 0x1500, 0x0c7e, 0x609c, 0x1078, 0x1e90, 0x0c7f, 0x609f, 0x0000,
209 0x1078, 0x1cd5, 0x2009, 0x0018, 0x6087, 0x0103, 0x7810, 0x007e,
210 0x84ff, 0x00c0, 0x14f6, 0x85ff, 0x0040, 0x14f8, 0xc0c5, 0x7812,
211 0x1078, 0x1dbb, 0x007f, 0x7812, 0x00c0, 0x1514, 0x1078, 0x1e0d,
212 0x7810, 0xd09c, 0x00c0, 0x1508, 0x2061, 0x4f40, 0x0078, 0x150c,
213 0x2061, 0x4f80, 0xc09c, 0x7812, 0x607f, 0x0000, 0x60d4, 0xd0dc,
214 0x0040, 0x1518, 0xc0dc, 0x60d6, 0x2001, 0x4005, 0x0078, 0x15c3,
215 0x0078, 0x15c1, 0x007c, 0x7810, 0xd0f4, 0x0040, 0x1523, 0x2001,
216 0x4007, 0x0078, 0x15c3, 0xa006, 0x70c2, 0x70c6, 0x70ca, 0x70ce,
217 0x70da, 0x70c0, 0xa03d, 0xa08a, 0x0040, 0x00c8, 0x1531, 0x0079,
218 0x1538, 0x2100, 0xa08a, 0x0040, 0x00c8, 0x15cf, 0x0079, 0x1578,
219 0x15c1, 0x1617, 0x15e0, 0x164f, 0x1687, 0x1687, 0x15d7, 0x1ced,
220 0x1692, 0x15cf, 0x15e4, 0x15e6, 0x15e8, 0x15ea, 0x1cf2, 0x15cf,
221 0x16a0, 0x16fd, 0x1ba5, 0x1ce7, 0x15ec, 0x19ea, 0x1a2c, 0x1a67,
222 0x1ab8, 0x19a5, 0x19b2, 0x19c6, 0x19d9, 0x17eb, 0x15cf, 0x1734,
223 0x1741, 0x174d, 0x1759, 0x176f, 0x177b, 0x177e, 0x178a, 0x1796,
224 0x179e, 0x17d3, 0x17df, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x17f8,
225 0x180a, 0x1826, 0x185c, 0x1884, 0x1894, 0x1897, 0x18c8, 0x18f9,
226 0x190b, 0x1974, 0x1984, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x1994,
227 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x1d17, 0x1d1d, 0x15cf,
228 0x15cf, 0x15cf, 0x1d21, 0x1d66, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
229 0x1611, 0x1681, 0x169a, 0x16f7, 0x1b9f, 0x15cf, 0x15cf, 0x1b68,
230 0x15cf, 0x1d6a, 0x1d09, 0x1d13, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
231 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
232 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
233 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
234 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf, 0x15cf,
235 0x72ca, 0x71c6, 0x2001, 0x4006, 0x0078, 0x15c3, 0x73ce, 0x72ca,
236 0x71c6, 0x2001, 0x4000, 0x70c2, 0x0068, 0x15c4, 0x2061, 0x0000,
237 0x601b, 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x007c, 0x70c3,
238 0x4001, 0x0078, 0x15c4, 0x70c3, 0x4006, 0x0078, 0x15c4, 0x2099,
239 0x0041, 0x20a1, 0x0041, 0x20a9, 0x0005, 0x53a3, 0x0078, 0x15c1,
240 0x70c4, 0x70c3, 0x0004, 0x007a, 0x0078, 0x15c1, 0x0078, 0x15c1,
241 0x0078, 0x15c1, 0x0078, 0x15c1, 0x2091, 0x8000, 0x70c3, 0x0004,
242 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf, 0x2020, 0x70d3, 0x0008,
243 0x2001, 0x000f, 0x70d6, 0x2079, 0x0000, 0x781b, 0x0001, 0x2031,
244 0x0030, 0x2059, 0x1000, 0x2029, 0x041a, 0x2051, 0x0445, 0x2061,
245 0x0447, 0x20c1, 0x0020, 0x2091, 0x5000, 0x2091, 0x4080, 0x0078,
246 0x0418, 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0078, 0x161a, 0x2029,
247 0x0000, 0x2520, 0x71d0, 0x72c8, 0x73cc, 0x70c4, 0x20a0, 0x2099,
248 0x0030, 0x7003, 0x0001, 0x7007, 0x0006, 0x731a, 0x721e, 0x7422,
249 0x7526, 0x2021, 0x0040, 0x81ff, 0x0040, 0x15c1, 0xa182, 0x0040,
250 0x00c8, 0x1634, 0x2120, 0xa006, 0x2008, 0x8403, 0x7012, 0x7007,
251 0x0004, 0x7007, 0x0001, 0x7008, 0xd0fc, 0x0040, 0x163b, 0x7007,
252 0x0002, 0xa084, 0x01e0, 0x0040, 0x1649, 0x70c3, 0x4002, 0x0078,
253 0x15c4, 0x24a8, 0x53a5, 0x0078, 0x162b, 0x0078, 0x15c1, 0x2029,
254 0x0000, 0x2520, 0x71d0, 0x72c8, 0x73cc, 0x70c4, 0x2098, 0x20a1,
255 0x0030, 0x7003, 0x0000, 0x7007, 0x0006, 0x731a, 0x721e, 0x7422,
256 0x7526, 0x2021, 0x0040, 0x7007, 0x0006, 0x81ff, 0x0040, 0x15c1,
257 0xa182, 0x0040, 0x00c8, 0x166e, 0x2120, 0xa006, 0x2008, 0x8403,
258 0x7012, 0x24a8, 0x53a6, 0x7007, 0x0001, 0x7008, 0xd0fc, 0x0040,
259 0x1675, 0xa084, 0x01e0, 0x0040, 0x1663, 0x70c3, 0x4002, 0x0078,
260 0x15c4, 0x75d8, 0x74dc, 0x75da, 0x74de, 0x0078, 0x1652, 0x71c4,
261 0x70c8, 0x2114, 0xa79e, 0x0004, 0x00c0, 0x168f, 0x200a, 0x72ca,
262 0x0078, 0x15c0, 0x70c7, 0x0008, 0x70cb, 0x000f, 0x70cf, 0x000b,
263 0x0078, 0x15c1, 0x75d8, 0x76dc, 0x75da, 0x76de, 0x0078, 0x16a3,
264 0x2029, 0x0000, 0x2530, 0x70c4, 0x72c8, 0x73cc, 0x74d0, 0x70c6,
265 0x72ca, 0x73ce, 0x74d2, 0xa005, 0x0040, 0x16f2, 0xa40a, 0x0040,
266 0x16b3, 0x00c8, 0x16bc, 0x8001, 0x7872, 0xa084, 0xfc00, 0x0040,
267 0x16c0, 0x78ac, 0xc085, 0x78ae, 0x2001, 0x4005, 0x0078, 0x15c3,
268 0x7b7e, 0x7a7a, 0x7e86, 0x7d82, 0x7c76, 0xa48c, 0xff00, 0x0040,
269 0x16d8, 0x8407, 0x8004, 0x8004, 0x810c, 0x810c, 0x810f, 0xa118,
270 0xa291, 0x0000, 0xa6b1, 0x0000, 0xa581, 0x0000, 0x0078, 0x16e2,
271 0x8407, 0x8004, 0x8004, 0xa318, 0xa291, 0x0000, 0xa6b1, 0x0000,
272 0xa581, 0x0000, 0x731a, 0x721e, 0x7622, 0x7026, 0xa605, 0x0040,
273 0x16ec, 0x7a10, 0xc2c5, 0x7a12, 0x78ac, 0xa084, 0xfffc, 0x78ae,
274 0x0078, 0x16f5, 0x78ac, 0xc085, 0x78ae, 0x0078, 0x15c1, 0x75d8,
275 0x76dc, 0x75da, 0x76de, 0x0078, 0x1700, 0x2029, 0x0000, 0x2530,
276 0x70c4, 0x72c8, 0x73cc, 0x74d4, 0x70c6, 0x72ca, 0x73ce, 0x74d6,
277 0xa005, 0x0040, 0x172f, 0xa40a, 0x0040, 0x1710, 0x00c8, 0x1719,
278 0x8001, 0x7892, 0xa084, 0xfc00, 0x0040, 0x171d, 0x78ac, 0xc0c5,
279 0x78ae, 0x2001, 0x4005, 0x0078, 0x15c3, 0x7a9a, 0x7b9e, 0x7da2,
280 0x7ea6, 0x2600, 0xa505, 0x0040, 0x1728, 0x7a10, 0xc2c5, 0x7a12,
281 0x7c96, 0x78ac, 0xa084, 0xfcff, 0x78ae, 0x0078, 0x1732, 0x78ac,
282 0xc0c5, 0x78ae, 0x0078, 0x15c1, 0x2009, 0x0000, 0x786c, 0xa065,
283 0x0040, 0x173e, 0x8108, 0x6000, 0x0078, 0x1737, 0x7ac4, 0x0078,
284 0x15bf, 0x2009, 0x4f48, 0x210c, 0x7810, 0xd0ec, 0x00c0, 0x15c0,
285 0x2011, 0x4f88, 0x2214, 0x0078, 0x15bf, 0x2009, 0x4f49, 0x210c,
286 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x2011, 0x4f89, 0x2214, 0x0078,
287 0x15bf, 0x2061, 0x4f40, 0x6128, 0x622c, 0x8214, 0x8214, 0x8214,
288 0x7810, 0xd0ec, 0x00c0, 0x176d, 0x2061, 0x4f80, 0x6328, 0x73da,
289 0x632c, 0x831c, 0x831c, 0x831c, 0x73de, 0x0078, 0x15bf, 0x2009,
290 0x4f4c, 0x210c, 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x2011, 0x4f8c,
291 0x2214, 0x0078, 0x15bf, 0x7918, 0x0078, 0x15c0, 0x2009, 0x4f4d,
292 0x210c, 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x2011, 0x4f8d, 0x2214,
293 0x0078, 0x15bf, 0x2009, 0x4f4e, 0x210c, 0x7810, 0xd0ec, 0x00c0,
294 0x15c0, 0x2011, 0x4f8e, 0x2214, 0x0078, 0x15bf, 0x7920, 0x7810,
295 0xd0ec, 0x00c0, 0x15c0, 0x7a24, 0x0078, 0x15bf, 0x71c4, 0xd1fc,
296 0x00c0, 0x17a6, 0x2011, 0x53c0, 0x0078, 0x17a8, 0x2011, 0x5440,
297 0x8107, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa268, 0x6a00,
298 0x6804, 0xd09c, 0x0040, 0x17b7, 0x6b08, 0x0078, 0x17b8, 0x6b0c,
299 0xd1fc, 0x00c0, 0x17bf, 0x2021, 0x023b, 0x0078, 0x17c1, 0x2021,
300 0x013b, 0x2424, 0x7914, 0xd1e4, 0x0040, 0x17cd, 0xd4c4, 0x00c0,
301 0x17cc, 0xc4d5, 0x0078, 0x17cd, 0xc4dd, 0xa4a4, 0x1c00, 0x74de,
302 0x71c4, 0x0078, 0x15be, 0x77c4, 0x1078, 0x1e2b, 0x2091, 0x8000,
303 0x6b1c, 0x6a14, 0x2091, 0x8001, 0x2708, 0x0078, 0x15be, 0x2061,
304 0x4f40, 0x6118, 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x2061, 0x4f80,
305 0x6218, 0x0078, 0x15bf, 0x77c4, 0x1078, 0x1e2b, 0x2091, 0x8000,
306 0x6908, 0x6a18, 0x6b10, 0x77da, 0x2091, 0x8001, 0x0078, 0x15be,
307 0x71c4, 0x2110, 0xa294, 0x000f, 0xa282, 0x0010, 0x00c8, 0x15b9,
308 0x1078, 0x27c6, 0xa384, 0x4000, 0x0040, 0x1808, 0xa295, 0x0020,
309 0x0078, 0x15be, 0x71c4, 0x2100, 0xc0bc, 0xa082, 0x0010, 0x00c8,
310 0x15b9, 0xd1bc, 0x00c0, 0x1819, 0x2011, 0x4f48, 0x2204, 0x0078,
311 0x181d, 0x2011, 0x4f88, 0x2204, 0xc0bd, 0x007e, 0x2100, 0xc0bc,
312 0x2012, 0x1078, 0x2723, 0x017f, 0x0078, 0x15c0, 0x71c4, 0x2021,
313 0x4f49, 0x2404, 0x70c6, 0x2019, 0x0000, 0x0078, 0x1835, 0x71c8,
314 0x2021, 0x4f89, 0x2404, 0x70ca, 0xc3fd, 0x2011, 0x1854, 0x20a9,
315 0x0008, 0x2204, 0xa106, 0x0040, 0x1844, 0x8210, 0x00f0, 0x1839,
316 0x71c4, 0x72c8, 0x0078, 0x15b8, 0xa292, 0x1854, 0x027e, 0x2122,
317 0x017f, 0x1078, 0x2744, 0x7810, 0xd0ec, 0x00c0, 0x1852, 0xd3fc,
318 0x0040, 0x182f, 0x0078, 0x15c1, 0x03e8, 0x00fa, 0x01f4, 0x02ee,
319 0x0004, 0x0001, 0x0002, 0x0003, 0x2061, 0x4f40, 0x6128, 0x622c,
320 0x8214, 0x8214, 0x8214, 0x70c4, 0x602a, 0x70c8, 0x8003, 0x8003,
321 0x8003, 0x602e, 0x7810, 0xd0ec, 0x00c0, 0x1882, 0x027e, 0x017e,
322 0x2061, 0x4f80, 0x6128, 0x622c, 0x8214, 0x8214, 0x8214, 0x70d8,
323 0x602a, 0x70dc, 0x8003, 0x8003, 0x8003, 0x602e, 0x71da, 0x72de,
324 0x017f, 0x027f, 0x0078, 0x15bf, 0x2061, 0x4f40, 0x6130, 0x70c4,
325 0x6032, 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x2061, 0x4f80, 0x6230,
326 0x70c8, 0x6032, 0x0078, 0x15bf, 0x7918, 0x0078, 0x15c0, 0x71c4,
327 0xa184, 0xffcf, 0x0040, 0x18a3, 0x7810, 0xd0ec, 0x00c0, 0x15b9,
328 0x72c8, 0x0078, 0x15b8, 0x2011, 0x4f4d, 0x2204, 0x2112, 0x007e,
329 0x2019, 0x0000, 0x1078, 0x27ab, 0x7810, 0xd0ec, 0x0040, 0x18b3,
330 0x017f, 0x0078, 0x15c0, 0x71c8, 0xa184, 0xffcf, 0x0040, 0x18bc,
331 0x2110, 0x71c4, 0x0078, 0x15b8, 0x2011, 0x4f8d, 0x2204, 0x2112,
332 0x007e, 0xc3fd, 0x1078, 0x27ab, 0x027f, 0x017f, 0x0078, 0x15bf,
333 0x71c4, 0xa182, 0x0010, 0x0048, 0x18d4, 0x7810, 0xd0ec, 0x00c0,
334 0x15b9, 0x72c8, 0x0078, 0x15b8, 0x2011, 0x4f4e, 0x2204, 0x007e,
335 0x2112, 0x2019, 0x0000, 0x1078, 0x2789, 0x7810, 0xd0ec, 0x0040,
336 0x18e4, 0x017f, 0x0078, 0x15c0, 0x71c8, 0xa182, 0x0010, 0x0048,
337 0x18ed, 0x2110, 0x71c4, 0x0078, 0x15b8, 0x2011, 0x4f8e, 0x2204,
338 0x007e, 0x2112, 0xc3fd, 0x1078, 0x2789, 0x027f, 0x017f, 0x0078,
339 0x15bf, 0x71c4, 0x72c8, 0xa184, 0xfffd, 0x00c0, 0x15b8, 0xa284,
340 0xfffd, 0x00c0, 0x15b8, 0x2100, 0x7920, 0x7822, 0x2200, 0x7a24,
341 0x7826, 0x0078, 0x15bf, 0x71c4, 0xd1fc, 0x00c0, 0x1913, 0x2011,
342 0x53c0, 0x0078, 0x1915, 0x2011, 0x5440, 0x8107, 0xa084, 0x000f,
343 0x8003, 0x8003, 0x8003, 0xa268, 0x2019, 0x0000, 0x72c8, 0xd2bc,
344 0x0040, 0x1924, 0xa39d, 0x0010, 0xd2b4, 0x0040, 0x1929, 0xa39d,
345 0x0008, 0x2091, 0x8000, 0x6800, 0x007e, 0xa226, 0x0040, 0x1948,
346 0x6a02, 0xd4ec, 0x0040, 0x1935, 0xc3a5, 0xd4e4, 0x0040, 0x1939,
347 0xc39d, 0xd4f4, 0x0040, 0x1948, 0x810f, 0xd2f4, 0x0040, 0x1944,
348 0x1078, 0x2808, 0x0078, 0x1948, 0x1078, 0x27e6, 0x0078, 0x1948,
349 0x72cc, 0x6808, 0xa206, 0x0040, 0x196a, 0xa2a4, 0x00ff, 0x7814,
350 0xd0e4, 0x00c0, 0x195b, 0xa482, 0x0028, 0x0048, 0x1967, 0x0040,
351 0x1967, 0x0078, 0x195f, 0xa482, 0x0043, 0x0048, 0x1967, 0x71c4,
352 0x71c6, 0x027f, 0x72ca, 0x2091, 0x8001, 0x0078, 0x15ba, 0x6a0a,
353 0xa39d, 0x000a, 0x6804, 0xa305, 0x6806, 0x027f, 0x6b0c, 0x71c4,
354 0x2091, 0x8001, 0x0078, 0x15be, 0x77c4, 0x1078, 0x1e2b, 0x2091,
355 0x8000, 0x6a14, 0x6b1c, 0x2091, 0x8001, 0x70c8, 0x6816, 0x70cc,
356 0x681e, 0x2708, 0x0078, 0x15be, 0x70c4, 0x2061, 0x4f40, 0x6118,
357 0x601a, 0x7810, 0xd0ec, 0x00c0, 0x15c0, 0x70c8, 0x2061, 0x4f80,
358 0x6218, 0x601a, 0x0078, 0x15bf, 0x71c4, 0x72c8, 0x73cc, 0xa182,
359 0x0010, 0x00c8, 0x15b9, 0x1078, 0x282a, 0xa384, 0x4000, 0x0040,
360 0x19a3, 0xa295, 0x0020, 0x0078, 0x15be, 0x77c4, 0x1078, 0x1e2b,
361 0x2091, 0x8000, 0x6a08, 0xc28d, 0x6a0a, 0x2091, 0x8001, 0x2708,
362 0x0078, 0x15bf, 0x77c4, 0x1078, 0x1e2b, 0x2091, 0x8000, 0x6a08,
363 0xa294, 0xfff9, 0x6a0a, 0x6804, 0xa005, 0x0040, 0x19c1, 0x1078,
364 0x266f, 0x2091, 0x8001, 0x2708, 0x0078, 0x15bf, 0x77c4, 0x1078,
365 0x1e2b, 0x2091, 0x8000, 0x6a08, 0xc295, 0x6a0a, 0x6804, 0xa005,
366 0x0040, 0x19d4, 0x1078, 0x266f, 0x2091, 0x8001, 0x2708, 0x0078,
367 0x15bf, 0x77c4, 0x2041, 0x0001, 0x2049, 0x0005, 0x2051, 0x0020,
368 0x2091, 0x8000, 0x1078, 0x1e46, 0x2091, 0x8001, 0x2708, 0x6a08,
369 0x0078, 0x15bf, 0x77c4, 0x7814, 0xd0e4, 0x00c0, 0x19fe, 0xd7fc,
370 0x0040, 0x19f8, 0x1078, 0x1dae, 0x0040, 0x19fe, 0x0078, 0x15c3,
371 0x1078, 0x1da1, 0x0040, 0x19fe, 0x0078, 0x15c3, 0x73c8, 0x72cc,
372 0x77c6, 0x73ca, 0x72ce, 0x1078, 0x1ecd, 0x00c0, 0x1a28, 0x6818,
373 0xa005, 0x0040, 0x1a22, 0x2708, 0x077e, 0x1078, 0x285a, 0x077f,
374 0x00c0, 0x1a22, 0x2001, 0x0015, 0xd7fc, 0x00c0, 0x1a1b, 0x2061,
375 0x4f40, 0x0078, 0x1a1e, 0xc0fd, 0x2061, 0x4f80, 0x782a, 0x2091,
376 0x8001, 0x007c, 0x2091, 0x8001, 0x2001, 0x4005, 0x0078, 0x15c3,
377 0x2091, 0x8001, 0x0078, 0x15c1, 0x77c4, 0x7814, 0xd0e4, 0x00c0,
378 0x1a40, 0xd7fc, 0x0040, 0x1a3a, 0x1078, 0x1dae, 0x0040, 0x1a40,
379 0x0078, 0x15c3, 0x1078, 0x1da1, 0x0040, 0x1a40, 0x0078, 0x15c3,
380 0x77c6, 0x2041, 0x0021, 0x2049, 0x0005, 0x2051, 0x0020, 0x2091,
381 0x8000, 0x1078, 0x1e46, 0x2009, 0x0016, 0xd7fc, 0x00c0, 0x1a54,
382 0x2061, 0x4f40, 0x0078, 0x1a57, 0x2061, 0x4f80, 0xc1fd, 0x6067,
383 0x0003, 0x607f, 0x0000, 0x6776, 0x6083, 0x000f, 0x792a, 0x61d4,
384 0xc1dc, 0x61d6, 0x1078, 0x266f, 0x2091, 0x8001, 0x007c, 0x77c8,
385 0x77ca, 0x77c4, 0x77c6, 0x7814, 0xd0e4, 0x00c0, 0x1a7e, 0xd7fc,
386 0x0040, 0x1a78, 0x1078, 0x1dae, 0x0040, 0x1a7e, 0x0078, 0x15c3,
387 0x1078, 0x1da1, 0x0040, 0x1a7e, 0x0078, 0x15c3, 0xa7bc, 0xff00,
388 0x2091, 0x8000, 0x2009, 0x0017, 0xd7fc, 0x00c0, 0x1a8b, 0x2061,
389 0x4f40, 0x0078, 0x1a8e, 0x2061, 0x4f80, 0xc1fd, 0x607f, 0x0000,
390 0x6067, 0x0002, 0x6776, 0x6083, 0x000f, 0x792a, 0x61d4, 0xc1dc,
391 0x61d6, 0x1078, 0x266f, 0x2091, 0x8001, 0x2041, 0x0021, 0x2049,
392 0x0005, 0x2051, 0x0010, 0x2091, 0x8000, 0x70c8, 0xa005, 0x0040,
393 0x1aac, 0x60d4, 0xc0fd, 0x60d6, 0x1078, 0x1e46, 0x70c8, 0x6836,
394 0x8738, 0xa784, 0x001f, 0x00c0, 0x1aac, 0x2091, 0x8001, 0x007c,
395 0x2019, 0x0000, 0x7814, 0xd0e4, 0x00c0, 0x1ace, 0x72c8, 0xd284,
396 0x0040, 0x1ac8, 0x1078, 0x1dae, 0x0040, 0x1ace, 0x0078, 0x15c3,
397 0x1078, 0x1da1, 0x0040, 0x1ace, 0x0078, 0x15c3, 0x72c8, 0x72ca,
398 0x78ac, 0xa084, 0x0003, 0x00c0, 0x1af9, 0x2039, 0x0000, 0xd284,
399 0x0040, 0x1adb, 0xc7fd, 0x2041, 0x0021, 0x2049, 0x0004, 0x2051,
400 0x0008, 0x1078, 0x1e2b, 0x2091, 0x8000, 0x6808, 0xc0d4, 0xa80d,
401 0x690a, 0x2091, 0x8001, 0x8738, 0xa784, 0x001f, 0x00c0, 0x1ae1,
402 0xa7bc, 0xff00, 0x873f, 0x8738, 0x873f, 0xa784, 0x0f00, 0x00c0,
403 0x1ae1, 0x2091, 0x8000, 0x72c8, 0xd284, 0x00c0, 0x1b0b, 0x7810,
404 0xd0ec, 0x0040, 0x1b07, 0x2069, 0x0100, 0x0078, 0x1b0d, 0x2069,
405 0x0200, 0x0078, 0x1b0d, 0x2069, 0x0100, 0x6808, 0xa084, 0xfffd,
406 0x680a, 0x6830, 0xd0b4, 0x0040, 0x1b2d, 0x684b, 0x0004, 0x20a9,
407 0x0014, 0x6848, 0xd094, 0x0040, 0x1b1f, 0x00f0, 0x1b19, 0x684b,
408 0x0009, 0x20a9, 0x0014, 0x6848, 0xd084, 0x0040, 0x1b29, 0x00f0,
409 0x1b23, 0x20a9, 0x00fa, 0x00f0, 0x1b2b, 0x2079, 0x4f00, 0x2009,
410 0x0018, 0x72c8, 0xd284, 0x00c0, 0x1b39, 0x2061, 0x4f40, 0x0078,
411 0x1b3c, 0x2061, 0x4f80, 0xc1fd, 0x607f, 0x0000, 0x792a, 0x6067,
412 0x0001, 0x6083, 0x000f, 0x60a7, 0x0000, 0x60a8, 0x60b2, 0x60b6,
413 0x60d4, 0xd0b4, 0x0040, 0x1b58, 0xc0b4, 0x60d6, 0x0c7e, 0x60b8,
414 0xa065, 0x6008, 0xc0d4, 0x600a, 0x6018, 0x8001, 0x601a, 0x0c7f,
415 0x60d4, 0xa084, 0x77ff, 0x60d6, 0x78ac, 0xc08d, 0x78ae, 0x83ff,
416 0x0040, 0x1b63, 0x007c, 0x681b, 0x0047, 0x2091, 0x8001, 0x007c,
417 0x73cc, 0x1078, 0x1aba, 0x69ec, 0x6a48, 0xa185, 0x1800, 0x684a,
418 0xa185, 0x0040, 0x68ee, 0x73cc, 0x2021, 0x0004, 0x20a9, 0x09ff,
419 0x00f0, 0x1b78, 0x8421, 0x00c0, 0x1b76, 0x8319, 0x00c0, 0x1b74,
420 0x69ee, 0x6a4a, 0x2091, 0x8001, 0x007c, 0xd7fc, 0x00c0, 0x1b8c,
421 0x2069, 0x4f40, 0x0078, 0x1b8e, 0x2069, 0x4f80, 0x71c4, 0x71c6,
422 0x6916, 0x81ff, 0x00c0, 0x1b96, 0x68a7, 0x0001, 0x78ac, 0xc08c,
423 0x78ae, 0xd084, 0x00c0, 0x1b9e, 0x1078, 0x1f2d, 0x007c, 0x75d8,
424 0x74dc, 0x75da, 0x74de, 0x0078, 0x1ba7, 0xa02e, 0x2520, 0x71c4,
425 0x73c8, 0x72cc, 0x71c6, 0x73ca, 0x72ce, 0x2079, 0x4f00, 0x7dde,
426 0x7cda, 0x7bd6, 0x7ad2, 0x1078, 0x1e04, 0x0040, 0x1cd1, 0x20a9,
427 0x0005, 0x20a1, 0x4f14, 0x2091, 0x8000, 0x41a1, 0x2091, 0x8001,
428 0x2009, 0x0040, 0x1078, 0x2018, 0x0040, 0x1bca, 0x1078, 0x1e0d,
429 0x0078, 0x1cd1, 0x6004, 0xa08c, 0x00ff, 0xa18e, 0x0009, 0x00c0,
430 0x1bd5, 0x007e, 0x1078, 0x23bf, 0x007f, 0xa084, 0xff00, 0x8007,
431 0x8009, 0x0040, 0x1c61, 0x0c7e, 0x2c68, 0x1078, 0x1e04, 0x0040,
432 0x1c1b, 0x2c00, 0x689e, 0x8109, 0x00c0, 0x1bdc, 0x609f, 0x0000,
433 0x0c7f, 0x0c7e, 0x7ddc, 0x7cd8, 0x7bd4, 0x7ad0, 0xa290, 0x0040,
434 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x7dde, 0x7cda,
435 0x7bd6, 0x7ad2, 0x2c68, 0x689c, 0xa065, 0x0040, 0x1c60, 0x2009,
436 0x0040, 0x1078, 0x2018, 0x00c0, 0x1c3e, 0x6004, 0xa084, 0x00ff,
437 0xa086, 0x0002, 0x00c0, 0x1c1b, 0x6004, 0xa084, 0x00ff, 0xa086,
438 0x000a, 0x00c0, 0x1c17, 0x017e, 0x1078, 0x23bb, 0x017f, 0x2d00,
439 0x6002, 0x0078, 0x1bea, 0x0c7f, 0x0c7e, 0x609c, 0x1078, 0x1e90,
440 0x0c7f, 0x609f, 0x0000, 0x1078, 0x1cd5, 0x2009, 0x0018, 0x6008,
441 0xc0cd, 0x600a, 0x6004, 0x6086, 0x7810, 0x007e, 0x84ff, 0x00c0,
442 0x1c34, 0x85ff, 0x0040, 0x1c36, 0xc0c5, 0x7812, 0x1078, 0x1dbb,
443 0x007f, 0x7812, 0x1078, 0x1e0d, 0x0078, 0x1cd1, 0x0c7f, 0x0c7e,
444 0x609c, 0x1078, 0x1e90, 0x0c7f, 0x609f, 0x0000, 0x1078, 0x1cd5,
445 0x2009, 0x0018, 0x6087, 0x0103, 0x601b, 0x0003, 0x7810, 0x007e,
446 0x84ff, 0x00c0, 0x1c56, 0x85ff, 0x0040, 0x1c58, 0xc0c5, 0x7812,
447 0x1078, 0x1dbb, 0x007f, 0x7812, 0x1078, 0x1e0d, 0x0078, 0x1cd1,
448 0x0c7f, 0x7814, 0xd0e4, 0x00c0, 0x1c8f, 0x6114, 0xd1fc, 0x0040,
449 0x1c6f, 0x1078, 0x1dae, 0x0040, 0x1c8f, 0x0078, 0x1c73, 0x1078,
450 0x1da1, 0x0040, 0x1c8f, 0x1078, 0x1cd5, 0x2009, 0x0018, 0x6087,
451 0x0103, 0x601b, 0x0021, 0x7810, 0x007e, 0x84ff, 0x00c0, 0x1c83,
452 0x85ff, 0x0040, 0x1c85, 0xc0c5, 0x7812, 0x1078, 0x1dbb, 0x007f,
453 0x7812, 0x1078, 0x1e0d, 0x2001, 0x4007, 0x0078, 0x15c3, 0x74c4,
454 0x73c8, 0x72cc, 0x6014, 0x2091, 0x8000, 0x0e7e, 0x2009, 0x0012,
455 0xd0fc, 0x00c0, 0x1c9f, 0x2071, 0x4f40, 0x0078, 0x1ca2, 0x2071,
456 0x4f80, 0xc1fd, 0x792a, 0x7067, 0x0005, 0x71d4, 0xc1dc, 0x71d6,
457 0x736a, 0x726e, 0x7472, 0x7076, 0x707b, 0x0000, 0x2c00, 0x707e,
458 0xa02e, 0x2530, 0x611c, 0xa184, 0x0060, 0x0040, 0x1cb9, 0x1078,
459 0x46b6, 0x0e7f, 0x6596, 0x65a6, 0x669a, 0x66aa, 0x60af, 0x0000,
460 0x60b3, 0x0000, 0x6714, 0x6023, 0x0000, 0x6024, 0xa096, 0x0001,
461 0x00c0, 0x1ccc, 0x8000, 0x6026, 0x1078, 0x266f, 0x2091, 0x8001,
462 0x007c, 0x70c3, 0x4005, 0x0078, 0x15c4, 0x20a9, 0x0005, 0x2099,
463 0x4f14, 0x2091, 0x8000, 0x530a, 0x2091, 0x8001, 0x2100, 0xa210,
464 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x007c, 0x71c4,
465 0x70c7, 0x0000, 0x791e, 0x0078, 0x15c1, 0x71c4, 0x71c6, 0x2168,
466 0x0078, 0x1cf4, 0x2069, 0x1000, 0x690c, 0xa016, 0x2d04, 0xa210,
467 0x8d68, 0x8109, 0x00c0, 0x1cf6, 0xa285, 0x0000, 0x00c0, 0x1d04,
468 0x70c3, 0x4000, 0x0078, 0x1d06, 0x70c3, 0x4003, 0x70ca, 0x0078,
469 0x15c4, 0x7964, 0x71c6, 0x71c4, 0xa182, 0x0003, 0x00c8, 0x15b9,
470 0x7966, 0x0078, 0x15c1, 0x7964, 0x71c6, 0x0078, 0x15c1, 0x7900,
471 0x71c6, 0x71c4, 0x7902, 0x0078, 0x15c1, 0x7900, 0x71c6, 0x0078,
472 0x15c1, 0x70c4, 0x2011, 0x0000, 0xa08c, 0x000d, 0x0040, 0x1d36,
473 0x810c, 0x0048, 0x1d32, 0x8210, 0x810c, 0x810c, 0x0048, 0x1d32,
474 0x8210, 0x810c, 0x81ff, 0x00c0, 0x15ba, 0x8210, 0x7a0e, 0xd28c,
475 0x0040, 0x1d62, 0x7910, 0xc1cd, 0x7912, 0x2009, 0x0021, 0x2019,
476 0x0003, 0xd284, 0x0040, 0x1d5c, 0x8108, 0x2019, 0x0041, 0x2011,
477 0x974e, 0x2312, 0x2019, 0x0042, 0x8210, 0x2312, 0x2019, 0x0043,
478 0x8210, 0x2312, 0x2019, 0x0046, 0x8210, 0x2312, 0x2019, 0x0047,
479 0x8210, 0x2312, 0x2019, 0x0006, 0x2011, 0x9753, 0x2112, 0x2011,
480 0x9773, 0x2312, 0x7904, 0x7806, 0x0078, 0x15c0, 0x7804, 0x70c6,
481 0x0078, 0x15c1, 0x71c4, 0xd1fc, 0x00c0, 0x1d72, 0x2011, 0x53c0,
482 0x0078, 0x1d74, 0x2011, 0x5440, 0x8107, 0xa084, 0x000f, 0x8003,
483 0x8003, 0x8003, 0xa268, 0x6a14, 0xd2b4, 0x0040, 0x1d83, 0x2011,
484 0x0001, 0x0078, 0x1d85, 0x2011, 0x0000, 0x6b0c, 0x6800, 0x70da,
485 0x0078, 0x15be, 0x7814, 0xd0f4, 0x0040, 0x1d95, 0x2001, 0x4007,
486 0x70db, 0x0000, 0xa005, 0x0078, 0x1da0, 0xd0fc, 0x0040, 0x1d9f,
487 0x2001, 0x4007, 0x70db, 0x0001, 0xa005, 0x0078, 0x1da0, 0xa006,
488 0x007c, 0x7814, 0xd0f4, 0x0040, 0x1dac, 0x2001, 0x4007, 0x70db,
489 0x0000, 0xa005, 0x0078, 0x1dad, 0xa006, 0x007c, 0x7814, 0xd0fc,
490 0x0040, 0x1db9, 0x2001, 0x4007, 0x70db, 0x0001, 0xa005, 0x0078,
491 0x1dba, 0xa006, 0x007c, 0x7112, 0x721a, 0x731e, 0x7810, 0xd0c4,
492 0x0040, 0x1dc4, 0x7422, 0x7526, 0xac80, 0x0001, 0x8108, 0x810c,
493 0x81a9, 0x8098, 0x20a1, 0x0030, 0x7003, 0x0000, 0x6084, 0x20a2,
494 0x53a6, 0x7007, 0x0001, 0x7974, 0xa184, 0xff00, 0x0040, 0x1de1,
495 0x810f, 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100, 0x0078,
496 0x1de4, 0x8107, 0x8004, 0x8004, 0x797c, 0xa108, 0x7a78, 0xa006,
497 0xa211, 0x7d10, 0xd5c4, 0x0040, 0x1df1, 0x7b84, 0xa319, 0x7c80,
498 0xa421, 0x7008, 0xd0fc, 0x0040, 0x1df1, 0x7003, 0x0001, 0x7007,
499 0x0006, 0x711a, 0x721e, 0x7d10, 0xd5c4, 0x0040, 0x1e01, 0x7322,
500 0x7426, 0xa084, 0x01e0, 0x007c, 0x7848, 0xa065, 0x0040, 0x1e0c,
501 0x2c04, 0x784a, 0x2063, 0x0000, 0x007c, 0x0f7e, 0x2079, 0x4f00,
502 0x7848, 0x2062, 0x2c00, 0xa005, 0x00c0, 0x1e18, 0x1078, 0x29b2,
503 0x784a, 0x0f7f, 0x007c, 0x2011, 0x9900, 0x7a4a, 0x7bc4, 0x8319,
504 0x0040, 0x1e28, 0xa280, 0x0032, 0x2012, 0x2010, 0x0078, 0x1e1f,
505 0x2013, 0x0000, 0x007c, 0x017e, 0x027e, 0xd7fc, 0x00c0, 0x1e34,
506 0x2011, 0x54c0, 0x0078, 0x1e36, 0x2011, 0x74c0, 0xa784, 0x0f00,
507 0x800b, 0xa784, 0x001f, 0x0040, 0x1e41, 0x8003, 0x8003, 0x8003,
508 0x8003, 0xa105, 0xa268, 0x027f, 0x017f, 0x007c, 0x1078, 0x1e2b,
509 0x2900, 0x682a, 0x2a00, 0x682e, 0x6808, 0xa084, 0xf9ef, 0xa80d,
510 0x690a, 0x0e7e, 0xd7fc, 0x00c0, 0x1e5b, 0x2009, 0x4f53, 0x2071,
511 0x4f40, 0x0078, 0x1e5f, 0x2009, 0x4f93, 0x2071, 0x4f80, 0x210c,
512 0x6804, 0xa005, 0x0040, 0x1e6f, 0xa116, 0x00c0, 0x1e6f, 0x2060,
513 0x6000, 0x6806, 0x017e, 0x200b, 0x0000, 0x0078, 0x1e72, 0x2009,
514 0x0000, 0x017e, 0x6804, 0xa065, 0x0040, 0x1e87, 0x6000, 0x6806,
515 0x1078, 0x1ea2, 0x1078, 0x2064, 0x6810, 0x7908, 0x8109, 0x790a,
516 0x8001, 0x6812, 0x00c0, 0x1e72, 0x7910, 0xc1a5, 0x7912, 0x017f,
517 0x6902, 0x6906, 0x2d00, 0x2060, 0x1078, 0x2b13, 0x0e7f, 0x007c,
518 0xa065, 0x0040, 0x1ea1, 0x2008, 0x609c, 0xa005, 0x0040, 0x1e9e,
519 0x2062, 0x609f, 0x0000, 0xa065, 0x0078, 0x1e94, 0x7848, 0x794a,
520 0x2062, 0x007c, 0x6007, 0x0103, 0x608f, 0x0000, 0x20a9, 0x001c,
521 0xac80, 0x0005, 0x20a0, 0x2001, 0x0000, 0x40a4, 0x6828, 0x601a,
522 0x682c, 0x6022, 0x007c, 0x0e7e, 0xd7fc, 0x00c0, 0x1ebd, 0x2071,
523 0x4f40, 0x2031, 0x4fc0, 0x0078, 0x1ec1, 0x2071, 0x4f80, 0x2031,
524 0x51c0, 0x7050, 0xa08c, 0x0200, 0x00c0, 0x1ecb, 0xa608, 0x2d0a,
525 0x8000, 0x7052, 0xa006, 0x0e7f, 0x007c, 0x0f7e, 0xd7fc, 0x00c0,
526 0x1ed5, 0x2079, 0x4f40, 0x0078, 0x1ed7, 0x2079, 0x4f80, 0x1078,
527 0x1e2b, 0x2091, 0x8000, 0x6804, 0x780a, 0xa065, 0x0040, 0x1f2b,
528 0x0078, 0x1ee9, 0x2c00, 0x780a, 0x2060, 0x6000, 0xa065, 0x0040,
529 0x1f2b, 0x6010, 0xa306, 0x00c0, 0x1ee2, 0x600c, 0xa206, 0x00c0,
530 0x1ee2, 0x2c28, 0x784c, 0xac06, 0x00c0, 0x1ef8, 0x0078, 0x1f28,
531 0x6804, 0xac06, 0x00c0, 0x1f06, 0x6000, 0x2060, 0x6806, 0xa005,
532 0x00c0, 0x1f06, 0x6803, 0x0000, 0x0078, 0x1f10, 0x6400, 0x7808,
533 0x2060, 0x6402, 0xa486, 0x0000, 0x00c0, 0x1f10, 0x2c00, 0x6802,
534 0x2560, 0x0f7f, 0x1078, 0x1ea2, 0x0f7e, 0x601b, 0x0005, 0x6023,
535 0x0020, 0x0f7f, 0x1078, 0x2064, 0x0f7e, 0x7908, 0x8109, 0x790a,
536 0x6810, 0x8001, 0x6812, 0x00c0, 0x1f28, 0x7810, 0xc0a5, 0x7812,
537 0x2001, 0xffff, 0xa005, 0x0f7f, 0x007c, 0x077e, 0x2700, 0x2039,
538 0x0000, 0xd0fc, 0x0040, 0x1f35, 0xc7fd, 0x2041, 0x0021, 0x2049,
539 0x0004, 0x2051, 0x0008, 0x2091, 0x8000, 0x1078, 0x1e46, 0x8738,
540 0xa784, 0x001f, 0x00c0, 0x1f3d, 0xa7bc, 0xff00, 0x873f, 0x8738,
541 0x873f, 0xa784, 0x0f00, 0x00c0, 0x1f3d, 0x2091, 0x8001, 0x077f,
542 0x007c, 0x786c, 0x2009, 0x9774, 0x210c, 0xa10d, 0x0040, 0x1f5b,
543 0xa065, 0x0078, 0x23dc, 0x2061, 0x0000, 0x6018, 0xd084, 0x00c0,
544 0x1f7b, 0x7810, 0xd08c, 0x0040, 0x1f6c, 0xc08c, 0x7812, 0xc7fc,
545 0x2069, 0x4f40, 0x0078, 0x1f71, 0xc08d, 0x7812, 0x2069, 0x4f80,
546 0xc7fd, 0x2091, 0x8000, 0x681c, 0x681f, 0x0000, 0x2091, 0x8001,
547 0xa005, 0x00c0, 0x1f7c, 0x007c, 0xa08c, 0xfff0, 0x0040, 0x1f82,
548 0x1078, 0x29b2, 0x0079, 0x1f84, 0x1f94, 0x1f97, 0x1f9d, 0x1fa1,
549 0x1f95, 0x1fa5, 0x1f95, 0x1f95, 0x1f95, 0x1fab, 0x1fdc, 0x1fe0,
550 0x1fe6, 0x1ffb, 0x1f95, 0x1f95, 0x007c, 0x1078, 0x29b2, 0x1078,
551 0x1f2d, 0x2001, 0x8001, 0x0078, 0x2007, 0x2001, 0x8003, 0x0078,
552 0x2007, 0x2001, 0x8004, 0x0078, 0x2007, 0x1078, 0x1f2d, 0x2001,
553 0x8006, 0x0078, 0x2007, 0x2091, 0x8000, 0x077e, 0xd7fc, 0x00c0,
554 0x1fb7, 0x2069, 0x4f40, 0x2039, 0x0009, 0x0078, 0x1fbb, 0x2069,
555 0x4f80, 0x2039, 0x0009, 0x6800, 0xa086, 0x0000, 0x0040, 0x1fc5,
556 0x007f, 0x6f1e, 0x2091, 0x8001, 0x007c, 0x6874, 0x077f, 0xa0bc,
557 0xff00, 0x2041, 0x0021, 0x2049, 0x0004, 0x2051, 0x0010, 0x1078,
558 0x1e46, 0x8738, 0xa784, 0x001f, 0x00c0, 0x1fcf, 0x2091, 0x8001,
559 0x2001, 0x800a, 0x0078, 0x2007, 0x2001, 0x800c, 0x0078, 0x2007,
560 0x1078, 0x1f2d, 0x2001, 0x800d, 0x0078, 0x2007, 0x7814, 0xd0e4,
561 0x00c0, 0x1ff9, 0xd0ec, 0x0040, 0x1ff3, 0xd7fc, 0x0040, 0x1ff3,
562 0x78e4, 0x0078, 0x1ff4, 0x78e0, 0x70c6, 0x2001, 0x800e, 0x0078,
563 0x2007, 0x0078, 0x1f95, 0xd7fc, 0x0040, 0x2001, 0x78ec, 0x0078,
564 0x2002, 0x78e8, 0x70c6, 0x2001, 0x800f, 0x0078, 0x2007, 0x70c2,
565 0xd7fc, 0x00c0, 0x200f, 0x70db, 0x0000, 0x0078, 0x2011, 0x70db,
566 0x0001, 0x2061, 0x0000, 0x601b, 0x0001, 0x2091, 0x4080, 0x007c,
567 0xac80, 0x0001, 0x81ff, 0x0040, 0x2043, 0x2099, 0x0030, 0x20a0,
568 0x700c, 0xa084, 0x03ff, 0x0040, 0x2025, 0x7018, 0x007e, 0x701c,
569 0x007e, 0x7020, 0x007e, 0x7024, 0x007e, 0x7112, 0x81ac, 0x721a,
570 0x731e, 0x7422, 0x7526, 0x7003, 0x0001, 0x7007, 0x0001, 0x7008,
571 0x800b, 0x00c8, 0x2037, 0x7007, 0x0002, 0xa08c, 0x01e0, 0x00c0,
572 0x2043, 0x53a5, 0xa006, 0x7003, 0x0000, 0x7007, 0x0004, 0x007f,
573 0x7026, 0x007f, 0x7022, 0x007f, 0x701e, 0x007f, 0x701a, 0x007c,
574 0x2011, 0x0020, 0x2009, 0x0010, 0x6b0a, 0x6c0e, 0x6803, 0xfd00,
575 0x6807, 0x0018, 0x6a1a, 0x2d00, 0xa0e8, 0x0008, 0xa290, 0x0004,
576 0x8109, 0x00c0, 0x2054, 0x007c, 0x6004, 0x6086, 0x2c08, 0x2063,
577 0x0000, 0x7868, 0xa005, 0x796a, 0x0040, 0x2071, 0x2c02, 0x0078,
578 0x2072, 0x796e, 0x007c, 0x0c7e, 0x2061, 0x4f00, 0x6887, 0x0103,
579 0x2d08, 0x206b, 0x0000, 0x6068, 0xa005, 0x616a, 0x0040, 0x2083,
580 0x2d02, 0x0078, 0x2084, 0x616e, 0x0c7f, 0x007c, 0x2091, 0x8000,
581 0x2c04, 0x786e, 0xa005, 0x00c0, 0x208e, 0x786a, 0x2091, 0x8001,
582 0x609c, 0xa005, 0x0040, 0x20a7, 0x0c7e, 0x2060, 0x2008, 0x609c,
583 0xa005, 0x0040, 0x20a3, 0x2062, 0x609f, 0x0000, 0xa065, 0x609c,
584 0xa005, 0x00c0, 0x209b, 0x7848, 0x794a, 0x2062, 0x0c7f, 0x7848,
585 0x2062, 0x609f, 0x0000, 0xac85, 0x0000, 0x00c0, 0x20b1, 0x1078,
586 0x29b2, 0x784a, 0x007c, 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086,
587 0x818e, 0x00c8, 0x20bc, 0xa200, 0x00f0, 0x20b7, 0x8086, 0x818e,
588 0x007c, 0x157e, 0x20a9, 0x0010, 0xa005, 0x0040, 0x20e2, 0xa11a,
589 0x00c8, 0x20e2, 0x8213, 0x818d, 0x0048, 0x20d5, 0xa11a, 0x00c8,
590 0x20d6, 0x00f0, 0x20ca, 0x0078, 0x20da, 0xa11a, 0x2308, 0x8210,
591 0x00f0, 0x20ca, 0x007e, 0x3200, 0xa084, 0xf7ff, 0x2080, 0x007f,
592 0x157f, 0x007c, 0x007e, 0x3200, 0xa085, 0x0800, 0x0078, 0x20de,
593 0x7d74, 0x70d0, 0xa506, 0x0040, 0x21ce, 0x7810, 0x2050, 0x7800,
594 0xd08c, 0x0040, 0x210a, 0xdaec, 0x0040, 0x210a, 0x0e7e, 0x2091,
595 0x8000, 0x2071, 0x0020, 0x7004, 0xa005, 0x00c0, 0x2107, 0x7008,
596 0x0e7f, 0xa086, 0x0008, 0x0040, 0x210a, 0x0078, 0x21ce, 0x0e7f,
597 0x0078, 0x21ce, 0x1078, 0x1e04, 0x0040, 0x21ce, 0xa046, 0x7970,
598 0x2500, 0x8000, 0xa112, 0x2009, 0x0040, 0x00c8, 0x2119, 0x0078,
599 0x2120, 0x72d0, 0xa206, 0x0040, 0x2120, 0x8840, 0x2009, 0x0080,
600 0x0c7e, 0x7112, 0x7007, 0x0001, 0x2099, 0x0030, 0x20a9, 0x0020,
601 0xac80, 0x0001, 0x20a0, 0x2061, 0x0000, 0x88ff, 0x0040, 0x2132,
602 0x1078, 0x1e04, 0x7008, 0xd0fc, 0x0040, 0x2132, 0x7007, 0x0002,
603 0x2091, 0x8001, 0xa08c, 0x01e0, 0x00c0, 0x2169, 0x53a5, 0x8cff,
604 0x00c0, 0x2147, 0x88ff, 0x0040, 0x21b8, 0x0078, 0x2151, 0x2c00,
605 0x788e, 0x20a9, 0x0020, 0xac80, 0x0001, 0x20a0, 0x53a5, 0x0078,
606 0x21b8, 0xa046, 0x7218, 0x731c, 0xdac4, 0x0040, 0x2159, 0x7420,
607 0x7524, 0xa292, 0x0040, 0xa39b, 0x0000, 0xa4a3, 0x0000, 0xa5ab,
608 0x0000, 0x721a, 0x731e, 0xdac4, 0x0040, 0x2169, 0x7422, 0x7526,
609 0xa006, 0x7007, 0x0004, 0x0040, 0x21b8, 0x8cff, 0x0040, 0x2172,
610 0x1078, 0x1e0d, 0x0c7f, 0x1078, 0x1e0d, 0xa046, 0x7888, 0x8000,
611 0x788a, 0xa086, 0x0002, 0x0040, 0x2198, 0x7a7c, 0x7b78, 0xdac4,
612 0x0040, 0x2184, 0x7c84, 0x7d80, 0x7974, 0x8107, 0x8004, 0x8004,
613 0xa210, 0xa399, 0x0000, 0xa4a1, 0x0000, 0xa5a9, 0x0000, 0x721a,
614 0x731e, 0xdac4, 0x0040, 0x21ce, 0x7422, 0x7526, 0x0078, 0x21ce,
615 0x6014, 0xd0fc, 0x00c0, 0x21a0, 0x2069, 0x4f40, 0x0078, 0x21a2,
616 0x2069, 0x4f80, 0x2091, 0x8000, 0x681f, 0x0002, 0x88ff, 0x0040,
617 0x21ae, 0xa046, 0x788c, 0x2060, 0x0078, 0x2198, 0x788b, 0x0000,
618 0x78ac, 0xa085, 0x0003, 0x78ae, 0x2091, 0x8001, 0x0078, 0x21ce,
619 0x0c7f, 0x788b, 0x0000, 0x1078, 0x238d, 0x6004, 0xa084, 0x000f,
620 0x1078, 0x21cf, 0x88ff, 0x0040, 0x21cc, 0x788c, 0x2060, 0x6004,
621 0xa084, 0x000f, 0x1078, 0x21cf, 0x0078, 0x20e8, 0x007c, 0x0079,
622 0x21d1, 0x21e1, 0x21ff, 0x221d, 0x21e1, 0x222e, 0x21f2, 0x21e1,
623 0x21e1, 0x21e1, 0x21fd, 0x221b, 0x21e1, 0x21e1, 0x21e1, 0x21e1,
624 0x21e1, 0x2039, 0x0400, 0x78bc, 0xa705, 0x78be, 0x6008, 0xa705,
625 0x600a, 0x1078, 0x2271, 0x609c, 0x78ba, 0x609f, 0x0000, 0x1078,
626 0x2377, 0x007c, 0x78bc, 0xd0c4, 0x0040, 0x21f8, 0x0078, 0x21e1,
627 0x601c, 0xc0bd, 0x601e, 0x0078, 0x2205, 0x1078, 0x23bf, 0x78bc,
628 0xd0c4, 0x0040, 0x2205, 0x0078, 0x21e1, 0x78bf, 0x0000, 0x6004,
629 0x8007, 0xa084, 0x00ff, 0x78b2, 0x8001, 0x0040, 0x2218, 0x1078,
630 0x2271, 0x0040, 0x2218, 0x78bc, 0xc0c5, 0x78be, 0x0078, 0x221a,
631 0x0078, 0x2290, 0x007c, 0x1078, 0x23bb, 0x78bc, 0xa08c, 0x0e00,
632 0x00c0, 0x2225, 0xd0c4, 0x00c0, 0x2227, 0x0078, 0x21e1, 0x1078,
633 0x2271, 0x00c0, 0x222d, 0x0078, 0x2290, 0x007c, 0x78bc, 0xd0c4,
634 0x0040, 0x2234, 0x0078, 0x21e1, 0x78bf, 0x0000, 0x6714, 0x2011,
635 0x0001, 0x22a8, 0x6018, 0xa084, 0x00ff, 0xa005, 0x0040, 0x2254,
636 0xa7bc, 0xff00, 0x20a9, 0x0020, 0xa08e, 0x0001, 0x0040, 0x2254,
637 0xa7bc, 0x8000, 0x2011, 0x0002, 0x20a9, 0x0100, 0xa08e, 0x0002,
638 0x0040, 0x2254, 0x0078, 0x226e, 0x1078, 0x1e2b, 0x2d00, 0x2091,
639 0x8000, 0x682b, 0x0000, 0x682f, 0x0000, 0x6808, 0xa084, 0xffde,
640 0x680a, 0xade8, 0x0010, 0x2091, 0x8001, 0x00f0, 0x2257, 0x8211,
641 0x0040, 0x226e, 0x20a9, 0x0100, 0x0078, 0x2257, 0x1078, 0x1e0d,
642 0x007c, 0x609f, 0x0000, 0x78b4, 0xa06d, 0x2c00, 0x78b6, 0x00c0,
643 0x227c, 0x78ba, 0x0078, 0x2284, 0x689e, 0x2d00, 0x6002, 0x78b8,
644 0xad06, 0x00c0, 0x2284, 0x6002, 0x78b0, 0x8001, 0x78b2, 0x00c0,
645 0x228f, 0x78bc, 0xc0c4, 0x78be, 0x78b8, 0x2060, 0xa006, 0x007c,
646 0x0e7e, 0xa02e, 0x2530, 0x7dba, 0x7db6, 0x65ae, 0x65b2, 0x601c,
647 0x60a2, 0x2048, 0xa984, 0xe1ff, 0x601e, 0xa984, 0x0060, 0x0040,
648 0x22a3, 0x1078, 0x46b6, 0x6596, 0x65a6, 0x669a, 0x66aa, 0x6714,
649 0x2071, 0x4f80, 0xd7fc, 0x00c0, 0x22af, 0x2071, 0x4f40, 0xa784,
650 0x0f00, 0x800b, 0xa784, 0x001f, 0x0040, 0x22ba, 0x8003, 0x8003,
651 0x8003, 0x8003, 0xa105, 0x71c4, 0xa168, 0x2700, 0x8007, 0xa084,
652 0x000f, 0x8003, 0x8003, 0x8003, 0x71c8, 0xa100, 0x60c2, 0x2091,
653 0x8000, 0x7814, 0xd0c4, 0x0040, 0x22df, 0xd0ec, 0x0040, 0x22db,
654 0xd7fc, 0x00c0, 0x22d8, 0xd0f4, 0x00c0, 0x22e6, 0x0078, 0x22df,
655 0xd0fc, 0x00c0, 0x22e6, 0x7810, 0xd0f4, 0x00c0, 0x22e6, 0x6e08,
656 0xd684, 0x0040, 0x2310, 0xd9fc, 0x00c0, 0x2310, 0x2091, 0x8001,
657 0x1078, 0x1ea2, 0x2091, 0x8000, 0x1078, 0x2064, 0x2091, 0x8001,
658 0x7814, 0xd0e4, 0x00c0, 0x2375, 0x7814, 0xd0c4, 0x0040, 0x2375,
659 0xd0ec, 0x0040, 0x2308, 0xd7fc, 0x00c0, 0x2303, 0xd0f4, 0x00c0,
660 0x230c, 0x0078, 0x2375, 0xd0fc, 0x00c0, 0x230c, 0x0078, 0x2375,
661 0x7810, 0xd0f4, 0x0040, 0x2375, 0x601b, 0x0021, 0x0078, 0x2375,
662 0x6024, 0xa096, 0x0001, 0x00c0, 0x2317, 0x8000, 0x6026, 0x6a10,
663 0x6814, 0xa202, 0x0048, 0x232a, 0x0040, 0x232a, 0x2091, 0x8001,
664 0x2039, 0x0200, 0x609c, 0x78ba, 0x609f, 0x0000, 0x1078, 0x2377,
665 0x0078, 0x2375, 0x2c08, 0xd9fc, 0x0040, 0x2352, 0x6800, 0xa065,
666 0x0040, 0x2352, 0x6a04, 0x7000, 0xa084, 0x0002, 0x0040, 0x2348,
667 0x704c, 0xa206, 0x00c0, 0x2348, 0x6b04, 0x2160, 0x2304, 0x6002,
668 0xa005, 0x00c0, 0x2344, 0x6902, 0x2260, 0x6102, 0x0078, 0x235e,
669 0x2d00, 0x2060, 0x1078, 0x2b13, 0x6e08, 0x2160, 0x6202, 0x6906,
670 0x0078, 0x235e, 0x6800, 0x6902, 0xa065, 0x0040, 0x235a, 0x6102,
671 0x0078, 0x235b, 0x6906, 0x2160, 0x6003, 0x0000, 0x2160, 0xd9fc,
672 0x0040, 0x2365, 0xa6b4, 0xfffc, 0x6e0a, 0x6810, 0x7d08, 0x8528,
673 0x7d0a, 0x8000, 0x6812, 0x2091, 0x8001, 0xd6b4, 0x0040, 0x2375,
674 0xa6b6, 0x0040, 0x6e0a, 0x1078, 0x1eb3, 0x0e7f, 0x007c, 0x6008,
675 0xa705, 0x600a, 0x2091, 0x8000, 0x1078, 0x2064, 0x2091, 0x8001,
676 0x78b8, 0xa065, 0x0040, 0x238a, 0x609c, 0x78ba, 0x609f, 0x0000,
677 0x0078, 0x2377, 0x78b6, 0x78ba, 0x007c, 0x7970, 0x7874, 0x2818,
678 0xd384, 0x0040, 0x2397, 0x8000, 0xa112, 0x0048, 0x239c, 0x8000,
679 0xa112, 0x00c8, 0x23ac, 0xc384, 0x7a7c, 0x721a, 0x7a78, 0x721e,
680 0xdac4, 0x0040, 0x23a7, 0x7a84, 0x7222, 0x7a80, 0x7226, 0xa006,
681 0xd384, 0x0040, 0x23ac, 0x8000, 0x7876, 0x70d2, 0x781c, 0xa005,
682 0x0040, 0x23ba, 0x8001, 0x781e, 0x00c0, 0x23ba, 0x0068, 0x23ba,
683 0x2091, 0x4080, 0x007c, 0x2039, 0x23d3, 0x0078, 0x23c1, 0x2039,
684 0x23d9, 0x2704, 0xa005, 0x0040, 0x23d2, 0xac00, 0x2068, 0x6908,
685 0x6810, 0x6912, 0x680a, 0x690c, 0x6814, 0x6916, 0x680e, 0x8738,
686 0x0078, 0x23c1, 0x007c, 0x0003, 0x0009, 0x000f, 0x0015, 0x001b,
687 0x0000, 0x0015, 0x001b, 0x0000, 0x2041, 0x0000, 0x780c, 0x0079,
688 0x23e1, 0x25b3, 0x2586, 0x23e5, 0x245e, 0x2039, 0x9774, 0x2734,
689 0x7d10, 0x0078, 0x2405, 0x6084, 0xa086, 0x0103, 0x00c0, 0x2447,
690 0x6114, 0x6018, 0xa105, 0x0040, 0x23fa, 0x86ff, 0x00c0, 0x2416,
691 0x0078, 0x2447, 0x8603, 0xa080, 0x9755, 0x620c, 0x2202, 0x8000,
692 0x6210, 0x2202, 0x1078, 0x2086, 0x8630, 0xa68e, 0x000f, 0x0040,
693 0x24d2, 0x786c, 0xa065, 0x00c0, 0x23eb, 0x7808, 0xa602, 0x00c8,
694 0x2416, 0xd5ac, 0x00c0, 0x2416, 0x263a, 0x007c, 0xa682, 0x0003,
695 0x00c8, 0x24d2, 0x2091, 0x8000, 0x2069, 0x0000, 0x6818, 0xd084,
696 0x00c0, 0x2442, 0x2011, 0x9755, 0x2204, 0x70c6, 0x8210, 0x2204,
697 0x70ca, 0xd684, 0x00c0, 0x2432, 0x8210, 0x2204, 0x70da, 0x8210,
698 0x2204, 0x70de, 0xa685, 0x8020, 0x70c2, 0x681b, 0x0001, 0x2091,
699 0x4080, 0x7810, 0xa084, 0xffcf, 0x7812, 0x2091, 0x8001, 0x203b,
700 0x0000, 0x007c, 0x7810, 0xc0ad, 0x7812, 0x0078, 0x24d2, 0x263a,
701 0x1078, 0x25bd, 0x00c0, 0x25e0, 0x786c, 0xa065, 0x00c0, 0x23eb,
702 0x2091, 0x8000, 0x7810, 0xa084, 0xffcf, 0x86ff, 0x0040, 0x2459,
703 0xc0ad, 0x7812, 0x2091, 0x8001, 0x0078, 0x25e0, 0x2039, 0x9774,
704 0x2734, 0x7d10, 0x0078, 0x247a, 0x6084, 0xa086, 0x0103, 0x00c0,
705 0x24bb, 0x6114, 0x6018, 0xa105, 0x0040, 0x2473, 0x86ff, 0x00c0,
706 0x248b, 0x0078, 0x24bb, 0xa680, 0x9755, 0x620c, 0x2202, 0x1078,
707 0x2086, 0x8630, 0xa68e, 0x001e, 0x0040, 0x24d2, 0x786c, 0xa065,
708 0x00c0, 0x2464, 0x7808, 0xa602, 0x00c8, 0x248b, 0xd5ac, 0x00c0,
709 0x248b, 0x263a, 0x007c, 0xa682, 0x0006, 0x00c8, 0x24d2, 0x2091,
710 0x8000, 0x2069, 0x0000, 0x6818, 0xd084, 0x00c0, 0x24b6, 0x2011,
711 0x9755, 0x2009, 0x974e, 0x26a8, 0x211c, 0x2204, 0x201a, 0x8108,
712 0x8210, 0x00f0, 0x249c, 0xa685, 0x8030, 0x70c2, 0x681b, 0x0001,
713 0x2091, 0x4080, 0x7810, 0xa084, 0xffcf, 0x7812, 0x2091, 0x8001,
714 0xa006, 0x2009, 0x9775, 0x200a, 0x203a, 0x007c, 0x7810, 0xc0ad,
715 0x7812, 0x0078, 0x24d2, 0x263a, 0x1078, 0x25bd, 0x00c0, 0x25e0,
716 0x786c, 0xa065, 0x00c0, 0x2464, 0x2091, 0x8000, 0x7810, 0xa084,
717 0xffcf, 0x86ff, 0x0040, 0x24cd, 0xc0ad, 0x7812, 0x2091, 0x8001,
718 0x0078, 0x25e0, 0x2091, 0x8000, 0x7007, 0x0004, 0x7994, 0x70d4,
719 0xa102, 0x0048, 0x24e3, 0x0040, 0x24ed, 0x7b90, 0xa302, 0x00c0,
720 0x24ed, 0x0078, 0x24e6, 0x8002, 0x00c0, 0x24ed, 0x263a, 0x7810,
721 0xc0ad, 0x7812, 0x2091, 0x8001, 0x007c, 0xa184, 0xff00, 0x0040,
722 0x24fa, 0x810f, 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100,
723 0x0078, 0x24fd, 0x8107, 0x8004, 0x8004, 0x7a9c, 0xa210, 0x721a,
724 0x7a98, 0xa006, 0xa211, 0x721e, 0xd4c4, 0x0040, 0x250d, 0x7aa4,
725 0xa211, 0x7222, 0x7aa0, 0xa211, 0x7226, 0x20a1, 0x0030, 0x7003,
726 0x0000, 0x2009, 0x9754, 0x260a, 0x8109, 0x2198, 0x2104, 0xd084,
727 0x0040, 0x251b, 0x8633, 0xa6b0, 0x0002, 0x26a8, 0x53a6, 0x8603,
728 0x7012, 0x7007, 0x0001, 0x7990, 0x7894, 0x8000, 0xa10a, 0x00c8,
729 0x252a, 0xa006, 0x2028, 0x7974, 0xa184, 0xff00, 0x0040, 0x2539,
730 0x810f, 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100, 0x0078,
731 0x253c, 0x8107, 0x8004, 0x8004, 0x797c, 0xa108, 0x7a78, 0xa006,
732 0xa211, 0xd4c4, 0x0040, 0x2548, 0x7b84, 0xa319, 0x7c80, 0xa421,
733 0x7008, 0xd0fc, 0x0040, 0x2548, 0xa084, 0x01e0, 0x0040, 0x256d,
734 0x7d10, 0x2031, 0x9754, 0x2634, 0x78a8, 0x8000, 0x78aa, 0xd08c,
735 0x00c0, 0x2562, 0x7007, 0x0006, 0x7004, 0xd094, 0x00c0, 0x255c,
736 0x0078, 0x24d4, 0x2069, 0x4f47, 0x206b, 0x0003, 0x78ac, 0xa085,
737 0x0300, 0x78ae, 0xa006, 0x0078, 0x2576, 0x2030, 0x75d6, 0x2091,
738 0x4080, 0x7d96, 0x7d10, 0xa5ac, 0xffcf, 0x7d12, 0x2091, 0x8001,
739 0x78aa, 0x7007, 0x0006, 0x263a, 0x7003, 0x0001, 0x711a, 0x721e,
740 0xd5c4, 0x0040, 0x2585, 0x7322, 0x7426, 0x007c, 0x6084, 0xa086,
741 0x0103, 0x00c0, 0x25a9, 0x6114, 0x6018, 0xa105, 0x00c0, 0x25a9,
742 0x2069, 0x0000, 0x6818, 0xd084, 0x00c0, 0x25a9, 0x600c, 0x70c6,
743 0x6010, 0x70ca, 0x70c3, 0x8020, 0x681b, 0x0001, 0x2091, 0x4080,
744 0x1078, 0x2086, 0x0068, 0x25a8, 0x786c, 0xa065, 0x00c0, 0x2586,
745 0x007c, 0x1078, 0x25bd, 0x00c0, 0x25e0, 0x786c, 0xa065, 0x00c0,
746 0x2586, 0x0078, 0x25e0, 0x1078, 0x25bd, 0x00c0, 0x25e0, 0x786c,
747 0xa065, 0x00c0, 0x25b3, 0x0078, 0x25e0, 0x6084, 0xa086, 0x0103,
748 0x00c0, 0x25d1, 0x6018, 0xc0fc, 0x601a, 0xa086, 0x0004, 0x00c0,
749 0x25d1, 0x7804, 0xd0a4, 0x0040, 0x25d1, 0x1078, 0x2086, 0xa006,
750 0x007c, 0x1078, 0x25e6, 0x00c0, 0x25d8, 0xa085, 0x0001, 0x007c,
751 0x1078, 0x25f5, 0x00c0, 0x25de, 0x2041, 0x0001, 0x7d10, 0x007c,
752 0x88ff, 0x0040, 0x25e5, 0x2091, 0x4080, 0x007c, 0x7b90, 0x7994,
753 0x70d4, 0xa102, 0x00c0, 0x25ef, 0xa385, 0x0000, 0x007c, 0x0048,
754 0x25f3, 0xa302, 0x007c, 0x8002, 0x007c, 0x7810, 0xd0ec, 0x0040,
755 0x260d, 0x0e7e, 0x2091, 0x8000, 0x2071, 0x0020, 0x7004, 0xa005,
756 0x00c0, 0x260a, 0x7008, 0x0e7f, 0xa086, 0x0008, 0x0040, 0x260d,
757 0x0078, 0x265e, 0x0e7f, 0x0078, 0x265e, 0xa184, 0xff00, 0x0040,
758 0x261a, 0x810f, 0x810c, 0x810c, 0x8004, 0x8004, 0x8007, 0xa100,
759 0x0078, 0x261d, 0x8107, 0x8004, 0x8004, 0x7a9c, 0x7b98, 0x7ca4,
760 0x7da0, 0xa210, 0xa006, 0xa319, 0xa421, 0xa529, 0x2009, 0x0018,
761 0x6028, 0xa005, 0x0040, 0x262e, 0x2009, 0x0040, 0x1078, 0x1dbb,
762 0x0040, 0x2650, 0x78a8, 0x8000, 0x78aa, 0xd08c, 0x00c0, 0x265e,
763 0x6014, 0xd0fc, 0x00c0, 0x2640, 0x2069, 0x4f40, 0x0078, 0x2642,
764 0x2069, 0x4f80, 0x2091, 0x8000, 0x681f, 0x0003, 0x78ab, 0x0000,
765 0x78ac, 0xa085, 0x0300, 0x78ae, 0x2091, 0x8001, 0x0078, 0x265e,
766 0x78ab, 0x0000, 0x1078, 0x2086, 0x7990, 0x7894, 0x8000, 0xa10a,
767 0x00c8, 0x265b, 0xa006, 0x7896, 0x70d6, 0xa006, 0x2071, 0x0010,
768 0x2091, 0x8001, 0x007c, 0xd7fc, 0x00c0, 0x266a, 0x2009, 0x4f59,
769 0x0078, 0x266c, 0x2009, 0x4f99, 0x2091, 0x8000, 0x200a, 0x0f7e,
770 0xd7fc, 0x00c0, 0x2683, 0x2009, 0x4f40, 0x2001, 0x4f04, 0x2004,
771 0xd0ec, 0x0040, 0x267f, 0x2079, 0x0100, 0x0078, 0x2687, 0x2079,
772 0x0200, 0x0078, 0x2687, 0x2009, 0x4f80, 0x2079, 0x0100, 0x2104,
773 0xa086, 0x0000, 0x00c0, 0x26a0, 0xd7fc, 0x00c0, 0x2693, 0x2009,
774 0x4f45, 0x0078, 0x2695, 0x2009, 0x4f85, 0x2104, 0xa005, 0x00c0,
775 0x26a0, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x26a0, 0x781b, 0x0045,
776 0x0f7f, 0x007c, 0x2009, 0x0002, 0x2069, 0x4f00, 0x6810, 0xd0ec,
777 0x00c0, 0x270f, 0x2071, 0x4f80, 0x2079, 0x0100, 0x2021, 0x51bf,
778 0x784b, 0x000f, 0x2019, 0x44a7, 0xd184, 0x0040, 0x26c3, 0x6810,
779 0xd0ec, 0x0040, 0x26bf, 0x20a1, 0x012b, 0x0078, 0x26c5, 0x20a1,
780 0x022b, 0x0078, 0x26c5, 0x20a1, 0x012b, 0x2304, 0xa005, 0x0040,
781 0x26d2, 0x789a, 0x8318, 0x23ac, 0x8318, 0x2398, 0x53a6, 0x3318,
782 0x0078, 0x26c5, 0x789b, 0x0020, 0x20a9, 0x0010, 0x6814, 0xd0e4,
783 0x0040, 0x26e2, 0x78af, 0x0000, 0x78af, 0x9020, 0x00f0, 0x26da,
784 0x0078, 0x26e8, 0x78af, 0x0000, 0x78af, 0x8020, 0x00f0, 0x26e2,
785 0x7003, 0x0000, 0x017e, 0xd18c, 0x2009, 0x0000, 0x0040, 0x26f1,
786 0xc1bd, 0x1078, 0x28e2, 0x017f, 0x7020, 0xa084, 0x000f, 0x007e,
787 0x6814, 0xd0e4, 0x007f, 0x00c0, 0x2701, 0xa085, 0x6340, 0x0078,
788 0x2703, 0xa085, 0x62c0, 0x7806, 0x780f, 0x9200, 0x7843, 0x00d8,
789 0x7853, 0x0080, 0x780b, 0x0008, 0x7456, 0x7053, 0x0000, 0x8109,
790 0x0040, 0x2722, 0x2071, 0x4f40, 0x6810, 0xd0ec, 0x0040, 0x271c,
791 0x2079, 0x0100, 0x0078, 0x271e, 0x2079, 0x0200, 0x2021, 0x4fbf,
792 0x0078, 0x26b0, 0x007c, 0x017e, 0xd1bc, 0x00c0, 0x2737, 0x007e,
793 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x2733, 0x2011,
794 0x0101, 0x0078, 0x2739, 0x2011, 0x0201, 0x0078, 0x2739, 0x2011,
795 0x0101, 0xa18c, 0x000f, 0x2204, 0xa084, 0xfff0, 0xa105, 0x2012,
796 0x017f, 0x1078, 0x28e2, 0x007c, 0xd3fc, 0x00c0, 0x2757, 0x007e,
797 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x2753, 0x2011,
798 0x0101, 0x0078, 0x2759, 0x2011, 0x0201, 0x0078, 0x2759, 0x2011,
799 0x0101, 0x20a9, 0x0009, 0x810b, 0x00f0, 0x275b, 0xa18c, 0x0e00,
800 0x2204, 0xa084, 0xf1ff, 0xa105, 0x2012, 0x007c, 0x2019, 0x0002,
801 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x0040, 0x2773, 0x8319, 0x2009,
802 0x0101, 0x0078, 0x2775, 0x2009, 0x0101, 0x20a9, 0x0005, 0x8213,
803 0x00f0, 0x2777, 0xa294, 0x00e0, 0x2104, 0xa084, 0xff1f, 0xa205,
804 0x200a, 0x8319, 0x0040, 0x2788, 0x2009, 0x0201, 0x0078, 0x2775,
805 0x007c, 0xd3fc, 0x00c0, 0x279c, 0x007e, 0x2001, 0x4f04, 0x2004,
806 0xd0ec, 0x007f, 0x0040, 0x2798, 0x2011, 0x0101, 0x0078, 0x279e,
807 0x2011, 0x0201, 0x0078, 0x279e, 0x2011, 0x0101, 0x20a9, 0x000c,
808 0x810b, 0x00f0, 0x27a0, 0xa18c, 0xf000, 0x2204, 0xa084, 0x0fff,
809 0xa105, 0x2012, 0x007c, 0xd3fc, 0x00c0, 0x27be, 0x007e, 0x2001,
810 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x27ba, 0x2011, 0x0102,
811 0x0078, 0x27c0, 0x2011, 0x0202, 0x0078, 0x27c0, 0x2011, 0x0102,
812 0x2204, 0xa084, 0xffcf, 0xa105, 0x2012, 0x007c, 0x0c7e, 0xd1bc,
813 0x00c0, 0x27da, 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f,
814 0x0040, 0x27d6, 0x2061, 0x0100, 0x0078, 0x27dc, 0x2061, 0x0200,
815 0x0078, 0x27dc, 0x2061, 0x0100, 0xc1bc, 0x8103, 0x8003, 0xa080,
816 0x0020, 0x609a, 0x62ac, 0x63ac, 0x0c7f, 0x007c, 0x0c7e, 0xd1bc,
817 0x00c0, 0x27fa, 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f,
818 0x0040, 0x27f6, 0x2061, 0x0100, 0x0078, 0x27fc, 0x2061, 0x0200,
819 0x0078, 0x27fc, 0x2061, 0x0100, 0xc1bc, 0x8103, 0x8003, 0xa080,
820 0x0022, 0x609a, 0x60a4, 0xa084, 0xffdf, 0x60ae, 0x0c7f, 0x007c,
821 0x0c7e, 0xd1bc, 0x00c0, 0x281c, 0x007e, 0x2001, 0x4f04, 0x2004,
822 0xd0ec, 0x007f, 0x0040, 0x2818, 0x2061, 0x0100, 0x0078, 0x281e,
823 0x2061, 0x0200, 0x0078, 0x281e, 0x2061, 0x0100, 0xc1bc, 0x8103,
824 0x8003, 0xa080, 0x0022, 0x609a, 0x60a4, 0xa085, 0x0020, 0x60ae,
825 0x0c7f, 0x007c, 0x0c7e, 0xd1bc, 0x00c0, 0x283e, 0x007e, 0x2001,
826 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x283a, 0x2061, 0x0100,
827 0x0078, 0x2840, 0x2061, 0x0200, 0x0078, 0x2840, 0x2061, 0x0100,
828 0xc1bc, 0x8103, 0x8003, 0xa080, 0x0020, 0x609a, 0x60a4, 0xa28c,
829 0x0020, 0x0040, 0x284e, 0xc2ac, 0xa39d, 0x4000, 0xc3fc, 0xd3b4,
830 0x00c0, 0x2853, 0xc3fd, 0x62ae, 0x2010, 0x60a4, 0x63ae, 0x2018,
831 0x0c7f, 0x007c, 0x2091, 0x8000, 0x0c7e, 0x0e7e, 0x6818, 0xa005,
832 0x0040, 0x28c0, 0xd1fc, 0x0040, 0x2869, 0x2061, 0x96d0, 0x0078,
833 0x286b, 0x2061, 0x95c0, 0x1078, 0x28c8, 0x0040, 0x28a2, 0x20a9,
834 0x0101, 0xd1fc, 0x0040, 0x2878, 0x2061, 0x95d0, 0x0078, 0x287a,
835 0x2061, 0x94c0, 0x0c7e, 0x1078, 0x28c8, 0x0040, 0x2885, 0x0c7f,
836 0x8c60, 0x00f0, 0x287a, 0x0078, 0x28c0, 0x007f, 0xd1fc, 0x0040,
837 0x288f, 0xa082, 0x95d0, 0x2071, 0x4f80, 0x0078, 0x2893, 0xa082,
838 0x94c0, 0x2071, 0x4f40, 0x707a, 0x7176, 0x2138, 0x2001, 0x0004,
839 0x7066, 0x7083, 0x000f, 0x71d4, 0xc1dc, 0x71d6, 0x1078, 0x2663,
840 0x0078, 0x28bc, 0xd1fc, 0x00c0, 0x28a9, 0x2071, 0x4f40, 0x0078,
841 0x28ab, 0x2071, 0x4f80, 0x6020, 0xc0dd, 0x6022, 0x7176, 0x2138,
842 0x2c00, 0x707e, 0x2001, 0x0006, 0x7066, 0x7083, 0x000f, 0x71d4,
843 0xc1dc, 0x71d6, 0x1078, 0x2663, 0x2001, 0x0000, 0x0078, 0x28c2,
844 0x2001, 0x0001, 0x2091, 0x8001, 0xa005, 0x0e7f, 0x0c7f, 0x007c,
845 0x2c04, 0xa005, 0x0040, 0x28df, 0x2060, 0x6010, 0xa306, 0x00c0,
846 0x28dc, 0x600c, 0xa206, 0x00c0, 0x28dc, 0x6014, 0xa106, 0x00c0,
847 0x28dc, 0xa006, 0x0078, 0x28e1, 0x6000, 0x0078, 0x28c9, 0xa085,
848 0x0001, 0x007c, 0x0f7e, 0x0e7e, 0x017e, 0xd1bc, 0x00c0, 0x28fa,
849 0x2079, 0x4f40, 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f,
850 0x0040, 0x28f6, 0x2071, 0x0100, 0x0078, 0x28fe, 0x2071, 0x0200,
851 0x0078, 0x28fe, 0x2079, 0x4f80, 0x2071, 0x0100, 0x7920, 0xa18c,
852 0x000f, 0x70ec, 0xd0c4, 0x00c0, 0x2908, 0x017f, 0x0078, 0x2923,
853 0x810b, 0x810b, 0x810b, 0x810b, 0x007f, 0xd0bc, 0x00c0, 0x2920,
854 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x291c,
855 0xa18d, 0x0f00, 0x0078, 0x2922, 0xa18d, 0x0f00, 0x0078, 0x2922,
856 0xa18d, 0x0800, 0x2104, 0x0e7f, 0x0f7f, 0x007c, 0x0e7e, 0x2001,
857 0x4f01, 0x2004, 0xd0ac, 0x00c0, 0x29a3, 0x68e4, 0xd0ac, 0x0040,
858 0x29a3, 0xa084, 0x0006, 0x00c0, 0x29a3, 0x6014, 0xd0fc, 0x00c0,
859 0x293d, 0x2071, 0x53c0, 0x0078, 0x293f, 0x2071, 0x5440, 0x8007,
860 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xae70, 0x7004, 0xa084,
861 0x000a, 0x00c0, 0x29a3, 0x7108, 0xa194, 0xff00, 0x0040, 0x29a3,
862 0xa18c, 0x00ff, 0x2001, 0x000a, 0xa106, 0x0040, 0x2972, 0x2001,
863 0x000c, 0xa106, 0x0040, 0x2976, 0x2001, 0x0012, 0xa106, 0x0040,
864 0x297a, 0x2001, 0x0014, 0xa106, 0x0040, 0x297e, 0x2001, 0x0019,
865 0xa106, 0x0040, 0x2982, 0x2001, 0x0032, 0xa106, 0x0040, 0x2986,
866 0x0078, 0x298a, 0x2009, 0x000c, 0x0078, 0x298c, 0x2009, 0x0012,
867 0x0078, 0x298c, 0x2009, 0x0014, 0x0078, 0x298c, 0x2009, 0x0019,
868 0x0078, 0x298c, 0x2009, 0x0020, 0x0078, 0x298c, 0x2009, 0x003f,
869 0x0078, 0x298c, 0x2011, 0x0000, 0x2100, 0xa205, 0x700a, 0x2071,
870 0x4f00, 0x7004, 0xd0bc, 0x0040, 0x29a3, 0x6014, 0xd0fc, 0x00c0,
871 0x299e, 0x70ea, 0x2071, 0x4f40, 0x0078, 0x29a1, 0x70ee, 0x2071,
872 0x4f80, 0x701f, 0x000d, 0x0e7f, 0x007c, 0x2001, 0x4f05, 0x2004,
873 0xd0e4, 0x00c0, 0x29b1, 0x7804, 0xa084, 0xff1f, 0xa085, 0x6340,
874 0x7806, 0x007c, 0x0068, 0x29b2, 0x2091, 0x8000, 0x2071, 0x0000,
875 0x007e, 0x7018, 0xd084, 0x00c0, 0x29b9, 0x007f, 0x2071, 0x0010,
876 0x70ca, 0x007f, 0x70c6, 0x70c3, 0x8002, 0x70db, 0x080f, 0x70df,
877 0x000b, 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x0078,
878 0x29cf, 0x7f3c, 0x7e58, 0x7c30, 0x7d38, 0x78a0, 0x708e, 0x7592,
879 0x7496, 0x769a, 0x779e, 0xa594, 0x003f, 0xd4f4, 0x0040, 0x29e6,
880 0xa784, 0x007d, 0x00c0, 0x441d, 0x1078, 0x29b2, 0xa49c, 0x000f,
881 0xa382, 0x0004, 0x0050, 0x29f1, 0xa3a6, 0x0007, 0x00c0, 0x29b2,
882 0x2418, 0x8507, 0xa084, 0x000f, 0x0079, 0x29f6, 0x3071, 0x3162,
883 0x318d, 0x33ff, 0x37e8, 0x3862, 0x3917, 0x39a8, 0x3a96, 0x3b85,
884 0x2a09, 0x2a06, 0x2e42, 0x2f65, 0x37b9, 0x2a06, 0x1078, 0x29b2,
885 0x007c, 0xa006, 0x0078, 0x2a13, 0x7808, 0xc08d, 0x780a, 0xa006,
886 0x7002, 0x704e, 0x7046, 0x70d2, 0x7060, 0xa005, 0x00c0, 0x2b79,
887 0x7064, 0xa084, 0x0007, 0x0079, 0x2a1d, 0x2a25, 0x2a98, 0x2aa1,
888 0x2aac, 0x2ab7, 0x2b5f, 0x2ac2, 0x2a98, 0x7830, 0xd0bc, 0x00c0,
889 0x2a08, 0x71d4, 0xd1bc, 0x00c0, 0x2a08, 0xd1b4, 0x00c0, 0x2a75,
890 0x70a4, 0xa086, 0x0001, 0x0040, 0x2a08, 0x70b4, 0xa06d, 0x6800,
891 0xa065, 0xa055, 0x789b, 0x0010, 0x6b0c, 0x7baa, 0x6808, 0xa045,
892 0x6d10, 0x6804, 0xa06d, 0xa05d, 0xa886, 0x0001, 0x0040, 0x2a4b,
893 0x69bc, 0x7daa, 0x79aa, 0x68c0, 0xa04d, 0x6e1c, 0x2001, 0x0010,
894 0x0078, 0x2cd3, 0x7060, 0xa005, 0x00c0, 0x2a08, 0x0c7e, 0x0d7e,
895 0x70b4, 0xa06d, 0x6800, 0xa065, 0xa055, 0x789b, 0x0010, 0x6b0c,
896 0x7baa, 0x6808, 0xa045, 0x6d10, 0x6804, 0xa06d, 0xa05d, 0xa886,
897 0x0001, 0x0040, 0x2a6e, 0x69bc, 0x7daa, 0x79aa, 0x68c0, 0xa04d,
898 0x6e1c, 0x2001, 0x0020, 0x0078, 0x2cd3, 0x1078, 0x43b0, 0x00c0,
899 0x2a08, 0x781b, 0x005b, 0x70bc, 0xa06d, 0x68b4, 0x785a, 0x6894,
900 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0x7808, 0xc08d, 0x780a,
901 0x68bc, 0x7042, 0xc1b4, 0x71d6, 0x70b8, 0xa065, 0x68c0, 0x705a,
902 0x7003, 0x0002, 0x2d00, 0x704e, 0xad80, 0x0009, 0x7046, 0x007c,
903 0x1078, 0x43b0, 0x00c0, 0x2aa0, 0x781b, 0x0047, 0x7003, 0x0004,
904 0x007c, 0x1078, 0x43b0, 0x00c0, 0x2aab, 0x2011, 0x000c, 0x1078,
905 0x2ad2, 0x7003, 0x0004, 0x007c, 0x1078, 0x43b0, 0x00c0, 0x2ab6,
906 0x2011, 0x0006, 0x1078, 0x2ad2, 0x7003, 0x0004, 0x007c, 0x1078,
907 0x43b0, 0x00c0, 0x2ac1, 0x2011, 0x000d, 0x1078, 0x2ad2, 0x7003,
908 0x0004, 0x007c, 0x1078, 0x43b0, 0x00c0, 0x2ad1, 0x2011, 0x0006,
909 0x1078, 0x2ad2, 0x707c, 0x707f, 0x0000, 0x2068, 0x704e, 0x7003,
910 0x0001, 0x007c, 0x7174, 0xc1fc, 0x8107, 0x7882, 0x789b, 0x0010,
911 0xa286, 0x000c, 0x00c0, 0x2ae1, 0x7aaa, 0x2001, 0x0001, 0x0078,
912 0x2af6, 0xa18c, 0x001f, 0xa18d, 0x00c0, 0x79aa, 0xa286, 0x000d,
913 0x0040, 0x2aef, 0x7aaa, 0x2001, 0x0002, 0x0078, 0x2af6, 0x78ab,
914 0x0020, 0x7178, 0x79aa, 0x7aaa, 0x2001, 0x0004, 0x789b, 0x0060,
915 0x78aa, 0x785b, 0x0004, 0x781b, 0x0116, 0x1078, 0x43d3, 0x7083,
916 0x000f, 0x70d4, 0xd0b4, 0x0040, 0x2b12, 0xc0b4, 0x70d6, 0x0c7e,
917 0x70b8, 0xa065, 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001,
918 0x601a, 0x0c7f, 0x007c, 0x7014, 0xa005, 0x00c0, 0x2b21, 0x70d4,
919 0xd0b4, 0x0040, 0x2b22, 0x70b8, 0xac06, 0x00c0, 0x2b22, 0x1078,
920 0x2b01, 0x007c, 0x017e, 0x71a4, 0xa186, 0x0001, 0x0040, 0x2b54,
921 0x0d7e, 0x027e, 0x2100, 0x2011, 0x0001, 0xa212, 0x70b4, 0x2068,
922 0x6800, 0xac06, 0x0040, 0x2b3b, 0x8211, 0x0040, 0x2b52, 0x1078,
923 0x2b56, 0x0078, 0x2b30, 0x0c7e, 0x2100, 0x2011, 0x0001, 0xa212,
924 0x70b4, 0x2068, 0x6800, 0x2060, 0x6008, 0xa084, 0xfbef, 0x600a,
925 0x8211, 0x0040, 0x2b4f, 0x1078, 0x2b56, 0x0078, 0x2b42, 0x70a7,
926 0x0001, 0x0c7f, 0x027f, 0x0d7f, 0x017f, 0x007c, 0xade8, 0x0005,
927 0x70ac, 0xad06, 0x00c0, 0x2b5e, 0x70a8, 0x2068, 0x007c, 0x1078,
928 0x43b0, 0x00c0, 0x2a08, 0x707c, 0x2068, 0x7774, 0x1078, 0x424e,
929 0x2c50, 0x1078, 0x4492, 0x789b, 0x0010, 0x6814, 0xa084, 0x001f,
930 0xc0bd, 0x78aa, 0x6e1c, 0x2041, 0x0001, 0x2001, 0x0004, 0x0078,
931 0x2cd9, 0x1078, 0x43b0, 0x00c0, 0x2a08, 0x789b, 0x0010, 0x7060,
932 0x2068, 0x6f14, 0x70d4, 0xd0b4, 0x0040, 0x2b93, 0xc0b4, 0x70d6,
933 0x0c7e, 0x70b8, 0xa065, 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018,
934 0x8001, 0x601a, 0x0c7f, 0x1078, 0x424e, 0x2c50, 0x1078, 0x4492,
935 0x6824, 0xa005, 0x0040, 0x2ba4, 0xa082, 0x0006, 0x0048, 0x2ba2,
936 0x0078, 0x2ba4, 0x6827, 0x0005, 0x6814, 0xa084, 0x001f, 0xc0bd,
937 0x78aa, 0x2031, 0x0020, 0x2041, 0x0001, 0x2001, 0x0003, 0x0078,
938 0x2cd9, 0xc28d, 0x72d6, 0x72c0, 0xa200, 0xa015, 0x7154, 0x8108,
939 0xa12a, 0x0048, 0x2bbc, 0x71c0, 0x2164, 0x6504, 0x85ff, 0x00c0,
940 0x2bd3, 0x7156, 0x8421, 0x00c0, 0x2bb7, 0x70d4, 0xd08c, 0x0040,
941 0x2bcf, 0x70d0, 0xa005, 0x00c0, 0x2bcf, 0x70d3, 0x000a, 0x007c,
942 0x2200, 0x0078, 0x2bc1, 0x70d4, 0xc08c, 0x70d6, 0x70d3, 0x0000,
943 0x6034, 0xa005, 0x00c0, 0x2bd0, 0x6708, 0xa784, 0x073f, 0x0040,
944 0x2c02, 0xd7d4, 0x00c0, 0x2bd0, 0xa784, 0x0021, 0x00c0, 0x2bd0,
945 0xa784, 0x0002, 0x0040, 0x2bf3, 0xa784, 0x0004, 0x0040, 0x2bd0,
946 0xa7bc, 0xfffb, 0x670a, 0xa784, 0x0218, 0x00c0, 0x2bd0, 0xa784,
947 0x0100, 0x0040, 0x2c02, 0x6018, 0xa005, 0x00c0, 0x2bd0, 0xa7bc,
948 0xfeff, 0x670a, 0x2568, 0x6823, 0x0000, 0x6e1c, 0xa684, 0x000e,
949 0x6318, 0x0040, 0x2c13, 0x601c, 0xa302, 0x0048, 0x2c16, 0x0040,
950 0x2c16, 0x0078, 0x2bd0, 0x83ff, 0x00c0, 0x2bd0, 0x2d58, 0x2c50,
951 0x7156, 0xd7bc, 0x00c0, 0x2c1f, 0x7028, 0x6022, 0x603a, 0xc7bc,
952 0x670a, 0x68c0, 0xa065, 0xa04d, 0x6100, 0x2a60, 0x2041, 0x0001,
953 0x6b14, 0xa39c, 0x001f, 0xa39d, 0x00c0, 0xd1fc, 0x0040, 0x2c33,
954 0xd684, 0x0040, 0x2c35, 0xa39c, 0xffbf, 0xd6a4, 0x0040, 0x2c3a,
955 0xa39d, 0x0020, 0xa684, 0x000e, 0x00c0, 0x2c85, 0xc7a5, 0x670a,
956 0x2c00, 0x68c6, 0x77a4, 0xa786, 0x0001, 0x00c0, 0x2c59, 0x70d4,
957 0xd0b4, 0x00c0, 0x2c59, 0x7000, 0xa082, 0x0002, 0x00c8, 0x2c59,
958 0x7830, 0xd0bc, 0x00c0, 0x2c59, 0x789b, 0x0010, 0x7baa, 0x0078,
959 0x2cd1, 0x8739, 0x77a6, 0x2750, 0x77b0, 0xa7b0, 0x0005, 0x70ac,
960 0xa606, 0x00c0, 0x2c64, 0x76a8, 0x76b2, 0x2c3a, 0x8738, 0x2d3a,
961 0x8738, 0x283a, 0x8738, 0x233a, 0x8738, 0x253a, 0x7830, 0xd0bc,
962 0x0040, 0x2c7c, 0x2091, 0x8000, 0x2091, 0x303d, 0x70d4, 0xa084,
963 0x303d, 0x2091, 0x8000, 0x2090, 0xaad5, 0x0000, 0x0040, 0x2c84,
964 0x8421, 0x2200, 0x00c0, 0x2bb6, 0x007c, 0xd1dc, 0x0040, 0x3e49,
965 0x2029, 0x0020, 0xd69c, 0x00c0, 0x2c92, 0x8528, 0xd68c, 0x00c0,
966 0x2c92, 0x8528, 0x8840, 0x6f14, 0x610c, 0x8108, 0xa18c, 0x00ff,
967 0x70cc, 0xa160, 0x2c64, 0x8cff, 0x0040, 0x2cb1, 0x6014, 0xa706,
968 0x00c0, 0x2c9a, 0x60b8, 0x8001, 0x60ba, 0x00c0, 0x2c95, 0x2a60,
969 0x6008, 0xa085, 0x0100, 0x600a, 0x2200, 0x8421, 0x00c0, 0x2bb6,
970 0x007c, 0x2a60, 0x610e, 0x69be, 0x2c00, 0x68c6, 0x8840, 0x6008,
971 0xc0d5, 0x600a, 0x77a4, 0xa786, 0x0001, 0x00c0, 0x2c59, 0x70d4,
972 0xd0b4, 0x00c0, 0x2c59, 0x7000, 0xa082, 0x0002, 0x00c8, 0x2c59,
973 0x7830, 0xd0bc, 0x00c0, 0x2c59, 0x789b, 0x0010, 0x7baa, 0x7daa,
974 0x79aa, 0x2001, 0x0002, 0x007e, 0x6018, 0x8000, 0x601a, 0x0078,
975 0x2cda, 0x007e, 0x2960, 0x6104, 0x2a60, 0xa184, 0x0018, 0x0040,
976 0x2cf6, 0xa184, 0x0010, 0x0040, 0x2ce9, 0x1078, 0x405e, 0x00c0,
977 0x2d1b, 0xa184, 0x0008, 0x0040, 0x2cf6, 0x69a0, 0xa184, 0x0600,
978 0x00c0, 0x2cf6, 0x1078, 0x3f3e, 0x0078, 0x2d1b, 0x69a0, 0xa184,
979 0x1e00, 0x0040, 0x2d26, 0xa184, 0x0800, 0x0040, 0x2d0f, 0x0c7e,
980 0x2960, 0x6000, 0xa085, 0x2000, 0x6002, 0x6104, 0xa18d, 0x0010,
981 0x6106, 0x0c7f, 0x1078, 0x405e, 0x00c0, 0x2d1b, 0x69a0, 0xa184,
982 0x0200, 0x0040, 0x2d17, 0x1078, 0x3fa1, 0x0078, 0x2d1b, 0xa184,
983 0x0400, 0x00c0, 0x2cf2, 0x69a0, 0xa184, 0x1000, 0x0040, 0x2d26,
984 0x6914, 0xa18c, 0xff00, 0x810f, 0x1078, 0x27e6, 0x027f, 0xa68c,
985 0x00e0, 0xa684, 0x0060, 0x0040, 0x2d33, 0xa086, 0x0060, 0x00c0,
986 0x2d33, 0xa18d, 0x4000, 0xa18d, 0x0104, 0x69b6, 0x789b, 0x0060,
987 0x2800, 0x78aa, 0x6818, 0xc0fd, 0x681a, 0xd6bc, 0x0040, 0x2d4e,
988 0xc0fc, 0x7087, 0x0000, 0xa08a, 0x000d, 0x0050, 0x2d4c, 0xa08a,
989 0x000c, 0x7186, 0x2001, 0x000c, 0x800c, 0x718a, 0x78aa, 0x3518,
990 0x3340, 0x3428, 0x8000, 0x80ac, 0xaf80, 0x002b, 0x20a0, 0x789b,
991 0x0000, 0xad80, 0x000b, 0x2098, 0x53a6, 0x23a8, 0x2898, 0x25a0,
992 0xa286, 0x0020, 0x00c0, 0x2d86, 0x70d4, 0xc0b5, 0x70d6, 0x2c00,
993 0x70ba, 0x2d00, 0x70be, 0x6814, 0xc0fc, 0x8007, 0x7882, 0xa286,
994 0x0002, 0x0040, 0x2dbc, 0x70a4, 0x8000, 0x70a6, 0x74b4, 0xa498,
995 0x0005, 0x70ac, 0xa306, 0x00c0, 0x2d7e, 0x73a8, 0x73b6, 0xa286,
996 0x0010, 0x0040, 0x2a08, 0x0d7f, 0x0c7f, 0x007c, 0x7000, 0xa005,
997 0x00c0, 0x2d64, 0xa286, 0x0002, 0x00c0, 0x2dd6, 0x1078, 0x43b0,
998 0x00c0, 0x2d64, 0x6814, 0xc0fc, 0x8007, 0x7882, 0x2091, 0x8000,
999 0x781b, 0x005b, 0x68b4, 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898,
1000 0x78d2, 0x78da, 0x2091, 0x8001, 0x7808, 0xc08d, 0x780a, 0x127e,
1001 0x0d7e, 0x0c7e, 0x70d4, 0xa084, 0x2700, 0x2090, 0x0c7f, 0x0d7f,
1002 0x127f, 0x2900, 0x705a, 0x68bc, 0x7042, 0x7003, 0x0002, 0x2d00,
1003 0x704e, 0xad80, 0x0009, 0x7046, 0x7830, 0xd0bc, 0x0040, 0x2dc8,
1004 0x2091, 0x303d, 0x70d4, 0xa084, 0x303d, 0x2091, 0x8000, 0x2090,
1005 0x70a4, 0xa005, 0x00c0, 0x2dcd, 0x007c, 0x8421, 0x0040, 0x2dcc,
1006 0x7250, 0x70c0, 0xa200, 0xa015, 0x0078, 0x2bb6, 0xa286, 0x0010,
1007 0x00c0, 0x2e07, 0x1078, 0x43b0, 0x00c0, 0x2d64, 0x6814, 0xc0fc,
1008 0x8007, 0x7882, 0x781b, 0x005b, 0x68b4, 0x785a, 0x6894, 0x78d6,
1009 0x78de, 0x6898, 0x78d2, 0x78da, 0x7808, 0xc08d, 0x780a, 0x70a4,
1010 0x8000, 0x70a6, 0x74b4, 0xa490, 0x0005, 0x70ac, 0xa206, 0x00c0,
1011 0x2dfa, 0x72a8, 0x72b6, 0x2900, 0x705a, 0x68bc, 0x7042, 0x7003,
1012 0x0002, 0x2d00, 0x704e, 0xad80, 0x0009, 0x7046, 0x007c, 0x6bb4,
1013 0xa39d, 0x2000, 0x7b5a, 0x6814, 0xc0fc, 0x8007, 0x7882, 0x6b94,
1014 0x7bd6, 0x7bde, 0x6e98, 0x7ed2, 0x7eda, 0x781b, 0x005b, 0x2900,
1015 0x705a, 0x7202, 0x7808, 0xc08d, 0x780a, 0x2300, 0xa605, 0x0040,
1016 0x2e32, 0x70d4, 0xa084, 0x2700, 0xa086, 0x2300, 0x00c0, 0x2e2c,
1017 0x2009, 0x0000, 0x0078, 0x2e2e, 0x2009, 0x0001, 0xa284, 0x000f,
1018 0x1079, 0x2e38, 0xad80, 0x0009, 0x7046, 0x2d00, 0x704e, 0x007c,
1019 0x2e40, 0x493f, 0x493f, 0x492c, 0x493f, 0x2e40, 0x2e40, 0x2e40,
1020 0x1078, 0x29b2, 0x7808, 0xa084, 0xfffd, 0x780a, 0x1078, 0x29a5,
1021 0x0f7e, 0x2079, 0x4f00, 0x78ac, 0x0f7f, 0xd084, 0x0040, 0x2e6a,
1022 0x7064, 0xa086, 0x0001, 0x00c0, 0x2e58, 0x7066, 0x0078, 0x2f41,
1023 0x7064, 0xa086, 0x0005, 0x00c0, 0x2e68, 0x707c, 0x2068, 0x681b,
1024 0x0004, 0x6817, 0x0000, 0x6820, 0xa084, 0x00ff, 0xc09d, 0x6822,
1025 0x7067, 0x0000, 0x70a7, 0x0000, 0x70a8, 0x70b2, 0x70b6, 0x1078,
1026 0x2b01, 0x157e, 0x2011, 0x0004, 0x7164, 0xa186, 0x0001, 0x0040,
1027 0x2e8a, 0xa186, 0x0007, 0x00c0, 0x2e81, 0x701f, 0x0005, 0x0078,
1028 0x2e8a, 0x701f, 0x0001, 0x7067, 0x0000, 0x70d4, 0xc0dd, 0x70d6,
1029 0x0078, 0x2e8c, 0x7067, 0x0000, 0x2001, 0x4f0a, 0x2004, 0xa084,
1030 0x00ff, 0xa086, 0x0018, 0x0040, 0x2e9c, 0x7018, 0x7016, 0xa005,
1031 0x00c0, 0x2e9c, 0x70a7, 0x0001, 0x067e, 0x1078, 0x45d6, 0x20a9,
1032 0x0010, 0x2039, 0x0000, 0x1078, 0x4148, 0xa7b8, 0x0100, 0x00f0,
1033 0x2ea3, 0x067f, 0x7000, 0x0079, 0x2ead, 0x2ee7, 0x2ec2, 0x2ec2,
1034 0x2eb7, 0x2ee7, 0x2ee7, 0x2ee7, 0x2eb5, 0x1078, 0x29b2, 0x7060,
1035 0xa005, 0x0040, 0x2ee7, 0xad06, 0x00c0, 0x2ec2, 0x6800, 0x7062,
1036 0x0078, 0x2ed4, 0x6820, 0xd084, 0x00c0, 0x2ed0, 0x6f14, 0x1078,
1037 0x424e, 0x6008, 0xc0d4, 0x600a, 0x1078, 0x3e19, 0x0078, 0x2ed4,
1038 0x705c, 0x2060, 0x6800, 0x6002, 0xa684, 0x5f00, 0x681e, 0x6818,
1039 0xd0fc, 0x0040, 0x2edc, 0x6a1a, 0x6817, 0x0000, 0x682b, 0x0000,
1040 0x6820, 0xa084, 0x00ff, 0xc09d, 0x6822, 0x1078, 0x2073, 0xb284,
1041 0x0400, 0x0040, 0x2eef, 0x2021, 0x96d0, 0x0078, 0x2ef1, 0x2021,
1042 0x95c0, 0x1078, 0x2f46, 0xb284, 0x0400, 0x0040, 0x2efb, 0x2021,
1043 0x4f98, 0x0078, 0x2efd, 0x2021, 0x4f58, 0x1078, 0x2f46, 0x20a9,
1044 0x0101, 0xb284, 0x0400, 0x0040, 0x2f09, 0x2021, 0x95d0, 0x0078,
1045 0x2f0b, 0x2021, 0x94c0, 0x1078, 0x2f46, 0x8420, 0x00f0, 0x2f0b,
1046 0xb284, 0x0300, 0x0040, 0x2f18, 0x2061, 0x54c0, 0x0078, 0x2f1a,
1047 0x2061, 0x74c0, 0x2021, 0x0002, 0x20a9, 0x0100, 0x6110, 0x81ff,
1048 0x0040, 0x2f37, 0x6018, 0x017e, 0x007e, 0x2011, 0x4f02, 0x220c,
1049 0xa102, 0x2012, 0x007f, 0x017f, 0xa102, 0x0050, 0x2f37, 0x6012,
1050 0x00c0, 0x2f37, 0x2011, 0x4f04, 0x2204, 0xc0a5, 0x2012, 0x601b,
1051 0x0000, 0xace0, 0x0010, 0x00f0, 0x2f1e, 0x8421, 0x00c0, 0x2f1c,
1052 0x157f, 0x7003, 0x0000, 0x704f, 0x0000, 0x007c, 0x047e, 0x2404,
1053 0xa005, 0x0040, 0x2f61, 0x2068, 0x6800, 0x007e, 0x6a1a, 0x6817,
1054 0x0000, 0x682b, 0x0000, 0x68b4, 0xa084, 0x5f00, 0x681e, 0x6820,
1055 0xa084, 0x00ff, 0xc09d, 0x6822, 0x1078, 0x2073, 0x007f, 0x0078,
1056 0x2f48, 0x047f, 0x2023, 0x0000, 0x007c, 0xa282, 0x0003, 0x0050,
1057 0x2f6b, 0x1078, 0x29b2, 0x2300, 0x0079, 0x2f6e, 0x2f71, 0x2ffc,
1058 0x3019, 0xa282, 0x0002, 0x0040, 0x2f77, 0x1078, 0x29b2, 0x7064,
1059 0x7067, 0x0000, 0x7083, 0x0000, 0x0079, 0x2f7e, 0x2f86, 0x2f86,
1060 0x2f88, 0x2fc8, 0x3e55, 0x2f86, 0x2fc8, 0x2f86, 0x1078, 0x29b2,
1061 0x7774, 0x1078, 0x4148, 0x7774, 0xa7bc, 0x8f00, 0x1078, 0x424e,
1062 0x6018, 0xa005, 0x0040, 0x2fbf, 0xd7fc, 0x00c0, 0x2f9b, 0x2021,
1063 0x95c0, 0x0078, 0x2f9d, 0x2021, 0x96d0, 0x2009, 0x0005, 0x2011,
1064 0x0010, 0x1078, 0x3034, 0x0040, 0x2fbf, 0x157e, 0x20a9, 0x0101,
1065 0xd7fc, 0x00c0, 0x2faf, 0x2021, 0x94c0, 0x0078, 0x2fb1, 0x2021,
1066 0x95d0, 0x047e, 0x2009, 0x0005, 0x2011, 0x0010, 0x1078, 0x3034,
1067 0x047f, 0x0040, 0x2fbe, 0x8420, 0x00f0, 0x2fb1, 0x157f, 0x8738,
1068 0xa784, 0x001f, 0x00c0, 0x2f8e, 0x0078, 0x2a0c, 0x0078, 0x2a0c,
1069 0x7774, 0x1078, 0x424e, 0x6018, 0xa005, 0x0040, 0x2ffa, 0xd7fc,
1070 0x00c0, 0x2fd6, 0x2021, 0x95c0, 0x0078, 0x2fd8, 0x2021, 0x96d0,
1071 0x2009, 0x0005, 0x2011, 0x0020, 0x1078, 0x3034, 0x0040, 0x2ffa,
1072 0x157e, 0x20a9, 0x0101, 0xd7fc, 0x00c0, 0x2fea, 0x2021, 0x94c0,
1073 0x0078, 0x2fec, 0x2021, 0x95d0, 0x047e, 0x2009, 0x0005, 0x2011,
1074 0x0020, 0x1078, 0x3034, 0x047f, 0x0040, 0x2ff9, 0x8420, 0x00f0,
1075 0x2fec, 0x157f, 0x0078, 0x2a0c, 0x2200, 0x0079, 0x2fff, 0x3002,
1076 0x3004, 0x3004, 0x1078, 0x29b2, 0x2009, 0x0012, 0x7064, 0xa086,
1077 0x0002, 0x0040, 0x300d, 0x2009, 0x000e, 0x6818, 0xd0fc, 0x0040,
1078 0x3012, 0x691a, 0x7067, 0x0000, 0x70d4, 0xc0dd, 0x70d6, 0x0078,
1079 0x435d, 0x2200, 0x0079, 0x301c, 0x3021, 0x3004, 0x301f, 0x1078,
1080 0x29b2, 0x1078, 0x45d6, 0x7000, 0xa086, 0x0002, 0x00c0, 0x3dc7,
1081 0x1078, 0x3e36, 0x6008, 0xa084, 0xfbef, 0x600a, 0x1078, 0x3db8,
1082 0x0040, 0x3dc7, 0x0078, 0x2a0c, 0x2404, 0xa005, 0x0040, 0x306d,
1083 0x2068, 0x2d04, 0x007e, 0x6814, 0xa706, 0x0040, 0x3043, 0x2d20,
1084 0x007f, 0x0078, 0x3035, 0x007f, 0x2022, 0x691a, 0x6817, 0x0000,
1085 0x682b, 0x0000, 0x68b4, 0xa084, 0x5f00, 0x681e, 0x6820, 0xa084,
1086 0x00ff, 0xa205, 0x6822, 0x1078, 0x2073, 0x2021, 0x4f02, 0x241c,
1087 0x8319, 0x2322, 0x6010, 0x8001, 0x6012, 0x00c0, 0x3064, 0x2021,
1088 0x4f04, 0x2404, 0xc0a5, 0x2022, 0x6008, 0xa084, 0xf9ef, 0x600a,
1089 0x1078, 0x2b22, 0x1078, 0x3e36, 0x007c, 0xa085, 0x0001, 0x0078,
1090 0x306c, 0x2300, 0x0079, 0x3074, 0x3079, 0x3077, 0x30f9, 0x1078,
1091 0x29b2, 0x78e4, 0xa005, 0x00d0, 0x30af, 0x3208, 0x007e, 0x2001,
1092 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x308a, 0xa18c, 0x0300,
1093 0x0078, 0x308c, 0xa18c, 0x0400, 0x0040, 0x3092, 0x0018, 0x2a08,
1094 0x0078, 0x3094, 0x0028, 0x2a08, 0x2008, 0xa084, 0x0030, 0x00c0,
1095 0x309b, 0x0078, 0x37b9, 0x78ec, 0xa084, 0x0003, 0x0040, 0x3099,
1096 0x2100, 0xa084, 0x0007, 0x0079, 0x30a5, 0x30d9, 0x30e3, 0x30ce,
1097 0x30ad, 0x43a5, 0x43a5, 0x30ad, 0x30ee, 0x1078, 0x29b2, 0x7000,
1098 0xa086, 0x0004, 0x00c0, 0x30c9, 0x7064, 0xa086, 0x0002, 0x00c0,
1099 0x30bf, 0x2011, 0x0002, 0x2019, 0x0000, 0x0078, 0x2f65, 0x7064,
1100 0xa086, 0x0006, 0x0040, 0x30b9, 0x7064, 0xa086, 0x0004, 0x0040,
1101 0x30b9, 0x79e4, 0x2001, 0x0003, 0x0078, 0x3443, 0x6818, 0xd0fc,
1102 0x0040, 0x30d4, 0x681b, 0x001d, 0x1078, 0x4118, 0x781b, 0x0064,
1103 0x007c, 0x6818, 0xd0fc, 0x0040, 0x30df, 0x681b, 0x001d, 0x1078,
1104 0x4118, 0x0078, 0x4381, 0x6818, 0xd0fc, 0x0040, 0x30e9, 0x681b,
1105 0x001d, 0x1078, 0x4118, 0x781b, 0x00f8, 0x007c, 0x6818, 0xd0fc,
1106 0x0040, 0x30f4, 0x681b, 0x001d, 0x1078, 0x4118, 0x781b, 0x00c8,
1107 0x007c, 0xa584, 0x000f, 0x00c0, 0x3118, 0x1078, 0x29a5, 0x7000,
1108 0x0079, 0x3102, 0x2a0c, 0x310a, 0x310c, 0x3dc7, 0x3dc7, 0x3dc7,
1109 0x310a, 0x310a, 0x1078, 0x29b2, 0x1078, 0x3e36, 0x6008, 0xa084,
1110 0xfbef, 0x600a, 0x1078, 0x3db8, 0x0040, 0x3dc7, 0x0078, 0x2a0c,
1111 0x78e4, 0xa005, 0x00d0, 0x30af, 0x3208, 0x007e, 0x2001, 0x4f04,
1112 0x2004, 0xd0ec, 0x007f, 0x0040, 0x3129, 0xa18c, 0x0300, 0x0078,
1113 0x312b, 0xa18c, 0x0400, 0x0040, 0x3131, 0x0018, 0x30af, 0x0078,
1114 0x3133, 0x0028, 0x30af, 0x2008, 0xa084, 0x0030, 0x00c0, 0x313b,
1115 0x781b, 0x005b, 0x007c, 0x78ec, 0xa084, 0x0003, 0x0040, 0x3138,
1116 0x2100, 0xa184, 0x0007, 0x0079, 0x3145, 0x3154, 0x3158, 0x314f,
1117 0x314d, 0x43a5, 0x43a5, 0x314d, 0x439f, 0x1078, 0x29b2, 0x1078,
1118 0x4120, 0x781b, 0x0064, 0x007c, 0x1078, 0x4120, 0x0078, 0x4381,
1119 0x1078, 0x4120, 0x781b, 0x00f8, 0x007c, 0x1078, 0x4120, 0x781b,
1120 0x00c8, 0x007c, 0x2300, 0x0079, 0x3165, 0x316a, 0x3168, 0x316c,
1121 0x1078, 0x29b2, 0x0078, 0x39a8, 0x681b, 0x0016, 0x78a3, 0x0000,
1122 0x79e4, 0xa184, 0x0030, 0x0040, 0x39a8, 0x78ec, 0xa084, 0x0003,
1123 0x0040, 0x39a8, 0xa184, 0x0100, 0x0040, 0x3170, 0xa184, 0x0007,
1124 0x0079, 0x3182, 0x318a, 0x3158, 0x30ce, 0x435d, 0x43a5, 0x43a5,
1125 0x435d, 0x439f, 0x1078, 0x4369, 0x007c, 0xa282, 0x0005, 0x0050,
1126 0x3193, 0x1078, 0x29b2, 0x2300, 0x0079, 0x3196, 0x3199, 0x33c9,
1127 0x33d4, 0x2200, 0x0079, 0x319c, 0x31b6, 0x31a3, 0x31b6, 0x31a1,
1128 0x33ac, 0x1078, 0x29b2, 0x789b, 0x0018, 0x78a8, 0xa084, 0x00ff,
1129 0xa082, 0x0020, 0x0048, 0x4107, 0xa08a, 0x0004, 0x00c8, 0x4107,
1130 0x0079, 0x31b2, 0x4107, 0x4107, 0x4107, 0x40b1, 0x789b, 0x0018,
1131 0x79a8, 0xa184, 0x0080, 0x0040, 0x31c7, 0x0078, 0x4107, 0x7000,
1132 0xa005, 0x00c0, 0x31bd, 0x2011, 0x0004, 0x0078, 0x3b93, 0xa184,
1133 0x00ff, 0xa08a, 0x0010, 0x00c8, 0x4107, 0x0079, 0x31cf, 0x31e1,
1134 0x31df, 0x31f6, 0x31fa, 0x32cd, 0x4107, 0x4107, 0x32cf, 0x4107,
1135 0x4107, 0x33a8, 0x33a8, 0x4107, 0x4107, 0x4107, 0x33aa, 0x1078,
1136 0x29b2, 0xd6e4, 0x0040, 0x31ec, 0x2001, 0x0300, 0x8000, 0x8000,
1137 0x783a, 0x781b, 0x00c3, 0x007c, 0x6818, 0xd0fc, 0x0040, 0x31f4,
1138 0x681b, 0x001d, 0x0078, 0x31e4, 0x0078, 0x435d, 0x681b, 0x001d,
1139 0x0078, 0x4111, 0x6920, 0x6922, 0xa684, 0x1800, 0x00c0, 0x325f,
1140 0x6820, 0xd084, 0x00c0, 0x3265, 0x6818, 0xa086, 0x0008, 0x00c0,
1141 0x320b, 0x681b, 0x0000, 0xd6d4, 0x0040, 0x32ca, 0xd6bc, 0x0040,
1142 0x324b, 0x7087, 0x0000, 0x6818, 0xa084, 0x003f, 0xa08a, 0x000d,
1143 0x0050, 0x324b, 0xa08a, 0x000c, 0x7186, 0x2001, 0x000c, 0x800c,
1144 0x718a, 0x789b, 0x0061, 0x78aa, 0x157e, 0x137e, 0x147e, 0x017e,
1145 0x3208, 0xa18c, 0x0300, 0x0040, 0x323d, 0x007e, 0x2001, 0x4f04,
1146 0x2004, 0xd0ec, 0x007f, 0x0040, 0x3239, 0x20a1, 0x012b, 0x0078,
1147 0x323f, 0x20a1, 0x022b, 0x0078, 0x323f, 0x20a1, 0x012b, 0x017f,
1148 0x789b, 0x0000, 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6,
1149 0x147f, 0x137f, 0x157f, 0x6038, 0xa005, 0x00c0, 0x325a, 0x681c,
1150 0xa084, 0x000e, 0x0040, 0x4111, 0x1078, 0x4127, 0x782b, 0x3008,
1151 0x0078, 0x325c, 0x8001, 0x603a, 0x781b, 0x0067, 0x007c, 0xd6e4,
1152 0x0040, 0x3265, 0x781b, 0x0079, 0x007c, 0xa684, 0x0060, 0x0040,
1153 0x32c7, 0xd6dc, 0x0040, 0x32c7, 0xd6fc, 0x00c0, 0x3271, 0x0078,
1154 0x3288, 0xc6fc, 0x7e5a, 0x6eb6, 0x7adc, 0x79d8, 0x78d0, 0x801b,
1155 0x00c8, 0x327b, 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000,
1156 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae,
1157 0xd6f4, 0x0040, 0x328e, 0xc6f4, 0x7e5a, 0x6eb6, 0x7000, 0xa086,
1158 0x0003, 0x00c0, 0x329c, 0x007e, 0x1078, 0x45d6, 0x1078, 0x493f,
1159 0x007f, 0x781b, 0x0076, 0x007c, 0xa006, 0x1078, 0x4a44, 0x6ab0,
1160 0x69ac, 0x6c98, 0x6b94, 0x2200, 0xa105, 0x0040, 0x32ab, 0x2200,
1161 0xa422, 0x2100, 0xa31b, 0x6caa, 0x7cd2, 0x7cda, 0x6ba6, 0x7bd6,
1162 0x7bde, 0x2300, 0xa405, 0x00c0, 0x32bb, 0xc6f5, 0x7e5a, 0x6eb6,
1163 0x781b, 0x0076, 0x007c, 0x781b, 0x0076, 0x2200, 0xa115, 0x00c0,
1164 0x32c4, 0x1078, 0x493f, 0x007c, 0x1078, 0x4977, 0x007c, 0x781b,
1165 0x0079, 0x007c, 0x781b, 0x0067, 0x007c, 0x1078, 0x29b2, 0x0078,
1166 0x331b, 0x6920, 0xd1c4, 0x0040, 0x32e4, 0xc1c4, 0x6922, 0x0c7e,
1167 0x7058, 0x2060, 0x6000, 0xc0e4, 0x6002, 0x6004, 0xa084, 0xfff5,
1168 0x6006, 0x0c7f, 0x0078, 0x330f, 0xd1cc, 0x0040, 0x330f, 0xc1cc,
1169 0x6922, 0x0c7e, 0x7058, 0x2060, 0x6000, 0xc0ec, 0x6002, 0x6004,
1170 0xc0a4, 0x6006, 0x2008, 0x2c48, 0x0c7f, 0xd19c, 0x0040, 0x330f,
1171 0x1078, 0x424a, 0x1078, 0x3f3e, 0x88ff, 0x0040, 0x330f, 0x789b,
1172 0x0060, 0x2800, 0x78aa, 0x7e58, 0xc695, 0x7e5a, 0xd6d4, 0x00c0,
1173 0x330c, 0x781b, 0x0064, 0x007c, 0x781b, 0x0078, 0x007c, 0x7e58,
1174 0xd6d4, 0x00c0, 0x3316, 0x781b, 0x0067, 0x007c, 0x781b, 0x0079,
1175 0x007c, 0x0078, 0x410c, 0x2019, 0x0000, 0x7990, 0xa18c, 0x0007,
1176 0x00c0, 0x3329, 0x6820, 0xa084, 0x0100, 0x0040, 0x3319, 0x2009,
1177 0x0008, 0x789b, 0x0010, 0x78a8, 0xa094, 0x00ff, 0xa286, 0x0001,
1178 0x00c0, 0x3345, 0x2300, 0x7ca8, 0xa400, 0x2018, 0xa102, 0x0040,
1179 0x333d, 0x0048, 0x333d, 0x0078, 0x333f, 0x0078, 0x32d1, 0x24a8,
1180 0x7aa8, 0x00f0, 0x333f, 0x0078, 0x332b, 0xa284, 0x00f0, 0xa086,
1181 0x0020, 0x00c0, 0x3399, 0x8318, 0x8318, 0x2300, 0xa102, 0x0040,
1182 0x3355, 0x0048, 0x3355, 0x0078, 0x3396, 0xa286, 0x0023, 0x0040,
1183 0x3319, 0x681c, 0xa084, 0xfff1, 0x681e, 0x7e58, 0xa684, 0xfff1,
1184 0xc0a5, 0x2030, 0x7e5a, 0x6008, 0xc0a5, 0x600a, 0x0c7e, 0x7058,
1185 0x2060, 0x6004, 0x2008, 0x2c48, 0x0c7f, 0xd1a4, 0x0040, 0x3376,
1186 0x1078, 0x424a, 0x1078, 0x405e, 0x0078, 0x3384, 0x0c7e, 0x7058,
1187 0x2060, 0x6004, 0x2008, 0x2c48, 0x0c7f, 0xd19c, 0x0040, 0x330f,
1188 0x1078, 0x424a, 0x1078, 0x3f3e, 0x88ff, 0x0040, 0x330f, 0x789b,
1189 0x0060, 0x2800, 0x78aa, 0xc695, 0x7e5a, 0xd6d4, 0x00c0, 0x3393,
1190 0x781b, 0x0064, 0x007c, 0x781b, 0x0078, 0x007c, 0x7aa8, 0x0078,
1191 0x332b, 0x8318, 0x2300, 0xa102, 0x0040, 0x33a2, 0x0048, 0x33a2,
1192 0x0078, 0x332b, 0xa284, 0x0080, 0x00c0, 0x4111, 0x0078, 0x410c,
1193 0x0078, 0x4111, 0x0078, 0x4107, 0x7058, 0xa04d, 0x789b, 0x0018,
1194 0x78a8, 0xa084, 0x00ff, 0xa08e, 0x0001, 0x0040, 0x33b9, 0x1078,
1195 0x29b2, 0x7aa8, 0xa294, 0x00ff, 0x78a8, 0xa084, 0x00ff, 0xa08a,
1196 0x0004, 0x00c8, 0x4107, 0x0079, 0x33c5, 0x4107, 0x3e8f, 0x4107,
1197 0x4006, 0xa282, 0x0000, 0x00c0, 0x33cf, 0x1078, 0x29b2, 0x1078,
1198 0x4118, 0x781b, 0x0078, 0x007c, 0xa282, 0x0003, 0x00c0, 0x33da,
1199 0x1078, 0x29b2, 0xd4fc, 0x00c0, 0x33fa, 0x7064, 0xa005, 0x0040,
1200 0x33e3, 0x1078, 0x29b2, 0x6f14, 0x7776, 0xa7bc, 0x8f00, 0x1078,
1201 0x424e, 0x6008, 0xa085, 0x0021, 0x600a, 0x8738, 0xa784, 0x001f,
1202 0x00c0, 0x33e7, 0x1078, 0x411c, 0x7067, 0x0002, 0x701f, 0x0009,
1203 0x0078, 0x33fc, 0x1078, 0x412b, 0x781b, 0x0078, 0x007c, 0xa282,
1204 0x0004, 0x0050, 0x3405, 0x1078, 0x29b2, 0x2300, 0x0079, 0x3408,
1205 0x340b, 0x35cb, 0x360e, 0xa286, 0x0003, 0x0040, 0x3443, 0x7200,
1206 0x7cd8, 0x7ddc, 0x7fd0, 0x71d4, 0xd1bc, 0x00c0, 0x343b, 0xd1b4,
1207 0x0040, 0x343b, 0x7868, 0xa084, 0x00ff, 0x00c0, 0x343b, 0xa282,
1208 0x0002, 0x00c8, 0x343b, 0x0d7e, 0x783b, 0x8300, 0x781b, 0x004c,
1209 0x70bc, 0xa06d, 0x68b4, 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898,
1210 0x78d2, 0x78da, 0xc1b4, 0x71d6, 0x7003, 0x0030, 0x0d7f, 0x2001,
1211 0x0000, 0x0078, 0x3447, 0x783b, 0x1300, 0x781b, 0x004a, 0x2001,
1212 0x0000, 0x0078, 0x3447, 0x7200, 0x7cd8, 0x7ddc, 0x7fd0, 0x704a,
1213 0x68a0, 0xd0ec, 0x0040, 0x344f, 0x6008, 0xc08d, 0x600a, 0xa284,
1214 0x000f, 0x0079, 0x3453, 0x35ab, 0x3460, 0x345d, 0x3711, 0x379d,
1215 0x2a0c, 0x345b, 0x345b, 0x1078, 0x29b2, 0x6008, 0xc0d4, 0x600a,
1216 0xd6e4, 0x0040, 0x3468, 0x7048, 0xa086, 0x0014, 0x00c0, 0x3488,
1217 0x1078, 0x45d6, 0x2009, 0x0000, 0x6818, 0xd0fc, 0x0040, 0x3471,
1218 0x7048, 0xa086, 0x0014, 0x0040, 0x3482, 0x6818, 0xa086, 0x0008,
1219 0x00c0, 0x3563, 0x7858, 0xd09c, 0x0040, 0x3563, 0x6820, 0xd0ac,
1220 0x0040, 0x3563, 0x681b, 0x0014, 0x2009, 0x0002, 0x0078, 0x34c7,
1221 0x7868, 0xa08c, 0x00ff, 0x0040, 0x34c7, 0xa186, 0x0008, 0x00c0,
1222 0x349e, 0x6008, 0xc0a4, 0x600a, 0x1078, 0x3db8, 0x0040, 0x34c7,
1223 0x1078, 0x3e36, 0x1078, 0x45d6, 0x0078, 0x34af, 0xa186, 0x0028,
1224 0x00c0, 0x34c7, 0x6018, 0xa005, 0x0040, 0x3491, 0x8001, 0x0040,
1225 0x3491, 0x8001, 0x0040, 0x3491, 0x601e, 0x0078, 0x3491, 0x6820,
1226 0xd084, 0x0040, 0x2a0c, 0xc084, 0x6822, 0x1078, 0x2b13, 0x705c,
1227 0x0c7e, 0x2060, 0x6800, 0x6002, 0x0c7f, 0x6004, 0x6802, 0xa005,
1228 0x2d00, 0x00c0, 0x34c4, 0x6002, 0x6006, 0x0078, 0x2a0c, 0x017e,
1229 0x81ff, 0x00c0, 0x3511, 0x7000, 0xa086, 0x0030, 0x0040, 0x3511,
1230 0x71d4, 0xd1bc, 0x00c0, 0x3511, 0xd1b4, 0x00c0, 0x34f8, 0x7060,
1231 0xa005, 0x00c0, 0x3511, 0x70a4, 0xa086, 0x0001, 0x0040, 0x3511,
1232 0x7003, 0x0000, 0x047e, 0x057e, 0x077e, 0x067e, 0x0c7e, 0x0d7e,
1233 0x1078, 0x2a35, 0x0d7f, 0x0c7f, 0x067f, 0x077f, 0x057f, 0x047f,
1234 0x71d4, 0xd1b4, 0x00c0, 0x3511, 0x7003, 0x0040, 0x0078, 0x3511,
1235 0x1078, 0x43b0, 0x00c0, 0x3511, 0x781b, 0x005b, 0x0d7e, 0x70bc,
1236 0xa06d, 0x68b4, 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2,
1237 0x78da, 0xc1b4, 0x71d6, 0x7003, 0x0030, 0x7808, 0xc08d, 0x780a,
1238 0x0d7f, 0x1078, 0x3648, 0x017f, 0x81ff, 0x0040, 0x3563, 0xa684,
1239 0xdf00, 0x681e, 0x682b, 0x0000, 0x6f14, 0xa186, 0x0002, 0x00c0,
1240 0x3564, 0x6818, 0xa086, 0x0014, 0x00c0, 0x352d, 0x2008, 0xd6e4,
1241 0x0040, 0x352d, 0x7868, 0xa08c, 0x00ff, 0x1078, 0x2b01, 0x1078,
1242 0x2b22, 0x6820, 0xd0dc, 0x00c0, 0x3564, 0x8717, 0xa294, 0x000f,
1243 0x8213, 0x8213, 0x8213, 0xb284, 0x0300, 0x0040, 0x3543, 0xa290,
1244 0x53c0, 0x0078, 0x3545, 0xa290, 0x5440, 0xa290, 0x0000, 0x221c,
1245 0xd3c4, 0x00c0, 0x354d, 0x0078, 0x3553, 0x8210, 0x2204, 0xa085,
1246 0x0018, 0x2012, 0x8211, 0xd3d4, 0x0040, 0x355e, 0x68a0, 0xd0c4,
1247 0x00c0, 0x355e, 0x1078, 0x36c2, 0x0078, 0x2a0c, 0x6008, 0xc08d,
1248 0x600a, 0x0078, 0x3564, 0x692a, 0x6916, 0x6818, 0xd0fc, 0x0040,
1249 0x356b, 0x7048, 0x681a, 0xa68c, 0xdf00, 0x691e, 0x6410, 0x84ff,
1250 0x0040, 0x3580, 0x2009, 0x4f02, 0x2104, 0x8001, 0x200a, 0x8421,
1251 0x6412, 0x00c0, 0x3580, 0x2021, 0x4f04, 0x2404, 0xc0a5, 0x2022,
1252 0x6018, 0xa005, 0x0040, 0x3588, 0x8001, 0x601a, 0x00c0, 0x358b,
1253 0x6008, 0xc0a4, 0x600a, 0x6820, 0xd084, 0x00c0, 0x3597, 0x6800,
1254 0xa005, 0x00c0, 0x3594, 0x6002, 0x6006, 0x0078, 0x359b, 0x705c,
1255 0x2060, 0x6800, 0x6002, 0x2061, 0x4f00, 0x6887, 0x0103, 0x2d08,
1256 0x206b, 0x0000, 0x6068, 0xa005, 0x616a, 0x0040, 0x35aa, 0x2d02,
1257 0x0078, 0x35ab, 0x616e, 0x7200, 0xa286, 0x0030, 0x0040, 0x35bb,
1258 0xa286, 0x0040, 0x00c0, 0x2a0c, 0x7003, 0x0002, 0x704c, 0x2068,
1259 0x68c4, 0x2060, 0x007c, 0x7003, 0x0002, 0x70bc, 0xa06d, 0x68bc,
1260 0x7042, 0x70b8, 0xa065, 0x68c0, 0x705a, 0x2d00, 0x704e, 0xad80,
1261 0x0009, 0x7046, 0x007c, 0xa282, 0x0004, 0x0048, 0x35d1, 0x1078,
1262 0x29b2, 0x2200, 0x0079, 0x35d4, 0x35d8, 0x35e9, 0x35f6, 0x35e9,
1263 0xa586, 0x1300, 0x0040, 0x35e9, 0xa586, 0x8300, 0x00c0, 0x35cf,
1264 0x7003, 0x0000, 0x6018, 0x8001, 0x601a, 0x6008, 0xa084, 0xfbef,
1265 0x600a, 0x7000, 0xa086, 0x0005, 0x0040, 0x35f3, 0x1078, 0x4118,
1266 0x781b, 0x0078, 0x007c, 0x781b, 0x0079, 0x007c, 0x7890, 0x8007,
1267 0x8001, 0xa084, 0x0007, 0xa080, 0x0018, 0x789a, 0x79a8, 0xa18c,
1268 0x00ff, 0xa186, 0x0003, 0x0040, 0x360b, 0xa186, 0x0000, 0x0040,
1269 0x360b, 0x0078, 0x4107, 0x781b, 0x0079, 0x007c, 0x6820, 0xc095,
1270 0x6822, 0x82ff, 0x00c0, 0x3618, 0x1078, 0x4118, 0x0078, 0x361f,
1271 0x8211, 0x0040, 0x361d, 0x1078, 0x29b2, 0x1078, 0x412b, 0x781b,
1272 0x0078, 0x007c, 0x1078, 0x43d3, 0x7830, 0xa084, 0x00c0, 0x00c0,
1273 0x3645, 0x017e, 0x3208, 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec,
1274 0x007f, 0x0040, 0x3637, 0xa18c, 0x0300, 0x0078, 0x3639, 0xa18c,
1275 0x0400, 0x017f, 0x0040, 0x3640, 0x0018, 0x3645, 0x0078, 0x3642,
1276 0x0028, 0x3645, 0x791a, 0xa006, 0x007c, 0xa085, 0x0001, 0x007c,
1277 0xa684, 0x0060, 0x00c0, 0x3652, 0x682f, 0x0000, 0x6833, 0x0000,
1278 0x0078, 0x36c1, 0xd6dc, 0x00c0, 0x366a, 0x68b4, 0xd0dc, 0x00c0,
1279 0x366a, 0x6998, 0x6a94, 0x692e, 0x6a32, 0x7048, 0xa005, 0x00c0,
1280 0x3667, 0x2200, 0xa105, 0x0040, 0x45d6, 0x704b, 0x0015, 0x0078,
1281 0x45d6, 0x007c, 0xd6ac, 0x0040, 0x3690, 0xd6f4, 0x0040, 0x3676,
1282 0x682f, 0x0000, 0x6833, 0x0000, 0x0078, 0x45d6, 0x68b4, 0xa084,
1283 0x4000, 0xa635, 0xd6f4, 0x00c0, 0x3670, 0x7048, 0xa005, 0x00c0,
1284 0x3683, 0x704b, 0x0015, 0xd6dc, 0x00c0, 0x368c, 0x68b4, 0xd0dc,
1285 0x0040, 0x368c, 0x6ca8, 0x6da4, 0x6c2e, 0x6d32, 0x0078, 0x45d6,
1286 0xd6f4, 0x0040, 0x3699, 0x682f, 0x0000, 0x6833, 0x0000, 0x0078,
1287 0x45d6, 0x68b4, 0xa084, 0x4800, 0xa635, 0xd6f4, 0x00c0, 0x3693,
1288 0x7048, 0xa005, 0x00c0, 0x36a6, 0x704b, 0x0015, 0x2408, 0x2510,
1289 0x2700, 0x80fb, 0x00c8, 0x36ad, 0x8000, 0xa084, 0x003f, 0xa108,
1290 0xa291, 0x0000, 0x692e, 0x6a32, 0x2100, 0xa205, 0x00c0, 0x36ba,
1291 0x0078, 0x45d6, 0x7000, 0xa086, 0x0006, 0x0040, 0x36c1, 0x0078,
1292 0x45d6, 0x007c, 0x6946, 0x6008, 0xc0cd, 0xd3cc, 0x0040, 0x36c9,
1293 0xc08d, 0x600a, 0x6818, 0x683a, 0x681b, 0x0006, 0x688f, 0x0000,
1294 0x6893, 0x0000, 0x6a30, 0x692c, 0x6a3e, 0x6942, 0x682f, 0x0003,
1295 0x6833, 0x0000, 0x6837, 0x0020, 0x6897, 0x0000, 0x689b, 0x0020,
1296 0x7000, 0x0079, 0x36e3, 0x2a0c, 0x36f5, 0x36ed, 0x36eb, 0x36eb,
1297 0x36eb, 0x36eb, 0x36eb, 0x1078, 0x29b2, 0x6820, 0xd084, 0x00c0,
1298 0x36f5, 0x1078, 0x3e19, 0x0078, 0x36fb, 0x705c, 0x2c50, 0x2060,
1299 0x6800, 0x6002, 0x2a60, 0x3208, 0xa18c, 0x0300, 0x0040, 0x3704,
1300 0x2021, 0x4f58, 0x0078, 0x3706, 0x2021, 0x4f98, 0x2404, 0xa005,
1301 0x0040, 0x370d, 0x2020, 0x0078, 0x3706, 0x2d22, 0x206b, 0x0000,
1302 0x007c, 0x1078, 0x3e20, 0x1078, 0x3e36, 0x6008, 0xc0cc, 0x600a,
1303 0x682b, 0x0000, 0x789b, 0x000e, 0x6f14, 0x6938, 0x691a, 0x6944,
1304 0x6916, 0x3208, 0xa18c, 0x0300, 0x0040, 0x372a, 0x2009, 0x0000,
1305 0x0078, 0x372c, 0x2009, 0x0001, 0x1078, 0x4a81, 0xd6dc, 0x0040,
1306 0x3734, 0x691c, 0xc1ed, 0x691e, 0x6818, 0xd0fc, 0x0040, 0x3743,
1307 0x7868, 0xa08c, 0x00ff, 0x0040, 0x3741, 0x681b, 0x001e, 0x0078,
1308 0x3743, 0x681b, 0x0000, 0xb284, 0x0300, 0x00c0, 0x374b, 0x2021,
1309 0x4f98, 0x0078, 0x374d, 0x2021, 0x4f58, 0x6800, 0x2022, 0x6a3c,
1310 0x6940, 0x6a32, 0x692e, 0x68c0, 0x2060, 0x6000, 0xd0a4, 0x0040,
1311 0x378d, 0x2041, 0x0021, 0x2049, 0x0005, 0x2051, 0x0020, 0x0d7e,
1312 0x0f7e, 0x157e, 0x147e, 0x2079, 0x4f00, 0x1078, 0x1e46, 0x147f,
1313 0x157f, 0x0f7f, 0x70cc, 0x2010, 0x2009, 0x0101, 0x027e, 0x2204,
1314 0xa06d, 0x0040, 0x377d, 0x6814, 0xa706, 0x0040, 0x377a, 0x6800,
1315 0x0078, 0x3770, 0x6820, 0xc0d5, 0x6822, 0x027f, 0x8210, 0x8109,
1316 0x00c0, 0x376e, 0x0d7f, 0x7067, 0x0003, 0x707f, 0x0000, 0x7776,
1317 0x7083, 0x000f, 0x71d4, 0xc1dc, 0x71d6, 0x6818, 0xa086, 0x0002,
1318 0x00c0, 0x3799, 0x6817, 0x0000, 0x682b, 0x0000, 0x681c, 0xc0ec,
1319 0x681e, 0x1078, 0x2073, 0x0078, 0x2a0c, 0x7cd8, 0x7ddc, 0x7fd0,
1320 0x1078, 0x3648, 0x682b, 0x0000, 0x789b, 0x000e, 0x6f14, 0x1078,
1321 0x43d7, 0xa08c, 0x00ff, 0x6916, 0x6818, 0xd0fc, 0x0040, 0x37b2,
1322 0x7048, 0x681a, 0xa68c, 0xdf00, 0x691e, 0x7067, 0x0000, 0x0078,
1323 0x2a0c, 0x7000, 0xa005, 0x00c0, 0x37bf, 0x0078, 0x2a0c, 0xa006,
1324 0x1078, 0x45d6, 0x6920, 0xd1ac, 0x00c0, 0x37c8, 0x681b, 0x0014,
1325 0xa68c, 0xdf00, 0x691e, 0x682b, 0x0000, 0x6820, 0xa084, 0x00ff,
1326 0x6822, 0x7000, 0x0079, 0x37d4, 0x2a0c, 0x37de, 0x37de, 0x37e1,
1327 0x37e1, 0x37e1, 0x37dc, 0x37dc, 0x1078, 0x29b2, 0x6818, 0x0078,
1328 0x3443, 0x6008, 0xc0a4, 0x600a, 0x6817, 0x0000, 0x0078, 0x3dde,
1329 0x2300, 0x0079, 0x37eb, 0x37ee, 0x37f0, 0x3860, 0x1078, 0x29b2,
1330 0xd6fc, 0x00c0, 0x3847, 0x7000, 0xa00d, 0x0079, 0x37f7, 0x2a0c,
1331 0x3801, 0x3801, 0x3831, 0x3801, 0x3844, 0x37ff, 0x37ff, 0x1078,
1332 0x29b2, 0xa684, 0x0060, 0x0040, 0x3831, 0xa086, 0x0060, 0x00c0,
1333 0x382e, 0xc6ac, 0xc6f4, 0xc6ed, 0x7e5a, 0x6eb6, 0x681c, 0xc0ac,
1334 0x681e, 0xa186, 0x0002, 0x0040, 0x3820, 0x1078, 0x45d6, 0x69ac,
1335 0x68b0, 0xa115, 0x0040, 0x3820, 0x1078, 0x4977, 0x0078, 0x3822,
1336 0x1078, 0x493f, 0x781b, 0x0079, 0x71d4, 0xd1b4, 0x00c0, 0x2a08,
1337 0x70a4, 0xa086, 0x0001, 0x00c0, 0x2a52, 0x007c, 0xd6ec, 0x0040,
1338 0x380b, 0x6818, 0xd0fc, 0x0040, 0x3844, 0xd6f4, 0x00c0, 0x383e,
1339 0x681b, 0x0015, 0x781b, 0x0079, 0x0078, 0x2a08, 0x681b, 0x0007,
1340 0x682f, 0x0000, 0x6833, 0x0000, 0x1078, 0x4369, 0x007c, 0xc6fc,
1341 0x7e5a, 0x7adc, 0x79d8, 0x78d0, 0x801b, 0x00c8, 0x3850, 0x8000,
1342 0xa084, 0x003f, 0xa108, 0xa291, 0x0000, 0x6b98, 0x2100, 0xa302,
1343 0x68b2, 0x6b94, 0x2200, 0xa303, 0x68ae, 0x781b, 0x0079, 0x007c,
1344 0x1078, 0x29b2, 0x2300, 0x0079, 0x3865, 0x386a, 0x388f, 0x38ef,
1345 0x1078, 0x29b2, 0x7000, 0x0079, 0x386d, 0x3875, 0x3877, 0x3880,
1346 0x3875, 0x3875, 0x3875, 0x3875, 0x3875, 0x1078, 0x29b2, 0x69ac,
1347 0x68b0, 0xa115, 0x0040, 0x3880, 0x1078, 0x4977, 0x0078, 0x3882,
1348 0x1078, 0x493f, 0x681c, 0xc0b4, 0x681e, 0x70d4, 0xd0b4, 0x00c0,
1349 0x2a08, 0x70a4, 0xa086, 0x0001, 0x00c0, 0x2a52, 0x007c, 0xd6fc,
1350 0x00c0, 0x38df, 0x7000, 0xa00d, 0x0079, 0x3896, 0x2a0c, 0x38a6,
1351 0x38a0, 0x38d6, 0x38a6, 0x38dc, 0x389e, 0x389e, 0x1078, 0x29b2,
1352 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da, 0xa684, 0x0060,
1353 0x0040, 0x38d6, 0xa086, 0x0060, 0x00c0, 0x38d3, 0xa6b4, 0xbfbf,
1354 0xc6ed, 0x7e5a, 0x6eb6, 0xa186, 0x0002, 0x0040, 0x38c2, 0x1078,
1355 0x45d6, 0x69ac, 0x68b0, 0xa115, 0x0040, 0x38c2, 0x1078, 0x4977,
1356 0x0078, 0x38c4, 0x1078, 0x493f, 0x781b, 0x0079, 0x681c, 0xc0b4,
1357 0x681e, 0x71d4, 0xd1b4, 0x00c0, 0x2a08, 0x70a4, 0xa086, 0x0001,
1358 0x00c0, 0x2a52, 0x007c, 0xd6ec, 0x0040, 0x38b0, 0x6818, 0xd0fc,
1359 0x0040, 0x38dc, 0x681b, 0x0007, 0x781b, 0x00f9, 0x007c, 0xc6fc,
1360 0x7e5a, 0x7adc, 0x79d8, 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94,
1361 0x2200, 0xa303, 0x68ae, 0x79d2, 0x781b, 0x0079, 0x007c, 0xd6dc,
1362 0x0040, 0x38f8, 0x782b, 0x3009, 0x781b, 0x0079, 0x0078, 0x2a08,
1363 0x7884, 0xc0ac, 0x7886, 0x78e4, 0xa084, 0x0008, 0x00c0, 0x390b,
1364 0xa484, 0x0200, 0x0040, 0x3905, 0xc6f5, 0xc6dd, 0x7e5a, 0x781b,
1365 0x0079, 0x0078, 0x2a08, 0x6820, 0xc095, 0x6822, 0x1078, 0x42e2,
1366 0xc6dd, 0x1078, 0x4118, 0x781b, 0x0078, 0x0078, 0x2a08, 0x2300,
1367 0x0079, 0x391a, 0x391d, 0x391f, 0x3921, 0x1078, 0x29b2, 0x0078,
1368 0x4111, 0xd6d4, 0x00c0, 0x395c, 0x79e4, 0xd1ac, 0x0040, 0x392f,
1369 0x78ec, 0xa084, 0x0003, 0x0040, 0x392f, 0x782b, 0x3009, 0x789b,
1370 0x0060, 0x78ab, 0x0000, 0xa684, 0xfffb, 0x785a, 0x79e4, 0xd1ac,
1371 0x0040, 0x393f, 0x78ec, 0xa084, 0x0003, 0x00c0, 0x3958, 0x2001,
1372 0x4f04, 0x2004, 0xd0e4, 0x00c0, 0x3954, 0x6820, 0xd0c4, 0x0040,
1373 0x3954, 0x0c7e, 0x7058, 0x2060, 0x6004, 0xc09d, 0x6006, 0x6008,
1374 0xa084, 0x00ff, 0x600a, 0x0c7f, 0x2001, 0x0014, 0x0078, 0x3443,
1375 0xa184, 0x0007, 0x0079, 0x3992, 0x7a90, 0xa294, 0x0007, 0x789b,
1376 0x0060, 0x79a8, 0x81ff, 0x0040, 0x3990, 0x789b, 0x0010, 0x7ba8,
1377 0xa384, 0x0001, 0x00c0, 0x3983, 0x7ba8, 0x7ba8, 0xa386, 0x0001,
1378 0x00c0, 0x3976, 0x2009, 0xfff7, 0x0078, 0x397c, 0xa386, 0x0003,
1379 0x00c0, 0x3983, 0x2009, 0xffef, 0x0c7e, 0x7058, 0x2060, 0x6004,
1380 0xa104, 0x6006, 0x0c7f, 0x789b, 0x0060, 0x78ab, 0x0000, 0xa684,
1381 0xfffb, 0x785a, 0x782b, 0x3009, 0x6920, 0xa18c, 0xfcff, 0x6922,
1382 0x0078, 0x435d, 0x30d9, 0x30e3, 0x399c, 0x39a2, 0x399a, 0x399a,
1383 0x435d, 0x435d, 0x1078, 0x29b2, 0x6920, 0xa18c, 0xfcff, 0x6922,
1384 0x0078, 0x4363, 0x6920, 0xa18c, 0xfcff, 0x6922, 0x0078, 0x435d,
1385 0x79e4, 0xa184, 0x0030, 0x0040, 0x39b2, 0x78ec, 0xa084, 0x0003,
1386 0x00c0, 0x39e6, 0x7000, 0xa086, 0x0004, 0x00c0, 0x39cc, 0x7064,
1387 0xa086, 0x0002, 0x00c0, 0x39c2, 0x2011, 0x0002, 0x2019, 0x0000,
1388 0x0078, 0x2f65, 0x7064, 0xa086, 0x0006, 0x0040, 0x39bc, 0x7064,
1389 0xa086, 0x0004, 0x0040, 0x39bc, 0x7000, 0xa086, 0x0000, 0x0040,
1390 0x2a08, 0x6920, 0xa184, 0x0420, 0x0040, 0x39db, 0xc1d4, 0x6922,
1391 0x6818, 0x0078, 0x3443, 0x6818, 0xa08e, 0x0002, 0x0040, 0x39e4,
1392 0xc0fd, 0x681a, 0x2001, 0x0014, 0x0078, 0x3443, 0xa184, 0x0007,
1393 0x0079, 0x39ea, 0x435d, 0x435d, 0x39f2, 0x435d, 0x43a5, 0x43a5,
1394 0x435d, 0x435d, 0xd6bc, 0x0040, 0x3a34, 0x7184, 0x81ff, 0x0040,
1395 0x3a34, 0xa182, 0x000d, 0x00d0, 0x3a01, 0x7087, 0x0000, 0x0078,
1396 0x3a06, 0xa182, 0x000c, 0x7086, 0x2009, 0x000c, 0x789b, 0x0061,
1397 0x79aa, 0x157e, 0x137e, 0x147e, 0x7088, 0x8114, 0xa210, 0x728a,
1398 0xa080, 0x000b, 0xad00, 0x2098, 0xb284, 0x0300, 0x0040, 0x3a28,
1399 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x3a24,
1400 0x20a1, 0x012b, 0x0078, 0x3a2a, 0x20a1, 0x022b, 0x0078, 0x3a2a,
1401 0x20a1, 0x012b, 0x789b, 0x0000, 0x8108, 0x81ac, 0x53a6, 0x147f,
1402 0x137f, 0x157f, 0x0078, 0x4363, 0xd6d4, 0x00c0, 0x3a88, 0x6820,
1403 0xd084, 0x0040, 0x4363, 0xa68c, 0x0060, 0xa684, 0x0060, 0x0040,
1404 0x3a46, 0xa086, 0x0060, 0x00c0, 0x3a46, 0xc1f5, 0xc194, 0x795a,
1405 0x69b6, 0x789b, 0x0060, 0x78ab, 0x0000, 0x789b, 0x0061, 0x6818,
1406 0xc0fd, 0x681a, 0x78aa, 0x8008, 0x810c, 0x0040, 0x3e4f, 0xa18c,
1407 0x00f8, 0x00c0, 0x3e4f, 0x157e, 0x137e, 0x147e, 0x017e, 0x3208,
1408 0xa18c, 0x0300, 0x0040, 0x3a74, 0x007e, 0x2001, 0x4f04, 0x2004,
1409 0xd0ec, 0x007f, 0x0040, 0x3a70, 0x20a1, 0x012b, 0x0078, 0x3a76,
1410 0x20a1, 0x022b, 0x0078, 0x3a76, 0x20a1, 0x012b, 0x017f, 0x789b,
1411 0x0000, 0x8000, 0x80ac, 0xad80, 0x000b, 0x2098, 0x53a6, 0x147f,
1412 0x137f, 0x157f, 0x6814, 0xc0fc, 0x8007, 0x7882, 0x0078, 0x4363,
1413 0x6818, 0xd0fc, 0x0040, 0x3a8e, 0x681b, 0x0008, 0x6820, 0xc0ad,
1414 0x6822, 0x1078, 0x4120, 0x781b, 0x00ea, 0x007c, 0x2300, 0x0079,
1415 0x3a99, 0x3a9e, 0x3b76, 0x3a9c, 0x1078, 0x29b2, 0x7cd8, 0x7ddc,
1416 0x7fd0, 0x82ff, 0x00c0, 0x3ac7, 0x7200, 0xa286, 0x0003, 0x0040,
1417 0x3410, 0x71d4, 0xd1bc, 0x00c0, 0x3aca, 0xd1b4, 0x0040, 0x3aca,
1418 0x0d7e, 0x783b, 0x8800, 0x781b, 0x004c, 0x70bc, 0xa06d, 0x68b4,
1419 0xc0a5, 0x785a, 0x6894, 0x78d6, 0x78de, 0x6898, 0x78d2, 0x78da,
1420 0xc1b4, 0x71d6, 0x7003, 0x0030, 0x0d7f, 0x0078, 0x3ace, 0x7200,
1421 0x0078, 0x3ace, 0x783b, 0x1800, 0x781b, 0x004a, 0xa284, 0x000f,
1422 0x0079, 0x3ad2, 0x3b61, 0x3b10, 0x3adc, 0x343f, 0x3ada, 0x3b61,
1423 0x3ada, 0x3ada, 0x1078, 0x29b2, 0x681c, 0xd0ec, 0x0040, 0x3ae3,
1424 0x6008, 0xc08d, 0x600a, 0x6920, 0xc185, 0x6922, 0x6800, 0x6006,
1425 0xa005, 0x00c0, 0x3aec, 0x6002, 0x6008, 0xc0d4, 0x600a, 0x681c,
1426 0xa084, 0x000e, 0x00c0, 0x3b00, 0xb284, 0x0300, 0x0040, 0x3afc,
1427 0x2009, 0x95c0, 0x0078, 0x3b05, 0x2009, 0x96d0, 0x0078, 0x3b05,
1428 0x7030, 0x68ba, 0x7140, 0x70cc, 0xa108, 0x2104, 0x6802, 0x2d0a,
1429 0x715e, 0xd6dc, 0x00c0, 0x3b10, 0xc6fc, 0x6eb6, 0x0078, 0x3b61,
1430 0x6eb6, 0xa684, 0x0060, 0x00c0, 0x3b1a, 0xa684, 0x7fff, 0x68b6,
1431 0x0078, 0x3b61, 0xd6dc, 0x00c0, 0x3b28, 0xa684, 0x7fff, 0x68b6,
1432 0x6894, 0x68a6, 0x6898, 0x68aa, 0x1078, 0x45d6, 0x0078, 0x3b61,
1433 0xd6ac, 0x0040, 0x3b34, 0xa006, 0x1078, 0x45d6, 0x2408, 0x2510,
1434 0x69aa, 0x6aa6, 0x0078, 0x3b44, 0x2408, 0x2510, 0x2700, 0x801b,
1435 0x00c8, 0x3b3b, 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000,
1436 0x69aa, 0x6aa6, 0x1078, 0x45d6, 0xd6fc, 0x0040, 0x3b61, 0xa684,
1437 0x7fff, 0x68b6, 0x2510, 0x2408, 0xd6ac, 0x00c0, 0x3b59, 0x2700,
1438 0x801b, 0x00c8, 0x3b54, 0x8000, 0xa084, 0x003f, 0xa108, 0xa291,
1439 0x0000, 0x6b98, 0x2100, 0xa302, 0x68b2, 0x6b94, 0x2200, 0xa303,
1440 0x68ae, 0x7000, 0xa086, 0x0030, 0x00c0, 0x2a0c, 0x7003, 0x0002,
1441 0x70bc, 0xa06d, 0x68bc, 0x7042, 0x70b8, 0xa065, 0x68c0, 0x705a,
1442 0x2d00, 0x704e, 0xad80, 0x0009, 0x7046, 0x007c, 0xa586, 0x8800,
1443 0x00c0, 0x3b83, 0x7003, 0x0000, 0x6018, 0x8001, 0x601a, 0x6008,
1444 0xa084, 0xfbef, 0x600a, 0x0078, 0x4111, 0x7047, 0x0000, 0xa282,
1445 0x0006, 0x0050, 0x3b8d, 0x1078, 0x29b2, 0x2300, 0x0079, 0x3b90,
1446 0x3b93, 0x3ba5, 0x3bb1, 0x2200, 0x0079, 0x3b96, 0x3b9c, 0x4111,
1447 0x3b9e, 0x3b9c, 0x3beb, 0x3c40, 0x1078, 0x29b2, 0x7a80, 0xa294,
1448 0x0f00, 0x1078, 0x3cca, 0x0078, 0x4107, 0x1078, 0x3bc2, 0x0079,
1449 0x3ba9, 0x4111, 0x3baf, 0x3baf, 0x3beb, 0x3baf, 0x4111, 0x1078,
1450 0x29b2, 0x1078, 0x3bc2, 0x0079, 0x3bb5, 0x3bbd, 0x3bbb, 0x3bbb,
1451 0x3bbd, 0x3bbb, 0x3bbd, 0x1078, 0x29b2, 0x1078, 0x412b, 0x781b,
1452 0x0078, 0x007c, 0x7000, 0xa086, 0x0002, 0x00c0, 0x3bd3, 0x1078,
1453 0x3e36, 0x0078, 0x3bcd, 0x1078, 0x45d6, 0x6008, 0xa084, 0xfbef,
1454 0x600a, 0x0078, 0x3bd8, 0x7000, 0xa086, 0x0003, 0x0040, 0x3bcb,
1455 0x7003, 0x0005, 0xb284, 0x0300, 0x0040, 0x3be2, 0x2001, 0x96e0,
1456 0x0078, 0x3be4, 0x2001, 0x9712, 0x2068, 0x704e, 0xad80, 0x0009,
1457 0x7046, 0x2200, 0x007c, 0x7000, 0xa086, 0x0002, 0x00c0, 0x3bfd,
1458 0x70d4, 0xc0b5, 0x70d6, 0x2c00, 0x70ba, 0x2d00, 0x70be, 0x0078,
1459 0x3c02, 0x1078, 0x45d6, 0x0078, 0x3c02, 0x7000, 0xa086, 0x0003,
1460 0x0040, 0x3bf9, 0x7003, 0x0001, 0x7a80, 0xa294, 0x0f00, 0x789b,
1461 0x0018, 0x7ca8, 0xa484, 0x001f, 0xa215, 0x2069, 0x95c0, 0xb284,
1462 0x0300, 0x00c0, 0x3c16, 0xc2fd, 0x2069, 0x96d0, 0x2d04, 0x2d08,
1463 0x715e, 0xa06d, 0x0040, 0x3c23, 0x6814, 0xa206, 0x0040, 0x3c25,
1464 0x6800, 0x0078, 0x3c17, 0x1078, 0x3cca, 0x6eb4, 0x7e5a, 0x6920,
1465 0xa184, 0x0c00, 0x0040, 0x3cf4, 0x7064, 0xa086, 0x0006, 0x00c0,
1466 0x3c37, 0x7074, 0xa206, 0x00c0, 0x3c37, 0x7066, 0x707e, 0x681b,
1467 0x0005, 0xc1ad, 0xc1d4, 0x6922, 0x1078, 0x4120, 0x0078, 0x3cf4,
1468 0x7200, 0xa286, 0x0002, 0x00c0, 0x3c52, 0x70d4, 0xc0b5, 0x70d6,
1469 0x2c00, 0x70ba, 0x2d00, 0x70be, 0x0078, 0x3c56, 0x1078, 0x45d6,
1470 0x0078, 0x3c56, 0xa286, 0x0003, 0x0040, 0x3c4e, 0x7003, 0x0001,
1471 0x7a80, 0xa294, 0x0f00, 0x789b, 0x0018, 0x7ca8, 0xa484, 0x001f,
1472 0xa215, 0xb284, 0x0300, 0x00c0, 0x3c66, 0xc2fd, 0x79a8, 0x79a8,
1473 0xa18c, 0x00ff, 0x2118, 0x70cc, 0xa168, 0x2d04, 0x2d08, 0x715e,
1474 0xa06d, 0x0040, 0x3c7a, 0x6814, 0xa206, 0x0040, 0x3ca3, 0x6800,
1475 0x0078, 0x3c6e, 0x7003, 0x0005, 0xb284, 0x0300, 0x0040, 0x3c84,
1476 0x2001, 0x96e0, 0x0078, 0x3c86, 0x2001, 0x9712, 0x2068, 0x704e,
1477 0x157e, 0x20a9, 0x0032, 0x2003, 0x0000, 0x8000, 0x00f0, 0x3c8b,
1478 0x157f, 0xb284, 0x0300, 0x0040, 0x3c98, 0xc2fc, 0x0078, 0x3c99,
1479 0xc2fd, 0x6a16, 0xad80, 0x0009, 0x7046, 0x68b7, 0x0700, 0x6823,
1480 0x0800, 0x6827, 0x0003, 0x6eb4, 0x6920, 0xa184, 0x0c00, 0x0040,
1481 0x3cf4, 0xd0dc, 0x0040, 0x3cbf, 0x7064, 0xa086, 0x0004, 0x00c0,
1482 0x3cbb, 0x7074, 0xa206, 0x00c0, 0x3cbb, 0x7078, 0xa306, 0x00c0,
1483 0x3cbb, 0x7066, 0x707e, 0x1078, 0x4127, 0x0078, 0x3cf4, 0x681b,
1484 0x0005, 0xc1ad, 0xc1d4, 0x6922, 0x1078, 0x4120, 0x707f, 0x0000,
1485 0x0078, 0x3cf4, 0x7003, 0x0005, 0xb284, 0x0300, 0x0040, 0x3cd4,
1486 0x2001, 0x96e0, 0x0078, 0x3cd6, 0x2001, 0x9712, 0x2068, 0x704e,
1487 0x157e, 0x20a9, 0x0032, 0x2003, 0x0000, 0x8000, 0x00f0, 0x3cdb,
1488 0x157f, 0xb284, 0x0300, 0x0040, 0x3ce8, 0xc2fc, 0x0078, 0x3ce9,
1489 0xc2fd, 0x6a16, 0xad80, 0x0009, 0x7046, 0x68b7, 0x0700, 0x6823,
1490 0x0800, 0x6827, 0x0003, 0x007c, 0xc6ec, 0xa6ac, 0x0060, 0x0040,
1491 0x3d46, 0x6b98, 0x6c94, 0x69ac, 0x68b0, 0xa105, 0x00c0, 0x3d21,
1492 0x7bd2, 0x7bda, 0x7cd6, 0x7cde, 0xa586, 0x0060, 0x0040, 0x3d4b,
1493 0xd6f4, 0x00c0, 0x3d0c, 0xc6ed, 0xa6b4, 0xb7ff, 0x7e5a, 0x2009,
1494 0x0079, 0xd69c, 0x0040, 0x3d19, 0x2009, 0x0078, 0x2019, 0x0000,
1495 0x2320, 0x791a, 0xd6ec, 0x0040, 0x3d56, 0x1078, 0x493f, 0x0078,
1496 0x3d56, 0x68b0, 0xa31a, 0x2100, 0xa423, 0x2400, 0xa305, 0x0040,
1497 0x3d4d, 0x7bd2, 0x7bda, 0x7cd6, 0x7cde, 0x68b0, 0xd6f4, 0x00c0,
1498 0x3d32, 0xc6ed, 0xc6f4, 0x7e5a, 0x2011, 0x0079, 0xd69c, 0x0040,
1499 0x3d3e, 0x2011, 0x0078, 0x2019, 0x0000, 0x2320, 0x7a1a, 0xd6ec,
1500 0x0040, 0x3d56, 0x1078, 0x4977, 0x0078, 0x3d56, 0x2019, 0x0000,
1501 0x2320, 0x0078, 0x3d4d, 0xa6b4, 0xb7ff, 0x7e5a, 0x2009, 0x0079,
1502 0xd69c, 0x0040, 0x3d55, 0x2009, 0x0078, 0x791a, 0x68c0, 0x705a,
1503 0x2d00, 0x704e, 0x68c4, 0x2060, 0x71d4, 0x2001, 0x4f01, 0x2004,
1504 0xd0c4, 0x00c0, 0x3dab, 0x70d8, 0xa02d, 0x0040, 0x3d84, 0xd1bc,
1505 0x0040, 0x3d9e, 0x7a80, 0xa294, 0x0f00, 0x70dc, 0xa206, 0x0040,
1506 0x3d75, 0x78e0, 0xa504, 0x00c0, 0x3dab, 0x70da, 0xc1bc, 0x71d6,
1507 0x0078, 0x3dab, 0x2031, 0x0001, 0x852c, 0x0048, 0x3d83, 0x8633,
1508 0x8210, 0x0078, 0x3d7c, 0x007c, 0x7de0, 0xa594, 0xff00, 0x0040,
1509 0x3d91, 0x2011, 0x0008, 0x852f, 0x1078, 0x3d7a, 0x8637, 0x0078,
1510 0x3d93, 0x1078, 0x3d7a, 0x8217, 0x7880, 0xa084, 0x0f00, 0xa206,
1511 0x0040, 0x3dab, 0x72de, 0x76da, 0x0078, 0x3dab, 0x7a80, 0xa294,
1512 0x0f00, 0x70dc, 0xa236, 0x0040, 0x3d9b, 0x78e0, 0xa534, 0x0040,
1513 0x3d9b, 0xc1bd, 0x71d6, 0xd1b4, 0x00c0, 0x2a08, 0x2300, 0xa405,
1514 0x0040, 0x2a08, 0x70a4, 0xa086, 0x0001, 0x00c0, 0x2a52, 0x007c,
1515 0x6020, 0xa005, 0x0040, 0x3dc6, 0x8001, 0x6022, 0x6008, 0xa085,
1516 0x0008, 0x600a, 0x700f, 0x0100, 0x702c, 0x6026, 0x007c, 0xa006,
1517 0x1078, 0x45d6, 0x7000, 0xa086, 0x0002, 0x0040, 0x3dd4, 0x7064,
1518 0xa086, 0x0005, 0x00c0, 0x3dde, 0x682b, 0x0000, 0x6817, 0x0000,
1519 0x681b, 0x0001, 0x6823, 0x0040, 0x681f, 0x0100, 0x7000, 0xa084,
1520 0x000f, 0x0079, 0x3de3, 0x2a0c, 0x3df3, 0x3ded, 0x3e15, 0x3dfd,
1521 0x2a0c, 0x3deb, 0x3deb, 0x1078, 0x29b2, 0x1078, 0x3e20, 0x1078,
1522 0x3e19, 0x0078, 0x3df9, 0x1078, 0x3e20, 0x705c, 0x2060, 0x6800,
1523 0x6002, 0x1078, 0x2073, 0x0078, 0x2a0c, 0x7064, 0x7067, 0x0000,
1524 0x7083, 0x0000, 0x0079, 0x3e04, 0x3e11, 0x3e11, 0x3e0c, 0x3e0c,
1525 0x3e0c, 0x3e11, 0x3e0c, 0x3e11, 0x77d4, 0xc7dd, 0x77d6, 0x0079,
1526 0x2f7e, 0x7067, 0x0000, 0x0078, 0x2a0c, 0x681b, 0x0000, 0x0078,
1527 0x3711, 0x6800, 0xa005, 0x00c0, 0x3e1e, 0x6002, 0x6006, 0x007c,
1528 0x6410, 0x84ff, 0x0040, 0x3e32, 0x2009, 0x4f02, 0x2104, 0x8001,
1529 0x200a, 0x8421, 0x6412, 0x00c0, 0x3e32, 0x2021, 0x4f04, 0x2404,
1530 0xc0a5, 0x2022, 0x6008, 0xc0a4, 0x600a, 0x007c, 0x6018, 0xa005,
1531 0x0040, 0x3e3c, 0x8001, 0x601a, 0x007c, 0x1078, 0x43d3, 0x681b,
1532 0x0018, 0x0078, 0x3e7d, 0x1078, 0x43d3, 0x681b, 0x0019, 0x0078,
1533 0x3e7d, 0x1078, 0x43d3, 0x681b, 0x001a, 0x0078, 0x3e7d, 0x1078,
1534 0x43d3, 0x681b, 0x0003, 0x0078, 0x3e7d, 0x7774, 0x1078, 0x424e,
1535 0x7178, 0xa18c, 0x00ff, 0x3210, 0xa294, 0x0300, 0x0040, 0x3e64,
1536 0xa1e8, 0x94c0, 0x0078, 0x3e66, 0xa1e8, 0x95d0, 0x2d04, 0x2d08,
1537 0x2068, 0xa005, 0x00c0, 0x3e6f, 0x707e, 0x0078, 0x2a0c, 0x6814,
1538 0x7274, 0xa206, 0x0040, 0x3e77, 0x6800, 0x0078, 0x3e67, 0x6800,
1539 0x200a, 0x681b, 0x0005, 0x707f, 0x0000, 0x1078, 0x3e20, 0x6820,
1540 0xd084, 0x00c0, 0x3e85, 0x1078, 0x3e19, 0x1078, 0x3e36, 0x681f,
1541 0x0000, 0x6823, 0x0020, 0x1078, 0x2073, 0x0078, 0x2a0c, 0xa282,
1542 0x0003, 0x00c0, 0x4107, 0x7da8, 0xa5ac, 0x00ff, 0x7e5a, 0x7ea8,
1543 0xa6b4, 0x00ff, 0x6920, 0xc1bd, 0x6922, 0xd1c4, 0x0040, 0x3eea,
1544 0xc1c4, 0x6922, 0xa6b4, 0x00ff, 0x0040, 0x3ed7, 0xa682, 0x000c,
1545 0x0048, 0x3eae, 0x0040, 0x3eae, 0x2031, 0x000c, 0x2500, 0xa086,
1546 0x000a, 0x0040, 0x3eb5, 0x852b, 0x852b, 0x1078, 0x41e0, 0x0040,
1547 0x3ebd, 0x1078, 0x3fbc, 0x0078, 0x3ee0, 0x1078, 0x419b, 0x0c7e,
1548 0x2960, 0x6004, 0xa084, 0xfff5, 0x6006, 0x1078, 0x3ff2, 0x0c7f,
1549 0x6920, 0xc1c5, 0x6922, 0x7e58, 0xc695, 0x7e5a, 0xd6d4, 0x00c0,
1550 0x3ed4, 0x781b, 0x0064, 0x007c, 0x781b, 0x0078, 0x007c, 0x0c7e,
1551 0x2960, 0x6004, 0xa084, 0xfff5, 0x6006, 0x1078, 0x3ff2, 0x0c7f,
1552 0x7e58, 0xd6d4, 0x00c0, 0x3ee7, 0x781b, 0x0067, 0x007c, 0x781b,
1553 0x0079, 0x007c, 0x0c7e, 0x7058, 0x2060, 0x6100, 0xd1e4, 0x0040,
1554 0x3f33, 0x6208, 0x8217, 0xa294, 0x00ff, 0xa282, 0x000c, 0x0048,
1555 0x3efd, 0x0040, 0x3efd, 0x2011, 0x000c, 0x2600, 0xa202, 0x00c8,
1556 0x3f02, 0x2230, 0x6208, 0xa294, 0x00ff, 0x2001, 0x4f05, 0x2004,
1557 0xd0e4, 0x00c0, 0x3f17, 0x78ec, 0xd0e4, 0x0040, 0x3f17, 0xa282,
1558 0x000a, 0x00c8, 0x3f1d, 0x2011, 0x000a, 0x0078, 0x3f1d, 0xa282,
1559 0x000c, 0x00c8, 0x3f1d, 0x2011, 0x000c, 0x2200, 0xa502, 0x00c8,
1560 0x3f22, 0x2228, 0x1078, 0x419f, 0x2500, 0xa086, 0x000a, 0x0040,
1561 0x3f2b, 0x852b, 0x852b, 0x1078, 0x41e0, 0x0040, 0x3f33, 0x1078,
1562 0x3fbc, 0x0078, 0x3f37, 0x1078, 0x419b, 0x1078, 0x3ff2, 0x7858,
1563 0xc095, 0x785a, 0x0c7f, 0x781b, 0x0078, 0x007c, 0x0c7e, 0x2960,
1564 0x6000, 0xd0e4, 0x00c0, 0x3f58, 0xd0b4, 0x00c0, 0x3f52, 0x6010,
1565 0xa084, 0x000f, 0x00c0, 0x3f52, 0x6104, 0xa18c, 0xfff5, 0x6106,
1566 0x0c7f, 0x007c, 0x2011, 0x0032, 0x2019, 0x0000, 0x0078, 0x3f83,
1567 0x68a0, 0xd0cc, 0x00c0, 0x3f52, 0x6208, 0xa294, 0x00ff, 0x2001,
1568 0x4f05, 0x2004, 0xd0e4, 0x00c0, 0x3f71, 0x78ec, 0xd0e4, 0x0040,
1569 0x3f71, 0xa282, 0x000b, 0x00c8, 0x3f71, 0x2011, 0x000a, 0x0078,
1570 0x3f77, 0xa282, 0x000c, 0x00c8, 0x3f77, 0x2011, 0x000c, 0x6308,
1571 0x831f, 0xa39c, 0x00ff, 0xa382, 0x000c, 0x0048, 0x3f83, 0x0040,
1572 0x3f83, 0x2019, 0x000c, 0x78ab, 0x0001, 0x78ab, 0x0003, 0x78ab,
1573 0x0001, 0x7aaa, 0x7baa, 0xa8c0, 0x0005, 0x6820, 0xc0c5, 0x6822,
1574 0x70d4, 0xd0b4, 0x0040, 0x3f9f, 0xc0b4, 0x70d6, 0x70b8, 0xa065,
1575 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a, 0x0c7f,
1576 0x007c, 0x0c7e, 0x2960, 0x6104, 0xa18c, 0xfff5, 0x6106, 0x2011,
1577 0x0032, 0x2019, 0x0000, 0x0078, 0x3fad, 0x78ab, 0x0001, 0x78ab,
1578 0x0003, 0x78ab, 0x0001, 0x7aaa, 0x7baa, 0xa8c0, 0x0005, 0x6820,
1579 0xc0c5, 0x6822, 0x0c7f, 0x007c, 0x0c7e, 0x7158, 0x2160, 0x2018,
1580 0xa08c, 0x0020, 0x0040, 0x3fc5, 0xc0ac, 0x2008, 0xa084, 0xfff0,
1581 0xa635, 0x7e86, 0x6018, 0x789a, 0x7eae, 0x6612, 0x78a4, 0xa084,
1582 0xfff0, 0xa18c, 0x000f, 0xa105, 0xc0f4, 0xa39c, 0x0020, 0x0040,
1583 0x3fdb, 0xa085, 0x4000, 0xc0fc, 0xd0b4, 0x00c0, 0x3fe0, 0xc0fd,
1584 0x78a6, 0x6016, 0x788a, 0xa6b4, 0x000f, 0x8637, 0x8204, 0x8004,
1585 0xa084, 0x00ff, 0xa605, 0x600e, 0x6004, 0xa084, 0xfff5, 0x6006,
1586 0x0c7f, 0x007c, 0x0c7e, 0x7058, 0x2060, 0x6018, 0x789a, 0x78a4,
1587 0xa084, 0xfff0, 0x78a6, 0x6012, 0x7884, 0xa084, 0xfff0, 0x7886,
1588 0x600c, 0xa084, 0x00ff, 0x600e, 0x0c7f, 0x007c, 0xa282, 0x0002,
1589 0x00c0, 0x4107, 0x7aa8, 0x6920, 0xc1bd, 0x6922, 0xd1cc, 0x0040,
1590 0x4041, 0xc1cc, 0x6922, 0xa294, 0x00ff, 0xa282, 0x0002, 0x00c8,
1591 0x4107, 0x1078, 0x4094, 0x1078, 0x3ff2, 0xa980, 0x0001, 0x200c,
1592 0x1078, 0x424a, 0x1078, 0x3f3e, 0x88ff, 0x0040, 0x4037, 0x789b,
1593 0x0060, 0x2800, 0x78aa, 0x7e58, 0xc695, 0x7e5a, 0xd6d4, 0x00c0,
1594 0x4034, 0x781b, 0x0064, 0x007c, 0x781b, 0x0078, 0x007c, 0x7e58,
1595 0xd6d4, 0x00c0, 0x403e, 0x781b, 0x0067, 0x007c, 0x781b, 0x0079,
1596 0x007c, 0xa282, 0x0002, 0x00c8, 0x4049, 0xa284, 0x0001, 0x0040,
1597 0x4052, 0x7158, 0xa188, 0x0000, 0x210c, 0xd1ec, 0x00c0, 0x4052,
1598 0x2011, 0x0000, 0x1078, 0x417c, 0x1078, 0x4094, 0x1078, 0x3ff2,
1599 0x7858, 0xc095, 0x785a, 0x781b, 0x0078, 0x007c, 0x0c7e, 0x027e,
1600 0x2960, 0x6000, 0x2011, 0x0001, 0xd0ec, 0x00c0, 0x4075, 0xd0bc,
1601 0x00c0, 0x4073, 0x6014, 0xd0b4, 0x00c0, 0x4073, 0xc1a4, 0x6106,
1602 0xa006, 0x0078, 0x4091, 0x2011, 0x0000, 0x78ab, 0x0001, 0x78ab,
1603 0x0002, 0x78ab, 0x0003, 0x7aaa, 0xa8c0, 0x0004, 0x70d4, 0xd0b4,
1604 0x0040, 0x408d, 0xc0b4, 0x70d6, 0x70b8, 0xa065, 0x6008, 0xa084,
1605 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a, 0x6820, 0xa085, 0x0200,
1606 0x6822, 0x027f, 0x0c7f, 0x007c, 0x0c7e, 0x7058, 0x2060, 0x82ff,
1607 0x0040, 0x409c, 0x2011, 0x0040, 0x6018, 0xa080, 0x0002, 0x789a,
1608 0x78a4, 0xa084, 0xffbf, 0xa205, 0xc0fc, 0xd0b4, 0x00c0, 0x40a9,
1609 0xc0fd, 0x78a6, 0x6016, 0x788a, 0x6004, 0xc0a4, 0x6006, 0x0c7f,
1610 0x007c, 0x007e, 0x7000, 0xa086, 0x0003, 0x0040, 0x40ba, 0x007f,
1611 0x0078, 0x40bd, 0x007f, 0x0078, 0x4104, 0xd6ac, 0x0040, 0x4104,
1612 0x7888, 0xa084, 0x0040, 0x0040, 0x4104, 0x7bb8, 0xa384, 0x003f,
1613 0x831b, 0x00c8, 0x40cc, 0x8000, 0xa005, 0x0040, 0x40e1, 0x831b,
1614 0x00c8, 0x40d5, 0x8001, 0x0040, 0x4101, 0xd6f4, 0x0040, 0x40e1,
1615 0x78b8, 0x801b, 0x00c8, 0x40dd, 0x8000, 0xa084, 0x003f, 0x00c0,
1616 0x4101, 0xc6f4, 0x7e5a, 0x79d8, 0x7adc, 0x2001, 0x0001, 0xa108,
1617 0x00c8, 0x40ec, 0xa291, 0x0000, 0x79d2, 0x79da, 0x7ad6, 0x7ade,
1618 0x1078, 0x4a44, 0x781b, 0x0076, 0xb284, 0x0300, 0x0040, 0x40fc,
1619 0x2001, 0x0000, 0x0078, 0x40fe, 0x2001, 0x0001, 0x1078, 0x48ce,
1620 0x007c, 0x781b, 0x0076, 0x007c, 0x781b, 0x0079, 0x007c, 0x1078,
1621 0x412f, 0x781b, 0x0078, 0x007c, 0x1078, 0x4118, 0x781b, 0x0078,
1622 0x007c, 0x6827, 0x0002, 0x1078, 0x4120, 0x781b, 0x0078, 0x007c,
1623 0x2001, 0x0005, 0x0078, 0x4131, 0x2001, 0x000c, 0x0078, 0x4131,
1624 0x6820, 0xc0d5, 0x6822, 0x2001, 0x0006, 0x0078, 0x4131, 0x2001,
1625 0x000d, 0x0078, 0x4131, 0x2001, 0x0009, 0x0078, 0x4131, 0x2001,
1626 0x0007, 0x789b, 0x007e, 0x78aa, 0xc69d, 0x7e5a, 0x70d4, 0xd0b4,
1627 0x0040, 0x4147, 0xc0b4, 0x70d6, 0x0c7e, 0x70b8, 0xa065, 0x6008,
1628 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a, 0x0c7f, 0x007c,
1629 0x077e, 0x873f, 0xa7bc, 0x000f, 0x873b, 0x873b, 0x8703, 0x017e,
1630 0xb28c, 0x0300, 0x0040, 0x4158, 0xa0e0, 0x53c0, 0x0078, 0x415a,
1631 0xa0e0, 0x5440, 0x017f, 0xa7b8, 0x0020, 0x7f9a, 0x79a4, 0xa184,
1632 0x000f, 0x0040, 0x416a, 0xa184, 0xfff0, 0x78a6, 0x6012, 0x6004,
1633 0xc09d, 0x6006, 0x8738, 0x8738, 0x7f9a, 0x79a4, 0xa184, 0x0040,
1634 0x0040, 0x417a, 0xa184, 0xffbf, 0xc0fd, 0x78a6, 0x6016, 0x6004,
1635 0xc0a5, 0x6006, 0x077f, 0x007c, 0x789b, 0x0010, 0x78ab, 0x0001,
1636 0x78ab, 0x0002, 0x78ab, 0x0003, 0x7aaa, 0x789b, 0x0060, 0x78ab,
1637 0x0004, 0x70d4, 0xd0b4, 0x0040, 0x419a, 0xc0b4, 0x70d6, 0x0c7e,
1638 0x70b8, 0xa065, 0x6008, 0xa084, 0xfbef, 0x600a, 0x6018, 0x8001,
1639 0x601a, 0x0c7f, 0x007c, 0x2031, 0x0000, 0x2029, 0x0032, 0x789b,
1640 0x0010, 0x78ab, 0x0001, 0x78ab, 0x0003, 0x78ab, 0x0001, 0x7daa,
1641 0x7eaa, 0x789b, 0x0060, 0x78ab, 0x0005, 0x70d4, 0xd0b4, 0x0040,
1642 0x41be, 0xc0b4, 0x70d6, 0x0c7e, 0x70b8, 0xa065, 0x6008, 0xa084,
1643 0xfbef, 0x600a, 0x6018, 0x8001, 0x601a, 0x0c7f, 0x007c, 0x157e,
1644 0x8007, 0xa084, 0x00ff, 0x8003, 0x8003, 0xa080, 0x0020, 0x789a,
1645 0x79a4, 0xa18c, 0xfff0, 0x2021, 0x4233, 0x2019, 0x0011, 0x20a9,
1646 0x000e, 0x2011, 0x0032, 0x2404, 0xa084, 0xfff0, 0xa106, 0x0040,
1647 0x41de, 0x8420, 0x2300, 0xa210, 0x00f0, 0x41d3, 0x157f, 0x007c,
1648 0x157e, 0x2001, 0x4f05, 0x2004, 0xd0e4, 0x00c0, 0x4211, 0x2021,
1649 0x4241, 0x20a9, 0x0009, 0x2011, 0x0028, 0xa582, 0x0019, 0x0040,
1650 0x4227, 0x0048, 0x4227, 0x8420, 0x95a9, 0x2011, 0x0032, 0xa582,
1651 0x0032, 0x0040, 0x4227, 0x0048, 0x4227, 0x8420, 0x95a9, 0x2019,
1652 0x000a, 0x2011, 0x0064, 0x2200, 0xa502, 0x0040, 0x4227, 0x0048,
1653 0x4227, 0x8420, 0x2300, 0xa210, 0x00f0, 0x4203, 0x157f, 0x0078,
1654 0x4225, 0x2021, 0x4233, 0x2019, 0x0011, 0x20a9, 0x000e, 0x2011,
1655 0x0032, 0x2200, 0xa502, 0x0040, 0x4227, 0x0048, 0x4227, 0x8420,
1656 0x2300, 0xa210, 0x00f0, 0x4219, 0x157f, 0xa006, 0x007c, 0x157f,
1657 0xa582, 0x0064, 0x00c8, 0x4230, 0x7808, 0xa085, 0x0070, 0x780a,
1658 0x2404, 0xa005, 0x007c, 0x1209, 0x3002, 0x3202, 0x4203, 0x4403,
1659 0x5404, 0x5604, 0x6605, 0x6805, 0x7806, 0x7a06, 0x0c07, 0x0c07,
1660 0x0e07, 0x10e1, 0x330a, 0x5805, 0x5a05, 0x6a06, 0x6c06, 0x7c07,
1661 0x7e07, 0x0e00, 0x789b, 0x0010, 0xa046, 0x007c, 0xa784, 0x0f00,
1662 0x800b, 0xa784, 0x001f, 0x8003, 0x8003, 0x8003, 0x8003, 0xa105,
1663 0xd7fc, 0x0040, 0x425f, 0xa0e0, 0x74c0, 0x0078, 0x4261, 0xa0e0,
1664 0x54c0, 0x007c, 0x0e7e, 0x0f7e, 0xd084, 0x0040, 0x426f, 0x2079,
1665 0x0100, 0x2009, 0x4f80, 0x2071, 0x4f80, 0x0078, 0x427f, 0x2009,
1666 0x4f40, 0x2071, 0x4f40, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x0040,
1667 0x427d, 0x2079, 0x0100, 0x0078, 0x427f, 0x2079, 0x0200, 0x2091,
1668 0x8000, 0x2104, 0xa084, 0x000f, 0x0079, 0x4286, 0x4290, 0x4290,
1669 0x4290, 0x4290, 0x4290, 0x4290, 0x428e, 0x428e, 0x1078, 0x29b2,
1670 0x69b4, 0xc1f5, 0xa18c, 0xff9f, 0x69b6, 0xa005, 0x0040, 0x42df,
1671 0x7858, 0xa084, 0xff9f, 0xa085, 0x6000, 0x785a, 0x7828, 0xa086,
1672 0x1814, 0x00c0, 0x42df, 0x784b, 0x0004, 0x7848, 0xa084, 0x0004,
1673 0x00c0, 0x42a5, 0x784b, 0x0008, 0x7848, 0xa084, 0x0008, 0x00c0,
1674 0x42ac, 0x7830, 0xd0bc, 0x00c0, 0x42df, 0x007e, 0x2001, 0x4f04,
1675 0x2004, 0xd0ec, 0x007f, 0x0040, 0x42c1, 0xb284, 0x0300, 0x0078,
1676 0x42c3, 0xb284, 0x0400, 0x0040, 0x42c9, 0x0018, 0x42df, 0x0078,
1677 0x42cb, 0x0028, 0x42df, 0x79e4, 0xa184, 0x0030, 0x0040, 0x42df,
1678 0x78ec, 0xa084, 0x0003, 0x0040, 0x42df, 0x681c, 0xd0ac, 0x00c0,
1679 0x42dd, 0x1078, 0x4369, 0x0078, 0x42df, 0x781b, 0x00f9, 0x0f7f,
1680 0x0e7f, 0x007c, 0x0c7e, 0x2001, 0x4f01, 0x2004, 0xd0ac, 0x00c0,
1681 0x435b, 0x6814, 0x8007, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003,
1682 0xb28c, 0x0300, 0x0040, 0x42f8, 0xa0e0, 0x53c0, 0x0078, 0x42fa,
1683 0xa0e0, 0x5440, 0x6004, 0xa084, 0x000a, 0x00c0, 0x435b, 0x6108,
1684 0xa194, 0xff00, 0x0040, 0x435b, 0xa18c, 0x00ff, 0x2001, 0x000a,
1685 0xa106, 0x0040, 0x4326, 0x2001, 0x000c, 0xa106, 0x0040, 0x432a,
1686 0x2001, 0x0012, 0xa106, 0x0040, 0x432e, 0x2001, 0x0014, 0xa106,
1687 0x0040, 0x4332, 0x2001, 0x0019, 0xa106, 0x0040, 0x4336, 0x2001,
1688 0x0032, 0xa106, 0x0040, 0x433a, 0x0078, 0x433e, 0x2009, 0x000c,
1689 0x0078, 0x4340, 0x2009, 0x0012, 0x0078, 0x4340, 0x2009, 0x0014,
1690 0x0078, 0x4340, 0x2009, 0x0019, 0x0078, 0x4340, 0x2009, 0x0020,
1691 0x0078, 0x4340, 0x2009, 0x003f, 0x0078, 0x4340, 0x2011, 0x0000,
1692 0x2100, 0xa205, 0x600a, 0x6004, 0xa085, 0x0002, 0x6006, 0x2061,
1693 0x4f00, 0x6004, 0xd0bc, 0x0040, 0x435b, 0x6814, 0xd0fc, 0x00c0,
1694 0x4356, 0x60ea, 0x2061, 0x4f40, 0x0078, 0x4359, 0x60ee, 0x2061,
1695 0x4f80, 0x601f, 0x800f, 0x0c7f, 0x007c, 0x781b, 0x0079, 0x007c,
1696 0x781b, 0x0078, 0x007c, 0x781b, 0x0067, 0x007c, 0x781b, 0x0064,
1697 0x007c, 0x2009, 0x4f19, 0x210c, 0xa186, 0x0000, 0x0040, 0x437b,
1698 0xa186, 0x0001, 0x0040, 0x437e, 0x701f, 0x000b, 0x7067, 0x0001,
1699 0x781b, 0x0047, 0x007c, 0x781b, 0x00f0, 0x007c, 0x701f, 0x000a,
1700 0x007c, 0x2009, 0x4f19, 0x210c, 0xa186, 0x0000, 0x0040, 0x4396,
1701 0xa186, 0x0001, 0x0040, 0x4393, 0x701f, 0x000b, 0x7067, 0x0001,
1702 0x781b, 0x0047, 0x007c, 0x701f, 0x000a, 0x007c, 0x781b, 0x00ef,
1703 0x007c, 0x781b, 0x00f9, 0x007c, 0x781b, 0x00f8, 0x007c, 0x781b,
1704 0x00c9, 0x007c, 0x781b, 0x00c8, 0x007c, 0x6818, 0xd0fc, 0x0040,
1705 0x43ab, 0x681b, 0x001d, 0x7067, 0x0001, 0x781b, 0x0047, 0x007c,
1706 0x7830, 0xa084, 0x00c0, 0x00c0, 0x43d2, 0x7808, 0xc08c, 0x780a,
1707 0x0005, 0x0005, 0x0005, 0x0005, 0x78ec, 0xa084, 0x0021, 0x00c0,
1708 0x43cf, 0x2001, 0x4f05, 0x2004, 0xd0e4, 0x00c0, 0x43cd, 0x7804,
1709 0xa084, 0xff1f, 0xa085, 0x00e0, 0x7806, 0xa006, 0x007c, 0x7808,
1710 0xc08d, 0x780a, 0x007c, 0x7808, 0xc08d, 0x780a, 0x007c, 0x7830,
1711 0xa084, 0x0040, 0x00c0, 0x43d7, 0x2001, 0x4f04, 0x2004, 0xd0ec,
1712 0x0040, 0x43e6, 0xb284, 0x0300, 0x0078, 0x43e8, 0xb284, 0x0400,
1713 0x0040, 0x43ee, 0x0098, 0x43f2, 0x0078, 0x43f0, 0x00a8, 0x43f2,
1714 0x78ac, 0x007c, 0x7808, 0xa084, 0xfffd, 0x780a, 0x0005, 0x0005,
1715 0x0005, 0x0005, 0x78ec, 0xa084, 0x0021, 0x0040, 0x4415, 0x007e,
1716 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f, 0x0040, 0x440b, 0xb284,
1717 0x0300, 0x0078, 0x440d, 0xb284, 0x0400, 0x0040, 0x4413, 0x0098,
1718 0x440f, 0x0078, 0x4415, 0x00a8, 0x4413, 0x78ac, 0x007e, 0x7808,
1719 0xa085, 0x0002, 0x780a, 0x007f, 0x007c, 0xa784, 0x0001, 0x00c0,
1720 0x37b9, 0xa784, 0x0070, 0x0040, 0x442d, 0x0c7e, 0x2d60, 0x2f68,
1721 0x1078, 0x2926, 0x2d78, 0x2c68, 0x0c7f, 0xa784, 0x0008, 0x0040,
1722 0x443a, 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003, 0x0040, 0x37b9,
1723 0x0078, 0x435d, 0xa784, 0x0004, 0x0040, 0x4469, 0x78b8, 0xa084,
1724 0x4001, 0x0040, 0x4469, 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003,
1725 0x0040, 0x37b9, 0x78e4, 0xa084, 0x0007, 0xa086, 0x0001, 0x00c0,
1726 0x4469, 0x78c0, 0xa685, 0x4800, 0x2030, 0x7e5a, 0x781b, 0x00f9,
1727 0x007c, 0x784b, 0x0008, 0x6818, 0xd0fc, 0x0040, 0x4466, 0x681b,
1728 0x0015, 0xd6f4, 0x0040, 0x4466, 0x681b, 0x0007, 0x1078, 0x4369,
1729 0x007c, 0x681b, 0x0003, 0x7858, 0xa084, 0x3f00, 0x681e, 0x682f,
1730 0x0000, 0x6833, 0x0000, 0x784b, 0x0008, 0x78ec, 0xa084, 0x0003,
1731 0x0040, 0x30af, 0x007e, 0x2001, 0x4f04, 0x2004, 0xd0ec, 0x007f,
1732 0x0040, 0x4486, 0xb284, 0x0300, 0x0078, 0x4488, 0xb284, 0x0400,
1733 0x0040, 0x448e, 0x0018, 0x2a08, 0x0078, 0x4490, 0x0028, 0x2a08,
1734 0x0078, 0x410c, 0x6b14, 0x8307, 0xa084, 0x000f, 0x8003, 0x8003,
1735 0x8003, 0xd3fc, 0x0040, 0x44a0, 0xa080, 0x5440, 0x0078, 0x44a2,
1736 0xa080, 0x53c0, 0x2060, 0x2048, 0x705a, 0x2a60, 0x007c, 0x0020,
1737 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1738 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1739 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1740 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000,
1741 0x0020, 0x0062, 0x0009, 0x0014, 0x0014, 0x9848, 0x0014, 0x0014,
1742 0x9914, 0x98fd, 0x0014, 0x0014, 0x0080, 0x00ff, 0x0100, 0x0402,
1743 0x2008, 0xf880, 0x0018, 0xa20a, 0x0014, 0x300b, 0xa20c, 0x0014,
1744 0x2500, 0x0013, 0x2500, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
1745 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010,
1746 0x0010, 0xa200, 0x3806, 0x7102, 0x805f, 0x9481, 0x8839, 0x20c4,
1747 0x0864, 0xa856, 0x3008, 0x28c1, 0x9d1b, 0xa201, 0x300c, 0x2847,
1748 0x8161, 0x846a, 0x8000, 0x84a4, 0x1856, 0x883a, 0xa808, 0x28e2,
1749 0x9ccb, 0xa8f3, 0x0864, 0xa844, 0x300c, 0xa801, 0x3008, 0x28e1,
1750 0x9ccb, 0x2021, 0xa81d, 0xa205, 0x870c, 0xd8de, 0x64a0, 0x6de0,
1751 0x6fc0, 0x63a4, 0x6c80, 0x0212, 0xa205, 0x883d, 0x7942, 0x8020,
1752 0xa4a1, 0x882b, 0x1814, 0x883b, 0x80df, 0x94a1, 0x7027, 0x85f2,
1753 0xa737, 0xa532, 0xf003, 0x8576, 0x8677, 0xa816, 0x883e, 0xa814,
1754 0x2001, 0xa812, 0xa204, 0x64c0, 0x6de0, 0x67a0, 0x6fc0, 0x7942,
1755 0x8020, 0xa4a1, 0x1814, 0x80df, 0x94a1, 0x883b, 0x7023, 0x8576,
1756 0x8677, 0xa802, 0x7861, 0x883e, 0x206b, 0x28c1, 0x9d1b, 0x2044,
1757 0x2103, 0x20a2, 0x2081, 0xa8c3, 0xa207, 0x0904, 0xa20e, 0xa809,
1758 0xa203, 0x8000, 0x85a4, 0x1872, 0x879a, 0x883c, 0x1fe2, 0xf601,
1759 0xa208, 0x856e, 0x866f, 0x7161, 0x0014, 0x0704, 0x3008, 0x9ccb,
1760 0x0014, 0xa202, 0x8000, 0x85a4, 0x3009, 0x84a8, 0x19e2, 0xf844,
1761 0x856e, 0x883f, 0x08e6, 0xa8f5, 0xf861, 0xa8ea, 0xf801, 0x0014,
1762 0xf881, 0x0016, 0x85b2, 0x80f0, 0x9532, 0xfaa2, 0x1de2, 0x0014,
1763 0x8532, 0xf221, 0x0014, 0x1de2, 0x84a8, 0xd6e0, 0x1fe6, 0x0014,
1764 0x3008, 0x8000, 0x284a, 0x1011, 0xa8fc, 0x3008, 0x9d33, 0x8000,
1765 0xa000, 0x2802, 0x1011, 0xa8fd, 0x9d39, 0xa8bd, 0x3008, 0x9d33,
1766 0x283b, 0x1011, 0xa8fd, 0xa209, 0x7102, 0x805f, 0x9481, 0x0017,
1767 0x300c, 0xa209, 0x8000, 0x85a4, 0x1de2, 0xa209, 0xdac1, 0x0014,
1768 0x0210, 0xa801, 0x0014, 0x26e0, 0x873a, 0xfaa3, 0x19f2, 0x26e0,
1769 0x18f2, 0x0014, 0xa20b, 0x0014, 0xa20d, 0x3806, 0x0210, 0x9d25,
1770 0x0704, 0xa206, 0x6865, 0x817e, 0x842a, 0x1dc1, 0x8823, 0x0016,
1771 0x6042, 0x8008, 0xa8fa, 0x8000, 0x84a4, 0x8160, 0x842a, 0xf021,
1772 0x3008, 0x84a8, 0x11d6, 0x7042, 0x20dd, 0x0011, 0x20d4, 0x8822,
1773 0x0016, 0x7944, 0x8421, 0xa020, 0xa532, 0x84a1, 0x0016, 0x7944,
1774 0x8421, 0xa0df, 0x9532, 0x84a1, 0x0016, 0x0000, 0x127e, 0x70d4,
1775 0xa084, 0x4600, 0x8004, 0x2090, 0x7204, 0x7008, 0xc09c, 0xa205,
1776 0x00c0, 0x4602, 0x720c, 0x82ff, 0x0040, 0x45ed, 0x8aff, 0x00c0,
1777 0x4602, 0x7200, 0xd284, 0x00c0, 0x4602, 0x7804, 0xd0cc, 0x0040,
1778 0x45f3, 0x1078, 0x4acc, 0x7023, 0x0000, 0x7027, 0x0000, 0x7000,
1779 0xd084, 0x0040, 0x45fd, 0x7007, 0x0004, 0x7003, 0x0008, 0x127f,
1780 0x2000, 0x007c, 0x7000, 0xa084, 0x0003, 0x7002, 0xc69c, 0xd084,
1781 0x0040, 0x465b, 0x7108, 0x0005, 0x7008, 0xa106, 0x00c0, 0x460a,
1782 0xa184, 0x0003, 0x0040, 0x468c, 0xa184, 0x01e0, 0x00c0, 0x468c,
1783 0xd1f4, 0x00c0, 0x460a, 0xa184, 0x3000, 0xa086, 0x1000, 0x0040,
1784 0x460a, 0x2001, 0x4f05, 0x2004, 0xd0e4, 0x0040, 0x4637, 0x2011,
1785 0x0180, 0x710c, 0x8211, 0x0040, 0x4645, 0x7008, 0xd0f4, 0x00c0,
1786 0x460a, 0x700c, 0xa106, 0x0040, 0x462a, 0x0078, 0x4627, 0x2011,
1787 0x0180, 0x710c, 0x8211, 0x0040, 0x4645, 0x7008, 0xd0f4, 0x00c0,
1788 0x460a, 0x700c, 0xa106, 0x0040, 0x463a, 0x7007, 0x0012, 0x7108,
1789 0x0005, 0x7008, 0xa106, 0x00c0, 0x4647, 0xa184, 0x0003, 0x0040,
1790 0x468c, 0xd194, 0x0040, 0x4647, 0xd1f4, 0x0040, 0x468c, 0x7007,
1791 0x0002, 0x0078, 0x460a, 0x7108, 0xd1fc, 0x0040, 0x4666, 0x1078,
1792 0x47ed, 0x8aff, 0x0040, 0x45dc, 0x0078, 0x465b, 0x700c, 0xa08c,
1793 0x03ff, 0x0040, 0x4691, 0x7004, 0xd084, 0x0040, 0x4683, 0x7014,
1794 0xa005, 0x00c0, 0x467f, 0x7010, 0x7310, 0xa306, 0x00c0, 0x4673,
1795 0x2300, 0xa005, 0x0040, 0x4683, 0xa102, 0x00c8, 0x465b, 0x7007,
1796 0x0010, 0x0078, 0x468c, 0x8aff, 0x0040, 0x4691, 0x1078, 0x49f2,
1797 0x00c0, 0x4686, 0x0040, 0x465b, 0x1078, 0x4738, 0x127f, 0x2000,
1798 0x007c, 0x7204, 0x7108, 0xc19c, 0x8103, 0x00c8, 0x46a0, 0x7007,
1799 0x0002, 0x0078, 0x4691, 0x7003, 0x0008, 0x127f, 0x2000, 0x007c,
1800 0xa205, 0x00c0, 0x468c, 0x7023, 0x0000, 0x7027, 0x0000, 0x7003,
1801 0x0008, 0x007e, 0x2001, 0x4f01, 0x2004, 0xd0cc, 0x0040, 0x46b2,
1802 0x1078, 0x4acc, 0x007f, 0x127f, 0x2000, 0x007c, 0x6428, 0x84ff,
1803 0x0040, 0x46e2, 0x2c70, 0x7004, 0xa0bc, 0x000f, 0xa7b8, 0x46f2,
1804 0x273c, 0x87fb, 0x00c0, 0x46d0, 0x0048, 0x46c8, 0x1078, 0x29b2,
1805 0x609c, 0xa075, 0x0040, 0x46e2, 0x0078, 0x46bb, 0x2039, 0x46e7,
1806 0x2704, 0xae68, 0x6808, 0xa630, 0x680c, 0xa529, 0x8421, 0x0040,
1807 0x46e2, 0x8738, 0x2704, 0xa005, 0x00c0, 0x46d1, 0x709c, 0xa075,
1808 0x00c0, 0x46bb, 0x007c, 0x0000, 0x0005, 0x0009, 0x000d, 0x0011,
1809 0x0015, 0x0019, 0x001d, 0x0000, 0x0003, 0x0009, 0x000f, 0x0015,
1810 0x001b, 0x0000, 0x0000, 0x46e7, 0x46e4, 0x0000, 0x0000, 0x8000,
1811 0x0000, 0x46e7, 0x0000, 0x46ef, 0x46ec, 0x0000, 0x0000, 0x0000,
1812 0x0000, 0x46ef, 0x0000, 0x46ea, 0x46ea, 0x0000, 0x0000, 0x8000,
1813 0x0000, 0x46ea, 0x0000, 0x46f0, 0x46f0, 0x0000, 0x0000, 0x0000,
1814 0x0000, 0x46f0, 0x2079, 0x4f00, 0x2071, 0x0010, 0x7007, 0x000a,
1815 0x7007, 0x0002, 0x7003, 0x0001, 0x7810, 0xd0ec, 0x0040, 0x4726,
1816 0x2009, 0x0001, 0x2071, 0x0020, 0x0078, 0x472a, 0x2009, 0x0002,
1817 0x2071, 0x0050, 0x7007, 0x000a, 0x7007, 0x0002, 0x7003, 0x0000,
1818 0x8109, 0x0040, 0x4737, 0x2071, 0x0020, 0x0078, 0x472a, 0x007c,
1819 0x7004, 0x8004, 0x00c8, 0x47c1, 0x7108, 0x7008, 0xa106, 0x00c0,
1820 0x473c, 0xa184, 0x01e0, 0x0040, 0x4749, 0x1078, 0x4830, 0x0078,
1821 0x47e9, 0x7007, 0x0012, 0x2019, 0x0000, 0x7108, 0x7008, 0xa106,
1822 0x00c0, 0x474d, 0xa184, 0x01e0, 0x0040, 0x475a, 0x1078, 0x4830,
1823 0x0078, 0x47e9, 0x7810, 0xd0ec, 0x0040, 0x4774, 0x2001, 0x04fd,
1824 0x2004, 0xa086, 0x0003, 0x00c0, 0x4778, 0xa184, 0x4000, 0x0040,
1825 0x477c, 0xa382, 0x0003, 0x00c8, 0x477c, 0xa184, 0x0004, 0x0040,
1826 0x474d, 0x8318, 0x0078, 0x474d, 0x7814, 0xd0ec, 0x00c0, 0x477c,
1827 0xa184, 0x4000, 0x00c0, 0x474d, 0xa19c, 0x300c, 0xa386, 0x2004,
1828 0x0040, 0x4799, 0xa386, 0x0008, 0x0040, 0x47a4, 0x7004, 0xd084,
1829 0x00c0, 0x4795, 0x7108, 0x7008, 0xa106, 0x00c0, 0x478a, 0xa184,
1830 0x0003, 0x0040, 0x4795, 0x0078, 0x4830, 0xa386, 0x200c, 0x00c0,
1831 0x474d, 0x7200, 0x8204, 0x0048, 0x47a4, 0x730c, 0xa384, 0x03ff,
1832 0x0040, 0x47a4, 0x1078, 0x29b2, 0x7108, 0x7008, 0xa106, 0x00c0,
1833 0x47a4, 0xa184, 0x01e0, 0x0040, 0x47b1, 0x1078, 0x4830, 0x0078,
1834 0x47e9, 0x7007, 0x0012, 0x7000, 0xd084, 0x00c0, 0x47c1, 0x7310,
1835 0x7014, 0xa305, 0x0040, 0x47c1, 0x710c, 0xa184, 0x03ff, 0x00c0,
1836 0x4738, 0x7108, 0x7008, 0xa106, 0x00c0, 0x47c1, 0xa184, 0x01e0,
1837 0x0040, 0x47ce, 0x1078, 0x4830, 0x0078, 0x47e9, 0x7007, 0x0012,
1838 0x7007, 0x0008, 0x7004, 0xd09c, 0x00c0, 0x47d2, 0x7108, 0x7008,
1839 0xa106, 0x00c0, 0x47d6, 0xa184, 0x01e0, 0x0040, 0x47e3, 0x1078,
1840 0x4830, 0x0078, 0x47e9, 0x7007, 0x0012, 0x7108, 0x8103, 0x0048,
1841 0x47d6, 0x7003, 0x0008, 0x007c, 0x7108, 0xa184, 0x01e0, 0x00c0,
1842 0x4830, 0x7108, 0xa184, 0x01e0, 0x00c0, 0x4830, 0xa184, 0x0007,
1843 0x0079, 0x47fa, 0x4804, 0x4814, 0x4802, 0x4814, 0x4802, 0x4872,
1844 0x4802, 0x4870, 0x1078, 0x29b2, 0x7004, 0xa084, 0x0010, 0xc08d,
1845 0x7006, 0x8aff, 0x00c0, 0x480f, 0x2049, 0x0000, 0x007c, 0x1078,
1846 0x49f2, 0x00c0, 0x480f, 0x007c, 0x7004, 0xa084, 0x0010, 0xc08d,
1847 0x7006, 0x7004, 0xd084, 0x00c0, 0x4828, 0x7108, 0x7008, 0xa106,
1848 0x00c0, 0x481d, 0xa184, 0x0003, 0x0040, 0x4828, 0x0078, 0x4830,
1849 0x8aff, 0x0040, 0x482f, 0x1078, 0x49f2, 0x00c0, 0x482b, 0x007c,
1850 0x7007, 0x0012, 0x7108, 0x00e0, 0x4833, 0x2091, 0x6000, 0x00e0,
1851 0x4837, 0x2091, 0x6000, 0x7007, 0x0012, 0x7007, 0x0008, 0x7004,
1852 0xd09c, 0x00c0, 0x483f, 0x7007, 0x0012, 0x7108, 0xd1fc, 0x00c0,
1853 0x4843, 0x7003, 0x0000, 0x7000, 0xa005, 0x00c0, 0x4857, 0x7004,
1854 0xa005, 0x00c0, 0x4857, 0x700c, 0xa005, 0x0040, 0x4859, 0x0078,
1855 0x483b, 0x2049, 0x0000, 0xb284, 0x0100, 0x0040, 0x4863, 0x2001,
1856 0x0000, 0x0078, 0x4865, 0x2001, 0x0001, 0x1078, 0x4262, 0x681b,
1857 0x0002, 0x2051, 0x0000, 0x007c, 0x1078, 0x29b2, 0x1078, 0x29b2,
1858 0x1078, 0x48b9, 0x7210, 0x7114, 0x700c, 0xa09c, 0x03ff, 0x2800,
1859 0xa300, 0xa211, 0xa189, 0x0000, 0x1078, 0x48b9, 0x2704, 0x2c58,
1860 0xac60, 0x6308, 0x2200, 0xa322, 0x630c, 0x2100, 0xa31b, 0x2400,
1861 0xa305, 0x0040, 0x4895, 0x00c8, 0x4895, 0x8412, 0x8210, 0x830a,
1862 0xa189, 0x0000, 0x2b60, 0x0078, 0x487c, 0x2b60, 0x8a07, 0x007e,
1863 0x6004, 0xd09c, 0x0040, 0x48a0, 0xa7ba, 0x46ec, 0x0078, 0x48a2,
1864 0xa7ba, 0x46e4, 0x007f, 0xa73d, 0x2c00, 0x6886, 0x6f8a, 0x6c92,
1865 0x6b8e, 0x7108, 0x7008, 0xa106, 0x00c0, 0x48a9, 0xa184, 0x01e0,
1866 0x0040, 0x48b4, 0x1078, 0x4830, 0x7007, 0x0012, 0x1078, 0x4738,
1867 0x007c, 0x8a50, 0x8739, 0x2704, 0xa004, 0x00c0, 0x48cd, 0x6000,
1868 0xa064, 0x00c0, 0x48c4, 0x2d60, 0x6004, 0xa084, 0x000f, 0xa080,
1869 0x4702, 0x203c, 0x87fb, 0x1040, 0x29b2, 0x007c, 0x127e, 0x0d7e,
1870 0x70d4, 0xa084, 0x4600, 0x8004, 0x2090, 0x0d7f, 0x6884, 0x2060,
1871 0x6888, 0x6b8c, 0x6c90, 0x8057, 0xaad4, 0x00ff, 0xa084, 0x00ff,
1872 0x007e, 0x6804, 0xa084, 0x0008, 0x007f, 0x0040, 0x48eb, 0xa0b8,
1873 0x46ec, 0x0078, 0x48ed, 0xa0b8, 0x46e4, 0xb284, 0x0100, 0x0040,
1874 0x48f4, 0x7e20, 0x0078, 0x48f5, 0x7e24, 0xa6b5, 0x000c, 0x681c,
1875 0xd0b4, 0x0040, 0x48fc, 0xc685, 0x2400, 0xa305, 0x0040, 0x4925,
1876 0x2c58, 0x2704, 0x6104, 0xac60, 0x6000, 0xa400, 0x701a, 0x6004,
1877 0xa301, 0x701e, 0xd19c, 0x0040, 0x4915, 0x6010, 0xa081, 0x0000,
1878 0x7022, 0x6014, 0xa081, 0x0000, 0x7026, 0x6208, 0x2400, 0xa202,
1879 0x7012, 0x620c, 0x2300, 0xa203, 0x7016, 0x7602, 0x7007, 0x0001,
1880 0x2b60, 0x1078, 0x4a1c, 0x0078, 0x4927, 0x1078, 0x49f2, 0x00c0,
1881 0x4925, 0x127f, 0x2000, 0x007c, 0x127e, 0x0d7e, 0x70d4, 0xa084,
1882 0x4600, 0x8004, 0x2090, 0x0d7f, 0x7007, 0x0004, 0x7004, 0xd094,
1883 0x00c0, 0x4936, 0x7003, 0x0008, 0x127f, 0x2000, 0x007c, 0x127e,
1884 0x0d7e, 0x70d4, 0xa084, 0x4600, 0x8004, 0x007e, 0x2090, 0x007f,
1885 0x0d7f, 0x7e20, 0xb284, 0x0100, 0x00c0, 0x494f, 0x7e24, 0xa6b5,
1886 0x000c, 0x681c, 0xd0ac, 0x00c0, 0x495a, 0xc685, 0x7003, 0x0000,
1887 0x7007, 0x0004, 0x6828, 0x2050, 0x2d60, 0x6004, 0xa0bc, 0x000f,
1888 0xa7b8, 0x46f2, 0x273c, 0x87fb, 0x00c0, 0x4970, 0x0048, 0x496a,
1889 0x1078, 0x29b2, 0x689c, 0xa065, 0x0040, 0x4974, 0x0078, 0x495d,
1890 0x1078, 0x49f2, 0x00c0, 0x4970, 0x127f, 0x2000, 0x007c, 0x127e,
1891 0x007e, 0x017e, 0x0d7e, 0x70d4, 0xa084, 0x4600, 0x8004, 0x007e,
1892 0x2090, 0x007f, 0x7e20, 0xb284, 0x0100, 0x00c0, 0x4988, 0x7e24,
1893 0x0d7f, 0x037f, 0x047f, 0xa6b5, 0x000c, 0x681c, 0xd0b4, 0x0040,
1894 0x4996, 0xc685, 0x7003, 0x0000, 0x7007, 0x0004, 0x2049, 0x4977,
1895 0x6828, 0xa055, 0x0d7e, 0x0040, 0x49ee, 0x2d70, 0x2e60, 0x7004,
1896 0xa0bc, 0x000f, 0xa7b8, 0x46f2, 0x273c, 0x87fb, 0x00c0, 0x49b3,
1897 0x0048, 0x49ac, 0x1078, 0x29b2, 0x709c, 0xa075, 0x2060, 0x0040,
1898 0x49ee, 0x0078, 0x499f, 0x2704, 0xae68, 0x6808, 0xa422, 0x680c,
1899 0xa31b, 0x0048, 0x49cc, 0x8a51, 0x00c0, 0x49c0, 0x1078, 0x29b2,
1900 0x8738, 0x2704, 0xa005, 0x00c0, 0x49b4, 0x709c, 0xa075, 0x2060,
1901 0x0040, 0x49ee, 0x0078, 0x499f, 0x8422, 0x8420, 0x831a, 0xa399,
1902 0x0000, 0x6908, 0x2400, 0xa122, 0x690c, 0x2300, 0xa11b, 0x00c8,
1903 0x49db, 0x1078, 0x29b2, 0xb284, 0x0100, 0x0040, 0x49e9, 0x2001,
1904 0x4f04, 0x2004, 0xd0ec, 0x00c0, 0x49e9, 0x2071, 0x0050, 0x0078,
1905 0x49eb, 0x2071, 0x0020, 0x0d7f, 0x0078, 0x48fc, 0x0d7f, 0x127f,
1906 0x2000, 0x007c, 0x7008, 0x007e, 0xa084, 0x01e0, 0x007f, 0x0040,
1907 0x49fb, 0xa006, 0x007c, 0xa084, 0x0003, 0xa086, 0x0003, 0x00c0,
1908 0x4a02, 0x007c, 0x2704, 0xac78, 0x7800, 0x701a, 0x7804, 0x701e,
1909 0x7808, 0x7012, 0x780c, 0x7016, 0x6004, 0xd09c, 0x0040, 0x4a14,
1910 0x7810, 0x7022, 0x7814, 0x7026, 0x7602, 0x7004, 0xa084, 0x0010,
1911 0xc085, 0x7006, 0x2079, 0x4f00, 0x8738, 0x8a51, 0x0040, 0x4a40,
1912 0x2704, 0xa005, 0x00c0, 0x4a32, 0x609c, 0xa005, 0x0040, 0x4a41,
1913 0x2060, 0x6004, 0xa084, 0x000f, 0xa080, 0x46f2, 0x203c, 0x87fb,
1914 0x1040, 0x29b2, 0x7008, 0x007e, 0xa084, 0x01e0, 0x007f, 0x0040,
1915 0x4a3c, 0xa006, 0x0078, 0x4a41, 0xa084, 0x0003, 0xa086, 0x0003,
1916 0x007c, 0x2051, 0x0000, 0x007c, 0x127e, 0x007e, 0x0d7e, 0x70d4,
1917 0xa084, 0x4600, 0x8004, 0x2090, 0x0d7f, 0x087f, 0x7108, 0xa184,
1918 0x0003, 0x00c0, 0x4a59, 0x6828, 0xa005, 0x0040, 0x4a69, 0x0078,
1919 0x4602, 0x7108, 0xd1fc, 0x0040, 0x4a61, 0x1078, 0x47ed, 0x0078,
1920 0x4a4e, 0x7007, 0x0010, 0x7108, 0xd1fc, 0x0040, 0x4a63, 0x1078,
1921 0x47ed, 0x7008, 0xa086, 0x0008, 0x00c0, 0x4a4e, 0x7000, 0xa005,
1922 0x00c0, 0x4a4e, 0x7003, 0x0000, 0x2049, 0x0000, 0x007e, 0x7804,
1923 0xd0cc, 0x0040, 0x4a7d, 0x1078, 0x4acc, 0x007f, 0x127f, 0x2000,
1924 0x007c, 0x127e, 0x147e, 0x137e, 0x157e, 0x0c7e, 0x0d7e, 0x70d4,
1925 0xa084, 0x4600, 0x8004, 0x2090, 0x0d7f, 0x2049, 0x4a81, 0xad80,
1926 0x0011, 0x20a0, 0xb284, 0x0100, 0x0040, 0x4aa4, 0x2001, 0x4f04,
1927 0x2004, 0xd0ec, 0x0040, 0x4aa0, 0x2099, 0x0031, 0x0078, 0x4aa6,
1928 0x2099, 0x0032, 0x0078, 0x4aa6, 0x2099, 0x0031, 0x700c, 0xa084,
1929 0x03ff, 0x682a, 0x7007, 0x0008, 0x7007, 0x0002, 0x7003, 0x0001,
1930 0x0040, 0x4ab5, 0x8000, 0x80ac, 0x53a5, 0x700c, 0xa084, 0x03ff,
1931 0x0040, 0x4ac1, 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0,
1932 0x4abc, 0x0c7f, 0x2049, 0x0000, 0x7003, 0x0000, 0x157f, 0x137f,
1933 0x147f, 0x127f, 0x2000, 0x007c, 0x6814, 0xd0fc, 0x0040, 0x4b11,
1934 0x7000, 0xd084, 0x0040, 0x4b11, 0x7e24, 0xa6b5, 0x0004, 0x7007,
1935 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x4ad9, 0x7118, 0x017e,
1936 0x711c, 0x017e, 0x7120, 0x017e, 0x7124, 0x017e, 0xa00e, 0x711a,
1937 0x701f, 0x3fff, 0x7122, 0x7126, 0x7013, 0x0004, 0x7116, 0x7602,
1938 0x7007, 0x0001, 0x2001, 0xffff, 0x2009, 0x0031, 0x200a, 0x200a,
1939 0x7108, 0x7008, 0xa106, 0x00c0, 0x4af8, 0xd1fc, 0x0040, 0x4af8,
1940 0x027f, 0x7226, 0x027f, 0x7222, 0x027f, 0x721e, 0x027f, 0x721a,
1941 0x7007, 0x0002, 0x7008, 0xa086, 0x0008, 0x0040, 0x4b11, 0x0078,
1942 0x4830, 0x7007, 0x0004, 0x7003, 0x0000, 0x007c, 0x2091, 0x8000,
1943 0x2091, 0x6000, 0x78ac, 0xa005, 0x00c0, 0x4b2d, 0x7974, 0x70d0,
1944 0xa106, 0x00c0, 0x4b2d, 0x781c, 0xa005, 0x0040, 0x4b2d, 0x781f,
1945 0x0000, 0x0068, 0x4b2d, 0x2091, 0x4080, 0x7830, 0x8001, 0x7832,
1946 0x00c0, 0x4bb5, 0x7834, 0x7832, 0x7810, 0xd0ec, 0x00c0, 0x4bae,
1947 0x2061, 0x74c0, 0x2069, 0x4f80, 0xc7fd, 0x68d0, 0xa005, 0x0040,
1948 0x4b47, 0x8001, 0x68d2, 0x00c0, 0x4b47, 0x1078, 0x4d83, 0x6800,
1949 0xa084, 0x000f, 0x0040, 0x4b5c, 0xa086, 0x0001, 0x0040, 0x4b5c,
1950 0x6844, 0xa00d, 0x0040, 0x4b5c, 0x2104, 0xa005, 0x0040, 0x4b5c,
1951 0x8001, 0x200a, 0x0040, 0x4cf6, 0x6814, 0xa005, 0x0040, 0x4b81,
1952 0x8001, 0x6816, 0x00c0, 0x4b81, 0x68a7, 0x0001, 0x0f7e, 0xd7fc,
1953 0x00c0, 0x4b76, 0x7810, 0xd0ec, 0x0040, 0x4b72, 0x2079, 0x0100,
1954 0x0078, 0x4b78, 0x2079, 0x0200, 0x0078, 0x4b78, 0x2079, 0x0100,
1955 0x1078, 0x43d3, 0x0f7f, 0x6864, 0xa005, 0x0040, 0x4b81, 0x1078,
1956 0x266f, 0x6880, 0xa005, 0x0040, 0x4b8e, 0x8001, 0x6882, 0x00c0,
1957 0x4b8e, 0x6867, 0x0000, 0x68d4, 0xc0dd, 0x68d6, 0x68d4, 0xd0fc,
1958 0x0040, 0x4bab, 0xc0fc, 0x68d6, 0x20a9, 0x0200, 0x6034, 0xa005,
1959 0x0040, 0x4ba7, 0x8001, 0x6036, 0x68d4, 0xc0fd, 0x68d6, 0x00c0,
1960 0x4ba7, 0x6010, 0xa005, 0x0040, 0x4ba7, 0x1078, 0x266f, 0xace0,
1961 0x0010, 0x00f0, 0x4b96, 0xd7fc, 0x0040, 0x4bb5, 0x2061, 0x54c0,
1962 0x2069, 0x4f40, 0xc7fc, 0x0078, 0x4b3d, 0x1078, 0x4bf1, 0x7838,
1963 0x8001, 0x783a, 0x00c0, 0x4bd7, 0x783c, 0x783a, 0x2061, 0x54c0,
1964 0x2069, 0x4f40, 0xc7fc, 0x680c, 0xa005, 0x0040, 0x4bc9, 0x1078,
1965 0x4c5b, 0xd7fc, 0x00c0, 0x4bd7, 0x7810, 0xd0ec, 0x00c0, 0x4bd7,
1966 0x2061, 0x74c0, 0x2069, 0x4f80, 0xc7fd, 0x0078, 0x4bc3, 0x7814,
1967 0xd0e4, 0x00c0, 0x4bdb, 0x7810, 0xd0cc, 0x0040, 0x4bee, 0xd0ac,
1968 0x00c0, 0x4be7, 0xd0a4, 0x0040, 0x4bee, 0xc0ad, 0x7812, 0x2091,
1969 0x8001, 0x0068, 0x4bed, 0x1078, 0x23dc, 0x007c, 0x2091, 0x8001,
1970 0x007c, 0x7840, 0x8001, 0x7842, 0x00c0, 0x4c5a, 0x7844, 0x7842,
1971 0x2069, 0x4f40, 0xc7fc, 0x7810, 0x2079, 0x0200, 0xd0ec, 0x0040,
1972 0x4c03, 0x2079, 0x0100, 0x68d8, 0xa005, 0x0040, 0x4c0f, 0x7de0,
1973 0xa504, 0x00c0, 0x4c0f, 0x68da, 0x68d4, 0xc0bc, 0x68d6, 0x2079,
1974 0x4f00, 0x6810, 0xa005, 0x00c0, 0x4c17, 0x2001, 0x0101, 0x8001,
1975 0x6812, 0xd7fc, 0x0040, 0x4c20, 0xa080, 0x95d0, 0x0078, 0x4c22,
1976 0xa080, 0x94c0, 0x2040, 0x2004, 0xa065, 0x0040, 0x4c4c, 0x6024,
1977 0xa005, 0x0040, 0x4c48, 0x8001, 0x6026, 0x00c0, 0x4c48, 0x6800,
1978 0xa005, 0x0040, 0x4c3b, 0x684c, 0xac06, 0x00c0, 0x4c3b, 0x1078,
1979 0x4cf6, 0x0078, 0x4c4c, 0x6864, 0xa005, 0x0040, 0x4c43, 0x6027,
1980 0x0001, 0x0078, 0x4c48, 0x1078, 0x4ca9, 0x2804, 0x0078, 0x4c24,
1981 0x6000, 0x2c40, 0x0078, 0x4c24, 0xd7fc, 0x00c0, 0x4c5a, 0x7810,
1982 0xd0ec, 0x00c0, 0x4c5a, 0x2069, 0x4f80, 0xc7fd, 0x2079, 0x0100,
1983 0x0078, 0x4c03, 0x007c, 0x2009, 0x0000, 0x20a9, 0x0200, 0x6008,
1984 0xd09c, 0x0040, 0x4c95, 0x6024, 0xa005, 0x0040, 0x4c6b, 0x8001,
1985 0x6026, 0x0078, 0x4c93, 0x6008, 0xc09c, 0xd084, 0x00c0, 0x4c73,
1986 0xd0ac, 0x0040, 0x4c8d, 0x600a, 0x6004, 0xa005, 0x0040, 0x4c95,
1987 0x0d7e, 0x0c7e, 0x017e, 0x2068, 0x6010, 0x8001, 0x6012, 0x1078,
1988 0x3e19, 0x2d00, 0x2c68, 0x2060, 0x1078, 0x1ea2, 0x1078, 0x2064,
1989 0x017f, 0x0c7f, 0x0d7f, 0x0078, 0x4c95, 0xc0bd, 0x600a, 0xa18d,
1990 0x0001, 0x0078, 0x4c95, 0xa18d, 0x0100, 0xace0, 0x0010, 0x00f0,
1991 0x4c5f, 0xa184, 0x0001, 0x0040, 0x4ca4, 0xa18c, 0xfffe, 0x690e,
1992 0x1078, 0x266f, 0x0078, 0x4ca5, 0x690e, 0x007c, 0x00c0, 0x4ca5,
1993 0x786c, 0x2c00, 0x687e, 0x6714, 0x6f76, 0x6017, 0x0000, 0x602b,
1994 0x0000, 0x601b, 0x0006, 0x60b4, 0xa084, 0x3f00, 0x601e, 0x6020,
1995 0xa084, 0x00ff, 0xa085, 0x0060, 0x6022, 0x6000, 0x2042, 0x1078,
1996 0x1e2b, 0x6818, 0xa005, 0x0040, 0x4cc7, 0x8001, 0x681a, 0x6808,
1997 0xc0a4, 0x680a, 0x6810, 0x7908, 0x8109, 0x790a, 0x8001, 0x00d0,
1998 0x4cd3, 0x1078, 0x29b2, 0x6812, 0x00c0, 0x4cd9, 0x7910, 0xc1a5,
1999 0x7912, 0x602f, 0x0000, 0x6033, 0x0000, 0x2c68, 0x1078, 0x2073,
2000 0xd7fc, 0x00c0, 0x4ce7, 0x2069, 0x4f40, 0x0078, 0x4ce9, 0x2069,
2001 0x4f80, 0x6910, 0xa184, 0x0100, 0x2001, 0x0006, 0x00c0, 0x4cf3,
2002 0x697a, 0x2001, 0x0004, 0x1078, 0x2663, 0x007c, 0x0d7e, 0x694c,
2003 0x2160, 0xd7fc, 0x00c0, 0x4d08, 0x7810, 0xd0ec, 0x0040, 0x4d04,
2004 0x2069, 0x0100, 0x0078, 0x4d0a, 0x2069, 0x0200, 0x0078, 0x4d0a,
2005 0x2069, 0x0100, 0x1078, 0x2926, 0x601b, 0x0006, 0x6858, 0xa084,
2006 0x3f00, 0x601e, 0x6020, 0xa084, 0x00ff, 0xa085, 0x0048, 0x6022,
2007 0x602f, 0x0000, 0x6033, 0x0000, 0x6808, 0xa084, 0xfffd, 0x680a,
2008 0x6830, 0xd0b4, 0x0040, 0x4d3c, 0x684b, 0x0004, 0x20a9, 0x0014,
2009 0x6848, 0xd094, 0x0040, 0x4d2e, 0x00f0, 0x4d28, 0x684b, 0x0009,
2010 0x20a9, 0x0014, 0x6848, 0xd084, 0x0040, 0x4d38, 0x00f0, 0x4d32,
2011 0x20a9, 0x00fa, 0x00f0, 0x4d3a, 0x681b, 0x0047, 0x0d7f, 0x6867,
2012 0x0007, 0x007c, 0x2079, 0x4f00, 0x1078, 0x4d76, 0x1078, 0x4d5c,
2013 0x1078, 0x4d69, 0x2009, 0x0002, 0x2069, 0x4f80, 0x680f, 0x0000,
2014 0x6813, 0x0000, 0x6817, 0x0000, 0x8109, 0x0040, 0x4d5b, 0x2069,
2015 0x4f40, 0x0078, 0x4d4e, 0x007c, 0x7810, 0xd0ec, 0x0040, 0x4d64,
2016 0x2019, 0x00cc, 0x0078, 0x4d66, 0x2019, 0x007b, 0x7b3a, 0x7b3e,
2017 0x007c, 0x7814, 0xd0e4, 0x00c0, 0x4d71, 0x2019, 0x0040, 0x0078,
2018 0x4d73, 0x2019, 0x0026, 0x7b42, 0x7b46, 0x007c, 0x7814, 0xd0e4,
2019 0x00c0, 0x4d7e, 0x2019, 0x3f94, 0x0078, 0x4d80, 0x2019, 0x2624,
2020 0x7b32, 0x7b36, 0x007c, 0x6a50, 0xa285, 0x0000, 0x0040, 0x4daf,
2021 0x6954, 0x6bc0, 0xa300, 0x0c7e, 0x2164, 0x6304, 0x83ff, 0x00c0,
2022 0x4d9b, 0x8211, 0x0040, 0x4d9f, 0x8108, 0xa11a, 0x0048, 0x4d8c,
2023 0x69c0, 0x0078, 0x4d8c, 0x68d3, 0x000a, 0x0c7f, 0x007c, 0x6950,
2024 0x6ac0, 0x2264, 0x602b, 0x0000, 0x602f, 0x0000, 0x6008, 0xc0b5,
2025 0x600a, 0x8210, 0x8109, 0x00c0, 0x4da1, 0x6952, 0x0c7f, 0x007c,
2026 0x00e0, 0x4db0, 0x2091, 0x6000, 0x00e0, 0x4db4, 0x2091, 0x6000,
2027 0x70ec, 0xd0dc, 0x00c0, 0x4dc1, 0xd0d4, 0x0040, 0x4dea, 0x0078,
2028 0x4ded, 0x2008, 0x7810, 0xd0ec, 0x0040, 0x4dd4, 0xd1c4, 0x00c0,
2029 0x4e0e, 0x7814, 0xc0c5, 0x7816, 0x7810, 0xc0f5, 0x7812, 0xd0ec,
2030 0x0040, 0x4e0a, 0x0078, 0x4e06, 0xae8e, 0x0100, 0x0040, 0x4de1,
2031 0x7814, 0xc0f5, 0xc0c5, 0x7816, 0xd0d4, 0x00c0, 0x4e0a, 0x0078,
2032 0x4e06, 0x7814, 0xc0fd, 0xc0c5, 0x7816, 0xd0d4, 0x00c0, 0x4e0a,
2033 0x0078, 0x4e06, 0xd0e4, 0x0040, 0x4e0c, 0x00e0, 0x4ded, 0x2091,
2034 0x6000, 0x2009, 0x000c, 0x00e0, 0x4df3, 0x2091, 0x6000, 0x8109,
2035 0x00c0, 0x4df3, 0x70e4, 0xa084, 0x01ff, 0xa086, 0x01ff, 0x00c0,
2036 0x4e04, 0x70ec, 0x0078, 0x4dc1, 0x1078, 0x4e0f, 0x7804, 0xd08c,
2037 0x0040, 0x4e0c, 0x681f, 0x000c, 0x70a0, 0x70a2, 0x007c, 0x7910,
2038 0xd1ec, 0x0040, 0x4e19, 0x7814, 0xc0c4, 0xc1f4, 0x7912, 0x0078,
2039 0x4e2b, 0xae8e, 0x0100, 0x0040, 0x4e25, 0x7814, 0xc0f4, 0xd0fc,
2040 0x00c0, 0x4e2b, 0xc0c4, 0x0078, 0x4e2b, 0x7814, 0xc0fc, 0xd0f4,
2041 0x00c0, 0x4e2b, 0xc0c4, 0x7816, 0x007c, 0x14e3
2042};
2043#ifdef UNIQUE_FW_NAME
2044static unsigned short fw1280ei_length01 = 0x3e2e;
2045#else
2046static unsigned short risc_code_length01 = 0x3e2e;
2047#endif
2048
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index df09820e891..351b56ced92 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -348,6 +348,7 @@
348#include <linux/interrupt.h> 348#include <linux/interrupt.h>
349#include <linux/init.h> 349#include <linux/init.h>
350#include <linux/dma-mapping.h> 350#include <linux/dma-mapping.h>
351#include <linux/firmware.h>
351 352
352#include <asm/io.h> 353#include <asm/io.h>
353#include <asm/irq.h> 354#include <asm/irq.h>
@@ -384,11 +385,7 @@
384#define MEMORY_MAPPED_IO 1 385#define MEMORY_MAPPED_IO 1
385#endif 386#endif
386 387
387#define UNIQUE_FW_NAME
388#include "qla1280.h" 388#include "qla1280.h"
389#include "ql12160_fw.h" /* ISP RISC codes */
390#include "ql1280_fw.h"
391#include "ql1040_fw.h"
392 389
393#ifndef BITS_PER_LONG 390#ifndef BITS_PER_LONG
394#error "BITS_PER_LONG not defined!" 391#error "BITS_PER_LONG not defined!"
@@ -541,10 +538,7 @@ __setup("qla1280=", qla1280_setup);
541struct qla_boards { 538struct qla_boards {
542 unsigned char name[9]; /* Board ID String */ 539 unsigned char name[9]; /* Board ID String */
543 int numPorts; /* Number of SCSI ports */ 540 int numPorts; /* Number of SCSI ports */
544 unsigned short *fwcode; /* pointer to FW array */ 541 char *fwname; /* firmware name */
545 unsigned short *fwlen; /* number of words in array */
546 unsigned short *fwstart; /* start address for F/W */
547 unsigned char *fwver; /* Ptr to F/W version array */
548}; 542};
549 543
550/* NOTE: the last argument in each entry is used to index ql1280_board_tbl */ 544/* NOTE: the last argument in each entry is used to index ql1280_board_tbl */
@@ -567,19 +561,13 @@ MODULE_DEVICE_TABLE(pci, qla1280_pci_tbl);
567 561
568static struct qla_boards ql1280_board_tbl[] = { 562static struct qla_boards ql1280_board_tbl[] = {
569 /* Name , Number of ports, FW details */ 563 /* Name , Number of ports, FW details */
570 {"QLA12160", 2, &fw12160i_code01[0], &fw12160i_length01, 564 {"QLA12160", 2, "qlogic/12160.bin"},
571 &fw12160i_addr01, &fw12160i_version_str[0]}, 565 {"QLA1040", 1, "qlogic/1040.bin"},
572 {"QLA1040", 1, &risc_code01[0], &risc_code_length01, 566 {"QLA1080", 1, "qlogic/1280.bin"},
573 &risc_code_addr01, &firmware_version[0]}, 567 {"QLA1240", 2, "qlogic/1280.bin"},
574 {"QLA1080", 1, &fw1280ei_code01[0], &fw1280ei_length01, 568 {"QLA1280", 2, "qlogic/1280.bin"},
575 &fw1280ei_addr01, &fw1280ei_version_str[0]}, 569 {"QLA10160", 1, "qlogic/12160.bin"},
576 {"QLA1240", 2, &fw1280ei_code01[0], &fw1280ei_length01, 570 {" ", 0, " "},
577 &fw1280ei_addr01, &fw1280ei_version_str[0]},
578 {"QLA1280", 2, &fw1280ei_code01[0], &fw1280ei_length01,
579 &fw1280ei_addr01, &fw1280ei_version_str[0]},
580 {"QLA10160", 1, &fw12160i_code01[0], &fw12160i_length01,
581 &fw12160i_addr01, &fw12160i_version_str[0]},
582 {" ", 0}
583}; 571};
584 572
585static int qla1280_verbose = 1; 573static int qla1280_verbose = 1;
@@ -704,7 +692,7 @@ qla1280_info(struct Scsi_Host *host)
704 sprintf (bp, 692 sprintf (bp,
705 "QLogic %s PCI to SCSI Host Adapter\n" 693 "QLogic %s PCI to SCSI Host Adapter\n"
706 " Firmware version: %2d.%02d.%02d, Driver version %s", 694 " Firmware version: %2d.%02d.%02d, Driver version %s",
707 &bdp->name[0], bdp->fwver[0], bdp->fwver[1], bdp->fwver[2], 695 &bdp->name[0], ha->fwver1, ha->fwver2, ha->fwver3,
708 QLA1280_VERSION); 696 QLA1280_VERSION);
709 return bp; 697 return bp;
710} 698}
@@ -1648,36 +1636,60 @@ qla1280_chip_diag(struct scsi_qla_host *ha)
1648static int 1636static int
1649qla1280_load_firmware_pio(struct scsi_qla_host *ha) 1637qla1280_load_firmware_pio(struct scsi_qla_host *ha)
1650{ 1638{
1651 uint16_t risc_address, *risc_code_address, risc_code_size; 1639 const struct firmware *fw;
1640 const __le16 *fw_data;
1641 uint16_t risc_address, risc_code_size;
1652 uint16_t mb[MAILBOX_REGISTER_COUNT], i; 1642 uint16_t mb[MAILBOX_REGISTER_COUNT], i;
1653 int err; 1643 int err;
1654 1644
1645 err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
1646 &ha->pdev->dev);
1647 if (err) {
1648 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
1649 ql1280_board_tbl[ha->devnum].fwname, err);
1650 return err;
1651 }
1652 if ((fw->size % 2) || (fw->size < 6)) {
1653 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
1654 fw->size, ql1280_board_tbl[ha->devnum].fwname);
1655 err = -EINVAL;
1656 goto out;
1657 }
1658 ha->fwver1 = fw->data[0];
1659 ha->fwver2 = fw->data[1];
1660 ha->fwver3 = fw->data[2];
1661 fw_data = (const __le16 *)&fw->data[0];
1662 ha->fwstart = __le16_to_cpu(fw_data[2]);
1663
1655 /* Load RISC code. */ 1664 /* Load RISC code. */
1656 risc_address = *ql1280_board_tbl[ha->devnum].fwstart; 1665 risc_address = ha->fwstart;
1657 risc_code_address = ql1280_board_tbl[ha->devnum].fwcode; 1666 fw_data = (const __le16 *)&fw->data[4];
1658 risc_code_size = *ql1280_board_tbl[ha->devnum].fwlen; 1667 risc_code_size = (fw->size - 6) / 2;
1659 1668
1660 for (i = 0; i < risc_code_size; i++) { 1669 for (i = 0; i < risc_code_size; i++) {
1661 mb[0] = MBC_WRITE_RAM_WORD; 1670 mb[0] = MBC_WRITE_RAM_WORD;
1662 mb[1] = risc_address + i; 1671 mb[1] = risc_address + i;
1663 mb[2] = risc_code_address[i]; 1672 mb[2] = __le16_to_cpu(fw_data[i]);
1664 1673
1665 err = qla1280_mailbox_command(ha, BIT_0 | BIT_1 | BIT_2, mb); 1674 err = qla1280_mailbox_command(ha, BIT_0 | BIT_1 | BIT_2, mb);
1666 if (err) { 1675 if (err) {
1667 printk(KERN_ERR "scsi(%li): Failed to load firmware\n", 1676 printk(KERN_ERR "scsi(%li): Failed to load firmware\n",
1668 ha->host_no); 1677 ha->host_no);
1669 return err; 1678 goto out;
1670 } 1679 }
1671 } 1680 }
1672 1681out:
1673 return 0; 1682 release_firmware(fw);
1683 return err;
1674} 1684}
1675 1685
1676#define DUMP_IT_BACK 0 /* for debug of RISC loading */ 1686#define DUMP_IT_BACK 0 /* for debug of RISC loading */
1677static int 1687static int
1678qla1280_load_firmware_dma(struct scsi_qla_host *ha) 1688qla1280_load_firmware_dma(struct scsi_qla_host *ha)
1679{ 1689{
1680 uint16_t risc_address, *risc_code_address, risc_code_size; 1690 const struct firmware *fw;
1691 const __le16 *fw_data;
1692 uint16_t risc_address, risc_code_size;
1681 uint16_t mb[MAILBOX_REGISTER_COUNT], cnt; 1693 uint16_t mb[MAILBOX_REGISTER_COUNT], cnt;
1682 int err = 0, num, i; 1694 int err = 0, num, i;
1683#if DUMP_IT_BACK 1695#if DUMP_IT_BACK
@@ -1689,10 +1701,29 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
1689 return -ENOMEM; 1701 return -ENOMEM;
1690#endif 1702#endif
1691 1703
1704 err = request_firmware(&fw, ql1280_board_tbl[ha->devnum].fwname,
1705 &ha->pdev->dev);
1706 if (err) {
1707 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
1708 ql1280_board_tbl[ha->devnum].fwname, err);
1709 return err;
1710 }
1711 if ((fw->size % 2) || (fw->size < 6)) {
1712 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
1713 fw->size, ql1280_board_tbl[ha->devnum].fwname);
1714 err = -EINVAL;
1715 goto out;
1716 }
1717 ha->fwver1 = fw->data[0];
1718 ha->fwver2 = fw->data[1];
1719 ha->fwver3 = fw->data[2];
1720 fw_data = (const __le16 *)&fw->data[0];
1721 ha->fwstart = __le16_to_cpu(fw_data[2]);
1722
1692 /* Load RISC code. */ 1723 /* Load RISC code. */
1693 risc_address = *ql1280_board_tbl[ha->devnum].fwstart; 1724 risc_address = ha->fwstart;
1694 risc_code_address = ql1280_board_tbl[ha->devnum].fwcode; 1725 fw_data = (const __le16 *)&fw->data[4];
1695 risc_code_size = *ql1280_board_tbl[ha->devnum].fwlen; 1726 risc_code_size = (fw->size - 6) / 2;
1696 1727
1697 dprintk(1, "%s: DMA RISC code (%i) words\n", 1728 dprintk(1, "%s: DMA RISC code (%i) words\n",
1698 __func__, risc_code_size); 1729 __func__, risc_code_size);
@@ -1708,10 +1739,9 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
1708 1739
1709 dprintk(2, "qla1280_setup_chip: loading risc @ =(0x%p)," 1740 dprintk(2, "qla1280_setup_chip: loading risc @ =(0x%p),"
1710 "%d,%d(0x%x)\n", 1741 "%d,%d(0x%x)\n",
1711 risc_code_address, cnt, num, risc_address); 1742 fw_data, cnt, num, risc_address);
1712 for(i = 0; i < cnt; i++) 1743 for(i = 0; i < cnt; i++)
1713 ((__le16 *)ha->request_ring)[i] = 1744 ((__le16 *)ha->request_ring)[i] = fw_data[i];
1714 cpu_to_le16(risc_code_address[i]);
1715 1745
1716 mb[0] = MBC_LOAD_RAM; 1746 mb[0] = MBC_LOAD_RAM;
1717 mb[1] = risc_address; 1747 mb[1] = risc_address;
@@ -1763,7 +1793,7 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
1763#endif 1793#endif
1764 risc_address += cnt; 1794 risc_address += cnt;
1765 risc_code_size = risc_code_size - cnt; 1795 risc_code_size = risc_code_size - cnt;
1766 risc_code_address = risc_code_address + cnt; 1796 fw_data = fw_data + cnt;
1767 num++; 1797 num++;
1768 } 1798 }
1769 1799
@@ -1771,6 +1801,7 @@ qla1280_load_firmware_dma(struct scsi_qla_host *ha)
1771#if DUMP_IT_BACK 1801#if DUMP_IT_BACK
1772 pci_free_consistent(ha->pdev, 8000, tbuf, p_tbuf); 1802 pci_free_consistent(ha->pdev, 8000, tbuf, p_tbuf);
1773#endif 1803#endif
1804 release_firmware(fw);
1774 return err; 1805 return err;
1775} 1806}
1776 1807
@@ -1786,7 +1817,7 @@ qla1280_start_firmware(struct scsi_qla_host *ha)
1786 /* Verify checksum of loaded RISC code. */ 1817 /* Verify checksum of loaded RISC code. */
1787 mb[0] = MBC_VERIFY_CHECKSUM; 1818 mb[0] = MBC_VERIFY_CHECKSUM;
1788 /* mb[1] = ql12_risc_code_addr01; */ 1819 /* mb[1] = ql12_risc_code_addr01; */
1789 mb[1] = *ql1280_board_tbl[ha->devnum].fwstart; 1820 mb[1] = ha->fwstart;
1790 err = qla1280_mailbox_command(ha, BIT_1 | BIT_0, mb); 1821 err = qla1280_mailbox_command(ha, BIT_1 | BIT_0, mb);
1791 if (err) { 1822 if (err) {
1792 printk(KERN_ERR "scsi(%li): RISC checksum failed.\n", ha->host_no); 1823 printk(KERN_ERR "scsi(%li): RISC checksum failed.\n", ha->host_no);
@@ -1796,7 +1827,7 @@ qla1280_start_firmware(struct scsi_qla_host *ha)
1796 /* Start firmware execution. */ 1827 /* Start firmware execution. */
1797 dprintk(1, "%s: start firmware running.\n", __func__); 1828 dprintk(1, "%s: start firmware running.\n", __func__);
1798 mb[0] = MBC_EXECUTE_FIRMWARE; 1829 mb[0] = MBC_EXECUTE_FIRMWARE;
1799 mb[1] = *ql1280_board_tbl[ha->devnum].fwstart; 1830 mb[1] = ha->fwstart;
1800 err = qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]); 1831 err = qla1280_mailbox_command(ha, BIT_1 | BIT_0, &mb[0]);
1801 if (err) { 1832 if (err) {
1802 printk(KERN_ERR "scsi(%li): Failed to start firmware\n", 1833 printk(KERN_ERR "scsi(%li): Failed to start firmware\n",
@@ -4450,6 +4481,9 @@ module_exit(qla1280_exit);
4450MODULE_AUTHOR("Qlogic & Jes Sorensen"); 4481MODULE_AUTHOR("Qlogic & Jes Sorensen");
4451MODULE_DESCRIPTION("Qlogic ISP SCSI (qla1x80/qla1x160) driver"); 4482MODULE_DESCRIPTION("Qlogic ISP SCSI (qla1x80/qla1x160) driver");
4452MODULE_LICENSE("GPL"); 4483MODULE_LICENSE("GPL");
4484MODULE_FIRMWARE("qlogic/1040.bin");
4485MODULE_FIRMWARE("qlogic/1280.bin");
4486MODULE_FIRMWARE("qlogic/12160.bin");
4453MODULE_VERSION(QLA1280_VERSION); 4487MODULE_VERSION(QLA1280_VERSION);
4454 4488
4455/* 4489/*
diff --git a/drivers/scsi/qla1280.h b/drivers/scsi/qla1280.h
index ff2c363ead2..d7c44b8d2b4 100644
--- a/drivers/scsi/qla1280.h
+++ b/drivers/scsi/qla1280.h
@@ -1069,6 +1069,12 @@ struct scsi_qla_host {
1069 1069
1070 struct nvram nvram; 1070 struct nvram nvram;
1071 int nvram_valid; 1071 int nvram_valid;
1072
1073 /* Firmware Info */
1074 unsigned short fwstart; /* start address for F/W */
1075 unsigned char fwver1; /* F/W version first char */
1076 unsigned char fwver2; /* F/W version second char */
1077 unsigned char fwver3; /* F/W version third char */
1072}; 1078};
1073 1079
1074#endif /* _QLA1280_H */ 1080#endif /* _QLA1280_H */
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index ee9d4015243..b09993a0657 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -96,7 +96,9 @@ qla2x00_sysfs_read_nvram(struct kobject *kobj,
96 if (!capable(CAP_SYS_ADMIN)) 96 if (!capable(CAP_SYS_ADMIN))
97 return 0; 97 return 0;
98 98
99 /* Read NVRAM data from cache. */ 99 if (IS_NOCACHE_VPD_TYPE(ha))
100 ha->isp_ops->read_optrom(vha, ha->vpd, ha->flt_region_nvram << 2,
101 ha->nvram_size);
100 return memory_read_from_buffer(buf, count, &off, ha->nvram, 102 return memory_read_from_buffer(buf, count, &off, ha->nvram,
101 ha->nvram_size); 103 ha->nvram_size);
102} 104}
@@ -111,7 +113,8 @@ qla2x00_sysfs_write_nvram(struct kobject *kobj,
111 struct qla_hw_data *ha = vha->hw; 113 struct qla_hw_data *ha = vha->hw;
112 uint16_t cnt; 114 uint16_t cnt;
113 115
114 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->nvram_size) 116 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->nvram_size ||
117 !ha->isp_ops->write_nvram)
115 return 0; 118 return 0;
116 119
117 /* Checksum NVRAM. */ 120 /* Checksum NVRAM. */
@@ -137,12 +140,21 @@ qla2x00_sysfs_write_nvram(struct kobject *kobj,
137 *iter = chksum; 140 *iter = chksum;
138 } 141 }
139 142
143 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) {
144 qla_printk(KERN_WARNING, ha,
145 "HBA not online, failing NVRAM update.\n");
146 return -EAGAIN;
147 }
148
140 /* Write NVRAM. */ 149 /* Write NVRAM. */
141 ha->isp_ops->write_nvram(vha, (uint8_t *)buf, ha->nvram_base, count); 150 ha->isp_ops->write_nvram(vha, (uint8_t *)buf, ha->nvram_base, count);
142 ha->isp_ops->read_nvram(vha, (uint8_t *)ha->nvram, ha->nvram_base, 151 ha->isp_ops->read_nvram(vha, (uint8_t *)ha->nvram, ha->nvram_base,
143 count); 152 count);
144 153
154 /* NVRAM settings take effect immediately. */
145 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); 155 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
156 qla2xxx_wake_dpc(vha);
157 qla2x00_wait_for_chip_reset(vha);
146 158
147 return (count); 159 return (count);
148} 160}
@@ -330,6 +342,12 @@ qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj,
330 if (ha->optrom_state != QLA_SWRITING) 342 if (ha->optrom_state != QLA_SWRITING)
331 break; 343 break;
332 344
345 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) {
346 qla_printk(KERN_WARNING, ha,
347 "HBA not online, failing flash update.\n");
348 return -EAGAIN;
349 }
350
333 DEBUG2(qla_printk(KERN_INFO, ha, 351 DEBUG2(qla_printk(KERN_INFO, ha,
334 "Writing flash region -- 0x%x/0x%x.\n", 352 "Writing flash region -- 0x%x/0x%x.\n",
335 ha->optrom_region_start, ha->optrom_region_size)); 353 ha->optrom_region_start, ha->optrom_region_size));
@@ -364,7 +382,9 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj,
364 if (!capable(CAP_SYS_ADMIN)) 382 if (!capable(CAP_SYS_ADMIN))
365 return 0; 383 return 0;
366 384
367 /* Read NVRAM data from cache. */ 385 if (IS_NOCACHE_VPD_TYPE(ha))
386 ha->isp_ops->read_optrom(vha, ha->vpd, ha->flt_region_vpd << 2,
387 ha->vpd_size);
368 return memory_read_from_buffer(buf, count, &off, ha->vpd, ha->vpd_size); 388 return memory_read_from_buffer(buf, count, &off, ha->vpd, ha->vpd_size);
369} 389}
370 390
@@ -376,14 +396,35 @@ qla2x00_sysfs_write_vpd(struct kobject *kobj,
376 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, 396 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj,
377 struct device, kobj))); 397 struct device, kobj)));
378 struct qla_hw_data *ha = vha->hw; 398 struct qla_hw_data *ha = vha->hw;
399 uint8_t *tmp_data;
379 400
380 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size) 401 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size ||
402 !ha->isp_ops->write_nvram)
381 return 0; 403 return 0;
382 404
405 if (qla2x00_wait_for_hba_online(vha) != QLA_SUCCESS) {
406 qla_printk(KERN_WARNING, ha,
407 "HBA not online, failing VPD update.\n");
408 return -EAGAIN;
409 }
410
383 /* Write NVRAM. */ 411 /* Write NVRAM. */
384 ha->isp_ops->write_nvram(vha, (uint8_t *)buf, ha->vpd_base, count); 412 ha->isp_ops->write_nvram(vha, (uint8_t *)buf, ha->vpd_base, count);
385 ha->isp_ops->read_nvram(vha, (uint8_t *)ha->vpd, ha->vpd_base, count); 413 ha->isp_ops->read_nvram(vha, (uint8_t *)ha->vpd, ha->vpd_base, count);
386 414
415 /* Update flash version information for 4Gb & above. */
416 if (!IS_FWI2_CAPABLE(ha))
417 goto done;
418
419 tmp_data = vmalloc(256);
420 if (!tmp_data) {
421 qla_printk(KERN_WARNING, ha,
422 "Unable to allocate memory for VPD information update.\n");
423 goto done;
424 }
425 ha->isp_ops->get_flash_version(vha, tmp_data);
426 vfree(tmp_data);
427done:
387 return count; 428 return count;
388} 429}
389 430
@@ -458,6 +499,199 @@ static struct bin_attribute sysfs_sfp_attr = {
458 .read = qla2x00_sysfs_read_sfp, 499 .read = qla2x00_sysfs_read_sfp,
459}; 500};
460 501
502static ssize_t
503qla2x00_sysfs_write_reset(struct kobject *kobj,
504 struct bin_attribute *bin_attr,
505 char *buf, loff_t off, size_t count)
506{
507 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj,
508 struct device, kobj)));
509 struct qla_hw_data *ha = vha->hw;
510 int type;
511
512 if (off != 0)
513 return 0;
514
515 type = simple_strtol(buf, NULL, 10);
516 switch (type) {
517 case 0x2025c:
518 qla_printk(KERN_INFO, ha,
519 "Issuing ISP reset on (%ld).\n", vha->host_no);
520
521 scsi_block_requests(vha->host);
522 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
523 qla2xxx_wake_dpc(vha);
524 qla2x00_wait_for_chip_reset(vha);
525 scsi_unblock_requests(vha->host);
526 break;
527 case 0x2025d:
528 if (!IS_QLA81XX(ha))
529 break;
530
531 qla_printk(KERN_INFO, ha,
532 "Issuing MPI reset on (%ld).\n", vha->host_no);
533
534 /* Make sure FC side is not in reset */
535 qla2x00_wait_for_hba_online(vha);
536
537 /* Issue MPI reset */
538 scsi_block_requests(vha->host);
539 if (qla81xx_restart_mpi_firmware(vha) != QLA_SUCCESS)
540 qla_printk(KERN_WARNING, ha,
541 "MPI reset failed on (%ld).\n", vha->host_no);
542 scsi_unblock_requests(vha->host);
543 break;
544 }
545 return count;
546}
547
548static struct bin_attribute sysfs_reset_attr = {
549 .attr = {
550 .name = "reset",
551 .mode = S_IWUSR,
552 },
553 .size = 0,
554 .write = qla2x00_sysfs_write_reset,
555};
556
557static ssize_t
558qla2x00_sysfs_write_edc(struct kobject *kobj,
559 struct bin_attribute *bin_attr,
560 char *buf, loff_t off, size_t count)
561{
562 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj,
563 struct device, kobj)));
564 struct qla_hw_data *ha = vha->hw;
565 uint16_t dev, adr, opt, len;
566 int rval;
567
568 ha->edc_data_len = 0;
569
570 if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8)
571 return 0;
572
573 if (!ha->edc_data) {
574 ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
575 &ha->edc_data_dma);
576 if (!ha->edc_data) {
577 DEBUG2(qla_printk(KERN_INFO, ha,
578 "Unable to allocate memory for EDC write.\n"));
579 return 0;
580 }
581 }
582
583 dev = le16_to_cpup((void *)&buf[0]);
584 adr = le16_to_cpup((void *)&buf[2]);
585 opt = le16_to_cpup((void *)&buf[4]);
586 len = le16_to_cpup((void *)&buf[6]);
587
588 if (!(opt & BIT_0))
589 if (len == 0 || len > DMA_POOL_SIZE || len > count - 8)
590 return -EINVAL;
591
592 memcpy(ha->edc_data, &buf[8], len);
593
594 rval = qla2x00_write_edc(vha, dev, adr, ha->edc_data_dma,
595 ha->edc_data, len, opt);
596 if (rval != QLA_SUCCESS) {
597 DEBUG2(qla_printk(KERN_INFO, ha,
598 "Unable to write EDC (%x) %02x:%02x:%04x:%02x:%02x.\n",
599 rval, dev, adr, opt, len, *buf));
600 return 0;
601 }
602
603 return count;
604}
605
606static struct bin_attribute sysfs_edc_attr = {
607 .attr = {
608 .name = "edc",
609 .mode = S_IWUSR,
610 },
611 .size = 0,
612 .write = qla2x00_sysfs_write_edc,
613};
614
615static ssize_t
616qla2x00_sysfs_write_edc_status(struct kobject *kobj,
617 struct bin_attribute *bin_attr,
618 char *buf, loff_t off, size_t count)
619{
620 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj,
621 struct device, kobj)));
622 struct qla_hw_data *ha = vha->hw;
623 uint16_t dev, adr, opt, len;
624 int rval;
625
626 ha->edc_data_len = 0;
627
628 if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8)
629 return 0;
630
631 if (!ha->edc_data) {
632 ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
633 &ha->edc_data_dma);
634 if (!ha->edc_data) {
635 DEBUG2(qla_printk(KERN_INFO, ha,
636 "Unable to allocate memory for EDC status.\n"));
637 return 0;
638 }
639 }
640
641 dev = le16_to_cpup((void *)&buf[0]);
642 adr = le16_to_cpup((void *)&buf[2]);
643 opt = le16_to_cpup((void *)&buf[4]);
644 len = le16_to_cpup((void *)&buf[6]);
645
646 if (!(opt & BIT_0))
647 if (len == 0 || len > DMA_POOL_SIZE)
648 return -EINVAL;
649
650 memset(ha->edc_data, 0, len);
651 rval = qla2x00_read_edc(vha, dev, adr, ha->edc_data_dma,
652 ha->edc_data, len, opt);
653 if (rval != QLA_SUCCESS) {
654 DEBUG2(qla_printk(KERN_INFO, ha,
655 "Unable to write EDC status (%x) %02x:%02x:%04x:%02x.\n",
656 rval, dev, adr, opt, len));
657 return 0;
658 }
659
660 ha->edc_data_len = len;
661
662 return count;
663}
664
665static ssize_t
666qla2x00_sysfs_read_edc_status(struct kobject *kobj,
667 struct bin_attribute *bin_attr,
668 char *buf, loff_t off, size_t count)
669{
670 struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj,
671 struct device, kobj)));
672 struct qla_hw_data *ha = vha->hw;
673
674 if (!capable(CAP_SYS_ADMIN) || off != 0 || count == 0)
675 return 0;
676
677 if (!ha->edc_data || ha->edc_data_len == 0 || ha->edc_data_len > count)
678 return -EINVAL;
679
680 memcpy(buf, ha->edc_data, ha->edc_data_len);
681
682 return ha->edc_data_len;
683}
684
685static struct bin_attribute sysfs_edc_status_attr = {
686 .attr = {
687 .name = "edc_status",
688 .mode = S_IRUSR | S_IWUSR,
689 },
690 .size = 0,
691 .write = qla2x00_sysfs_write_edc_status,
692 .read = qla2x00_sysfs_read_edc_status,
693};
694
461static struct sysfs_entry { 695static struct sysfs_entry {
462 char *name; 696 char *name;
463 struct bin_attribute *attr; 697 struct bin_attribute *attr;
@@ -469,6 +703,9 @@ static struct sysfs_entry {
469 { "optrom_ctl", &sysfs_optrom_ctl_attr, }, 703 { "optrom_ctl", &sysfs_optrom_ctl_attr, },
470 { "vpd", &sysfs_vpd_attr, 1 }, 704 { "vpd", &sysfs_vpd_attr, 1 },
471 { "sfp", &sysfs_sfp_attr, 1 }, 705 { "sfp", &sysfs_sfp_attr, 1 },
706 { "reset", &sysfs_reset_attr, },
707 { "edc", &sysfs_edc_attr, 2 },
708 { "edc_status", &sysfs_edc_status_attr, 2 },
472 { NULL }, 709 { NULL },
473}; 710};
474 711
@@ -482,6 +719,8 @@ qla2x00_alloc_sysfs_attr(scsi_qla_host_t *vha)
482 for (iter = bin_file_entries; iter->name; iter++) { 719 for (iter = bin_file_entries; iter->name; iter++) {
483 if (iter->is4GBp_only && !IS_FWI2_CAPABLE(vha->hw)) 720 if (iter->is4GBp_only && !IS_FWI2_CAPABLE(vha->hw))
484 continue; 721 continue;
722 if (iter->is4GBp_only == 2 && !IS_QLA25XX(vha->hw))
723 continue;
485 724
486 ret = sysfs_create_bin_file(&host->shost_gendev.kobj, 725 ret = sysfs_create_bin_file(&host->shost_gendev.kobj,
487 iter->attr); 726 iter->attr);
@@ -502,6 +741,8 @@ qla2x00_free_sysfs_attr(scsi_qla_host_t *vha)
502 for (iter = bin_file_entries; iter->name; iter++) { 741 for (iter = bin_file_entries; iter->name; iter++) {
503 if (iter->is4GBp_only && !IS_FWI2_CAPABLE(ha)) 742 if (iter->is4GBp_only && !IS_FWI2_CAPABLE(ha))
504 continue; 743 continue;
744 if (iter->is4GBp_only == 2 && !IS_QLA25XX(ha))
745 continue;
505 746
506 sysfs_remove_bin_file(&host->shost_gendev.kobj, 747 sysfs_remove_bin_file(&host->shost_gendev.kobj,
507 iter->attr); 748 iter->attr);
@@ -818,9 +1059,33 @@ qla2x00_mpi_version_show(struct device *dev, struct device_attribute *attr,
818 if (!IS_QLA81XX(ha)) 1059 if (!IS_QLA81XX(ha))
819 return snprintf(buf, PAGE_SIZE, "\n"); 1060 return snprintf(buf, PAGE_SIZE, "\n");
820 1061
821 return snprintf(buf, PAGE_SIZE, "%02x.%02x.%02x.%02x (%x)\n", 1062 return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d (%x)\n",
822 ha->mpi_version[0], ha->mpi_version[1], ha->mpi_version[2], 1063 ha->mpi_version[0], ha->mpi_version[1], ha->mpi_version[2],
823 ha->mpi_version[3], ha->mpi_capabilities); 1064 ha->mpi_capabilities);
1065}
1066
1067static ssize_t
1068qla2x00_phy_version_show(struct device *dev, struct device_attribute *attr,
1069 char *buf)
1070{
1071 scsi_qla_host_t *vha = shost_priv(class_to_shost(dev));
1072 struct qla_hw_data *ha = vha->hw;
1073
1074 if (!IS_QLA81XX(ha))
1075 return snprintf(buf, PAGE_SIZE, "\n");
1076
1077 return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d\n",
1078 ha->phy_version[0], ha->phy_version[1], ha->phy_version[2]);
1079}
1080
1081static ssize_t
1082qla2x00_flash_block_size_show(struct device *dev,
1083 struct device_attribute *attr, char *buf)
1084{
1085 scsi_qla_host_t *vha = shost_priv(class_to_shost(dev));
1086 struct qla_hw_data *ha = vha->hw;
1087
1088 return snprintf(buf, PAGE_SIZE, "0x%x\n", ha->fdt_block_size);
824} 1089}
825 1090
826static DEVICE_ATTR(driver_version, S_IRUGO, qla2x00_drvr_version_show, NULL); 1091static DEVICE_ATTR(driver_version, S_IRUGO, qla2x00_drvr_version_show, NULL);
@@ -848,6 +1113,9 @@ static DEVICE_ATTR(optrom_fw_version, S_IRUGO, qla2x00_optrom_fw_version_show,
848static DEVICE_ATTR(total_isp_aborts, S_IRUGO, qla2x00_total_isp_aborts_show, 1113static DEVICE_ATTR(total_isp_aborts, S_IRUGO, qla2x00_total_isp_aborts_show,
849 NULL); 1114 NULL);
850static DEVICE_ATTR(mpi_version, S_IRUGO, qla2x00_mpi_version_show, NULL); 1115static DEVICE_ATTR(mpi_version, S_IRUGO, qla2x00_mpi_version_show, NULL);
1116static DEVICE_ATTR(phy_version, S_IRUGO, qla2x00_phy_version_show, NULL);
1117static DEVICE_ATTR(flash_block_size, S_IRUGO, qla2x00_flash_block_size_show,
1118 NULL);
851 1119
852struct device_attribute *qla2x00_host_attrs[] = { 1120struct device_attribute *qla2x00_host_attrs[] = {
853 &dev_attr_driver_version, 1121 &dev_attr_driver_version,
@@ -868,6 +1136,8 @@ struct device_attribute *qla2x00_host_attrs[] = {
868 &dev_attr_optrom_fw_version, 1136 &dev_attr_optrom_fw_version,
869 &dev_attr_total_isp_aborts, 1137 &dev_attr_total_isp_aborts,
870 &dev_attr_mpi_version, 1138 &dev_attr_mpi_version,
1139 &dev_attr_phy_version,
1140 &dev_attr_flash_block_size,
871 NULL, 1141 NULL,
872}; 1142};
873 1143
@@ -1012,7 +1282,10 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport)
1012 if (!fcport) 1282 if (!fcport)
1013 return; 1283 return;
1014 1284
1015 qla2x00_abort_fcport_cmds(fcport); 1285 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev)))
1286 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
1287 else
1288 qla2x00_abort_fcport_cmds(fcport);
1016 1289
1017 /* 1290 /*
1018 * Transport has effectively 'deleted' the rport, clear 1291 * Transport has effectively 'deleted' the rport, clear
@@ -1032,16 +1305,18 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
1032 if (!fcport) 1305 if (!fcport)
1033 return; 1306 return;
1034 1307
1308 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) {
1309 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
1310 return;
1311 }
1035 /* 1312 /*
1036 * At this point all fcport's software-states are cleared. Perform any 1313 * At this point all fcport's software-states are cleared. Perform any
1037 * final cleanup of firmware resources (PCBs and XCBs). 1314 * final cleanup of firmware resources (PCBs and XCBs).
1038 */ 1315 */
1039 if (fcport->loop_id != FC_NO_LOOP_ID) { 1316 if (fcport->loop_id != FC_NO_LOOP_ID)
1040 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha, 1317 fcport->vha->hw->isp_ops->fabric_logout(fcport->vha,
1041 fcport->loop_id, fcport->d_id.b.domain, 1318 fcport->loop_id, fcport->d_id.b.domain,
1042 fcport->d_id.b.area, fcport->d_id.b.al_pa); 1319 fcport->d_id.b.area, fcport->d_id.b.al_pa);
1043 fcport->loop_id = FC_NO_LOOP_ID;
1044 }
1045 1320
1046 qla2x00_abort_fcport_cmds(fcport); 1321 qla2x00_abort_fcport_cmds(fcport);
1047} 1322}
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index e0c5bb54b25..714ee67567e 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -176,8 +176,7 @@
176/* ISP request and response entry counts (37-65535) */ 176/* ISP request and response entry counts (37-65535) */
177#define REQUEST_ENTRY_CNT_2100 128 /* Number of request entries. */ 177#define REQUEST_ENTRY_CNT_2100 128 /* Number of request entries. */
178#define REQUEST_ENTRY_CNT_2200 2048 /* Number of request entries. */ 178#define REQUEST_ENTRY_CNT_2200 2048 /* Number of request entries. */
179#define REQUEST_ENTRY_CNT_2XXX_EXT_MEM 4096 /* Number of request entries. */ 179#define REQUEST_ENTRY_CNT_24XX 2048 /* Number of request entries. */
180#define REQUEST_ENTRY_CNT_24XX 4096 /* Number of request entries. */
181#define RESPONSE_ENTRY_CNT_2100 64 /* Number of response entries.*/ 180#define RESPONSE_ENTRY_CNT_2100 64 /* Number of response entries.*/
182#define RESPONSE_ENTRY_CNT_2300 512 /* Number of response entries.*/ 181#define RESPONSE_ENTRY_CNT_2300 512 /* Number of response entries.*/
183 182
@@ -201,20 +200,7 @@ typedef struct srb {
201/* 200/*
202 * SRB flag definitions 201 * SRB flag definitions
203 */ 202 */
204#define SRB_TIMEOUT BIT_0 /* Command timed out */ 203#define SRB_DMA_VALID BIT_0 /* Command sent to ISP */
205#define SRB_DMA_VALID BIT_1 /* Command sent to ISP */
206#define SRB_WATCHDOG BIT_2 /* Command on watchdog list */
207#define SRB_ABORT_PENDING BIT_3 /* Command abort sent to device */
208
209#define SRB_ABORTED BIT_4 /* Command aborted command already */
210#define SRB_RETRY BIT_5 /* Command needs retrying */
211#define SRB_GOT_SENSE BIT_6 /* Command has sense data */
212#define SRB_FAILOVER BIT_7 /* Command in failover state */
213
214#define SRB_BUSY BIT_8 /* Command is in busy retry state */
215#define SRB_FO_CANCEL BIT_9 /* Command don't need to do failover */
216#define SRB_IOCTL BIT_10 /* IOCTL command. */
217#define SRB_TAPE BIT_11 /* FCP2 (Tape) command. */
218 204
219/* 205/*
220 * ISP I/O Register Set structure definitions. 206 * ISP I/O Register Set structure definitions.
@@ -372,10 +358,10 @@ struct device_reg_2xxx {
372}; 358};
373 359
374struct device_reg_25xxmq { 360struct device_reg_25xxmq {
375 volatile uint32_t req_q_in; 361 uint32_t req_q_in;
376 volatile uint32_t req_q_out; 362 uint32_t req_q_out;
377 volatile uint32_t rsp_q_in; 363 uint32_t rsp_q_in;
378 volatile uint32_t rsp_q_out; 364 uint32_t rsp_q_out;
379}; 365};
380 366
381typedef union { 367typedef union {
@@ -620,6 +606,7 @@ typedef struct {
620#define MBC_GET_TIMEOUT_PARAMS 0x22 /* Get FW timeouts. */ 606#define MBC_GET_TIMEOUT_PARAMS 0x22 /* Get FW timeouts. */
621#define MBC_TRACE_CONTROL 0x27 /* Trace control command. */ 607#define MBC_TRACE_CONTROL 0x27 /* Trace control command. */
622#define MBC_GEN_SYSTEM_ERROR 0x2a /* Generate System Error. */ 608#define MBC_GEN_SYSTEM_ERROR 0x2a /* Generate System Error. */
609#define MBC_WRITE_SFP 0x30 /* Write SFP Data. */
623#define MBC_READ_SFP 0x31 /* Read SFP Data. */ 610#define MBC_READ_SFP 0x31 /* Read SFP Data. */
624#define MBC_SET_TIMEOUT_PARAMS 0x32 /* Set FW timeouts. */ 611#define MBC_SET_TIMEOUT_PARAMS 0x32 /* Set FW timeouts. */
625#define MBC_MID_INITIALIZE_FIRMWARE 0x48 /* MID Initialize firmware. */ 612#define MBC_MID_INITIALIZE_FIRMWARE 0x48 /* MID Initialize firmware. */
@@ -1570,39 +1557,13 @@ typedef struct fc_port {
1570#define FCS_DEVICE_DEAD 2 1557#define FCS_DEVICE_DEAD 2
1571#define FCS_DEVICE_LOST 3 1558#define FCS_DEVICE_LOST 3
1572#define FCS_ONLINE 4 1559#define FCS_ONLINE 4
1573#define FCS_NOT_SUPPORTED 5
1574#define FCS_FAILOVER 6
1575#define FCS_FAILOVER_FAILED 7
1576 1560
1577/* 1561/*
1578 * FC port flags. 1562 * FC port flags.
1579 */ 1563 */
1580#define FCF_FABRIC_DEVICE BIT_0 1564#define FCF_FABRIC_DEVICE BIT_0
1581#define FCF_LOGIN_NEEDED BIT_1 1565#define FCF_LOGIN_NEEDED BIT_1
1582#define FCF_FO_MASKED BIT_2 1566#define FCF_TAPE_PRESENT BIT_2
1583#define FCF_FAILOVER_NEEDED BIT_3
1584#define FCF_RESET_NEEDED BIT_4
1585#define FCF_PERSISTENT_BOUND BIT_5
1586#define FCF_TAPE_PRESENT BIT_6
1587#define FCF_FARP_DONE BIT_7
1588#define FCF_FARP_FAILED BIT_8
1589#define FCF_FARP_REPLY_NEEDED BIT_9
1590#define FCF_AUTH_REQ BIT_10
1591#define FCF_SEND_AUTH_REQ BIT_11
1592#define FCF_RECEIVE_AUTH_REQ BIT_12
1593#define FCF_AUTH_SUCCESS BIT_13
1594#define FCF_RLC_SUPPORT BIT_14
1595#define FCF_CONFIG BIT_15 /* Needed? */
1596#define FCF_RESCAN_NEEDED BIT_16
1597#define FCF_XP_DEVICE BIT_17
1598#define FCF_MSA_DEVICE BIT_18
1599#define FCF_EVA_DEVICE BIT_19
1600#define FCF_MSA_PORT_ACTIVE BIT_20
1601#define FCF_FAILBACK_DISABLE BIT_21
1602#define FCF_FAILOVER_DISABLE BIT_22
1603#define FCF_DSXXX_DEVICE BIT_23
1604#define FCF_AA_EVA_DEVICE BIT_24
1605#define FCF_AA_MSA_DEVICE BIT_25
1606 1567
1607/* No loop ID flag. */ 1568/* No loop ID flag. */
1608#define FC_NO_LOOP_ID 0x1000 1569#define FC_NO_LOOP_ID 0x1000
@@ -2102,9 +2063,6 @@ struct isp_operations {
2102 2063
2103 int (*get_flash_version) (struct scsi_qla_host *, void *); 2064 int (*get_flash_version) (struct scsi_qla_host *, void *);
2104 int (*start_scsi) (srb_t *); 2065 int (*start_scsi) (srb_t *);
2105 void (*wrt_req_reg) (struct qla_hw_data *, uint16_t, uint16_t);
2106 void (*wrt_rsp_reg) (struct qla_hw_data *, uint16_t, uint16_t);
2107 uint16_t (*rd_req_reg) (struct qla_hw_data *, uint16_t);
2108}; 2066};
2109 2067
2110/* MSI-X Support *************************************************************/ 2068/* MSI-X Support *************************************************************/
@@ -2200,6 +2158,8 @@ struct rsp_que {
2200 dma_addr_t dma; 2158 dma_addr_t dma;
2201 response_t *ring; 2159 response_t *ring;
2202 response_t *ring_ptr; 2160 response_t *ring_ptr;
2161 uint32_t __iomem *rsp_q_in; /* FWI2-capable only. */
2162 uint32_t __iomem *rsp_q_out;
2203 uint16_t ring_index; 2163 uint16_t ring_index;
2204 uint16_t out_ptr; 2164 uint16_t out_ptr;
2205 uint16_t length; 2165 uint16_t length;
@@ -2217,6 +2177,8 @@ struct req_que {
2217 dma_addr_t dma; 2177 dma_addr_t dma;
2218 request_t *ring; 2178 request_t *ring;
2219 request_t *ring_ptr; 2179 request_t *ring_ptr;
2180 uint32_t __iomem *req_q_in; /* FWI2-capable only. */
2181 uint32_t __iomem *req_q_out;
2220 uint16_t ring_index; 2182 uint16_t ring_index;
2221 uint16_t in_ptr; 2183 uint16_t in_ptr;
2222 uint16_t cnt; 2184 uint16_t cnt;
@@ -2256,10 +2218,10 @@ struct qla_hw_data {
2256 uint32_t msix_enabled :1; 2218 uint32_t msix_enabled :1;
2257 uint32_t disable_serdes :1; 2219 uint32_t disable_serdes :1;
2258 uint32_t gpsc_supported :1; 2220 uint32_t gpsc_supported :1;
2259 uint32_t vsan_enabled :1;
2260 uint32_t npiv_supported :1; 2221 uint32_t npiv_supported :1;
2261 uint32_t fce_enabled :1; 2222 uint32_t fce_enabled :1;
2262 uint32_t hw_event_marker_found:1; 2223 uint32_t fac_supported :1;
2224 uint32_t chip_reset_done :1;
2263 } flags; 2225 } flags;
2264 2226
2265 /* This spinlock is used to protect "io transactions", you must 2227 /* This spinlock is used to protect "io transactions", you must
@@ -2277,7 +2239,7 @@ struct qla_hw_data {
2277 2239
2278#define MIN_IOBASE_LEN 0x100 2240#define MIN_IOBASE_LEN 0x100
2279/* Multi queue data structs */ 2241/* Multi queue data structs */
2280 device_reg_t *mqiobase; 2242 device_reg_t __iomem *mqiobase;
2281 uint16_t msix_count; 2243 uint16_t msix_count;
2282 uint8_t mqenable; 2244 uint8_t mqenable;
2283 struct req_que **req_q_map; 2245 struct req_que **req_q_map;
@@ -2300,7 +2262,6 @@ struct qla_hw_data {
2300 uint16_t max_loop_id; 2262 uint16_t max_loop_id;
2301 2263
2302 uint16_t fb_rev; 2264 uint16_t fb_rev;
2303 uint16_t max_public_loop_ids;
2304 uint16_t min_external_loopid; /* First external loop Id */ 2265 uint16_t min_external_loopid; /* First external loop Id */
2305 2266
2306#define PORT_SPEED_UNKNOWN 0xFFFF 2267#define PORT_SPEED_UNKNOWN 0xFFFF
@@ -2381,6 +2342,8 @@ struct qla_hw_data {
2381 IS_QLA25XX(ha) || IS_QLA81XX(ha)) 2342 IS_QLA25XX(ha) || IS_QLA81XX(ha))
2382#define IS_NOPOLLING_TYPE(ha) ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && \ 2343#define IS_NOPOLLING_TYPE(ha) ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && \
2383 (ha)->flags.msix_enabled) 2344 (ha)->flags.msix_enabled)
2345#define IS_FAC_REQUIRED(ha) (IS_QLA81XX(ha))
2346#define IS_NOCACHE_VPD_TYPE(ha) (IS_QLA81XX(ha))
2384 2347
2385#define IS_IIDMA_CAPABLE(ha) ((ha)->device_type & DT_IIDMA) 2348#define IS_IIDMA_CAPABLE(ha) ((ha)->device_type & DT_IIDMA)
2386#define IS_FWI2_CAPABLE(ha) ((ha)->device_type & DT_FWI2) 2349#define IS_FWI2_CAPABLE(ha) ((ha)->device_type & DT_FWI2)
@@ -2425,6 +2388,10 @@ struct qla_hw_data {
2425 void *sfp_data; 2388 void *sfp_data;
2426 dma_addr_t sfp_data_dma; 2389 dma_addr_t sfp_data_dma;
2427 2390
2391 uint8_t *edc_data;
2392 dma_addr_t edc_data_dma;
2393 uint16_t edc_data_len;
2394
2428 struct task_struct *dpc_thread; 2395 struct task_struct *dpc_thread;
2429 uint8_t dpc_active; /* DPC routine is active */ 2396 uint8_t dpc_active; /* DPC routine is active */
2430 2397
@@ -2439,6 +2406,8 @@ struct qla_hw_data {
2439 dma_addr_t init_cb_dma; 2406 dma_addr_t init_cb_dma;
2440 init_cb_t *init_cb; 2407 init_cb_t *init_cb;
2441 int init_cb_size; 2408 int init_cb_size;
2409 dma_addr_t ex_init_cb_dma;
2410 struct ex_init_cb_81xx *ex_init_cb;
2442 2411
2443 /* These are used by mailbox operations. */ 2412 /* These are used by mailbox operations. */
2444 volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT]; 2413 volatile uint16_t mailbox_out[MAILBOX_REGISTER_COUNT];
@@ -2453,15 +2422,6 @@ struct qla_hw_data {
2453 struct completion mbx_cmd_comp; /* Serialize mbx access */ 2422 struct completion mbx_cmd_comp; /* Serialize mbx access */
2454 struct completion mbx_intr_comp; /* Used for completion notification */ 2423 struct completion mbx_intr_comp; /* Used for completion notification */
2455 2424
2456 uint32_t mbx_flags;
2457#define MBX_IN_PROGRESS BIT_0
2458#define MBX_BUSY BIT_1 /* Got the Access */
2459#define MBX_SLEEPING_ON_SEM BIT_2
2460#define MBX_POLLING_FOR_COMP BIT_3
2461#define MBX_COMPLETED BIT_4
2462#define MBX_TIMEDOUT BIT_5
2463#define MBX_ACCESS_TIMEDOUT BIT_6
2464
2465 /* Basic firmware related information. */ 2425 /* Basic firmware related information. */
2466 uint16_t fw_major_version; 2426 uint16_t fw_major_version;
2467 uint16_t fw_minor_version; 2427 uint16_t fw_minor_version;
@@ -2473,13 +2433,15 @@ struct qla_hw_data {
2473#define RISC_START_ADDRESS_2100 0x1000 2433#define RISC_START_ADDRESS_2100 0x1000
2474#define RISC_START_ADDRESS_2300 0x800 2434#define RISC_START_ADDRESS_2300 0x800
2475#define RISC_START_ADDRESS_2400 0x100000 2435#define RISC_START_ADDRESS_2400 0x100000
2436 uint16_t fw_xcb_count;
2476 2437
2477 uint16_t fw_options[16]; /* slots: 1,2,3,10,11 */ 2438 uint16_t fw_options[16]; /* slots: 1,2,3,10,11 */
2478 uint8_t fw_seriallink_options[4]; 2439 uint8_t fw_seriallink_options[4];
2479 uint16_t fw_seriallink_options24[4]; 2440 uint16_t fw_seriallink_options24[4];
2480 2441
2481 uint8_t mpi_version[4]; 2442 uint8_t mpi_version[3];
2482 uint32_t mpi_capabilities; 2443 uint32_t mpi_capabilities;
2444 uint8_t phy_version[3];
2483 2445
2484 /* Firmware dump information. */ 2446 /* Firmware dump information. */
2485 struct qla2xxx_fw_dump *fw_dump; 2447 struct qla2xxx_fw_dump *fw_dump;
@@ -2545,6 +2507,8 @@ struct qla_hw_data {
2545 uint32_t flt_region_boot; 2507 uint32_t flt_region_boot;
2546 uint32_t flt_region_fw; 2508 uint32_t flt_region_fw;
2547 uint32_t flt_region_vpd_nvram; 2509 uint32_t flt_region_vpd_nvram;
2510 uint32_t flt_region_vpd;
2511 uint32_t flt_region_nvram;
2548 uint32_t flt_region_npiv_conf; 2512 uint32_t flt_region_npiv_conf;
2549 2513
2550 /* Needed for BEACON */ 2514 /* Needed for BEACON */
@@ -2613,36 +2577,19 @@ typedef struct scsi_qla_host {
2613#define LOOP_RESYNC_ACTIVE 5 2577#define LOOP_RESYNC_ACTIVE 5
2614#define LOCAL_LOOP_UPDATE 6 /* Perform a local loop update. */ 2578#define LOCAL_LOOP_UPDATE 6 /* Perform a local loop update. */
2615#define RSCN_UPDATE 7 /* Perform an RSCN update. */ 2579#define RSCN_UPDATE 7 /* Perform an RSCN update. */
2616#define MAILBOX_RETRY 8 2580#define RELOGIN_NEEDED 8
2617#define ISP_RESET_NEEDED 9 /* Initiate a ISP reset. */ 2581#define REGISTER_FC4_NEEDED 9 /* SNS FC4 registration required. */
2618#define FAILOVER_EVENT_NEEDED 10 2582#define ISP_ABORT_RETRY 10 /* ISP aborted. */
2619#define FAILOVER_EVENT 11 2583#define BEACON_BLINK_NEEDED 11
2620#define FAILOVER_NEEDED 12 2584#define REGISTER_FDMI_NEEDED 12
2621#define SCSI_RESTART_NEEDED 13 /* Processes SCSI retry queue. */ 2585#define FCPORT_UPDATE_NEEDED 13
2622#define PORT_RESTART_NEEDED 14 /* Processes Retry queue. */ 2586#define VP_DPC_NEEDED 14 /* wake up for VP dpc handling */
2623#define RESTART_QUEUES_NEEDED 15 /* Restarts the Lun queue. */ 2587#define UNLOADING 15
2624#define ABORT_QUEUES_NEEDED 16 2588#define NPIV_CONFIG_NEEDED 16
2625#define RELOGIN_NEEDED 17
2626#define LOGIN_RETRY_NEEDED 18 /* Initiate required fabric logins. */
2627#define REGISTER_FC4_NEEDED 19 /* SNS FC4 registration required. */
2628#define ISP_ABORT_RETRY 20 /* ISP aborted. */
2629#define FCPORT_RESCAN_NEEDED 21 /* IO descriptor processing needed */
2630#define IODESC_PROCESS_NEEDED 22 /* IO descriptor processing needed */
2631#define IOCTL_ERROR_RECOVERY 23
2632#define LOOP_RESET_NEEDED 24
2633#define BEACON_BLINK_NEEDED 25
2634#define REGISTER_FDMI_NEEDED 26
2635#define FCPORT_UPDATE_NEEDED 27
2636#define VP_DPC_NEEDED 28 /* wake up for VP dpc handling */
2637#define UNLOADING 29
2638#define NPIV_CONFIG_NEEDED 30
2639 2589
2640 uint32_t device_flags; 2590 uint32_t device_flags;
2641#define DFLG_LOCAL_DEVICES BIT_0 2591#define SWITCH_FOUND BIT_0
2642#define DFLG_RETRY_LOCAL_DEVICES BIT_1 2592#define DFLG_NO_CABLE BIT_1
2643#define DFLG_FABRIC_DEVICES BIT_2
2644#define SWITCH_FOUND BIT_3
2645#define DFLG_NO_CABLE BIT_4
2646 2593
2647 srb_t *status_srb; /* Status continuation entry. */ 2594 srb_t *status_srb; /* Status continuation entry. */
2648 2595
@@ -2755,10 +2702,5 @@ typedef struct scsi_qla_host {
2755#include "qla_inline.h" 2702#include "qla_inline.h"
2756 2703
2757#define CMD_SP(Cmnd) ((Cmnd)->SCp.ptr) 2704#define CMD_SP(Cmnd) ((Cmnd)->SCp.ptr)
2758#define CMD_COMPL_STATUS(Cmnd) ((Cmnd)->SCp.this_residual)
2759#define CMD_RESID_LEN(Cmnd) ((Cmnd)->SCp.buffers_residual)
2760#define CMD_SCSI_STATUS(Cmnd) ((Cmnd)->SCp.Status)
2761#define CMD_ACTUAL_SNSLEN(Cmnd) ((Cmnd)->SCp.Message)
2762#define CMD_ENTRY_STATUS(Cmnd) ((Cmnd)->SCp.have_data_in)
2763 2705
2764#endif 2706#endif
diff --git a/drivers/scsi/qla2xxx/qla_dfs.c b/drivers/scsi/qla2xxx/qla_dfs.c
index c66036da7d2..3a9a6ca4226 100644
--- a/drivers/scsi/qla2xxx/qla_dfs.c
+++ b/drivers/scsi/qla2xxx/qla_dfs.c
@@ -71,7 +71,7 @@ qla2x00_dfs_fce_open(struct inode *inode, struct file *file)
71 71
72 mutex_unlock(&ha->fce_mutex); 72 mutex_unlock(&ha->fce_mutex);
73out: 73out:
74 return single_open(file, qla2x00_dfs_fce_show, ha); 74 return single_open(file, qla2x00_dfs_fce_show, vha);
75} 75}
76 76
77static int 77static int
@@ -145,7 +145,7 @@ create_dir:
145 atomic_inc(&qla2x00_dfs_root_count); 145 atomic_inc(&qla2x00_dfs_root_count);
146 146
147create_nodes: 147create_nodes:
148 ha->dfs_fce = debugfs_create_file("fce", S_IRUSR, ha->dfs_dir, ha, 148 ha->dfs_fce = debugfs_create_file("fce", S_IRUSR, ha->dfs_dir, vha,
149 &dfs_fce_ops); 149 &dfs_fce_ops);
150 if (!ha->dfs_fce) { 150 if (!ha->dfs_fce) {
151 qla_printk(KERN_NOTICE, ha, 151 qla_printk(KERN_NOTICE, ha,
diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h
index ffff4255408..96ccb9642ba 100644
--- a/drivers/scsi/qla2xxx/qla_fw.h
+++ b/drivers/scsi/qla2xxx/qla_fw.h
@@ -1403,6 +1403,21 @@ struct access_chip_rsp_84xx {
1403#define MBA_IDC_TIME_EXT 0x8102 1403#define MBA_IDC_TIME_EXT 0x8102
1404 1404
1405#define MBC_IDC_ACK 0x101 1405#define MBC_IDC_ACK 0x101
1406#define MBC_RESTART_MPI_FW 0x3d
1407#define MBC_FLASH_ACCESS_CTRL 0x3e /* Control flash access. */
1408
1409/* Flash access control option field bit definitions */
1410#define FAC_OPT_FORCE_SEMAPHORE BIT_15
1411#define FAC_OPT_REQUESTOR_ID BIT_14
1412#define FAC_OPT_CMD_SUBCODE 0xff
1413
1414/* Flash access control command subcodes */
1415#define FAC_OPT_CMD_WRITE_PROTECT 0x00
1416#define FAC_OPT_CMD_WRITE_ENABLE 0x01
1417#define FAC_OPT_CMD_ERASE_SECTOR 0x02
1418#define FAC_OPT_CMD_LOCK_SEMAPHORE 0x03
1419#define FAC_OPT_CMD_UNLOCK_SEMAPHORE 0x04
1420#define FAC_OPT_CMD_GET_SECTOR_SIZE 0x05
1406 1421
1407struct nvram_81xx { 1422struct nvram_81xx {
1408 /* NVRAM header. */ 1423 /* NVRAM header. */
@@ -1440,7 +1455,17 @@ struct nvram_81xx {
1440 uint16_t reserved_6[24]; 1455 uint16_t reserved_6[24];
1441 1456
1442 /* Offset 128. */ 1457 /* Offset 128. */
1443 uint16_t reserved_7[64]; 1458 uint16_t ex_version;
1459 uint8_t prio_fcf_matching_flags;
1460 uint8_t reserved_6_1[3];
1461 uint16_t pri_fcf_vlan_id;
1462 uint8_t pri_fcf_fabric_name[8];
1463 uint16_t reserved_6_2[7];
1464 uint8_t spma_mac_addr[6];
1465 uint16_t reserved_6_3[14];
1466
1467 /* Offset 192. */
1468 uint16_t reserved_7[32];
1444 1469
1445 /* 1470 /*
1446 * BIT 0 = Enable spinup delay 1471 * BIT 0 = Enable spinup delay
@@ -1664,6 +1689,17 @@ struct mid_init_cb_81xx {
1664 struct mid_conf_entry_24xx entries[MAX_MULTI_ID_FABRIC]; 1689 struct mid_conf_entry_24xx entries[MAX_MULTI_ID_FABRIC];
1665}; 1690};
1666 1691
1692struct ex_init_cb_81xx {
1693 uint16_t ex_version;
1694 uint8_t prio_fcf_matching_flags;
1695 uint8_t reserved_1[3];
1696 uint16_t pri_fcf_vlan_id;
1697 uint8_t pri_fcf_fabric_name[8];
1698 uint16_t reserved_2[7];
1699 uint8_t spma_mac_addr[6];
1700 uint16_t reserved_3[14];
1701};
1702
1667#define FARX_ACCESS_FLASH_CONF_81XX 0x7FFD0000 1703#define FARX_ACCESS_FLASH_CONF_81XX 0x7FFD0000
1668#define FARX_ACCESS_FLASH_DATA_81XX 0x7F800000 1704#define FARX_ACCESS_FLASH_DATA_81XX 0x7F800000
1669 1705
@@ -1672,6 +1708,10 @@ struct mid_init_cb_81xx {
1672#define FA_RISC_CODE_ADDR_81 0xA0000 1708#define FA_RISC_CODE_ADDR_81 0xA0000
1673#define FA_FW_AREA_ADDR_81 0xC0000 1709#define FA_FW_AREA_ADDR_81 0xC0000
1674#define FA_VPD_NVRAM_ADDR_81 0xD0000 1710#define FA_VPD_NVRAM_ADDR_81 0xD0000
1711#define FA_VPD0_ADDR_81 0xD0000
1712#define FA_VPD1_ADDR_81 0xD0400
1713#define FA_NVRAM0_ADDR_81 0xD0080
1714#define FA_NVRAM1_ADDR_81 0xD0480
1675#define FA_FEATURE_ADDR_81 0xD4000 1715#define FA_FEATURE_ADDR_81 0xD4000
1676#define FA_FLASH_DESCR_ADDR_81 0xD8000 1716#define FA_FLASH_DESCR_ADDR_81 0xD8000
1677#define FA_FLASH_LAYOUT_ADDR_81 0xD8400 1717#define FA_FLASH_LAYOUT_ADDR_81 0xD8400
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index 6de283f8f11..528913f6bed 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -73,6 +73,7 @@ extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
73extern int qla2x00_post_aen_work(struct scsi_qla_host *, enum 73extern int qla2x00_post_aen_work(struct scsi_qla_host *, enum
74 fc_host_event_code, u32); 74 fc_host_event_code, u32);
75extern int qla2x00_post_idc_ack_work(struct scsi_qla_host *, uint16_t *); 75extern int qla2x00_post_idc_ack_work(struct scsi_qla_host *, uint16_t *);
76extern int qla81xx_restart_mpi_firmware(scsi_qla_host_t *);
76 77
77extern void qla2x00_abort_fcport_cmds(fc_port_t *); 78extern void qla2x00_abort_fcport_cmds(fc_port_t *);
78extern struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *, 79extern struct scsi_qla_host *qla2x00_create_host(struct scsi_host_template *,
@@ -82,7 +83,7 @@ extern void qla2x00_relogin(struct scsi_qla_host *);
82/* 83/*
83 * Global Functions in qla_mid.c source file. 84 * Global Functions in qla_mid.c source file.
84 */ 85 */
85extern struct scsi_host_template qla24xx_driver_template; 86extern struct scsi_host_template qla2xxx_driver_template;
86extern struct scsi_transport_template *qla2xxx_transport_vport_template; 87extern struct scsi_transport_template *qla2xxx_transport_vport_template;
87extern void qla2x00_timer(scsi_qla_host_t *); 88extern void qla2x00_timer(scsi_qla_host_t *);
88extern void qla2x00_start_timer(scsi_qla_host_t *, void *, unsigned long); 89extern void qla2x00_start_timer(scsi_qla_host_t *, void *, unsigned long);
@@ -110,6 +111,7 @@ extern void qla2x00_mark_all_devices_lost(scsi_qla_host_t *, int);
110extern struct fw_blob *qla2x00_request_firmware(scsi_qla_host_t *); 111extern struct fw_blob *qla2x00_request_firmware(scsi_qla_host_t *);
111 112
112extern int qla2x00_wait_for_hba_online(scsi_qla_host_t *); 113extern int qla2x00_wait_for_hba_online(scsi_qla_host_t *);
114extern int qla2x00_wait_for_chip_reset(scsi_qla_host_t *);
113 115
114extern void qla2xxx_wake_dpc(struct scsi_qla_host *); 116extern void qla2xxx_wake_dpc(struct scsi_qla_host *);
115extern void qla2x00_alert_all_vps(struct rsp_que *, uint16_t *); 117extern void qla2x00_alert_all_vps(struct rsp_que *, uint16_t *);
@@ -144,8 +146,8 @@ extern int
144qla2x00_execute_fw(scsi_qla_host_t *, uint32_t); 146qla2x00_execute_fw(scsi_qla_host_t *, uint32_t);
145 147
146extern void 148extern void
147qla2x00_get_fw_version(scsi_qla_host_t *, uint16_t *, 149qla2x00_get_fw_version(scsi_qla_host_t *, uint16_t *, uint16_t *, uint16_t *,
148 uint16_t *, uint16_t *, uint16_t *, uint32_t *, uint8_t *, uint32_t *); 150 uint16_t *, uint32_t *, uint8_t *, uint32_t *, uint8_t *);
149 151
150extern int 152extern int
151qla2x00_get_fw_options(scsi_qla_host_t *, uint16_t *); 153qla2x00_get_fw_options(scsi_qla_host_t *, uint16_t *);
@@ -263,12 +265,29 @@ extern int
263qla2x00_read_sfp(scsi_qla_host_t *, dma_addr_t, uint16_t, uint16_t, uint16_t); 265qla2x00_read_sfp(scsi_qla_host_t *, dma_addr_t, uint16_t, uint16_t, uint16_t);
264 266
265extern int 267extern int
268qla2x00_read_edc(scsi_qla_host_t *, uint16_t, uint16_t, dma_addr_t,
269 uint8_t *, uint16_t, uint16_t);
270
271extern int
272qla2x00_write_edc(scsi_qla_host_t *, uint16_t, uint16_t, dma_addr_t,
273 uint8_t *, uint16_t, uint16_t);
274
275extern int
266qla2x00_set_idma_speed(scsi_qla_host_t *, uint16_t, uint16_t, uint16_t *); 276qla2x00_set_idma_speed(scsi_qla_host_t *, uint16_t, uint16_t, uint16_t *);
267 277
268extern int qla84xx_verify_chip(struct scsi_qla_host *, uint16_t *); 278extern int qla84xx_verify_chip(struct scsi_qla_host *, uint16_t *);
269 279
270extern int qla81xx_idc_ack(scsi_qla_host_t *, uint16_t *); 280extern int qla81xx_idc_ack(scsi_qla_host_t *, uint16_t *);
271 281
282extern int
283qla81xx_fac_get_sector_size(scsi_qla_host_t *, uint32_t *);
284
285extern int
286qla81xx_fac_do_write_enable(scsi_qla_host_t *, int);
287
288extern int
289qla81xx_fac_erase_sector(scsi_qla_host_t *, uint32_t, uint32_t);
290
272/* 291/*
273 * Global Function Prototypes in qla_isr.c source file. 292 * Global Function Prototypes in qla_isr.c source file.
274 */ 293 */
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 87f9abc7146..bd7dd84c064 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -20,7 +20,6 @@
20* QLogic ISP2x00 Hardware Support Function Prototypes. 20* QLogic ISP2x00 Hardware Support Function Prototypes.
21*/ 21*/
22static int qla2x00_isp_firmware(scsi_qla_host_t *); 22static int qla2x00_isp_firmware(scsi_qla_host_t *);
23static void qla2x00_resize_request_q(scsi_qla_host_t *);
24static int qla2x00_setup_chip(scsi_qla_host_t *); 23static int qla2x00_setup_chip(scsi_qla_host_t *);
25static int qla2x00_init_rings(scsi_qla_host_t *); 24static int qla2x00_init_rings(scsi_qla_host_t *);
26static int qla2x00_fw_ready(scsi_qla_host_t *); 25static int qla2x00_fw_ready(scsi_qla_host_t *);
@@ -61,8 +60,10 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
61 int rval; 60 int rval;
62 struct qla_hw_data *ha = vha->hw; 61 struct qla_hw_data *ha = vha->hw;
63 struct req_que *req = ha->req_q_map[0]; 62 struct req_que *req = ha->req_q_map[0];
63
64 /* Clear adapter flags. */ 64 /* Clear adapter flags. */
65 vha->flags.online = 0; 65 vha->flags.online = 0;
66 ha->flags.chip_reset_done = 0;
66 vha->flags.reset_active = 0; 67 vha->flags.reset_active = 0;
67 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); 68 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
68 atomic_set(&vha->loop_state, LOOP_DOWN); 69 atomic_set(&vha->loop_state, LOOP_DOWN);
@@ -70,7 +71,6 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
70 vha->dpc_flags = 0; 71 vha->dpc_flags = 0;
71 vha->flags.management_server_logged_in = 0; 72 vha->flags.management_server_logged_in = 0;
72 vha->marker_needed = 0; 73 vha->marker_needed = 0;
73 ha->mbx_flags = 0;
74 ha->isp_abort_cnt = 0; 74 ha->isp_abort_cnt = 0;
75 ha->beacon_blink_led = 0; 75 ha->beacon_blink_led = 0;
76 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags); 76 set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
@@ -131,6 +131,7 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
131 } 131 }
132 } 132 }
133 rval = qla2x00_init_rings(vha); 133 rval = qla2x00_init_rings(vha);
134 ha->flags.chip_reset_done = 1;
134 135
135 return (rval); 136 return (rval);
136} 137}
@@ -512,7 +513,6 @@ qla2x00_reset_chip(scsi_qla_host_t *vha)
512static inline void 513static inline void
513qla24xx_reset_risc(scsi_qla_host_t *vha) 514qla24xx_reset_risc(scsi_qla_host_t *vha)
514{ 515{
515 int hw_evt = 0;
516 unsigned long flags = 0; 516 unsigned long flags = 0;
517 struct qla_hw_data *ha = vha->hw; 517 struct qla_hw_data *ha = vha->hw;
518 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; 518 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
@@ -542,8 +542,6 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
542 d2 = (uint32_t) RD_REG_WORD(&reg->mailbox0); 542 d2 = (uint32_t) RD_REG_WORD(&reg->mailbox0);
543 barrier(); 543 barrier();
544 } 544 }
545 if (cnt == 0)
546 hw_evt = 1;
547 545
548 /* Wait for soft-reset to complete. */ 546 /* Wait for soft-reset to complete. */
549 d2 = RD_REG_DWORD(&reg->ctrl_status); 547 d2 = RD_REG_DWORD(&reg->ctrl_status);
@@ -816,7 +814,7 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)
816 qla_printk(KERN_INFO, ha, "Allocated (%d KB) for FCE...\n", 814 qla_printk(KERN_INFO, ha, "Allocated (%d KB) for FCE...\n",
817 FCE_SIZE / 1024); 815 FCE_SIZE / 1024);
818 816
819 fce_size = sizeof(struct qla2xxx_fce_chain) + EFT_SIZE; 817 fce_size = sizeof(struct qla2xxx_fce_chain) + FCE_SIZE;
820 ha->flags.fce_enabled = 1; 818 ha->flags.fce_enabled = 1;
821 ha->fce_dma = tc_dma; 819 ha->fce_dma = tc_dma;
822 ha->fce = tc; 820 ha->fce = tc;
@@ -894,62 +892,6 @@ cont_alloc:
894} 892}
895 893
896/** 894/**
897 * qla2x00_resize_request_q() - Resize request queue given available ISP memory.
898 * @ha: HA context
899 *
900 * Returns 0 on success.
901 */
902static void
903qla2x00_resize_request_q(scsi_qla_host_t *vha)
904{
905 int rval;
906 uint16_t fw_iocb_cnt = 0;
907 uint16_t request_q_length = REQUEST_ENTRY_CNT_2XXX_EXT_MEM;
908 dma_addr_t request_dma;
909 request_t *request_ring;
910 struct qla_hw_data *ha = vha->hw;
911 struct req_que *req = ha->req_q_map[0];
912
913 /* Valid only on recent ISPs. */
914 if (IS_QLA2100(ha) || IS_QLA2200(ha))
915 return;
916
917 /* Retrieve IOCB counts available to the firmware. */
918 rval = qla2x00_get_resource_cnts(vha, NULL, NULL, NULL, &fw_iocb_cnt,
919 &ha->max_npiv_vports);
920 if (rval)
921 return;
922 /* No point in continuing if current settings are sufficient. */
923 if (fw_iocb_cnt < 1024)
924 return;
925 if (req->length >= request_q_length)
926 return;
927
928 /* Attempt to claim larger area for request queue. */
929 request_ring = dma_alloc_coherent(&ha->pdev->dev,
930 (request_q_length + 1) * sizeof(request_t), &request_dma,
931 GFP_KERNEL);
932 if (request_ring == NULL)
933 return;
934
935 /* Resize successful, report extensions. */
936 qla_printk(KERN_INFO, ha, "Extended memory detected (%d KB)...\n",
937 (ha->fw_memory_size + 1) / 1024);
938 qla_printk(KERN_INFO, ha, "Resizing request queue depth "
939 "(%d -> %d)...\n", req->length, request_q_length);
940
941 /* Clear old allocations. */
942 dma_free_coherent(&ha->pdev->dev,
943 (req->length + 1) * sizeof(request_t), req->ring,
944 req->dma);
945
946 /* Begin using larger queue. */
947 req->length = request_q_length;
948 req->ring = request_ring;
949 req->dma = request_dma;
950}
951
952/**
953 * qla2x00_setup_chip() - Load and start RISC firmware. 895 * qla2x00_setup_chip() - Load and start RISC firmware.
954 * @ha: HA context 896 * @ha: HA context
955 * 897 *
@@ -963,6 +905,7 @@ qla2x00_setup_chip(scsi_qla_host_t *vha)
963 struct qla_hw_data *ha = vha->hw; 905 struct qla_hw_data *ha = vha->hw;
964 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp; 906 struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
965 unsigned long flags; 907 unsigned long flags;
908 uint16_t fw_major_version;
966 909
967 if (!IS_FWI2_CAPABLE(ha) && !IS_QLA2100(ha) && !IS_QLA2200(ha)) { 910 if (!IS_FWI2_CAPABLE(ha) && !IS_QLA2100(ha) && !IS_QLA2200(ha)) {
968 /* Disable SRAM, Instruction RAM and GP RAM parity. */ 911 /* Disable SRAM, Instruction RAM and GP RAM parity. */
@@ -986,13 +929,15 @@ qla2x00_setup_chip(scsi_qla_host_t *vha)
986 929
987 rval = qla2x00_execute_fw(vha, srisc_address); 930 rval = qla2x00_execute_fw(vha, srisc_address);
988 /* Retrieve firmware information. */ 931 /* Retrieve firmware information. */
989 if (rval == QLA_SUCCESS && ha->fw_major_version == 0) { 932 if (rval == QLA_SUCCESS) {
933 fw_major_version = ha->fw_major_version;
990 qla2x00_get_fw_version(vha, 934 qla2x00_get_fw_version(vha,
991 &ha->fw_major_version, 935 &ha->fw_major_version,
992 &ha->fw_minor_version, 936 &ha->fw_minor_version,
993 &ha->fw_subminor_version, 937 &ha->fw_subminor_version,
994 &ha->fw_attributes, &ha->fw_memory_size, 938 &ha->fw_attributes, &ha->fw_memory_size,
995 ha->mpi_version, &ha->mpi_capabilities); 939 ha->mpi_version, &ha->mpi_capabilities,
940 ha->phy_version);
996 ha->flags.npiv_supported = 0; 941 ha->flags.npiv_supported = 0;
997 if (IS_QLA2XXX_MIDTYPE(ha) && 942 if (IS_QLA2XXX_MIDTYPE(ha) &&
998 (ha->fw_attributes & BIT_2)) { 943 (ha->fw_attributes & BIT_2)) {
@@ -1003,9 +948,11 @@ qla2x00_setup_chip(scsi_qla_host_t *vha)
1003 ha->max_npiv_vports = 948 ha->max_npiv_vports =
1004 MIN_MULTI_ID_FABRIC - 1; 949 MIN_MULTI_ID_FABRIC - 1;
1005 } 950 }
1006 qla2x00_resize_request_q(vha); 951 qla2x00_get_resource_cnts(vha, NULL,
952 &ha->fw_xcb_count, NULL, NULL,
953 &ha->max_npiv_vports);
1007 954
1008 if (ql2xallocfwdump) 955 if (!fw_major_version && ql2xallocfwdump)
1009 qla2x00_alloc_fw_dump(vha); 956 qla2x00_alloc_fw_dump(vha);
1010 } 957 }
1011 } else { 958 } else {
@@ -1028,6 +975,21 @@ qla2x00_setup_chip(scsi_qla_host_t *vha)
1028 spin_unlock_irqrestore(&ha->hardware_lock, flags); 975 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1029 } 976 }
1030 977
978 if (rval == QLA_SUCCESS && IS_FAC_REQUIRED(ha)) {
979 uint32_t size;
980
981 rval = qla81xx_fac_get_sector_size(vha, &size);
982 if (rval == QLA_SUCCESS) {
983 ha->flags.fac_supported = 1;
984 ha->fdt_block_size = size << 2;
985 } else {
986 qla_printk(KERN_ERR, ha,
987 "Unsupported FAC firmware (%d.%02d.%02d).\n",
988 ha->fw_major_version, ha->fw_minor_version,
989 ha->fw_subminor_version);
990 }
991 }
992
1031 if (rval) { 993 if (rval) {
1032 DEBUG2_3(printk("scsi(%ld): Setup chip **** FAILED ****.\n", 994 DEBUG2_3(printk("scsi(%ld): Setup chip **** FAILED ****.\n",
1033 vha->host_no)); 995 vha->host_no));
@@ -1314,8 +1276,11 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
1314 mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports); 1276 mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports);
1315 } 1277 }
1316 1278
1317 1279 if (IS_FWI2_CAPABLE(ha)) {
1318 mid_init_cb->options = __constant_cpu_to_le16(BIT_1); 1280 mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
1281 mid_init_cb->init_cb.execution_throttle =
1282 cpu_to_le16(ha->fw_xcb_count);
1283 }
1319 1284
1320 rval = qla2x00_init_firmware(vha, ha->init_cb_size); 1285 rval = qla2x00_init_firmware(vha, ha->init_cb_size);
1321 if (rval) { 1286 if (rval) {
@@ -1989,7 +1954,6 @@ qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
1989 fcport->port_type = FCT_UNKNOWN; 1954 fcport->port_type = FCT_UNKNOWN;
1990 fcport->loop_id = FC_NO_LOOP_ID; 1955 fcport->loop_id = FC_NO_LOOP_ID;
1991 atomic_set(&fcport->state, FCS_UNCONFIGURED); 1956 atomic_set(&fcport->state, FCS_UNCONFIGURED);
1992 fcport->flags = FCF_RLC_SUPPORT;
1993 fcport->supported_classes = FC_COS_UNSPECIFIED; 1957 fcport->supported_classes = FC_COS_UNSPECIFIED;
1994 1958
1995 return fcport; 1959 return fcport;
@@ -2171,7 +2135,6 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha)
2171 vha->host_no, fcport->loop_id)); 2135 vha->host_no, fcport->loop_id));
2172 2136
2173 atomic_set(&fcport->state, FCS_DEVICE_LOST); 2137 atomic_set(&fcport->state, FCS_DEVICE_LOST);
2174 fcport->flags &= ~FCF_FARP_DONE;
2175 } 2138 }
2176 } 2139 }
2177 2140
@@ -2228,8 +2191,7 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha)
2228 WWN_SIZE)) 2191 WWN_SIZE))
2229 continue; 2192 continue;
2230 2193
2231 fcport->flags &= ~(FCF_FABRIC_DEVICE | 2194 fcport->flags &= ~FCF_FABRIC_DEVICE;
2232 FCF_PERSISTENT_BOUND);
2233 fcport->loop_id = new_fcport->loop_id; 2195 fcport->loop_id = new_fcport->loop_id;
2234 fcport->port_type = new_fcport->port_type; 2196 fcport->port_type = new_fcport->port_type;
2235 fcport->d_id.b24 = new_fcport->d_id.b24; 2197 fcport->d_id.b24 = new_fcport->d_id.b24;
@@ -2242,7 +2204,6 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha)
2242 2204
2243 if (!found) { 2205 if (!found) {
2244 /* New device, add to fcports list. */ 2206 /* New device, add to fcports list. */
2245 new_fcport->flags &= ~FCF_PERSISTENT_BOUND;
2246 if (vha->vp_idx) { 2207 if (vha->vp_idx) {
2247 new_fcport->vha = vha; 2208 new_fcport->vha = vha;
2248 new_fcport->vp_idx = vha->vp_idx; 2209 new_fcport->vp_idx = vha->vp_idx;
@@ -2275,11 +2236,6 @@ cleanup_allocation:
2275 "rval=%x\n", vha->host_no, rval)); 2236 "rval=%x\n", vha->host_no, rval));
2276 } 2237 }
2277 2238
2278 if (found_devs) {
2279 vha->device_flags |= DFLG_LOCAL_DEVICES;
2280 vha->device_flags &= ~DFLG_RETRY_LOCAL_DEVICES;
2281 }
2282
2283 return (rval); 2239 return (rval);
2284} 2240}
2285 2241
@@ -2765,7 +2721,6 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha,
2765 fcport->loop_id = FC_NO_LOOP_ID; 2721 fcport->loop_id = FC_NO_LOOP_ID;
2766 fcport->flags |= (FCF_FABRIC_DEVICE | 2722 fcport->flags |= (FCF_FABRIC_DEVICE |
2767 FCF_LOGIN_NEEDED); 2723 FCF_LOGIN_NEEDED);
2768 fcport->flags &= ~FCF_PERSISTENT_BOUND;
2769 break; 2724 break;
2770 } 2725 }
2771 2726
@@ -2808,9 +2763,6 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha,
2808 kfree(swl); 2763 kfree(swl);
2809 kfree(new_fcport); 2764 kfree(new_fcport);
2810 2765
2811 if (!list_empty(new_fcports))
2812 vha->device_flags |= DFLG_FABRIC_DEVICES;
2813
2814 return (rval); 2766 return (rval);
2815} 2767}
2816 2768
@@ -2993,7 +2945,6 @@ qla2x00_device_resync(scsi_qla_host_t *vha)
2993 0, 0); 2945 0, 0);
2994 } 2946 }
2995 } 2947 }
2996 fcport->flags &= ~FCF_FARP_DONE;
2997 } 2948 }
2998 } 2949 }
2999 return (rval); 2950 return (rval);
@@ -3302,6 +3253,7 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
3302 3253
3303 if (vha->flags.online) { 3254 if (vha->flags.online) {
3304 vha->flags.online = 0; 3255 vha->flags.online = 0;
3256 ha->flags.chip_reset_done = 0;
3305 clear_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); 3257 clear_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
3306 ha->qla_stats.total_isp_aborts++; 3258 ha->qla_stats.total_isp_aborts++;
3307 3259
@@ -3451,6 +3403,7 @@ qla2x00_restart_isp(scsi_qla_host_t *vha)
3451 3403
3452 if (!status && !(status = qla2x00_init_rings(vha))) { 3404 if (!status && !(status = qla2x00_init_rings(vha))) {
3453 clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags); 3405 clear_bit(RESET_MARKER_NEEDED, &vha->dpc_flags);
3406 ha->flags.chip_reset_done = 1;
3454 /* Initialize the queues in use */ 3407 /* Initialize the queues in use */
3455 qla25xx_init_queues(ha); 3408 qla25xx_init_queues(ha);
3456 3409
@@ -4338,23 +4291,17 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
4338 4291
4339 /* Determine NVRAM starting address. */ 4292 /* Determine NVRAM starting address. */
4340 ha->nvram_size = sizeof(struct nvram_81xx); 4293 ha->nvram_size = sizeof(struct nvram_81xx);
4341 ha->nvram_base = FA_NVRAM_FUNC0_ADDR;
4342 ha->vpd_size = FA_NVRAM_VPD_SIZE; 4294 ha->vpd_size = FA_NVRAM_VPD_SIZE;
4343 ha->vpd_base = FA_NVRAM_VPD0_ADDR;
4344 if (PCI_FUNC(ha->pdev->devfn) & 1) {
4345 ha->nvram_base = FA_NVRAM_FUNC1_ADDR;
4346 ha->vpd_base = FA_NVRAM_VPD1_ADDR;
4347 }
4348 4295
4349 /* Get VPD data into cache */ 4296 /* Get VPD data into cache */
4350 ha->vpd = ha->nvram + VPD_OFFSET; 4297 ha->vpd = ha->nvram + VPD_OFFSET;
4351 ha->isp_ops->read_nvram(vha, (uint8_t *)ha->vpd, 4298 ha->isp_ops->read_optrom(vha, ha->vpd, ha->flt_region_vpd << 2,
4352 ha->nvram_base - FA_NVRAM_FUNC0_ADDR, FA_NVRAM_VPD_SIZE * 4); 4299 ha->vpd_size);
4353 4300
4354 /* Get NVRAM data into cache and calculate checksum. */ 4301 /* Get NVRAM data into cache and calculate checksum. */
4355 dptr = (uint32_t *)nv; 4302 ha->isp_ops->read_optrom(vha, ha->nvram, ha->flt_region_nvram << 2,
4356 ha->isp_ops->read_nvram(vha, (uint8_t *)dptr, ha->nvram_base,
4357 ha->nvram_size); 4303 ha->nvram_size);
4304 dptr = (uint32_t *)nv;
4358 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++) 4305 for (cnt = 0, chksum = 0; cnt < ha->nvram_size >> 2; cnt++)
4359 chksum += le32_to_cpu(*dptr++); 4306 chksum += le32_to_cpu(*dptr++);
4360 4307
@@ -4452,6 +4399,9 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
4452 icb->enode_mac[5] = 0x06 + PCI_FUNC(ha->pdev->devfn); 4399 icb->enode_mac[5] = 0x06 + PCI_FUNC(ha->pdev->devfn);
4453 } 4400 }
4454 4401
4402 /* Use extended-initialization control block. */
4403 memcpy(ha->ex_init_cb, &nv->ex_version, sizeof(*ha->ex_init_cb));
4404
4455 /* 4405 /*
4456 * Setup driver NVRAM options. 4406 * Setup driver NVRAM options.
4457 */ 4407 */
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c
index 2258152b1f4..a8abbb95730 100644
--- a/drivers/scsi/qla2xxx/qla_iocb.c
+++ b/drivers/scsi/qla2xxx/qla_iocb.c
@@ -776,7 +776,7 @@ qla24xx_start_scsi(srb_t *sp)
776 776
777 req_cnt = qla24xx_calc_iocbs(tot_dsds); 777 req_cnt = qla24xx_calc_iocbs(tot_dsds);
778 if (req->cnt < (req_cnt + 2)) { 778 if (req->cnt < (req_cnt + 2)) {
779 cnt = ha->isp_ops->rd_req_reg(ha, req->id); 779 cnt = RD_REG_DWORD_RELAXED(req->req_q_out);
780 780
781 if (req->ring_index < cnt) 781 if (req->ring_index < cnt)
782 req->cnt = cnt - req->ring_index; 782 req->cnt = cnt - req->ring_index;
@@ -836,7 +836,8 @@ qla24xx_start_scsi(srb_t *sp)
836 sp->flags |= SRB_DMA_VALID; 836 sp->flags |= SRB_DMA_VALID;
837 837
838 /* Set chip new ring index. */ 838 /* Set chip new ring index. */
839 ha->isp_ops->wrt_req_reg(ha, req->id, req->ring_index); 839 WRT_REG_DWORD(req->req_q_in, req->ring_index);
840 RD_REG_DWORD_RELAXED(&ha->iobase->isp24.hccr);
840 841
841 /* Manage unprocessed RIO/ZIO commands in response queue. */ 842 /* Manage unprocessed RIO/ZIO commands in response queue. */
842 if (vha->flags.process_response_queue && 843 if (vha->flags.process_response_queue &&
@@ -854,35 +855,3 @@ queuing_error:
854 855
855 return QLA_FUNCTION_FAILED; 856 return QLA_FUNCTION_FAILED;
856} 857}
857
858uint16_t
859qla24xx_rd_req_reg(struct qla_hw_data *ha, uint16_t id)
860{
861 device_reg_t __iomem *reg = (void *) ha->iobase;
862 return RD_REG_DWORD_RELAXED(&reg->isp24.req_q_out);
863}
864
865uint16_t
866qla25xx_rd_req_reg(struct qla_hw_data *ha, uint16_t id)
867{
868 device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id;
869 return RD_REG_DWORD_RELAXED(&reg->isp25mq.req_q_out);
870}
871
872void
873qla24xx_wrt_req_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
874{
875 device_reg_t __iomem *reg = (void *) ha->iobase;
876 WRT_REG_DWORD(&reg->isp24.req_q_in, index);
877 RD_REG_DWORD_RELAXED(&reg->isp24.req_q_in);
878}
879
880void
881qla25xx_wrt_req_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
882{
883 device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id;
884 struct device_reg_2xxx __iomem *ioreg = &ha->iobase->isp;
885 WRT_REG_DWORD(&reg->isp25mq.req_q_in, index);
886 RD_REG_DWORD(&ioreg->hccr); /* PCI posting */
887}
888
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index f250e5b7897..d04981848e5 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -852,9 +852,6 @@ qla2x00_process_completed_request(struct scsi_qla_host *vha,
852 /* Free outstanding command slot. */ 852 /* Free outstanding command slot. */
853 req->outstanding_cmds[index] = NULL; 853 req->outstanding_cmds[index] = NULL;
854 854
855 CMD_COMPL_STATUS(sp->cmd) = 0L;
856 CMD_SCSI_STATUS(sp->cmd) = 0L;
857
858 /* Save ISP completion status */ 855 /* Save ISP completion status */
859 sp->cmd->result = DID_OK << 16; 856 sp->cmd->result = DID_OK << 16;
860 857
@@ -955,7 +952,6 @@ qla2x00_handle_sense(srb_t *sp, uint8_t *sense_data, uint32_t sense_len)
955 if (sense_len >= SCSI_SENSE_BUFFERSIZE) 952 if (sense_len >= SCSI_SENSE_BUFFERSIZE)
956 sense_len = SCSI_SENSE_BUFFERSIZE; 953 sense_len = SCSI_SENSE_BUFFERSIZE;
957 954
958 CMD_ACTUAL_SNSLEN(cp) = sense_len;
959 sp->request_sense_length = sense_len; 955 sp->request_sense_length = sense_len;
960 sp->request_sense_ptr = cp->sense_buffer; 956 sp->request_sense_ptr = cp->sense_buffer;
961 if (sp->request_sense_length > 32) 957 if (sp->request_sense_length > 32)
@@ -973,8 +969,7 @@ qla2x00_handle_sense(srb_t *sp, uint8_t *sense_data, uint32_t sense_len)
973 cp->device->channel, cp->device->id, cp->device->lun, cp, 969 cp->device->channel, cp->device->id, cp->device->lun, cp,
974 cp->serial_number)); 970 cp->serial_number));
975 if (sense_len) 971 if (sense_len)
976 DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, 972 DEBUG5(qla2x00_dump_buffer(cp->sense_buffer, sense_len));
977 CMD_ACTUAL_SNSLEN(cp)));
978} 973}
979 974
980/** 975/**
@@ -1043,9 +1038,6 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
1043 } 1038 }
1044 1039
1045 lscsi_status = scsi_status & STATUS_MASK; 1040 lscsi_status = scsi_status & STATUS_MASK;
1046 CMD_ENTRY_STATUS(cp) = sts->entry_status;
1047 CMD_COMPL_STATUS(cp) = comp_status;
1048 CMD_SCSI_STATUS(cp) = scsi_status;
1049 1041
1050 fcport = sp->fcport; 1042 fcport = sp->fcport;
1051 1043
@@ -1104,7 +1096,6 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
1104 if (scsi_status & (SS_RESIDUAL_UNDER | SS_RESIDUAL_OVER)) { 1096 if (scsi_status & (SS_RESIDUAL_UNDER | SS_RESIDUAL_OVER)) {
1105 resid = resid_len; 1097 resid = resid_len;
1106 scsi_set_resid(cp, resid); 1098 scsi_set_resid(cp, resid);
1107 CMD_RESID_LEN(cp) = resid;
1108 1099
1109 if (!lscsi_status && 1100 if (!lscsi_status &&
1110 ((unsigned)(scsi_bufflen(cp) - resid) < 1101 ((unsigned)(scsi_bufflen(cp) - resid) <
@@ -1160,7 +1151,6 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
1160 1151
1161 if (scsi_status & SS_RESIDUAL_UNDER) { 1152 if (scsi_status & SS_RESIDUAL_UNDER) {
1162 scsi_set_resid(cp, resid); 1153 scsi_set_resid(cp, resid);
1163 CMD_RESID_LEN(cp) = resid;
1164 } else { 1154 } else {
1165 DEBUG2(printk(KERN_INFO 1155 DEBUG2(printk(KERN_INFO
1166 "scsi(%ld:%d:%d) UNDERRUN status detected " 1156 "scsi(%ld:%d:%d) UNDERRUN status detected "
@@ -1499,7 +1489,6 @@ qla24xx_mbx_completion(scsi_qla_host_t *vha, uint16_t mb0)
1499void 1489void
1500qla24xx_process_response_queue(struct rsp_que *rsp) 1490qla24xx_process_response_queue(struct rsp_que *rsp)
1501{ 1491{
1502 struct qla_hw_data *ha = rsp->hw;
1503 struct sts_entry_24xx *pkt; 1492 struct sts_entry_24xx *pkt;
1504 struct scsi_qla_host *vha; 1493 struct scsi_qla_host *vha;
1505 1494
@@ -1553,7 +1542,7 @@ qla24xx_process_response_queue(struct rsp_que *rsp)
1553 } 1542 }
1554 1543
1555 /* Adjust ring index */ 1544 /* Adjust ring index */
1556 ha->isp_ops->wrt_rsp_reg(ha, rsp->id, rsp->ring_index); 1545 WRT_REG_DWORD(rsp->rsp_q_out, rsp->ring_index);
1557} 1546}
1558 1547
1559static void 1548static void
@@ -2029,7 +2018,7 @@ skip_msix:
2029skip_msi: 2018skip_msi:
2030 2019
2031 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, 2020 ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler,
2032 IRQF_DISABLED|IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp); 2021 IRQF_SHARED, QLA2XXX_DRIVER_NAME, rsp);
2033 if (ret) { 2022 if (ret) {
2034 qla_printk(KERN_WARNING, ha, 2023 qla_printk(KERN_WARNING, ha,
2035 "Failed to reserve interrupt %d already in use.\n", 2024 "Failed to reserve interrupt %d already in use.\n",
@@ -2117,18 +2106,3 @@ int qla25xx_request_irq(struct rsp_que *rsp)
2117 msix->rsp = rsp; 2106 msix->rsp = rsp;
2118 return ret; 2107 return ret;
2119} 2108}
2120
2121void
2122qla25xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2123{
2124 device_reg_t __iomem *reg = (void *) ha->mqiobase + QLA_QUE_PAGE * id;
2125 WRT_REG_DWORD(&reg->isp25mq.rsp_q_out, index);
2126}
2127
2128void
2129qla24xx_wrt_rsp_reg(struct qla_hw_data *ha, uint16_t id, uint16_t index)
2130{
2131 device_reg_t __iomem *reg = (void *) ha->iobase;
2132 WRT_REG_DWORD(&reg->isp24.rsp_q_out, index);
2133}
2134
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 4aab7acf752..e67c1660bf4 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -45,6 +45,9 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
45 struct qla_hw_data *ha = vha->hw; 45 struct qla_hw_data *ha = vha->hw;
46 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); 46 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
47 47
48 if (ha->pdev->error_state > pci_channel_io_frozen)
49 return QLA_FUNCTION_TIMEOUT;
50
48 reg = ha->iobase; 51 reg = ha->iobase;
49 io_lock_on = base_vha->flags.init_done; 52 io_lock_on = base_vha->flags.init_done;
50 53
@@ -408,7 +411,7 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr)
408void 411void
409qla2x00_get_fw_version(scsi_qla_host_t *vha, uint16_t *major, uint16_t *minor, 412qla2x00_get_fw_version(scsi_qla_host_t *vha, uint16_t *major, uint16_t *minor,
410 uint16_t *subminor, uint16_t *attributes, uint32_t *memory, uint8_t *mpi, 413 uint16_t *subminor, uint16_t *attributes, uint32_t *memory, uint8_t *mpi,
411 uint32_t *mpi_caps) 414 uint32_t *mpi_caps, uint8_t *phy)
412{ 415{
413 int rval; 416 int rval;
414 mbx_cmd_t mc; 417 mbx_cmd_t mc;
@@ -420,7 +423,7 @@ qla2x00_get_fw_version(scsi_qla_host_t *vha, uint16_t *major, uint16_t *minor,
420 mcp->out_mb = MBX_0; 423 mcp->out_mb = MBX_0;
421 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 424 mcp->in_mb = MBX_6|MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
422 if (IS_QLA81XX(vha->hw)) 425 if (IS_QLA81XX(vha->hw))
423 mcp->in_mb |= MBX_13|MBX_12|MBX_11|MBX_10; 426 mcp->in_mb |= MBX_13|MBX_12|MBX_11|MBX_10|MBX_9|MBX_8;
424 mcp->flags = 0; 427 mcp->flags = 0;
425 mcp->tov = MBX_TOV_SECONDS; 428 mcp->tov = MBX_TOV_SECONDS;
426 rval = qla2x00_mailbox_command(vha, mcp); 429 rval = qla2x00_mailbox_command(vha, mcp);
@@ -435,11 +438,13 @@ qla2x00_get_fw_version(scsi_qla_host_t *vha, uint16_t *major, uint16_t *minor,
435 else 438 else
436 *memory = (mcp->mb[5] << 16) | mcp->mb[4]; 439 *memory = (mcp->mb[5] << 16) | mcp->mb[4];
437 if (IS_QLA81XX(vha->hw)) { 440 if (IS_QLA81XX(vha->hw)) {
438 mpi[0] = mcp->mb[10] >> 8; 441 mpi[0] = mcp->mb[10] & 0xff;
439 mpi[1] = mcp->mb[10] & 0xff; 442 mpi[1] = mcp->mb[11] >> 8;
440 mpi[2] = mcp->mb[11] >> 8; 443 mpi[2] = mcp->mb[11] & 0xff;
441 mpi[3] = mcp->mb[11] & 0xff;
442 *mpi_caps = (mcp->mb[12] << 16) | mcp->mb[13]; 444 *mpi_caps = (mcp->mb[12] << 16) | mcp->mb[13];
445 phy[0] = mcp->mb[8] & 0xff;
446 phy[1] = mcp->mb[9] >> 8;
447 phy[2] = mcp->mb[9] & 0xff;
443 } 448 }
444 449
445 if (rval != QLA_SUCCESS) { 450 if (rval != QLA_SUCCESS) {
@@ -1043,14 +1048,22 @@ qla2x00_init_firmware(scsi_qla_host_t *vha, uint16_t size)
1043 else 1048 else
1044 mcp->mb[0] = MBC_INITIALIZE_FIRMWARE; 1049 mcp->mb[0] = MBC_INITIALIZE_FIRMWARE;
1045 1050
1051 mcp->mb[1] = 0;
1046 mcp->mb[2] = MSW(ha->init_cb_dma); 1052 mcp->mb[2] = MSW(ha->init_cb_dma);
1047 mcp->mb[3] = LSW(ha->init_cb_dma); 1053 mcp->mb[3] = LSW(ha->init_cb_dma);
1048 mcp->mb[4] = 0;
1049 mcp->mb[5] = 0;
1050 mcp->mb[6] = MSW(MSD(ha->init_cb_dma)); 1054 mcp->mb[6] = MSW(MSD(ha->init_cb_dma));
1051 mcp->mb[7] = LSW(MSD(ha->init_cb_dma)); 1055 mcp->mb[7] = LSW(MSD(ha->init_cb_dma));
1052 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_0; 1056 mcp->out_mb = MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
1053 mcp->in_mb = MBX_5|MBX_4|MBX_0; 1057 if (IS_QLA81XX(ha) && ha->ex_init_cb->ex_version) {
1058 mcp->mb[1] = BIT_0;
1059 mcp->mb[10] = MSW(ha->ex_init_cb_dma);
1060 mcp->mb[11] = LSW(ha->ex_init_cb_dma);
1061 mcp->mb[12] = MSW(MSD(ha->ex_init_cb_dma));
1062 mcp->mb[13] = LSW(MSD(ha->ex_init_cb_dma));
1063 mcp->mb[14] = sizeof(*ha->ex_init_cb);
1064 mcp->out_mb |= MBX_14|MBX_13|MBX_12|MBX_11|MBX_10;
1065 }
1066 mcp->in_mb = MBX_0;
1054 mcp->buf_size = size; 1067 mcp->buf_size = size;
1055 mcp->flags = MBX_DMA_OUT; 1068 mcp->flags = MBX_DMA_OUT;
1056 mcp->tov = MBX_TOV_SECONDS; 1069 mcp->tov = MBX_TOV_SECONDS;
@@ -1187,10 +1200,6 @@ qla2x00_get_port_database(scsi_qla_host_t *vha, fc_port_t *fcport, uint8_t opt)
1187 fcport->d_id.b.al_pa = pd->port_id[2]; 1200 fcport->d_id.b.al_pa = pd->port_id[2];
1188 fcport->d_id.b.rsvd_1 = 0; 1201 fcport->d_id.b.rsvd_1 = 0;
1189 1202
1190 /* Check for device require authentication. */
1191 pd->common_features & BIT_5 ? (fcport->flags |= FCF_AUTH_REQ) :
1192 (fcport->flags &= ~FCF_AUTH_REQ);
1193
1194 /* If not target must be initiator or unknown type. */ 1203 /* If not target must be initiator or unknown type. */
1195 if ((pd->prli_svc_param_word_3[0] & BIT_4) == 0) 1204 if ((pd->prli_svc_param_word_3[0] & BIT_4) == 0)
1196 fcport->port_type = FCT_INITIATOR; 1205 fcport->port_type = FCT_INITIATOR;
@@ -3218,3 +3227,204 @@ qla81xx_idc_ack(scsi_qla_host_t *vha, uint16_t *mb)
3218 3227
3219 return rval; 3228 return rval;
3220} 3229}
3230
3231int
3232qla81xx_fac_get_sector_size(scsi_qla_host_t *vha, uint32_t *sector_size)
3233{
3234 int rval;
3235 mbx_cmd_t mc;
3236 mbx_cmd_t *mcp = &mc;
3237
3238 if (!IS_QLA81XX(vha->hw))
3239 return QLA_FUNCTION_FAILED;
3240
3241 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3242
3243 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL;
3244 mcp->mb[1] = FAC_OPT_CMD_GET_SECTOR_SIZE;
3245 mcp->out_mb = MBX_1|MBX_0;
3246 mcp->in_mb = MBX_1|MBX_0;
3247 mcp->tov = MBX_TOV_SECONDS;
3248 mcp->flags = 0;
3249 rval = qla2x00_mailbox_command(vha, mcp);
3250
3251 if (rval != QLA_SUCCESS) {
3252 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
3253 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
3254 } else {
3255 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
3256 *sector_size = mcp->mb[1];
3257 }
3258
3259 return rval;
3260}
3261
3262int
3263qla81xx_fac_do_write_enable(scsi_qla_host_t *vha, int enable)
3264{
3265 int rval;
3266 mbx_cmd_t mc;
3267 mbx_cmd_t *mcp = &mc;
3268
3269 if (!IS_QLA81XX(vha->hw))
3270 return QLA_FUNCTION_FAILED;
3271
3272 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3273
3274 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL;
3275 mcp->mb[1] = enable ? FAC_OPT_CMD_WRITE_ENABLE :
3276 FAC_OPT_CMD_WRITE_PROTECT;
3277 mcp->out_mb = MBX_1|MBX_0;
3278 mcp->in_mb = MBX_1|MBX_0;
3279 mcp->tov = MBX_TOV_SECONDS;
3280 mcp->flags = 0;
3281 rval = qla2x00_mailbox_command(vha, mcp);
3282
3283 if (rval != QLA_SUCCESS) {
3284 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x.\n",
3285 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
3286 } else {
3287 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
3288 }
3289
3290 return rval;
3291}
3292
3293int
3294qla81xx_fac_erase_sector(scsi_qla_host_t *vha, uint32_t start, uint32_t finish)
3295{
3296 int rval;
3297 mbx_cmd_t mc;
3298 mbx_cmd_t *mcp = &mc;
3299
3300 if (!IS_QLA81XX(vha->hw))
3301 return QLA_FUNCTION_FAILED;
3302
3303 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3304
3305 mcp->mb[0] = MBC_FLASH_ACCESS_CTRL;
3306 mcp->mb[1] = FAC_OPT_CMD_ERASE_SECTOR;
3307 mcp->mb[2] = LSW(start);
3308 mcp->mb[3] = MSW(start);
3309 mcp->mb[4] = LSW(finish);
3310 mcp->mb[5] = MSW(finish);
3311 mcp->out_mb = MBX_5|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0;
3312 mcp->in_mb = MBX_2|MBX_1|MBX_0;
3313 mcp->tov = MBX_TOV_SECONDS;
3314 mcp->flags = 0;
3315 rval = qla2x00_mailbox_command(vha, mcp);
3316
3317 if (rval != QLA_SUCCESS) {
3318 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=%x mb[1]=%x "
3319 "mb[2]=%x.\n", __func__, vha->host_no, rval, mcp->mb[0],
3320 mcp->mb[1], mcp->mb[2]));
3321 } else {
3322 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
3323 }
3324
3325 return rval;
3326}
3327
3328int
3329qla81xx_restart_mpi_firmware(scsi_qla_host_t *vha)
3330{
3331 int rval = 0;
3332 mbx_cmd_t mc;
3333 mbx_cmd_t *mcp = &mc;
3334
3335 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3336
3337 mcp->mb[0] = MBC_RESTART_MPI_FW;
3338 mcp->out_mb = MBX_0;
3339 mcp->in_mb = MBX_0|MBX_1;
3340 mcp->tov = MBX_TOV_SECONDS;
3341 mcp->flags = 0;
3342 rval = qla2x00_mailbox_command(vha, mcp);
3343
3344 if (rval != QLA_SUCCESS) {
3345 DEBUG2_3_11(printk("%s(%ld): failed=%x mb[0]=0x%x mb[1]=0x%x.\n",
3346 __func__, vha->host_no, rval, mcp->mb[0], mcp->mb[1]));
3347 } else {
3348 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
3349 }
3350
3351 return rval;
3352}
3353
3354int
3355qla2x00_read_edc(scsi_qla_host_t *vha, uint16_t dev, uint16_t adr,
3356 dma_addr_t sfp_dma, uint8_t *sfp, uint16_t len, uint16_t opt)
3357{
3358 int rval;
3359 mbx_cmd_t mc;
3360 mbx_cmd_t *mcp = &mc;
3361
3362 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3363
3364 mcp->mb[0] = MBC_READ_SFP;
3365 mcp->mb[1] = dev;
3366 mcp->mb[2] = MSW(sfp_dma);
3367 mcp->mb[3] = LSW(sfp_dma);
3368 mcp->mb[6] = MSW(MSD(sfp_dma));
3369 mcp->mb[7] = LSW(MSD(sfp_dma));
3370 mcp->mb[8] = len;
3371 mcp->mb[9] = adr;
3372 mcp->mb[10] = opt;
3373 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
3374 mcp->in_mb = MBX_0;
3375 mcp->tov = MBX_TOV_SECONDS;
3376 mcp->flags = 0;
3377 rval = qla2x00_mailbox_command(vha, mcp);
3378
3379 if (opt & BIT_0)
3380 if (sfp)
3381 *sfp = mcp->mb[8];
3382
3383 if (rval != QLA_SUCCESS) {
3384 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__,
3385 vha->host_no, rval, mcp->mb[0]));
3386 } else {
3387 DEBUG11(printk("%s(%ld): done.\n", __func__, ha->host_no));
3388 }
3389
3390 return rval;
3391}
3392
3393int
3394qla2x00_write_edc(scsi_qla_host_t *vha, uint16_t dev, uint16_t adr,
3395 dma_addr_t sfp_dma, uint8_t *sfp, uint16_t len, uint16_t opt)
3396{
3397 int rval;
3398 mbx_cmd_t mc;
3399 mbx_cmd_t *mcp = &mc;
3400
3401 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
3402
3403 if (opt & BIT_0)
3404 if (sfp)
3405 len = *sfp;
3406
3407 mcp->mb[0] = MBC_WRITE_SFP;
3408 mcp->mb[1] = dev;
3409 mcp->mb[2] = MSW(sfp_dma);
3410 mcp->mb[3] = LSW(sfp_dma);
3411 mcp->mb[6] = MSW(MSD(sfp_dma));
3412 mcp->mb[7] = LSW(MSD(sfp_dma));
3413 mcp->mb[8] = len;
3414 mcp->mb[9] = adr;
3415 mcp->mb[10] = opt;
3416 mcp->out_mb = MBX_10|MBX_9|MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0;
3417 mcp->in_mb = MBX_0;
3418 mcp->tov = MBX_TOV_SECONDS;
3419 mcp->flags = 0;
3420 rval = qla2x00_mailbox_command(vha, mcp);
3421
3422 if (rval != QLA_SUCCESS) {
3423 DEBUG2_3_11(printk("%s(%ld): failed=%x (%x).\n", __func__,
3424 vha->host_no, rval, mcp->mb[0]));
3425 } else {
3426 DEBUG11(printk("%s(%ld): done.\n", __func__, vha->host_no));
3427 }
3428
3429 return rval;
3430}
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c
index 785c61279e6..51716c7e300 100644
--- a/drivers/scsi/qla2xxx/qla_mid.c
+++ b/drivers/scsi/qla2xxx/qla_mid.c
@@ -359,7 +359,7 @@ qla24xx_create_vhost(struct fc_vport *fc_vport)
359 scsi_qla_host_t *base_vha = shost_priv(fc_vport->shost); 359 scsi_qla_host_t *base_vha = shost_priv(fc_vport->shost);
360 struct qla_hw_data *ha = base_vha->hw; 360 struct qla_hw_data *ha = base_vha->hw;
361 scsi_qla_host_t *vha; 361 scsi_qla_host_t *vha;
362 struct scsi_host_template *sht = &qla24xx_driver_template; 362 struct scsi_host_template *sht = &qla2xxx_driver_template;
363 struct Scsi_Host *host; 363 struct Scsi_Host *host;
364 364
365 vha = qla2x00_create_host(sht, ha); 365 vha = qla2x00_create_host(sht, ha);
@@ -584,6 +584,7 @@ qla25xx_create_req_que(struct qla_hw_data *ha, uint16_t options,
584 struct req_que *req = NULL; 584 struct req_que *req = NULL;
585 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); 585 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
586 uint16_t que_id = 0; 586 uint16_t que_id = 0;
587 device_reg_t __iomem *reg;
587 588
588 req = kzalloc(sizeof(struct req_que), GFP_KERNEL); 589 req = kzalloc(sizeof(struct req_que), GFP_KERNEL);
589 if (req == NULL) { 590 if (req == NULL) {
@@ -631,6 +632,9 @@ qla25xx_create_req_que(struct qla_hw_data *ha, uint16_t options,
631 req->ring_index = 0; 632 req->ring_index = 0;
632 req->cnt = req->length; 633 req->cnt = req->length;
633 req->id = que_id; 634 req->id = que_id;
635 reg = ISP_QUE_REG(ha, que_id);
636 req->req_q_in = &reg->isp25mq.req_q_in;
637 req->req_q_out = &reg->isp25mq.req_q_out;
634 req->max_q_depth = ha->req_q_map[0]->max_q_depth; 638 req->max_q_depth = ha->req_q_map[0]->max_q_depth;
635 mutex_unlock(&ha->vport_lock); 639 mutex_unlock(&ha->vport_lock);
636 640
@@ -658,7 +662,8 @@ qla25xx_create_rsp_que(struct qla_hw_data *ha, uint16_t options,
658 int ret = 0; 662 int ret = 0;
659 struct rsp_que *rsp = NULL; 663 struct rsp_que *rsp = NULL;
660 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev); 664 struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
661 uint16_t que_id = 0;; 665 uint16_t que_id = 0;
666 device_reg_t __iomem *reg;
662 667
663 rsp = kzalloc(sizeof(struct rsp_que), GFP_KERNEL); 668 rsp = kzalloc(sizeof(struct rsp_que), GFP_KERNEL);
664 if (rsp == NULL) { 669 if (rsp == NULL) {
@@ -706,6 +711,9 @@ qla25xx_create_rsp_que(struct qla_hw_data *ha, uint16_t options,
706 rsp->ring_ptr = rsp->ring; 711 rsp->ring_ptr = rsp->ring;
707 rsp->ring_index = 0; 712 rsp->ring_index = 0;
708 rsp->id = que_id; 713 rsp->id = que_id;
714 reg = ISP_QUE_REG(ha, que_id);
715 rsp->rsp_q_in = &reg->isp25mq.rsp_q_in;
716 rsp->rsp_q_out = &reg->isp25mq.rsp_q_out;
709 mutex_unlock(&ha->vport_lock); 717 mutex_unlock(&ha->vport_lock);
710 718
711 ret = qla25xx_request_irq(rsp); 719 ret = qla25xx_request_irq(rsp);
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 3ddfa889e94..efe29924e05 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -104,9 +104,7 @@ static int qla2xxx_slave_alloc(struct scsi_device *);
104static int qla2xxx_scan_finished(struct Scsi_Host *, unsigned long time); 104static int qla2xxx_scan_finished(struct Scsi_Host *, unsigned long time);
105static void qla2xxx_scan_start(struct Scsi_Host *); 105static void qla2xxx_scan_start(struct Scsi_Host *);
106static void qla2xxx_slave_destroy(struct scsi_device *); 106static void qla2xxx_slave_destroy(struct scsi_device *);
107static int qla2x00_queuecommand(struct scsi_cmnd *cmd, 107static int qla2xxx_queuecommand(struct scsi_cmnd *cmd,
108 void (*fn)(struct scsi_cmnd *));
109static int qla24xx_queuecommand(struct scsi_cmnd *cmd,
110 void (*fn)(struct scsi_cmnd *)); 108 void (*fn)(struct scsi_cmnd *));
111static int qla2xxx_eh_abort(struct scsi_cmnd *); 109static int qla2xxx_eh_abort(struct scsi_cmnd *);
112static int qla2xxx_eh_device_reset(struct scsi_cmnd *); 110static int qla2xxx_eh_device_reset(struct scsi_cmnd *);
@@ -117,42 +115,10 @@ static int qla2xxx_eh_host_reset(struct scsi_cmnd *);
117static int qla2x00_change_queue_depth(struct scsi_device *, int); 115static int qla2x00_change_queue_depth(struct scsi_device *, int);
118static int qla2x00_change_queue_type(struct scsi_device *, int); 116static int qla2x00_change_queue_type(struct scsi_device *, int);
119 117
120static struct scsi_host_template qla2x00_driver_template = { 118struct scsi_host_template qla2xxx_driver_template = {
121 .module = THIS_MODULE, 119 .module = THIS_MODULE,
122 .name = QLA2XXX_DRIVER_NAME, 120 .name = QLA2XXX_DRIVER_NAME,
123 .queuecommand = qla2x00_queuecommand, 121 .queuecommand = qla2xxx_queuecommand,
124
125 .eh_abort_handler = qla2xxx_eh_abort,
126 .eh_device_reset_handler = qla2xxx_eh_device_reset,
127 .eh_target_reset_handler = qla2xxx_eh_target_reset,
128 .eh_bus_reset_handler = qla2xxx_eh_bus_reset,
129 .eh_host_reset_handler = qla2xxx_eh_host_reset,
130
131 .slave_configure = qla2xxx_slave_configure,
132
133 .slave_alloc = qla2xxx_slave_alloc,
134 .slave_destroy = qla2xxx_slave_destroy,
135 .scan_finished = qla2xxx_scan_finished,
136 .scan_start = qla2xxx_scan_start,
137 .change_queue_depth = qla2x00_change_queue_depth,
138 .change_queue_type = qla2x00_change_queue_type,
139 .this_id = -1,
140 .cmd_per_lun = 3,
141 .use_clustering = ENABLE_CLUSTERING,
142 .sg_tablesize = SG_ALL,
143
144 /*
145 * The RISC allows for each command to transfer (2^32-1) bytes of data,
146 * which equates to 0x800000 sectors.
147 */
148 .max_sectors = 0xFFFF,
149 .shost_attrs = qla2x00_host_attrs,
150};
151
152struct scsi_host_template qla24xx_driver_template = {
153 .module = THIS_MODULE,
154 .name = QLA2XXX_DRIVER_NAME,
155 .queuecommand = qla24xx_queuecommand,
156 122
157 .eh_abort_handler = qla2xxx_eh_abort, 123 .eh_abort_handler = qla2xxx_eh_abort,
158 .eh_device_reset_handler = qla2xxx_eh_device_reset, 124 .eh_device_reset_handler = qla2xxx_eh_device_reset,
@@ -430,73 +396,7 @@ qla2x00_get_new_sp(scsi_qla_host_t *vha, fc_port_t *fcport,
430} 396}
431 397
432static int 398static int
433qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) 399qla2xxx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
434{
435 scsi_qla_host_t *vha = shost_priv(cmd->device->host);
436 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata;
437 struct fc_rport *rport = starget_to_rport(scsi_target(cmd->device));
438 struct qla_hw_data *ha = vha->hw;
439 srb_t *sp;
440 int rval;
441
442 if (unlikely(pci_channel_offline(ha->pdev))) {
443 cmd->result = DID_REQUEUE << 16;
444 goto qc_fail_command;
445 }
446
447 rval = fc_remote_port_chkready(rport);
448 if (rval) {
449 cmd->result = rval;
450 goto qc_fail_command;
451 }
452
453 /* Close window on fcport/rport state-transitioning. */
454 if (fcport->drport)
455 goto qc_target_busy;
456
457 if (atomic_read(&fcport->state) != FCS_ONLINE) {
458 if (atomic_read(&fcport->state) == FCS_DEVICE_DEAD ||
459 atomic_read(&vha->loop_state) == LOOP_DEAD) {
460 cmd->result = DID_NO_CONNECT << 16;
461 goto qc_fail_command;
462 }
463 goto qc_target_busy;
464 }
465
466 spin_unlock_irq(vha->host->host_lock);
467
468 sp = qla2x00_get_new_sp(vha, fcport, cmd, done);
469 if (!sp)
470 goto qc_host_busy_lock;
471
472 rval = ha->isp_ops->start_scsi(sp);
473 if (rval != QLA_SUCCESS)
474 goto qc_host_busy_free_sp;
475
476 spin_lock_irq(vha->host->host_lock);
477
478 return 0;
479
480qc_host_busy_free_sp:
481 qla2x00_sp_free_dma(sp);
482 mempool_free(sp, ha->srb_mempool);
483
484qc_host_busy_lock:
485 spin_lock_irq(vha->host->host_lock);
486 return SCSI_MLQUEUE_HOST_BUSY;
487
488qc_target_busy:
489 return SCSI_MLQUEUE_TARGET_BUSY;
490
491qc_fail_command:
492 done(cmd);
493
494 return 0;
495}
496
497
498static int
499qla24xx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
500{ 400{
501 scsi_qla_host_t *vha = shost_priv(cmd->device->host); 401 scsi_qla_host_t *vha = shost_priv(cmd->device->host);
502 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; 402 fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata;
@@ -507,7 +407,10 @@ qla24xx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
507 int rval; 407 int rval;
508 408
509 if (unlikely(pci_channel_offline(ha->pdev))) { 409 if (unlikely(pci_channel_offline(ha->pdev))) {
510 cmd->result = DID_REQUEUE << 16; 410 if (ha->pdev->error_state == pci_channel_io_frozen)
411 cmd->result = DID_REQUEUE << 16;
412 else
413 cmd->result = DID_NO_CONNECT << 16;
511 goto qc24_fail_command; 414 goto qc24_fail_command;
512 } 415 }
513 416
@@ -635,6 +538,34 @@ qla2x00_wait_for_hba_online(scsi_qla_host_t *vha)
635 return (return_status); 538 return (return_status);
636} 539}
637 540
541int
542qla2x00_wait_for_chip_reset(scsi_qla_host_t *vha)
543{
544 int return_status;
545 unsigned long wait_reset;
546 struct qla_hw_data *ha = vha->hw;
547 scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
548
549 wait_reset = jiffies + (MAX_LOOP_TIMEOUT * HZ);
550 while (((test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags)) ||
551 test_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags) ||
552 test_bit(ISP_ABORT_RETRY, &base_vha->dpc_flags) ||
553 ha->dpc_active) && time_before(jiffies, wait_reset)) {
554
555 msleep(1000);
556
557 if (!test_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags) &&
558 ha->flags.chip_reset_done)
559 break;
560 }
561 if (ha->flags.chip_reset_done)
562 return_status = QLA_SUCCESS;
563 else
564 return_status = QLA_FUNCTION_FAILED;
565
566 return return_status;
567}
568
638/* 569/*
639 * qla2x00_wait_for_loop_ready 570 * qla2x00_wait_for_loop_ready
640 * Wait for MAX_LOOP_TIMEOUT(5 min) value for loop 571 * Wait for MAX_LOOP_TIMEOUT(5 min) value for loop
@@ -1163,7 +1094,7 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
1163 continue; 1094 continue;
1164 for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) { 1095 for (cnt = 1; cnt < MAX_OUTSTANDING_COMMANDS; cnt++) {
1165 sp = req->outstanding_cmds[cnt]; 1096 sp = req->outstanding_cmds[cnt];
1166 if (sp && sp->fcport->vha == vha) { 1097 if (sp) {
1167 req->outstanding_cmds[cnt] = NULL; 1098 req->outstanding_cmds[cnt] = NULL;
1168 sp->cmd->result = res; 1099 sp->cmd->result = res;
1169 qla2x00_sp_compl(ha, sp); 1100 qla2x00_sp_compl(ha, sp);
@@ -1351,9 +1282,6 @@ static struct isp_operations qla2100_isp_ops = {
1351 .write_optrom = qla2x00_write_optrom_data, 1282 .write_optrom = qla2x00_write_optrom_data,
1352 .get_flash_version = qla2x00_get_flash_version, 1283 .get_flash_version = qla2x00_get_flash_version,
1353 .start_scsi = qla2x00_start_scsi, 1284 .start_scsi = qla2x00_start_scsi,
1354 .wrt_req_reg = NULL,
1355 .wrt_rsp_reg = NULL,
1356 .rd_req_reg = NULL,
1357}; 1285};
1358 1286
1359static struct isp_operations qla2300_isp_ops = { 1287static struct isp_operations qla2300_isp_ops = {
@@ -1389,9 +1317,6 @@ static struct isp_operations qla2300_isp_ops = {
1389 .write_optrom = qla2x00_write_optrom_data, 1317 .write_optrom = qla2x00_write_optrom_data,
1390 .get_flash_version = qla2x00_get_flash_version, 1318 .get_flash_version = qla2x00_get_flash_version,
1391 .start_scsi = qla2x00_start_scsi, 1319 .start_scsi = qla2x00_start_scsi,
1392 .wrt_req_reg = NULL,
1393 .wrt_rsp_reg = NULL,
1394 .rd_req_reg = NULL,
1395}; 1320};
1396 1321
1397static struct isp_operations qla24xx_isp_ops = { 1322static struct isp_operations qla24xx_isp_ops = {
@@ -1427,9 +1352,6 @@ static struct isp_operations qla24xx_isp_ops = {
1427 .write_optrom = qla24xx_write_optrom_data, 1352 .write_optrom = qla24xx_write_optrom_data,
1428 .get_flash_version = qla24xx_get_flash_version, 1353 .get_flash_version = qla24xx_get_flash_version,
1429 .start_scsi = qla24xx_start_scsi, 1354 .start_scsi = qla24xx_start_scsi,
1430 .wrt_req_reg = qla24xx_wrt_req_reg,
1431 .wrt_rsp_reg = qla24xx_wrt_rsp_reg,
1432 .rd_req_reg = qla24xx_rd_req_reg,
1433}; 1355};
1434 1356
1435static struct isp_operations qla25xx_isp_ops = { 1357static struct isp_operations qla25xx_isp_ops = {
@@ -1465,9 +1387,6 @@ static struct isp_operations qla25xx_isp_ops = {
1465 .write_optrom = qla24xx_write_optrom_data, 1387 .write_optrom = qla24xx_write_optrom_data,
1466 .get_flash_version = qla24xx_get_flash_version, 1388 .get_flash_version = qla24xx_get_flash_version,
1467 .start_scsi = qla24xx_start_scsi, 1389 .start_scsi = qla24xx_start_scsi,
1468 .wrt_req_reg = qla24xx_wrt_req_reg,
1469 .wrt_rsp_reg = qla24xx_wrt_rsp_reg,
1470 .rd_req_reg = qla24xx_rd_req_reg,
1471}; 1390};
1472 1391
1473static struct isp_operations qla81xx_isp_ops = { 1392static struct isp_operations qla81xx_isp_ops = {
@@ -1493,8 +1412,8 @@ static struct isp_operations qla81xx_isp_ops = {
1493 .build_iocbs = NULL, 1412 .build_iocbs = NULL,
1494 .prep_ms_iocb = qla24xx_prep_ms_iocb, 1413 .prep_ms_iocb = qla24xx_prep_ms_iocb,
1495 .prep_ms_fdmi_iocb = qla24xx_prep_ms_fdmi_iocb, 1414 .prep_ms_fdmi_iocb = qla24xx_prep_ms_fdmi_iocb,
1496 .read_nvram = qla25xx_read_nvram_data, 1415 .read_nvram = NULL,
1497 .write_nvram = qla25xx_write_nvram_data, 1416 .write_nvram = NULL,
1498 .fw_dump = qla81xx_fw_dump, 1417 .fw_dump = qla81xx_fw_dump,
1499 .beacon_on = qla24xx_beacon_on, 1418 .beacon_on = qla24xx_beacon_on,
1500 .beacon_off = qla24xx_beacon_off, 1419 .beacon_off = qla24xx_beacon_off,
@@ -1503,9 +1422,6 @@ static struct isp_operations qla81xx_isp_ops = {
1503 .write_optrom = qla24xx_write_optrom_data, 1422 .write_optrom = qla24xx_write_optrom_data,
1504 .get_flash_version = qla24xx_get_flash_version, 1423 .get_flash_version = qla24xx_get_flash_version,
1505 .start_scsi = qla24xx_start_scsi, 1424 .start_scsi = qla24xx_start_scsi,
1506 .wrt_req_reg = qla24xx_wrt_req_reg,
1507 .wrt_rsp_reg = qla24xx_wrt_rsp_reg,
1508 .rd_req_reg = qla24xx_rd_req_reg,
1509}; 1425};
1510 1426
1511static inline void 1427static inline void
@@ -1727,7 +1643,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1727 struct rsp_que *rsp = NULL; 1643 struct rsp_que *rsp = NULL;
1728 1644
1729 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO); 1645 bars = pci_select_bars(pdev, IORESOURCE_MEM | IORESOURCE_IO);
1730 sht = &qla2x00_driver_template; 1646 sht = &qla2xxx_driver_template;
1731 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 || 1647 if (pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422 ||
1732 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432 || 1648 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432 ||
1733 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8432 || 1649 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8432 ||
@@ -1736,7 +1652,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1736 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532 || 1652 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2532 ||
1737 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8001) { 1653 pdev->device == PCI_DEVICE_ID_QLOGIC_ISP8001) {
1738 bars = pci_select_bars(pdev, IORESOURCE_MEM); 1654 bars = pci_select_bars(pdev, IORESOURCE_MEM);
1739 sht = &qla24xx_driver_template;
1740 mem_only = 1; 1655 mem_only = 1;
1741 } 1656 }
1742 1657
@@ -1927,10 +1842,16 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1927 ha->rsp_q_map[0] = rsp; 1842 ha->rsp_q_map[0] = rsp;
1928 ha->req_q_map[0] = req; 1843 ha->req_q_map[0] = req;
1929 1844
1845 /* FWI2-capable only. */
1846 req->req_q_in = &ha->iobase->isp24.req_q_in;
1847 req->req_q_out = &ha->iobase->isp24.req_q_out;
1848 rsp->rsp_q_in = &ha->iobase->isp24.rsp_q_in;
1849 rsp->rsp_q_out = &ha->iobase->isp24.rsp_q_out;
1930 if (ha->mqenable) { 1850 if (ha->mqenable) {
1931 ha->isp_ops->wrt_req_reg = qla25xx_wrt_req_reg; 1851 req->req_q_in = &ha->mqiobase->isp25mq.req_q_in;
1932 ha->isp_ops->wrt_rsp_reg = qla25xx_wrt_rsp_reg; 1852 req->req_q_out = &ha->mqiobase->isp25mq.req_q_out;
1933 ha->isp_ops->rd_req_reg = qla25xx_rd_req_reg; 1853 rsp->rsp_q_in = &ha->mqiobase->isp25mq.rsp_q_in;
1854 rsp->rsp_q_out = &ha->mqiobase->isp25mq.rsp_q_out;
1934 } 1855 }
1935 1856
1936 if (qla2x00_initialize_adapter(base_vha)) { 1857 if (qla2x00_initialize_adapter(base_vha)) {
@@ -2000,6 +1921,16 @@ probe_init_failed:
2000 ha->max_queues = 0; 1921 ha->max_queues = 0;
2001 1922
2002probe_failed: 1923probe_failed:
1924 if (base_vha->timer_active)
1925 qla2x00_stop_timer(base_vha);
1926 base_vha->flags.online = 0;
1927 if (ha->dpc_thread) {
1928 struct task_struct *t = ha->dpc_thread;
1929
1930 ha->dpc_thread = NULL;
1931 kthread_stop(t);
1932 }
1933
2003 qla2x00_free_device(base_vha); 1934 qla2x00_free_device(base_vha);
2004 1935
2005 scsi_host_put(base_vha->host); 1936 scsi_host_put(base_vha->host);
@@ -2033,10 +1964,30 @@ qla2x00_remove_one(struct pci_dev *pdev)
2033 1964
2034 set_bit(UNLOADING, &base_vha->dpc_flags); 1965 set_bit(UNLOADING, &base_vha->dpc_flags);
2035 1966
1967 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);
1968
2036 qla2x00_dfs_remove(base_vha); 1969 qla2x00_dfs_remove(base_vha);
2037 1970
2038 qla84xx_put_chip(base_vha); 1971 qla84xx_put_chip(base_vha);
2039 1972
1973 /* Disable timer */
1974 if (base_vha->timer_active)
1975 qla2x00_stop_timer(base_vha);
1976
1977 base_vha->flags.online = 0;
1978
1979 /* Kill the kernel thread for this host */
1980 if (ha->dpc_thread) {
1981 struct task_struct *t = ha->dpc_thread;
1982
1983 /*
1984 * qla2xxx_wake_dpc checks for ->dpc_thread
1985 * so we need to zero it out.
1986 */
1987 ha->dpc_thread = NULL;
1988 kthread_stop(t);
1989 }
1990
2040 qla2x00_free_sysfs_attr(base_vha); 1991 qla2x00_free_sysfs_attr(base_vha);
2041 1992
2042 fc_remove_host(base_vha->host); 1993 fc_remove_host(base_vha->host);
@@ -2065,25 +2016,6 @@ static void
2065qla2x00_free_device(scsi_qla_host_t *vha) 2016qla2x00_free_device(scsi_qla_host_t *vha)
2066{ 2017{
2067 struct qla_hw_data *ha = vha->hw; 2018 struct qla_hw_data *ha = vha->hw;
2068 qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16);
2069
2070 /* Disable timer */
2071 if (vha->timer_active)
2072 qla2x00_stop_timer(vha);
2073
2074 vha->flags.online = 0;
2075
2076 /* Kill the kernel thread for this host */
2077 if (ha->dpc_thread) {
2078 struct task_struct *t = ha->dpc_thread;
2079
2080 /*
2081 * qla2xxx_wake_dpc checks for ->dpc_thread
2082 * so we need to zero it out.
2083 */
2084 ha->dpc_thread = NULL;
2085 kthread_stop(t);
2086 }
2087 2019
2088 if (ha->flags.fce_enabled) 2020 if (ha->flags.fce_enabled)
2089 qla2x00_disable_fce_trace(vha, NULL, NULL); 2021 qla2x00_disable_fce_trace(vha, NULL, NULL);
@@ -2313,9 +2245,19 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
2313 } else 2245 } else
2314 ha->npiv_info = NULL; 2246 ha->npiv_info = NULL;
2315 2247
2248 /* Get consistent memory allocated for EX-INIT-CB. */
2249 if (IS_QLA81XX(ha)) {
2250 ha->ex_init_cb = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
2251 &ha->ex_init_cb_dma);
2252 if (!ha->ex_init_cb)
2253 goto fail_ex_init_cb;
2254 }
2255
2316 INIT_LIST_HEAD(&ha->vp_list); 2256 INIT_LIST_HEAD(&ha->vp_list);
2317 return 1; 2257 return 1;
2318 2258
2259fail_ex_init_cb:
2260 kfree(ha->npiv_info);
2319fail_npiv_info: 2261fail_npiv_info:
2320 dma_free_coherent(&ha->pdev->dev, ((*rsp)->length + 1) * 2262 dma_free_coherent(&ha->pdev->dev, ((*rsp)->length + 1) *
2321 sizeof(response_t), (*rsp)->ring, (*rsp)->dma); 2263 sizeof(response_t), (*rsp)->ring, (*rsp)->dma);
@@ -2398,18 +2340,22 @@ qla2x00_mem_free(struct qla_hw_data *ha)
2398 if (ha->sfp_data) 2340 if (ha->sfp_data)
2399 dma_pool_free(ha->s_dma_pool, ha->sfp_data, ha->sfp_data_dma); 2341 dma_pool_free(ha->s_dma_pool, ha->sfp_data, ha->sfp_data_dma);
2400 2342
2343 if (ha->edc_data)
2344 dma_pool_free(ha->s_dma_pool, ha->edc_data, ha->edc_data_dma);
2345
2401 if (ha->ms_iocb) 2346 if (ha->ms_iocb)
2402 dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma); 2347 dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma);
2403 2348
2349 if (ha->ex_init_cb)
2350 dma_pool_free(ha->s_dma_pool, ha->ex_init_cb, ha->ex_init_cb_dma);
2351
2404 if (ha->s_dma_pool) 2352 if (ha->s_dma_pool)
2405 dma_pool_destroy(ha->s_dma_pool); 2353 dma_pool_destroy(ha->s_dma_pool);
2406 2354
2407
2408 if (ha->gid_list) 2355 if (ha->gid_list)
2409 dma_free_coherent(&ha->pdev->dev, GID_LIST_SIZE, ha->gid_list, 2356 dma_free_coherent(&ha->pdev->dev, GID_LIST_SIZE, ha->gid_list,
2410 ha->gid_list_dma); 2357 ha->gid_list_dma);
2411 2358
2412
2413 if (ha->init_cb) 2359 if (ha->init_cb)
2414 dma_free_coherent(&ha->pdev->dev, ha->init_cb_size, 2360 dma_free_coherent(&ha->pdev->dev, ha->init_cb_size,
2415 ha->init_cb, ha->init_cb_dma); 2361 ha->init_cb, ha->init_cb_dma);
@@ -2428,6 +2374,8 @@ qla2x00_mem_free(struct qla_hw_data *ha)
2428 ha->ms_iocb_dma = 0; 2374 ha->ms_iocb_dma = 0;
2429 ha->init_cb = NULL; 2375 ha->init_cb = NULL;
2430 ha->init_cb_dma = 0; 2376 ha->init_cb_dma = 0;
2377 ha->ex_init_cb = NULL;
2378 ha->ex_init_cb_dma = 0;
2431 2379
2432 ha->s_dma_pool = NULL; 2380 ha->s_dma_pool = NULL;
2433 2381
@@ -2914,19 +2862,11 @@ qla2x00_timer(scsi_qla_host_t *vha)
2914 spin_unlock_irqrestore(&ha->hardware_lock, 2862 spin_unlock_irqrestore(&ha->hardware_lock,
2915 cpu_flags); 2863 cpu_flags);
2916 } 2864 }
2917 set_bit(ABORT_QUEUES_NEEDED, &vha->dpc_flags);
2918 start_dpc++; 2865 start_dpc++;
2919 } 2866 }
2920 2867
2921 /* if the loop has been down for 4 minutes, reinit adapter */ 2868 /* if the loop has been down for 4 minutes, reinit adapter */
2922 if (atomic_dec_and_test(&vha->loop_down_timer) != 0) { 2869 if (atomic_dec_and_test(&vha->loop_down_timer) != 0) {
2923 DEBUG(printk("scsi(%ld): Loop down exceed 4 mins - "
2924 "restarting queues.\n",
2925 vha->host_no));
2926
2927 set_bit(RESTART_QUEUES_NEEDED, &vha->dpc_flags);
2928 start_dpc++;
2929
2930 if (!(vha->device_flags & DFLG_NO_CABLE) && 2870 if (!(vha->device_flags & DFLG_NO_CABLE) &&
2931 !vha->vp_idx) { 2871 !vha->vp_idx) {
2932 DEBUG(printk("scsi(%ld): Loop down - " 2872 DEBUG(printk("scsi(%ld): Loop down - "
@@ -3053,6 +2993,8 @@ qla2x00_release_firmware(void)
3053static pci_ers_result_t 2993static pci_ers_result_t
3054qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state) 2994qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
3055{ 2995{
2996 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev);
2997
3056 switch (state) { 2998 switch (state) {
3057 case pci_channel_io_normal: 2999 case pci_channel_io_normal:
3058 return PCI_ERS_RESULT_CAN_RECOVER; 3000 return PCI_ERS_RESULT_CAN_RECOVER;
@@ -3060,7 +3002,7 @@ qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
3060 pci_disable_device(pdev); 3002 pci_disable_device(pdev);
3061 return PCI_ERS_RESULT_NEED_RESET; 3003 return PCI_ERS_RESULT_NEED_RESET;
3062 case pci_channel_io_perm_failure: 3004 case pci_channel_io_perm_failure:
3063 qla2x00_remove_one(pdev); 3005 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);
3064 return PCI_ERS_RESULT_DISCONNECT; 3006 return PCI_ERS_RESULT_DISCONNECT;
3065 } 3007 }
3066 return PCI_ERS_RESULT_NEED_RESET; 3008 return PCI_ERS_RESULT_NEED_RESET;
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c
index 284827926ef..152ecfc26cd 100644
--- a/drivers/scsi/qla2xxx/qla_sup.c
+++ b/drivers/scsi/qla2xxx/qla_sup.c
@@ -612,8 +612,8 @@ qla2xxx_find_flt_start(scsi_qla_host_t *vha, uint32_t *start)
612 612
613 /* Good data. Use specified location. */ 613 /* Good data. Use specified location. */
614 loc = locations[1]; 614 loc = locations[1];
615 *start = le16_to_cpu(fltl->start_hi) << 16 | 615 *start = (le16_to_cpu(fltl->start_hi) << 16 |
616 le16_to_cpu(fltl->start_lo); 616 le16_to_cpu(fltl->start_lo)) >> 2;
617end: 617end:
618 DEBUG2(qla_printk(KERN_DEBUG, ha, "FLTL[%s] = 0x%x.\n", loc, *start)); 618 DEBUG2(qla_printk(KERN_DEBUG, ha, "FLTL[%s] = 0x%x.\n", loc, *start));
619 return QLA_SUCCESS; 619 return QLA_SUCCESS;
@@ -629,6 +629,14 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
629 { FA_BOOT_CODE_ADDR, FA_BOOT_CODE_ADDR, FA_BOOT_CODE_ADDR_81 }; 629 { FA_BOOT_CODE_ADDR, FA_BOOT_CODE_ADDR, FA_BOOT_CODE_ADDR_81 };
630 const uint32_t def_vpd_nvram[] = 630 const uint32_t def_vpd_nvram[] =
631 { FA_VPD_NVRAM_ADDR, FA_VPD_NVRAM_ADDR, FA_VPD_NVRAM_ADDR_81 }; 631 { FA_VPD_NVRAM_ADDR, FA_VPD_NVRAM_ADDR, FA_VPD_NVRAM_ADDR_81 };
632 const uint32_t def_vpd0[] =
633 { 0, 0, FA_VPD0_ADDR_81 };
634 const uint32_t def_vpd1[] =
635 { 0, 0, FA_VPD1_ADDR_81 };
636 const uint32_t def_nvram0[] =
637 { 0, 0, FA_NVRAM0_ADDR_81 };
638 const uint32_t def_nvram1[] =
639 { 0, 0, FA_NVRAM1_ADDR_81 };
632 const uint32_t def_fdt[] = 640 const uint32_t def_fdt[] =
633 { FA_FLASH_DESCR_ADDR_24, FA_FLASH_DESCR_ADDR, 641 { FA_FLASH_DESCR_ADDR_24, FA_FLASH_DESCR_ADDR,
634 FA_FLASH_DESCR_ADDR_81 }; 642 FA_FLASH_DESCR_ADDR_81 };
@@ -693,6 +701,20 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
693 break; 701 break;
694 case FLT_REG_VPD_0: 702 case FLT_REG_VPD_0:
695 ha->flt_region_vpd_nvram = start; 703 ha->flt_region_vpd_nvram = start;
704 if (!(PCI_FUNC(ha->pdev->devfn) & 1))
705 ha->flt_region_vpd = start;
706 break;
707 case FLT_REG_VPD_1:
708 if (PCI_FUNC(ha->pdev->devfn) & 1)
709 ha->flt_region_vpd = start;
710 break;
711 case FLT_REG_NVRAM_0:
712 if (!(PCI_FUNC(ha->pdev->devfn) & 1))
713 ha->flt_region_nvram = start;
714 break;
715 case FLT_REG_NVRAM_1:
716 if (PCI_FUNC(ha->pdev->devfn) & 1)
717 ha->flt_region_nvram = start;
696 break; 718 break;
697 case FLT_REG_FDT: 719 case FLT_REG_FDT:
698 ha->flt_region_fdt = start; 720 ha->flt_region_fdt = start;
@@ -722,13 +744,18 @@ no_flash_data:
722 ha->flt_region_fw = def_fw[def]; 744 ha->flt_region_fw = def_fw[def];
723 ha->flt_region_boot = def_boot[def]; 745 ha->flt_region_boot = def_boot[def];
724 ha->flt_region_vpd_nvram = def_vpd_nvram[def]; 746 ha->flt_region_vpd_nvram = def_vpd_nvram[def];
747 ha->flt_region_vpd = !(PCI_FUNC(ha->pdev->devfn) & 1) ?
748 def_vpd0[def]: def_vpd1[def];
749 ha->flt_region_nvram = !(PCI_FUNC(ha->pdev->devfn) & 1) ?
750 def_nvram0[def]: def_nvram1[def];
725 ha->flt_region_fdt = def_fdt[def]; 751 ha->flt_region_fdt = def_fdt[def];
726 ha->flt_region_npiv_conf = !(PCI_FUNC(ha->pdev->devfn) & 1) ? 752 ha->flt_region_npiv_conf = !(PCI_FUNC(ha->pdev->devfn) & 1) ?
727 def_npiv_conf0[def]: def_npiv_conf1[def]; 753 def_npiv_conf0[def]: def_npiv_conf1[def];
728done: 754done:
729 DEBUG2(qla_printk(KERN_DEBUG, ha, "FLT[%s]: boot=0x%x fw=0x%x " 755 DEBUG2(qla_printk(KERN_DEBUG, ha, "FLT[%s]: boot=0x%x fw=0x%x "
730 "vpd_nvram=0x%x fdt=0x%x flt=0x%x npiv=0x%x.\n", loc, 756 "vpd_nvram=0x%x vpd=0x%x nvram=0x%x fdt=0x%x flt=0x%x "
731 ha->flt_region_boot, ha->flt_region_fw, ha->flt_region_vpd_nvram, 757 "npiv=0x%x.\n", loc, ha->flt_region_boot, ha->flt_region_fw,
758 ha->flt_region_vpd_nvram, ha->flt_region_vpd, ha->flt_region_nvram,
732 ha->flt_region_fdt, ha->flt_region_flt, ha->flt_region_npiv_conf)); 759 ha->flt_region_fdt, ha->flt_region_flt, ha->flt_region_npiv_conf));
733} 760}
734 761
@@ -931,31 +958,41 @@ done:
931 ha->npiv_info = NULL; 958 ha->npiv_info = NULL;
932} 959}
933 960
934static void 961static int
935qla24xx_unprotect_flash(struct qla_hw_data *ha) 962qla24xx_unprotect_flash(scsi_qla_host_t *vha)
936{ 963{
964 struct qla_hw_data *ha = vha->hw;
937 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; 965 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
938 966
967 if (ha->flags.fac_supported)
968 return qla81xx_fac_do_write_enable(vha, 1);
969
939 /* Enable flash write. */ 970 /* Enable flash write. */
940 WRT_REG_DWORD(&reg->ctrl_status, 971 WRT_REG_DWORD(&reg->ctrl_status,
941 RD_REG_DWORD(&reg->ctrl_status) | CSRX_FLASH_ENABLE); 972 RD_REG_DWORD(&reg->ctrl_status) | CSRX_FLASH_ENABLE);
942 RD_REG_DWORD(&reg->ctrl_status); /* PCI Posting. */ 973 RD_REG_DWORD(&reg->ctrl_status); /* PCI Posting. */
943 974
944 if (!ha->fdt_wrt_disable) 975 if (!ha->fdt_wrt_disable)
945 return; 976 goto done;
946 977
947 /* Disable flash write-protection, first clear SR protection bit */ 978 /* Disable flash write-protection, first clear SR protection bit */
948 qla24xx_write_flash_dword(ha, flash_conf_addr(ha, 0x101), 0); 979 qla24xx_write_flash_dword(ha, flash_conf_addr(ha, 0x101), 0);
949 /* Then write zero again to clear remaining SR bits.*/ 980 /* Then write zero again to clear remaining SR bits.*/
950 qla24xx_write_flash_dword(ha, flash_conf_addr(ha, 0x101), 0); 981 qla24xx_write_flash_dword(ha, flash_conf_addr(ha, 0x101), 0);
982done:
983 return QLA_SUCCESS;
951} 984}
952 985
953static void 986static int
954qla24xx_protect_flash(struct qla_hw_data *ha) 987qla24xx_protect_flash(scsi_qla_host_t *vha)
955{ 988{
956 uint32_t cnt; 989 uint32_t cnt;
990 struct qla_hw_data *ha = vha->hw;
957 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24; 991 struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
958 992
993 if (ha->flags.fac_supported)
994 return qla81xx_fac_do_write_enable(vha, 0);
995
959 if (!ha->fdt_wrt_disable) 996 if (!ha->fdt_wrt_disable)
960 goto skip_wrt_protect; 997 goto skip_wrt_protect;
961 998
@@ -973,6 +1010,26 @@ skip_wrt_protect:
973 WRT_REG_DWORD(&reg->ctrl_status, 1010 WRT_REG_DWORD(&reg->ctrl_status,
974 RD_REG_DWORD(&reg->ctrl_status) & ~CSRX_FLASH_ENABLE); 1011 RD_REG_DWORD(&reg->ctrl_status) & ~CSRX_FLASH_ENABLE);
975 RD_REG_DWORD(&reg->ctrl_status); /* PCI Posting. */ 1012 RD_REG_DWORD(&reg->ctrl_status); /* PCI Posting. */
1013
1014 return QLA_SUCCESS;
1015}
1016
1017static int
1018qla24xx_erase_sector(scsi_qla_host_t *vha, uint32_t fdata)
1019{
1020 struct qla_hw_data *ha = vha->hw;
1021 uint32_t start, finish;
1022
1023 if (ha->flags.fac_supported) {
1024 start = fdata >> 2;
1025 finish = start + (ha->fdt_block_size >> 2) - 1;
1026 return qla81xx_fac_erase_sector(vha, flash_data_addr(ha,
1027 start), flash_data_addr(ha, finish));
1028 }
1029
1030 return qla24xx_write_flash_dword(ha, ha->fdt_erase_cmd,
1031 (fdata & 0xff00) | ((fdata << 16) & 0xff0000) |
1032 ((fdata >> 16) & 0xff));
976} 1033}
977 1034
978static int 1035static int
@@ -987,8 +1044,6 @@ qla24xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
987 void *optrom = NULL; 1044 void *optrom = NULL;
988 struct qla_hw_data *ha = vha->hw; 1045 struct qla_hw_data *ha = vha->hw;
989 1046
990 ret = QLA_SUCCESS;
991
992 /* Prepare burst-capable write on supported ISPs. */ 1047 /* Prepare burst-capable write on supported ISPs. */
993 if ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && !(faddr & 0xfff) && 1048 if ((IS_QLA25XX(ha) || IS_QLA81XX(ha)) && !(faddr & 0xfff) &&
994 dwords > OPTROM_BURST_DWORDS) { 1049 dwords > OPTROM_BURST_DWORDS) {
@@ -1004,7 +1059,12 @@ qla24xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
1004 rest_addr = (ha->fdt_block_size >> 2) - 1; 1059 rest_addr = (ha->fdt_block_size >> 2) - 1;
1005 sec_mask = ~rest_addr; 1060 sec_mask = ~rest_addr;
1006 1061
1007 qla24xx_unprotect_flash(ha); 1062 ret = qla24xx_unprotect_flash(vha);
1063 if (ret != QLA_SUCCESS) {
1064 qla_printk(KERN_WARNING, ha,
1065 "Unable to unprotect flash for update.\n");
1066 goto done;
1067 }
1008 1068
1009 for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) { 1069 for (liter = 0; liter < dwords; liter++, faddr++, dwptr++) {
1010 fdata = (faddr & sec_mask) << 2; 1070 fdata = (faddr & sec_mask) << 2;
@@ -1017,9 +1077,7 @@ qla24xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
1017 ha->fdt_unprotect_sec_cmd, 1077 ha->fdt_unprotect_sec_cmd,
1018 (fdata & 0xff00) | ((fdata << 16) & 1078 (fdata & 0xff00) | ((fdata << 16) &
1019 0xff0000) | ((fdata >> 16) & 0xff)); 1079 0xff0000) | ((fdata >> 16) & 0xff));
1020 ret = qla24xx_write_flash_dword(ha, ha->fdt_erase_cmd, 1080 ret = qla24xx_erase_sector(vha, fdata);
1021 (fdata & 0xff00) |((fdata << 16) &
1022 0xff0000) | ((fdata >> 16) & 0xff));
1023 if (ret != QLA_SUCCESS) { 1081 if (ret != QLA_SUCCESS) {
1024 DEBUG9(qla_printk("Unable to erase sector: " 1082 DEBUG9(qla_printk("Unable to erase sector: "
1025 "address=%x.\n", faddr)); 1083 "address=%x.\n", faddr));
@@ -1073,8 +1131,11 @@ qla24xx_write_flash_data(scsi_qla_host_t *vha, uint32_t *dwptr, uint32_t faddr,
1073 0xff0000) | ((fdata >> 16) & 0xff)); 1131 0xff0000) | ((fdata >> 16) & 0xff));
1074 } 1132 }
1075 1133
1076 qla24xx_protect_flash(ha); 1134 ret = qla24xx_protect_flash(vha);
1077 1135 if (ret != QLA_SUCCESS)
1136 qla_printk(KERN_WARNING, ha,
1137 "Unable to protect flash after update.\n");
1138done:
1078 if (optrom) 1139 if (optrom)
1079 dma_free_coherent(&ha->pdev->dev, 1140 dma_free_coherent(&ha->pdev->dev,
1080 OPTROM_BURST_SIZE, optrom, optrom_dma); 1141 OPTROM_BURST_SIZE, optrom, optrom_dma);
@@ -1915,7 +1976,7 @@ qla2x00_resume_hba(struct scsi_qla_host *vha)
1915 clear_bit(MBX_UPDATE_FLASH_ACTIVE, &ha->mbx_cmd_flags); 1976 clear_bit(MBX_UPDATE_FLASH_ACTIVE, &ha->mbx_cmd_flags);
1916 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); 1977 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
1917 qla2xxx_wake_dpc(vha); 1978 qla2xxx_wake_dpc(vha);
1918 qla2x00_wait_for_hba_online(vha); 1979 qla2x00_wait_for_chip_reset(vha);
1919 scsi_unblock_requests(vha->host); 1980 scsi_unblock_requests(vha->host);
1920} 1981}
1921 1982
@@ -2206,11 +2267,7 @@ qla24xx_write_optrom_data(struct scsi_qla_host *vha, uint8_t *buf,
2206 rval = qla24xx_write_flash_data(vha, (uint32_t *)buf, offset >> 2, 2267 rval = qla24xx_write_flash_data(vha, (uint32_t *)buf, offset >> 2,
2207 length >> 2); 2268 length >> 2);
2208 2269
2209 /* Resume HBA -- RISC reset needed. */
2210 clear_bit(MBX_UPDATE_FLASH_ACTIVE, &ha->mbx_cmd_flags); 2270 clear_bit(MBX_UPDATE_FLASH_ACTIVE, &ha->mbx_cmd_flags);
2211 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
2212 qla2xxx_wake_dpc(vha);
2213 qla2x00_wait_for_hba_online(vha);
2214 scsi_unblock_requests(vha->host); 2271 scsi_unblock_requests(vha->host);
2215 2272
2216 return rval; 2273 return rval;
@@ -2518,7 +2575,7 @@ qla24xx_get_flash_version(scsi_qla_host_t *vha, void *mbuf)
2518 dcode = mbuf; 2575 dcode = mbuf;
2519 2576
2520 /* Begin with first PCI expansion ROM header. */ 2577 /* Begin with first PCI expansion ROM header. */
2521 pcihdr = ha->flt_region_boot; 2578 pcihdr = ha->flt_region_boot << 2;
2522 last_image = 1; 2579 last_image = 1;
2523 do { 2580 do {
2524 /* Verify PCI expansion ROM header. */ 2581 /* Verify PCI expansion ROM header. */
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
index a772eab2f0e..19d1afc3a34 100644
--- a/drivers/scsi/qla2xxx/qla_version.h
+++ b/drivers/scsi/qla2xxx/qla_version.h
@@ -7,9 +7,9 @@
7/* 7/*
8 * Driver version 8 * Driver version
9 */ 9 */
10#define QLA2XXX_VERSION "8.03.00-k4" 10#define QLA2XXX_VERSION "8.03.01-k1"
11 11
12#define QLA_DRIVER_MAJOR_VER 8 12#define QLA_DRIVER_MAJOR_VER 8
13#define QLA_DRIVER_MINOR_VER 3 13#define QLA_DRIVER_MINOR_VER 3
14#define QLA_DRIVER_PATCH_VER 0 14#define QLA_DRIVER_PATCH_VER 1
15#define QLA_DRIVER_BETA_VER 0 15#define QLA_DRIVER_BETA_VER 0
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c
index 69d6ad862b6..fa34b92850a 100644
--- a/drivers/scsi/qlogicpti.c
+++ b/drivers/scsi/qlogicpti.c
@@ -28,6 +28,7 @@
28#include <linux/dma-mapping.h> 28#include <linux/dma-mapping.h>
29#include <linux/of.h> 29#include <linux/of.h>
30#include <linux/of_device.h> 30#include <linux/of_device.h>
31#include <linux/firmware.h>
31 32
32#include <asm/byteorder.h> 33#include <asm/byteorder.h>
33 34
@@ -53,8 +54,6 @@
53 54
54#define DEFAULT_LOOP_COUNT 10000 55#define DEFAULT_LOOP_COUNT 10000
55 56
56#include "qlogicpti_asm.c"
57
58static struct qlogicpti *qptichain = NULL; 57static struct qlogicpti *qptichain = NULL;
59static DEFINE_SPINLOCK(qptichain_lock); 58static DEFINE_SPINLOCK(qptichain_lock);
60 59
@@ -465,16 +464,32 @@ static int qlogicpti_reset_hardware(struct Scsi_Host *host)
465 464
466static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti) 465static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
467{ 466{
467 const struct firmware *fw;
468 const char fwname[] = "qlogic/isp1000.bin";
469 const __le16 *fw_data;
468 struct Scsi_Host *host = qpti->qhost; 470 struct Scsi_Host *host = qpti->qhost;
469 unsigned short csum = 0; 471 unsigned short csum = 0;
470 unsigned short param[6]; 472 unsigned short param[6];
471 unsigned short *risc_code, risc_code_addr, risc_code_length; 473 unsigned short risc_code_addr, risc_code_length;
474 int err;
472 unsigned long flags; 475 unsigned long flags;
473 int i, timeout; 476 int i, timeout;
474 477
475 risc_code = &sbus_risc_code01[0]; 478 err = request_firmware(&fw, fwname, &qpti->op->dev);
479 if (err) {
480 printk(KERN_ERR "Failed to load image \"%s\" err %d\n",
481 fwname, err);
482 return err;
483 }
484 if (fw->size % 2) {
485 printk(KERN_ERR "Bogus length %zu in image \"%s\"\n",
486 fw->size, fwname);
487 err = -EINVAL;
488 goto outfirm;
489 }
490 fw_data = (const __le16 *)&fw->data[0];
476 risc_code_addr = 0x1000; /* all f/w modules load at 0x1000 */ 491 risc_code_addr = 0x1000; /* all f/w modules load at 0x1000 */
477 risc_code_length = sbus_risc_code_length01; 492 risc_code_length = fw->size / 2;
478 493
479 spin_lock_irqsave(host->host_lock, flags); 494 spin_lock_irqsave(host->host_lock, flags);
480 495
@@ -482,12 +497,12 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
482 * afterwards via the mailbox commands. 497 * afterwards via the mailbox commands.
483 */ 498 */
484 for (i = 0; i < risc_code_length; i++) 499 for (i = 0; i < risc_code_length; i++)
485 csum += risc_code[i]; 500 csum += __le16_to_cpu(fw_data[i]);
486 if (csum) { 501 if (csum) {
487 spin_unlock_irqrestore(host->host_lock, flags);
488 printk(KERN_EMERG "qlogicpti%d: Aieee, firmware checksum failed!", 502 printk(KERN_EMERG "qlogicpti%d: Aieee, firmware checksum failed!",
489 qpti->qpti_id); 503 qpti->qpti_id);
490 return 1; 504 err = 1;
505 goto out;
491 } 506 }
492 sbus_writew(SBUS_CTRL_RESET, qpti->qregs + SBUS_CTRL); 507 sbus_writew(SBUS_CTRL_RESET, qpti->qregs + SBUS_CTRL);
493 sbus_writew((DMA_CTRL_CCLEAR | DMA_CTRL_CIRQ), qpti->qregs + CMD_DMA_CTRL); 508 sbus_writew((DMA_CTRL_CCLEAR | DMA_CTRL_CIRQ), qpti->qregs + CMD_DMA_CTRL);
@@ -496,9 +511,9 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
496 while (--timeout && (sbus_readw(qpti->qregs + SBUS_CTRL) & SBUS_CTRL_RESET)) 511 while (--timeout && (sbus_readw(qpti->qregs + SBUS_CTRL) & SBUS_CTRL_RESET))
497 udelay(20); 512 udelay(20);
498 if (!timeout) { 513 if (!timeout) {
499 spin_unlock_irqrestore(host->host_lock, flags);
500 printk(KERN_EMERG "qlogicpti%d: Cannot reset the ISP.", qpti->qpti_id); 514 printk(KERN_EMERG "qlogicpti%d: Cannot reset the ISP.", qpti->qpti_id);
501 return 1; 515 err = 1;
516 goto out;
502 } 517 }
503 518
504 sbus_writew(HCCTRL_RESET, qpti->qregs + HCCTRL); 519 sbus_writew(HCCTRL_RESET, qpti->qregs + HCCTRL);
@@ -536,21 +551,21 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
536 if (qlogicpti_mbox_command(qpti, param, 1)) { 551 if (qlogicpti_mbox_command(qpti, param, 1)) {
537 printk(KERN_EMERG "qlogicpti%d: Cannot stop firmware for reload.\n", 552 printk(KERN_EMERG "qlogicpti%d: Cannot stop firmware for reload.\n",
538 qpti->qpti_id); 553 qpti->qpti_id);
539 spin_unlock_irqrestore(host->host_lock, flags); 554 err = 1;
540 return 1; 555 goto out;
541 } 556 }
542 557
543 /* Load it up.. */ 558 /* Load it up.. */
544 for (i = 0; i < risc_code_length; i++) { 559 for (i = 0; i < risc_code_length; i++) {
545 param[0] = MBOX_WRITE_RAM_WORD; 560 param[0] = MBOX_WRITE_RAM_WORD;
546 param[1] = risc_code_addr + i; 561 param[1] = risc_code_addr + i;
547 param[2] = risc_code[i]; 562 param[2] = __le16_to_cpu(fw_data[i]);
548 if (qlogicpti_mbox_command(qpti, param, 1) || 563 if (qlogicpti_mbox_command(qpti, param, 1) ||
549 param[0] != MBOX_COMMAND_COMPLETE) { 564 param[0] != MBOX_COMMAND_COMPLETE) {
550 printk("qlogicpti%d: Firmware dload failed, I'm bolixed!\n", 565 printk("qlogicpti%d: Firmware dload failed, I'm bolixed!\n",
551 qpti->qpti_id); 566 qpti->qpti_id);
552 spin_unlock_irqrestore(host->host_lock, flags); 567 err = 1;
553 return 1; 568 goto out;
554 } 569 }
555 } 570 }
556 571
@@ -569,8 +584,8 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
569 (param[0] != MBOX_COMMAND_COMPLETE)) { 584 (param[0] != MBOX_COMMAND_COMPLETE)) {
570 printk(KERN_EMERG "qlogicpti%d: New firmware csum failure!\n", 585 printk(KERN_EMERG "qlogicpti%d: New firmware csum failure!\n",
571 qpti->qpti_id); 586 qpti->qpti_id);
572 spin_unlock_irqrestore(host->host_lock, flags); 587 err = 1;
573 return 1; 588 goto out;
574 } 589 }
575 590
576 /* Start using newly downloaded firmware. */ 591 /* Start using newly downloaded firmware. */
@@ -583,8 +598,8 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
583 (param[0] != MBOX_COMMAND_COMPLETE)) { 598 (param[0] != MBOX_COMMAND_COMPLETE)) {
584 printk(KERN_EMERG "qlogicpti%d: AboutFirmware cmd fails.\n", 599 printk(KERN_EMERG "qlogicpti%d: AboutFirmware cmd fails.\n",
585 qpti->qpti_id); 600 qpti->qpti_id);
586 spin_unlock_irqrestore(host->host_lock, flags); 601 err = 1;
587 return 1; 602 goto out;
588 } 603 }
589 604
590 /* Snag the major and minor revisions from the result. */ 605 /* Snag the major and minor revisions from the result. */
@@ -599,8 +614,8 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
599 (param[0] != MBOX_COMMAND_COMPLETE)) { 614 (param[0] != MBOX_COMMAND_COMPLETE)) {
600 printk(KERN_EMERG "qlogicpti%d: could not set clock rate.\n", 615 printk(KERN_EMERG "qlogicpti%d: could not set clock rate.\n",
601 qpti->qpti_id); 616 qpti->qpti_id);
602 spin_unlock_irqrestore(host->host_lock, flags); 617 err = 1;
603 return 1; 618 goto out;
604 } 619 }
605 620
606 if (qpti->is_pti != 0) { 621 if (qpti->is_pti != 0) {
@@ -616,8 +631,11 @@ static int __devinit qlogicpti_load_firmware(struct qlogicpti *qpti)
616 qlogicpti_mbox_command(qpti, param, 1); 631 qlogicpti_mbox_command(qpti, param, 1);
617 } 632 }
618 633
634out:
619 spin_unlock_irqrestore(host->host_lock, flags); 635 spin_unlock_irqrestore(host->host_lock, flags);
620 return 0; 636outfirm:
637 release_firmware(fw);
638 return err;
621} 639}
622 640
623static int qlogicpti_verify_tmon(struct qlogicpti *qpti) 641static int qlogicpti_verify_tmon(struct qlogicpti *qpti)
@@ -1458,6 +1476,7 @@ MODULE_DESCRIPTION("QlogicISP SBUS driver");
1458MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); 1476MODULE_AUTHOR("David S. Miller (davem@davemloft.net)");
1459MODULE_LICENSE("GPL"); 1477MODULE_LICENSE("GPL");
1460MODULE_VERSION("2.1"); 1478MODULE_VERSION("2.1");
1479MODULE_FIRMWARE("qlogic/isp1000.bin");
1461 1480
1462module_init(qpti_init); 1481module_init(qpti_init);
1463module_exit(qpti_exit); 1482module_exit(qpti_exit);
diff --git a/drivers/scsi/qlogicpti_asm.c b/drivers/scsi/qlogicpti_asm.c
deleted file mode 100644
index 19aa84f4601..00000000000
--- a/drivers/scsi/qlogicpti_asm.c
+++ /dev/null
@@ -1,1160 +0,0 @@
1/* Version 1.31.00 ISP1000 Initiator RISC firmware */
2unsigned short sbus_risc_code01[] __devinitdata = {
3 0x0078, 0x1030, 0x0000, 0x2419, 0x0000, 0x12ff, 0x2043, 0x4f50,
4 0x5952, 0x4947, 0x4854, 0x2031, 0x3939, 0x312c, 0x3139, 0x3932,
5 0x2c31, 0x3939, 0x332c, 0x3139, 0x3934, 0x2051, 0x4c4f, 0x4749,
6 0x4320, 0x434f, 0x5250, 0x4f52, 0x4154, 0x494f, 0x4e00, 0x2049,
7 0x5350, 0x3130, 0x3030, 0x2046, 0x6972, 0x6d77, 0x6172, 0x6520,
8 0x2056, 0x6572, 0x7369, 0x6f6e, 0x2030, 0x312e, 0x3331, 0x2020,
9 0x20b9, 0x1212, 0x20c1, 0x0008, 0x2071, 0x0010, 0x70c3, 0x0004,
10 0x20c9, 0x3fff, 0x2089, 0x10c8, 0x70c7, 0x4953, 0x70cb, 0x5020,
11 0x70cf, 0x2020, 0x70d3, 0x0001, 0x3f00, 0x70d6, 0x2031, 0x0030,
12 0x2079, 0x3500, 0x7863, 0x0000, 0x2fa0, 0x2009, 0x0327, 0x2011,
13 0x0000, 0x20a9, 0x0040, 0x42a4, 0x8109, 0x00c0, 0x1051, 0x789b,
14 0x0101, 0x780b, 0x0002, 0x780f, 0x0002, 0x784f, 0x0bb8, 0x2069,
15 0x3540, 0x00a8, 0x106a, 0x681b, 0x003c, 0x2009, 0x1313, 0x21b8,
16 0x0078, 0x106c, 0x681b, 0x0028, 0x6807, 0x0007, 0x680b, 0x00fa,
17 0x680f, 0x0008, 0x6813, 0x0005, 0x681f, 0x0000, 0x6823, 0x0006,
18 0x6817, 0x0008, 0x6827, 0x0000, 0x2069, 0x3600, 0x2011, 0x0020,
19 0x2009, 0x0010, 0x680b, 0x0c19, 0x680f, 0x0019, 0x6803, 0xdd00,
20 0x6807, 0x001a, 0x6a1a, 0x2d00, 0xa0e8, 0x0008, 0xa290, 0x0004,
21 0x8109, 0x00c0, 0x1082, 0x2069, 0x3680, 0x20a9, 0x0080, 0x6837,
22 0x0000, 0x680b, 0x0040, 0x6817, 0x0100, 0x681f, 0x0064, 0xade8,
23 0x0010, 0x0070, 0x10a5, 0x0078, 0x1097, 0x1078, 0x1a38, 0x1078,
24 0x2f3a, 0x1078, 0x1681, 0x1078, 0x33ba, 0x3200, 0xa085, 0x000d,
25 0x2090, 0x70c3, 0x0000, 0x0090, 0x10bc, 0x70c0, 0xa086, 0x0002,
26 0x00c0, 0x10bc, 0x1078, 0x11ba, 0x1078, 0x10ec, 0x1078, 0x1817,
27 0x1078, 0x19a8, 0x1078, 0x327d, 0x1078, 0x177d, 0x0078, 0x10bc,
28 0x10d0, 0x10d2, 0x1bc3, 0x1bc3, 0x2f98, 0x2f98, 0x1bc3, 0x1bc3,
29 0x0078, 0x10d0, 0x0078, 0x10d2, 0x0078, 0x10d4, 0x0078, 0x10d6,
30 0x7008, 0x800c, 0x00c8, 0x10e7, 0x7007, 0x0002, 0xa08c, 0x000c,
31 0x00c0, 0x10e8, 0x8004, 0x8004, 0x00c8, 0x10e7, 0x087a, 0x097a,
32 0x70c3, 0x4002, 0x0078, 0x11bd, 0x7814, 0xa005, 0x00c0, 0x10f4,
33 0x0010, 0x1130, 0x0078, 0x112f, 0x2009, 0x3568, 0x2104, 0xa005,
34 0x00c0, 0x112f, 0x7814, 0xa086, 0x0001, 0x00c0, 0x1101, 0x1078,
35 0x1536, 0x7817, 0x0000, 0x2009, 0x356f, 0x2104, 0xa065, 0x0040,
36 0x111d, 0x2009, 0x356a, 0x211c, 0x8108, 0x2114, 0x8108, 0x2104,
37 0xa210, 0xa399, 0x0000, 0x2009, 0x001c, 0x6083, 0x0103, 0x1078,
38 0x1611, 0x00c0, 0x1129, 0x1078, 0x1678, 0x2009, 0x356f, 0x200b,
39 0x0000, 0x2009, 0x3569, 0x2104, 0x200b, 0x0000, 0xa005, 0x0040,
40 0x112d, 0x2001, 0x4005, 0x0078, 0x11bc, 0x0078, 0x11ba, 0x007c,
41 0x2061, 0x0000, 0x6018, 0xa084, 0x0001, 0x0040, 0x1138, 0x007c,
42 0x70c3, 0x0000, 0x70c7, 0x0000, 0x70cb, 0x0000, 0x70cf, 0x0000,
43 0x70c0, 0xa0bc, 0xffc0, 0x00c0, 0x1188, 0x2038, 0x0079, 0x1148,
44 0x11ba, 0x1205, 0x11d3, 0x1205, 0x1256, 0x1256, 0x11ca, 0x1590,
45 0x1261, 0x11c6, 0x11d7, 0x11d9, 0x11db, 0x11dd, 0x1595, 0x11c6,
46 0x1267, 0x1283, 0x1544, 0x158a, 0x11df, 0x146b, 0x148d, 0x14a7,
47 0x14d0, 0x1424, 0x1432, 0x1446, 0x145a, 0x12ef, 0x11c6, 0x129f,
48 0x12a6, 0x12ab, 0x12b0, 0x12b6, 0x12bb, 0x12c0, 0x12c5, 0x12ca,
49 0x12ce, 0x12e3, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x12fb,
50 0x1304, 0x1313, 0x1339, 0x1343, 0x134a, 0x1370, 0x137f, 0x138e,
51 0x13a0, 0x1409, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x1419,
52 0xa0bc, 0xffa0, 0x00c0, 0x11c6, 0x2038, 0xa084, 0x001f, 0x0079,
53 0x1191, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6,
54 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6,
55 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6, 0x11c6,
56 0x11c6, 0x11c6, 0x11c6, 0x15ed, 0x15f7, 0x15fb, 0x1609, 0x11c6,
57 0x11c6, 0x72ca, 0x71c6, 0x2001, 0x4006, 0x0078, 0x11bc, 0x73ce,
58 0x72ca, 0x71c6, 0x2001, 0x4000, 0x70c2, 0x2061, 0x0000, 0x601b,
59 0x0001, 0x2091, 0x5000, 0x2091, 0x4080, 0x007c, 0x70c3, 0x4001,
60 0x0078, 0x11bd, 0x2099, 0x0041, 0x20a1, 0x0041, 0x20a9, 0x0005,
61 0x53a3, 0x0078, 0x11ba, 0x70c4, 0x70c3, 0x0004, 0x007a, 0x0078,
62 0x11ba, 0x0078, 0x11ba, 0x0078, 0x11ba, 0x0078, 0x11ba, 0x2091,
63 0x8000, 0x70c3, 0x0000, 0x70c7, 0x4953, 0x70cb, 0x5020, 0x70cf,
64 0x2020, 0x70d3, 0x0001, 0x3f00, 0x70d6, 0x2079, 0x0000, 0x781b,
65 0x0001, 0x2031, 0x0030, 0x2059, 0x1000, 0x2029, 0x0457, 0x2051,
66 0x0470, 0x2061, 0x0472, 0x20b9, 0xffff, 0x20c1, 0x0000, 0x2091,
67 0x5000, 0x2091, 0x4080, 0x0078, 0x0455, 0x71d0, 0x72c8, 0x73cc,
68 0x70c4, 0x20a0, 0x2098, 0x2031, 0x0030, 0x81ff, 0x0040, 0x11ba,
69 0x7007, 0x0004, 0x731a, 0x721e, 0x2051, 0x0012, 0x2049, 0x1234,
70 0x2041, 0x11ba, 0x7003, 0x0002, 0xa786, 0x0001, 0x00c0, 0x1226,
71 0x2049, 0x1242, 0x2041, 0x124e, 0x7003, 0x0003, 0x7017, 0x0000,
72 0x810b, 0x7112, 0x00c8, 0x122e, 0x7017, 0x0001, 0x7007, 0x0001,
73 0xa786, 0x0001, 0x0040, 0x1242, 0x700c, 0xa084, 0x007f, 0x8004,
74 0x2009, 0x0020, 0xa102, 0x0942, 0x094a, 0x20a8, 0x26a0, 0x53a6,
75 0x0078, 0x10d8, 0x700c, 0xa084, 0x007f, 0x0040, 0x1242, 0x80ac,
76 0x0048, 0x1242, 0x2698, 0x53a5, 0x0078, 0x10d8, 0x700c, 0xa084,
77 0x007f, 0x80ac, 0x2698, 0x53a5, 0x0078, 0x11ba, 0x71c4, 0x70c8,
78 0x2114, 0xa79e, 0x0004, 0x00c0, 0x125e, 0x200a, 0x72ca, 0x0078,
79 0x11b9, 0x70c7, 0x0001, 0x70cb, 0x001f, 0x0078, 0x11ba, 0x70c4,
80 0x72c8, 0x73cc, 0x74d0, 0x70c6, 0x72ca, 0x73ce, 0x74d2, 0xa005,
81 0x0040, 0x127d, 0x8001, 0x7872, 0x7a7a, 0x7b7e, 0x7c76, 0x7898,
82 0xa084, 0xfffc, 0x789a, 0x0078, 0x1281, 0x7898, 0xa085, 0x0001,
83 0x789a, 0x0078, 0x11ba, 0x70c4, 0x72c8, 0x73cc, 0x74d4, 0x70c6,
84 0x72ca, 0x73ce, 0x74d6, 0xa005, 0x0040, 0x1299, 0x8001, 0x7886,
85 0x7a8e, 0x7b92, 0x7c8a, 0x7898, 0xa084, 0xfcff, 0x789a, 0x0078,
86 0x129d, 0x7898, 0xa085, 0x0100, 0x789a, 0x0078, 0x11ba, 0x2009,
87 0x3559, 0x210c, 0x2011, 0x0410, 0x0078, 0x11b8, 0x2009, 0x3541,
88 0x210c, 0x0078, 0x11b9, 0x2009, 0x3542, 0x210c, 0x0078, 0x11b9,
89 0x2061, 0x3540, 0x610c, 0x6210, 0x0078, 0x11b8, 0x2009, 0x3545,
90 0x210c, 0x0078, 0x11b9, 0x2009, 0x3546, 0x210c, 0x0078, 0x11b9,
91 0x2009, 0x3547, 0x210c, 0x0078, 0x11b9, 0x2009, 0x3548, 0x210c,
92 0x0078, 0x11b9, 0x7908, 0x7a0c, 0x0078, 0x11b8, 0x71c4, 0x8107,
93 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa0e8, 0x3600, 0x6a00,
94 0x6804, 0xa084, 0x0008, 0x0040, 0x12e0, 0x6b08, 0x0078, 0x12e1,
95 0x6b0c, 0x0078, 0x11b7, 0x77c4, 0x1078, 0x1692, 0x2091, 0x8000,
96 0x6b1c, 0x6a14, 0x2091, 0x8001, 0x2708, 0x0078, 0x11b7, 0x77c4,
97 0x1078, 0x1692, 0x2091, 0x8000, 0x6908, 0x6a18, 0x6b10, 0x2091,
98 0x8001, 0x0078, 0x11b7, 0x71c4, 0xa182, 0x0010, 0x00c8, 0x11b2,
99 0x1078, 0x1abc, 0x0078, 0x11b7, 0x71c4, 0xa182, 0x0010, 0x00c8,
100 0x11b2, 0x2011, 0x3541, 0x2204, 0x007e, 0x2112, 0x1078, 0x1a75,
101 0x017f, 0x0078, 0x11b9, 0x71c4, 0x2011, 0x1331, 0x20a9, 0x0008,
102 0x2204, 0xa106, 0x0040, 0x1323, 0x8210, 0x0070, 0x1321, 0x0078,
103 0x1318, 0x0078, 0x11b2, 0xa292, 0x1331, 0x027e, 0x2011, 0x3542,
104 0x2204, 0x2112, 0x017f, 0x007e, 0x1078, 0x1a81, 0x017f, 0x0078,
105 0x11b9, 0x03e8, 0x00fa, 0x01f4, 0x02ee, 0x0064, 0x0019, 0x0032,
106 0x004b, 0x2061, 0x3540, 0x610c, 0x6210, 0x70c4, 0x600e, 0x70c8,
107 0x6012, 0x0078, 0x11b8, 0x2061, 0x3540, 0x6114, 0x70c4, 0x6016,
108 0x0078, 0x11b9, 0x71c4, 0x2011, 0x0004, 0x2019, 0x1212, 0xa186,
109 0x0028, 0x0040, 0x1363, 0x2011, 0x0005, 0x2019, 0x1212, 0xa186,
110 0x0032, 0x0040, 0x1363, 0x2011, 0x0006, 0x2019, 0x1313, 0xa186,
111 0x003c, 0x00c0, 0x11b2, 0x2061, 0x3540, 0x6018, 0x007e, 0x611a,
112 0x23b8, 0x1078, 0x1a92, 0x1078, 0x33ba, 0x017f, 0x0078, 0x11b9,
113 0x71c4, 0xa184, 0xffcf, 0x00c0, 0x11b2, 0x2011, 0x3547, 0x2204,
114 0x2112, 0x007e, 0x1078, 0x1ab4, 0x017f, 0x0078, 0x11b9, 0x71c4,
115 0xa182, 0x0010, 0x00c8, 0x11b2, 0x2011, 0x3548, 0x2204, 0x007e,
116 0x2112, 0x1078, 0x1aa3, 0x017f, 0x0078, 0x11b9, 0x71c4, 0x72c8,
117 0xa184, 0xfffd, 0x00c0, 0x11b1, 0xa284, 0xfffd, 0x00c0, 0x11b1,
118 0x2100, 0x7908, 0x780a, 0x2200, 0x7a0c, 0x780e, 0x0078, 0x11b8,
119 0x71c4, 0x8107, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa0e8,
120 0x3600, 0x2019, 0x0000, 0x72c8, 0x6800, 0x007e, 0xa226, 0x0040,
121 0x13cf, 0x6a02, 0xa484, 0x2000, 0x0040, 0x13b8, 0xa39d, 0x0010,
122 0xa484, 0x1000, 0x0040, 0x13be, 0xa39d, 0x0008, 0xa484, 0x4000,
123 0x0040, 0x13cf, 0x810f, 0xa284, 0x4000, 0x0040, 0x13cb, 0x1078,
124 0x1ad6, 0x0078, 0x13cf, 0x1078, 0x1ac8, 0x0078, 0x13cf, 0x72cc,
125 0x82ff, 0x0040, 0x1401, 0x6808, 0xa206, 0x0040, 0x1401, 0xa2a4,
126 0x00ff, 0x2061, 0x3540, 0x6118, 0xa186, 0x0028, 0x0040, 0x13e8,
127 0xa186, 0x0032, 0x0040, 0x13ee, 0xa186, 0x003c, 0x0040, 0x13f4,
128 0xa482, 0x0064, 0x0048, 0x13fe, 0x0078, 0x13f8, 0xa482, 0x0050,
129 0x0048, 0x13fe, 0x0078, 0x13f8, 0xa482, 0x0043, 0x0048, 0x13fe,
130 0x71c4, 0x71c6, 0x027f, 0x72ca, 0x0078, 0x11b3, 0x6a0a, 0xa39d,
131 0x000a, 0x6804, 0xa305, 0x6806, 0x027f, 0x6b0c, 0x71c4, 0x0078,
132 0x11b7, 0x77c4, 0x1078, 0x1692, 0x2091, 0x8000, 0x6a14, 0x6b1c,
133 0x2091, 0x8001, 0x70c8, 0x6816, 0x70cc, 0x681e, 0x2708, 0x0078,
134 0x11b7, 0x71c4, 0x72c8, 0x73cc, 0xa182, 0x0010, 0x00c8, 0x11b2,
135 0x1078, 0x1ae4, 0x0078, 0x11b7, 0x77c4, 0x1078, 0x1692, 0x2091,
136 0x8000, 0x6a08, 0xa295, 0x0002, 0x6a0a, 0x2091, 0x8001, 0x2708,
137 0x0078, 0x11b8, 0x77c4, 0x1078, 0x1692, 0x2091, 0x8000, 0x6a08,
138 0xa294, 0xfff9, 0x6a0a, 0x6804, 0xa005, 0x0040, 0x1441, 0x1078,
139 0x1a19, 0x2091, 0x8001, 0x2708, 0x0078, 0x11b8, 0x77c4, 0x1078,
140 0x1692, 0x2091, 0x8000, 0x6a08, 0xa295, 0x0004, 0x6a0a, 0x6804,
141 0xa005, 0x0040, 0x1455, 0x1078, 0x1a19, 0x2091, 0x8001, 0x2708,
142 0x0078, 0x11b8, 0x77c4, 0x2041, 0x0001, 0x2049, 0x0005, 0x2051,
143 0x0020, 0x2091, 0x8000, 0x1078, 0x169f, 0x2091, 0x8001, 0x2708,
144 0x6a08, 0x0078, 0x11b8, 0x77c4, 0x72c8, 0x73cc, 0x77c6, 0x72ca,
145 0x73ce, 0x1078, 0x1718, 0x00c0, 0x1489, 0x6818, 0xa005, 0x0040,
146 0x1483, 0x2708, 0x1078, 0x1af4, 0x00c0, 0x1483, 0x7817, 0xffff,
147 0x2091, 0x8001, 0x007c, 0x2091, 0x8001, 0x2001, 0x4005, 0x0078,
148 0x11bc, 0x2091, 0x8001, 0x0078, 0x11ba, 0x77c4, 0x77c6, 0x2041,
149 0x0021, 0x2049, 0x0005, 0x2051, 0x0020, 0x2091, 0x8000, 0x1078,
150 0x169f, 0x2061, 0x3540, 0x60a3, 0x0003, 0x67b6, 0x60a7, 0x0000,
151 0x7817, 0xffff, 0x2091, 0x8001, 0x1078, 0x1a19, 0x007c, 0x77c8,
152 0x77ca, 0x77c4, 0x77c6, 0xa7bc, 0xff00, 0x2091, 0x8000, 0x2061,
153 0x3540, 0x60a3, 0x0002, 0x60a7, 0x0000, 0x67b6, 0x7817, 0xffff,
154 0x1078, 0x1a19, 0x2091, 0x8001, 0x2041, 0x0021, 0x2049, 0x0004,
155 0x2051, 0x0010, 0x2091, 0x8000, 0x1078, 0x169f, 0x70c8, 0x6836,
156 0x8738, 0xa784, 0x0007, 0x00c0, 0x14c4, 0x2091, 0x8001, 0x007c,
157 0x7898, 0xa084, 0x0003, 0x00c0, 0x14f4, 0x2039, 0x0000, 0x2041,
158 0x0021, 0x2049, 0x0004, 0x2051, 0x0008, 0x1078, 0x1692, 0x2091,
159 0x8000, 0x6808, 0xa80d, 0x690a, 0x2091, 0x8001, 0x8738, 0xa784,
160 0x0007, 0x00c0, 0x14dd, 0xa7bc, 0xff00, 0x873f, 0x8738, 0x873f,
161 0xa784, 0x0f00, 0x00c0, 0x14dd, 0x2091, 0x8000, 0x2069, 0x0100,
162 0x6830, 0xa084, 0x0040, 0x0040, 0x151d, 0x684b, 0x0004, 0x20a9,
163 0x0014, 0x6848, 0xa084, 0x0004, 0x0040, 0x150a, 0x0070, 0x150a,
164 0x0078, 0x1501, 0x684b, 0x0009, 0x20a9, 0x0014, 0x6848, 0xa084,
165 0x0001, 0x0040, 0x1517, 0x0070, 0x1517, 0x0078, 0x150e, 0x20a9,
166 0x00fa, 0x0070, 0x151d, 0x0078, 0x1519, 0x2079, 0x3500, 0x7817,
167 0x0001, 0x2061, 0x3540, 0x60a3, 0x0001, 0x60a7, 0x0000, 0x60c3,
168 0x000f, 0x7898, 0xa085, 0x0002, 0x789a, 0x6808, 0xa084, 0xfffd,
169 0x680a, 0x681b, 0x0046, 0x2091, 0x8001, 0x007c, 0x7898, 0xa084,
170 0xfffd, 0x789a, 0xa084, 0x0001, 0x00c0, 0x1540, 0x1078, 0x1760,
171 0x71c4, 0x71c6, 0x794a, 0x007c, 0x74c4, 0x73c8, 0x72cc, 0x74c6,
172 0x73ca, 0x72ce, 0x2079, 0x3500, 0x2009, 0x0040, 0x1078, 0x166f,
173 0x0040, 0x1586, 0x1078, 0x163f, 0x0040, 0x155a, 0x1078, 0x1678,
174 0x0078, 0x1586, 0x6010, 0x2091, 0x8001, 0x7817, 0xffff, 0x2009,
175 0x3568, 0x200b, 0x0005, 0x8108, 0x200b, 0x0000, 0x8108, 0x230a,
176 0x8108, 0x220a, 0x8108, 0x240a, 0x8108, 0x200a, 0x8108, 0x200b,
177 0x0000, 0x8108, 0x2c0a, 0xa02e, 0x2530, 0x0e7e, 0x1078, 0x2f13,
178 0x0e7f, 0x6592, 0x65a2, 0x6696, 0x66a6, 0x60ab, 0x0000, 0x60af,
179 0x0000, 0x2091, 0x8001, 0x1078, 0x1a19, 0x007c, 0x70c3, 0x4005,
180 0x0078, 0x11bd, 0x71c4, 0x70c7, 0x0000, 0x7906, 0x0078, 0x11ba,
181 0x71c4, 0x71c6, 0x2168, 0x0078, 0x1597, 0x2069, 0x1000, 0x690c,
182 0xa016, 0x2d04, 0xa210, 0x8d68, 0x8109, 0x00c0, 0x1599, 0xa285,
183 0x0000, 0x00c0, 0x15a7, 0x70c3, 0x4000, 0x0078, 0x15a9, 0x70c3,
184 0x4003, 0x70ca, 0x0078, 0x11bd, 0x71c4, 0x72c8, 0x73cc, 0x2100,
185 0xa184, 0xfffc, 0x00c0, 0x11c6, 0x2100, 0x0079, 0x15b7, 0x15ce,
186 0x15e3, 0x15e5, 0x15e7, 0x70c3, 0x4003, 0x71ce, 0x72d2, 0x73d6,
187 0x0078, 0x15ca, 0x70c3, 0x4000, 0x70cf, 0x0000, 0x70d3, 0x0000,
188 0x70d7, 0x0000, 0x77c6, 0x71ca, 0x0078, 0x11ba, 0x2031, 0x15e9,
189 0x2624, 0x8630, 0x2412, 0x2204, 0xa446, 0x00c0, 0x15bb, 0xa484,
190 0xffff, 0x00c0, 0x15d0, 0x2031, 0x15e9, 0x8210, 0x8319, 0xa384,
191 0xffff, 0x00c0, 0x15d0, 0x0078, 0x15c2, 0x0078, 0x15c2, 0x0078,
192 0x15c2, 0x5555, 0xaaaa, 0xffff, 0x0000, 0x7960, 0x71c6, 0x71c4,
193 0xa182, 0x0003, 0x00c8, 0x11b2, 0x7962, 0x0078, 0x11ba, 0x7960,
194 0x71c6, 0x0078, 0x11ba, 0x7954, 0x71c6, 0x71c4, 0x7956, 0x7958,
195 0x71ca, 0x71c8, 0x795a, 0x795c, 0x71ce, 0x71cc, 0x795e, 0x0078,
196 0x11ba, 0x7954, 0x71c6, 0x7958, 0x71ca, 0x795c, 0x71ce, 0x0078,
197 0x11ba, 0x700c, 0xa084, 0x007f, 0x0040, 0x161d, 0x7007, 0x0004,
198 0x7004, 0xa084, 0x0004, 0x00c0, 0x1618, 0x7017, 0x0000, 0x7112,
199 0x721a, 0x731e, 0x8108, 0x810c, 0x81a9, 0x8c98, 0x20a1, 0x0030,
200 0x6080, 0x20a2, 0x53a6, 0x780c, 0xa085, 0x0000, 0x7002, 0x7007,
201 0x0001, 0x7108, 0x8104, 0x00c8, 0x1631, 0x7007, 0x0002, 0xa184,
202 0x000c, 0x710c, 0xa184, 0x0300, 0x7003, 0x0000, 0x007c, 0x700c,
203 0xa084, 0x007f, 0x0040, 0x164b, 0x7007, 0x0004, 0x7004, 0xa084,
204 0x0004, 0x00c0, 0x1646, 0x7017, 0x0000, 0x7112, 0x721a, 0x731e,
205 0x2099, 0x0030, 0x8108, 0x81ac, 0x780c, 0xa085, 0x0001, 0x7002,
206 0x7007, 0x0001, 0x7008, 0x800c, 0x00c8, 0x165a, 0x7007, 0x0002,
207 0xa08c, 0x000c, 0x00c0, 0x166c, 0x710c, 0xa184, 0x0300, 0x00c0,
208 0x166c, 0x2ca0, 0x53a5, 0xa006, 0x7003, 0x0000, 0x007c, 0x7850,
209 0xa065, 0x0040, 0x1677, 0x2c04, 0x7852, 0x2063, 0x0000, 0x007c,
210 0x0f7e, 0x2079, 0x3500, 0x7850, 0x2062, 0x2c00, 0x7852, 0x0f7f,
211 0x007c, 0x2011, 0x4000, 0x7a52, 0x2019, 0x0410, 0x8319, 0x0040,
212 0x168f, 0xa280, 0x002f, 0x2012, 0x2010, 0x0078, 0x1686, 0x2013,
213 0x0000, 0x007c, 0xa784, 0x0f00, 0x800c, 0xa784, 0x0007, 0x8003,
214 0x8003, 0x8003, 0x8003, 0xa105, 0xa0e8, 0x3680, 0x007c, 0x1078,
215 0x1692, 0x2900, 0x682a, 0x2a00, 0x682e, 0x6808, 0xa084, 0xffef,
216 0xa80d, 0x690a, 0x2009, 0x354f, 0x210c, 0x6804, 0xa005, 0x0040,
217 0x16bc, 0xa116, 0x00c0, 0x16bc, 0x2060, 0x6000, 0x6806, 0x017e,
218 0x200b, 0x0000, 0x0078, 0x16bf, 0x2009, 0x0000, 0x017e, 0x6804,
219 0xa065, 0x0040, 0x16ce, 0x6000, 0x6806, 0x1078, 0x16df, 0x1078,
220 0x17cb, 0x6810, 0x8001, 0x6812, 0x00c0, 0x16bf, 0x017f, 0x6902,
221 0x6906, 0x007c, 0xa065, 0x0040, 0x16de, 0x6098, 0x609b, 0x0000,
222 0x2008, 0x1078, 0x1678, 0x2100, 0x0078, 0x16d2, 0x007c, 0x6003,
223 0x0103, 0x20a9, 0x001c, 0xac80, 0x0004, 0x20a0, 0x2001, 0x0000,
224 0x40a4, 0x6828, 0x6016, 0x682c, 0x601e, 0x007c, 0x0e7e, 0x2071,
225 0x3540, 0x7040, 0xa08c, 0x0080, 0x00c0, 0x16fc, 0xa088, 0x3580,
226 0x2d0a, 0x8000, 0x7042, 0xa006, 0x0e7f, 0x007c, 0x0e7e, 0x2071,
227 0x3540, 0x2009, 0x3580, 0x7240, 0x8221, 0x8211, 0x0048, 0x1716,
228 0x2104, 0x8108, 0xad06, 0x00c0, 0x1705, 0x8119, 0x211e, 0x8108,
229 0x8318, 0x8211, 0x00c8, 0x170e, 0x7442, 0xa006, 0x0e7f, 0x007c,
230 0x1078, 0x1692, 0x2091, 0x8000, 0x6804, 0x781e, 0xa065, 0x0040,
231 0x175f, 0x0078, 0x1729, 0x2c00, 0x781e, 0x6000, 0xa065, 0x0040,
232 0x175f, 0x600c, 0xa306, 0x00c0, 0x1723, 0x6008, 0xa206, 0x00c0,
233 0x1723, 0x2c28, 0x2001, 0x354f, 0x2004, 0xac06, 0x0040, 0x175f,
234 0x6804, 0xac06, 0x00c0, 0x1746, 0x6000, 0x2060, 0x6806, 0xa005,
235 0x00c0, 0x1746, 0x6803, 0x0000, 0x0078, 0x1750, 0x6400, 0x781c,
236 0x2060, 0x6402, 0xa486, 0x0000, 0x00c0, 0x1750, 0x2c00, 0x6802,
237 0x2560, 0x1078, 0x16df, 0x6017, 0x0005, 0x601f, 0x0020, 0x1078,
238 0x17cb, 0x6810, 0x8001, 0x6812, 0x2001, 0xffff, 0xa005, 0x007c,
239 0x2039, 0x0000, 0x2041, 0x0021, 0x2049, 0x0004, 0x2051, 0x0008,
240 0x2091, 0x8000, 0x1078, 0x169f, 0x8738, 0xa784, 0x0007, 0x00c0,
241 0x176a, 0xa7bc, 0xff00, 0x873f, 0x8738, 0x873f, 0xa784, 0x0f00,
242 0x00c0, 0x176a, 0x2091, 0x8001, 0x007c, 0x2061, 0x0000, 0x6018,
243 0xa084, 0x0001, 0x00c0, 0x178a, 0x78ac, 0x78af, 0x0000, 0xa005,
244 0x00c0, 0x178b, 0x007c, 0xa08c, 0xfff0, 0x0040, 0x1791, 0x1078,
245 0x1ba5, 0x0079, 0x1793, 0x17a3, 0x17a5, 0x17ab, 0x17af, 0x17a3,
246 0x17b3, 0x17a3, 0x17a3, 0x17a3, 0x17a3, 0x17b9, 0x17bd, 0x17a3,
247 0x17a3, 0x17a3, 0x17a3, 0x1078, 0x1ba5, 0x1078, 0x1760, 0x2001,
248 0x8001, 0x0078, 0x17c3, 0x2001, 0x8003, 0x0078, 0x17c3, 0x2001,
249 0x8004, 0x0078, 0x17c3, 0x1078, 0x1760, 0x2001, 0x8006, 0x0078,
250 0x17c3, 0x2001, 0x800c, 0x0078, 0x17c3, 0x1078, 0x1760, 0x2001,
251 0x800d, 0x0078, 0x17c3, 0x70c2, 0x2061, 0x0000, 0x601b, 0x0001,
252 0x2091, 0x4080, 0x007c, 0x2c04, 0x6082, 0x2c08, 0x2063, 0x0000,
253 0x7864, 0x8000, 0x7866, 0x7868, 0xa005, 0x796a, 0x0040, 0x17db,
254 0x2c02, 0x0078, 0x17dc, 0x796e, 0x007c, 0x0c7e, 0x2061, 0x3500,
255 0x6883, 0x0103, 0x2d08, 0x206b, 0x0000, 0x6064, 0x8000, 0x6066,
256 0x6068, 0xa005, 0x616a, 0x0040, 0x17f0, 0x2d02, 0x0078, 0x17f1,
257 0x616e, 0x0c7f, 0x007c, 0x1078, 0x1804, 0x0040, 0x1803, 0x0c7e,
258 0x6098, 0xa065, 0x0040, 0x17fe, 0x1078, 0x16d2, 0x0c7f, 0x609b,
259 0x0000, 0x1078, 0x1678, 0x007c, 0x786c, 0xa065, 0x0040, 0x1816,
260 0x2091, 0x8000, 0x7864, 0x8001, 0x7866, 0x2c04, 0x786e, 0xa005,
261 0x00c0, 0x1814, 0x786a, 0x8000, 0x2091, 0x8001, 0x007c, 0x7898,
262 0xa005, 0x00c0, 0x1865, 0x7974, 0x70d0, 0x0005, 0x0005, 0x72d0,
263 0xa206, 0x00c0, 0x181c, 0x2200, 0xa106, 0x00c0, 0x1833, 0x7804,
264 0xa005, 0x0040, 0x1865, 0x7807, 0x0000, 0x0068, 0x1865, 0x2091,
265 0x4080, 0x0078, 0x1865, 0x1078, 0x166f, 0x0040, 0x1865, 0x7a7c,
266 0x7b78, 0x8107, 0x8004, 0x8004, 0xa210, 0xa399, 0x0000, 0x2009,
267 0x0040, 0x1078, 0x163f, 0x0040, 0x185c, 0x1078, 0x1678, 0x7880,
268 0x8000, 0x7882, 0xa086, 0x0002, 0x00c0, 0x1865, 0x2091, 0x8000,
269 0x78af, 0x0002, 0x7883, 0x0000, 0x7898, 0xa085, 0x0003, 0x789a,
270 0x2091, 0x8001, 0x0078, 0x1865, 0x7883, 0x0000, 0x1078, 0x1992,
271 0x6000, 0xa084, 0x0007, 0x0079, 0x1866, 0x007c, 0x186e, 0x187d,
272 0x189d, 0x186e, 0x18af, 0x186e, 0x186e, 0x186e, 0x2039, 0x0400,
273 0x78a8, 0xa705, 0x78aa, 0x6004, 0xa705, 0x6006, 0x1078, 0x18ed,
274 0x6018, 0x78a6, 0x1078, 0x197a, 0x007c, 0x78a8, 0xa084, 0x0100,
275 0x0040, 0x1884, 0x0078, 0x186e, 0x78ab, 0x0000, 0x6000, 0x8007,
276 0xa084, 0x00ff, 0x789e, 0x8001, 0x609b, 0x0000, 0x0040, 0x189a,
277 0x1078, 0x18ed, 0x0040, 0x189a, 0x78a8, 0xa085, 0x0100, 0x78aa,
278 0x0078, 0x189c, 0x1078, 0x1911, 0x007c, 0x78a8, 0xa08c, 0x0e00,
279 0x00c0, 0x18a6, 0xa084, 0x0100, 0x00c0, 0x18a8, 0x0078, 0x186e,
280 0x1078, 0x18ed, 0x00c0, 0x18ae, 0x1078, 0x1911, 0x007c, 0x78a8,
281 0xa084, 0x0100, 0x0040, 0x18b6, 0x0078, 0x186e, 0x78ab, 0x0000,
282 0x6710, 0x20a9, 0x0001, 0x6014, 0xa084, 0x00ff, 0xa005, 0x0040,
283 0x18d3, 0xa7bc, 0xff00, 0x20a9, 0x0008, 0xa08e, 0x0001, 0x0040,
284 0x18d3, 0x2039, 0x0000, 0x20a9, 0x0080, 0xa08e, 0x0002, 0x0040,
285 0x18d3, 0x0078, 0x18ea, 0x1078, 0x1692, 0x2d00, 0x2091, 0x8000,
286 0x682b, 0x0000, 0x682f, 0x0000, 0x6808, 0xa084, 0xffde, 0x680a,
287 0x2d00, 0xa080, 0x0010, 0x2068, 0x2091, 0x8001, 0x0070, 0x18ea,
288 0x0078, 0x18d6, 0x1078, 0x1678, 0x007c, 0x78a0, 0xa06d, 0x00c0,
289 0x18f8, 0x2c00, 0x78a2, 0x78a6, 0x609b, 0x0000, 0x0078, 0x1904,
290 0x2c00, 0x689a, 0x609b, 0x0000, 0x78a2, 0x2d00, 0x6002, 0x78a4,
291 0xad06, 0x00c0, 0x1904, 0x6002, 0x789c, 0x8001, 0x789e, 0x00c0,
292 0x1910, 0x78a8, 0xa084, 0x0000, 0x78aa, 0x78a4, 0x2060, 0xa006,
293 0x007c, 0xa02e, 0x2530, 0x6118, 0xa184, 0x0060, 0x619e, 0x0040,
294 0x191d, 0x0e7e, 0x1078, 0x2f13, 0x0e7f, 0x6592, 0x65a2, 0x6696,
295 0x66a6, 0x60ab, 0x0000, 0x60af, 0x0000, 0x6710, 0x1078, 0x1692,
296 0x2091, 0x8000, 0x6808, 0xa084, 0x0001, 0x0040, 0x193f, 0x2091,
297 0x8001, 0x1078, 0x16df, 0x2091, 0x8000, 0x1078, 0x17cb, 0x2091,
298 0x8001, 0x78a3, 0x0000, 0x78a7, 0x0000, 0x0078, 0x1979, 0x6020,
299 0xa096, 0x0001, 0x00c0, 0x1946, 0x8000, 0x6022, 0x6a10, 0x6814,
300 0x2091, 0x8001, 0xa202, 0x0048, 0x1955, 0x0040, 0x1955, 0x2039,
301 0x0200, 0x1078, 0x197a, 0x0078, 0x1979, 0x2c08, 0x2091, 0x8000,
302 0x6800, 0xa065, 0x0040, 0x195d, 0x6102, 0x6902, 0x00c0, 0x1961,
303 0x6906, 0x2160, 0x6003, 0x0000, 0x6810, 0x8000, 0x6812, 0x2091,
304 0x8001, 0x6808, 0xa08c, 0x0040, 0x0040, 0x1973, 0xa086, 0x0040,
305 0x680a, 0x1078, 0x16ee, 0x1078, 0x1a19, 0x78a7, 0x0000, 0x78a3,
306 0x0000, 0x007c, 0x6004, 0xa705, 0x6006, 0x2091, 0x8000, 0x1078,
307 0x17cb, 0x2091, 0x8001, 0x78a4, 0xa065, 0x0040, 0x198d, 0x6098,
308 0x78a6, 0x609b, 0x0000, 0x0078, 0x197d, 0x78a3, 0x0000, 0x78a7,
309 0x0000, 0x007c, 0x7970, 0x7874, 0x8000, 0xa10a, 0x00c8, 0x1999,
310 0xa006, 0x7876, 0x70d2, 0x7804, 0xa005, 0x0040, 0x19a7, 0x8001,
311 0x7806, 0x00c0, 0x19a7, 0x0068, 0x19a7, 0x2091, 0x4080, 0x007c,
312 0x0068, 0x19c2, 0x2029, 0x0000, 0x786c, 0xa065, 0x0040, 0x19bd,
313 0x1078, 0x19c3, 0x0040, 0x19bd, 0x057e, 0x1078, 0x19d9, 0x057f,
314 0x00c0, 0x19bd, 0x8528, 0x0078, 0x19ac, 0x85ff, 0x0040, 0x19c2,
315 0x2091, 0x4080, 0x007c, 0x7b84, 0x7988, 0x72d4, 0x0005, 0x0005,
316 0x70d4, 0xa206, 0x00c0, 0x19c5, 0x2200, 0xa102, 0x00c0, 0x19d3,
317 0x2300, 0xa005, 0x007c, 0x0048, 0x19d7, 0xa302, 0x007c, 0x8002,
318 0x007c, 0x1078, 0x1a0b, 0x2009, 0x001c, 0x6024, 0xa005, 0x0040,
319 0x19e3, 0x2009, 0x0040, 0x1078, 0x1611, 0x0040, 0x19fc, 0x7894,
320 0x8000, 0x7896, 0xa086, 0x0002, 0x00c0, 0x1a0a, 0x2091, 0x8000,
321 0x78af, 0x0003, 0x7897, 0x0000, 0x7898, 0xa085, 0x0300, 0x789a,
322 0x2091, 0x8001, 0x0078, 0x1a0a, 0x7897, 0x0000, 0x1078, 0x17f3,
323 0x7984, 0x7888, 0x8000, 0xa10a, 0x00c8, 0x1a07, 0xa006, 0x788a,
324 0x70d6, 0xa006, 0x007c, 0x8107, 0x8004, 0x8004, 0x7a90, 0x7b8c,
325 0xa210, 0xa399, 0x0000, 0x007c, 0x2009, 0x3568, 0x2091, 0x8000,
326 0x200a, 0x0f7e, 0x2079, 0x0100, 0x2009, 0x3540, 0x2091, 0x8000,
327 0x2104, 0xa086, 0x0000, 0x00c0, 0x1a34, 0x2009, 0x3512, 0x2104,
328 0xa005, 0x00c0, 0x1a34, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x1a34,
329 0x0018, 0x1a34, 0x781b, 0x0044, 0x2091, 0x8001, 0x0f7f, 0x007c,
330 0x127e, 0x2091, 0x2300, 0x2071, 0x3540, 0x2079, 0x0100, 0x2019,
331 0x2dd8, 0x20a1, 0x012b, 0x2304, 0xa005, 0x0040, 0x1a50, 0x789a,
332 0x8318, 0x23ac, 0x8318, 0x2398, 0x53a6, 0x3318, 0x0078, 0x1a43,
333 0x789b, 0x0020, 0x20a9, 0x0010, 0x78af, 0x0000, 0x78af, 0x0220,
334 0x0070, 0x1a5c, 0x0078, 0x1a54, 0x7003, 0x0000, 0x1078, 0x1b5b,
335 0x7004, 0xa084, 0x000f, 0xa085, 0x6280, 0x7806, 0x780f, 0x9200,
336 0x7843, 0x00d8, 0x7853, 0x0080, 0x780b, 0x0038, 0x7047, 0x357f,
337 0x7043, 0x0000, 0x127f, 0x2000, 0x007c, 0xa18c, 0x000f, 0x2011,
338 0x0101, 0x2204, 0xa084, 0xfff0, 0xa105, 0x2012, 0x1078, 0x1b5b,
339 0x007c, 0x2011, 0x0101, 0x20a9, 0x0009, 0x810b, 0x0070, 0x1a8a,
340 0x0078, 0x1a85, 0xa18c, 0x0e00, 0x2204, 0xa084, 0xf1ff, 0xa105,
341 0x2012, 0x007c, 0x2009, 0x0101, 0x20a9, 0x0005, 0x8213, 0x0070,
342 0x1a9b, 0x0078, 0x1a96, 0xa294, 0x00e0, 0x2104, 0xa084, 0xff1f,
343 0xa205, 0x200a, 0x007c, 0x2011, 0x0101, 0x20a9, 0x000c, 0x810b,
344 0x0070, 0x1aac, 0x0078, 0x1aa7, 0xa18c, 0xf000, 0x2204, 0xa084,
345 0x0fff, 0xa105, 0x2012, 0x007c, 0x2011, 0x0102, 0x2204, 0xa084,
346 0xffcf, 0xa105, 0x2012, 0x007c, 0x8103, 0x8003, 0xa080, 0x0020,
347 0x0c7e, 0x2061, 0x0100, 0x609a, 0x62ac, 0x63ac, 0x0c7f, 0x007c,
348 0x8103, 0x8003, 0xa080, 0x0022, 0x0c7e, 0x2061, 0x0100, 0x609a,
349 0x60a4, 0xa084, 0xffdf, 0x60ae, 0x0c7f, 0x007c, 0x8103, 0x8003,
350 0xa080, 0x0022, 0x0c7e, 0x2061, 0x0100, 0x609a, 0x60a4, 0xa085,
351 0x0020, 0x60ae, 0x0c7f, 0x007c, 0x8103, 0x8003, 0xa080, 0x0020,
352 0x0c7e, 0x2061, 0x0100, 0x609a, 0x60a4, 0x62ae, 0x2010, 0x60a4,
353 0x63ae, 0x2018, 0x0c7f, 0x007c, 0x2091, 0x8000, 0x0c7e, 0x0e7e,
354 0x6818, 0xa005, 0x0040, 0x1b39, 0x2061, 0x3f80, 0x1078, 0x1b41,
355 0x0040, 0x1b27, 0x20a9, 0x0000, 0x2061, 0x3e80, 0x0c7e, 0x1078,
356 0x1b41, 0x0040, 0x1b13, 0x0c7f, 0x8c60, 0x0070, 0x1b11, 0x0078,
357 0x1b06, 0x0078, 0x1b39, 0x007f, 0xa082, 0x3e80, 0x2071, 0x3540,
358 0x70ba, 0x601c, 0xa085, 0x0800, 0x601e, 0x71b6, 0x60a7, 0x0000,
359 0x2001, 0x0004, 0x70a2, 0x1078, 0x1a14, 0x0078, 0x1b35, 0x2071,
360 0x3540, 0x601c, 0xa085, 0x0800, 0x601e, 0x71b6, 0x60a7, 0x0000,
361 0x2001, 0x0006, 0x70a2, 0x1078, 0x1a14, 0x2001, 0x0000, 0x0078,
362 0x1b3b, 0x2001, 0x0001, 0x2091, 0x8001, 0xa005, 0x0e7f, 0x0c7f,
363 0x007c, 0x2c04, 0xa005, 0x0040, 0x1b58, 0x2060, 0x600c, 0xa306,
364 0x00c0, 0x1b55, 0x6008, 0xa206, 0x00c0, 0x1b55, 0x6010, 0xa106,
365 0x00c0, 0x1b55, 0xa006, 0x0078, 0x1b5a, 0x6000, 0x0078, 0x1b42,
366 0xa085, 0x0001, 0x007c, 0x2011, 0x3541, 0x220c, 0xa18c, 0x000f,
367 0x2011, 0x013b, 0x2204, 0xa084, 0x0100, 0x0040, 0x1b6a, 0x2021,
368 0xff80, 0x2122, 0x007c, 0x0e7e, 0x68e4, 0xa08c, 0x0020, 0x0040,
369 0x1ba3, 0xa084, 0x0006, 0x00c0, 0x1ba3, 0x6010, 0x8007, 0xa084,
370 0x000f, 0x8003, 0x8003, 0x8003, 0xa0f0, 0x3600, 0x7004, 0xa084,
371 0x000a, 0x00c0, 0x1ba3, 0x7108, 0xa194, 0xff00, 0x0040, 0x1ba3,
372 0xa18c, 0x00ff, 0x2001, 0x0019, 0xa106, 0x0040, 0x1b96, 0x2001,
373 0x0032, 0xa106, 0x0040, 0x1b9a, 0x0078, 0x1b9e, 0x2009, 0x0020,
374 0x0078, 0x1ba0, 0x2009, 0x003f, 0x0078, 0x1ba0, 0x2011, 0x0000,
375 0x2100, 0xa205, 0x700a, 0x0e7f, 0x007c, 0x0068, 0x1ba5, 0x007e,
376 0x2071, 0x0000, 0x7018, 0xa084, 0x0001, 0x00c0, 0x1baa, 0x007f,
377 0x2e08, 0x2071, 0x0010, 0x70ca, 0x007f, 0x70c6, 0x70c3, 0x8002,
378 0x2071, 0x0000, 0x701b, 0x0001, 0x2091, 0x4080, 0x007f, 0x2070,
379 0x007f, 0x0078, 0x1bc1, 0x107e, 0x007e, 0x127e, 0x2091, 0x2300,
380 0x7f3c, 0x7e58, 0x7c30, 0x7d38, 0xa594, 0x003f, 0xa484, 0x4000,
381 0x0040, 0x1bd8, 0xa784, 0x007c, 0x00c0, 0x2d9c, 0x1078, 0x1ba5,
382 0xa49c, 0x000f, 0xa382, 0x0004, 0x0050, 0x1be0, 0x1078, 0x1ba5,
383 0x8507, 0xa084, 0x000f, 0x0079, 0x1be5, 0x1fea, 0x209a, 0x20c0,
384 0x22e6, 0x256b, 0x25b3, 0x25ea, 0x2665, 0x26bf, 0x2744, 0x1c0b,
385 0x1bf5, 0x1e53, 0x1f1d, 0x254a, 0x1bf5, 0x1078, 0x1ba5, 0x0018,
386 0x1bc8, 0x127f, 0x2091, 0x8001, 0x007f, 0x107f, 0x007c, 0x7003,
387 0x0000, 0x703f, 0x0000, 0x7030, 0xa005, 0x0040, 0x1c09, 0x7033,
388 0x0000, 0x0018, 0x1bc8, 0x705c, 0xa005, 0x00c0, 0x1cb6, 0x70a0,
389 0xa084, 0x0007, 0x0079, 0x1c14, 0x1cd6, 0x1c1c, 0x1c2a, 0x1c4b,
390 0x1c71, 0x1c9d, 0x1c9b, 0x1c1c, 0x7808, 0xa084, 0xfffd, 0x780a,
391 0x2009, 0x0046, 0x1078, 0x2412, 0x00c0, 0x1c28, 0x7003, 0x0004,
392 0x0078, 0x1bf7, 0x1078, 0x2d5e, 0x00c0, 0x1c49, 0x70b4, 0x8007,
393 0x789b, 0x007e, 0x78aa, 0x789b, 0x0010, 0x78ab, 0x000c, 0x789b,
394 0x0060, 0x78ab, 0x0001, 0x785b, 0x0004, 0x2009, 0x00f7, 0x1078,
395 0x2410, 0x00c0, 0x1c49, 0x7003, 0x0004, 0x70c3, 0x000f, 0x7033,
396 0x3570, 0x0078, 0x1bf7, 0x1078, 0x2d5e, 0x00c0, 0x1c6f, 0x71b4,
397 0x8107, 0x789b, 0x007e, 0x78aa, 0x789b, 0x0010, 0xa18c, 0x0007,
398 0xa18d, 0x00c0, 0x79aa, 0x78ab, 0x0006, 0x789b, 0x0060, 0x78ab,
399 0x0002, 0x785b, 0x0004, 0x2009, 0x00f7, 0x1078, 0x2410, 0x00c0,
400 0x1c6f, 0x7003, 0x0004, 0x70c3, 0x000f, 0x7033, 0x3570, 0x0078,
401 0x1bf7, 0x1078, 0x2d5e, 0x00c0, 0x1c99, 0x71b4, 0x8107, 0x789b,
402 0x007e, 0x78aa, 0x789b, 0x0010, 0xa18c, 0x0007, 0xa18d, 0x00c0,
403 0x79aa, 0x78ab, 0x0020, 0x71b8, 0x79aa, 0x78ab, 0x000d, 0x789b,
404 0x0060, 0x78ab, 0x0004, 0x785b, 0x0004, 0x2009, 0x00f7, 0x1078,
405 0x2410, 0x00c0, 0x1c99, 0x7003, 0x0004, 0x70c3, 0x000f, 0x7033,
406 0x3570, 0x0078, 0x1bf7, 0x0078, 0x1c4b, 0x1078, 0x2d5e, 0x00c0,
407 0x1bf7, 0x70bc, 0x2068, 0x789b, 0x0010, 0x6f10, 0x1078, 0x2ca1,
408 0x2c50, 0x6810, 0xa084, 0x0007, 0xa085, 0x0080, 0x78aa, 0x6e18,
409 0x2041, 0x0001, 0x2001, 0x0004, 0x0078, 0x1dde, 0x1078, 0x2d5e,
410 0x00c0, 0x1bf7, 0x789b, 0x0010, 0x705c, 0x2068, 0x6f10, 0x1078,
411 0x2ca1, 0x2c50, 0x6008, 0xa085, 0x0010, 0x600a, 0x6810, 0xa084,
412 0x0007, 0xa085, 0x0080, 0x78aa, 0x2031, 0x0020, 0x2041, 0x0001,
413 0x1078, 0x2dc5, 0x2001, 0x0003, 0x0078, 0x1dc9, 0x0018, 0x1bc8,
414 0x7440, 0xa485, 0x0000, 0x0040, 0x1cf0, 0xa080, 0x3580, 0x2030,
415 0x7144, 0x8108, 0xa12a, 0x0048, 0x1ce7, 0x2009, 0x3580, 0x2164,
416 0x6504, 0x85ff, 0x00c0, 0x1cfd, 0x8421, 0x00c0, 0x1ce1, 0x7146,
417 0x7003, 0x0000, 0x703f, 0x0000, 0x0078, 0x1bf7, 0x7640, 0xa6b0,
418 0x3580, 0x7144, 0x2600, 0x0078, 0x1cec, 0x7146, 0x2568, 0x2558,
419 0x753e, 0x2c50, 0x6034, 0xa085, 0x0000, 0x00c0, 0x1cfa, 0x6708,
420 0x7736, 0xa784, 0x013f, 0x0040, 0x1d2f, 0xa784, 0x0021, 0x00c0,
421 0x1cfa, 0xa784, 0x0002, 0x0040, 0x1d1c, 0xa784, 0x0004, 0x0040,
422 0x1cfa, 0xa7bc, 0xfffb, 0x670a, 0xa784, 0x0008, 0x00c0, 0x1cfa,
423 0xa784, 0x0010, 0x00c0, 0x1cfa, 0xa784, 0x0100, 0x0040, 0x1d2f,
424 0x6018, 0xa005, 0x00c0, 0x1cfa, 0xa7bc, 0xfeff, 0x670a, 0x681f,
425 0x0000, 0x6e18, 0xa684, 0x000e, 0x6118, 0x0040, 0x1d3f, 0x601c,
426 0xa102, 0x0048, 0x1d42, 0x0040, 0x1d42, 0x0078, 0x1cf6, 0x81ff,
427 0x00c0, 0x1cf6, 0xa784, 0x0080, 0x00c0, 0x1d48, 0x700c, 0x6022,
428 0xa7bc, 0xff7f, 0x670a, 0x6b10, 0x8307, 0xa084, 0x000f, 0x8003,
429 0x8003, 0x8003, 0xa080, 0x3600, 0x2060, 0x2048, 0x704a, 0x6000,
430 0x704e, 0x6004, 0x7052, 0x2a60, 0x0018, 0x1bc8, 0x789b, 0x0010,
431 0xa046, 0x1078, 0x2d5e, 0x00c0, 0x1bf7, 0x6b10, 0xa39c, 0x0007,
432 0xa39d, 0x00c0, 0x704c, 0xa084, 0x8000, 0x0040, 0x1d73, 0xa684,
433 0x0001, 0x0040, 0x1d75, 0xa39c, 0xffbf, 0xa684, 0x0010, 0x0040,
434 0x1d7b, 0xa39d, 0x0020, 0x7baa, 0x8840, 0xa684, 0x000e, 0x00c0,
435 0x1d86, 0xa7bd, 0x0010, 0x670a, 0x0078, 0x1dc7, 0x714c, 0xa18c,
436 0x0800, 0x0040, 0x2902, 0x2011, 0x0021, 0x8004, 0x8004, 0x0048,
437 0x1d9d, 0x2011, 0x0022, 0x8004, 0x0048, 0x1d9d, 0x2011, 0x0020,
438 0x8004, 0x0048, 0x1d9d, 0x0040, 0x1dc7, 0x7aaa, 0x8840, 0x1078,
439 0x2d77, 0x6a10, 0x610c, 0x8108, 0xa18c, 0x00ff, 0xa1e0, 0x3e80,
440 0x2c64, 0x8cff, 0x0040, 0x1dbe, 0x6010, 0xa206, 0x00c0, 0x1da8,
441 0x60b4, 0x8001, 0x60b6, 0x00c0, 0x1da3, 0x0c7e, 0x2a60, 0x6008,
442 0xa085, 0x0100, 0x600a, 0x0c7f, 0x0078, 0x1cd6, 0x1078, 0x2d5e,
443 0x00c0, 0x1bf7, 0x2a60, 0x610e, 0x79aa, 0x8840, 0x712e, 0x2001,
444 0x0001, 0x007e, 0x7150, 0xa184, 0x0018, 0x0040, 0x1ddd, 0xa184,
445 0x0010, 0x0040, 0x1dd7, 0x1078, 0x2acc, 0x00c0, 0x1ddd, 0xa184,
446 0x0008, 0x0040, 0x1ddd, 0x1078, 0x29e6, 0x007f, 0x7002, 0xa68c,
447 0x0060, 0x88ff, 0x0040, 0x1de6, 0xa18d, 0x0004, 0x795a, 0x69b2,
448 0x789b, 0x0060, 0x2800, 0x78aa, 0x789b, 0x0061, 0x6814, 0xa085,
449 0x8000, 0x6816, 0x78aa, 0x157e, 0x137e, 0x147e, 0x20a1, 0x012c,
450 0x789b, 0x0000, 0x8000, 0x80ac, 0xad80, 0x000a, 0x2098, 0x53a6,
451 0x147f, 0x137f, 0x157f, 0x6810, 0x8007, 0x789b, 0x007e, 0x78aa,
452 0x6d90, 0x7dd6, 0x7dde, 0x6e94, 0x7ed2, 0x7eda, 0x7830, 0xa084,
453 0x00c0, 0x00c0, 0x1e15, 0x0098, 0x1e1d, 0x6008, 0xa084, 0xffef,
454 0x600a, 0x1078, 0x2d77, 0x0078, 0x1bff, 0x7200, 0xa284, 0x0007,
455 0xa086, 0x0001, 0x00c0, 0x1e2a, 0x781b, 0x0049, 0x1078, 0x2d77,
456 0x0078, 0x1e3b, 0x6ab0, 0xa295, 0x2000, 0x7a5a, 0x781b, 0x0049,
457 0x1078, 0x2d77, 0x7200, 0x2500, 0xa605, 0x0040, 0x1e3b, 0xa284,
458 0x0007, 0x1079, 0x1e49, 0xad80, 0x0008, 0x7032, 0xa284, 0x0007,
459 0xa086, 0x0001, 0x00c0, 0x1e47, 0x6018, 0x8000, 0x601a, 0x0078,
460 0x1bf7, 0x1e51, 0x30f0, 0x30f0, 0x30df, 0x30f0, 0x1e51, 0x1e51,
461 0x1e51, 0x1078, 0x1ba5, 0x7808, 0xa084, 0xfffd, 0x780a, 0x0f7e,
462 0x2079, 0x3500, 0x7898, 0x0f7f, 0xa084, 0x0001, 0x0040, 0x1e79,
463 0x70a0, 0xa086, 0x0001, 0x00c0, 0x1e68, 0x70a2, 0x0078, 0x1f01,
464 0x70a0, 0xa086, 0x0005, 0x00c0, 0x1e77, 0x70bc, 0x2068, 0x6817,
465 0x0004, 0x6813, 0x0000, 0x681c, 0xa085, 0x0008, 0x681e, 0x70a3,
466 0x0000, 0x157e, 0x2011, 0x0004, 0x71a0, 0xa186, 0x0001, 0x0040,
467 0x1e9b, 0xa186, 0x0007, 0x00c0, 0x1e8b, 0x2009, 0x352b, 0x200b,
468 0x0005, 0x0078, 0x1e9b, 0x2009, 0x3513, 0x2104, 0x2009, 0x3512,
469 0x200a, 0x2009, 0x352b, 0x200b, 0x0001, 0x70a3, 0x0000, 0x70a7,
470 0x0001, 0x0078, 0x1e9d, 0x70a3, 0x0000, 0x1078, 0x2ec7, 0x20a9,
471 0x0010, 0x2039, 0x0000, 0x1078, 0x2ba6, 0xa7b8, 0x0100, 0x0070,
472 0x1eab, 0x0078, 0x1ea3, 0x7000, 0x2020, 0x0079, 0x1eaf, 0x1edd,
473 0x1ec6, 0x1ec6, 0x1eb9, 0x1edd, 0x1edd, 0x1eb7, 0x1eb7, 0x1078,
474 0x1ba5, 0x2021, 0x3557, 0x2404, 0xa005, 0x0040, 0x1ec6, 0xad06,
475 0x00c0, 0x1ec6, 0x6800, 0x2022, 0x0078, 0x1ed6, 0x681c, 0xa084,
476 0x0001, 0x00c0, 0x1ed2, 0x6f10, 0x1078, 0x2ca1, 0x1078, 0x28d9,
477 0x0078, 0x1ed6, 0x7054, 0x2060, 0x6800, 0x6002, 0x6a16, 0x681c,
478 0xa085, 0x0008, 0x681e, 0x1078, 0x17dd, 0x2021, 0x3f80, 0x1078,
479 0x1f07, 0x2021, 0x3557, 0x1078, 0x1f07, 0x20a9, 0x0000, 0x2021,
480 0x3e80, 0x1078, 0x1f07, 0x8420, 0x0070, 0x1ef0, 0x0078, 0x1ee9,
481 0x20a9, 0x0080, 0x2061, 0x3680, 0x6018, 0x6110, 0xa102, 0x6012,
482 0x601b, 0x0000, 0xace0, 0x0010, 0x0070, 0x1f00, 0x0078, 0x1ef4,
483 0x157f, 0x7003, 0x0000, 0x703f, 0x0000, 0x0078, 0x1bf7, 0x047e,
484 0x2404, 0xa005, 0x0040, 0x1f19, 0x2068, 0x6800, 0x007e, 0x6a16,
485 0x681c, 0xa085, 0x0008, 0x681e, 0x1078, 0x17dd, 0x007f, 0x0078,
486 0x1f09, 0x047f, 0x2023, 0x0000, 0x007c, 0xa282, 0x0003, 0x0050,
487 0x1f23, 0x1078, 0x1ba5, 0x2300, 0x0079, 0x1f26, 0x1f29, 0x1f9c,
488 0x1faa, 0xa282, 0x0002, 0x0040, 0x1f2f, 0x1078, 0x1ba5, 0x70a0,
489 0x70a3, 0x0000, 0x70c3, 0x0000, 0x0079, 0x1f36, 0x1f3e, 0x1f3e,
490 0x1f40, 0x1f74, 0x2908, 0x1f3e, 0x1f74, 0x1f3e, 0x1078, 0x1ba5,
491 0x77b4, 0x1078, 0x2ba6, 0x77b4, 0xa7bc, 0x0f00, 0x1078, 0x2ca1,
492 0x6018, 0xa005, 0x0040, 0x1f6b, 0x2021, 0x3f80, 0x2009, 0x0004,
493 0x2011, 0x0010, 0x1078, 0x1fc5, 0x0040, 0x1f6b, 0x157e, 0x20a9,
494 0x0000, 0x2021, 0x3e80, 0x047e, 0x2009, 0x0004, 0x2011, 0x0010,
495 0x1078, 0x1fc5, 0x047f, 0x0040, 0x1f6a, 0x8420, 0x0070, 0x1f6a,
496 0x0078, 0x1f5b, 0x157f, 0x8738, 0xa784, 0x0007, 0x00c0, 0x1f46,
497 0x0078, 0x1bff, 0x0078, 0x1bff, 0x77b4, 0x1078, 0x2ca1, 0x6018,
498 0xa005, 0x0040, 0x1f9a, 0x2021, 0x3f80, 0x2009, 0x0005, 0x2011,
499 0x0020, 0x1078, 0x1fc5, 0x0040, 0x1f9a, 0x157e, 0x20a9, 0x0000,
500 0x2021, 0x3e80, 0x047e, 0x2009, 0x0005, 0x2011, 0x0020, 0x1078,
501 0x1fc5, 0x047f, 0x0040, 0x1f99, 0x8420, 0x0070, 0x1f99, 0x0078,
502 0x1f8a, 0x157f, 0x0078, 0x1bff, 0x2200, 0x0079, 0x1f9f, 0x1fa2,
503 0x1fa4, 0x1fa4, 0x1078, 0x1ba5, 0x70a3, 0x0000, 0x70a7, 0x0001,
504 0x0078, 0x1bf7, 0x2200, 0x0079, 0x1fad, 0x1fb2, 0x1fa4, 0x1fb0,
505 0x1078, 0x1ba5, 0x1078, 0x241f, 0x7000, 0xa086, 0x0001, 0x00c0,
506 0x28af, 0x1078, 0x28ef, 0x6008, 0xa084, 0xffef, 0x600a, 0x1078,
507 0x28a2, 0x0040, 0x28af, 0x0078, 0x1cd6, 0x2404, 0xa005, 0x0040,
508 0x1fe6, 0x2068, 0x2d04, 0x007e, 0x6810, 0xa706, 0x0040, 0x1fd4,
509 0x2d20, 0x007f, 0x0078, 0x1fc6, 0x007f, 0x2022, 0x6916, 0x681c,
510 0xa205, 0x681e, 0x1078, 0x17dd, 0x6010, 0x8001, 0x6012, 0x6008,
511 0xa084, 0xffef, 0x600a, 0x1078, 0x28ef, 0x007c, 0xa085, 0x0001,
512 0x0078, 0x1fe5, 0x2300, 0x0079, 0x1fed, 0x1ff2, 0x1ff0, 0x2035,
513 0x1078, 0x1ba5, 0x78e4, 0xa005, 0x00d0, 0x2015, 0x0018, 0x2015,
514 0x2008, 0xa084, 0x0030, 0x00c0, 0x2001, 0x781b, 0x0049, 0x0078,
515 0x1bf7, 0x78ec, 0xa084, 0x0003, 0x0040, 0x1ffd, 0x2100, 0xa084,
516 0x0007, 0x0079, 0x200b, 0x2023, 0x2029, 0x201d, 0x2013, 0x2d58,
517 0x2d58, 0x2013, 0x202f, 0x1078, 0x1ba5, 0x7000, 0xa005, 0x0040,
518 0x1bff, 0x2001, 0x0003, 0x0078, 0x22fa, 0x1078, 0x2b89, 0x781b,
519 0x0055, 0x0078, 0x1bf7, 0x1078, 0x2b89, 0x781b, 0x00dc, 0x0078,
520 0x1bf7, 0x1078, 0x2b89, 0x781b, 0x00e3, 0x0078, 0x1bf7, 0x1078,
521 0x2b89, 0x781b, 0x009d, 0x0078, 0x1bf7, 0xa584, 0x000f, 0x00c0,
522 0x205f, 0x1078, 0x241f, 0x7000, 0x0079, 0x203e, 0x2046, 0x2053,
523 0x2046, 0x28af, 0x2048, 0x28af, 0x2046, 0x2046, 0x1078, 0x1ba5,
524 0x71a0, 0x70a3, 0x0000, 0xa186, 0x0004, 0x00c0, 0x2051, 0x0078,
525 0x2908, 0x0078, 0x28af, 0x1078, 0x28ef, 0x6008, 0xa084, 0xffef,
526 0x600a, 0x1078, 0x28a2, 0x0040, 0x28af, 0x0078, 0x1cd6, 0x78e4,
527 0xa005, 0x00d0, 0x2015, 0x0018, 0x2015, 0x2008, 0xa084, 0x0030,
528 0x00c0, 0x206e, 0x781b, 0x0049, 0x0078, 0x1bf7, 0x78ec, 0xa084,
529 0x0003, 0x0040, 0x206a, 0x2100, 0xa184, 0x0007, 0x0079, 0x2078,
530 0x2088, 0x208e, 0x2082, 0x2080, 0x2d58, 0x2d58, 0x2080, 0x2d50,
531 0x1078, 0x1ba5, 0x1078, 0x2b91, 0x781b, 0x0055, 0x0078, 0x1bf7,
532 0x1078, 0x2b91, 0x781b, 0x00dc, 0x0078, 0x1bf7, 0x1078, 0x2b91,
533 0x781b, 0x00e3, 0x0078, 0x1bf7, 0x1078, 0x2b91, 0x781b, 0x009d,
534 0x0078, 0x1bf7, 0x2300, 0x0079, 0x209d, 0x20a2, 0x20a0, 0x20a4,
535 0x1078, 0x1ba5, 0x0078, 0x2665, 0x6817, 0x0008, 0x78a3, 0x0000,
536 0x79e4, 0xa184, 0x0030, 0x0040, 0x2665, 0x78ec, 0xa084, 0x0003,
537 0x0040, 0x2665, 0xa184, 0x0007, 0x0079, 0x20b6, 0x2023, 0x2029,
538 0x201d, 0x2d30, 0x2d58, 0x2d58, 0x20be, 0x2d50, 0x1078, 0x1ba5,
539 0xa282, 0x0005, 0x0050, 0x20c6, 0x1078, 0x1ba5, 0x2300, 0x0079,
540 0x20c9, 0x20cc, 0x22ce, 0x22da, 0x2200, 0x0079, 0x20cf, 0x20d4,
541 0x20d6, 0x20e9, 0x20d4, 0x22b3, 0x1078, 0x1ba5, 0x789b, 0x0018,
542 0x78a8, 0xa084, 0x00ff, 0xa082, 0x0020, 0x0048, 0x2b6a, 0xa08a,
543 0x0004, 0x00c8, 0x2b6a, 0x0079, 0x20e5, 0x2b6a, 0x2b6a, 0x2b6a,
544 0x2b0c, 0x789b, 0x0018, 0x79a8, 0xa184, 0x0080, 0x0040, 0x20fe,
545 0xa184, 0x0018, 0x0040, 0x20fa, 0x0078, 0x2b6a, 0x7000, 0xa005,
546 0x00c0, 0x20f4, 0x2011, 0x0003, 0x0078, 0x2752, 0xa184, 0x00ff,
547 0xa08a, 0x0010, 0x00c8, 0x2b6a, 0x0079, 0x2106, 0x2118, 0x2116,
548 0x212e, 0x2130, 0x21c2, 0x2b6a, 0x2b6a, 0x21c4, 0x2b6a, 0x2b6a,
549 0x22af, 0x22af, 0x2b6a, 0x2b6a, 0x2b6a, 0x22b1, 0x1078, 0x1ba5,
550 0xa684, 0x1000, 0x0040, 0x2125, 0x2001, 0x0300, 0x8000, 0x8000,
551 0x783a, 0x781b, 0x009a, 0x0078, 0x1bf7, 0x6814, 0xa084, 0x8000,
552 0x0040, 0x212c, 0x6817, 0x0003, 0x0078, 0x2d30, 0x1078, 0x1ba5,
553 0x691c, 0x691e, 0xa684, 0x1800, 0x00c0, 0x214a, 0x681c, 0xa084,
554 0x0001, 0x00c0, 0x2152, 0x6814, 0xa086, 0x0008, 0x00c0, 0x2142,
555 0x6817, 0x0000, 0xa684, 0x0400, 0x0040, 0x21be, 0x781b, 0x0058,
556 0x0078, 0x1bf7, 0xa684, 0x1000, 0x0040, 0x2152, 0x781b, 0x0058,
557 0x0078, 0x1bf7, 0xa684, 0x0060, 0x0040, 0x21ba, 0xa684, 0x0800,
558 0x0040, 0x21ba, 0xa684, 0x8000, 0x00c0, 0x2160, 0x0078, 0x217a,
559 0xa6b4, 0x7fff, 0x7e5a, 0x6eb2, 0x789b, 0x0074, 0x7aac, 0x79ac,
560 0x78ac, 0x801b, 0x00c8, 0x216d, 0x8000, 0xa084, 0x003f, 0xa108,
561 0xa291, 0x0000, 0x6b94, 0x2100, 0xa302, 0x68ae, 0x6b90, 0x2200,
562 0xa303, 0x68aa, 0xa684, 0x4000, 0x0040, 0x2182, 0xa6b4, 0xbfff,
563 0x7e5a, 0x6eb2, 0x7000, 0xa086, 0x0003, 0x00c0, 0x218f, 0x1078,
564 0x2f3a, 0x1078, 0x30df, 0x781b, 0x0067, 0x0078, 0x1bf7, 0xa006,
565 0x1078, 0x3194, 0x6aac, 0x69a8, 0x6c94, 0x6b90, 0x2200, 0xa105,
566 0x0040, 0x219e, 0x2200, 0xa422, 0x2100, 0xa31b, 0x7cd2, 0x7bd6,
567 0x2300, 0xa405, 0x00c0, 0x21ac, 0xa6b5, 0x4000, 0x7e5a, 0x6eb2,
568 0x781b, 0x0067, 0x0078, 0x1bf7, 0x781b, 0x0067, 0x2200, 0xa115,
569 0x00c0, 0x21b6, 0x1078, 0x30f0, 0x0078, 0x1bf7, 0x1078, 0x311d,
570 0x0078, 0x1bf7, 0x781b, 0x006a, 0x0078, 0x1bf7, 0x781b, 0x0058,
571 0x0078, 0x1bf7, 0x1078, 0x1ba5, 0x0078, 0x2221, 0x691c, 0xa184,
572 0x0100, 0x0040, 0x21dc, 0xa18c, 0xfeff, 0x691e, 0x0c7e, 0x7048,
573 0x2060, 0x6000, 0xa084, 0xefff, 0x6002, 0x6004, 0xa084, 0xfff5,
574 0x6006, 0x0c7f, 0x0078, 0x2210, 0xa184, 0x0200, 0x0040, 0x2210,
575 0xa18c, 0xfdff, 0x691e, 0x0c7e, 0x7048, 0x2060, 0x6000, 0xa084,
576 0xdfff, 0x6002, 0x6004, 0xa084, 0xffef, 0x6006, 0x2008, 0x2c48,
577 0x0c7f, 0xa184, 0x0008, 0x0040, 0x2210, 0x1078, 0x2c9d, 0x1078,
578 0x29e6, 0x88ff, 0x0040, 0x2210, 0x789b, 0x0060, 0x2800, 0x78aa,
579 0x7e58, 0xa6b5, 0x0004, 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x220c,
580 0x781b, 0x0055, 0x0078, 0x1bf7, 0x781b, 0x0069, 0x0078, 0x1bf7,
581 0x7e58, 0xa684, 0x0400, 0x00c0, 0x2219, 0x781b, 0x0058, 0x0078,
582 0x1bf7, 0x781b, 0x006a, 0x0078, 0x1bf7, 0x0078, 0x2b70, 0x0078,
583 0x2b70, 0x2019, 0x0000, 0x7990, 0xa18c, 0x0007, 0x0040, 0x221f,
584 0x789b, 0x0010, 0x78a8, 0xa094, 0x00ff, 0xa286, 0x0001, 0x00c0,
585 0x2244, 0x2300, 0x7ca8, 0xa400, 0x2018, 0xa102, 0x0040, 0x223c,
586 0x0048, 0x223c, 0x0078, 0x223e, 0x0078, 0x21c6, 0x24a8, 0x7aa8,
587 0x00f0, 0x223e, 0x0078, 0x222a, 0xa284, 0x00f0, 0xa086, 0x0020,
588 0x00c0, 0x22a0, 0x8318, 0x8318, 0x2300, 0xa102, 0x0040, 0x2254,
589 0x0048, 0x2254, 0x0078, 0x229d, 0xa286, 0x0023, 0x0040, 0x221f,
590 0x6818, 0xa084, 0xfff1, 0x681a, 0x7e58, 0xa684, 0xfff1, 0xa085,
591 0x0010, 0x2030, 0x7e5a, 0x6008, 0xa085, 0x0010, 0x600a, 0x0c7e,
592 0x7048, 0x2060, 0x6004, 0x2008, 0x2c48, 0x0c7f, 0xa184, 0x0010,
593 0x0040, 0x2278, 0x1078, 0x2c9d, 0x1078, 0x2acc, 0x0078, 0x2287,
594 0x0c7e, 0x7048, 0x2060, 0x6004, 0x2008, 0x2c48, 0x0c7f, 0xa184,
595 0x0008, 0x0040, 0x2210, 0x1078, 0x2c9d, 0x1078, 0x29e6, 0x88ff,
596 0x0040, 0x2210, 0x789b, 0x0060, 0x2800, 0x78aa, 0xa6b5, 0x0004,
597 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x2299, 0x781b, 0x0055, 0x0078,
598 0x1bf7, 0x781b, 0x0069, 0x0078, 0x1bf7, 0x7aa8, 0x0078, 0x222a,
599 0x8318, 0x2300, 0xa102, 0x0040, 0x22a9, 0x0048, 0x22a9, 0x0078,
600 0x222a, 0xa284, 0x0080, 0x00c0, 0x2b76, 0x0078, 0x2b70, 0x0078,
601 0x2b76, 0x0078, 0x2b6a, 0x789b, 0x0018, 0x78a8, 0xa084, 0x00ff,
602 0xa08e, 0x0001, 0x0040, 0x22be, 0x1078, 0x1ba5, 0x7aa8, 0xa294,
603 0x00ff, 0x78a8, 0xa084, 0x00ff, 0xa08a, 0x0004, 0x00c8, 0x2b6a,
604 0x0079, 0x22ca, 0x2b6a, 0x2939, 0x2b6a, 0x2a67, 0xa282, 0x0000,
605 0x00c0, 0x22d4, 0x1078, 0x1ba5, 0x1078, 0x2b89, 0x781b, 0x0069,
606 0x0078, 0x1bf7, 0xa282, 0x0003, 0x00c0, 0x22e0, 0x1078, 0x1ba5,
607 0x1078, 0x2b99, 0x781b, 0x0069, 0x0078, 0x1bf7, 0xa282, 0x0004,
608 0x0050, 0x22ec, 0x1078, 0x1ba5, 0x2300, 0x0079, 0x22ef, 0x22f2,
609 0x23c9, 0x23fa, 0xa286, 0x0003, 0x0040, 0x22f8, 0x1078, 0x1ba5,
610 0x2001, 0x0000, 0x703a, 0x7000, 0xa084, 0x0007, 0x0079, 0x2300,
611 0x2308, 0x230a, 0x230a, 0x2508, 0x2530, 0x24d2, 0x2308, 0x2308,
612 0x1078, 0x1ba5, 0xa684, 0x1000, 0x00c0, 0x2312, 0x1078, 0x2ec7,
613 0x0040, 0x23a3, 0x7868, 0xa08c, 0x00ff, 0x0040, 0x235a, 0xa186,
614 0x0008, 0x00c0, 0x2329, 0x1078, 0x28ef, 0x6008, 0xa084, 0xffef,
615 0x600a, 0x1078, 0x28a2, 0x0040, 0x235a, 0x1078, 0x2ec7, 0x0078,
616 0x2341, 0xa186, 0x0028, 0x00c0, 0x235a, 0x1078, 0x2ec7, 0x6008,
617 0xa084, 0xffef, 0x600a, 0x6018, 0xa005, 0x0040, 0x2341, 0x8001,
618 0x601a, 0xa005, 0x0040, 0x2341, 0x8001, 0xa005, 0x0040, 0x2341,
619 0x601e, 0x681c, 0xa084, 0x0001, 0x0040, 0x1bff, 0x681c, 0xa084,
620 0xfffe, 0x681e, 0x7054, 0x0c7e, 0x2060, 0x6800, 0x6002, 0x0c7f,
621 0x6004, 0x6802, 0xa005, 0x2d00, 0x00c0, 0x2357, 0x6002, 0x6006,
622 0x0078, 0x1bff, 0x017e, 0x1078, 0x241f, 0x017f, 0xa684, 0xdf00,
623 0x681a, 0x6827, 0x0000, 0x6f10, 0x81ff, 0x0040, 0x23a3, 0xa186,
624 0x0002, 0x00c0, 0x239b, 0xa684, 0x0800, 0x00c0, 0x2377, 0xa684,
625 0x0060, 0x0040, 0x2377, 0x78d8, 0x7adc, 0x682e, 0x6a2a, 0x8717,
626 0xa294, 0x000f, 0x8213, 0x8213, 0x8213, 0xa290, 0x3600, 0xa290,
627 0x0000, 0x221c, 0xa384, 0x0100, 0x00c0, 0x2388, 0x0078, 0x238e,
628 0x8210, 0x2204, 0xa085, 0x0018, 0x2012, 0x8211, 0xa384, 0x0400,
629 0x0040, 0x239b, 0x689c, 0xa084, 0x0100, 0x00c0, 0x239b, 0x1078,
630 0x2491, 0x0078, 0x1bff, 0xa186, 0x0018, 0x0040, 0x23a3, 0xa186,
631 0x0014, 0x0040, 0x1bff, 0x6912, 0x6814, 0xa084, 0x8000, 0x0040,
632 0x23ab, 0x7038, 0x6816, 0xa68c, 0xdf00, 0x691a, 0x1078, 0x28e0,
633 0x1078, 0x28ef, 0x00c0, 0x23b8, 0x6008, 0xa084, 0xffef, 0x600a,
634 0x681c, 0xa084, 0x0001, 0x00c0, 0x23c1, 0x1078, 0x28d9, 0x0078,
635 0x23c5, 0x7054, 0x2060, 0x6800, 0x6002, 0x1078, 0x17dd, 0x0078,
636 0x1bff, 0xa282, 0x0004, 0x0048, 0x23cf, 0x1078, 0x1ba5, 0x2200,
637 0x0079, 0x23d2, 0x23d6, 0x23d8, 0x23e5, 0x23d8, 0x1078, 0x1ba5,
638 0x7000, 0xa086, 0x0005, 0x0040, 0x23e1, 0x1078, 0x2b89, 0x781b,
639 0x0069, 0x781b, 0x006a, 0x0078, 0x1bf7, 0x7890, 0x8007, 0x8001,
640 0xa084, 0x0007, 0xa080, 0x0018, 0x789a, 0x79a8, 0xa18c, 0x00ff,
641 0xa186, 0x0003, 0x0040, 0x23f6, 0x0078, 0x2b6a, 0x781b, 0x006a,
642 0x0078, 0x1bf7, 0x681c, 0xa085, 0x0004, 0x681e, 0x82ff, 0x00c0,
643 0x2405, 0x1078, 0x2b89, 0x0078, 0x240c, 0x8211, 0x0040, 0x240a,
644 0x1078, 0x1ba5, 0x1078, 0x2b99, 0x781b, 0x0069, 0x0078, 0x1bf7,
645 0x1078, 0x2d77, 0x7830, 0xa084, 0x00c0, 0x00c0, 0x241c, 0x0018,
646 0x241c, 0x791a, 0xa006, 0x007c, 0xa085, 0x0001, 0x007c, 0xa684,
647 0x0060, 0x00c0, 0x2429, 0x682f, 0x0000, 0x682b, 0x0000, 0x0078,
648 0x2490, 0xa684, 0x0800, 0x00c0, 0x2438, 0x68b0, 0xa084, 0x4800,
649 0xa635, 0xa684, 0x0800, 0x00c0, 0x2438, 0x1078, 0x2ec7, 0x007c,
650 0xa684, 0x0020, 0x0040, 0x2462, 0x78d0, 0x8003, 0x00c8, 0x2446,
651 0xa006, 0x1078, 0x3194, 0x78d4, 0x1078, 0x31f9, 0xa684, 0x4000,
652 0x0040, 0x2450, 0x682f, 0x0000, 0x682b, 0x0000, 0x0078, 0x2435,
653 0x68b0, 0xa084, 0x4800, 0xa635, 0xa684, 0x4000, 0x00c0, 0x244a,
654 0x7038, 0xa005, 0x00c0, 0x245c, 0x79d8, 0x7adc, 0x692e, 0x6a2a,
655 0x0078, 0x2435, 0xa684, 0x4000, 0x0040, 0x246c, 0x682f, 0x0000,
656 0x682b, 0x0000, 0x0078, 0x2435, 0x68b0, 0xa084, 0x4800, 0xa635,
657 0xa684, 0x4000, 0x00c0, 0x2466, 0x7038, 0xa005, 0x00c0, 0x247a,
658 0x703b, 0x0007, 0x79d8, 0x7adc, 0x78d0, 0x80f3, 0x00c8, 0x2481,
659 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000, 0x692e, 0x6a2a,
660 0x2100, 0xa205, 0x00c0, 0x248e, 0x0078, 0x2435, 0x1078, 0x3194,
661 0x007c, 0xa384, 0x0200, 0x0040, 0x2499, 0x6008, 0xa085, 0x0002,
662 0x600a, 0x6817, 0x0006, 0x6a28, 0x692c, 0x6a3a, 0x693e, 0x682b,
663 0x0300, 0x682f, 0x0000, 0x6833, 0x2000, 0x6893, 0x0000, 0x6897,
664 0x0020, 0x7000, 0x0079, 0x24ac, 0x24b4, 0x24b6, 0x24bf, 0x24b4,
665 0x24b4, 0x24b4, 0x24b4, 0x24b4, 0x1078, 0x1ba5, 0x681c, 0xa084,
666 0x0001, 0x00c0, 0x24bf, 0x1078, 0x28d9, 0x0078, 0x24c5, 0x7054,
667 0x2c50, 0x2060, 0x6800, 0x6002, 0x2a60, 0x2021, 0x3557, 0x2404,
668 0xa005, 0x0040, 0x24ce, 0x2020, 0x0078, 0x24c7, 0x2d22, 0x206b,
669 0x0000, 0x007c, 0x77b4, 0x1078, 0x2ba6, 0xa7bc, 0x0f00, 0x1078,
670 0x2ca1, 0x6018, 0xa005, 0x0040, 0x2501, 0x0d7e, 0x2001, 0x3f90,
671 0x2068, 0x0d7f, 0x2021, 0x3f80, 0x2009, 0x0004, 0x2011, 0x0010,
672 0x1078, 0x1fc5, 0x0040, 0x2501, 0x157e, 0x20a9, 0x0000, 0x2021,
673 0x3e80, 0x047e, 0x2009, 0x0004, 0x2011, 0x0010, 0x1078, 0x1fc5,
674 0x047f, 0x0040, 0x2500, 0x8420, 0x0070, 0x2500, 0x0078, 0x24f1,
675 0x157f, 0x8738, 0xa784, 0x0007, 0x00c0, 0x24d7, 0x0078, 0x1bff,
676 0x1078, 0x28e0, 0x1078, 0x28ef, 0x6827, 0x0000, 0x789b, 0x000e,
677 0x6f10, 0x6813, 0x0002, 0x1078, 0x31ca, 0xa684, 0x0800, 0x0040,
678 0x251d, 0x6918, 0xa18d, 0x2000, 0x691a, 0x6814, 0xa084, 0x8000,
679 0x0040, 0x2524, 0x6817, 0x0000, 0x2021, 0x3557, 0x6800, 0x2022,
680 0x6a38, 0x693c, 0x6a2a, 0x692e, 0x1078, 0x17dd, 0x0078, 0x1bff,
681 0x1078, 0x241f, 0x6827, 0x0000, 0x789b, 0x000e, 0x6f10, 0x1078,
682 0x2d7c, 0xa08c, 0x00ff, 0x6912, 0x6814, 0xa084, 0x8000, 0x0040,
683 0x2543, 0x7038, 0x6816, 0xa68c, 0xdf00, 0x691a, 0x70a3, 0x0000,
684 0x0078, 0x1bff, 0xa006, 0x1078, 0x2ec7, 0x6813, 0x0000, 0x6817,
685 0x0001, 0xa68c, 0xdf00, 0x691a, 0x6827, 0x0000, 0x7000, 0x0079,
686 0x2559, 0x2561, 0x2563, 0x2563, 0x2565, 0x2565, 0x2565, 0x2561,
687 0x2561, 0x1078, 0x1ba5, 0x1078, 0x28ef, 0x6008, 0xa084, 0xffef,
688 0x600a, 0x0078, 0x28ba, 0x2300, 0x0079, 0x256e, 0x2571, 0x2573,
689 0x25b1, 0x1078, 0x1ba5, 0x7000, 0x0079, 0x2576, 0x257e, 0x2580,
690 0x2580, 0x258b, 0x2580, 0x2592, 0x257e, 0x257e, 0x1078, 0x1ba5,
691 0xa684, 0x2000, 0x00c0, 0x258b, 0xa6b5, 0x2000, 0x7e5a, 0x1078,
692 0x30f0, 0x0078, 0x2d30, 0x6814, 0xa084, 0x8000, 0x0040, 0x2592,
693 0x6817, 0x0007, 0x2009, 0x3518, 0x210c, 0xa186, 0x0000, 0x0040,
694 0x25a7, 0xa186, 0x0001, 0x0040, 0x25ab, 0x2009, 0x352b, 0x200b,
695 0x000b, 0x70a3, 0x0001, 0x781b, 0x0046, 0x0078, 0x1bf7, 0x781b,
696 0x00dd, 0x0078, 0x1bf7, 0x2009, 0x352b, 0x200b, 0x000a, 0x0078,
697 0x1bf7, 0x1078, 0x1ba5, 0x2300, 0x0079, 0x25b6, 0x25b9, 0x25bb,
698 0x25de, 0x1078, 0x1ba5, 0x7000, 0x0079, 0x25be, 0x25c6, 0x25c8,
699 0x25c8, 0x25d3, 0x25c8, 0x25da, 0x25c6, 0x25c6, 0x1078, 0x1ba5,
700 0xa684, 0x2000, 0x00c0, 0x25d3, 0xa6b5, 0x2000, 0x7e5a, 0x1078,
701 0x30f0, 0x0078, 0x2d30, 0x6814, 0xa084, 0x8000, 0x0040, 0x25da,
702 0x6817, 0x0007, 0x781b, 0x00e4, 0x0078, 0x1bf7, 0x681c, 0xa085,
703 0x0004, 0x681e, 0xa6b5, 0x0800, 0x1078, 0x2b89, 0x781b, 0x0069,
704 0x0078, 0x1bf7, 0x2300, 0x0079, 0x25ed, 0x25f0, 0x25f2, 0x25f4,
705 0x1078, 0x1ba5, 0x1078, 0x1ba5, 0xa684, 0x0400, 0x00c0, 0x2613,
706 0x782b, 0x3009, 0x789b, 0x0060, 0x78ab, 0x0000, 0xa684, 0xfffb,
707 0x785a, 0x79e4, 0xa184, 0x0020, 0x0040, 0x260b, 0x78ec, 0xa084,
708 0x0003, 0x00c0, 0x260f, 0x2001, 0x0014, 0x0078, 0x22fa, 0xa184,
709 0x0007, 0x0079, 0x264b, 0x7a90, 0xa294, 0x0007, 0x789b, 0x0060,
710 0x79a8, 0x81ff, 0x0040, 0x2649, 0x789b, 0x0010, 0x7ba8, 0xa384,
711 0x0001, 0x00c0, 0x263a, 0x7ba8, 0x7ba8, 0xa386, 0x0001, 0x00c0,
712 0x262d, 0x2009, 0xfff7, 0x0078, 0x2633, 0xa386, 0x0003, 0x00c0,
713 0x263a, 0x2009, 0xffef, 0x0c7e, 0x7048, 0x2060, 0x6004, 0xa104,
714 0x6006, 0x0c7f, 0x789b, 0x0060, 0x78ab, 0x0000, 0xa684, 0xfffb,
715 0x785a, 0x782b, 0x3009, 0x691c, 0xa18c, 0xfdff, 0xa18c, 0xfeff,
716 0x691e, 0x0078, 0x2d30, 0x2023, 0x2029, 0x2655, 0x265d, 0x2653,
717 0x2653, 0x2653, 0x2d30, 0x1078, 0x1ba5, 0x691c, 0xa18c, 0xfdff,
718 0xa18c, 0xfeff, 0x691e, 0x0078, 0x2d38, 0x691c, 0xa18c, 0xfdff,
719 0xa18c, 0xfeff, 0x691e, 0x0078, 0x2d30, 0x79e4, 0xa184, 0x0030,
720 0x0040, 0x266f, 0x78ec, 0xa084, 0x0003, 0x00c0, 0x2677, 0x6814,
721 0xa085, 0x8000, 0x6816, 0x2001, 0x0014, 0x0078, 0x22fa, 0xa184,
722 0x0007, 0x0079, 0x267b, 0x2d30, 0x2d30, 0x2683, 0x2d30, 0x2d58,
723 0x2d58, 0x2d30, 0x2d30, 0xa684, 0x0400, 0x00c0, 0x26b4, 0x681c,
724 0xa084, 0x0001, 0x0040, 0x2d38, 0xa68c, 0x2060, 0xa18c, 0xfffb,
725 0x795a, 0x69b2, 0x789b, 0x0060, 0x78ab, 0x0000, 0x789b, 0x0061,
726 0x6814, 0xa085, 0x8000, 0x6816, 0x78aa, 0x157e, 0x137e, 0x147e,
727 0x20a1, 0x012c, 0x789b, 0x0000, 0x8000, 0x80ac, 0xad80, 0x000a,
728 0x2098, 0x53a6, 0x147f, 0x137f, 0x157f, 0x6810, 0x8007, 0x789b,
729 0x007e, 0x78aa, 0x0078, 0x2d38, 0x6814, 0xa084, 0x8000, 0x0040,
730 0x26bb, 0x6817, 0x0008, 0x781b, 0x00d8, 0x0078, 0x1bf7, 0x2300,
731 0x0079, 0x26c2, 0x26c7, 0x2742, 0x26c5, 0x1078, 0x1ba5, 0x7000,
732 0xa084, 0x0007, 0x0079, 0x26cc, 0x26d4, 0x26d6, 0x26f2, 0x26d4,
733 0x26d4, 0x24d2, 0x26d4, 0x26d4, 0x1078, 0x1ba5, 0x691c, 0xa18d,
734 0x0001, 0x691e, 0x6800, 0x6006, 0xa005, 0x00c0, 0x26e0, 0x6002,
735 0x6818, 0xa084, 0x000e, 0x0040, 0x26ec, 0x7014, 0x68b6, 0x712c,
736 0xa188, 0x3e80, 0x0078, 0x26ee, 0x2009, 0x3f80, 0x2104, 0x6802,
737 0x2d0a, 0x7156, 0x6eb2, 0xa684, 0x0060, 0x0040, 0x2740, 0xa684,
738 0x0800, 0x00c0, 0x2704, 0xa684, 0x7fff, 0x68b2, 0x6890, 0x6894,
739 0x1078, 0x2ec7, 0x0078, 0x2740, 0xa684, 0x0020, 0x0040, 0x2716,
740 0xa006, 0x1078, 0x3194, 0x78d0, 0x8003, 0x00c8, 0x2712, 0x78d4,
741 0x1078, 0x31f9, 0x79d8, 0x7adc, 0x0078, 0x271a, 0x1078, 0x2cae,
742 0x1078, 0x3194, 0xa684, 0x8000, 0x0040, 0x2740, 0xa684, 0x7fff,
743 0x68b2, 0x789b, 0x0074, 0x1078, 0x2d7c, 0x2010, 0x1078, 0x2d7c,
744 0x2008, 0xa684, 0x0020, 0x00c0, 0x2738, 0x1078, 0x2d7c, 0x801b,
745 0x00c8, 0x2733, 0x8000, 0xa084, 0x003f, 0xa108, 0xa291, 0x0000,
746 0x6b94, 0x2100, 0xa302, 0x68ae, 0x6b90, 0x2200, 0xa303, 0x68aa,
747 0x0078, 0x1bff, 0x0078, 0x2b76, 0x7033, 0x0000, 0xa282, 0x0005,
748 0x0050, 0x274c, 0x1078, 0x1ba5, 0x2300, 0x0079, 0x274f, 0x2752,
749 0x275c, 0x277f, 0x2200, 0x0079, 0x2755, 0x275a, 0x2b76, 0x275a,
750 0x27a8, 0x27f9, 0x1078, 0x1ba5, 0x7000, 0xa086, 0x0001, 0x00c0,
751 0x2769, 0x1078, 0x28ef, 0x1078, 0x2ec7, 0x7034, 0x600a, 0x0078,
752 0x276e, 0x7000, 0xa086, 0x0003, 0x0040, 0x2763, 0x7003, 0x0005,
753 0x2001, 0x3f90, 0x2068, 0x703e, 0x7032, 0x2200, 0x0079, 0x2778,
754 0x2b76, 0x277d, 0x27a8, 0x277d, 0x2b76, 0x1078, 0x1ba5, 0x7000,
755 0xa086, 0x0001, 0x00c0, 0x278c, 0x1078, 0x28ef, 0x1078, 0x2ec7,
756 0x7034, 0x600a, 0x0078, 0x2791, 0x7000, 0xa086, 0x0003, 0x0040,
757 0x2786, 0x7003, 0x0005, 0x2001, 0x3f90, 0x2068, 0x703e, 0x7032,
758 0x2200, 0x0079, 0x279b, 0x27a2, 0x27a0, 0x27a2, 0x27a0, 0x27a2,
759 0x1078, 0x1ba5, 0x1078, 0x2b99, 0x781b, 0x0069, 0x0078, 0x1bf7,
760 0x7000, 0xa086, 0x0001, 0x00c0, 0x27b5, 0x1078, 0x28ef, 0x1078,
761 0x2ec7, 0x7034, 0x600a, 0x0078, 0x27ba, 0x7000, 0xa086, 0x0003,
762 0x0040, 0x27af, 0x7003, 0x0002, 0x7a80, 0xa294, 0x0f00, 0x789b,
763 0x0018, 0x7ca8, 0xa484, 0x0007, 0xa215, 0x2069, 0x3f80, 0x2d04,
764 0x2d08, 0x7156, 0x2068, 0xa005, 0x0040, 0x27d5, 0x6810, 0xa206,
765 0x0040, 0x27ee, 0x6800, 0x0078, 0x27c8, 0x7003, 0x0005, 0x2001,
766 0x3f90, 0x2068, 0x703e, 0x7032, 0x157e, 0x20a9, 0x002f, 0x2003,
767 0x0000, 0x8000, 0x0070, 0x27e6, 0x0078, 0x27df, 0x157f, 0x6a12,
768 0x68b3, 0x0700, 0x681f, 0x0800, 0x6823, 0x0003, 0x6eb0, 0x7e5a,
769 0x681c, 0xa084, 0x0c00, 0x0040, 0x284f, 0x1078, 0x2b91, 0x0078,
770 0x284f, 0x7000, 0xa086, 0x0001, 0x00c0, 0x2806, 0x1078, 0x28ef,
771 0x1078, 0x2ec7, 0x7034, 0x600a, 0x0078, 0x280b, 0x7000, 0xa086,
772 0x0003, 0x0040, 0x2800, 0x7003, 0x0002, 0x7a80, 0xa294, 0x0f00,
773 0x789b, 0x0018, 0x7ca8, 0xa484, 0x0007, 0xa215, 0x79a8, 0x79a8,
774 0xa18c, 0x00ff, 0xa1e8, 0x3e80, 0x2d04, 0x2d08, 0x7156, 0x2068,
775 0xa005, 0x0040, 0x282a, 0x6810, 0xa206, 0x0040, 0x2843, 0x6800,
776 0x0078, 0x281d, 0x7003, 0x0005, 0x2001, 0x3f90, 0x2068, 0x703e,
777 0x7032, 0x157e, 0x20a9, 0x002f, 0x2003, 0x0000, 0x8000, 0x0070,
778 0x283b, 0x0078, 0x2834, 0x157f, 0x6a12, 0x68b3, 0x0700, 0x681f,
779 0x0800, 0x6823, 0x0003, 0x6eb0, 0x7e5a, 0x681c, 0xa084, 0x0c00,
780 0x0040, 0x284f, 0x1078, 0x2b8d, 0x7e58, 0x0078, 0x284f, 0x027e,
781 0x8207, 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080, 0x3600,
782 0x2060, 0x704a, 0x6000, 0x704e, 0x6004, 0x7052, 0xa684, 0x0060,
783 0x0040, 0x2886, 0x6b94, 0x6c90, 0x69a8, 0x68ac, 0xa105, 0x00c0,
784 0x2874, 0x7bd2, 0x7bda, 0x7cd6, 0x7cde, 0xa6b4, 0xb7ff, 0x7e5a,
785 0x1078, 0x30f0, 0x0078, 0x2886, 0x68ac, 0xa31a, 0x2100, 0xa423,
786 0x2400, 0xa305, 0x0040, 0x2886, 0x7bd2, 0x7bda, 0x7cd6, 0x7cde,
787 0x68ac, 0xa6b4, 0xbfff, 0x7e5a, 0x1078, 0x311d, 0x077f, 0x1078,
788 0x2ca1, 0x2009, 0x006a, 0xa684, 0x0008, 0x0040, 0x2891, 0x2009,
789 0x0069, 0xa6b5, 0x2000, 0x7e5a, 0x791a, 0x2d00, 0x703e, 0x8207,
790 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080, 0x3600, 0x2048,
791 0x0078, 0x1bf7, 0x6020, 0xa005, 0x0040, 0x28ae, 0x8001, 0x6022,
792 0x6008, 0xa085, 0x0008, 0x600a, 0x7010, 0x6026, 0x007c, 0xa006,
793 0x1078, 0x2ec7, 0x6813, 0x0000, 0x6817, 0x0001, 0x681f, 0x0040,
794 0x681b, 0x0100, 0x7000, 0xa084, 0x0007, 0x0079, 0x28bf, 0x28c7,
795 0x28c9, 0x28c9, 0x28d5, 0x28d1, 0x28c7, 0x28c7, 0x28c7, 0x1078,
796 0x1ba5, 0x1078, 0x28e0, 0x1078, 0x28d9, 0x1078, 0x17dd, 0x0078,
797 0x1bff, 0x70a3, 0x0000, 0x0078, 0x1bff, 0x6817, 0x0000, 0x0078,
798 0x2508, 0x6800, 0xa005, 0x00c0, 0x28de, 0x6002, 0x6006, 0x007c,
799 0x6010, 0xa005, 0x0040, 0x28e9, 0x8001, 0x00d0, 0x28e9, 0x1078,
800 0x1ba5, 0x6012, 0x6008, 0xa084, 0xffef, 0x600a, 0x007c, 0x6018,
801 0xa005, 0x0040, 0x28f5, 0x8001, 0x601a, 0x007c, 0x1078, 0x2d77,
802 0x6817, 0x0018, 0x0078, 0x2926, 0x1078, 0x2d77, 0x6817, 0x0019,
803 0x0078, 0x2926, 0x1078, 0x2d77, 0x6817, 0x001a, 0x0078, 0x2926,
804 0x77b4, 0x1078, 0x2ca1, 0x71b8, 0xa18c, 0x00ff, 0xa1e8, 0x3e80,
805 0x2d04, 0x2d08, 0x2068, 0xa005, 0x00c0, 0x2918, 0x0078, 0x1bff,
806 0x6810, 0x72b4, 0xa206, 0x0040, 0x2920, 0x6800, 0x0078, 0x2911,
807 0x6800, 0x200a, 0x6817, 0x0005, 0x70bf, 0x0000, 0x1078, 0x28e0,
808 0x681c, 0xa084, 0x0001, 0x00c0, 0x292f, 0x1078, 0x28d9, 0x1078,
809 0x28ef, 0x681b, 0x0000, 0x681f, 0x0020, 0x1078, 0x17dd, 0x0078,
810 0x1bff, 0xa282, 0x0003, 0x00c0, 0x2b6a, 0x7da8, 0xa5ac, 0x00ff,
811 0x7ea8, 0xa6b4, 0x00ff, 0x691c, 0xa18d, 0x0080, 0x691e, 0xa184,
812 0x0100, 0x0040, 0x2999, 0xa18c, 0xfeff, 0x691e, 0xa6b4, 0x00ff,
813 0x0040, 0x2983, 0xa682, 0x000f, 0x0048, 0x295a, 0x0040, 0x295a,
814 0x2031, 0x000f, 0x852b, 0x852b, 0x1078, 0x2c24, 0x0040, 0x2964,
815 0x1078, 0x2a33, 0x0078, 0x298c, 0x1078, 0x2bdf, 0x0c7e, 0x2960,
816 0x6004, 0xa084, 0xfff5, 0x6006, 0x1078, 0x2a57, 0x0c7f, 0x691c,
817 0xa18d, 0x0100, 0x691e, 0x7e58, 0xa6b5, 0x0004, 0x7e5a, 0xa684,
818 0x0400, 0x00c0, 0x297f, 0x781b, 0x0055, 0x0078, 0x1bf7, 0x781b,
819 0x0069, 0x0078, 0x1bf7, 0x0c7e, 0x2960, 0x6004, 0xa084, 0xfff5,
820 0x6006, 0x1078, 0x2a57, 0x0c7f, 0x7e58, 0xa684, 0x0400, 0x00c0,
821 0x2995, 0x781b, 0x0058, 0x0078, 0x1bf7, 0x781b, 0x006a, 0x0078,
822 0x1bf7, 0x0c7e, 0x7048, 0x2060, 0x6100, 0xa18c, 0x1000, 0x0040,
823 0x29d9, 0x6208, 0x8217, 0xa294, 0x00ff, 0xa282, 0x000f, 0x0048,
824 0x29ad, 0x0040, 0x29ad, 0x2011, 0x000f, 0x2600, 0xa202, 0x00c8,
825 0x29b2, 0x2230, 0x6208, 0xa294, 0x00ff, 0x7018, 0xa086, 0x0028,
826 0x00c0, 0x29c2, 0xa282, 0x0019, 0x00c8, 0x29c8, 0x2011, 0x0019,
827 0x0078, 0x29c8, 0xa282, 0x000c, 0x00c8, 0x29c8, 0x2011, 0x000c,
828 0x2200, 0xa502, 0x00c8, 0x29cd, 0x2228, 0x1078, 0x2be3, 0x852b,
829 0x852b, 0x1078, 0x2c24, 0x0040, 0x29d9, 0x1078, 0x2a33, 0x0078,
830 0x29dd, 0x1078, 0x2bdf, 0x1078, 0x2a57, 0x7858, 0xa085, 0x0004,
831 0x785a, 0x0c7f, 0x781b, 0x0069, 0x0078, 0x1bf7, 0x0c7e, 0x2960,
832 0x6000, 0xa084, 0x1000, 0x00c0, 0x2a01, 0x6010, 0xa084, 0x000f,
833 0x00c0, 0x29fb, 0xa18c, 0x0002, 0x00c0, 0x29fb, 0xa18c, 0xfff5,
834 0x6106, 0x0c7f, 0x007c, 0x2011, 0x0032, 0x2019, 0x0000, 0x0078,
835 0x2a23, 0x6208, 0xa294, 0x00ff, 0x7018, 0xa086, 0x0028, 0x00c0,
836 0x2a11, 0xa282, 0x0019, 0x00c8, 0x2a17, 0x2011, 0x0019, 0x0078,
837 0x2a17, 0xa282, 0x000c, 0x00c8, 0x2a17, 0x2011, 0x000c, 0x6308,
838 0x831f, 0xa39c, 0x00ff, 0xa382, 0x000f, 0x0048, 0x2a23, 0x0040,
839 0x2a23, 0x2019, 0x000f, 0x78ab, 0x0001, 0x78ab, 0x0003, 0x78ab,
840 0x0001, 0x7aaa, 0x7baa, 0xa8c0, 0x0005, 0x681c, 0xa085, 0x0100,
841 0x681e, 0x0c7f, 0x007c, 0x0c7e, 0x7148, 0x2160, 0x2008, 0xa084,
842 0xfff0, 0xa635, 0x7e86, 0x6018, 0x789a, 0x7eae, 0x6612, 0x78a4,
843 0xa084, 0xfff8, 0xa18c, 0x0007, 0xa105, 0x78a6, 0x6016, 0x788a,
844 0xa6b4, 0x000f, 0x8637, 0x8204, 0x8004, 0xa084, 0x00ff, 0xa605,
845 0x600e, 0x6004, 0xa084, 0xfff5, 0x6006, 0x0c7f, 0x007c, 0x0c7e,
846 0x7048, 0x2060, 0x6018, 0x789a, 0x78a4, 0xa084, 0xfff0, 0x78a6,
847 0x6012, 0x7884, 0xa084, 0xfff0, 0x7886, 0x0c7f, 0x007c, 0xa282,
848 0x0002, 0x00c0, 0x2b6a, 0x7aa8, 0x691c, 0xa18d, 0x0080, 0x691e,
849 0xa184, 0x0200, 0x0040, 0x2aac, 0xa18c, 0xfdff, 0x691e, 0xa294,
850 0x00ff, 0xa282, 0x0002, 0x00c8, 0x2b6a, 0x1078, 0x2af3, 0x1078,
851 0x2a57, 0xa980, 0x0001, 0x200c, 0x1078, 0x2c9d, 0x1078, 0x29e6,
852 0x88ff, 0x0040, 0x2a9f, 0x789b, 0x0060, 0x2800, 0x78aa, 0x7e58,
853 0xa6b5, 0x0004, 0x7e5a, 0xa684, 0x0400, 0x00c0, 0x2a9b, 0x781b,
854 0x0055, 0x0078, 0x1bf7, 0x781b, 0x0069, 0x0078, 0x1bf7, 0x7e58,
855 0xa684, 0x0400, 0x00c0, 0x2aa8, 0x781b, 0x0058, 0x0078, 0x1bf7,
856 0x781b, 0x006a, 0x0078, 0x1bf7, 0xa282, 0x0002, 0x00c8, 0x2ab4,
857 0xa284, 0x0001, 0x0040, 0x2abe, 0x7148, 0xa188, 0x0000, 0x210c,
858 0xa18c, 0x2000, 0x00c0, 0x2abe, 0x2011, 0x0000, 0x1078, 0x2bd1,
859 0x1078, 0x2af3, 0x1078, 0x2a57, 0x7858, 0xa085, 0x0004, 0x785a,
860 0x781b, 0x0069, 0x0078, 0x1bf7, 0x0c7e, 0x027e, 0x2960, 0x6000,
861 0x2011, 0x0001, 0xa084, 0x2000, 0x00c0, 0x2ae3, 0x6014, 0xa084,
862 0x0040, 0x00c0, 0x2ae1, 0xa18c, 0xffef, 0x6106, 0xa006, 0x0078,
863 0x2af0, 0x2011, 0x0000, 0x78ab, 0x0001, 0x78ab, 0x0002, 0x78ab,
864 0x0003, 0x7aaa, 0xa8c0, 0x0004, 0x681c, 0xa085, 0x0200, 0x681e,
865 0x027f, 0x0c7f, 0x007c, 0x0c7e, 0x7048, 0x2060, 0x82ff, 0x0040,
866 0x2afb, 0x2011, 0x0040, 0x6018, 0xa080, 0x0002, 0x789a, 0x78a4,
867 0xa084, 0xffbf, 0xa205, 0x78a6, 0x6016, 0x788a, 0x6004, 0xa084,
868 0xffef, 0x6006, 0x0c7f, 0x007c, 0x007e, 0x7000, 0xa086, 0x0003,
869 0x0040, 0x2b15, 0x007f, 0x0078, 0x2b18, 0x007f, 0x0078, 0x2b66,
870 0xa684, 0x0020, 0x0040, 0x2b66, 0x7888, 0xa084, 0x0040, 0x0040,
871 0x2b66, 0x78a8, 0x8001, 0x0040, 0x2b25, 0x7bb8, 0xa384, 0x003f,
872 0x831b, 0x00c8, 0x2b2c, 0x8000, 0xa005, 0x0040, 0x2b4d, 0x831b,
873 0x00c8, 0x2b35, 0x8001, 0x0040, 0x2b62, 0xa006, 0x1078, 0x3194,
874 0x78b4, 0x1078, 0x31f9, 0x0078, 0x2b66, 0xa684, 0x4000, 0x0040,
875 0x2b4d, 0x78b8, 0x801b, 0x00c8, 0x2b46, 0x8000, 0xa084, 0x003f,
876 0x00c0, 0x2b62, 0xa6b4, 0xbfff, 0x7e5a, 0x79d8, 0x7adc, 0x2001,
877 0x0001, 0xa108, 0x00c8, 0x2b56, 0xa291, 0x0000, 0x79d2, 0x79da,
878 0x7ad6, 0x7ade, 0x1078, 0x3194, 0x781b, 0x0067, 0x1078, 0x305e,
879 0x0078, 0x1bf7, 0x781b, 0x0067, 0x0078, 0x1bf7, 0x781b, 0x006a,
880 0x0078, 0x1bf7, 0x1078, 0x2b9d, 0x781b, 0x0069, 0x0078, 0x1bf7,
881 0x1078, 0x2b89, 0x781b, 0x0069, 0x0078, 0x1bf7, 0x6823, 0x0002,
882 0x1078, 0x2b91, 0x691c, 0xa18d, 0x0020, 0x691e, 0x6814, 0xa084,
883 0x8000, 0x0040, 0x2b85, 0x6817, 0x0005, 0x781b, 0x0069, 0x0078,
884 0x1bf7, 0x2001, 0x0005, 0x0078, 0x2b9f, 0x2001, 0x000c, 0x0078,
885 0x2b9f, 0x2001, 0x0006, 0x0078, 0x2b9f, 0x2001, 0x000d, 0x0078,
886 0x2b9f, 0x2001, 0x0009, 0x0078, 0x2b9f, 0x2001, 0x0007, 0x789b,
887 0x007f, 0x78aa, 0xa6b5, 0x0008, 0x7e5a, 0x007c, 0x077e, 0x873f,
888 0xa7bc, 0x000f, 0x873b, 0x873b, 0x8703, 0xa0e0, 0x3600, 0xa7b8,
889 0x0020, 0x7f9a, 0x79a4, 0xa184, 0x000f, 0x0040, 0x2bbf, 0xa184,
890 0xfff0, 0x78a6, 0x6012, 0x6004, 0xa085, 0x0008, 0x6006, 0x8738,
891 0x8738, 0x7f9a, 0x79a4, 0xa184, 0x0040, 0x0040, 0x2bcf, 0xa184,
892 0xffbf, 0x78a6, 0x6016, 0x6004, 0xa085, 0x0010, 0x6006, 0x077f,
893 0x007c, 0x789b, 0x0010, 0x78ab, 0x0001, 0x78ab, 0x0002, 0x78ab,
894 0x0003, 0x7aaa, 0x789b, 0x0060, 0x78ab, 0x0004, 0x007c, 0x2031,
895 0x0000, 0x2029, 0x0032, 0x789b, 0x0010, 0x78ab, 0x0001, 0x78ab,
896 0x0003, 0x78ab, 0x0001, 0x7daa, 0x7eaa, 0x789b, 0x0060, 0x78ab,
897 0x0005, 0x007c, 0x157e, 0x8007, 0xa084, 0x00ff, 0x8003, 0x8003,
898 0xa080, 0x0020, 0x789a, 0x79a4, 0xa18c, 0xfff0, 0x2001, 0x3546,
899 0x2004, 0xa082, 0x0028, 0x0040, 0x2c0d, 0x2021, 0x2c84, 0x2019,
900 0x0014, 0x20a9, 0x000c, 0x0078, 0x2c13, 0x2021, 0x2c90, 0x2019,
901 0x0019, 0x20a9, 0x000d, 0x2011, 0x0064, 0x2404, 0xa084, 0xfff0,
902 0xa106, 0x0040, 0x2c22, 0x8420, 0x2300, 0xa210, 0x0070, 0x2c22,
903 0x0078, 0x2c15, 0x157f, 0x007c, 0x157e, 0x2011, 0x3546, 0x2214,
904 0xa282, 0x0032, 0x0048, 0x2c38, 0x0040, 0x2c3c, 0x2021, 0x2c76,
905 0x2019, 0x0011, 0x20a9, 0x000e, 0x2011, 0x0032, 0x0078, 0x2c4c,
906 0xa282, 0x0028, 0x0040, 0x2c44, 0x2021, 0x2c84, 0x2019, 0x0014,
907 0x20a9, 0x000c, 0x0078, 0x2c4a, 0x2021, 0x2c90, 0x2019, 0x0019,
908 0x20a9, 0x000d, 0x2011, 0x0064, 0x2200, 0xa502, 0x0040, 0x2c5c,
909 0x0048, 0x2c5c, 0x8420, 0x2300, 0xa210, 0x0070, 0x2c59, 0x0078,
910 0x2c4c, 0x157f, 0xa006, 0x007c, 0x157f, 0xa582, 0x0064, 0x00c8,
911 0x2c65, 0x7808, 0xa085, 0x0070, 0x780a, 0x78ec, 0xa084, 0x0300,
912 0x0040, 0x2c73, 0x2404, 0xa09e, 0x1201, 0x00c0, 0x2c73, 0x2001,
913 0x2101, 0x0078, 0x2c74, 0x2404, 0xa005, 0x007c, 0x1201, 0x3002,
914 0x3202, 0x4203, 0x4403, 0x5404, 0x5604, 0x6605, 0x6805, 0x7806,
915 0x7a06, 0x0a07, 0x0c07, 0x0e07, 0x3202, 0x4202, 0x5202, 0x6202,
916 0x7202, 0x6605, 0x7605, 0x7805, 0x7a05, 0x7c05, 0x7e05, 0x7f05,
917 0x2202, 0x3202, 0x4202, 0x5202, 0x5404, 0x6404, 0x7404, 0x7604,
918 0x7804, 0x7a04, 0x7c04, 0x7e04, 0x7f04, 0x789b, 0x0010, 0xa046,
919 0x007c, 0xa784, 0x0f00, 0x800c, 0xa784, 0x0007, 0x8003, 0x8003,
920 0x8003, 0x8003, 0xa105, 0xa0e0, 0x3680, 0x007c, 0x79d8, 0x7adc,
921 0x78d0, 0x801b, 0x00c8, 0x2cb5, 0x8000, 0xa084, 0x003f, 0xa108,
922 0xa291, 0x0000, 0x007c, 0x0f7e, 0x2079, 0x0100, 0x2009, 0x3540,
923 0x2091, 0x8000, 0x2104, 0x0079, 0x2cc5, 0x2cf7, 0x2ccf, 0x2ccf,
924 0x2ccf, 0x2ccf, 0x2ccf, 0x2ccd, 0x2ccd, 0x1078, 0x1ba5, 0x784b,
925 0x0004, 0x7848, 0xa084, 0x0004, 0x00c0, 0x2cd1, 0x784b, 0x0008,
926 0x7848, 0xa084, 0x0008, 0x00c0, 0x2cd8, 0x68b0, 0xa085, 0x4000,
927 0x68b2, 0x7858, 0xa085, 0x4000, 0x785a, 0x7830, 0xa084, 0x0080,
928 0x00c0, 0x2cf7, 0x0018, 0x2cf7, 0x6818, 0xa084, 0x0020, 0x00c0,
929 0x2cf5, 0x781b, 0x00dd, 0x0078, 0x2cf7, 0x781b, 0x00e4, 0x2091,
930 0x8001, 0x0f7f, 0x007c, 0x0c7e, 0x6810, 0x8007, 0xa084, 0x000f,
931 0x8003, 0x8003, 0x8003, 0xa0e0, 0x3600, 0x6004, 0xa084, 0x000a,
932 0x00c0, 0x2d2e, 0x6108, 0xa194, 0xff00, 0x0040, 0x2d2e, 0xa18c,
933 0x00ff, 0x2001, 0x0019, 0xa106, 0x0040, 0x2d1d, 0x2001, 0x0032,
934 0xa106, 0x0040, 0x2d21, 0x0078, 0x2d25, 0x2009, 0x0020, 0x0078,
935 0x2d27, 0x2009, 0x003f, 0x0078, 0x2d27, 0x2011, 0x0000, 0x2100,
936 0xa205, 0x600a, 0x6004, 0xa085, 0x0002, 0x6006, 0x0c7f, 0x007c,
937 0x781b, 0x006a, 0x0078, 0x1bf7, 0x781b, 0x0069, 0x0078, 0x1bf7,
938 0x781b, 0x0058, 0x0078, 0x1bf7, 0x781b, 0x0055, 0x0078, 0x1bf7,
939 0x781b, 0x00dd, 0x0078, 0x1bf7, 0x781b, 0x00dc, 0x0078, 0x1bf7,
940 0x781b, 0x00e4, 0x0078, 0x1bf7, 0x781b, 0x00e3, 0x0078, 0x1bf7,
941 0x781b, 0x009e, 0x0078, 0x1bf7, 0x781b, 0x009d, 0x0078, 0x1bf7,
942 0x70a3, 0x0001, 0x781b, 0x0046, 0x0078, 0x1bf7, 0x007e, 0x7830,
943 0xa084, 0x00c0, 0x00c0, 0x2d75, 0x7808, 0xa084, 0xfffd, 0x780a,
944 0x0005, 0x0005, 0x0005, 0x0005, 0x78ec, 0xa084, 0x0021, 0x0040,
945 0x2d75, 0x7808, 0xa085, 0x0002, 0x780a, 0x007f, 0x007c, 0x7808,
946 0xa085, 0x0002, 0x780a, 0x007c, 0x7830, 0xa084, 0x0040, 0x00c0,
947 0x2d7c, 0x0098, 0x2d85, 0x78ac, 0x007c, 0x7808, 0xa084, 0xfffd,
948 0x780a, 0x0005, 0x0005, 0x0005, 0x0005, 0x78ec, 0xa084, 0x0021,
949 0x0040, 0x2d94, 0x0098, 0x2d92, 0x78ac, 0x007e, 0x7808, 0xa085,
950 0x0002, 0x780a, 0x007f, 0x007c, 0xa784, 0x0070, 0x0040, 0x2da8,
951 0x0c7e, 0x2d60, 0x2f68, 0x1078, 0x1b6b, 0x2d78, 0x2c68, 0x0c7f,
952 0x6817, 0x0003, 0x7858, 0xa084, 0x3f00, 0x681a, 0x682f, 0x0000,
953 0x682b, 0x0000, 0x784b, 0x0008, 0x78e4, 0xa005, 0x00d0, 0x2015,
954 0xa084, 0x0020, 0x0040, 0x2015, 0x78ec, 0xa084, 0x0003, 0x0040,
955 0x2015, 0x0018, 0x2015, 0x0078, 0x2b70, 0x0c7e, 0x6810, 0x8007,
956 0xa084, 0x000f, 0x8003, 0x8003, 0x8003, 0xa080, 0x3600, 0x2060,
957 0x2048, 0x704a, 0x6000, 0x704e, 0x6004, 0x7052, 0x0c7f, 0x007c,
958 0x0020, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
959 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
960 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
961 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020, 0x0000, 0x0020,
962 0x0000, 0x0020, 0x0062, 0x0009, 0x0014, 0x0014, 0x9847, 0x0014,
963 0x0014, 0x98f5, 0x98e7, 0x0014, 0x0014, 0x0080, 0x00bf, 0x0100,
964 0x0402, 0x2008, 0xf880, 0xa20a, 0x0014, 0x300b, 0xa20c, 0x0014,
965 0xa200, 0x8838, 0x817e, 0x842a, 0x84a0, 0x3806, 0x8839, 0x28c2,
966 0x9cc3, 0xa805, 0x0864, 0xa83b, 0x3008, 0x28c1, 0x9cc3, 0xa201,
967 0x300c, 0x2847, 0x8161, 0x846a, 0x8000, 0x84a4, 0x1856, 0x883a,
968 0xa808, 0x28e2, 0x9ca0, 0xa8f3, 0x0864, 0xa829, 0x300c, 0xa801,
969 0x3008, 0x28e1, 0x9ca0, 0x280d, 0xa204, 0x64c0, 0x67a0, 0x6fc0,
970 0x1814, 0x883b, 0x7023, 0x8576, 0x8677, 0xa80f, 0x786e, 0x883e,
971 0xa80c, 0x282b, 0xa205, 0x64a0, 0x67a0, 0x6fc0, 0x1814, 0x883b,
972 0x7023, 0x8576, 0x8677, 0xa801, 0x883e, 0x2069, 0x28c1, 0x9cc3,
973 0x2044, 0x2103, 0x20a2, 0x2081, 0xa8dc, 0xa207, 0x0014, 0xa203,
974 0x8000, 0x84a8, 0x85a4, 0x1872, 0x849a, 0x883c, 0x1fe2, 0xf601,
975 0xa208, 0x856e, 0x866f, 0x0704, 0x3008, 0x9ca0, 0x0014, 0xa202,
976 0x8000, 0x85a4, 0x3009, 0x84a8, 0x19e2, 0xf848, 0x8174, 0x86eb,
977 0x85eb, 0x872e, 0x87a9, 0x883f, 0x08e6, 0xa8f1, 0xf861, 0xa8e8,
978 0xf801, 0x0014, 0xf881, 0x0016, 0x85b2, 0x80f0, 0x9532, 0xfaa2,
979 0x1de2, 0x0014, 0x8532, 0xf221, 0x0014, 0x1de2, 0x84a8, 0xd6e0,
980 0x1fe6, 0x0014, 0xa206, 0x6865, 0x817f, 0x842a, 0x1dc1, 0x8823,
981 0x0016, 0x6042, 0x8008, 0xa8fa, 0x8000, 0x84a4, 0x8160, 0x842a,
982 0xf021, 0x3008, 0x84a8, 0x1dc6, 0x20d7, 0x8822, 0x0016, 0x8000,
983 0x2848, 0x1011, 0xa8fc, 0x3008, 0x8000, 0xa000, 0x2802, 0x1011,
984 0xa8fd, 0xa887, 0x3008, 0x283d, 0x1011, 0xa8fd, 0xa209, 0x0017,
985 0x300c, 0x8000, 0x85a4, 0x1de2, 0xdac1, 0x0014, 0x26e0, 0x873a,
986 0xfaa2, 0x19f2, 0x1fe2, 0x0014, 0xa20b, 0x0014, 0xa20d, 0x817e,
987 0x842a, 0x84a0, 0x3806, 0x0210, 0x9ccd, 0x0704, 0x0000, 0x127e,
988 0x2091, 0x2200, 0x2049, 0x2ec7, 0x7000, 0x7204, 0xa205, 0x720c,
989 0xa215, 0x7008, 0xa084, 0xfffd, 0xa205, 0x0040, 0x2ed9, 0x0078,
990 0x2ede, 0x7003, 0x0000, 0x127f, 0x2000, 0x007c, 0x7000, 0xa084,
991 0x0001, 0x00c0, 0x2f0c, 0x7108, 0x8104, 0x00c8, 0x2eeb, 0x1078,
992 0x2fa8, 0x0078, 0x2ee3, 0x700c, 0xa08c, 0x007f, 0x0040, 0x2f0c,
993 0x7004, 0x8004, 0x00c8, 0x2f03, 0x7014, 0xa005, 0x00c0, 0x2eff,
994 0x7010, 0xa005, 0x0040, 0x2f03, 0xa102, 0x00c8, 0x2ee3, 0x7007,
995 0x0010, 0x0078, 0x2f0c, 0x8aff, 0x0040, 0x2f0c, 0x1078, 0x316b,
996 0x00c0, 0x2f06, 0x0040, 0x2ee3, 0x1078, 0x2f56, 0x7003, 0x0000,
997 0x127f, 0x2000, 0x007c, 0x6424, 0x84ff, 0x0040, 0x2f30, 0x2c70,
998 0x2039, 0x2f35, 0x2704, 0xae68, 0x680c, 0xa630, 0x6808, 0xa529,
999 0x8421, 0x0040, 0x2f30, 0x8738, 0x2704, 0xa005, 0x00c0, 0x2f1b,
1000 0x7098, 0xa075, 0x0040, 0x2f30, 0x2039, 0x2f32, 0x0078, 0x2f1a,
1001 0x007c, 0x0000, 0x0004, 0x0008, 0x000c, 0x0010, 0x0014, 0x0018,
1002 0x001c, 0x0000, 0x127e, 0x2091, 0x2200, 0x2079, 0x3500, 0x2071,
1003 0x0010, 0x7007, 0x000a, 0x7007, 0x0002, 0x7003, 0x0000, 0x2071,
1004 0x0020, 0x7007, 0x000a, 0x7007, 0x0002, 0x7003, 0x0000, 0x2049,
1005 0x0000, 0x78b3, 0x0000, 0x127f, 0x2000, 0x007c, 0x2049, 0x2f56,
1006 0x7004, 0x8004, 0x00c8, 0x2f82, 0x7007, 0x0012, 0x7108, 0x7008,
1007 0xa106, 0x00c0, 0x2f5e, 0xa184, 0x0030, 0x0040, 0x2f6b, 0xa086,
1008 0x0030, 0x00c0, 0x2f5e, 0x7000, 0xa084, 0x0001, 0x00c0, 0x2f82,
1009 0x7008, 0xa084, 0x000c, 0x00c0, 0x2f80, 0x710c, 0xa184, 0x0300,
1010 0x00c0, 0x2f80, 0xa184, 0x007f, 0x00c0, 0x2f56, 0x0078, 0x2f82,
1011 0x6817, 0x0003, 0x7007, 0x0012, 0x7007, 0x0008, 0x7004, 0xa084,
1012 0x0008, 0x00c0, 0x2f86, 0x7007, 0x0012, 0x7108, 0x8104, 0x0048,
1013 0x2f8b, 0x78b3, 0x0000, 0x7003, 0x0000, 0x2049, 0x0000, 0x007c,
1014 0x107e, 0x007e, 0x127e, 0x157e, 0x2091, 0x2200, 0x7108, 0x1078,
1015 0x2fa8, 0x157f, 0x127f, 0x2091, 0x8001, 0x007f, 0x107f, 0x007c,
1016 0x7204, 0x2118, 0x7108, 0x700c, 0xa084, 0x0300, 0x00c0, 0x2fea,
1017 0xa184, 0x000c, 0x00c0, 0x2fea, 0x8213, 0x8213, 0x8213, 0x8213,
1018 0xa284, 0x0100, 0xa10d, 0x810b, 0x810b, 0x810f, 0xa184, 0x0007,
1019 0x0079, 0x2fc2, 0x2fcc, 0x2fdc, 0x2fea, 0x2fdc, 0x2ffe, 0x2ffe,
1020 0x2fea, 0x2ffc, 0x1078, 0x1ba5, 0x7007, 0x0002, 0x8aff, 0x00c0,
1021 0x2fd5, 0x2049, 0x0000, 0x0078, 0x2fd9, 0x1078, 0x316b, 0x00c0,
1022 0x2fd5, 0x78b3, 0x0000, 0x007c, 0x7007, 0x0002, 0x8aff, 0x00c0,
1023 0x2fe3, 0x0078, 0x2fe7, 0x1078, 0x316b, 0x00c0, 0x2fe3, 0x78b3,
1024 0x0000, 0x007c, 0x7007, 0x0002, 0x1078, 0x2f56, 0x1078, 0x2cbb,
1025 0x6814, 0xa084, 0x8000, 0x0040, 0x2ff7, 0x6817, 0x0002, 0x007c,
1026 0x1078, 0x1ba5, 0x1078, 0x1ba5, 0x1078, 0x3050, 0x7210, 0x7114,
1027 0x700c, 0xa09c, 0x007f, 0x2800, 0xa300, 0xa211, 0xa189, 0x0000,
1028 0x78b0, 0xa005, 0x0040, 0x3010, 0x78b3, 0x0000, 0x0078, 0x3033,
1029 0x1078, 0x3050, 0x2704, 0x2c58, 0xac60, 0x630c, 0x2200, 0xa322,
1030 0x6308, 0x2100, 0xa31b, 0x2400, 0xa305, 0x0040, 0x3029, 0x00c8,
1031 0x3029, 0x8412, 0x8210, 0x830a, 0xa189, 0x0000, 0x2b60, 0x0078,
1032 0x3010, 0x2b60, 0x8a07, 0xa7ba, 0x2f32, 0xa73d, 0x2c00, 0x6882,
1033 0x6f86, 0x6c8e, 0x6b8a, 0x7007, 0x0012, 0x1078, 0x2f56, 0x007c,
1034 0x8738, 0x2704, 0xa005, 0x00c0, 0x3044, 0x6098, 0xa005, 0x0040,
1035 0x304d, 0x2060, 0x2039, 0x2f32, 0x8a51, 0x0040, 0x304c, 0x7008,
1036 0xa084, 0x00c0, 0xa086, 0x00c0, 0x007c, 0x2051, 0x0000, 0x007c,
1037 0x8a50, 0x8739, 0x2704, 0xa004, 0x00c0, 0x305d, 0x2039, 0x2f38,
1038 0x6000, 0xa064, 0x00c0, 0x305d, 0x2d60, 0x007c, 0x127e, 0x0d7e,
1039 0x2091, 0x2200, 0x0d7f, 0x6880, 0x2060, 0x6884, 0x6b88, 0x6c8c,
1040 0x8057, 0xaad4, 0x00ff, 0xa084, 0x00ff, 0xa0b8, 0x2f32, 0x7e08,
1041 0xa6b5, 0x000c, 0x6818, 0xa084, 0x0040, 0x0040, 0x3079, 0xa6b5,
1042 0x0001, 0x0f7e, 0x2079, 0x0100, 0x7858, 0x0f7f, 0xa084, 0x0040,
1043 0x0040, 0x3088, 0xa684, 0x0001, 0x00c0, 0x3088, 0xa6b5, 0x0001,
1044 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x308a, 0x7000,
1045 0xa005, 0x0040, 0x3095, 0x1078, 0x1ba5, 0x2400, 0xa305, 0x00c0,
1046 0x309b, 0x0078, 0x30d8, 0x2c58, 0x2704, 0xac60, 0x6004, 0xa400,
1047 0x007e, 0x701a, 0x6000, 0xa301, 0x701e, 0x2009, 0x04fd, 0x2104,
1048 0xa086, 0x04fd, 0x007f, 0x00c0, 0x30c8, 0xa084, 0x0001, 0x0040,
1049 0x30c8, 0xa684, 0x0001, 0x00c0, 0x30c8, 0x7013, 0x0001, 0x7017,
1050 0x0000, 0x7602, 0x7007, 0x0001, 0x78b3, 0x0001, 0xa4a0, 0x0001,
1051 0xa399, 0x0000, 0x6004, 0xa400, 0x701a, 0x6000, 0xa301, 0x701e,
1052 0x620c, 0x2400, 0xa202, 0x7012, 0x6208, 0x2300, 0xa203, 0x7016,
1053 0x7602, 0x7007, 0x0001, 0x2b60, 0x1078, 0x3038, 0x0078, 0x30da,
1054 0x1078, 0x316b, 0x00c0, 0x30d8, 0x127f, 0x2000, 0x007c, 0x127e,
1055 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x7007, 0x0004, 0x7004, 0xa084,
1056 0x0004, 0x00c0, 0x30e6, 0x7003, 0x0008, 0x127f, 0x2000, 0x007c,
1057 0x127e, 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x2049, 0x30f0, 0x7007,
1058 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x30f9, 0x7000, 0xa005,
1059 0x0040, 0x3104, 0x1078, 0x1ba5, 0x7e08, 0xa6b5, 0x000c, 0x6818,
1060 0xa084, 0x0040, 0x0040, 0x310e, 0xa6b5, 0x0001, 0x6824, 0xa005,
1061 0x0040, 0x311a, 0x2050, 0x2039, 0x2f35, 0x2d60, 0x1078, 0x316b,
1062 0x00c0, 0x3116, 0x127f, 0x2000, 0x007c, 0x127e, 0x007e, 0x017e,
1063 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x037f, 0x047f, 0x7e08, 0xa6b5,
1064 0x000c, 0x6818, 0xa084, 0x0040, 0x0040, 0x3130, 0xa6b5, 0x0001,
1065 0x2049, 0x311d, 0x6824, 0xa055, 0x0040, 0x3168, 0x2d70, 0x2e60,
1066 0x2039, 0x2f35, 0x2704, 0xae68, 0x680c, 0xa422, 0x6808, 0xa31b,
1067 0x0048, 0x3155, 0x8a51, 0x00c0, 0x3147, 0x1078, 0x1ba5, 0x8738,
1068 0x2704, 0xa005, 0x00c0, 0x313b, 0x7098, 0xa075, 0x2060, 0x0040,
1069 0x3168, 0x2039, 0x2f32, 0x0078, 0x313a, 0x8422, 0x8420, 0x831a,
1070 0xa399, 0x0000, 0x690c, 0x2400, 0xa122, 0x6908, 0x2300, 0xa11b,
1071 0x00c8, 0x3164, 0x1078, 0x1ba5, 0x2071, 0x0020, 0x0078, 0x3088,
1072 0x127f, 0x2000, 0x007c, 0x7008, 0xa084, 0x00c0, 0xa086, 0x00c0,
1073 0x0040, 0x3193, 0x2704, 0xac08, 0x2104, 0x701e, 0x8108, 0x2104,
1074 0x701a, 0x8108, 0x2104, 0x7016, 0x8108, 0x2104, 0x7012, 0x0f7e,
1075 0x2079, 0x0100, 0x7858, 0x0f7f, 0xa084, 0x0040, 0x0040, 0x318e,
1076 0xa684, 0x0001, 0x00c0, 0x318e, 0xa6b5, 0x0001, 0x7602, 0x7007,
1077 0x0001, 0x1078, 0x3038, 0x007c, 0x127e, 0x007e, 0x0d7e, 0x2091,
1078 0x2200, 0x2049, 0x3194, 0x0d7f, 0x087f, 0x7108, 0xa184, 0x00c0,
1079 0x00c0, 0x31aa, 0x6824, 0xa005, 0x0040, 0x31ba, 0x0078, 0x2ede,
1080 0x0078, 0x31ba, 0x7108, 0x8104, 0x00c8, 0x31b2, 0x1078, 0x2fa8,
1081 0x0078, 0x319d, 0x7007, 0x0010, 0x7108, 0x8104, 0x00c8, 0x31b4,
1082 0x1078, 0x2fa8, 0x7008, 0xa086, 0x0002, 0x00c0, 0x319d, 0x7000,
1083 0xa005, 0x00c0, 0x319d, 0x7003, 0x0000, 0x2049, 0x0000, 0x127f,
1084 0x2000, 0x007c, 0x127e, 0x147e, 0x137e, 0x157e, 0x0d7e, 0x2091,
1085 0x2200, 0x0d7f, 0x2049, 0x31ca, 0xad80, 0x0010, 0x20a0, 0x2099,
1086 0x0031, 0x700c, 0xa084, 0x007f, 0x6826, 0x7007, 0x0008, 0x7007,
1087 0x0002, 0x7003, 0x0001, 0x0040, 0x31e8, 0x8000, 0x80ac, 0x53a5,
1088 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x31ea, 0x2049,
1089 0x0000, 0x7003, 0x0000, 0x157f, 0x137f, 0x147f, 0x127f, 0x2000,
1090 0x007c, 0x127e, 0x007e, 0x0d7e, 0x2091, 0x2200, 0x0d7f, 0x2049,
1091 0x31f9, 0x6880, 0x2060, 0x6884, 0x6b88, 0x6c8c, 0x8057, 0xaad4,
1092 0x00ff, 0xa084, 0x00ff, 0xa0b8, 0x2f32, 0x7e08, 0xa6b5, 0x0004,
1093 0x7007, 0x0004, 0x7004, 0xa084, 0x0004, 0x00c0, 0x3212, 0x2c58,
1094 0x2704, 0xac60, 0x6004, 0xa400, 0x701a, 0x6000, 0xa301, 0x701e,
1095 0x7013, 0x0001, 0x7017, 0x0000, 0x7602, 0x7007, 0x0001, 0x007f,
1096 0x8007, 0x2009, 0x0031, 0x200a, 0x00a0, 0x322c, 0x7108, 0x7007,
1097 0x0002, 0x810c, 0x00c8, 0x322c, 0x810c, 0x0048, 0x3239, 0x0078,
1098 0x2fea, 0xa4a0, 0x0001, 0xa399, 0x0000, 0x6b8a, 0x6c8e, 0x7007,
1099 0x0004, 0x2049, 0x0000, 0x7003, 0x0000, 0x127f, 0x2000, 0x007c,
1100 0x20a9, 0x0010, 0xa006, 0x8004, 0x8086, 0x818e, 0x00c8, 0x3251,
1101 0xa200, 0x00f0, 0x324c, 0x8086, 0x818e, 0x007c, 0x157e, 0x20a9,
1102 0x0010, 0xa005, 0x0040, 0x3277, 0xa11a, 0x00c8, 0x3277, 0x8213,
1103 0x818d, 0x0048, 0x326a, 0xa11a, 0x00c8, 0x326b, 0x00f0, 0x325f,
1104 0x0078, 0x326f, 0xa11a, 0x2308, 0x8210, 0x00f0, 0x325f, 0x007e,
1105 0x3200, 0xa084, 0xf7ff, 0x2080, 0x007f, 0x157f, 0x007c, 0x007e,
1106 0x3200, 0xa085, 0x0800, 0x0078, 0x3273, 0x00e0, 0x32bf, 0x2091,
1107 0x6000, 0x7820, 0x8001, 0x7822, 0x00c0, 0x32b9, 0x7824, 0x7822,
1108 0x2091, 0x8000, 0x2069, 0x3540, 0x6800, 0xa084, 0x0007, 0x0040,
1109 0x32a1, 0xa086, 0x0002, 0x0040, 0x32a1, 0x6830, 0xa00d, 0x0040,
1110 0x32a1, 0x2104, 0xa005, 0x0040, 0x32a1, 0x8001, 0x200a, 0x0040,
1111 0x336f, 0x2061, 0x3680, 0x20a9, 0x0080, 0x6034, 0xa005, 0x0040,
1112 0x32b3, 0x8001, 0x6036, 0x00c0, 0x32b3, 0x6010, 0xa005, 0x0040,
1113 0x32b3, 0x1078, 0x1a19, 0xace0, 0x0010, 0x0070, 0x32b9, 0x0078,
1114 0x32a5, 0x1078, 0x32d4, 0x1078, 0x32c2, 0x1078, 0x32f9, 0x2091,
1115 0x8001, 0x007c, 0x783c, 0x8001, 0x783e, 0x00c0, 0x32d3, 0x7840,
1116 0x783e, 0x7848, 0xa005, 0x0040, 0x32d3, 0x8001, 0x784a, 0x00c0,
1117 0x32d3, 0x1078, 0x1a19, 0x007c, 0x7834, 0x8001, 0x7836, 0x00c0,
1118 0x32f8, 0x7838, 0x7836, 0x2091, 0x8000, 0x7844, 0xa005, 0x00c0,
1119 0x32e3, 0x2001, 0x0101, 0x8001, 0x7846, 0xa080, 0x3e80, 0x2040,
1120 0x2004, 0xa065, 0x0040, 0x32f8, 0x6020, 0xa005, 0x0040, 0x32f4,
1121 0x8001, 0x6022, 0x0040, 0x3328, 0x6000, 0x2c40, 0x0078, 0x32e9,
1122 0x007c, 0x7828, 0x8001, 0x782a, 0x00c0, 0x3327, 0x782c, 0x782a,
1123 0x7830, 0xa005, 0x00c0, 0x3306, 0x2001, 0x0080, 0x8001, 0x7832,
1124 0x8003, 0x8003, 0x8003, 0x8003, 0xa090, 0x3680, 0xa298, 0x0002,
1125 0x2304, 0xa084, 0x0008, 0x0040, 0x3327, 0xa290, 0x0009, 0x2204,
1126 0xa005, 0x0040, 0x331f, 0x8001, 0x2012, 0x00c0, 0x3327, 0x2304,
1127 0xa084, 0xfff7, 0xa085, 0x0080, 0x201a, 0x1078, 0x1a19, 0x007c,
1128 0x2069, 0x3540, 0x6800, 0xa005, 0x0040, 0x3332, 0x683c, 0xac06,
1129 0x0040, 0x336f, 0x6017, 0x0006, 0x60b0, 0xa084, 0x3f00, 0x601a,
1130 0x601c, 0xa084, 0x00ff, 0xa085, 0x0060, 0x601e, 0x6000, 0x2042,
1131 0x6710, 0x6fb6, 0x1078, 0x1692, 0x6818, 0xa005, 0x0040, 0x334a,
1132 0x8001, 0x681a, 0x6808, 0xa084, 0xffef, 0x680a, 0x6810, 0x8001,
1133 0x00d0, 0x3354, 0x1078, 0x1ba5, 0x6812, 0x602f, 0x0000, 0x602b,
1134 0x0000, 0x2c68, 0x1078, 0x17dd, 0x2069, 0x3540, 0x2001, 0x0006,
1135 0x68a2, 0x7944, 0xa184, 0x0100, 0x00c0, 0x336a, 0x69ba, 0x2001,
1136 0x0004, 0x68a2, 0x1078, 0x1a14, 0x2091, 0x8001, 0x007c, 0x2009,
1137 0x354f, 0x2164, 0x2069, 0x0100, 0x1078, 0x1b6b, 0x6017, 0x0006,
1138 0x6858, 0xa084, 0x3f00, 0x601a, 0x601c, 0xa084, 0x00ff, 0xa085,
1139 0x0048, 0x601e, 0x602f, 0x0000, 0x602b, 0x0000, 0x6830, 0xa084,
1140 0x0040, 0x0040, 0x33ab, 0x684b, 0x0004, 0x20a9, 0x0014, 0x6848,
1141 0xa084, 0x0004, 0x0040, 0x3398, 0x0070, 0x3398, 0x0078, 0x338f,
1142 0x684b, 0x0009, 0x20a9, 0x0014, 0x6848, 0xa084, 0x0001, 0x0040,
1143 0x33a5, 0x0070, 0x33a5, 0x0078, 0x339c, 0x20a9, 0x00fa, 0x0070,
1144 0x33ab, 0x0078, 0x33a7, 0x6808, 0xa084, 0xfffd, 0x680a, 0x681b,
1145 0x0046, 0x2009, 0x3568, 0x200b, 0x0007, 0x784c, 0x784a, 0x2091,
1146 0x8001, 0x007c, 0x2079, 0x3500, 0x1078, 0x3403, 0x1078, 0x33cb,
1147 0x1078, 0x33e0, 0x1078, 0x33f5, 0x7833, 0x0000, 0x7847, 0x0000,
1148 0x784b, 0x0000, 0x007c, 0x2019, 0x000a, 0x2011, 0x3546, 0x2204,
1149 0xa086, 0x0032, 0x0040, 0x33dd, 0x2019, 0x000c, 0x2204, 0xa086,
1150 0x003c, 0x0040, 0x33dd, 0x2019, 0x0008, 0x7b2a, 0x7b2e, 0x007c,
1151 0x2019, 0x0030, 0x2011, 0x3546, 0x2204, 0xa086, 0x0032, 0x0040,
1152 0x33f2, 0x2019, 0x0039, 0x2204, 0xa086, 0x003c, 0x0040, 0x33f2,
1153 0x2019, 0x0027, 0x7b36, 0x7b3a, 0x007c, 0x2019, 0x000d, 0x2011,
1154 0x3546, 0x2204, 0xa086, 0x003c, 0x0040, 0x3400, 0x2019, 0x000a,
1155 0x7b3e, 0x7b42, 0x007c, 0x2019, 0x2faf, 0x2011, 0x3546, 0x2204,
1156 0xa086, 0x0032, 0x0040, 0x3415, 0x2019, 0x3971, 0x2204, 0xa086,
1157 0x003c, 0x0040, 0x3415, 0x2019, 0x2626, 0x7b22, 0x7b26, 0x007c,
1158 0x92a7
1159};
1160unsigned short __devinitdata sbus_risc_code_length01 = 0x2419;
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index a2ef03243a2..166417a6afb 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -169,12 +169,10 @@ scsi_pool_alloc_command(struct scsi_host_cmd_pool *pool, gfp_t gfp_mask)
169{ 169{
170 struct scsi_cmnd *cmd; 170 struct scsi_cmnd *cmd;
171 171
172 cmd = kmem_cache_alloc(pool->cmd_slab, gfp_mask | pool->gfp_mask); 172 cmd = kmem_cache_zalloc(pool->cmd_slab, gfp_mask | pool->gfp_mask);
173 if (!cmd) 173 if (!cmd)
174 return NULL; 174 return NULL;
175 175
176 memset(cmd, 0, sizeof(*cmd));
177
178 cmd->sense_buffer = kmem_cache_alloc(pool->sense_slab, 176 cmd->sense_buffer = kmem_cache_alloc(pool->sense_slab,
179 gfp_mask | pool->gfp_mask); 177 gfp_mask | pool->gfp_mask);
180 if (!cmd->sense_buffer) { 178 if (!cmd->sense_buffer) {
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 4b13e36d3aa..d1cb64ad1a3 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -791,7 +791,22 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
791 "%d bytes done.\n", 791 "%d bytes done.\n",
792 req->nr_sectors, good_bytes)); 792 req->nr_sectors, good_bytes));
793 793
794 /* A number of bytes were successfully read. If there 794 /*
795 * Recovered errors need reporting, but they're always treated
796 * as success, so fiddle the result code here. For BLOCK_PC
797 * we already took a copy of the original into rq->errors which
798 * is what gets returned to the user
799 */
800 if (sense_valid && sshdr.sense_key == RECOVERED_ERROR) {
801 if (!(req->cmd_flags & REQ_QUIET))
802 scsi_print_sense("", cmd);
803 result = 0;
804 /* BLOCK_PC may have set error */
805 error = 0;
806 }
807
808 /*
809 * A number of bytes were successfully read. If there
795 * are leftovers and there is some kind of error 810 * are leftovers and there is some kind of error
796 * (result != 0), retry the rest. 811 * (result != 0), retry the rest.
797 */ 812 */
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index aeab5d9dff2..3fcb64b91c4 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1051,12 +1051,6 @@ static int sd_done(struct scsi_cmnd *SCpnt)
1051 good_bytes = sd_completed_bytes(SCpnt); 1051 good_bytes = sd_completed_bytes(SCpnt);
1052 break; 1052 break;
1053 case RECOVERED_ERROR: 1053 case RECOVERED_ERROR:
1054 /* Inform the user, but make sure that it's not treated
1055 * as a hard error.
1056 */
1057 scsi_print_sense("sd", SCpnt);
1058 SCpnt->result = 0;
1059 memset(SCpnt->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
1060 good_bytes = scsi_bufflen(SCpnt); 1054 good_bytes = scsi_bufflen(SCpnt);
1061 break; 1055 break;
1062 case NO_SENSE: 1056 case NO_SENSE:
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c
index c9146d751cb..4f618f48735 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -264,6 +264,7 @@ struct ses_host_edev {
264 struct enclosure_device *edev; 264 struct enclosure_device *edev;
265}; 265};
266 266
267#if 0
267int ses_match_host(struct enclosure_device *edev, void *data) 268int ses_match_host(struct enclosure_device *edev, void *data)
268{ 269{
269 struct ses_host_edev *sed = data; 270 struct ses_host_edev *sed = data;
@@ -280,6 +281,7 @@ int ses_match_host(struct enclosure_device *edev, void *data)
280 sed->edev = edev; 281 sed->edev = edev;
281 return 1; 282 return 1;
282} 283}
284#endif /* 0 */
283 285
284static void ses_process_descriptor(struct enclosure_component *ecomp, 286static void ses_process_descriptor(struct enclosure_component *ecomp,
285 unsigned char *desc) 287 unsigned char *desc)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index ffc87851f2e..82312df9b0b 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -1312,8 +1312,10 @@ static void sg_rq_end_io(struct request *rq, int uptodate)
1312 wake_up_interruptible(&sfp->read_wait); 1312 wake_up_interruptible(&sfp->read_wait);
1313 kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN); 1313 kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN);
1314 kref_put(&sfp->f_ref, sg_remove_sfp); 1314 kref_put(&sfp->f_ref, sg_remove_sfp);
1315 } else 1315 } else {
1316 execute_in_process_context(sg_rq_end_io_usercontext, &srp->ew); 1316 INIT_WORK(&srp->ew.work, sg_rq_end_io_usercontext);
1317 schedule_work(&srp->ew.work);
1318 }
1317} 1319}
1318 1320
1319static struct file_operations sg_fops = { 1321static struct file_operations sg_fops = {
@@ -1656,10 +1658,30 @@ static int sg_start_req(Sg_request *srp, unsigned char *cmd)
1656 md->null_mapped = hp->dxferp ? 0 : 1; 1658 md->null_mapped = hp->dxferp ? 0 : 1;
1657 } 1659 }
1658 1660
1659 if (iov_count) 1661 if (iov_count) {
1660 res = blk_rq_map_user_iov(q, rq, md, hp->dxferp, iov_count, 1662 int len, size = sizeof(struct sg_iovec) * iov_count;
1661 hp->dxfer_len, GFP_ATOMIC); 1663 struct iovec *iov;
1662 else 1664
1665 iov = kmalloc(size, GFP_ATOMIC);
1666 if (!iov)
1667 return -ENOMEM;
1668
1669 if (copy_from_user(iov, hp->dxferp, size)) {
1670 kfree(iov);
1671 return -EFAULT;
1672 }
1673
1674 len = iov_length(iov, iov_count);
1675 if (hp->dxfer_len < len) {
1676 iov_count = iov_shorten(iov, iov_count, hp->dxfer_len);
1677 len = hp->dxfer_len;
1678 }
1679
1680 res = blk_rq_map_user_iov(q, rq, md, (struct sg_iovec *)iov,
1681 iov_count,
1682 len, GFP_ATOMIC);
1683 kfree(iov);
1684 } else
1663 res = blk_rq_map_user(q, rq, md, hp->dxferp, 1685 res = blk_rq_map_user(q, rq, md, hp->dxferp,
1664 hp->dxfer_len, GFP_ATOMIC); 1686 hp->dxfer_len, GFP_ATOMIC);
1665 1687
@@ -2079,7 +2101,8 @@ static void sg_remove_sfp(struct kref *kref)
2079 write_unlock_irqrestore(&sg_index_lock, iflags); 2101 write_unlock_irqrestore(&sg_index_lock, iflags);
2080 wake_up_interruptible(&sdp->o_excl_wait); 2102 wake_up_interruptible(&sdp->o_excl_wait);
2081 2103
2082 execute_in_process_context(sg_remove_sfp_usercontext, &sfp->ew); 2104 INIT_WORK(&sfp->ew.work, sg_remove_sfp_usercontext);
2105 schedule_work(&sfp->ew.work);
2083} 2106}
2084 2107
2085static int 2108static int
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index e7fa3caead7..0e1a0f2d2ad 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -309,15 +309,6 @@ static int sr_done(struct scsi_cmnd *SCpnt)
309 break; 309 break;
310 310
311 case RECOVERED_ERROR: 311 case RECOVERED_ERROR:
312
313 /*
314 * An error occured, but it recovered. Inform the
315 * user, but make sure that it's not treated as a
316 * hard error.
317 */
318 scsi_print_sense("sr", SCpnt);
319 SCpnt->result = 0;
320 SCpnt->sense_buffer[0] = 0x0;
321 good_bytes = this_count; 312 good_bytes = this_count;
322 break; 313 break;
323 314
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 47b614e8580..df7f96caa1c 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -36,11 +36,11 @@
36#include <scsi/scsi_eh.h> 36#include <scsi/scsi_eh.h>
37 37
38#define DRV_NAME "stex" 38#define DRV_NAME "stex"
39#define ST_DRIVER_VERSION "4.6.0000.1" 39#define ST_DRIVER_VERSION "4.6.0000.3"
40#define ST_VER_MAJOR 4 40#define ST_VER_MAJOR 4
41#define ST_VER_MINOR 6 41#define ST_VER_MINOR 6
42#define ST_OEM 0 42#define ST_OEM 0
43#define ST_BUILD_VER 1 43#define ST_BUILD_VER 3
44 44
45enum { 45enum {
46 /* MU register offset */ 46 /* MU register offset */
@@ -55,6 +55,13 @@ enum {
55 OIS = 0x30, /* MU_OUTBOUND_INTERRUPT_STATUS */ 55 OIS = 0x30, /* MU_OUTBOUND_INTERRUPT_STATUS */
56 OIM = 0x3c, /* MU_OUTBOUND_INTERRUPT_MASK */ 56 OIM = 0x3c, /* MU_OUTBOUND_INTERRUPT_MASK */
57 57
58 YH2I_INT = 0x20,
59 YINT_EN = 0x34,
60 YI2H_INT = 0x9c,
61 YI2H_INT_C = 0xa0,
62 YH2I_REQ = 0xc0,
63 YH2I_REQ_HI = 0xc4,
64
58 /* MU register value */ 65 /* MU register value */
59 MU_INBOUND_DOORBELL_HANDSHAKE = 1, 66 MU_INBOUND_DOORBELL_HANDSHAKE = 1,
60 MU_INBOUND_DOORBELL_REQHEADCHANGED = 2, 67 MU_INBOUND_DOORBELL_REQHEADCHANGED = 2,
@@ -95,20 +102,14 @@ enum {
95 TASK_ATTRIBUTE_ORDERED = 0x2, 102 TASK_ATTRIBUTE_ORDERED = 0x2,
96 TASK_ATTRIBUTE_ACA = 0x4, 103 TASK_ATTRIBUTE_ACA = 0x4,
97 104
98 /* request count, etc. */ 105 SS_STS_NORMAL = 0x80000000,
99 MU_MAX_REQUEST = 32, 106 SS_STS_DONE = 0x40000000,
107 SS_STS_HANDSHAKE = 0x20000000,
100 108
101 /* one message wasted, use MU_MAX_REQUEST+1 109 SS_HEAD_HANDSHAKE = 0x80,
102 to handle MU_MAX_REQUEST messages */
103 MU_REQ_COUNT = (MU_MAX_REQUEST + 1),
104 MU_STATUS_COUNT = (MU_MAX_REQUEST + 1),
105 110
106 STEX_CDB_LENGTH = 16, 111 STEX_CDB_LENGTH = 16,
107 REQ_VARIABLE_LEN = 1024,
108 STATUS_VAR_LEN = 128, 112 STATUS_VAR_LEN = 128,
109 ST_CAN_QUEUE = MU_MAX_REQUEST,
110 ST_CMD_PER_LUN = MU_MAX_REQUEST,
111 ST_MAX_SG = 32,
112 113
113 /* sg flags */ 114 /* sg flags */
114 SG_CF_EOT = 0x80, /* end of table */ 115 SG_CF_EOT = 0x80, /* end of table */
@@ -120,9 +121,9 @@ enum {
120 121
121 st_shasta = 0, 122 st_shasta = 0,
122 st_vsc = 1, 123 st_vsc = 1,
123 st_vsc1 = 2, 124 st_yosemite = 2,
124 st_yosemite = 3, 125 st_seq = 3,
125 st_seq = 4, 126 st_yel = 4,
126 127
127 PASSTHRU_REQ_TYPE = 0x00000001, 128 PASSTHRU_REQ_TYPE = 0x00000001,
128 PASSTHRU_REQ_NO_WAKEUP = 0x00000100, 129 PASSTHRU_REQ_NO_WAKEUP = 0x00000100,
@@ -160,26 +161,36 @@ struct st_sgitem {
160 u8 ctrl; /* SG_CF_xxx */ 161 u8 ctrl; /* SG_CF_xxx */
161 u8 reserved[3]; 162 u8 reserved[3];
162 __le32 count; 163 __le32 count;
164 __le64 addr;
165};
166
167struct st_ss_sgitem {
163 __le32 addr; 168 __le32 addr;
164 __le32 addr_hi; 169 __le32 addr_hi;
170 __le32 count;
165}; 171};
166 172
167struct st_sgtable { 173struct st_sgtable {
168 __le16 sg_count; 174 __le16 sg_count;
169 __le16 max_sg_count; 175 __le16 max_sg_count;
170 __le32 sz_in_byte; 176 __le32 sz_in_byte;
171 struct st_sgitem table[ST_MAX_SG]; 177};
178
179struct st_msg_header {
180 __le64 handle;
181 u8 flag;
182 u8 channel;
183 __le16 timeout;
184 u32 reserved;
172}; 185};
173 186
174struct handshake_frame { 187struct handshake_frame {
175 __le32 rb_phy; /* request payload queue physical address */ 188 __le64 rb_phy; /* request payload queue physical address */
176 __le32 rb_phy_hi;
177 __le16 req_sz; /* size of each request payload */ 189 __le16 req_sz; /* size of each request payload */
178 __le16 req_cnt; /* count of reqs the buffer can hold */ 190 __le16 req_cnt; /* count of reqs the buffer can hold */
179 __le16 status_sz; /* size of each status payload */ 191 __le16 status_sz; /* size of each status payload */
180 __le16 status_cnt; /* count of status the buffer can hold */ 192 __le16 status_cnt; /* count of status the buffer can hold */
181 __le32 hosttime; /* seconds from Jan 1, 1970 (GMT) */ 193 __le64 hosttime; /* seconds from Jan 1, 1970 (GMT) */
182 __le32 hosttime_hi;
183 u8 partner_type; /* who sends this frame */ 194 u8 partner_type; /* who sends this frame */
184 u8 reserved0[7]; 195 u8 reserved0[7];
185 __le32 partner_ver_major; 196 __le32 partner_ver_major;
@@ -188,7 +199,8 @@ struct handshake_frame {
188 __le32 partner_ver_build; 199 __le32 partner_ver_build;
189 __le32 extra_offset; /* NEW */ 200 __le32 extra_offset; /* NEW */
190 __le32 extra_size; /* NEW */ 201 __le32 extra_size; /* NEW */
191 u32 reserved1[2]; 202 __le32 scratch_size;
203 u32 reserved1;
192}; 204};
193 205
194struct req_msg { 206struct req_msg {
@@ -200,7 +212,7 @@ struct req_msg {
200 u8 data_dir; 212 u8 data_dir;
201 u8 payload_sz; /* payload size in 4-byte, not used */ 213 u8 payload_sz; /* payload size in 4-byte, not used */
202 u8 cdb[STEX_CDB_LENGTH]; 214 u8 cdb[STEX_CDB_LENGTH];
203 u8 variable[REQ_VARIABLE_LEN]; 215 u32 variable[0];
204}; 216};
205 217
206struct status_msg { 218struct status_msg {
@@ -256,12 +268,6 @@ struct st_drvver {
256 u32 reserved[3]; 268 u32 reserved[3];
257}; 269};
258 270
259#define MU_REQ_BUFFER_SIZE (MU_REQ_COUNT * sizeof(struct req_msg))
260#define MU_STATUS_BUFFER_SIZE (MU_STATUS_COUNT * sizeof(struct status_msg))
261#define MU_BUFFER_SIZE (MU_REQ_BUFFER_SIZE + MU_STATUS_BUFFER_SIZE)
262#define STEX_EXTRA_SIZE sizeof(struct st_frame)
263#define STEX_BUFFER_SIZE (MU_BUFFER_SIZE + STEX_EXTRA_SIZE)
264
265struct st_ccb { 271struct st_ccb {
266 struct req_msg *req; 272 struct req_msg *req;
267 struct scsi_cmnd *cmd; 273 struct scsi_cmnd *cmd;
@@ -273,6 +279,7 @@ struct st_ccb {
273 u32 req_type; 279 u32 req_type;
274 u8 srb_status; 280 u8 srb_status;
275 u8 scsi_status; 281 u8 scsi_status;
282 u8 reserved[2];
276}; 283};
277 284
278struct st_hba { 285struct st_hba {
@@ -284,6 +291,10 @@ struct st_hba {
284 struct Scsi_Host *host; 291 struct Scsi_Host *host;
285 struct pci_dev *pdev; 292 struct pci_dev *pdev;
286 293
294 struct req_msg * (*alloc_rq) (struct st_hba *);
295 int (*map_sg)(struct st_hba *, struct req_msg *, struct st_ccb *);
296 void (*send) (struct st_hba *, struct req_msg *, u16);
297
287 u32 req_head; 298 u32 req_head;
288 u32 req_tail; 299 u32 req_tail;
289 u32 status_head; 300 u32 status_head;
@@ -291,16 +302,36 @@ struct st_hba {
291 302
292 struct status_msg *status_buffer; 303 struct status_msg *status_buffer;
293 void *copy_buffer; /* temp buffer for driver-handled commands */ 304 void *copy_buffer; /* temp buffer for driver-handled commands */
294 struct st_ccb ccb[MU_MAX_REQUEST]; 305 struct st_ccb *ccb;
295 struct st_ccb *wait_ccb; 306 struct st_ccb *wait_ccb;
296 wait_queue_head_t waitq; 307 __le32 *scratch;
297 308
298 unsigned int mu_status; 309 unsigned int mu_status;
310 unsigned int cardtype;
311 int msi_enabled;
299 int out_req_cnt; 312 int out_req_cnt;
313 u32 extra_offset;
314 u16 rq_count;
315 u16 rq_size;
316 u16 sts_count;
317};
300 318
301 unsigned int cardtype; 319struct st_card_info {
320 struct req_msg * (*alloc_rq) (struct st_hba *);
321 int (*map_sg)(struct st_hba *, struct req_msg *, struct st_ccb *);
322 void (*send) (struct st_hba *, struct req_msg *, u16);
323 unsigned int max_id;
324 unsigned int max_lun;
325 unsigned int max_channel;
326 u16 rq_count;
327 u16 rq_size;
328 u16 sts_count;
302}; 329};
303 330
331static int msi;
332module_param(msi, int, 0);
333MODULE_PARM_DESC(msi, "Enable Message Signaled Interrupts(0=off, 1=on)");
334
304static const char console_inq_page[] = 335static const char console_inq_page[] =
305{ 336{
306 0x03,0x00,0x03,0x03,0xFA,0x00,0x00,0x30, 337 0x03,0x00,0x03,0x03,0xFA,0x00,0x00,0x30,
@@ -318,22 +349,20 @@ MODULE_DESCRIPTION("Promise Technology SuperTrak EX Controllers");
318MODULE_LICENSE("GPL"); 349MODULE_LICENSE("GPL");
319MODULE_VERSION(ST_DRIVER_VERSION); 350MODULE_VERSION(ST_DRIVER_VERSION);
320 351
321static void stex_gettime(__le32 *time) 352static void stex_gettime(__le64 *time)
322{ 353{
323 struct timeval tv; 354 struct timeval tv;
324 355
325 do_gettimeofday(&tv); 356 do_gettimeofday(&tv);
326 *time = cpu_to_le32(tv.tv_sec & 0xffffffff); 357 *time = cpu_to_le64(tv.tv_sec);
327 *(time + 1) = cpu_to_le32((tv.tv_sec >> 16) >> 16);
328} 358}
329 359
330static struct status_msg *stex_get_status(struct st_hba *hba) 360static struct status_msg *stex_get_status(struct st_hba *hba)
331{ 361{
332 struct status_msg *status = 362 struct status_msg *status = hba->status_buffer + hba->status_tail;
333 hba->status_buffer + hba->status_tail;
334 363
335 ++hba->status_tail; 364 ++hba->status_tail;
336 hba->status_tail %= MU_STATUS_COUNT; 365 hba->status_tail %= hba->sts_count+1;
337 366
338 return status; 367 return status;
339} 368}
@@ -351,47 +380,83 @@ static void stex_invalid_field(struct scsi_cmnd *cmd,
351 380
352static struct req_msg *stex_alloc_req(struct st_hba *hba) 381static struct req_msg *stex_alloc_req(struct st_hba *hba)
353{ 382{
354 struct req_msg *req = ((struct req_msg *)hba->dma_mem) + 383 struct req_msg *req = hba->dma_mem + hba->req_head * hba->rq_size;
355 hba->req_head;
356 384
357 ++hba->req_head; 385 ++hba->req_head;
358 hba->req_head %= MU_REQ_COUNT; 386 hba->req_head %= hba->rq_count+1;
359 387
360 return req; 388 return req;
361} 389}
362 390
391static struct req_msg *stex_ss_alloc_req(struct st_hba *hba)
392{
393 return (struct req_msg *)(hba->dma_mem +
394 hba->req_head * hba->rq_size + sizeof(struct st_msg_header));
395}
396
363static int stex_map_sg(struct st_hba *hba, 397static int stex_map_sg(struct st_hba *hba,
364 struct req_msg *req, struct st_ccb *ccb) 398 struct req_msg *req, struct st_ccb *ccb)
365{ 399{
366 struct scsi_cmnd *cmd; 400 struct scsi_cmnd *cmd;
367 struct scatterlist *sg; 401 struct scatterlist *sg;
368 struct st_sgtable *dst; 402 struct st_sgtable *dst;
403 struct st_sgitem *table;
369 int i, nseg; 404 int i, nseg;
370 405
371 cmd = ccb->cmd; 406 cmd = ccb->cmd;
372 dst = (struct st_sgtable *)req->variable; 407 nseg = scsi_dma_map(cmd);
373 dst->max_sg_count = cpu_to_le16(ST_MAX_SG); 408 BUG_ON(nseg < 0);
374 dst->sz_in_byte = cpu_to_le32(scsi_bufflen(cmd)); 409 if (nseg) {
410 dst = (struct st_sgtable *)req->variable;
411
412 ccb->sg_count = nseg;
413 dst->sg_count = cpu_to_le16((u16)nseg);
414 dst->max_sg_count = cpu_to_le16(hba->host->sg_tablesize);
415 dst->sz_in_byte = cpu_to_le32(scsi_bufflen(cmd));
416
417 table = (struct st_sgitem *)(dst + 1);
418 scsi_for_each_sg(cmd, sg, nseg, i) {
419 table[i].count = cpu_to_le32((u32)sg_dma_len(sg));
420 table[i].addr = cpu_to_le64(sg_dma_address(sg));
421 table[i].ctrl = SG_CF_64B | SG_CF_HOST;
422 }
423 table[--i].ctrl |= SG_CF_EOT;
424 }
425
426 return nseg;
427}
428
429static int stex_ss_map_sg(struct st_hba *hba,
430 struct req_msg *req, struct st_ccb *ccb)
431{
432 struct scsi_cmnd *cmd;
433 struct scatterlist *sg;
434 struct st_sgtable *dst;
435 struct st_ss_sgitem *table;
436 int i, nseg;
375 437
438 cmd = ccb->cmd;
376 nseg = scsi_dma_map(cmd); 439 nseg = scsi_dma_map(cmd);
377 if (nseg < 0) 440 BUG_ON(nseg < 0);
378 return -EIO;
379 if (nseg) { 441 if (nseg) {
442 dst = (struct st_sgtable *)req->variable;
443
380 ccb->sg_count = nseg; 444 ccb->sg_count = nseg;
381 dst->sg_count = cpu_to_le16((u16)nseg); 445 dst->sg_count = cpu_to_le16((u16)nseg);
446 dst->max_sg_count = cpu_to_le16(hba->host->sg_tablesize);
447 dst->sz_in_byte = cpu_to_le32(scsi_bufflen(cmd));
382 448
449 table = (struct st_ss_sgitem *)(dst + 1);
383 scsi_for_each_sg(cmd, sg, nseg, i) { 450 scsi_for_each_sg(cmd, sg, nseg, i) {
384 dst->table[i].count = cpu_to_le32((u32)sg_dma_len(sg)); 451 table[i].count = cpu_to_le32((u32)sg_dma_len(sg));
385 dst->table[i].addr = 452 table[i].addr =
386 cpu_to_le32(sg_dma_address(sg) & 0xffffffff); 453 cpu_to_le32(sg_dma_address(sg) & 0xffffffff);
387 dst->table[i].addr_hi = 454 table[i].addr_hi =
388 cpu_to_le32((sg_dma_address(sg) >> 16) >> 16); 455 cpu_to_le32((sg_dma_address(sg) >> 16) >> 16);
389 dst->table[i].ctrl = SG_CF_64B | SG_CF_HOST;
390 } 456 }
391 dst->table[--i].ctrl |= SG_CF_EOT;
392 } 457 }
393 458
394 return 0; 459 return nseg;
395} 460}
396 461
397static void stex_controller_info(struct st_hba *hba, struct st_ccb *ccb) 462static void stex_controller_info(struct st_hba *hba, struct st_ccb *ccb)
@@ -400,7 +465,7 @@ static void stex_controller_info(struct st_hba *hba, struct st_ccb *ccb)
400 size_t count = sizeof(struct st_frame); 465 size_t count = sizeof(struct st_frame);
401 466
402 p = hba->copy_buffer; 467 p = hba->copy_buffer;
403 count = scsi_sg_copy_to_buffer(ccb->cmd, p, count); 468 scsi_sg_copy_to_buffer(ccb->cmd, p, count);
404 memset(p->base, 0, sizeof(u32)*6); 469 memset(p->base, 0, sizeof(u32)*6);
405 *(unsigned long *)(p->base) = pci_resource_start(hba->pdev, 0); 470 *(unsigned long *)(p->base) = pci_resource_start(hba->pdev, 0);
406 p->rom_addr = 0; 471 p->rom_addr = 0;
@@ -418,15 +483,13 @@ static void stex_controller_info(struct st_hba *hba, struct st_ccb *ccb)
418 p->subid = 483 p->subid =
419 hba->pdev->subsystem_vendor << 16 | hba->pdev->subsystem_device; 484 hba->pdev->subsystem_vendor << 16 | hba->pdev->subsystem_device;
420 485
421 count = scsi_sg_copy_from_buffer(ccb->cmd, p, count); 486 scsi_sg_copy_from_buffer(ccb->cmd, p, count);
422} 487}
423 488
424static void 489static void
425stex_send_cmd(struct st_hba *hba, struct req_msg *req, u16 tag) 490stex_send_cmd(struct st_hba *hba, struct req_msg *req, u16 tag)
426{ 491{
427 req->tag = cpu_to_le16(tag); 492 req->tag = cpu_to_le16(tag);
428 req->task_attr = TASK_ATTRIBUTE_SIMPLE;
429 req->task_manage = 0; /* not supported yet */
430 493
431 hba->ccb[tag].req = req; 494 hba->ccb[tag].req = req;
432 hba->out_req_cnt++; 495 hba->out_req_cnt++;
@@ -436,13 +499,44 @@ stex_send_cmd(struct st_hba *hba, struct req_msg *req, u16 tag)
436 readl(hba->mmio_base + IDBL); /* flush */ 499 readl(hba->mmio_base + IDBL); /* flush */
437} 500}
438 501
502static void
503stex_ss_send_cmd(struct st_hba *hba, struct req_msg *req, u16 tag)
504{
505 struct scsi_cmnd *cmd;
506 struct st_msg_header *msg_h;
507 dma_addr_t addr;
508
509 req->tag = cpu_to_le16(tag);
510
511 hba->ccb[tag].req = req;
512 hba->out_req_cnt++;
513
514 cmd = hba->ccb[tag].cmd;
515 msg_h = (struct st_msg_header *)req - 1;
516 if (likely(cmd)) {
517 msg_h->channel = (u8)cmd->device->channel;
518 msg_h->timeout = cpu_to_le16(cmd->request->timeout/HZ);
519 }
520 addr = hba->dma_handle + hba->req_head * hba->rq_size;
521 addr += (hba->ccb[tag].sg_count+4)/11;
522 msg_h->handle = cpu_to_le64(addr);
523
524 ++hba->req_head;
525 hba->req_head %= hba->rq_count+1;
526
527 writel((addr >> 16) >> 16, hba->mmio_base + YH2I_REQ_HI);
528 readl(hba->mmio_base + YH2I_REQ_HI); /* flush */
529 writel(addr, hba->mmio_base + YH2I_REQ);
530 readl(hba->mmio_base + YH2I_REQ); /* flush */
531}
532
439static int 533static int
440stex_slave_alloc(struct scsi_device *sdev) 534stex_slave_alloc(struct scsi_device *sdev)
441{ 535{
442 /* Cheat: usually extracted from Inquiry data */ 536 /* Cheat: usually extracted from Inquiry data */
443 sdev->tagged_supported = 1; 537 sdev->tagged_supported = 1;
444 538
445 scsi_activate_tcq(sdev, ST_CMD_PER_LUN); 539 scsi_activate_tcq(sdev, sdev->host->can_queue);
446 540
447 return 0; 541 return 0;
448} 542}
@@ -469,7 +563,7 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
469{ 563{
470 struct st_hba *hba; 564 struct st_hba *hba;
471 struct Scsi_Host *host; 565 struct Scsi_Host *host;
472 unsigned int id,lun; 566 unsigned int id, lun;
473 struct req_msg *req; 567 struct req_msg *req;
474 u16 tag; 568 u16 tag;
475 569
@@ -516,7 +610,8 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
516 case INQUIRY: 610 case INQUIRY:
517 if (id != host->max_id - 1) 611 if (id != host->max_id - 1)
518 break; 612 break;
519 if (lun == 0 && (cmd->cmnd[1] & INQUIRY_EVPD) == 0) { 613 if (!lun && !cmd->device->channel &&
614 (cmd->cmnd[1] & INQUIRY_EVPD) == 0) {
520 scsi_sg_copy_from_buffer(cmd, (void *)console_inq_page, 615 scsi_sg_copy_from_buffer(cmd, (void *)console_inq_page,
521 sizeof(console_inq_page)); 616 sizeof(console_inq_page));
522 cmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8; 617 cmd->result = DID_OK << 16 | COMMAND_COMPLETE << 8;
@@ -554,7 +649,7 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
554 if (unlikely(tag >= host->can_queue)) 649 if (unlikely(tag >= host->can_queue))
555 return SCSI_MLQUEUE_HOST_BUSY; 650 return SCSI_MLQUEUE_HOST_BUSY;
556 651
557 req = stex_alloc_req(hba); 652 req = hba->alloc_rq(hba);
558 653
559 req->lun = lun; 654 req->lun = lun;
560 req->target = id; 655 req->target = id;
@@ -572,12 +667,13 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
572 hba->ccb[tag].cmd = cmd; 667 hba->ccb[tag].cmd = cmd;
573 hba->ccb[tag].sense_bufflen = SCSI_SENSE_BUFFERSIZE; 668 hba->ccb[tag].sense_bufflen = SCSI_SENSE_BUFFERSIZE;
574 hba->ccb[tag].sense_buffer = cmd->sense_buffer; 669 hba->ccb[tag].sense_buffer = cmd->sense_buffer;
575 hba->ccb[tag].req_type = 0;
576 670
577 if (cmd->sc_data_direction != DMA_NONE) 671 if (!hba->map_sg(hba, req, &hba->ccb[tag])) {
578 stex_map_sg(hba, req, &hba->ccb[tag]); 672 hba->ccb[tag].sg_count = 0;
673 memset(&req->variable[0], 0, 8);
674 }
579 675
580 stex_send_cmd(hba, req, tag); 676 hba->send(hba, req, tag);
581 return 0; 677 return 0;
582} 678}
583 679
@@ -586,7 +682,7 @@ static void stex_scsi_done(struct st_ccb *ccb)
586 struct scsi_cmnd *cmd = ccb->cmd; 682 struct scsi_cmnd *cmd = ccb->cmd;
587 int result; 683 int result;
588 684
589 if (ccb->srb_status == SRB_STATUS_SUCCESS || ccb->srb_status == 0) { 685 if (ccb->srb_status == SRB_STATUS_SUCCESS || ccb->srb_status == 0) {
590 result = ccb->scsi_status; 686 result = ccb->scsi_status;
591 switch (ccb->scsi_status) { 687 switch (ccb->scsi_status) {
592 case SAM_STAT_GOOD: 688 case SAM_STAT_GOOD:
@@ -626,8 +722,6 @@ static void stex_scsi_done(struct st_ccb *ccb)
626static void stex_copy_data(struct st_ccb *ccb, 722static void stex_copy_data(struct st_ccb *ccb,
627 struct status_msg *resp, unsigned int variable) 723 struct status_msg *resp, unsigned int variable)
628{ 724{
629 size_t count = variable;
630
631 if (resp->scsi_status != SAM_STAT_GOOD) { 725 if (resp->scsi_status != SAM_STAT_GOOD) {
632 if (ccb->sense_buffer != NULL) 726 if (ccb->sense_buffer != NULL)
633 memcpy(ccb->sense_buffer, resp->variable, 727 memcpy(ccb->sense_buffer, resp->variable,
@@ -637,17 +731,16 @@ static void stex_copy_data(struct st_ccb *ccb,
637 731
638 if (ccb->cmd == NULL) 732 if (ccb->cmd == NULL)
639 return; 733 return;
640 count = scsi_sg_copy_from_buffer(ccb->cmd, resp->variable, count); 734 scsi_sg_copy_from_buffer(ccb->cmd, resp->variable, variable);
641} 735}
642 736
643static void stex_ys_commands(struct st_hba *hba, 737static void stex_check_cmd(struct st_hba *hba,
644 struct st_ccb *ccb, struct status_msg *resp) 738 struct st_ccb *ccb, struct status_msg *resp)
645{ 739{
646 if (ccb->cmd->cmnd[0] == MGT_CMD && 740 if (ccb->cmd->cmnd[0] == MGT_CMD &&
647 resp->scsi_status != SAM_STAT_CHECK_CONDITION) { 741 resp->scsi_status != SAM_STAT_CHECK_CONDITION)
648 scsi_set_resid(ccb->cmd, scsi_bufflen(ccb->cmd) - 742 scsi_set_resid(ccb->cmd, scsi_bufflen(ccb->cmd) -
649 le32_to_cpu(*(__le32 *)&resp->variable[0])); 743 le32_to_cpu(*(__le32 *)&resp->variable[0]));
650 }
651} 744}
652 745
653static void stex_mu_intr(struct st_hba *hba, u32 doorbell) 746static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
@@ -658,12 +751,12 @@ static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
658 unsigned int size; 751 unsigned int size;
659 u16 tag; 752 u16 tag;
660 753
661 if (!(doorbell & MU_OUTBOUND_DOORBELL_STATUSHEADCHANGED)) 754 if (unlikely(!(doorbell & MU_OUTBOUND_DOORBELL_STATUSHEADCHANGED)))
662 return; 755 return;
663 756
664 /* status payloads */ 757 /* status payloads */
665 hba->status_head = readl(base + OMR1); 758 hba->status_head = readl(base + OMR1);
666 if (unlikely(hba->status_head >= MU_STATUS_COUNT)) { 759 if (unlikely(hba->status_head > hba->sts_count)) {
667 printk(KERN_WARNING DRV_NAME "(%s): invalid status head\n", 760 printk(KERN_WARNING DRV_NAME "(%s): invalid status head\n",
668 pci_name(hba->pdev)); 761 pci_name(hba->pdev));
669 return; 762 return;
@@ -693,13 +786,13 @@ static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
693 continue; 786 continue;
694 } 787 }
695 788
789 hba->out_req_cnt--;
696 ccb = &hba->ccb[tag]; 790 ccb = &hba->ccb[tag];
697 if (hba->wait_ccb == ccb) 791 if (unlikely(hba->wait_ccb == ccb))
698 hba->wait_ccb = NULL; 792 hba->wait_ccb = NULL;
699 if (unlikely(ccb->req == NULL)) { 793 if (unlikely(ccb->req == NULL)) {
700 printk(KERN_WARNING DRV_NAME 794 printk(KERN_WARNING DRV_NAME
701 "(%s): lagging req\n", pci_name(hba->pdev)); 795 "(%s): lagging req\n", pci_name(hba->pdev));
702 hba->out_req_cnt--;
703 continue; 796 continue;
704 } 797 }
705 798
@@ -720,7 +813,7 @@ static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
720 813
721 if (likely(ccb->cmd != NULL)) { 814 if (likely(ccb->cmd != NULL)) {
722 if (hba->cardtype == st_yosemite) 815 if (hba->cardtype == st_yosemite)
723 stex_ys_commands(hba, ccb, resp); 816 stex_check_cmd(hba, ccb, resp);
724 817
725 if (unlikely(ccb->cmd->cmnd[0] == PASSTHRU_CMD && 818 if (unlikely(ccb->cmd->cmnd[0] == PASSTHRU_CMD &&
726 ccb->cmd->cmnd[1] == PASSTHRU_GET_ADAPTER)) 819 ccb->cmd->cmnd[1] == PASSTHRU_GET_ADAPTER))
@@ -728,17 +821,8 @@ static void stex_mu_intr(struct st_hba *hba, u32 doorbell)
728 821
729 scsi_dma_unmap(ccb->cmd); 822 scsi_dma_unmap(ccb->cmd);
730 stex_scsi_done(ccb); 823 stex_scsi_done(ccb);
731 hba->out_req_cnt--; 824 } else
732 } else if (ccb->req_type & PASSTHRU_REQ_TYPE) {
733 hba->out_req_cnt--;
734 if (ccb->req_type & PASSTHRU_REQ_NO_WAKEUP) {
735 ccb->req_type = 0;
736 continue;
737 }
738 ccb->req_type = 0; 825 ccb->req_type = 0;
739 if (waitqueue_active(&hba->waitq))
740 wake_up(&hba->waitq);
741 }
742 } 826 }
743 827
744update_status: 828update_status:
@@ -771,7 +855,103 @@ static irqreturn_t stex_intr(int irq, void *__hba)
771 return IRQ_RETVAL(handled); 855 return IRQ_RETVAL(handled);
772} 856}
773 857
774static int stex_handshake(struct st_hba *hba) 858static void stex_ss_mu_intr(struct st_hba *hba)
859{
860 struct status_msg *resp;
861 struct st_ccb *ccb;
862 __le32 *scratch;
863 unsigned int size;
864 int count = 0;
865 u32 value;
866 u16 tag;
867
868 if (unlikely(hba->out_req_cnt <= 0 ||
869 hba->mu_status == MU_STATE_RESETTING))
870 return;
871
872 while (count < hba->sts_count) {
873 scratch = hba->scratch + hba->status_tail;
874 value = le32_to_cpu(*scratch);
875 if (unlikely(!(value & SS_STS_NORMAL)))
876 return;
877
878 resp = hba->status_buffer + hba->status_tail;
879 *scratch = 0;
880 ++count;
881 ++hba->status_tail;
882 hba->status_tail %= hba->sts_count+1;
883
884 tag = (u16)value;
885 if (unlikely(tag >= hba->host->can_queue)) {
886 printk(KERN_WARNING DRV_NAME
887 "(%s): invalid tag\n", pci_name(hba->pdev));
888 continue;
889 }
890
891 hba->out_req_cnt--;
892 ccb = &hba->ccb[tag];
893 if (unlikely(hba->wait_ccb == ccb))
894 hba->wait_ccb = NULL;
895 if (unlikely(ccb->req == NULL)) {
896 printk(KERN_WARNING DRV_NAME
897 "(%s): lagging req\n", pci_name(hba->pdev));
898 continue;
899 }
900
901 ccb->req = NULL;
902 if (likely(value & SS_STS_DONE)) { /* normal case */
903 ccb->srb_status = SRB_STATUS_SUCCESS;
904 ccb->scsi_status = SAM_STAT_GOOD;
905 } else {
906 ccb->srb_status = resp->srb_status;
907 ccb->scsi_status = resp->scsi_status;
908 size = resp->payload_sz * sizeof(u32);
909 if (unlikely(size < sizeof(*resp) - STATUS_VAR_LEN ||
910 size > sizeof(*resp))) {
911 printk(KERN_WARNING DRV_NAME
912 "(%s): bad status size\n",
913 pci_name(hba->pdev));
914 } else {
915 size -= sizeof(*resp) - STATUS_VAR_LEN;
916 if (size)
917 stex_copy_data(ccb, resp, size);
918 }
919 if (likely(ccb->cmd != NULL))
920 stex_check_cmd(hba, ccb, resp);
921 }
922
923 if (likely(ccb->cmd != NULL)) {
924 scsi_dma_unmap(ccb->cmd);
925 stex_scsi_done(ccb);
926 } else
927 ccb->req_type = 0;
928 }
929}
930
931static irqreturn_t stex_ss_intr(int irq, void *__hba)
932{
933 struct st_hba *hba = __hba;
934 void __iomem *base = hba->mmio_base;
935 u32 data;
936 unsigned long flags;
937 int handled = 0;
938
939 spin_lock_irqsave(hba->host->host_lock, flags);
940
941 data = readl(base + YI2H_INT);
942 if (data && data != 0xffffffff) {
943 /* clear the interrupt */
944 writel(data, base + YI2H_INT_C);
945 stex_ss_mu_intr(hba);
946 handled = 1;
947 }
948
949 spin_unlock_irqrestore(hba->host->host_lock, flags);
950
951 return IRQ_RETVAL(handled);
952}
953
954static int stex_common_handshake(struct st_hba *hba)
775{ 955{
776 void __iomem *base = hba->mmio_base; 956 void __iomem *base = hba->mmio_base;
777 struct handshake_frame *h; 957 struct handshake_frame *h;
@@ -800,26 +980,27 @@ static int stex_handshake(struct st_hba *hba)
800 data = readl(base + OMR1); 980 data = readl(base + OMR1);
801 if ((data & 0xffff0000) == MU_HANDSHAKE_SIGNATURE_HALF) { 981 if ((data & 0xffff0000) == MU_HANDSHAKE_SIGNATURE_HALF) {
802 data &= 0x0000ffff; 982 data &= 0x0000ffff;
803 if (hba->host->can_queue > data) 983 if (hba->host->can_queue > data) {
804 hba->host->can_queue = data; 984 hba->host->can_queue = data;
985 hba->host->cmd_per_lun = data;
986 }
805 } 987 }
806 988
807 h = (struct handshake_frame *)(hba->dma_mem + MU_REQ_BUFFER_SIZE); 989 h = (struct handshake_frame *)hba->status_buffer;
808 h->rb_phy = cpu_to_le32(hba->dma_handle); 990 h->rb_phy = cpu_to_le64(hba->dma_handle);
809 h->rb_phy_hi = cpu_to_le32((hba->dma_handle >> 16) >> 16); 991 h->req_sz = cpu_to_le16(hba->rq_size);
810 h->req_sz = cpu_to_le16(sizeof(struct req_msg)); 992 h->req_cnt = cpu_to_le16(hba->rq_count+1);
811 h->req_cnt = cpu_to_le16(MU_REQ_COUNT);
812 h->status_sz = cpu_to_le16(sizeof(struct status_msg)); 993 h->status_sz = cpu_to_le16(sizeof(struct status_msg));
813 h->status_cnt = cpu_to_le16(MU_STATUS_COUNT); 994 h->status_cnt = cpu_to_le16(hba->sts_count+1);
814 stex_gettime(&h->hosttime); 995 stex_gettime(&h->hosttime);
815 h->partner_type = HMU_PARTNER_TYPE; 996 h->partner_type = HMU_PARTNER_TYPE;
816 if (hba->dma_size > STEX_BUFFER_SIZE) { 997 if (hba->extra_offset) {
817 h->extra_offset = cpu_to_le32(STEX_BUFFER_SIZE); 998 h->extra_offset = cpu_to_le32(hba->extra_offset);
818 h->extra_size = cpu_to_le32(ST_ADDITIONAL_MEM); 999 h->extra_size = cpu_to_le32(ST_ADDITIONAL_MEM);
819 } else 1000 } else
820 h->extra_offset = h->extra_size = 0; 1001 h->extra_offset = h->extra_size = 0;
821 1002
822 status_phys = hba->dma_handle + MU_REQ_BUFFER_SIZE; 1003 status_phys = hba->dma_handle + (hba->rq_count+1) * hba->rq_size;
823 writel(status_phys, base + IMR0); 1004 writel(status_phys, base + IMR0);
824 readl(base + IMR0); 1005 readl(base + IMR0);
825 writel((status_phys >> 16) >> 16, base + IMR1); 1006 writel((status_phys >> 16) >> 16, base + IMR1);
@@ -851,10 +1032,79 @@ static int stex_handshake(struct st_hba *hba)
851 readl(base + IMR1); 1032 readl(base + IMR1);
852 writel(0, base + OMR1); 1033 writel(0, base + OMR1);
853 readl(base + OMR1); /* flush */ 1034 readl(base + OMR1); /* flush */
854 hba->mu_status = MU_STATE_STARTED;
855 return 0; 1035 return 0;
856} 1036}
857 1037
1038static int stex_ss_handshake(struct st_hba *hba)
1039{
1040 void __iomem *base = hba->mmio_base;
1041 struct st_msg_header *msg_h;
1042 struct handshake_frame *h;
1043 __le32 *scratch = hba->scratch;
1044 u32 data;
1045 unsigned long before;
1046 int ret = 0;
1047
1048 h = (struct handshake_frame *)(hba->alloc_rq(hba));
1049 msg_h = (struct st_msg_header *)h - 1;
1050 msg_h->handle = cpu_to_le64(hba->dma_handle);
1051 msg_h->flag = SS_HEAD_HANDSHAKE;
1052
1053 h->rb_phy = cpu_to_le64(hba->dma_handle);
1054 h->req_sz = cpu_to_le16(hba->rq_size);
1055 h->req_cnt = cpu_to_le16(hba->rq_count+1);
1056 h->status_sz = cpu_to_le16(sizeof(struct status_msg));
1057 h->status_cnt = cpu_to_le16(hba->sts_count+1);
1058 stex_gettime(&h->hosttime);
1059 h->partner_type = HMU_PARTNER_TYPE;
1060 h->extra_offset = h->extra_size = 0;
1061 h->scratch_size = cpu_to_le32((hba->sts_count+1)*sizeof(u32));
1062
1063 data = readl(base + YINT_EN);
1064 data &= ~4;
1065 writel(data, base + YINT_EN);
1066 writel((hba->dma_handle >> 16) >> 16, base + YH2I_REQ_HI);
1067 writel(hba->dma_handle, base + YH2I_REQ);
1068
1069 scratch = hba->scratch;
1070 before = jiffies;
1071 while (!(le32_to_cpu(*scratch) & SS_STS_HANDSHAKE)) {
1072 if (time_after(jiffies, before + MU_MAX_DELAY * HZ)) {
1073 printk(KERN_ERR DRV_NAME
1074 "(%s): no signature after handshake frame\n",
1075 pci_name(hba->pdev));
1076 ret = -1;
1077 break;
1078 }
1079 rmb();
1080 msleep(1);
1081 }
1082
1083 *scratch = 0;
1084 msg_h->flag = 0;
1085 return ret;
1086}
1087
1088static int stex_handshake(struct st_hba *hba)
1089{
1090 int err;
1091 unsigned long flags;
1092
1093 err = (hba->cardtype == st_yel) ?
1094 stex_ss_handshake(hba) : stex_common_handshake(hba);
1095 if (err == 0) {
1096 spin_lock_irqsave(hba->host->host_lock, flags);
1097 hba->req_head = 0;
1098 hba->req_tail = 0;
1099 hba->status_head = 0;
1100 hba->status_tail = 0;
1101 hba->out_req_cnt = 0;
1102 hba->mu_status = MU_STATE_STARTED;
1103 spin_unlock_irqrestore(hba->host->host_lock, flags);
1104 }
1105 return err;
1106}
1107
858static int stex_abort(struct scsi_cmnd *cmd) 1108static int stex_abort(struct scsi_cmnd *cmd)
859{ 1109{
860 struct Scsi_Host *host = cmd->device->host; 1110 struct Scsi_Host *host = cmd->device->host;
@@ -883,15 +1133,23 @@ static int stex_abort(struct scsi_cmnd *cmd)
883 goto out; 1133 goto out;
884 } 1134 }
885 1135
886 data = readl(base + ODBL); 1136 if (hba->cardtype == st_yel) {
887 if (data == 0 || data == 0xffffffff) 1137 data = readl(base + YI2H_INT);
888 goto fail_out; 1138 if (data == 0 || data == 0xffffffff)
1139 goto fail_out;
889 1140
890 writel(data, base + ODBL); 1141 writel(data, base + YI2H_INT_C);
891 readl(base + ODBL); /* flush */ 1142 stex_ss_mu_intr(hba);
1143 } else {
1144 data = readl(base + ODBL);
1145 if (data == 0 || data == 0xffffffff)
1146 goto fail_out;
892 1147
893 stex_mu_intr(hba, data); 1148 writel(data, base + ODBL);
1149 readl(base + ODBL); /* flush */
894 1150
1151 stex_mu_intr(hba, data);
1152 }
895 if (hba->wait_ccb == NULL) { 1153 if (hba->wait_ccb == NULL) {
896 printk(KERN_WARNING DRV_NAME 1154 printk(KERN_WARNING DRV_NAME
897 "(%s): lost interrupt\n", pci_name(hba->pdev)); 1155 "(%s): lost interrupt\n", pci_name(hba->pdev));
@@ -950,8 +1208,8 @@ static void stex_hard_reset(struct st_hba *hba)
950static int stex_reset(struct scsi_cmnd *cmd) 1208static int stex_reset(struct scsi_cmnd *cmd)
951{ 1209{
952 struct st_hba *hba; 1210 struct st_hba *hba;
953 unsigned long flags; 1211 void __iomem *base;
954 unsigned long before; 1212 unsigned long flags, before;
955 1213
956 hba = (struct st_hba *) &cmd->device->host->hostdata[0]; 1214 hba = (struct st_hba *) &cmd->device->host->hostdata[0];
957 1215
@@ -971,13 +1229,6 @@ static int stex_reset(struct scsi_cmnd *cmd)
971 pci_name(hba->pdev)); 1229 pci_name(hba->pdev));
972 return FAILED; 1230 return FAILED;
973 } 1231 }
974 spin_lock_irqsave(hba->host->host_lock, flags);
975 hba->req_head = 0;
976 hba->req_tail = 0;
977 hba->status_head = 0;
978 hba->status_tail = 0;
979 hba->out_req_cnt = 0;
980 spin_unlock_irqrestore(hba->host->host_lock, flags);
981 return SUCCESS; 1232 return SUCCESS;
982 } 1233 }
983 1234
@@ -994,7 +1245,23 @@ static int stex_reset(struct scsi_cmnd *cmd)
994 msleep(1); 1245 msleep(1);
995 } 1246 }
996 1247
1248 base = hba->mmio_base;
1249 writel(0, base + IMR0);
1250 readl(base + IMR0);
1251 writel(0, base + OMR0);
1252 readl(base + OMR0);
1253 writel(0, base + IMR1);
1254 readl(base + IMR1);
1255 writel(0, base + OMR1);
1256 readl(base + OMR1); /* flush */
1257 spin_lock_irqsave(hba->host->host_lock, flags);
1258 hba->req_head = 0;
1259 hba->req_tail = 0;
1260 hba->status_head = 0;
1261 hba->status_tail = 0;
1262 hba->out_req_cnt = 0;
997 hba->mu_status = MU_STATE_STARTED; 1263 hba->mu_status = MU_STATE_STARTED;
1264 spin_unlock_irqrestore(hba->host->host_lock, flags);
998 return SUCCESS; 1265 return SUCCESS;
999} 1266}
1000 1267
@@ -1028,10 +1295,100 @@ static struct scsi_host_template driver_template = {
1028 .slave_destroy = stex_slave_destroy, 1295 .slave_destroy = stex_slave_destroy,
1029 .eh_abort_handler = stex_abort, 1296 .eh_abort_handler = stex_abort,
1030 .eh_host_reset_handler = stex_reset, 1297 .eh_host_reset_handler = stex_reset,
1031 .can_queue = ST_CAN_QUEUE,
1032 .this_id = -1, 1298 .this_id = -1,
1033 .sg_tablesize = ST_MAX_SG, 1299};
1034 .cmd_per_lun = ST_CMD_PER_LUN, 1300
1301static struct pci_device_id stex_pci_tbl[] = {
1302 /* st_shasta */
1303 { 0x105a, 0x8350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1304 st_shasta }, /* SuperTrak EX8350/8300/16350/16300 */
1305 { 0x105a, 0xc350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1306 st_shasta }, /* SuperTrak EX12350 */
1307 { 0x105a, 0x4302, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1308 st_shasta }, /* SuperTrak EX4350 */
1309 { 0x105a, 0xe350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1310 st_shasta }, /* SuperTrak EX24350 */
1311
1312 /* st_vsc */
1313 { 0x105a, 0x7250, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_vsc },
1314
1315 /* st_yosemite */
1316 { 0x105a, 0x8650, 0x105a, PCI_ANY_ID, 0, 0, st_yosemite },
1317
1318 /* st_seq */
1319 { 0x105a, 0x3360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_seq },
1320
1321 /* st_yel */
1322 { 0x105a, 0x8650, 0x1033, PCI_ANY_ID, 0, 0, st_yel },
1323 { 0x105a, 0x8760, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_yel },
1324 { } /* terminate list */
1325};
1326
1327static struct st_card_info stex_card_info[] = {
1328 /* st_shasta */
1329 {
1330 .max_id = 17,
1331 .max_lun = 8,
1332 .max_channel = 0,
1333 .rq_count = 32,
1334 .rq_size = 1048,
1335 .sts_count = 32,
1336 .alloc_rq = stex_alloc_req,
1337 .map_sg = stex_map_sg,
1338 .send = stex_send_cmd,
1339 },
1340
1341 /* st_vsc */
1342 {
1343 .max_id = 129,
1344 .max_lun = 1,
1345 .max_channel = 0,
1346 .rq_count = 32,
1347 .rq_size = 1048,
1348 .sts_count = 32,
1349 .alloc_rq = stex_alloc_req,
1350 .map_sg = stex_map_sg,
1351 .send = stex_send_cmd,
1352 },
1353
1354 /* st_yosemite */
1355 {
1356 .max_id = 2,
1357 .max_lun = 256,
1358 .max_channel = 0,
1359 .rq_count = 256,
1360 .rq_size = 1048,
1361 .sts_count = 256,
1362 .alloc_rq = stex_alloc_req,
1363 .map_sg = stex_map_sg,
1364 .send = stex_send_cmd,
1365 },
1366
1367 /* st_seq */
1368 {
1369 .max_id = 129,
1370 .max_lun = 1,
1371 .max_channel = 0,
1372 .rq_count = 32,
1373 .rq_size = 1048,
1374 .sts_count = 32,
1375 .alloc_rq = stex_alloc_req,
1376 .map_sg = stex_map_sg,
1377 .send = stex_send_cmd,
1378 },
1379
1380 /* st_yel */
1381 {
1382 .max_id = 129,
1383 .max_lun = 256,
1384 .max_channel = 3,
1385 .rq_count = 801,
1386 .rq_size = 512,
1387 .sts_count = 801,
1388 .alloc_rq = stex_ss_alloc_req,
1389 .map_sg = stex_ss_map_sg,
1390 .send = stex_ss_send_cmd,
1391 },
1035}; 1392};
1036 1393
1037static int stex_set_dma_mask(struct pci_dev * pdev) 1394static int stex_set_dma_mask(struct pci_dev * pdev)
@@ -1047,11 +1404,48 @@ static int stex_set_dma_mask(struct pci_dev * pdev)
1047 return ret; 1404 return ret;
1048} 1405}
1049 1406
1407static int stex_request_irq(struct st_hba *hba)
1408{
1409 struct pci_dev *pdev = hba->pdev;
1410 int status;
1411
1412 if (msi) {
1413 status = pci_enable_msi(pdev);
1414 if (status != 0)
1415 printk(KERN_ERR DRV_NAME
1416 "(%s): error %d setting up MSI\n",
1417 pci_name(pdev), status);
1418 else
1419 hba->msi_enabled = 1;
1420 } else
1421 hba->msi_enabled = 0;
1422
1423 status = request_irq(pdev->irq, hba->cardtype == st_yel ?
1424 stex_ss_intr : stex_intr, IRQF_SHARED, DRV_NAME, hba);
1425
1426 if (status != 0) {
1427 if (hba->msi_enabled)
1428 pci_disable_msi(pdev);
1429 }
1430 return status;
1431}
1432
1433static void stex_free_irq(struct st_hba *hba)
1434{
1435 struct pci_dev *pdev = hba->pdev;
1436
1437 free_irq(pdev->irq, hba);
1438 if (hba->msi_enabled)
1439 pci_disable_msi(pdev);
1440}
1441
1050static int __devinit 1442static int __devinit
1051stex_probe(struct pci_dev *pdev, const struct pci_device_id *id) 1443stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1052{ 1444{
1053 struct st_hba *hba; 1445 struct st_hba *hba;
1054 struct Scsi_Host *host; 1446 struct Scsi_Host *host;
1447 const struct st_card_info *ci = NULL;
1448 u32 sts_offset, cp_offset, scratch_offset;
1055 int err; 1449 int err;
1056 1450
1057 err = pci_enable_device(pdev); 1451 err = pci_enable_device(pdev);
@@ -1095,10 +1489,17 @@ stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1095 } 1489 }
1096 1490
1097 hba->cardtype = (unsigned int) id->driver_data; 1491 hba->cardtype = (unsigned int) id->driver_data;
1098 if (hba->cardtype == st_vsc && (pdev->subsystem_device & 1)) 1492 ci = &stex_card_info[hba->cardtype];
1099 hba->cardtype = st_vsc1; 1493 sts_offset = scratch_offset = (ci->rq_count+1) * ci->rq_size;
1100 hba->dma_size = (hba->cardtype == st_vsc1 || hba->cardtype == st_seq) ? 1494 if (hba->cardtype == st_yel)
1101 (STEX_BUFFER_SIZE + ST_ADDITIONAL_MEM) : (STEX_BUFFER_SIZE); 1495 sts_offset += (ci->sts_count+1) * sizeof(u32);
1496 cp_offset = sts_offset + (ci->sts_count+1) * sizeof(struct status_msg);
1497 hba->dma_size = cp_offset + sizeof(struct st_frame);
1498 if (hba->cardtype == st_seq ||
1499 (hba->cardtype == st_vsc && (pdev->subsystem_device & 1))) {
1500 hba->extra_offset = hba->dma_size;
1501 hba->dma_size += ST_ADDITIONAL_MEM;
1502 }
1102 hba->dma_mem = dma_alloc_coherent(&pdev->dev, 1503 hba->dma_mem = dma_alloc_coherent(&pdev->dev,
1103 hba->dma_size, &hba->dma_handle, GFP_KERNEL); 1504 hba->dma_size, &hba->dma_handle, GFP_KERNEL);
1104 if (!hba->dma_mem) { 1505 if (!hba->dma_mem) {
@@ -1108,35 +1509,46 @@ stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1108 goto out_iounmap; 1509 goto out_iounmap;
1109 } 1510 }
1110 1511
1111 hba->status_buffer = 1512 hba->ccb = kcalloc(ci->rq_count, sizeof(struct st_ccb), GFP_KERNEL);
1112 (struct status_msg *)(hba->dma_mem + MU_REQ_BUFFER_SIZE); 1513 if (!hba->ccb) {
1113 hba->copy_buffer = hba->dma_mem + MU_BUFFER_SIZE; 1514 err = -ENOMEM;
1515 printk(KERN_ERR DRV_NAME "(%s): ccb alloc failed\n",
1516 pci_name(pdev));
1517 goto out_pci_free;
1518 }
1519
1520 if (hba->cardtype == st_yel)
1521 hba->scratch = (__le32 *)(hba->dma_mem + scratch_offset);
1522 hba->status_buffer = (struct status_msg *)(hba->dma_mem + sts_offset);
1523 hba->copy_buffer = hba->dma_mem + cp_offset;
1524 hba->rq_count = ci->rq_count;
1525 hba->rq_size = ci->rq_size;
1526 hba->sts_count = ci->sts_count;
1527 hba->alloc_rq = ci->alloc_rq;
1528 hba->map_sg = ci->map_sg;
1529 hba->send = ci->send;
1114 hba->mu_status = MU_STATE_STARTING; 1530 hba->mu_status = MU_STATE_STARTING;
1115 1531
1116 if (hba->cardtype == st_shasta) { 1532 if (hba->cardtype == st_yel)
1117 host->max_lun = 8; 1533 host->sg_tablesize = 38;
1118 host->max_id = 16 + 1; 1534 else
1119 } else if (hba->cardtype == st_yosemite) { 1535 host->sg_tablesize = 32;
1120 host->max_lun = 256; 1536 host->can_queue = ci->rq_count;
1121 host->max_id = 1 + 1; 1537 host->cmd_per_lun = ci->rq_count;
1122 } else { 1538 host->max_id = ci->max_id;
1123 /* st_vsc , st_vsc1 and st_seq */ 1539 host->max_lun = ci->max_lun;
1124 host->max_lun = 1; 1540 host->max_channel = ci->max_channel;
1125 host->max_id = 128 + 1;
1126 }
1127 host->max_channel = 0;
1128 host->unique_id = host->host_no; 1541 host->unique_id = host->host_no;
1129 host->max_cmd_len = STEX_CDB_LENGTH; 1542 host->max_cmd_len = STEX_CDB_LENGTH;
1130 1543
1131 hba->host = host; 1544 hba->host = host;
1132 hba->pdev = pdev; 1545 hba->pdev = pdev;
1133 init_waitqueue_head(&hba->waitq);
1134 1546
1135 err = request_irq(pdev->irq, stex_intr, IRQF_SHARED, DRV_NAME, hba); 1547 err = stex_request_irq(hba);
1136 if (err) { 1548 if (err) {
1137 printk(KERN_ERR DRV_NAME "(%s): request irq failed\n", 1549 printk(KERN_ERR DRV_NAME "(%s): request irq failed\n",
1138 pci_name(pdev)); 1550 pci_name(pdev));
1139 goto out_pci_free; 1551 goto out_ccb_free;
1140 } 1552 }
1141 1553
1142 err = stex_handshake(hba); 1554 err = stex_handshake(hba);
@@ -1164,7 +1576,9 @@ stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1164 return 0; 1576 return 0;
1165 1577
1166out_free_irq: 1578out_free_irq:
1167 free_irq(pdev->irq, hba); 1579 stex_free_irq(hba);
1580out_ccb_free:
1581 kfree(hba->ccb);
1168out_pci_free: 1582out_pci_free:
1169 dma_free_coherent(&pdev->dev, hba->dma_size, 1583 dma_free_coherent(&pdev->dev, hba->dma_size,
1170 hba->dma_mem, hba->dma_handle); 1584 hba->dma_mem, hba->dma_handle);
@@ -1183,15 +1597,20 @@ out_disable:
1183static void stex_hba_stop(struct st_hba *hba) 1597static void stex_hba_stop(struct st_hba *hba)
1184{ 1598{
1185 struct req_msg *req; 1599 struct req_msg *req;
1600 struct st_msg_header *msg_h;
1186 unsigned long flags; 1601 unsigned long flags;
1187 unsigned long before; 1602 unsigned long before;
1188 u16 tag = 0; 1603 u16 tag = 0;
1189 1604
1190 spin_lock_irqsave(hba->host->host_lock, flags); 1605 spin_lock_irqsave(hba->host->host_lock, flags);
1191 req = stex_alloc_req(hba); 1606 req = hba->alloc_rq(hba);
1192 memset(req->cdb, 0, STEX_CDB_LENGTH); 1607 if (hba->cardtype == st_yel) {
1608 msg_h = (struct st_msg_header *)req - 1;
1609 memset(msg_h, 0, hba->rq_size);
1610 } else
1611 memset(req, 0, hba->rq_size);
1193 1612
1194 if (hba->cardtype == st_yosemite) { 1613 if (hba->cardtype == st_yosemite || hba->cardtype == st_yel) {
1195 req->cdb[0] = MGT_CMD; 1614 req->cdb[0] = MGT_CMD;
1196 req->cdb[1] = MGT_CMD_SIGNATURE; 1615 req->cdb[1] = MGT_CMD_SIGNATURE;
1197 req->cdb[2] = CTLR_CONFIG_CMD; 1616 req->cdb[2] = CTLR_CONFIG_CMD;
@@ -1206,27 +1625,31 @@ static void stex_hba_stop(struct st_hba *hba)
1206 hba->ccb[tag].sg_count = 0; 1625 hba->ccb[tag].sg_count = 0;
1207 hba->ccb[tag].sense_bufflen = 0; 1626 hba->ccb[tag].sense_bufflen = 0;
1208 hba->ccb[tag].sense_buffer = NULL; 1627 hba->ccb[tag].sense_buffer = NULL;
1209 hba->ccb[tag].req_type |= PASSTHRU_REQ_TYPE; 1628 hba->ccb[tag].req_type = PASSTHRU_REQ_TYPE;
1210 1629
1211 stex_send_cmd(hba, req, tag); 1630 hba->send(hba, req, tag);
1212 spin_unlock_irqrestore(hba->host->host_lock, flags); 1631 spin_unlock_irqrestore(hba->host->host_lock, flags);
1213 1632
1214 before = jiffies; 1633 before = jiffies;
1215 while (hba->ccb[tag].req_type & PASSTHRU_REQ_TYPE) { 1634 while (hba->ccb[tag].req_type & PASSTHRU_REQ_TYPE) {
1216 if (time_after(jiffies, before + ST_INTERNAL_TIMEOUT * HZ)) 1635 if (time_after(jiffies, before + ST_INTERNAL_TIMEOUT * HZ)) {
1636 hba->ccb[tag].req_type = 0;
1217 return; 1637 return;
1218 msleep(10); 1638 }
1639 msleep(1);
1219 } 1640 }
1220} 1641}
1221 1642
1222static void stex_hba_free(struct st_hba *hba) 1643static void stex_hba_free(struct st_hba *hba)
1223{ 1644{
1224 free_irq(hba->pdev->irq, hba); 1645 stex_free_irq(hba);
1225 1646
1226 iounmap(hba->mmio_base); 1647 iounmap(hba->mmio_base);
1227 1648
1228 pci_release_regions(hba->pdev); 1649 pci_release_regions(hba->pdev);
1229 1650
1651 kfree(hba->ccb);
1652
1230 dma_free_coherent(&hba->pdev->dev, hba->dma_size, 1653 dma_free_coherent(&hba->pdev->dev, hba->dma_size,
1231 hba->dma_mem, hba->dma_handle); 1654 hba->dma_mem, hba->dma_handle);
1232} 1655}
@@ -1255,27 +1678,6 @@ static void stex_shutdown(struct pci_dev *pdev)
1255 stex_hba_stop(hba); 1678 stex_hba_stop(hba);
1256} 1679}
1257 1680
1258static struct pci_device_id stex_pci_tbl[] = {
1259 /* st_shasta */
1260 { 0x105a, 0x8350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1261 st_shasta }, /* SuperTrak EX8350/8300/16350/16300 */
1262 { 0x105a, 0xc350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1263 st_shasta }, /* SuperTrak EX12350 */
1264 { 0x105a, 0x4302, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1265 st_shasta }, /* SuperTrak EX4350 */
1266 { 0x105a, 0xe350, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
1267 st_shasta }, /* SuperTrak EX24350 */
1268
1269 /* st_vsc */
1270 { 0x105a, 0x7250, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_vsc },
1271
1272 /* st_yosemite */
1273 { 0x105a, 0x8650, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_yosemite },
1274
1275 /* st_seq */
1276 { 0x105a, 0x3360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, st_seq },
1277 { } /* terminate list */
1278};
1279MODULE_DEVICE_TABLE(pci, stex_pci_tbl); 1681MODULE_DEVICE_TABLE(pci, stex_pci_tbl);
1280 1682
1281static struct pci_driver stex_pci_driver = { 1683static struct pci_driver stex_pci_driver = {
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.h b/drivers/scsi/sym53c8xx_2/sym_glue.h
index 567fbe0b4f0..b80bf709f10 100644
--- a/drivers/scsi/sym53c8xx_2/sym_glue.h
+++ b/drivers/scsi/sym53c8xx_2/sym_glue.h
@@ -234,7 +234,7 @@ static inline struct sym_hcb * sym_get_hcb(struct Scsi_Host *host)
234/* 234/*
235 * Set the status field of a CAM CCB. 235 * Set the status field of a CAM CCB.
236 */ 236 */
237static __inline void 237static inline void
238sym_set_cam_status(struct scsi_cmnd *cmd, int status) 238sym_set_cam_status(struct scsi_cmnd *cmd, int status)
239{ 239{
240 cmd->result &= ~(0xff << 16); 240 cmd->result &= ~(0xff << 16);
@@ -244,7 +244,7 @@ sym_set_cam_status(struct scsi_cmnd *cmd, int status)
244/* 244/*
245 * Get the status field of a CAM CCB. 245 * Get the status field of a CAM CCB.
246 */ 246 */
247static __inline int 247static inline int
248sym_get_cam_status(struct scsi_cmnd *cmd) 248sym_get_cam_status(struct scsi_cmnd *cmd)
249{ 249{
250 return host_byte(cmd->result); 250 return host_byte(cmd->result);
@@ -253,7 +253,7 @@ sym_get_cam_status(struct scsi_cmnd *cmd)
253/* 253/*
254 * Build CAM result for a successful IO and for a failed IO. 254 * Build CAM result for a successful IO and for a failed IO.
255 */ 255 */
256static __inline void sym_set_cam_result_ok(struct sym_ccb *cp, struct scsi_cmnd *cmd, int resid) 256static inline void sym_set_cam_result_ok(struct sym_ccb *cp, struct scsi_cmnd *cmd, int resid)
257{ 257{
258 scsi_set_resid(cmd, resid); 258 scsi_set_resid(cmd, resid);
259 cmd->result = (((DID_OK) << 16) + ((cp->ssss_status) & 0x7f)); 259 cmd->result = (((DID_OK) << 16) + ((cp->ssss_status) & 0x7f));
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.c b/drivers/scsi/sym53c8xx_2/sym_hipd.c
index ccea7db59f4..ffa70d1ed18 100644
--- a/drivers/scsi/sym53c8xx_2/sym_hipd.c
+++ b/drivers/scsi/sym53c8xx_2/sym_hipd.c
@@ -602,7 +602,7 @@ sym_getsync(struct sym_hcb *np, u_char dt, u_char sfac, u_char *divp, u_char *fa
602/* 602/*
603 * Set initial io register bits from burst code. 603 * Set initial io register bits from burst code.
604 */ 604 */
605static __inline void sym_init_burst(struct sym_hcb *np, u_char bc) 605static inline void sym_init_burst(struct sym_hcb *np, u_char bc)
606{ 606{
607 np->rv_ctest4 &= ~0x80; 607 np->rv_ctest4 &= ~0x80;
608 np->rv_dmode &= ~(0x3 << 6); 608 np->rv_dmode &= ~(0x3 << 6);
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.h b/drivers/scsi/sym53c8xx_2/sym_hipd.h
index 61d28fcfffb..1588c90518d 100644
--- a/drivers/scsi/sym53c8xx_2/sym_hipd.h
+++ b/drivers/scsi/sym53c8xx_2/sym_hipd.h
@@ -1096,7 +1096,7 @@ do { \
1096#elif SYM_CONF_DMA_ADDRESSING_MODE == 2 1096#elif SYM_CONF_DMA_ADDRESSING_MODE == 2
1097#define DMA_DAC_MASK DMA_64BIT_MASK 1097#define DMA_DAC_MASK DMA_64BIT_MASK
1098int sym_lookup_dmap(struct sym_hcb *np, u32 h, int s); 1098int sym_lookup_dmap(struct sym_hcb *np, u32 h, int s);
1099static __inline void 1099static inline void
1100sym_build_sge(struct sym_hcb *np, struct sym_tblmove *data, u64 badd, int len) 1100sym_build_sge(struct sym_hcb *np, struct sym_tblmove *data, u64 badd, int len)
1101{ 1101{
1102 u32 h = (badd>>32); 1102 u32 h = (badd>>32);
@@ -1201,7 +1201,7 @@ dma_addr_t __vtobus(m_pool_ident_t dev_dmat, void *m);
1201 1201
1202#define sym_m_pool_match(mp_id1, mp_id2) (mp_id1 == mp_id2) 1202#define sym_m_pool_match(mp_id1, mp_id2) (mp_id1 == mp_id2)
1203 1203
1204static __inline void *sym_m_get_dma_mem_cluster(m_pool_p mp, m_vtob_p vbp) 1204static inline void *sym_m_get_dma_mem_cluster(m_pool_p mp, m_vtob_p vbp)
1205{ 1205{
1206 void *vaddr = NULL; 1206 void *vaddr = NULL;
1207 dma_addr_t baddr = 0; 1207 dma_addr_t baddr = 0;
@@ -1215,7 +1215,7 @@ static __inline void *sym_m_get_dma_mem_cluster(m_pool_p mp, m_vtob_p vbp)
1215 return vaddr; 1215 return vaddr;
1216} 1216}
1217 1217
1218static __inline void sym_m_free_dma_mem_cluster(m_pool_p mp, m_vtob_p vbp) 1218static inline void sym_m_free_dma_mem_cluster(m_pool_p mp, m_vtob_p vbp)
1219{ 1219{
1220 dma_free_coherent(mp->dev_dmat, SYM_MEM_CLUSTER_SIZE, vbp->vaddr, 1220 dma_free_coherent(mp->dev_dmat, SYM_MEM_CLUSTER_SIZE, vbp->vaddr,
1221 vbp->baddr); 1221 vbp->baddr);
diff --git a/drivers/scsi/sym53c8xx_2/sym_malloc.c b/drivers/scsi/sym53c8xx_2/sym_malloc.c
index 92bf9b14a7a..883cac10daf 100644
--- a/drivers/scsi/sym53c8xx_2/sym_malloc.c
+++ b/drivers/scsi/sym53c8xx_2/sym_malloc.c
@@ -262,7 +262,7 @@ static void ___free_dma_mem_cluster(m_pool_p mp, void *m)
262#endif 262#endif
263 263
264/* Fetch the memory pool for a given pool id (i.e. DMA constraints) */ 264/* Fetch the memory pool for a given pool id (i.e. DMA constraints) */
265static __inline m_pool_p ___get_dma_pool(m_pool_ident_t dev_dmat) 265static inline m_pool_p ___get_dma_pool(m_pool_ident_t dev_dmat)
266{ 266{
267 m_pool_p mp; 267 m_pool_p mp;
268 for (mp = mp0.next; 268 for (mp = mp0.next;
diff --git a/drivers/scsi/sym53c8xx_2/sym_misc.h b/drivers/scsi/sym53c8xx_2/sym_misc.h
index 430537183c1..96c15145902 100644
--- a/drivers/scsi/sym53c8xx_2/sym_misc.h
+++ b/drivers/scsi/sym53c8xx_2/sym_misc.h
@@ -52,17 +52,17 @@ typedef struct sym_quehead {
52 (ptr)->flink = (ptr); (ptr)->blink = (ptr); \ 52 (ptr)->flink = (ptr); (ptr)->blink = (ptr); \
53} while (0) 53} while (0)
54 54
55static __inline struct sym_quehead *sym_que_first(struct sym_quehead *head) 55static inline struct sym_quehead *sym_que_first(struct sym_quehead *head)
56{ 56{
57 return (head->flink == head) ? 0 : head->flink; 57 return (head->flink == head) ? 0 : head->flink;
58} 58}
59 59
60static __inline struct sym_quehead *sym_que_last(struct sym_quehead *head) 60static inline struct sym_quehead *sym_que_last(struct sym_quehead *head)
61{ 61{
62 return (head->blink == head) ? 0 : head->blink; 62 return (head->blink == head) ? 0 : head->blink;
63} 63}
64 64
65static __inline void __sym_que_add(struct sym_quehead * new, 65static inline void __sym_que_add(struct sym_quehead * new,
66 struct sym_quehead * blink, 66 struct sym_quehead * blink,
67 struct sym_quehead * flink) 67 struct sym_quehead * flink)
68{ 68{
@@ -72,19 +72,19 @@ static __inline void __sym_que_add(struct sym_quehead * new,
72 blink->flink = new; 72 blink->flink = new;
73} 73}
74 74
75static __inline void __sym_que_del(struct sym_quehead * blink, 75static inline void __sym_que_del(struct sym_quehead * blink,
76 struct sym_quehead * flink) 76 struct sym_quehead * flink)
77{ 77{
78 flink->blink = blink; 78 flink->blink = blink;
79 blink->flink = flink; 79 blink->flink = flink;
80} 80}
81 81
82static __inline int sym_que_empty(struct sym_quehead *head) 82static inline int sym_que_empty(struct sym_quehead *head)
83{ 83{
84 return head->flink == head; 84 return head->flink == head;
85} 85}
86 86
87static __inline void sym_que_splice(struct sym_quehead *list, 87static inline void sym_que_splice(struct sym_quehead *list,
88 struct sym_quehead *head) 88 struct sym_quehead *head)
89{ 89{
90 struct sym_quehead *first = list->flink; 90 struct sym_quehead *first = list->flink;
@@ -101,7 +101,7 @@ static __inline void sym_que_splice(struct sym_quehead *list,
101 } 101 }
102} 102}
103 103
104static __inline void sym_que_move(struct sym_quehead *orig, 104static inline void sym_que_move(struct sym_quehead *orig,
105 struct sym_quehead *dest) 105 struct sym_quehead *dest)
106{ 106{
107 struct sym_quehead *first, *last; 107 struct sym_quehead *first, *last;
@@ -129,7 +129,7 @@ static __inline void sym_que_move(struct sym_quehead *orig,
129 129
130#define sym_insque_head(new, head) __sym_que_add(new, head, (head)->flink) 130#define sym_insque_head(new, head) __sym_que_add(new, head, (head)->flink)
131 131
132static __inline struct sym_quehead *sym_remque_head(struct sym_quehead *head) 132static inline struct sym_quehead *sym_remque_head(struct sym_quehead *head)
133{ 133{
134 struct sym_quehead *elem = head->flink; 134 struct sym_quehead *elem = head->flink;
135 135
@@ -142,7 +142,7 @@ static __inline struct sym_quehead *sym_remque_head(struct sym_quehead *head)
142 142
143#define sym_insque_tail(new, head) __sym_que_add(new, (head)->blink, head) 143#define sym_insque_tail(new, head) __sym_que_add(new, (head)->blink, head)
144 144
145static __inline struct sym_quehead *sym_remque_tail(struct sym_quehead *head) 145static inline struct sym_quehead *sym_remque_tail(struct sym_quehead *head)
146{ 146{
147 struct sym_quehead *elem = head->blink; 147 struct sym_quehead *elem = head->blink;
148 148
diff --git a/firmware/Makefile b/firmware/Makefile
index 16664894966..14fdd073c79 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -41,6 +41,11 @@ fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
41fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ 41fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
42 e100/d102e_ucode.bin 42 e100/d102e_ucode.bin
43fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin 43fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin
44fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \
45 advansys/3550.bin advansys/38C0800.bin
46fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \
47 qlogic/12160.bin
48fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin
44fw-shipped-$(CONFIG_SMCTR) += tr_smctr.bin 49fw-shipped-$(CONFIG_SMCTR) += tr_smctr.bin
45fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp 50fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp
46fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ 51fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \
diff --git a/firmware/WHENCE b/firmware/WHENCE
index d6c227db37c..c006af85a1a 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -45,6 +45,32 @@ Found alsa-firmware package in hex form, with the following comment:
45 45
46-------------------------------------------------------------------------- 46--------------------------------------------------------------------------
47 47
48Driver: SCSI_ADVANSYS - AdvanSys SCSI
49
50File: advansys/mcode.bin
51File: advansys/3550.bin
52File: advansys/38C0800.bin
53File: advansys/38C1600.bin
54
55Licence: BSD, no source available.
56
57Found in hex form in kernel source.
58
59--------------------------------------------------------------------------
60
61Driver: SCSI_QLOGIC_1280 - Qlogic QLA 1240/1x80/1x160 SCSI support
62
63File: qlogic/1040.bin
64File: qlogic/1280.bin
65File: qlogic/12160.bin
66
67Licence: Allegedly GPLv2+, but no source visible. Marked:
68
69 QLOGIC LINUX SOFTWARE
70 QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x
71 Copyright (C) 2001 Qlogic Corporation (www.qlogic.com)
72
73--------------------------------------------------------------------------
48Driver: smctr -- SMC ISA/MCA Token Ring adapter 74Driver: smctr -- SMC ISA/MCA Token Ring adapter
49 75
50File: tr_smctr.bin 76File: tr_smctr.bin
@@ -596,3 +622,13 @@ Licence: Allegedly GPL, but no source visible. Marked:
596Found in hex form in kernel source. 622Found in hex form in kernel source.
597 623
598-------------------------------------------------------------------------- 624--------------------------------------------------------------------------
625
626Driver: SCSI_QLOGICPTI - PTI Qlogic, ISP Driver
627
628File: qlogic/isp1000.bin
629
630Licence: Unknown
631
632Found in hex form in kernel source.
633
634--------------------------------------------------------------------------
diff --git a/firmware/advansys/3550.bin.ihex b/firmware/advansys/3550.bin.ihex
new file mode 100644
index 00000000000..6809b0d84e4
--- /dev/null
+++ b/firmware/advansys/3550.bin.ihex
@@ -0,0 +1,317 @@
1:10000000DD2DD504000000F200F0001618E400FC1D
2:10001000010048E4BE18188003F6020000FAFFFF52
3:10002000280E9EE7FF0082E700EA00F601E609E7F6
4:1000300055F001F601FA08000300040018F410005E
5:1000400000EC85F0BC00D5F08E0C385400E61EF0B4
6:1000500086F0B4009857D0010C1C3E1C0C00BB006D
7:10006000AA18028032F001FC880CC6120213184054
8:10007000005701EA3C006C016E0104123E570080FB
9:1000800003E6B600C00001013E01DA0F221008129B
10:10009000024AB95403581B8030E44BE4200032007C
11:1000A0003E00800024013C0168016A017001720178
12:1000B000740176017801620A920C2C102E1006133E
13:1000C0004C1CBB553C5604804AE402EE5BF0B1F098
14:1000D00003F706F703FC0F004000BE000001B00864
15:1000E00030136415321C381C4E1C10440248004C5E
16:1000F00004EA5DF004F602FC0500340036009800C6
17:10010000CC0020014E014E0B1E0E0C100A120413DF
18:100110004013301C004EBD56068300DC05F009F08C
19:1001200059F0A7F0B8F00EF70600190033009B0055
20:10013000A400B500BA00D000E100E700DE03560AD3
21:10014000140E021004100A1036100A131213521360
22:1001500010151415AC16201C341C361C08443844E9
23:1001600091440A454846014868548355B0570158A0
24:10017000835905E60BF00CF05CF04BF404F805F83D
25:1001800002FA03FA04FC05FC07000A000D001C003B
26:100190009E00A800AA00B900E00022012601790112
27:1001A0007A01C001C2017C025A03EA04E807680828
28:1001B0006908BA08E909060B3A0E00101A10ED108A
29:1001C000F11006120C1316131E1382134214D614C8
30:1001D0008A15C617D2176B18121C461C9C32004099
31:1001E0000E47484741488948804C00544455E555DE
32:1001F00014567757BF57405C0680089003A1FE9CB9
33:10020000F02902FEB80CFF100000D0FECC1800CF81
34:10021000FE8001FF030000FE9315FE0F05FF38006E
35:1002200000FE572400FE48004FFF04000010FF09A5
36:100230000000FF080101FF08FFFFFF270000FF107B
37:10024000FFFFFF0F0000FE7856FE3412FF21000072
38:10025000FE04F7CF2A670B01FECE0EFE04F7CF6730
39:100260000B3C2AFE3DF0FE0202FE20F09CFE91F0C7
40:10027000FEF001FE90F0FEF001FE8FF09C05513B78
41:1002800002FED40C01FE440DFEDD12FEFC10FE2821
42:100290001C05FEA600FED3124718FEA600B5FE48B8
43:1002A000F0FE8602FE49F0FEA002FE4AF0FEBE020B
44:1002B000FE46F0FE5002FE47F0FE5602FE43F0FE00
45:1002C0004402FE44F0FE4802FE45F0FE4C02170BCD
46:1002D000A0170618960229FE001CDEFE021CDDFE99
47:1002E0001E1CFEE91001FE2017FEE710FE06FCC7EB
48:1002F0000A6B019E0229144D379701FE640F0A6BA9
49:100300000182FEBD100A6B0182FEAD10FE161CFEBE
50:10031000581C170618962A2529FE3DF0FE020221D8
51:10032000FE9402FE5A1CEAFE141C14FE300037979D
52:1003300001FE540F1706189602D01E20071034FE37
53:10034000691017061896FE04EC20463D1220FE05A3
54:10035000F6C701FE5216094A4C35112D3C8A01E6BA
55:1003600002290A40010E07005D016FFE1810FE41D0
56:10037000580A99010EFEC85464FE0C0301E60229D6
57:100380002A46FE02E827F8FE9E43F7FE27F0FEDC31
58:1003900001FE074BFE20F09CFE401C25D2FE26F0FD
59:1003A000FE5603FEA0F0FE4403FE11F09CFEEF108B
60:1003B000FE9FF0FE6403EB0FFE1100025A2AFE4876
61:1003C0001CEB09041DFE1813231E98AC12980A405A
62:1003D000010EAC7501FEBC1511CA25D2FE01F0D28A
63:1003E000FE82F0FE9203EC11FEE40065FEA40325FC
64:1003F000321FFEB4030143FE06F0FEC4038D81FEEE
65:100400000AF0FE7A060222056B2816FEF604142C6A
66:1004100001338FFE660202D1EB2A671AFE671BF8D2
67:10042000F7FE481C70016E870A40010E070016D3C4
68:100430000ACA010E7460597627056B28FE10121443
69:100440002C01338FFE660202D1BC7DBD7F25226563
70:10045000FE3C041FFE380468FEA000FE9B57FE4EC3
71:10046000122BFF02001001081FFEE0042B01081FE1
72:1004700022302ED5FE4C44FE4C1260FE4448132C14
73:10048000FE4C5464D3467627FAEFFE621309041D2E
74:10049000FE2A132F077EA5FE2010132CFE4C546459
75:1004A000D3FAEF8609041DFE08132F077E6E090498
76:1004B0001DFE1C1214920904063B14C401338FFE66
77:1004C000700C02222B11FEE600FE1C90F903149220
78:1004D00001330229FE425B671AFE4659F8F7FE8790
79:1004E00080FE31E44F09040BFE7813FE2080071ACA
80:1004F000FE7012490406FE601305FEA2002816FED7
81:100500008005FE31E46A49040BFE4A1305FEA00093
82:1005100028FE42125E01082532F1010826FE9805E8
83:1005200011FEE3002349FE4AF0FE6A05FE49F0FE93
84:1005300064058324FE2100A124FE2200A0244CFE99
85:100540000948010826FE9805FEE2084904C53B015A
86:1005500086240612CC37FE270109041DFE2212470D
87:1005600001A714920904063B14C401338FFE700CDA
88:10057000022205FE9C0028FE3E12055028FE36137E
89:100580004701A726FE08060A06490419FE02125F63
90:1005900001FEAA141FFEFE05119A014311FEE5009B
91:1005A0000550B40C5005C628FE6212053F28FE5ABD
92:1005B0001301FE141801FE6618FE4348B719136CA8
93:1005C000FF020057488B1C3D85B7694701A726FEEF
94:1005D000720649041BDF890A4D01FED8141FFE680C
95:1005E00006119A014311FEE500053FB40C3F1706C2
96:1005F00001A7EC7270016E8711FEE200010825323E
97:10060000FE0AF0FEA6068CFE5C07FE06F0FE6407FE
98:100610008D81022209040BFE2E12151A0108150005
99:1006200001081500010815000108FE99A40108152C
100:100630000002FE320861041BFE381209041B6E150D
101:10064000FE1B000108150001081500010815000136
102:100650000815060108150002D9664CFE3A555FFEE2
103:100660009A814B1DBAFE32070A1DFE096FAFFECA02
104:1006700045FE3212622C85667B01082532FE0AF0A7
105:10068000FE32078D818CFE5C070222014302FE8A46
106:1006900006151902FE8A06FE9CF7D4FE2C90FEAECB
107:1006A0009077FECA070C541855094A6A351E200770
108:1006B00010FE0E1274FE808037206327FE0610FEA7
109:1006C00083E7C4A1FE0340094A4F3501A8ADFE1FD0
110:1006D00040125801A5FE0850FE8A50FE4451FEC645
111:1006E0005183FBFE8A900C521853FE0C90FE8E90A4
112:1006F000FE4050FEC2500C39183AFE4A1009046AF6
113:10070000FE2A12FE2C90FEAE900C54185509044F90
114:100710008501A8FE1F801258FE4490FEC6900C561C
115:100720001857FBFE8A900C521853FE4090FEC29060
116:100730000C39183A0C38184E094A19352A13FE4E4E
117:100740001165FE4808FE9EF0FE5C08B116322A7361
118:10075000DDB8FE8008B9FE9E088CFE7408FE06F027
119:10076000FE7A088D8102220143FEC9101519FEC9C7
120:1007700010610406FE101261040B4509040BFE68AB
121:1007800012FE2E1C02FE240A6104064561040BFEC3
122:100790005212FE2C1CFEAAF0FE1E09FEACF0FEBE9C
123:1007A00008FE8A10AAFEF310FEADF0FECA0802FE93
124:1007B000240AABFEE710FE2BF09DE91CFE00FEFEB6
125:1007C0001C12B5FED2F09DFE76181C1A169D05CBA4
126:1007D0001C06169DB86DB96DAAABFEB110705E2BEC
127:1007E000149201330FFE3500FE01F05A0F7C025ABD
128:1007F000FE74181CFE00F8166D671B01FE440D3BCD
129:1008000001E61E2774671A026D09040B21FE060A11
130:1008100009046AFE8212090419FE66131E58ACFC14
131:10082000FE8380FEC844FE2E13FE0491FE86916373
132:1008300027FE4059FEC15977D7055431550C7B1816
133:100840007CBE54BF5501A8AD63271258C038C14EB5
134:1008500079566857F4F5FE04FA38FE05FA4E01A5FC
135:10086000A2230C7B0C7C79566857FE1210090419E0
136:1008700016D77939683A0904FEF700350552315325
137:10088000FE1058FE9158FE1459FE9559026D090448
138:100890001916D70904FEF70035FE3A55FE19815F97
139:1008A000FE1090FE9290FED7102F079B16FEC608F2
140:1008B000119B09040BFE14130539313A77FEC60863
141:1008C000FE0C58FE8D58026D2347FE1980DE090488
142:1008D0000BFE1A12FE6C19FE1941E9B5FED1F0D9D2
143:1008E000147A01330FFE4400FE8E10FE6C19BE39DF
144:1008F000FEED19BF3AFE0C51FE8E51E91CFE00FFC1
145:1009000034FE7410B5FED2F0FEB20AFE76181C1A40
146:100910008405CB1C06FE08130FFE1600025AFED1FA
147:10092000F0FEC40A147A01330FFE1700FE4210FED7
148:10093000CEF0FECA0AFE3C10FECDF0FED60A0FFE37
149:100940002200025AFECBF0FEE20A0FFE2400025AF9
150:10095000FED0F0FEEC0A0F93DCFECFF0FEF60A0F9D
151:100960004CFE1010FECCF0D96104193B0FFE1200B2
152:100970002A13FE4E1165FE0C0BFE9EF0FE200BB1FD
153:1009800016322A73DDB822B9222AEC65FE2C0B251B
154:10099000328CFE480B8D81B8D4B9D402220143FEBB
155:1009A000DB1011FEE800AAAB70BC7DBD7FFE89F0B4
156:1009B00022302ED8BC7DBD7F01081F22302ED6B13B
157:1009C000450FFE4200025A7806FE814916FE380C99
158:1009D00009040BFE44130F004B0BFE54124BFE2870
159:1009E0000021FEA60C0A40010E07005D3EFE280015
160:1009F000FEE21001E701E80A9901FE320E59112DBD
161:100A0000016F02290FFE44004B0BDF3E0BFEB410BA
162:100A100001863E0BFEAA100186FE1982FE3446A313
163:100A20003E0B0FFE4300FE9610094A0B3501E7010D
164:100A3000E859112D016F670B593C8A02FE2A030900
165:100A4000040B843E0B0F00FE5C1061041BFE581269
166:100A500009041BFE5013FE1C1CFE9DF0FE5C0CFEE8
167:100A60001C1CFE9DF0FE620C094A1B35FEA9100FEE
168:100A7000FE1500FE04E60B5F5C0FFE1300FE101077
169:100A80000FFE4700A10FFE4100A00FFE240087AA21
170:100A9000AB70056B2821D15FFE04E61BFE9D41FE75
171:100AA0001C425901DA0229EA140B3795A914FE31C8
172:100AB00000379701FE540F02D03CFE06ECC9EE3E13
173:100AC0001DFECE45343CFE06EAC9FE474B89FE7545
174:100AD000570551FE9856FE38120A42010EFE444850
175:100AE0004609041DFE1A130A40010E47FE41580A2A
176:100AF00099010EFE49548EFE2A0D02FE2A030A5168
177:100B0000FEEE14EE3E1DFECE45343CFECE47FEAD5D
178:100B10001302291E200710FE9E1223124D1294125A
179:100B2000CE1E2D47372DB1E0FEBCF0FEEC0D1306B6
180:100B3000124D01FEE21505FE380131FE3A0177FE45
181:100B4000F00DFE02ECCE62005DFE04EC2046FE05D8
182:100B5000F6FE340101FE5216FBFE48F40DFE18139A
183:100B6000AFFE02EACE627AFEC513141B3795A95C6C
184:100B700005FE38011CFEF0FF0CFE600105FE3A0187
185:100B80000CFE62013D12202406122D112D8A13063F
186:100B90000323031E4DFEF7121E94AC1294077AFE37
187:100BA0007113FE241C141A3795A9FED910B6FE0342
188:100BB000DCFE7357FE805D03B6FE03DCFE5B57FE72
189:100BC000805D03FE0357B623FE00CC03FE0357B639
190:100BD000750309044CFE2213FE1C800706FE1A133F
191:100BE000FE1E80E1FE1D80A4FE0C90FE0E13FE0E84
192:100BF00090A3FE3C90FE30F40BFE3C50A001FE8220
193:100C0000162F072DE001FEBC1509041D4501E70163
194:100C1000E811FEE90009044CFE2C1301FE1416FE37
195:100C20001E1CFE1490FE96900CFE640118FE6601D8
196:100C300009044FFE1212FE038074FE01EC20FE80B8
197:100C4000401220632711C8591E20ED762003FE08AC
198:100C50001C05FEAC00FE065805FEAE00FE0758055A
199:100C6000FEB000FE085805FEB200FE0958FE0A1C40
200:100C7000246912C9230C500C3F1340485F171DFE16
201:100C8000904DFE915421FE080F3E10134248174C20
202:100C9000FE904DFE915421FE1E0F24101220782C40
203:100CA000461E20ED762011C8F6FED6F0FE320FEA81
204:100CB00070FE141CFE101CFE181C033CFE0C14EEEF
205:100CC000FE07E61DFECE47FEF513030186782C468F
206:100CD000FAEFFE42132F072DFE34130A42010EB025
207:100CE000FE3612F0FE454801E3FE00CCB0FEF313E1
208:100CF0003D750710A30A80010EFE805C016FFE0E99
209:100D000010077E45F6FED6F0FE6C0F03FE445874C5
210:100D1000FE01EC97FE9E40FE9DE700FE9CE71B76E1
211:100D20002701DAFEDD102ABC7DBD7F302ED5071BE2
212:100D3000FE4812070BFE5612071AFE301207C216A3
213:100D4000FE3E1107FE230016FE4A11070616FEA8F6
214:100D5000110719FE12120700162214C201339F2B2D
215:100D600001088C43032BFE62080ACA01FE320E11F1
216:100D70007E02292B2F079BFED9137939683A77FE1B
217:100D8000FC1009046AFE7212C038C14EF4F58EFEE2
218:100D9000C6101E58FE2613057B317C77FE820C0C94
219:100DA000541855230C7B0C7C01A82469731258013C
220:100DB000A5C038C14EFE0455FEA555FE04FA38FE06
221:100DC00005FA4EFE911005563157FE4056FEE1568B
222:100DD0000C56185783C038C14EF4F505523153FEF6
223:100DE0000056FEA1560C52185309046AFE1E121E2C
224:100DF00058FE1F4005543155FE2C50FEAE5005568E
225:100E00003157FE4450FEC65005523153FE0850FE85
226:100E10008A500539313AFE4050FEC250025C240629
227:100E200012CD025B2B01081F44302ED5070621444A
228:100E30002F079B215B016E1C3D164409040BE279D0
229:100E400039683AFE0A5534FE8B55BE39BF3AFE0C5E
230:100E500051FE8E51025BFE1981AFFE1941025B2BE0
231:100E6000010825321FA2302ED84B1AFEA6124B0BBA
232:100E70003B0244010825321FA2302ED6071A214416
233:100E800001081FA2302EFEE809FEC2496005FE9C43
234:100E9000002884490419349FFEBB454B00453E069B
235:100EA000783DFEDA14016E87FE4B45E22F079AE18A
236:100EB00005C62884053F28345E025BFEC05DFEF84F
237:100EC00014FE03170550B40C505E2B0108265C017C
238:100ED000FEAA14025C010825321F44302ED60706F4
239:100EE000214401FE8E13FE4258FE8214FEA4148794
240:100EF000FE4AF40B1644FE4AF406FE0C122F079A23
241:100F000085025B053FB40C3F5E2B0108265C01FEA9
242:100F1000D814025C130665FECA1226FEE01272F1B6
243:100F200001082372038FFEDC1225FEDC121FFECAAD
244:100F3000125E2B0108FED510136CFF020057488B80
245:100F40001CFEFF7FFE3056FE005C03136CFF0200A8
246:100F500057488B1C3DFE3056FE005C03136CFF02AD
247:100F60000057488B03136CFF020057488BFE0B5849
248:100F7000030A5001820A3F018203FC1C10FF030098
249:100F800054FE00F41948FE007DFE017DFE027DFE48
250:100F9000037C63270C521853BE56BF5703FE6208EA
251:100FA000FE824AFEE11AFE835A740301FE1418FE03
252:100FB00042485F608901081FFEA214302ED8010844
253:100FC0001FFEA214302EFEE80AFEC15905C628FEF7
254:100FD000CC1249041BFEC41323621BE24BC364FE04
255:100FE000E8133B130617C378DBFE7810FF02835526
256:100FF000A1FF028355621AA4BBFE30008EE4172CB9
257:101000001306FE5610620BE1BBFE64008EE40AFE7E
258:10101000640017931306FE28106206FE6013BBFEE1
259:10102000C8008EE40AFEC800174D130683BBFE906D
260:1010300001BAFE4E1489FE1210FE43F494FE56F0DF
261:10104000FE6014FE04F46CFE43F493FEF310F90109
262:10105000FE22131C3DFE1013FE0017FE4DE469BA7C
263:10106000FE9C14B769FE1C10FE0017FE4DE419BA71
264:10107000FE9C14B719836023FE4DF400DF8913062C
265:10108000FEB456FEC3580360130B03150601082671
266:10109000E5150B010826E5151A010826E572FE89FB
267:1010A000490108031506010826A6151A010826A6F7
268:1010B0001506010826A6FE8949010826A672FE89A2
269:1010C0004A01080360031ECC0706FE4413AD12CC90
270:1010D000FE49F4003B729F5EFE01ECFE2701F10128
271:1010E000082F07FEE300FE20131FFE5A152312CD22
272:1010F00001431ECD070645094A0635030A42010E83
273:10110000ED880710A40A80010E880A51019E030A87
274:1011100080010E88FE80E710071084FE455801E329
275:1011200088030A42010E880A51019E030A42010EF9
276:10113000FE8080F2FE49E410A40A80010EF20A51FA
277:1011400001820317107166FE6001FE18DFFE19DED2
278:10115000FE241CFE1DF71D90FEF61501FEFC16E098
279:10116000911D66FE2C01FE2F1903AE21FEE615FE31
280:10117000DA1017107105FE6401FE00F419FE18580C
281:1011800005FE6601FE19589119FE3C90FE30F406EA
282:10119000FE3C5066FE3800FE0F79FE1CF71990FEEB
283:1011A0004016FEB6143403AE21FE1816FE9C10172E
284:1011B0001071FE835AFE18DFFE19DEFE1DF738900F
285:1011C000FE6216FE9414FE10139138661BFEAF19D2
286:1011D000FE98E70003AE21FE5616FE6C1017107144
287:1011E000FE30BCFEB2BC91C5661BFE0F79FE1CF73B
288:1011F000C590FE9A16FE5C143403AE21FE8616FEE0
289:101200004210FE02F61071FE18FE54FE19FE55FC47
290:10121000FE1DF74F90FEC016FE3614FE1C13914FB4
291:1012200047FE8358FEAF19FE80E710FE81E71011DC
292:10123000FEDD006327036327FE124521FEB016146E
293:10124000063795A90229FE39F0FE04172303FE7E16
294:10125000181C1A5D130D037105CB1C06FEEF12FE60
295:10126000E110782C462F072DFE3C13FE8214FE421F
296:10127000133C8A0A42010EB0FE3E12F0FE454801C0
297:10128000E3FE00CCB0FEF3133D750710A30A800106
298:101290000EF2016FFE1610077E85FE4014FE24122A
299:1012A000F6FED6F0FE2417170B03FE9CE70B0FFE8D
300:1012B000150059762701DA1706033C8A094A1D35BD
301:1012C000112D016F170603FE3890FEBA9079C7689A
302:1012D000C8FE485534FEC955031E98731298030A78
303:1012E00099010EF00A40010EFE494416FEF01773F4
304:1012F00075030A42010E0710450A51019E0A40017A
305:101300000E737503FE4EE41A64FE241805FE900069
306:10131000FE3A455BFE4EE4C264FE361805FE9200BE
307:10132000FE02E61BDCFE4EE4FE0B0064FE481805E0
308:10133000FE9400FE02E619FE081005FE9600FE026D
309:10134000E62CFE4E45FE0C12AFFF046854DE1C690D
310:1013500003077AFE5AF0FE741824FE0900FE3410CA
311:10136000071BFE5AF0FE821824C3FE2610071A5DE2
312:10137000242CDC070B5D2493FE0E1007065D244D24
313:101380009FAD0314FE09000133FE04FE7D057FF9C5
314:101390000325FECA18FE14F00865FEC61803FF1ADE
315:0213A00000004B
316:00000001FF
317/* Microcode buffer is kept after initialization for error recovery. */
diff --git a/firmware/advansys/38C0800.bin.ihex b/firmware/advansys/38C0800.bin.ihex
new file mode 100644
index 00000000000..a60b447ff74
--- /dev/null
+++ b/firmware/advansys/38C0800.bin.ihex
@@ -0,0 +1,336 @@
1:10000000D83F0D05000000F200F000FC001618E4D7
2:10001000010048E4188003F60200CE1900FAFFFF41
3:100020001C0F00F69EE7FF0082E700EA01FA01E6F6
4:1000300009E755F001F60300040010001EF085F0FA
5:1000400018F40800BC00385400ECD5F0820D00E62E
6:1000500086F0B1F0985701FCB400D4010C1C3E1C92
7:100060003C00BB000010BA19028032F07C0D021374
8:10007000BA131840005701EA02FC03FC3E006C0171
9:100080006E0174017601B9543E57008003E6B60054
10:10009000C00001013E017A01CA08CE1016110412F7
11:1000A0000812024ABB553C5603581B8030E44BE40F
12:1000B0005DF002FA200032004000800024013C0183
13:1000C00068016A017001720178017C01620A860D83
14:1000D00006134C1C04804AE402EE5BF003F70C00AC
15:1000E0000F004700BE00000120115C16321C381CB6
16:1000F0004E1C1044004C04EA5CF0A7F004F603FA2E
17:100100000500340036009800CC0020014E014A0B57
18:10011000420C120F0C1022110A120413301C024858
19:10012000004E42544455BD56068300DC05F009F0EC
20:1001300059F0B8F04BF406F70EF704FC05FC060086
21:10014000190033009B00A400B500BA00D000E10004
22:10015000E700E203080F021004100A100A130C1340
23:1001600012132414341404160816A417201C341C6B
24:10017000361C0844384491440A45484601486854AE
25:100180003A558355E555B0570158835905E60BF0AC
26:100190000CF004F805F807000A001C001E009E0081
27:1001A000A800AA00B900E0002201260179017E0121
28:1001B000C401C60180025E03EE049A06F8076208D5
29:1001C00068086908D608E909FA0B2E0F12101A10F0
30:1001D000ED10F1102A1106120C123E121013161314
31:1001E0001E134614761482143615CA156B18BE18E1
32:1001F000CA18E619121C461C9C3200400E47FE9C91
33:10020000F02B02FEAC0DFF100000D7FEE81900D65F
34:10021000FE8401FF030000FE9315FE0F05FF38006A
35:1002200000FE572400FE4C005BFF04000011FF0994
36:100230000000FF080101FF08FFFFFF270000FF107B
37:10024000FFFFFF110000FE7856FE3412FF21000070
38:10025000FE04F7D62C990A01FEC20FFE04F7D699C8
39:100260000A422CFE3DF0FE0602FE20F0A7FE91F0B1
40:10027000FEF401FE90F0FEF401FE8FF0A7035D4D49
41:1002800002FEC80D01FE380EFEDD12FEFC10FE2837
42:100290001C03FEA600FED3124114FEA600C2FE48B7
43:1002A000F0FE8A02FE49F0FEA402FE4AF0FEC202FF
44:1002B000FE46F0FE5402FE47F0FE5A02FE43F0FEF8
45:1002C0004802FE44F0FE4C02FE45F0FE5002180AC1
46:1002D000AA180614A1022BFE001CE7FE021CE6FE73
47:1002E0001E1CFEE91001FE1818FEE710FE06FCCEEB
48:1002F000097001A8022B155939A201FE5810097086
49:100300000187FEBD1009700187FEAD10FE161CFEB0
50:10031000581C180614A12C1C2BFE3DF0FE060223CF
51:10032000FE9802FE5A1CF8FE141C15FE300039A27D
52:1003300001FE4810180614A102D72220071135FE2D
53:100340006910180614A1FE04EC204F431320FE058B
54:10035000F6CE01FE4A1708545837122F429201FE7A
55:100360008216022B0946010E0700660173FE181063
56:10037000FE415809A4010EFEC8546BFE100301FE95
57:100380008216022B2C4FFE02E82AFEBF57FE9E4328
58:10039000FE7757FE27F0FEE001FE074BFE20F0A798
59:1003A000FE401C1CD9FE26F0FE5A03FEA0F0FE48BB
60:1003B00003FE11F0A7FEEF10FE9FF0FE6803F91098
61:1003C000FE110002652CFE481CF908051BFE1813DF
62:1003D0002122A3B713A30946010EB77801FEB41674
63:1003E00012D11CD9FE01F0D9FE82F0FE9603FA125A
64:1003F000FEE40027FEA8031C341DFEB803014BFEDB
65:1004000006F0FEC8039586FE0AF0FE8A0602240363
66:10041000702817FEFA04156D01367BFE6A0202D8B9
67:10042000F92C9919FE671BFEBF57FE7757FE481C33
68:100430007401AF8C0946010E070017DA09D1010ECD
69:100440008D5164792A037028FE1012156D01367BD8
70:10045000FE6A0202D8C781C8831C2427FE40041DFF
71:10046000FE3C043BFEA000FE9B57FE4E122DFF02F9
72:100470000010010B1DFEE4042D010B1D243331DEA1
73:10048000FE4C44FE4C1251FE44480F6FFE4C546B20
74:10049000DA4F792AFE0680FE4847FE621308051BE4
75:1004A000FE2A13320782FE5213FE20100F6FFE4CFD
76:1004B000546BDAFE0680FE4847FE401308051BFE1B
77:1004C0000813320782FE301308051BFE1C12159D0F
78:1004D0000805064D15FE0D0001367BFE640D022455
79:1004E0002D12FEE600FE1C90FE405C04159D0136B8
80:1004F000022BFE425B9919FE4659FEBF57FE775705
81:10050000FE8780FE31E45B08050AFE8413FE20802E
82:100510000719FE7C12530506FE6C1303FEA2002889
83:1005200017FE9005FE31E45A53050AFE561303FEEA
84:10053000A00028FE4E1267FF02001027FE48051C8F
85:1005400034FE8948FF02001027FE560526FEA80546
86:1005500012FEE3002153FE4AF0FE7605FE49F0FE4E
87:1005600070058825FE2100AB25FE2200AA2558FE35
88:100570000948FF02001027FE860526FEA805FEE2B8
89:10058000085305CB4D01B0250613D339FE270108CA
90:10059000051BFE22124101B2159D0805064D15FEF0
91:1005A0000D0001367BFE640D022403FE9C0028EB47
92:1005B000035C28FE36134101B226FE1806090653D5
93:1005C000051FFE02125001FE9E151DFE0E0612A50D
94:1005D000014B12FEE500035CC10C5C03CD28FE62FA
95:1005E00012034528FE5A1301FE0C1901FE7619FE6E
96:1005F0004348C4CC0F71FF02005752931E438BC473
97:100600006E4101B226FE820653051AE9910959018D
98:10061000FECC151DFE780612A5014B12FEE5000367
99:1006200045C10C45180601B2FA767401AF8C12FE72
100:10063000E20027DB1C34FE0AF0FEB60694FE6C07CF
101:10064000FE06F0FE74079586022408050AFE2E12A7
102:100650001619010B1600010B1600010B1600010BF9
103:10066000FE99A4010B160002FE420868051AFE3826
104:100670001208051AFE301316FE1B00010B160001AE
105:100680000B1600010B1600010B1606010B160002DB
106:10069000E26C58BE50FE9A81551B7AFE4207091B38
107:1006A000FE096FBAFECA45FE3212696D8B6C7F2758
108:1006B000FE54071C34FE0AF0FE4207958694FE6C39
109:1006C000070224014B02DB161F02DBFE9CF7DCFE57
110:1006D0002C90FEAE9056FEDA070C60146108545A56
111:1006E0003722200711FE0E128DFE808039206A2AE3
112:1006F000FE0610FE83E7FE4800ABFE034008545B95
113:100700003701B3B8FE1F40136201EFFE0850FE8AA6
114:1007100050FE4451FEC65188FE0890FE8A900C5E41
115:10072000145FFE0C90FE8E90FE4050FEC2500C3DB9
116:10073000143EFE4A1008055AFE2A12FE2C90FEAE08
117:10074000900C60146108055B8B01B3FE1F8013627F
118:10075000FE4490FEC6900C3F1440FE0890FE8A9026
119:100760000C5E145FFE4090FEC2900C3D143E0C2EB9
120:10077000143C210C490C6308541F372C0FFE4E11FA
121:1007800027DDFE9EF0FE7608BC17342C77E6C5FE0A
122:100790009A08C6FEB80894FE8E08FE06F0FE94087D
123:1007A00095860224014BFEC910161FFEC91068056C
124:1007B00006FE101268050A4E08050AFE9012FE2E6B
125:1007C0001C02FE180B6805064E68050AFE7A12FE2A
126:1007D0002C1CFEAAF0FED209FEACF0FE000902FEBF
127:1007E000DE09FEB7F0FEFC08FE02F61A50FE701895
128:1007F000FEF118FE4055FEE155FE1058FE9158FEE0
129:100800001459FE95591C85FE8CF0FEFC08FEACF0D8
130:10081000FEF008B5FECB10FEADF0FE0C0902FE188E
131:100820000BB6FEBF10FE2BF085F41EFE00FEFE1C74
132:1008300012C2FED2F085FE76181E19178503D21E4D
133:10084000061785C54AC64AB5B6FE891074672D15C8
134:100850009D013610FE3500FE01F06510800265FE38
135:100860009880FE19E40AFE1A1251FE1982FE6C18D5
136:10087000FE4454BEFE1981FE74188F9017FECE08F8
137:10088000024A08055AEC032E293C0C3F14409B2ECB
138:100890009C3CFE6C18FEED18FE4454FEE5543A3FB5
139:1008A0003B40034929638FFEE354FE7418FEF5189C
140:1008B0008FFEE35490C056FECE08024AFE37F0FE8B
141:1008C000DA09FE8BF0FE6009024A08050A23FEFAE7
142:1008D0000A3A493B6356FE3E0A0FFEC007419800A4
143:1008E000ADFE0159FE52F0FE0C0A8F7AFE240A3A40
144:1008F000498FFEE35457497D63FE1458FE95580214
145:100900004A3A493B63FE1459FE9559BE574957630D
146:10091000024A08055AFE821208051FFE661322626B
147:10092000B7FE03A1FE8380FEC844FE2E13FE049191
148:10093000FE86916A2AFE4059FEC15956E00360299D
149:10094000610C7F148057607D6101B3B86A2A13621D
150:100950009B2E9C3C3A3F3B4090C0FE04FA2EFE0585
151:10096000FA3C01EFFE3610210C7F0C803A3F3B40F1
152:10097000E408051F17E03A3D3B3E0805FEF7003747
153:10098000035E295FFE1058FE915857497D6302FEB1
154:10099000F40908051F17E00805FEF70037BEFE1929
155:1009A0008150FE1090FE9290FED3103207A617FEE3
156:1009B000080912A608050AFE1413033D293E56FE37
157:1009C0000809FE0C58FE8D58024A2141FE1980E7A5
158:1009D00008050AFE1A12FE6C19FE1941F4C2FED176
159:1009E000F0E2157E013610FE4400FE8E10FE6C19FA
160:1009F000573DFEED197D3EFE0C51FE8E51F41EFE5C
161:100A000000FF35FE7410C2FED2F0FEA60BFE761873
162:100A10001E198A03D21E06FE081310FE1600026578
163:100A2000FED1F0FEB80B157E013610FE1700FE4217
164:100A300010FECEF0FEBE0BFE3C10FECDF0FECA0B4B
165:100A400010FE22000265FECBF0FED60B10FE240045
166:100A50000265FED0F0FEE00B109EE5FECFF0FEEA50
167:100A60000B1058FE1010FECCF0E268051F4D10FE72
168:100A700012002C0FFE4E1127FE000CFE9EF0FE14FD
169:100A80000CBC17342C77E6C524C6242CFA27FE208C
170:100A90000C1C3494FE3C0C9586C5DCC6DC0224019B
171:100AA0004BFEDB1012FEE800B5B674C781C883FEAA
172:100AB00089F0243331E1C781C88327FE660C1D24E9
173:100AC0003331DFBC4E10FE420002657C06FE8149D8
174:100AD00017FE2C0D08050AFE44131000550AFE549B
175:100AE0001255FE280023FE9A0D0946010E070066E6
176:100AF00044FE2800FEE21001F501F609A401FE26DD
177:100B00000F64122F0173022B10FE4400550AE944B2
178:100B10000AFEB41001B0440AFEAA1001B0FE198208
179:100B2000FE3446AC440A10FE4300FE961008540AF8
180:100B30003701F501F664122F0173990A644292029B
181:100B4000FE2E0308050A8A440A1000FE5C106805A0
182:100B50001AFE581208051AFE5013FE1C1CFE9DF0CA
183:100B6000FE500DFE1C1CFE9DF0FE560D08541A375B
184:100B7000FEA91010FE1500FE04E60A50FE2E10100D
185:100B8000FE1300FE1010106FAB10FE4100AA10FE05
186:100B900024008CB5B67403702823D850FE04E61ADE
187:100BA000FE9D41FE1C426401E3022BF8150A39A0A8
188:100BB000B415FE310039A201FE481002D742FE06EC
189:100BC000ECD0FC441BFECE453542FE06EAD0FE4783
190:100BD0004B91FE7557035DFE9856FE381209480189
191:100BE0000EFE44484F08051BFE1A130946010E412C
192:100BF000FE415809A4010EFE495496FE1E0E02FE47
193:100C00002E03095DFEEE14FC441BFECE453542FE6C
194:100C1000CE47FEAD13022B22200711FE9E12211398
195:100C200059139F13D5222F41392FBCADFEBCF0FEC6
196:100C3000E00E0F06135901FEDA1603FE380129FEF5
197:100C40003A0156FEE40EFE02ECD5690066FE04ECA5
198:100C5000204FFE05F6FE340101FE4A17FE0890FE05
199:100C600048F40DFE1813BAFE02EAD5697EFEC513DC
200:100C7000151A39A0B4FE2E1003FE38011EFEF0FF37
201:100C80000CFE600103FE3A010CFE620143132025B5
202:100C900006132F122F920F060421042259FEF71279
203:100CA000229FB7139F077EFE7113FE241C1519396E
204:100CB000A0B4FED910C3FE03DCFE7357FE805D04B2
205:100CC000C3FE03DCFE5B57FE805D04FE0357C321B9
206:100CD000FE00CC04FE0357C37804080558FE221317
207:100CE000FE1C800706FE1A13FE1E80EDFE1D80AE60
208:100CF000FE0C90FE0E13FE0E90ACFE3C90FE30F407
209:100D00000AFE3C50AA01FE7A1732072FAD01FEB44D
210:100D10001608051B4E01F501F612FEE900080558FC
211:100D2000FE2C1301FE0C17FE1E1CFE1490FE969066
212:100D30000CFE640114FE660108055BFE1212FE0340
213:100D4000808DFE01EC20FE804013206A2A12CF64C1
214:100D50002220FB792004FE081C03FEAC00FE06588E
215:100D600003FEAE00FE075803FEB000FE085803FE67
216:100D7000B200FE0958FE0A1C256E13D0210C5C0C33
217:100D8000450F465250181BFE904DFE915423FEFC19
218:100D90000F44110F48521858FE904DFE915423E411
219:100DA000251113207C6F4F2220FB792012CFFE14D7
220:100DB00056FED6F0FE2610F874FE141CFE101CFE23
221:100DC000181C0442FE0C14FCFE07E61BFECE47FE78
222:100DD000F5130401B07C6F4FFE0680FE4847FE42CB
223:100DE0001332072FFE34130948010EBBFE3612FEE4
224:100DF0004148FE454801F0FE00CCBBFEF3134378AA
225:100E00000711AC0984010EFE805C0173FE0E100711
226:100E1000824EFE1456FED6F0FE601004FE44588D3D
227:100E2000FE01ECA2FE9E40FE9DE700FE9CE71A79C3
228:100E30002A01E3FEDD102CC781C8833331DE071A97
229:100E4000FE4812070AFE56120719FE301207C9178C
230:100E5000FE321207FE230017EB070617FE9C12074F
231:100E60001FFE12120700172415C90136A92D010B08
232:100E7000944B042DDD09D101FE260F1282022B2D89
233:100E80003207A6FED9133A3D3B3E56FEF011080547
234:100E90005AFE72129B2E9C3C90C096FEBA112262A2
235:100EA000FE2613037F298056FE760D0C6014612107
236:100EB0000C7F0C8001B3256E77136201EF9B2E9C93
237:100EC0003CFE0455FEA555FE04FA2EFE05FA3CFE36
238:100ED0009110033F2940FE4056FEE1560C3F14405E
239:100EE000889B2E9C3C90C0035E295FFE0056FEA1AD
240:100EF000560C5E145F08055AFE1E122262FE1F4049
241:100F000003602961FE2C50FEAE50033F2940FE4491
242:100F100050FEC650035E295FFE0850FE8A50033D16
243:100F2000293EFE4050FEC2500289250613D40272AB
244:100F30002D010B1D4C3331DE0706234C3207A6234F
245:100F40007201AF1E43174C08050AEE3A3D3B3EFEC8
246:100F50000A5535FE8B55573D7D3EFE0C51FE8E5198
247:100F60000272FE1981BAFE194102722D010B1C3466
248:100F70001DE83331E15519FEA612550A4D024C0108
249:100F80000B1C341DE83331DF0719234C010B1DE81E
250:100F90003331FEE809FEC2495103FE9C00288A5302
251:100FA000051F35A9FEBB4555004E44067C43FEDABD
252:100FB0001401AF8CFE4B45EE3207A5ED03CD288A18
253:100FC00003452835670272FEC05DFEF814FE031764
254:100FD000035CC10C5C672D010B268901FE9E150286
255:100FE00089010B1C341D4C3331DF0706234C01F102
256:100FF000FE4258F1FEA4148CFE4AF40A174CFE4A35
257:10100000F406EA3207A58B02720345C10C45672D31
258:10101000010B268901FECC1502890F0627FEBE139F
259:1010200026FED41376FE8948010B2176047BFED080
260:10103000131CFED0131DFEBE13672D010BFED51031
261:101040000F71FF02005752931EFEFF7FFE3056FEC7
262:10105000005C040F71FF02005752931E43FE30568E
263:10106000FE005C040F71FF0200575293040F71FFE2
264:101070000200575293FE0B5804095C018709450191
265:101080008704FE03A11E11FF030054FE00F41F524B
266:10109000FE007DFE017DFE027DFE037C6A2A0C5E61
267:1010A000145F573F7D4004DDFE824AFEE11AFE8355
268:1010B0005A8D0401FE0C19FE4248505191010B1D3E
269:1010C000FE96153331E1010B1DFE96153331FEE816
270:1010D0000AFEC15903CD28FECC1253051AFEC413D3
271:1010E00021691AEE55CA6BFEDC144D0F0618CA7C36
272:1010F00030FE7810FF028355ABFF0283556919AEAD
273:1011000098FE300096F2186D0F06FE5610690AED33
274:1011100098FE640096F209FE6400189E0F06FE28F1
275:10112000106906FE601398FEC80096F209FEC8001A
276:1011300018590F068898FE90017AFE421591E4FE38
277:1011400043F49FFE56F0FE5415FE04F471FE43F482
278:101150009EFEF310FE405C01FE16141E43ECFE00E2
279:1011600017FE4DE46E7AFE9015C46EFE1C10FE0054
280:1011700017FE4DE4CC7AFE9015C4CC885121FE4D6B
281:10118000F400E9910F06FEB456FEC35804510F0A4D
282:10119000041606010B26F3160A010B26F316190195
283:1011A0000B26F376FE8949010B041606010B26B1C6
284:1011B0001619010B26B11606010B26B1FE8949014D
285:1011C0000B26B176FE894A010B04510422D307068F
286:1011D000FE4813B813D3FE49F4004D76A967FE010B
287:1011E000ECFE2701FE8948FF02001027FE2E163272
288:1011F00007FEE300FE20131DFE52162113D4014BFF
289:1012000022D407064E08540637040948010EFB8E07
290:101210000711AE0984010E8E095D01A8040984013D
291:101220000E8EFE80E71107118AFE455801F08E04EC
292:101230000948010E8E095D01A8040948010EFE80CF
293:1012400080FE804CFE49E411AE0984010EFE804C04
294:10125000095D0187041811756CFE6001FE18DFFE40
295:1012600019DEFE241CFE1DF71B97FEEE1601FEF490
296:1012700017AD9A1B6CFE2C01FE2F1904B923FEDE5C
297:1012800016FEDA1018117503FE6401FE00F41FFE4D
298:10129000185803FE6601FE19589A1FFE3C90FE3056
299:1012A000F406FE3C506CFE3800FE0F79FE1CF71F62
300:1012B00097FE3817FEB6143504B923FE1017FE9CAE
301:1012C00010181175FE835AFE18DFFE19DEFE1DF799
302:1012D0002E97FE5A17FE9414EC9A2E6C1AFEAF1934
303:1012E000FE98E70004B923FE4E17FE6C1018117526
304:1012F000FE30BCFEB2BC9ACB6C1AFE0F79FE1CF716
305:10130000CB97FE9217FE5C143504B923FE7E17FEC0
306:101310004210FE02F61175FE18FE60FE19FE61FE17
307:1013200003A1FE1DF75B97FEB817FE3614FE1C13D3
308:101330009A5B41FE8358FEAF19FE80E711FE81E7FC
309:101340001112FEDD006A2A046A2AFE124523FEA855
310:1013500017150639A0B4022BFE39F0FEFC17210444
311:10136000FE7E181E19660F0D047503D21E06FEEFD1
312:1013700012FEE1107C6F4F32072FFE3C13F1FE424C
313:101380001342920948010EBBEBFE4148FE4548015D
314:10139000F0FE00CCBBFEF31343780711AC098401C7
315:1013A0000EFE804C0173FE161007828BFE4014FE69
316:1013B0002412FE1456FED6F0FE1C18180A04FE9CD9
317:1013C000E70A10FE150064792A01E3180604429228
318:1013D00008541B37122F0173180604FE3890FEBA0A
319:1013E000903ACE3BCFFE485535FEC9550422A3772F
320:1013F00013A30409A4010EFE41480946010EFE494B
321:101400004417FEE8187778040948010E07114E09C1
322:101410005D01A80946010E777804FE4EE4196BFEC3
323:101420001C1903FE9000FE3A45FE2C10FE4EE4C946
324:101430006BFE2E1903FE9200FE02E61AE5FE4EE454
325:10144000FE0B006BFE401903FE9400FE02E61FFE39
326:10145000081003FE9600FE02E66DFE4E45EABAFF56
327:10146000046854E71E6EFE081CFE6719FE0A1CFE87
328:101470001AF4FE0004EAFE48F4197AFE74190F19F2
329:1014800004077EFE5AF0FE841925FE0900FE341082
330:10149000071AFE5AF0FE921925CAFE261007196691
331:1014A000256DE5070A66259EFE0E1007066625597E
332:1014B000A9B80415FE09000136FE04FE810383FE6F
333:1014C000405C041CF7FE14F00B27FED6191CF77BBA
334:0C14D000F7FE82F0FEDA1904FFCC0000E9
335:00000001FF
336/* Microcode buffer is kept after initialization for error recovery. */
diff --git a/firmware/advansys/38C1600.bin.ihex b/firmware/advansys/38C1600.bin.ihex
new file mode 100644
index 00000000000..18c7c486204
--- /dev/null
+++ b/firmware/advansys/38C1600.bin.ihex
@@ -0,0 +1,398 @@
1:1000000077EF0406000000F2001600FC001000F07C
2:1000100018E40100041E48E403F6F7132E1E020044
3:100020000717C05F00FAFFFF040000F609E782E748
4:1000300085F086F04E109EE7FF0055F001F60300B4
5:10004000985701E600EA00EC01FA18F40800F01DE8
6:10005000385432F01000C20E1EF0D5F0BC004BE454
7:1000600000E6B1F0B40002133E1CC8473E00D801C0
8:1000700006130C1C5E1E0057C85701FCBC0EA212D2
9:10008000B9540080620A5A12C8153E1E1840BD5667
10:1000900003E601EA5CF00F0020006C016E0104121F
11:1000A0000413BB553C563E5703584AE44000B60083
12:1000B000BB00C000000101013E01580A44100A12B1
13:1000C0004C1C4E1C024A30E405E60C003C0080004B
14:1000D00024013C0168016A0170017201740176011A
15:1000E00078017C01C60E0C10AC12AE12161A321C2E
16:1000F0006E1E02483A55C95702EE5BF003F706F749
17:1001000003FC06001E00BE00E1000C12181A701A53
18:10011000301C381C1044004CB057405C4DE404EADD
19:100120005DF0A7F004F602FC05000900190032009A
20:1001300033003400360098009E00CC0020014E01B0
21:1001400079013C09680D021004103A1008120A13D4
22:100150004016501600174A19004E0054015800DC92
23:1001600005F009F059F0B8F048F40EF70A009B00CA
24:100170009C00A400B500BA00D000E700F0036908B5
25:10018000E9095C0CB612BC19D81B201C341C361CA7
26:10019000421D0844384491440A45484689486854F9
27:1001A0008355835931E402E607F008F00BF00CF0B8
28:1001B0004BF404F805F802FA03FA04FC05FC070006
29:1001C000A800AA00B900E000E500220126016001B4
30:1001D0007A018201C801CA0186026A031805B207C2
31:1001E0006808100D06100A100E1012106010ED10A5
32:1001F000F310061210121E120C130E131013FE9C95
33:10020000F03505FEEC0EFF100000E9FE341F00E89B
34:10021000FE8801FF030000FE9315FE0F05FF380066
35:1002200000FE572400FE4C0065FF0400001AFF0981
36:100230000000FF080101FF08FFFFFF270000FF107B
37:10024000FFFFFF130000FE7856FE3412FF2100006E
38:10025000FE04F7E8377D0D01FE4A11FE04F7E87D44
39:100260000D5137FE3DF0FE0C02FE20F0BCFE91F079
40:10027000FEF801FE90F0FEF801FE8FF0BC03674D22
41:1002800005FE080F01FE780FFEDD1205FE0E03FECF
42:10029000281C03FEA600FED1123E22FEA600ACFEE4
43:1002A00048F0FE9002FE49F0FEAA02FE4AF0FEC8A7
44:1002B00002FE46F0FE5A02FE47F0FE6002FE43F0E8
45:1002C000FE4E02FE44F0FE5202FE45F0FE56021CB7
46:1002D0000DA21C0722B70535FE001CFEF110FE0220
47:1002E0001CF5FE1E1CFEE910015FFEE710FE06FC79
48:1002F000DE0A8101A305351F9547B801FEE4110A06
49:1003000081015CFEBD100A81015CFEAD10FE161C71
50:10031000FE581C1C0722B7372A35FE3DF0FE0C02A2
51:100320002BFE9E02FE5A1CFE121CFE141C1FFE30E9
52:100330000047B801FED4111C0722B705E9212C099A
53:100340001A31FE69101C0722B7FE04EC2C6001FE76
54:100350001E1E202CFE05F6DE01FE621B010C614A0A
55:100360004415565101FE9E1E01FE961A05350A5788
56:1003700001180900360185FE1810FE41580ABA011D
57:1003800018FEC8547BFE1C0301FE961A0535376023
58:10039000FE02E830FEBF57FE9E43FE7757FE27F071
59:1003A000FEE401FE074BFE20F0BCFE401C2AEBFEE3
60:1003B00026F0FE6603FEA0F0FE5403FE11F0BCFE24
61:1003C000EF10FE9FF0FE7403FE461C19FE1100059F
62:1003D0007037FE481CFE461C010C0628FE1813262A
63:1003E00021B9C720B90A570118C78901FEC81A15D3
64:1003F000E12AEBFE01F0EBFE82F0FEA403FE9C324C
65:1004000015FEE4002FFEB6032A3C16FEC60301418A
66:10041000FE06F0FED603AFA0FE0AF0FEA2070529F5
67:1004200003811E1BFE24051F6301428FFE7002051F
68:10043000EAFE461C377D1DFE671BFEBF57FE775741
69:10044000FE481C7501A6860A57011809001BEC0A14
70:10045000E101187750408D3003811EF81F6301427F
71:100460008FFE700205EAD799D89C2A292FFE4E04E8
72:1004700016FE4A047EFEA000FE9B57FE541232FF79
73:10048000020010010816FE02053201081629272570
74:10049000EEFE4C44FE581250FE44481334FE4C54B9
75:1004A0007BEC608D3001FE4E1EFE4847FE7C130142
76:1004B0000C0628FE32130143099BFE6813FE26102A
77:1004C0001334FE4C547BEC01FE4E1EFE4847FE5496
78:1004D00013010C0628A50143099BFE4013010C06DD
79:1004E00028F91F7F010C06074D1FFE0D0001428FEA
80:1004F000FEA40E05293215FEE6000FFE1C9004FE38
81:100500009C933A0B0E8B021F7F01420535FE425B26
82:100510007D1DFE4659FEBF57FE77570FFE878004AC
83:10052000FE8783FEC9470B0ED065010C060DFE98B1
84:10053000130FFE208004FEA083330B0E091DFE84E2
85:100540001201380607FE701303FEA2001E1BFEDA1E
86:1005500005D0540138060DFE581303FEA0001EFE00
87:1005600050125EFF0200102FFE90052A3CCCFF02C5
88:1005700000102FFE9E0517FEF40515FEE300260170
89:1005800038FE4AF0FEC005FE49F0FEBA05712EFEA7
90:100590002100F12EFE2200A22E4AFE0948FF020091
91:1005A000102FFED00517FEF405FEE208013806FE06
92:1005B0001C004D01A72E0720E447FE2701010C0671
93:1005C00028FE24123E01841F7F010C06074D1FFEEA
94:1005D0000D0001428FFEA40E052903E61EFECA137C
95:1005E00003B61EFE401203661EFE38133E0184173A
96:1005F000FE72060A0701380624FE02124F01FE565B
97:100600001916FE68061582014115E203668A106616
98:10061000039A1EFE701203551EFE681301C60912CE
99:1006200048FE92062E1201FEAC1DFE434862801366
100:1006300058FF02005752AD233F4E62493E018417D6
101:10064000FEEA0601380612F7450A9501FE841916DE
102:10065000FEE0061582014115E203558A10551C077C
103:100660000184FEAE10036F1EFE9E133E0184039AAA
104:100670001EFE1A1201380612FC01C601FEAC1DFE58
105:1006800043486280F0450A9503B61EF801380624F7
106:1006900036FE02F60771788C004D62493E2D934E6E
107:1006A000D00D17FE9A0701FEC01916FE90072620EE
108:1006B0009E1582014115E2219E0907FB03E6FE58C3
109:1006C0005710E605FE2A06036F8A106F1C07018487
110:1006D000FE9C325F7501A68615FEE2002FED2A3CD6
111:1006E000FE0AF0FECE07AEFE9608FE06F0FE9E085D
112:1006F000AFA00529010C060DFE2E12141D010814D1
113:100700000001081400010814000108FE99A4010862
114:10071000140005FEC60901760612FE3A12010C0607
115:1007200012FE301314FE1B0001081400010814000F
116:1007300001081400010814070108140005EF7C4AA1
117:10074000784F0FFE9A8104FE9A83FECB470B0E2D45
118:100750002848FE6C080A28FE096FCAFECA45FE3208
119:100760001253634E7C972FFE7E082A3CFE0AF0FE51
120:100770006C08AFA0AEFE96080529014105ED1424D2
121:1007800005EDFE9CF79F01FEAE1EFE185801FEBE51
122:100790001EFE9958FE7818FEF9188EFE1609106A8A
123:1007A000226B010C615444212C091AF87701FE7E5A
124:1007B0001E472C7A30F0FE83E7FE3F0071FE0340B7
125:1007C000010C61654401C2C8FE1F40206E01FE6A33
126:1007D00016FE0850FE8A50FE4451FEC651FE10100F
127:1007E00001FECE1E01FEDE1E1068226901FEEE1E15
128:1007F00001FEFE1EFE4050FEC250104B224CFE8AEF
129:1008000010010C0654FE501201FEAE1E01FEBE1E6B
130:10081000106A226B010C06654E01C20FFE1F800498
131:10082000FE9F83330B0E206E0FFE449004FEC49394
132:100830003A0BFEC69004FEC693790B0E106C226D27
133:1008400001FECE1E01FEDE1E106822690FFE4090E2
134:1008500004FEC0933A0BFEC29004FEC293790B0EC5
135:10086000104B224C10642234010C6124443713FED7
136:100870004E112FFEDE09FE9EF0FEF209FE01481B1E
137:100880003C3788F5D4FE1E0AD5FE420AD2FE1E0A67
138:10089000D3FE420AAEFE120AFE06F0FE180AAFA010
139:1008A00005290141FEC1101424FEC110017606077E
140:1008B000FE14120176060D5D010C060DFE7412FE8B
141:1008C0002E1C05FE1A0C017606075D0176060D4109
142:1008D000FE2C1CFEAAF0FECE0AFEACF0FE660AFE5E
143:1008E0009210C4F6FEADF0FE720A05FE1A0CC5FEAB
144:1008F000E710FE2BF0BFFE6B1823FE00FEFE1C125D
145:10090000ACFED2F0BFFE7618231D1BBF03E3230706
146:100910001BBFD45BD55BD25BD35BC4C5FEA910758E
147:100920005E321F7F014219FE3500FE01F0701998FA
148:100930000570FE741823FE00F81B5B7D1201FE7823
149:100940000F4D01FE961A2130777D1D055B010C06C7
150:100950000D2BFEE20B010C0654FEA612010C062420
151:10096000FE8813216EC701FE1E1F0FFE838004FE4A
152:100970008383FEC9470B0EFEC844FE42130FFE04DC
153:100980009104FE8493FECA570BFE869104FE869363
154:10099000FECB570B0E7A30FE4059FEC1598E4003F4
155:1009A0006A3B6B10972298D96ADA6B01C2C87A3019
156:1009B000206EDB64DC34916C7E6DFE4455FEE555A3
157:1009C000FE04FA64FE05FA3401FE6A16A3261097A7
158:1009D0001098916C7E6DFE1410010C06241B409142
159:1009E0004B7E4C010C06FEF7004403683B69FE1089
160:1009F00058FE9158FE1459FE9559055B010C0624CA
161:100A00001B40010C06FEF700447801FE8E1E4F0FBE
162:100A1000FE109004FE90933A0BFE929004FE929387
163:100A2000790B0EFEBD10014309BB1BFE6E0A15BB00
164:100A3000010C060DFE1413034B3B4C8EFE6E0AFE9A
165:100A40000C58FE8D58055B263E0FFE198004FE995A
166:100A500083330B0EFEE510010C060DFE1A12FE6C20
167:100A600019FE1941FE6B18ACFED1F0EF1F92014246
168:100A700019FE4400FE9010FE6C19D94BFEED19DAF8
169:100A80004CFE0C51FE8E51FE6B1823FE00FF31FE12
170:100A90007610ACFED2F0FEBA0CFE7618231D5D0374
171:100AA000E32307FE081319FE16000570FED1F0FEC1
172:100AB000CC0C1F92014219FE17005CFECEF0FED254
173:100AC0000CFE3E10FECDF0FEDE0C19FE220005707D
174:100AD000FECBF0FEEA0C19FE24000570FED0F0FEFD
175:100AE000F40C1994FE1C10FECFF0FEFE0C194AF314
176:100AF000FECCF0EF017606244D19FE12003713FEEE
177:100B00004E112FFE160DFE9EF0FE2A0DFE01481B13
178:100B10003C3788F5D429D529D229D32937FE9C32F0
179:100B20002FFE3E0D2A3CAEFE620DAFA0D49FD59F96
180:100B3000D29FD39F05290141FED31015FEE800C4C2
181:100B4000C575D799D89CFE89F0292725BED799D895
182:100B50009C2FFE8C0D16292725BDFE0148A419FEE9
183:100B6000420005709007FE81491BFE640E010C06D1
184:100B70000DFE441319002D0DFE54122DFE28002BDE
185:100B8000FEDA0E0A57011809003646FE2800FEFA62
186:100B90001001FEF41C01FE001D0ABA01FE581040AF
187:100BA00015560185053519FE44002D0DF7460DFE3D
188:100BB000CC1001A7460DFEC21001A70FFE1982043A
189:100BC000FE9983FECC470B0EFE3446A5460D19FE5A
190:100BD0004300FEA210010C610D4401FEF41C01FE55
191:100BE000001D40155601857D0D405101FE9E1E05DC
192:100BF000FE3A03010C060D5D460D1900FE62100160
193:100C0000760612FE5C12010C0612FE5213FE1C1C2C
194:100C1000FE9DF0FE8E0EFE1C1CFE9DF0FE940E014D
195:100C20000C611244FE9F1019FE1500FE04E60D4FE4
196:100C3000FE2E1019FE1300FE101019FE4700F119C8
197:100C4000FE4100A219FE240086C4C57503811E2B37
198:100C5000EA4FFE04E612FE9D41FE1C424001F405EF
199:100C600035FE121C1F0D47B5C31FFE310047B801EA
200:100C7000FED41105E951FE06ECE0FE0E474628FEC3
201:100C8000CE453151FE06EAE0FE474B45FE7557035F
202:100C900067FE9856FE38120A5A0118FE4448600151
203:100CA0000C0628FE18130A5701183EFE41580ABACE
204:100CB000FEFA14FE4954B0FE5E0F05FE3A030A67C1
205:100CC000FEE014FE0E474628FECE453151FECE47CB
206:100CD000FEAD130535212C091AFE98122620962008
207:100CE000E7FE081CFE7C19FEFD19FE0A1C03E5FE4A
208:100CF0004855A53BFE6201FEC95531FE741001FE48
209:100D0000F01A03FE38013BFE3A018EFE1E10FE0271
210:100D1000ECE7530036FE04EC2C60FE05F6FE3401D1
211:100D200001FE621B01FECE1EB211FE1813CAFE02A6
212:100D3000EAE75392FEC3131F1247B5C3FE2A1003FE
213:100D4000FE380123FEF0FF10E503FE3A0110FE62BB
214:100D50000101FE1E1E202C155601FE9E1E130702C9
215:100D600026022196C720960992FE79131F1D47B5CA
216:100D7000C3FEE110CFFE03DCFE7357FE805D02CFA1
217:100D8000FE03DCFE5B57FE805D02FE0357CF26FEAE
218:100D900000CC02FE0357CF8902010C064AFE4E1317
219:100DA0000FFE1C8004FE9C83330B0E0907FE3A13D2
220:100DB0000FFE1E8004FE9E83330B0EFE2A130FFED1
221:100DC0001D8004FE9D83FEF9130EFE1C1301FEEE32
222:100DD0001EACFE141301FEFE1EFE8158FA01FE0E2B
223:100DE0001FFE30F40DFE3C50A201FE921B01430990
224:100DF00056FB01FEC81A010C0628A401FEF41C01D2
225:100E0000FE001D15FEE900010C064AFE4E1301FE10
226:100E1000221BFE1E1C0FFE149004FE94933A0BFE40
227:100E2000969004FE9693790B0E10FE640122FE66E6
228:100E300001010C0665F90FFE038004FE8383330B6A
229:100E40000E77FE01EC2CFE8040202C7A3015DF401E
230:100E5000212CFE00408D2C02FE081C03FEAC00FE7F
231:100E6000065803FEAE00FE075803FEB000FE085809
232:100E700003FEB200FE0958FE0A1C2E4920E026108F
233:100E8000661055106F1357524F1C28FE904DFE915F
234:100E9000542BFE8811461A135A521C4AFE904DFEDE
235:100EA00091542BFE9E112E1A202C903460212CFE82
236:100EB00000408D2C15DFFE1456FED6F0FEB211FE5A
237:100EC000121C75FE141CFE101CFE181C0251FE0C98
238:100ED00014FE0E47FE07E628FECE47FEF51302017C
239:100EE000A7903460FE0680FE4847FE4213FE028053
240:100EF0000956FE34130A5A0118CBFE3612FE414839
241:100F0000FE454801FEB216FE00CCCBFEF3133F892E
242:100F1000091AA50A9D0118FE805C0185F2099BA4AF
243:100F2000FE1456FED6F0FEEC1102FE445877FE0188
244:100F3000ECB8FE9E40FE9DE700FE9CE7128D30015E
245:100F4000F4FEDD1037D799D89C2725EE0912FE480C
246:100F500012090DFE5612091DFE301209DD1BFEC4DA
247:100F60001309FE23001BFED01309071BFE341409CE
248:100F700024FE121209001B291FDD0142A1320108C3
249:100F8000AE410232FE62080AE101FE5810159B05CF
250:100F90003532014309BBFED713914B7E4C8EFE8048
251:100FA00013010C0654FE7212DB64DC34FE4455FE61
252:100FB000E555B0FE4A13216EFE261303973B988E2B
253:100FC000FEB60E106A226B261097109801C22E49A9
254:100FD00088206E01FE6A16DB64DC34FE0455FEA533
255:100FE00055FE04FA64FE05FA34FE8F10036C3B6D67
256:100FF000FE4056FEE156106C226D71DB64DC34FE5F
257:101000004455FEE55503683B69FE0056FEA15610A7
258:10101000682269010C0654F9216EFE1F40036A3BE9
259:101020006BFE2C50FEAE50036C3B6DFE4450FEC672
260:101030005003683B69FE0850FE8A50034B3B4CFE50
261:101040004050FEC25005732E07209E0572320108E3
262:10105000163D2725EE09072B3D014309BB2B7201E5
263:10106000A6233F1B3D010C060DFE1E13914B7E4C2B
264:10107000FE0A5531FE8B55D94BDA4CFE0C51FE8ED3
265:1010800051057201FE8E1ECAFE1941057232010819
266:101090002A3C16C02725BE2D1DC02D0D832D7F1B7C
267:1010A000FE6615053D01082A3C16C02725BD091D11
268:1010B0002B3D010816C02725FEE809FEC249500352
269:1010C000B61E830138062431A1FEBB452D00A4467F
270:1010D00007903F01FEF81501A686FE4B45FE201342
271:1010E00001430982FE1613039A1E5D03551E315EED
272:1010F0000572FEC05D01A7FE031703668A10665ED7
273:10110000320108177301FE5619057301082A3C16AF
274:101110003D2725BD09072B3D01FEBE16FE4258FEA8
275:10112000E81401A686FE4AF40D1B3DFE4AF407FEB4
276:101130000E12014309824E057203558A10555E3224
277:101140000108177301FE8419057301082A3C163D36
278:101150002725BD09122B3D01FEE8178BFEAA14FEC0
279:10116000B61486A8B20D1B3DB207FE0E120143094C
280:10117000824E0572036F8A106F5E32010817730189
281:10118000FEC019057313072FFECC1517FEE2155F7D
282:10119000CC0108265F028FFEDE152AFEDE1516FE44
283:1011A000CC155E320108FED5101358FF02005752CD
284:1011B000AD23FEFF7FFE3056FE005C021358FF0297
285:1011C000005752AD233FFE3056FE005C021358FF1D
286:1011D00002005752AD021358FF02005752FE005E44
287:1011E000021358FF02005752ADFE0B58020A660167
288:1011F0005C0A55015C0A6F015C0201FE1E1F231A86
289:10120000FF030054FE00F424520FFE007C04FE078E
290:101210007C3A0B0EFE0071FEF918FE7A19FEFB19DE
291:10122000FE1AF700FE1BF7007A3010682269D96CAD
292:10123000DA6D02FE6208FE824AFEE11AFE835A77E8
293:101240000201C6FE42484F5045010816FEE017272E
294:1012500025BE010816FEE0172725FEE80AFEC15943
295:10126000039A1EFEDA1201380612FED0132653121C
296:1012700048FE0817D1125312FE1E132DB47BFE2612
297:10128000174D13071CB49004FE7810FF028355F12C
298:10129000FF028355531DFE1213D6FE3000B0FE80B0
299:1012A000171C631307FE5610530DFE1613D6FE646B
300:1012B00000B0FE80170AFE64001C941307FE28107D
301:1012C0005307FE6013D6FEC800B0FE80170AFEC8A2
302:1012D000001C95130771D6FE900148FE8C1745F34C
303:1012E000FE43F496FE56F0FE9E17FE04F458FE43AD
304:1012F000F494F68B01FE2416233FFCA88C4948FE8B
305:10130000DA176249FE1C10A88C8048FEDA1762804A
306:10131000715026FE4DF400F7451307FEB456FEC388
307:10132000580250130D02503E784F45010816A92768
308:1013300025BEFE03EAFE7E01010816A92725FEE967
309:101340000A010816A92725FEE90AFE05EAFE7F0123
310:10135000010816A92725FE6909FE02EAFE8001019F
311:101360000816A92725FEE80847FE810103B61E835B
312:101370000138062431A278F2530736FE34F43FA137
313:1013800078039A1E830138061231F04F45FE901003
314:10139000FE405A233FFB8C4948FEAA186249718CD3
315:1013A0008048FEAA186280FEB456FE405D01C60168
316:1013B000FEAC1DFE0217FEC845FE5AF0FEC018FE28
317:1013C00043482D9336FE34F4FE0011FE40102DB438
318:1013D00036FE34F404FE34102DFE0B00364663FE58
319:1013E0002810FEC049FF020054B2FE900148FEFAE8
320:1013F0001845FE1CF43FF3FE40F496FE56F0FE0C3A
321:1014000019FE04F458FE40F494F63E2D934ED00D90
322:1014100021FE7F01FEC846FE24138C005D2621FEBE
323:101420007E01FEC845FE141321FE8001FE4845FAE8
324:1014300021FE8101FEC8444E260213070278455062
325:10144000130D021407010817FE8219140D01081765
326:10145000FE8219141D010817FE82195FFE894901D9
327:1014600008021407010817C1141D010817C1140749
328:10147000010817C1FE8949010817C15FFE894A01A9
329:1014800008025002140701081774147F010817742A
330:10149000141201081774FE89490108177414000119
331:1014A000081774FE894A01081774FE0949010817D4
332:1014B000745FCC01080221E40907FE4C13C820E444
333:1014C000FE49F4004D5FA15EFE01ECFE2701CCFF5A
334:1014D0000200102FFE3E1A014309FEE300FE221314
335:1014E00016FE641A26209E0141219E09075D010C0B
336:1014F000610744020A5A0118FE0040AA091AFE12A6
337:10150000130A9D0118AA0A6701A3020A9D0118AADD
338:10151000FE80E71A091A5DFE455801FEB216AA02BE
339:101520000A5A0118AA0A6701A3020A5A011801FE01
340:101530007E1EFE804CFE49E41AFE12130A9D01181D
341:10154000FE804C0A67015C021C1A877CE5FE18DFEE
342:10155000FE19DEFE241CFE1DF728B1FE041B01FE51
343:101560002A1CFAB3287CFE2C01FE2F1902C92BFE7F
344:10157000F41AFEFA101C1A8703FE6401FE00F4241C
345:10158000FE185803FE6601FE1958B32401FE0E1F13
346:10159000FE30F407FE3C507CFE3800FE0F79FE1C46
347:1015A000F724B1FE501BFED4143102C92BFE261BBA
348:1015B000FEBA101C1A87FE835AFE18DFFE19DEFEE3
349:1015C0001DF754B1FE721BFEB214FCB3547C12FE24
350:1015D000AF19FE98E70002C92BFE661BFE8A101C9D
351:1015E0001A878B0FFE309004FEB0933A0BFE18580A
352:1015F000FE329004FEB2933A0BFE19580EA8B34A7D
353:101600007C12FE0F79FE1CF74AB1FEC61BFE5E146B
354:101610003102C92BFE961B5CFE02F61A87FE18FEED
355:101620006AFE19FE6B01FE1E1FFE1DF765B1FEEE80
356:101630001BFE3614FE1C13B3653EFE8358FEAF1925
357:10164000FE80E71AFE81E71A15FEDD007A30027A85
358:1016500030FE12452BFEDC1B1F0747B5C30535FEC8
359:1016600039F0752602FE7E18231D361311028703FA
360:10167000E32307FEEF12FEE110903460FE028009C2
361:1016800056FE3C13FE8214FE421351FE06830A5A94
362:101690000118CBFE3E12FE4148FE454801FEB2163F
363:1016A000FE00CCCBFEF3133F89091AA50A9D011851
364:1016B000FE804C0185FE1610099B4EFE4014FE2450
365:1016C00012FE1456FED6F0FE521C1C0D02FE9CE7C4
366:1016D0000D19FE1500408D3001F41C070251FE0665
367:1016E00083FE1880612844155601851C0702FE38C8
368:1016F00090FEBA9091DE7EDFFE485531FEC955025C
369:1017000021B98820B9020ABA0118FE41480A5701D6
370:1017100018FE49441BFE1E1D8889020A5A01180939
371:101720001AA40A6701A30A570118888902FE4EE429
372:101730001D7BFE521D03FE9000FE3A45FE2C10FE5E
373:101740004EE4DD7BFE641D03FE9200D112FE1A10F2
374:10175000FE4EE4FE0B007BFE761D03FE9400D124BA
375:10176000FE081003FE9600D163FE4E4583CAFF04B7
376:101770006854FEF1102349FE081CFE6719FE0A1C7E
377:10178000FE1AF4FE000483B21D48FEAA1D131D02BA
378:101790000992FE5AF0FEBA1D2E93FE34100912FE75
379:1017A0005AF0FEC81D2EB4FE2610091D362E63FE0B
380:1017B0001A10090D362E94F20907362E95A1C8028B
381:1017C0001F930142FE04FE99039C8B022AFE1C1EFD
382:1017D000FE14F0082FFE0C1E2AFE1C1E8FFE1C1E7F
383:1017E000FE82F0FE101E020F3F04FE8083330B0EBC
384:1017F000020FFE188004FE9883330B0E020FFE02C8
385:101800008004FE8283330B0E020FFE068004FE86E8
386:1018100083330B0E020FFE1B8004FE9B83330B0EE3
387:10182000020FFE048004FE8483330B0E020FFE8041
388:101830008004FE8083FEC9470B0E020FFE1981044F
389:10184000FE9983FECA470B0E020FFE068304FE8636
390:1018500083FECE470B0E020FFE2C9004FEAC933A93
391:101860000B0E020FFEAE9004FEAE93790B0E020F2C
392:10187000FE089004FE88933A0B0E020FFE8A900435
393:10188000FE8A93790B0E020FFE0C9004FE8C933AA5
394:101890000B0E020FFE8E9004FE8E93790B0E020F3C
395:1018A000FE3C9004FEBC933A0B0E028B0FFE0380AD
396:0E18B00004FE8383330B770EA802FF66000050
397:00000001FF
398/* Microcode buffer is kept after initialization for error recovery. */
diff --git a/firmware/advansys/mcode.bin.ihex b/firmware/advansys/mcode.bin.ihex
new file mode 100644
index 00000000000..cd160d93866
--- /dev/null
+++ b/firmware/advansys/mcode.bin.ihex
@@ -0,0 +1,147 @@
1:100000003F452C01010301190F0000000000000012
2:10001000000000000F0F0F0F0F0F0F0F0000000068
3:1000200000000000000000000000000000000000D0
4:1000300000000000000000000000000000000000C0
5:100040000000000000000000C3120D0501000000C8
6:1000500000FF000000000000FF80FFFF0100000023
7:10006000000000000000002300000000000700FF67
8:1000700000000000FFFFFF00000000000000E48817
9:100080000000000080734804360000A2C2008073A4
10:1000900003233640B600360005D60CD212DA00A291
11:1000A000C20092801E985000F5004898DF23366009
12:1000B000B60092804F00F5004898EF233660B600F6
13:1000C000928080629280004615EE13EA020109D800
14:1000D000CD044D0000A3D600A6977F2304618401C0
15:1000E000E684D2C18073CD044D0000A3DA01A69747
16:1000F000C681C28880738077000101A1FE004F0095
17:10010000849707A6080100330300C288030301DEB9
18:10011000C288CE006960CE0002034A6000A2780166
19:10012000806307A62401788103038063E20007A6A9
20:10013000340100330400C2880307020104CA0D23FE
21:1001400068984D04048505D80D236898CD041523BF
22:10015000F888FB23026182018063020306A3620127
23:1001600000330A00C2884E0007A36E0100330B0063
24:10017000C288CD04362D00331A00C288500488810D
25:1001800006AB820188814E0007A39201500000A3B4
26:100190003C0100057C814697020105C60423A001AD
27:1001A0001523A101BE81FD23026182010ADA4A0002
28:1001B000066100A0B4018063CD04362D00331B001E
29:1001C000C28806236898CD04E684060100A2D40103
30:1001D000576000A0DA01E6848023A001E6848073E2
31:1001E0004B00066100A2000204010CDE020103CCF8
32:1001F0004F008497FC810823024182014F006297DF
33:1002000048048480F0970046560003C00123E800AC
34:1002100081730629034206E203EE6BEB1123F88893
35:100220000498F0808073807707A42A027C9506A644
36:10023000340203A64C044682040103D8B4986A969B
37:100240004682FE95806783038063B62D02A66C020A
38:1002500007A65A0206A65E0203A66202C2887C9521
39:100260004882609648820423A0011423A1013C84A3
40:1002700004010CDCE0232561EF0014014F04A80108
41:100280006F00A5010323A40106239C01242B1C015C
42:1002900002A6AA0207A65A0206A65E0203A6200428
43:1002A00001A6B40200A6B40200331200C288000EF8
44:1002B0008063004300A08C024D0404010BDCE723A3
45:1002C00004618401103112351401EC006C38003FD8
46:1002D0000000EA821823046118A0E2020401A2C807
47:1002E00000331F00C28808310A350C390E3D7E9854
48:1002F000B62D01A6140300A6140307A60C0306A638
49:10030000100303A6200402A66C0200333300C28847
50:100310007C95EE826096EE82829880427E9864E4BC
51:1003200004012DC83105070100A2540300438701D1
52:10033000050586987E9800A6160307A64C0303A61B
53:100340003C0406A6500301A6160300332500C2880C
54:100350007C95328360963283040110CE07C8050570
55:10036000EB0400330020C020816272830001050588
56:10037000FFA27A03B1010823B2012E8305051501FE
57:1003800000A29A03EC006E0095016C38003F00005B
58:1003900001A6960300A69603108480427E9801A6CB
59:1003A000A40300A6BC031084A898804201A6A4035D
60:1003B00007A6B203D4837C95A88300332F00C2889C
61:1003C000A898804200A6BC0307A6CA03D4837C95E4
62:1003D000C08300332600C288382B80328036042345
63:1003E000A0011223A101108407F006A4F403806B7E
64:1003F000806705238303806303A60E0407A6060413
65:1004000006A60A0400331700C2887C95F483609620
66:10041000F483208407F006A42004806B8067052302
67:1004200083038063B62D03A63C0407A6340406A606
68:10043000380400333000C2887C9520846096208484
69:100440001D0106CC00330084C0200023EA00816235
70:10045000A20D806307A65A0400331800C288030364
71:100460008063A30107A46404230100A286040AA0F8
72:100470007604E00000331D00C2880BA08204E00077
73:1004800000331E00C2884223F888002322A3E6041A
74:10049000082322A3A204282322A3AE04022322A31A
75:1004A000C4044223F8884A00066100A0AE04452334
76:1004B000F888049800A2C004B49800330082C020D9
77:1004C0008162E8814723F88804010BDE0498B49820
78:1004D00000330081C0208162140100A00002432388
79:1004E000F8880423A0014423A10180734D0003A3D5
80:1004F000F40400332700C288040104DC0223A201B3
81:100500000423A001049826954B00F6004F044F00E9
82:1005100000A3220500057600066100A21C050A85DD
83:100520004697CD04248548048480020103DA8023A1
84:10053000820134850223A0014A00066100A2400521
85:100540001D0104D6FF2386414B60CB00FF238001B1
86:1005500049008101040102C830018001F704030150
87:1005600049048001C90000050001FFA0600577046F
88:100570000123EA005D00FEC700620023EA00006379
89:1005800007A4F805030302A08E05F48500332D00AF
90:10059000C28804A0B80580630023DF004A0006611A
91:1005A00000A2A4051D0106D60223024182015000CB
92:1005B00062970485042302418201048508A0BE05D8
93:1005C000F48503A0C405F48501A0CE0588008063EE
94:1005D000CC8607A0EE055F00002BDF0800A2E60531
95:1005E0008067806301A27A067C8506236898482389
96:1005F000F88807238000068780637C850023DF005E
97:1006000000634A00066100A236061D0116D4C0230D
98:1006100007418303806306A61C0600333700C288A7
99:100620001D0101D620236360830380630223DF0062
100:1006300007A67C05EF046F0000634B000641CB006A
101:100640005200066100A24E061D0103CAC0230741E5
102:1006500000631D0104CC00330083C020816280232D
103:1006600007410063806708238303806300630123DD
104:10067000DF0006A6840607A67C058067806300333A
105:100680000040C020816200630000FE958303806308
106:1006900006A6940607A67C05000001A01407002BFF
107:1006A000400E8063010006A6AA0607A67C05400E40
108:1006B0008063004300A0A20606A6BC0607A67C0530
109:1006C0008067400E806307A67C050023DF0000637F
110:1006D00007A6D60600332A00C28803038063890078
111:1006E0000A2B07A6E80600332900C288004300A2AF
112:1006F000F406C00E8063DE86C00E00330080C0208A
113:100700008162040102DA80637C85807B806306A6B7
114:100710008C0600332C00C2880CA22E07FE958303A2
115:10072000806306A62C0707A67C0500333D00C2881F
116:1007300000008067830380630CA0440707A67C0544
117:10074000BF2304618401E6840063F0040101F10029
118:100750000001F20001058001720471008101700442
119:10076000800581050063F004F20072040101F100CC
120:1007700070008101700471008101720080017104B8
121:100780007000800170040063F004F2007204000144
122:10079000F10070008001700471008001720081011D
123:1007A000710470008101700400630023B3018305AC
124:1007B000A301A201A1010123A0010001C80003A11E
125:1007C000C40700330700C28880058105040111C8F1
126:1007D0004800B001B1010823B201050148040043FB
127:1007E00000A2E4070005DA870001C800FF238001AA
128:1007F00005050063F7041A09F6086E040002804339
129:100800007608800277040063F7041A09F6086E047C
130:10081000000200A0140816880043760880027704BE
131:100820000063F3040023F40074008043F400CF401D
132:1008300000A2440874040201F7C9F6D9000101A11D
133:10084000240804982695248873040063F30475042F
134:100850005A88020104D84697049826954A8875005C
135:1008600000A3640800054E8873040063807B8063E6
136:1008700006A6760800333E00C28880678303806343
137:100880000063382B9C88382B928832093105929866
138:100890000505B209006300320036003A003E0063ED
139:1008A00080328036803A803EB43D0063382B40323F
140:1008B0004036403A403E00635A20C94000A0B40888
141:1008C0005D00FEC300638073E6200223E8008273AC
142:1008D000FFFD80731323F8886620C0200423A00145
143:1008E000A123A1018162E28880738077680000A261
144:1008F000800003C2F1C74123F8881123A10104231A
145:04090000A001E684E8
146:00000001FF
147/* Microcode buffer is kept after initialization for error recovery. */
diff --git a/firmware/qlogic/1040.bin.ihex b/firmware/qlogic/1040.bin.ihex
new file mode 100644
index 00000000000..d1213307f71
--- /dev/null
+++ b/firmware/qlogic/1040.bin.ihex
@@ -0,0 +1,2111 @@
1:1000000007410600001078003A1000005841000037
2:100010004320504F525947495448312039392035EF
3:100020004C51474F43494320524F4F50415249543E
4:100030004E4F49205053303130324920542F462002
5:100040007269776D726120655620726569736E6F93
6:1000500030202E3735362020432073756F74656D40
7:1000600020726F4E202E303050206F727564746392
8:100070004E202E6F2020313024200120FD0404204A
9:1000800082A005004800451038004B10780047104A
10:1000900028004B10B920121278004D10B9202222EE
11:1000A000C120080071201000C3700400C920FF782F
12:1000B00089208611C7705349CB702050CF70202003
13:1000C000D3700700003FD670C1200800192000003F
14:1000D0000920FFFE00210B20A5A5ECA1FF7F642DC8
15:1000E0006B200A0ADCADFF3F542B5B2050501421DB
16:1000F00086A2A5A54000BF1086A30F004000851072
17:100100006A2C5A2AC120000019200F0078006510BF
18:100110006A2C5A2AC12008000920FF7F482144295F
19:100120004B200A0ABCA9FF3F34273B205050142122
20:1001300086A20A0A4000A9104A283A26C1200400D3
21:100140000920FF3F34210B205050142186A250502B
22:100150004000AA1078008E114A283A26C09888A13B
23:1001600000102C210B20A5A5142186A2A5A54000D6
24:10017000BC100A258AA10010C1987800C1100A2578
25:100180007800C1106A2C5A2A30218AA14000282107
26:10019000A2A10052248424842484248424842484DA
27:1001A00092A1007909200000012031007810261D5D
28:1001B000182279200052A02F082411200000A92025
29:1001C0004000A4420981C000DC10F27E2885E67D53
30:1001D000EA7CEE7B8378000031203000CF7801018B
31:1001E0000B7802000F7802004F780300692040521C
32:1001F0000120FD04042082A00500480004113800FD
33:100200000011780008111B683C0078000A11A80052
34:1002100008111B683C001B682800076807000B6872
35:10022000FA000F68080013680500236800002768BB
36:100230000600176808002B6800001F681900692075
37:10024000805411202000092010000B680C080F6852
38:100250001900036800FD076818001A6A002DE8A05D
39:10026000080090A204000981C000221169200055F5
40:1002700009200200A9200001376800000B68400037
41:10028000F07B86A3FFFEC0004811176800011F68BD
42:10029000640078004C11176864001F680200E8AD24
43:1002A000100070005211780039110981C000371117
44:1002B0007810A72278103D497810B5197810334E80
45:1002C000003285A00D009020C370000090006C11DA
46:1002D000C07086A00200C0006C11781084127810E3
47:1002E0009611CC7805A0C0007A1178104F1D10002F
48:1002F000801168008011781086211000801168003C
49:1003000080117810B91AE0006C117810BA4C78009E
50:100310006C118E119011AC24AC24BE49BE49AC24A2
51:10032000AC2478008E11780090117800921178003A
52:1003300094116800011261200000186084A001007F
53:10034000C0000112147805A0C000A711100002120D
54:100350007800011209205B52042105A0C00001129F
55:10036000092064520B200000147986A14200C000CD
56:10037000CC1116780920625264210B20000018600D
57:10038000C6701460CA701C618CA100FF206084A03C
58:10039000FF0005A1CE7078109A197800FF1114782B
59:1003A00086A01800C000D3117810781617780000C6
60:1003B00009206252042165A04000EF117E0C9C6070
61:1003C00060207810171A7F0C9F60000078104E177D
62:1003D00009200C000760030178107619C000FB119A
63:1003E00078109A19092062520B20000009205C52F3
64:1003F00004210B20000005A04000FF110120054052
65:1004000078008612780084127C00C3700000C770E8
66:100410000000CB700000CF700000C070BCA0C0FF17
67:10042000C00052123820790012128412E512A9126B
68:10043000FE120D131313A012661717139812AD12A4
69:10044000AF12B112B3126B179812291365139016DD
70:100450006017B512AF15CB15E7151216681576158E
71:100460008A159E15E913981297139D13A213A713CB
72:10047000AD13B213B713BC13C113C513DA13E613CC
73:100480009812981298129812F513FE130D14511425
74:100490005B146214A814B714C614D8144815581560
75:1004A00098129812981298125D15BCA0A0FFC00077
76:1004B0009812382084A01F0079005B12A417A71798
77:1004C000B7179812981231194E199812981298125B
78:1004D00052195A199812981298129812DB12F412A3
79:1004E0001F135B1386168217961798124718601908
80:1004F0000D1917191B19291998129812CA72C67169
81:100500000120064078008612CE73CA72C67101209F
82:100510000040C27068008712612000001B6001006B
83:1005200091200050E0008F12E000911268009112BB
84:10053000912080407C00C370014078008712C37016
85:1005400006407800871299204100A1204100A9208F
86:100550000500A35378008412C470C37004007A00AD
87:100560007800841278008412780084127800841253
88:1005700091200080C3700000C7705349CB70205099
89:10058000CF702020D3700700003FD6707920000084
90:100590001B78010031203000592000102920570419
91:1005A0005120700461207204B920FFFFC1200000B7
92:1005B0009120005091208040780055047810C41B91
93:1005C000C0009C12D875DC74DA75DE747800E8120D
94:1005D000292000002025D071C873CC72C470781017
95:1005E000FE1A40008412C370024078008412781012
96:1005F000C41BC0009C12D875DC74DA75DE747800F8
97:100600000113292000002025D071C873CC72C4705A
98:1006100078105E1B40008412C37002407800841280
99:10062000C471C87014210A2078008212C471142188
100:1006300078008212C7700700CB704100CF700600AF
101:10064000780084127810C41BC0009C12D875DC7628
102:10065000DA75DE7678002C13292000003025C4706E
103:10066000C872CC73D074C670CA72CE73D27405A02F
104:10067000400055130AA440003C13C80046130180F3
105:10068000927884A000FC40004A13CC7885A0010039
106:10069000CE7801200540780086129A7A9E7BA27D52
107:1006A000A67E967CCC7884A0FCFFCE787800591387
108:1006B000CC7885A00100CE78780084127810C41B15
109:1006C000C0009C12D875DC76DA75DE767800681387
110:1006D000292000003025C470C872CC73D474C67051
111:1006E000CA72CE73D67405A0400091130AA44000CC
112:1006F0007813C80082130180AE7884A000FC40000B
113:100700008613CC7885A00001CE78012005407800C2
114:100710008612B67ABA7BBE7DC27EB27CCC7884A0CB
115:10072000FFFCCE7878009513CC7885A00001CE78B8
116:1007300078008412092061520C21EC7A7800821230
117:10074000092041520C2178008312092042520C21C9
118:1007500078008312612040520C611062780082128E
119:10076000092045520C2178008312092046520C21A1
120:1007700078008312092048520C2178008312092046
121:1007800049520C217800831208790C7A7800821281
122:10079000C471078184A00F00038003800380E8A058
123:1007A0008054006A046884A008004000D713086BD6
124:1007B0007800D8130C6B78008112C4777810C519B3
125:1007C000912000801C6B146A91200180082778001A
126:1007D00081124C7978008312C4777810C519912062
127:1007E00000800869186A106B9120018078008112DE
128:1007F000C47182A11000C8007C1278107F23780099
129:100800008112C47182A11000C8007C1211204152D3
130:1008100004227E001221781038237F017800831291
131:10082000C47119200001042382A0060048001B1493
132:1008300011204914A920080078001F141120411428
133:10084000A9200800042206A140002A14108270008A
134:10085000281478001F1478007C12042382A006005C
135:100860004800331492A249147800351492A241141E
136:100870007E0211204252042212217F017E00781054
137:1008800044237F0178008312E803FA00F401EE02AA
138:100890006400190032004B00E803FA00F401EE0294
139:1008A0000400010002000300612040520C6110624C
140:1008B000C4700E60C87012607800821261204052CD
141:1008C0001461C47016607800831261204052C471B4
142:1008D000112004001F6019001920121286A128009F
143:1008E00040008314112005001F6019001920121206
144:1008F00086A1320040008314112006001F600C0006
145:100900001920222286A13C00C0007C1218607E00C3
146:100910001A61007884A00100C0009E140120FD042B
147:10092000042082A005004800961438009A1478002C
148:100930009E1428009A1478009E1419202222780010
149:10094000A01419201212B823781055237810334EB2
150:100950007F0178008312C47184A1CFFFC0007C1294
151:1009600011204852042212217E00781077237F0143
152:1009700078008312C47182A11000C8007C1211207B
153:10098000495204227E001221781066237F017800EC
154:100990008312C471C87284A1FDFFC0007B1284A2BF
155:1009A000FDFFC0007B12002108790A7800220C7A32
156:1009B0000E7878008212C471078184A00F00038032
157:1009C00003800380E8A0805419200000C872BCD2C4
158:1009D0004000E9149DA31000B4D24000EE149DA382
159:1009E000080000687E0026A240001115026A84A457
160:1009F00000204000FA149DA3100084A400104000C1
161:100A000000159DA3080084A40040400011150F812B
162:100A100084A2004040000D1578109923780011152C
163:100A200078108B2378001115CC72086806A240005C
164:100A30004015A4A2FF0061204052186186A1280041
165:100A40004000271586A1320040002D1586A13C00EC
166:100A50004000331582A4640048003D157800371526
167:100A600082A4500048003D157800371582A4430049
168:100A700048003D15C471C6717F02CA7278007D12AC
169:100A80000A6A9DA30A00046805A306687F020C6B2E
170:100A9000C47178008112C4777810C5199120008044
171:100AA000146A1C6B91200180C8701668CC701E6897
172:100AB000082778008112C4704C794E787800831230
173:100AC000C471C872CC7382A11000C8007C12781067
174:100AD000A72378008112C4777810C519912000806F
175:100AE000086A95A202000A6A91200180082778000E
176:100AF0008212C4777810C51991200080086A94A2E8
177:100B0000F9FF0A6A046805A04000851578106F2275
178:100B100091200180082778008212C4777810C519C7
179:100B200091200080086A95A204000A6A046805A062
180:100B30004000991578106F229120018008277800D5
181:100B40008212C47741200100492005005120200075
182:100B5000912000807810D219912001800827086A1E
183:100B600078008212C477C872CC73C677CA72CE730B
184:100B70007810521AC000C715186805A04000C715A4
185:100B800008277810B723C000C715177815009120E3
186:100B900001807C009120018078008412C477C677A0
187:100BA0004120210049200500512020009120008093
188:100BB0007810D219612040526F6003008267936001
189:100BC0000F00736000001778160078106F229120D4
190:100BD00001807C00C877CA77C477C677BCA700FFBE
191:100BE00091200080612040526F600200736000001D
192:100BF000826793600F001778170078106F2291209A
193:100C00000180412021004920040051201000912042
194:100C100000807810D219C8703668388784A71F0002
195:100C2000C0000616912001807C00CC7884A00300CF
196:100C3000C000361639200000412021004920040060
197:100C4000512008007810C5199120008008680DA86F
198:100C50000A6991200180388784A71F00C0001F16F1
199:100C6000BCA700FF3F8738873F8784A7000FC000DD
200:100C70001F169120008069200001306884A0400088
201:100C800040005F164B680400A9201400486884A047
202:100C9000040040004C1670004C16780043164B6858
203:100CA0000900A9201400486884A0010040005916DA
204:100CB0007000591678005016A920FA0070005F16CF
205:100CC00078005B1679200052177818006120405296
206:100CD0006F6001007360000093600F00CC7885A006
207:100CE0000200CE78086884A0FDFF0A681B684800EF
208:100CF000912001807C00CC7884A0FDFFCE7884A078
209:100D00000100C000821678109C1AC471C6714A791D
210:100D10007C007810C41BC0009C12D875DC74DA7596
211:100D2000DE7478009316292000002025C471C87352
212:100D3000CC72C671CA73CE727920005291200080A5
213:100D4000781080199120018040004A17A9200500E1
214:100D5000A120185291200080A141912001800920FA
215:100D6000200078107B194000B61678109A19780088
216:100D70004A17046084A000FF07800980400019170B
217:100D80007E0C682C912000807810801991200180C1
218:100D90004000EA16002C9E680981C000BE169F60C4
219:100DA00000007F0C7E0C18721C7320742475682C54
220:100DB0009C6865A0400018170920200078107B1956
221:100DC000C0000117046084A0FF0086A00200C000DC
222:100DD000EA16002D02607800D0167F0C7E0C9C6015
223:100DE00060207810171A7F0C9F60000078104E1753
224:100DF00009200C00086085A000020A6078107619AE
225:100E000078109A1978004A177F0C7E0C9C6060203D
226:100E10007810171A7F0C9F60000078104E17092079
227:100E20000C00076003011B6003007810761978102E
228:100E30009A1978004A177F0CC474C873CC72146076
229:100E400091200080177812007E0E712040526F7042
230:100E500005007370000076737A727E7482708770FA
231:100E60000000002C8A708F7000002EA030251C61BD
232:100E7000A26184A1600040003C177810D3487F0E27
233:100E80009665A6659A66AA66AF600000B36000002A
234:100E900078106F22912001807C00C370054078009B
235:100EA0008712A920050099201852912000800A532A
236:100EB00091200180002110A299A30000A1A40000AC
237:100EC000A9A500007C00C471C770000006797800F5
238:100ED0008412C471C671682178006D1769200010F2
239:100EE0000C6916A0042D10A2688D0981C0006F172F
240:100EF00085A20000C0007D17C370004078007F17F6
241:100F0000C3700340CA7078008712112067520C2208
242:100F1000C470038048008F177810513C84A1FF7F74
243:100F2000780093177810443C85A100801220780047
244:100F30008312C47178103B3C006101206752042089
245:100F400084A000800DA10462086378008112E47916
246:100F500078008312C471C6719821A1204200A92093
247:100F60000400A353A02199204200A9200400A35308
248:100F700078008412C470682079200052912000808B
249:100F8000781080199120018040004318076001000B
250:100F90000B6000002B6000001B600600106A8CA232
251:100FA0000F0084A2F000038003800380038005A16A
252:100FB000166084A200084000DE171B600A0078005B
253:100FC000E41784A200104000E4171B600C0084A208
254:100FD00000034000ED172B600100048004800480B2
255:100FE00085A001001E60236000002760000084A22D
256:100FF00000044000FA172B600000A920060080AC16
257:101000000B00A02080AD05009820A35384A200030C
258:10101000C0000F1846604A604E60526096609A6049
259:10102000780019180068466004684A60086E4E66C9
260:101030000C6D526596659A66146091200080177851
261:101040004200082C612040526F6005007360000070
262:10105000776000007B6000007F60000082608A6132
263:1010600084A200048E60912001807E0E71202000F9
264:1010700007700A0007700200037000007F0E9120C5
265:10108000008078106F22912001807C00C3700540A1
266:10109000780087127E0C7E0D7E0E7E0F91200080E0
267:1010A000712040527920000161201000A0706DA0D5
268:1010B00040000319046A94A2FF0086A207004000C2
269:1010C000621886A20F00C00003191C6984A1C00029
270:1010D0004000031984A18000C000D318246884A0B4
271:1010E00000FF85A019002668B071FF8140008918B3
272:1010F0007E0D69202000076810000869086806A1B5
273:10110000C0007A180C690C6806A1C0007F1884A181
274:10111000FF00C0007F187F0DB87884A01F80C0003A
275:101120008918487885A00C004A78B071FF8140008A
276:10113000AC18B37000007E0D69202000076818000D
277:10114000046884A00800C0009D18076808000468AF
278:1011500084A00800C000A418076802007F0DC461C5
279:10116000C862CC63C661CA62CE637E0E7120005233
280:1011700066726A7380AE19007F0E487884A00C00F6
281:10118000C000BA187810E147A3780000587884A00E
282:10119000FFED5A78B47080A0DA001A787F0F7F0EC6
283:1011A0007F0D7F0C9120018078008412246884A038
284:1011B00000FF85A019002668B87884A01F80C000B1
285:1011C000D918487885A00C004A78487884A00C008B
286:1011D000C000E218B071FF8140000119B370000037
287:1011E0007E0D6920200007681800046884A00800AC
288:1011F000C000F21807680800046884A00800C00056
289:10120000F918076802007F0D7800CB187F0F7F0E5A
290:101210007F0D7F0C9120018001200540780086120F
291:101220008079C671C47182A10300C8007C128279E2
292:10123000780084128079C671780084127479C6713E
293:10124000C47176797879CA71C8717A797C79CE71EE
294:10125000CC717E79780084127479C6717879CA71FC
295:101260007C79CE71780084120079C671C4710279DC
296:101270000120FD04042082A0050048004019380028
297:10128000421978004C19A8004C198CA10100C0002B
298:101290004A19B920222278004C19B920121278007C
299:1012A00084120079C67178008412092074520421D6
300:1012B000C670C4700A207800841209207452042178
301:1012C000C67078008412C471078184A00F00038067
302:1012D00003800380E8A08054146AB4D240007119DE
303:1012E0001120010078007319112000000C6B7800A8
304:1012F000811280AC01007810801B7C0080AC010062
305:101300007810201B7C00507865A040008819042CC0
306:101310005278632000007C007E0F792000525078C4
307:101320006DA040009819042D5278036800000768EA
308:1013300000000B6800007F0F7C00912000807E0F72
309:101340007920005250786220002C05A0C000A71917
310:1013500078108C2452787F0F912001807C007E0FC2
311:101360007920005250786A20002D52787F0F7C003F
312:1013700011200079527AEC7B19834000C21980A2B7
313:101380003100122010207800B919132000007C00D1
314:1013900084A7000F0B8084A71F00038003800380B5
315:1013A000038005A1E8A000557C007810C51900292C
316:1013B0002A68002A2E68086884A0EFFF0DA80A6931
317:1013C000092052520C21046805A04000041A16A1FD
318:1013D000C000EF196020006006687E010B2000004D
319:1013E0007800F219092000007E01046865A0400021
320:1013F000011A006006687810311A7810CB1C10684A
321:1014000001801268C000F2197F01026906697C0040
322:1014100065A04000161A08209C6005A04000131A21
323:1014200062209F60000065A07800091A5078527908
324:1014300062207C0065A04000301A08209C6005A056
325:101440004000251A62209F60000065A078001B1AEA
326:101450007E0F7920005291200080507852797F0FC2
327:101460006220912001807C00076003018F600000F2
328:10147000A9201C0080AC0500A02001200000A44091
329:1014800028681A602C6822607C007E0E7120405211
330:101490004C708CA00002C000501A88A080520A2D07
331:1014A00000804E7006A07F0E7C007810C519912038
332:1014B000008004681E7865A040009B1A7800631ABB
333:1014C000002C1E78006065A040009B1A0C6006A3EB
334:1014D000C0005D1A106006A2C0005D1A282C012011
335:1014E0005252042006ACC000741A7800991A04689D
336:1014F00006ACC000811A006065A00668C0008B1AA7
337:101500000368000078008B1A00641C786020026475
338:1015100086A40000C0008B1A002C02686025781099
339:10152000311A1B600500236020007810CB1C106866
340:10153000018050108C24126885A0FFFF7C003920A8
341:101540000000412021004920040051200800912082
342:1015500000807810D219388784A71F00C000A61A0F
343:10156000BCA700FF3F8738873F8784A7000FC000D4
344:10157000A61A912001807C0061200000186084A0E0
345:101580000100C000CA1A91200080E078E3780000D2
346:101590009120018005A0C000CB1A7C008CA0F0FF38
347:1015A0004000D11A78108C247900D31AE31AE61A75
348:1015B000EC1AF01AE41AF41AFA1AE41AE41A951C4E
349:1015C000B91CBD1CE41AE41AE41AE41A7C00781071
350:1015D0008C2478109C1A012001807800C31C012003
351:1015E00003807800C31C012004807800C31C78109D
352:1015F0009C1A012006807800C31C01200780780017
353:10160000C31C3020382182A721004800061B092076
354:10161000200000267810201BC0001F1BBAA7200046
355:1016200048001E1B40001E1B0827B0A6200090A2E9
356:10163000400099A30000A1A40000A9A50000780023
357:10164000001B06A07C00FF8140005B1B992030003E
358:10165000A0200C7084A0FF004000321B0770040023
359:10166000047084A00400C0002D1BA8211770000086
360:101670000B8112711A721E73227426750C7885A064
361:1016800001000270077001000120FD04042082A007
362:101690000500C8004F1B09202200042184A000403F
363:1016A000C000411B08700B80C800411B077002007E
364:1016B0008CA0E001C0005B1BA55306A003700000D6
365:1016C0007C003020382182A721004800661B0920B9
366:1016D000200000267810801BC0007F1BBAA72000C6
367:1016E00048007E1B40007E1B0827B0A6200090A269
368:1016F000400099A30000A1A40000A9A50000780063
369:10170000601B06A07C00FF814000C11B9820A12027
370:1017100030000C7084A0FF004000921B0770040092
371:10172000047084A00400C0008D1BA8211770000065
372:101730000B8112711A721E73227426750C7885A0A3
373:1017400000000270A653077001000120FD04042070
374:1017500082A00500C800B01B09202200042184A03B
375:101760000040C000A21B107084A000F04000B91B14
376:10177000077008007800BD1B08710381C800A21B18
377:101780000770020084A1E001037000007C000120CA
378:10179000FD04042082A00400C800CD1B7800D01BEB
379:1017A00006A07800D21B85A001007C007E0E71206F
380:1017B0000052082D5870026805A0C000DD1B5E7144
381:1017C0005A717F0E7C00082C5878026005A0C0007A
382:1017D000E71B5E795A797C009120008014617810B3
383:1017E0008021006984A10001C000352084A100028D
384:1017F000C00031201C6805A0C0003D20036000002F
385:10180000082C5C7865A0C000051C5A797800061C7D
386:1018100002615E799120018078108C227C007E0E1E
387:101820007120005258706DA040001A1C00685A7058
388:1018300005A0C000191C5E70FF8D7F0E7C007E0D20
389:101840007E0C7E0F7920005280AF16006020006071
390:1018500005A04000431C6820146806A3C000331C88
391:10186000286884A0FF0006A44000361C602D780084
392:10187000241C006805A00260C000421C80AF160056
393:1018800006AC4000411C002C5E78002D7F0F7F0CC1
394:101890007F0D05A07C007E0D7E0C7E0F792000520E
395:1018A00080AF16006020006005A040006B1C68201F
396:1018B000146884A0FF0006A340005E1C602D780021
397:1018C000501C006805A00260C0006A1C80AF1600B2
398:1018D00006AC4000691C002C5E78002D7F0F7F0C49
399:1018E0007F0D05A07C007E0D7E0C7E0F79200052BE
400:1018F00080AF1600602000606DA04000901C14684E
401:1019000006A34000831C602D7800781C006805A0A9
402:101910000260C0008F1C80AF160006AC40008E1C19
403:10192000002C5E78002D7F0F7F0C7F0D05A07C00C2
404:101930009120008069204052006886A0000040008D
405:10194000A31C91200180E37809007C008068BCA082
406:1019500000FF412021004920040051201000781090
407:10196000D219388784A71F00C000AC1C91200180C9
408:1019700001200A807800C31C01200C807800C31C61
409:1019800078109C1A01200D807800C31CC270612061
410:1019900000001B600100912080407C000460082C46
411:1019A00063200000847800808678887805A08A7992
412:1019B0004000DA1C022C7800DB1C8E797C00076862
413:1019C00003017E0C61200052082D6B200000846012
414:1019D00000808660886005A08A614000EF1C022DAF
415:1019E0007800F01C8E617F0C7C007810031D400095
416:1019F000021D7E0C9C6065A04000FD1C7810171A2B
417:101A00007F0C9F60000078109A197C008C7865A08C
418:101A10004000151D91200080847801808678042C78
419:101A20008E7805A0C000131D8A7800809120018067
420:101A30007C00A920100006A0048086808E81C8004A
421:101A40001F1D00A27000231D78001A1D86808E8144
422:101A50007C007E15A920100005A04000491D1AA198
423:101A6000C800491D13828D8148003A1D1AA1C80083
424:101A70003B1D7000411D78002F1D1AA10823108204
425:101A80007000411D78002F1D7E00003284A0FFF7FA
426:101A900080207F007F157C007E00003285A000083A
427:101AA0007800451D9479D07006A14000BD1D91209D
428:101AB000008071202000047005A0C000BD1D0870CA
429:101AC000087206A2C000BD1D86A20800C000BD1D90
430:101AD00071201000781080194000BD1D9C7A987B01
431:101AE000A47CA07D84A100FF40008B1D312000005C
432:101AF0000B81B5860B81B5860B81B5860B81B586CA
433:101B00000B81B5860B81B586002110A2002619A392
434:101B1000A1A40000A9A500007800951D07810480FC
435:101B2000048010A299A30000A1A40000A9A50000B0
436:101B30000920200078107B19912001804000B41DFD
437:101B400078109A19A8780080AA7886A00200C000B0
438:101B5000BD1D91200080E3780200AB780000CC78B6
439:101B600085A00300CE78912001807800BD1DAB7860
440:101B7000000078104921046084A00F007900C21D84
441:101B800071201000912001807C00D21DF41D1A1ECE
442:101B9000D21D371EE11DC91FE41FD21DEE1D141EEC
443:101BA0007F1EEE1E571F691FE01F39200004DC78DE
444:101BB00005A7DE78086005A70A60781064209C609D
445:101BC000DA78781031217C00DC7884A000014000B4
446:101BD000E81D7800D21D1C6085A080001E60780082
447:101BE000FB1D7810C41BC000D21D78106321DC7867
448:101BF00084A000014000FB1D7800D21DDF780000AA
449:101C00000460078084A0FF00D27801809F600000FC
450:101C10004000111E781064204000111EDC7885A061
451:101C20000001DE787800131E781088207C00781080
452:101C3000C41BC000D21D78105F21DC788CA0000E80
453:101C4000C000231E84A00001C000251E7800D21D04
454:101C500078106420C000361E04618CA1FF0086A1AC
455:101C600007004000212086A10F00400021207810AD
456:101C700088207C00DC7884A0000140003E1E7800B3
457:101C8000D21DDF780000146711200100A920010097
458:101C9000186084A0FF0005A04000611E1120010013
459:101CA000BCA700FFA92020008EA001004000611EFB
460:101CB0003920000011200200A92000018EA002009E
461:101CC0004000611E78007C1E7810C51991200080AC
462:101CD0002B6800002F680000086884A0DEFF0A68F7
463:101CE000E8AD1000912001807000751E7800631E21
464:101CF000118240007C1EA92000017800631E78102C
465:101D00009A197C0001206752042084A000804000C2
466:101D10004920146178108021006984A101004000ED
467:101D2000A01E286084A0FF00C0004120006884A09D
468:101D3000010040004920036800000B6800000768AC
469:101D4000000078005120112001002060F4D04000F4
470:101D5000A81E95A20200C4D04000AD1E95A20800A6
471:101D6000CCD04000B21E95A200041C6084A00200EA
472:101D70004000B91E95A204002C608CA0FF0082A137
473:101D8000020048004D2082A11B00C8004D204000E9
474:101D90004D200E692C6007808CA0FF0082A10200FC
475:101DA00048004D2082A11B00C8004D2040004D205E
476:101DB0001269306005A0C000DC1E01201E000080FA
477:101DC0001668286084A0FF0040004920066828604B
478:101DD000078084A0FF00400049200A68026A78005A
479:101DE000512001204052042086A00700C000531F4C
480:101DF00001206752042084A0008040004920146123
481:101E0000781080210120525204201020FF824000CF
482:101E10000E1F80A00500042084A0FF0006A1C000C2
483:101E2000531F91200080046A086B186484A4030087
484:101E300040002D1F28618CA1FF000180C000231FDE
485:101E4000002110A24800531F78002D1F0180C00000
486:101E5000531F002112A24800531FFF824000531F4E
487:101E600084A40C004000471F28610F818CA1FF0053
488:101E700082A00400C0003F1F002118A34800531F88
489:101E80007800471F82A00400C000531F00211AA33E
490:101E90004800531F306005A040004D1F00801668A9
491:101EA000066A0A6B91200180780051209120018000
492:101EB00078004D2014617810802191200080086BFB
493:101EC00018834800651F0A6B91200180780060200C
494:101ED0009120018078004D202460078084A0FF00BD
495:101EE0004000871F86A08000C000C71FA9200800EF
496:101EF0006920107691200080006884A0FFFC0268B1
497:101F0000E8AD08007000831F7800791F91200180E0
498:101F100078005120286015A04000C71F1461781078
499:101F200080217E0C7E0DE8AD0700912000800068C6
500:101F30000DA04000C31F06A240009E1F682178002C
501:101F4000941F602100600268682C7810AC197F0D26
502:101F500018680DA04000BB1F602000621A6A1C6A4E
503:101F600002621E6878108919A02D9821A9203100DD
504:101F7000A353602D7810CB1C7800BE1F086800802A
505:101F80000A68912001807F0C7800602091200180F8
506:101F90007F0D7F0C78004920146178108021006843
507:101FA00084A001004000392091200080046A108242
508:101FB0004800DC1F066A9120018078006020912093
509:101FC000018078004D207810C41BC000D21D146120
510:101FD00078108021BE60BB600000006984A1080009
511:101FE0004000F31F206085A00001226084A1010051
512:101FF0004000492084A10001C000352084A10002D6
513:10200000C00031201C6805A0C0003D20046084A0F1
514:10201000FF0086A00F00C0000C2078106321DF783D
515:1020200000000460078084A0FF00D27801809F60D8
516:102030000000400021207810642040002120DC783E
517:1020400085A00001DE787C00D7780000DB780000F6
518:10205000246084A000FF26607810AC3A40004F1D39
519:102060007810E91B78004F1D0920170078005320D5
520:1020700009200E0078005320092007007800532023
521:10208000092035007800532009203E0078005320B5
522:10209000092004007800532009200600780053200E
523:1020A000092016007800532009200100246084A034
524:1020B00000FF05A12660912000807810CB1C9120A4
525:1020C000018078004F1D78109A1978004F1DD47840
526:1020D0006DA0C0006F20002CD678DA789F600000D9
527:1020E00078007B20002C9E689F600000D678002D31
528:1020F0000260D87806ADC0007B200260D0780180F5
529:10210000D278C0008720DC7884A0FFFEDE78D87803
530:10211000602006A07C002EA030251C61A26184A155
531:10212000FFE11E6084A16000400097207E0E7810C1
532:10213000D3487F0E9665A6659A66AA66AF600000D2
533:10214000B360000014677810C51991200080A0606A
534:1021500084A00080C000BE20086884A00100400068
535:10216000BE20912001807810311A912000807810D3
536:10217000CB1C91200180D7780000DB78000078002C
537:102180003021246096A00100C000C5200080266098
538:10219000106A14689120018002A24800D4204000F7
539:1021A000D420392000027810312178003021082C09
540:1021B00091200080A06084A0008040000121006880
541:1021C00065A040000621046A7E0E71204052007016
542:1021D00084A001004000FB20487006A2C000FB2044
543:1021E000046B1C2360210263002305A0C000F620BD
544:1021F0000269602202617F0E78000D216021026277
545:1022000006697F0E78000D21006865A04000062158
546:1022100002610269C0000A210669602103600000B2
547:102220006021A06084A0008040001721086884A07D
548:10223000FCFF0A681068008012689120018008681D
549:102240008CA040004000262186A040000A6878103B
550:10225000421A9120008078106F2291200180DB7853
551:102260000000D77800007C00086005A70A60912074
552:1022700000807810CB1C91200180D87865A04000A8
553:1022800044219C60DA789F60000078003421D77880
554:102290000000DB7800007C009079947800800AA12F
555:1022A000C800502106A09678D270047805A040009E
556:1022B0005E2101800678C0005E2168005E219120C9
557:1022C00080407C00392077217800652139207D21EC
558:1022D000042705A04000762100AC6820086B0C6C38
559:1022E0001069146A0A690E6A126B166C38877800D6
560:1022F00065217C00030009000F0015001B00000091
561:1023000015001B0000007E0C78103B3C682C7F0CF5
562:102310007C001000F7216800F72129200000CB780D
563:1023200000008C7865A04000F0210920745204213F
564:1023300084A001004000BE21046086A00301C0000B
565:10234000BE21186005A0C000BE21146005A0C00019
566:10235000BE217E0D69200000186884A00100C00025
567:10236000BD210C60C6701060CA70C37020801B68ED
568:102370000100912080407F0D7810F21C7800F5213B
569:102380007F0D7810F8214000F021046294A2FF0034
570:1023900096A203004000D021046296A21001C00062
571:1023A000DE21CB780100046294A200FF1782118223
572:1023B0004000DE21FF85C000F021108202A2C8008B
573:1023C000F0217E05781007227F054000EB21E078A0
574:1023D00086A003004000F0217800DE212885C8781F
575:1023E00005A040008E21FF854000F721912080400C
576:1023F000B078D6707C00AC7BB079D47002A1C000FC
577:102400000122002305A07C004800052202A37C00D5
578:1024100002807C000120FD04042082A00500C80089
579:1024200021229120008071202000047005A0C000AE
580:1024300056220870087206A2C000562286A2080022
581:10244000C00056227120100078105B220920200065
582:10245000046086A00301C0003022286005A0C000EF
583:10246000302209200C007810761940004922C478E7
584:102470000080C67886A00200C0005622912000800D
585:10248000E3780300C7780000CC7885A00003CE78FD
586:102490009120018078005622C77800007810F21C45
587:1024A000AC79B07800800AA1C800542206A0B278A6
588:1024B00006A071201000912001807C00078104801B
589:1024C0000480B87AB47BC07CBC7D10A299A30000C4
590:1024D000A1A40000A9A500007C0009205B52912066
591:1024E00000800A207E0F7E0E71204052007086A070
592:1024F0000000C000892209201252042105A0C0005A
593:10250000892279200001307884A0C000C00089228F
594:10251000180089221B784B007F0E7F0F7C007E0FF6
595:102520007E0E7120405291200080007086A0000035
596:10253000C000A22279200001307884A0C000C00031
597:10254000A2221800A2221B784D00912001807F0E4C
598:102550007F0F7C007E129120002371204052792051
599:1025600000014B780F009800B52238787800AE2231
600:10257000A9204000007882A004004800BE22A920C3
601:1025800060009B780000AF780000AF78000070001A
602:10259000C8227800C022007882A004004800D72218
603:1025A000B77093001920F04F781013232F7001801B
604:1025B0007800E322B77000001920704E78101323C2
605:1025C0001920AF4E781013232F7000800370000085
606:1025D00078102024047084A00F007E010920FD04DF
607:1025E0000C218AA105004800F8223800FE2285A0AF
608:1025F0008062780000232800FE2285A08062780097
609:10260000002385A0C0627F0106780F7804B243786A
610:10261000D800537880000B7808004770080053708A
611:102620007F524F7000007F1200207C007E137E14CA
612:102630007E157E04A1202B01042305A09A7840007A
613:1026400033231883242318839823A82484A400FF09
614:1026500040002B2382A40001A92000012020A653C2
615:1026600005A0C00022231833780019237F047F15AA
616:102670007F147F137C008CA10F0011200101042224
617:1026800084A0F0FF05A11220781020247C001120E6
618:102690000101A92009000B8170004D237800482317
619:1026A0008CA1000E042284A0FFF105A112207C0061
620:1026B00009200101A9200500138270005E23780023
621:1026C000592394A2E000042184A01FFF05A20A2040
622:1026D0007C0011200101A9200C000B8170006F23E8
623:1026E00078006A238CA100F0042284A0FF0F05A1CA
624:1026F00012207C0011200201042284A0CFFF05A13A
625:1027000012207C000381038080A020007E0C6120C9
626:1027100000019A60AC62AC637F0C7C000381038093
627:1027200080A022007E0C612000019A60A46084A039
628:10273000DFFFAE607F0C7C000381038080A022005D
629:102740007E0C612000019A60A46085A02000AE602C
630:102750007F0C7C000381038080A020007E0C612020
631:1027600000019A60A460AE621020A460AE631820DD
632:102770007F0C7C00912000807E0C7E0E186805A0E6
633:102780004000FE2361200076781006244000E823F4
634:10279000A9200000612000757E0C781006244000FE
635:1027A000D6237F0C608C7000D4237800C923780076
636:1027B000FE237F0082A000757120405286708271D6
637:1027C000012004006E7093700F0073700000781089
638:1027D0006A227800FA23C06005A0C000FE237120A1
639:1027E00040528271002C8A70012006006E70937036
640:1027F0000F007370000078106A220120000078003A
641:102800000024012001009120018005A07F0E7F0C93
642:102810007C00042C05A040001D2460200C6006A351
643:10282000C0001A24106006A2C0001A24146006A179
644:10283000C0001A2406A078001F2400607800072436
645:1028400085A001007C00112041520C228CA10F00B8
646:1028500011203B01042284A00001400036242120E5
647:1028600004FF22210B810B810B810B818DA1000FB5
648:1028700004217C007E0EE4688CA0200040008A24A5
649:1028800084A00600C0008A241460078084A00F0082
650:10289000038003800380F0A08054047084A00A00A9
651:1028A000C0008A24087194A100FF40008A248CA1F2
652:1028B000FF0001200C0006A140007124012012003D
653:1028C00006A1400075240120140006A140007924CF
654:1028D0000120190006A140007D240120320006A13C
655:1028E0004000812478008524092012007800872484
656:1028F0000920140078008724092019007800872413
657:10290000092020007800872409203F0078008724D0
658:1029100011200000002105A20A707F0E7C006800D3
659:102920008C2491200080712000007E00187084A00B
660:102930000100C00093247F0071201000CA707F0046
661:10294000C670C3700280DB704107DF700600712023
662:1029500000001B700100912080407800AA247E10A6
663:102960007E007E12912000233C7F587E307C387D93
664:10297000C277C674CA76CE7594A53F009CA40300A6
665:1029800084A40F007900C124D324D324D3240D2898
666:10299000093AD12402250C25D124D124D124D124D3
667:1029A000D124D124D124D12478108C24078584A06B
668:1029B0001F007900D82416250D28C729C42AEC2A1F
669:1029C0008C2D37309A30FB3080313832D6320225A8
670:1029D000E9280C30F824AC3DCC3D8F3F9B3F744040
671:1029E000F824F82449414D41AA3DF824FA3EF82440
672:1029F0005E3C0C25F82478108C241800B1247F123A
673:102A0000912001807F007F107C001920494F7810B1
674:102A100013232F7001001B784F007800FA2419202F
675:102A2000AF4E781013232F7000801B78CD007800F4
676:102A3000FA24427209200F520B20000084A50100E5
677:102A4000C000723C4000332578108C2403700000D5
678:102A50004B70000043700000377000007810E039C0
679:102A60001800B12409200F520B200000687005A047
680:102A7000C000FE256C7084A0070079003C25352637
681:102A8000442550256D258F25DC25B5254425781056
682:102A9000C839092048007810D82EC0004E25037090
683:102AA00004007800FA247810C839C0006B258070C3
684:102AB000078082789B781000AB780C009B786000D0
685:102AC000AB7801005B7804000920DD007810CC2E83
686:102AD000C0006B250370040093700F007800FA2487
687:102AE0007810C839C0008D258071078182789B7865
688:102AF00010008CA11F008DA1C000AA79AB78060040
689:102B00009B786000AB7802005B7804000920DD0050
690:102B10007810CC2EC0008D250370040093700F0038
691:102B20007800FA247810C839C000B3258071078175
692:102B300082789B7810008CA11F008DA1C000AA791B
693:102B4000AB7820008471AA79AB780D009B78600087
694:102B5000AB7804005B7804000920DD007810CC2EEF
695:102B6000C000B3250370040093700F007800FA24AE
696:102B70007810C839C000DA258071078182789B7887
697:102B800010008CA11F008DA1C000AA79AB780600AF
698:102B90009B786000AB7802005B7804000920DD00C0
699:102BA0007810CC2EC000DA2588708B700000682069
700:102BB0004A700370020093700F007800FA247810B6
701:102BC000C839C000FA2488706820146F7810BD38A6
702:102BD000502C78107A3A9B781000146884A01F005B
703:102BE00085A08000AA781C6E412001008C7084A012
704:102BF0000004012004004000FC25012006007800AC
705:102C00001D277810C839C000FA249B78100068701E
706:102C10006820146F7810BD38502C78107A3A08600C
707:102C200085A010000A60246805A040001C2682A030
708:102C3000060048001A2678001C2627680500146B39
709:102C40009CA31F009DA3C000587084A0008040007A
710:102C50002A2684A6010040002C269CA3BFFFAA7B45
711:102C600031202000412001000120030078001D27B1
712:102C70001800B1244C7485A4000040004F2680A0A9
713:102C800080523020507108812AA148004626092030
714:102C9000805264210465FF85C00060262184C00045
715:102CA00040265271037000004B700000407005A078
716:102CB0004000723C7800FA244C76B0A680525071E5
717:102CC000002678004B265271682558254A75502CED
718:102CD000346085A00000C0005D2608673A7784A7AD
719:102CE0003F034000962684A72100C0005D2684A7EC
720:102CF000020040007F2684A7040040005D26BCA798
721:102D0000FBFF0A6784A70800C0005D2684A71000A7
722:102D1000C0005D2684A70002C0005D2684A70001D4
723:102D200040009626186005A0C0005D26BCA7FFFEE7
724:102D30000A67236800001C6E84A60E00186140001C
725:102D4000A6261C6002A14800A9264000A9267800FA
726:102D50005926FF81C0005926C368000084A780005F
727:102D6000C000B1260C702260BCA77FFF0A677810F4
728:102D70007A3A1800B1249B78100046A07810C83920
729:102D8000C000FA24146B9CA31F009DA3C0005870C0
730:102D900084A000804000CD2684A601004000CF26FC
731:102DA0009CA3BFFF84A610004000D5269DA3200051
732:102DB000AA7B408884A60E00C000E026BDA71000B4
733:102DC0000A6778001B2758718CA100084000CB349B
734:102DD0001120200084A60800C000F126108284A6DD
735:102DE0000200C000F1261082AA7A40887810E039EB
736:102DF000146A0C6108818CA1FF00E0A10075642CAD
737:102E0000FF8C40001227146006A2C000FC26B860A8
738:102E10000180BA60C000F7267E0C602A086085A099
739:102E200000010A607F0C780035267810C839C00090
740:102E3000FA24602A0E61AA794088327101200100CB
741:102E40007E005C7184A118004000382784A1100026
742:102E500040002B277810D036C0005B2784A10800E3
743:102E600040003827A06984A10006C00038277810E8
744:102E7000BB3578005B27A06984A1000840004F277C
745:102E80007E0C7E026029006085A000200260046143
746:102E90008DA1100006617F027F0C7810D036C00033
747:102EA0005B27A06984A100024000572778100C36E8
748:102EB00078005B2784A10004C0003427A06984A1A6
749:102EC00000104000662714698CA100FF0F81781064
750:102ED0008B237F0002708CA6E00084A66000400077
751:102EE000742786A06000C00074278DA10040FF8871
752:102EF000400079278DA104005A79B6699B7860005B
753:102F00000028AA789B78610018688DA0008084A0B2
754:102F1000FF7F1A698CA680004000982797700000F8
755:102F20008AA00D00500096278AA00C0096710120FF
756:102F30000C000C809A71AA7808800C814000D13472
757:102F40008CA1F800C000D1347E157E137E14A12020
758:102F50002B019B7800000080AC8080AD0B00982096
759:102F6000A6537F147F137F15146807808278946DB1
760:102F7000D67DDE7D986ED27EDA7E7810C839C000AC
761:102F8000CF272C7003804800C8271920AF4E781037
762:102F900013232F700080307884A0C000C000CF279A
763:102FA0009800D727086084A0EFFF0A607810E03906
764:102FB00078002325007284A2070086A00100C000CB
765:102FC000E4271B784F007810E0397800F527B46AC1
766:102FD00095A200205A7A1B784F007810E0390072D1
767:102FE000002505A64000F52784A2070079100328D4
768:102FF00080AD0900367084A2070086A00100C000E1
769:10300000FA24186000801A607800FA240B284B4BD1
770:103010004B4B3A4B4B4B0B283A4B0B2878108C24DC
771:103020007810C8397E0F79200052CC787F0F84A0A9
772:103030000100400031286C7086A00100C0002028EB
773:103040006E707800C4286C7086A00500C0002F2820
774:10305000887068201B68040017680000206885A03D
775:10306000080022686F700000112004006C7186A1B6
776:1030700001004000522886A10700C0004228092014
777:1030800038520B20050078005228092013520421E1
778:10309000092012520A20092038520B2001006F70BB
779:1030A000000073700100780054286F7000007810E1
780:1030B00087487E15A9201000392000007810B0370D
781:1030C000B8A700017000632878005B287F150070A6
782:1030D0007900672895287C287C286F2895289528D2
783:1030E0009528952821205A52042405A040009528AF
784:1030F00006ADC0007C280068222078008C2820685B
785:1031000084A00100C0008828146F7810BD387810A2
786:10311000A23478008C2860706020006802601A6A0F
787:1031200017680000206885A0080022687810DC1C61
788:10313000212000767810D12821205A527810D128E9
789:103140007E15A9200000212000757810D128208448
790:103150007000A9287800A2286120005521200200D3
791:10316000A920000118601061FF814000B82802A169
792:103170005000B82812601B600000E0AC1000700026
793:10318000C0287800AF282184C000AD287F159C702E
794:1031900084A000804000CB287810CE3A0370000055
795:1031A0004B7000007800FA247E04042405A040003F
796:1031B000E528682000687E001A6A17680000206809
797:1031C00085A0080022687810DC1C7F007800D328D6
798:1031D0007F04232000007C0082A203005000EF281F
799:1031E00078108C2400237900F228F5286829852995
800:1031F00082A202004000FB2878108C246C706F7053
801:10320000000093700000790002290A290A290C297C
802:103210004029D7340A2940290A2978108C2480773C
803:103220007810B0378077BCA7000F7810BD381860D1
804:1032300005A0400037292120007609200400112034
805:1032400010007810A029400037297E15A920000021
806:10325000212000757E040920040011201000781040
807:10326000A0297F0440003629208470003629780088
808:1032700027297F15388784A71F00C00012297800EE
809:1032800023257800232580777810BD38186005A0A5
810:103290004000662921200076092005001120200029
811:1032A0007810A029400066297E15A9200000212061
812:1032B00000757E0409200500112020007810A02947
813:1032C0007F04400065292084700065297800562914
814:1032D0007F1578002325002279006B296E2970293B
815:1032E000702978108C24092012006C7086A00200CE
816:1032F0004000792909200E00186884A00080400051
817:103300007F291A696F7000007370010078005639C8
818:103310000022790088298D2970298B2978108C2426
819:1033200078108748007086A00100C00067347810CC
820:10333000B834086084A0EFFF0A6078105A34400067
821:10334000673478003526042405A04000C32968208E
822:10335000042D7E00146806A74000AF29202D7F00B1
823:103360007800A1297F0022201A69176800002068D0
824:1033700005A222687810DC1C1060018012600860D1
825:1033800084A0EFFF0A607810B8347C0085A00100AB
826:103390007800C22900237900CA29CF29CD29682ABB
827:1033A00078108C24EC7884A00100C000E329007020
828:1033B00086A00400C000DB297800062A7810B83403
829:1033C000086084A0EFFF0A6078006734E47805A005
830:1033D000D000062A1800FA24082084A03000C0007B
831:1033E000F2291B784F007800FA24EC7884A00300BF
832:1033F0004000EE29002184A007007900FC293F2A23
833:103400004A2A302A042ABB39BB39042A592A78109F
834:103410008C24007086A00400C000202A6C7086A056
835:103420000200C000162A11200200192000007800B6
836:10343000E9286C7086A006004000102A6C7086A0F7
837:1034400004004000102AE47984A1300040002A2AB8
838:10345000EC7884A00300C0002C2A78000C300120F6
839:1034600003007800A02D186884A000804000372A4F
840:103470001B681D0078108F372B7808301B7856009A
841:103480007800FA24186884A000804000462A1B684F
842:103490001D0078108F3778008639186884A0008066
843:1034A0004000512A1B681D0078108F372B78083098
844:1034B0001B78CA007800FA24186884A000804000B5
845:1034C000602A1B681D0078108F372B7808301B7816
846:1034D0008F007800FA2484A50F00C000852A0070B0
847:1034E00079006F2A2325792A772A6734673467346D
848:1034F0006734772A78108C247810B834086084A058
849:10350000EFFF0A6078105A3440006734780035269F
850:10351000E47805A0D000062A1800062A082084A016
851:103520003000C000942A1B784F007800FA24EC7811
852:1035300084A003004000902A002184A107007900A4
853:103540009E2AB02AB42AA82AA62ABB39BB39A62AA1
854:10355000B13978108C24781097372B7808301B7885
855:1035600056007800FA24781097377800863978105A
856:1035700097372B7808301B78CA007800FA24781027
857:1035800097372B7808301B788F007800FA240023B7
858:103590007900C72ACC2ACA2ACE2A78108C2478002F
859:1035A00080311B680800A3780000E47984A1300012
860:1035B00040008031EC7884A003004000803184A179
861:1035C00007007900E02AE82AB42A302A5639BB39A4
862:1035D000BB39E82AB13978106A397800FA2482A216
863:1035E00005005000F22A78108C2400237900F52A77
864:1035F000F82A4D2D5B2D00227900FB2A152B022B7A
865:10360000152B002B322D78108C249B781800A8786D
866:1036100084A0FF0082A0200048006B378AA004002D
867:10362000C8006B377900112B6B376B376B37193745
868:103630009B781800A87984A180004000262B780090
869:103640006B37007005A0C0001C2B1120040078000F
870:10365000E93284A1FF008AA01000C8006B3779000E
871:103660002E2B402B3E2B582B5C2B172C6B376B379C
872:10367000192C6B376B372E2D2E2D6B376B376B3725
873:10368000302D78108C2484A6001040004D2B012092
874:103690000005008000803A781B788D007800FA24BD
875:1036A000186884A000804000562B1B681D0078001D
876:1036B000442B780056391B681D0078007B37206941
877:1036C000226984A60018C0009D2B206884A00100F8
878:1036D000C000A52B186886A00800C0006E2B1B68D0
879:1036E000000084A600044000132C84A68000400043
880:1036F000992B97700000186884A03F008AA00D00E5
881:103700005000992B8AA00C00967101200C000C80AF
882:103710009A719B786100AA787E157E137E14A12091
883:103720002B019B7800000080AC8080AD0B009820BE
884:10373000A6537F147F137F151B7858007800FA2456
885:1037400084A600104000A52B1B7865007800FA24A1
886:1037500084A6600040000F2C84A6000840000F2CB7
887:1037600084A60080C000B32B7800CB2BB4A6FF7FCB
888:103770005A7EB66EDC7AD879D0781B80C800BE2B12
889:10378000008084A03F0008A191A20000986B002156
890:1037900002A3B268946B002203A3AE6884A6004023
891:1037A0004000D32BB4A6FFBF5A7EB66E007086A031
892:1037B0000300C000E02B78103D4978103A4B1B788D
893:1037C00064007800FA2406A07810414CB06AAC6915
894:1037D000986C946B002205A14000EF2B002222A4DC
895:1037E00000211BA3AA6CD27CDA7CA66BD67BDE7B85
896:1037F000002305A4C000012CB5A600405A7EB66E79
897:103800001B7864007800FA241B786400002215A15C
898:10381000C0000B2C78104B4B7800FA247810964B94
899:103820007800FA241B7865007800FA241B78580089
900:103830007800FA2478108C2478007A2C206984A1EE
901:1038400000014000312C8CA1FFFE22697E0C5470D7
902:103850006020006084A0FFEF0260046084A0F5FF98
903:1038600006607F0C7800692C84A100024000692C5E
904:103870008CA1FFFD22697E0C54706020006084A042
905:10388000FFDF0260046084A0EFFF06600820482C80
906:103890007F0C84A108004000692C7810B93878109A
907:1038A000BB35FF884000692C9B7860000028AA780F
908:1038B000587EB5A604005A7E84A60004C000632C7E
909:1038C0002B7808301B7856007800FA242B780830C3
910:1038D0001B7865007800FA24587E84A60004C00096
911:1038E000722C1B7858007800FA241B786500780049
912:1038F000FA24780073377800733719200000907924
913:103900008CA10700C000882C206884A00001400022
914:10391000782C092008009B781000A87894A0FF005C
915:1039200086A20100C000BF2C0023A87C00A41820A0
916:1039300002A14000B72C48009C2C7800B92C80A331
917:10394000020002A1C800B72C20698CA1FFFC2269EB
918:103950007E0C54706020006084A0EFEF0260046071
919:1039600084A0E5FF06607F0C587EB4A6FBFF5A7E5C
920:1039700078006A2C78001B2CA824A87AF000B92CB7
921:1039800078008A2C84A2F00086A02000C0001F2DA1
922:1039900018831883002302A14000CF2C4800CF2CAD
923:1039A00078001C2D86A223004000782C1C6884A07F
924:1039B000F1FF1E68587E84A6F1FF85A0100030201C
925:1039C0005A7E086085A010000A607E0C547060204A
926:1039D00004600820482C7F0C84A110004000F32CC8
927:1039E0007810B9387810D0367800022D7E0C5470DB
928:1039F000602004600820482C7F0C84A1080040004F
929:103A0000692C7810B9387810BB35FF884000692CD4
930:103A10009B7860000028AA78B5A604005A7E84A688
931:103A20000004C000162D2B7808301B785600780053
932:103A3000FA242B7808301B7865007800FA24A87ADD
933:103A400078008A2C1883002302A14000282D48000A
934:103A5000282D78008A2C84A28000C0007B37780053
935:103A6000733778007B3778006B379B781800A8781D
936:103A700084A0FF008EA0010040003D2D78108C2412
937:103A8000A87A94A2FF00A87884A0FF008AA004006E
938:103A9000C8006B377900492D6B3708356B376536B1
939:103AA00082A20000C000532D78108C2478108F372C
940:103AB0002B7808301B7865007800FA2482A2030076
941:103AC000C000612D78108C2484A40080C000842D57
942:103AD0006C7005A040006B2D78108C24146F8277D9
943:103AE000BCA7000F7810BD38086085A021000A60CF
944:103AF000388784A71F00C0006F2D781093376F7030
945:103B00000200092038520B2009007800862D781019
946:103B10009F372B7808301B7865007800FA2482A242
947:103B200004005000922D78108C2400237900952DEC
948:103B3000982D812EB42E86A2030040009E2D781071
949:103B40008C24012000007E00C06805A04000A72D45
950:103B500003700300A06884A000204000B02D08601E
951:103B600085A002000A607F003E70007084A00700FC
952:103B70007900B72D2325C12DC12DB62FF22F232576
953:103B8000F22FBF2D78108C2484A60010C000C92D00
954:103B90007810874840005B2E68788CA0FF004000BA
955:103BA000112E86A10800C000E02D7810B8340860FE
956:103BB00084A0EFFF0A6078105A344000112E78106C
957:103BC00087487800F82D86A12800C000112E7810B3
958:103BD0008748086084A0EFFF0A60186005A04000D5
959:103BE000F82D01801A6005A04000F82D018005A085
960:103BF0004000F82D1E60206884A0010040002325AD
961:103C0000206884A0FEFF226860707E0C602000683F
962:103C100002607F0C0460026805A0002DC0000E2E1B
963:103C200002600660780023257E017810E52E7F0172
964:103C300084A600DF1E682B680000146FFF8140001F
965:103C40005B2E86A10200C0005B2E84A60008C00087
966:103C50002E2E84A6600040002E2ED878DC7A2E68A6
967:103C6000326A206884A00008C0005B2E178794A2E7
968:103C70000F0013821382138290A2805490A200003E
969:103C80001C2284A30001C000442E78004A2E10821A
970:103C9000042285A018001220118284A30004400091
971:103CA000572EA06884A00001C000572E7810692FFD
972:103CB00078002325086085A002000A60166918684C
973:103CC00084A000804000632E3C701A688CA600DF40
974:103CD0001E697810A9347810B834C000702E0860BE
975:103CE00084A0EFFF0A60206884A00100C000792E44
976:103CF0007810A23478007D2E607060200068026029
977:103D00007810DC1C7800232582A204004800872E4E
978:103D100078108C24002279008A2E852E8E2E9B2EE0
979:103D20008E2E007086A005004000972E78108F37E9
980:103D30002B7808301B7865007800FA24907807808B
981:103D4000018084A0070080A018009A78A8798CA12F
982:103D5000FF0086A103004000B02E86A100004000B5
983:103D6000B02E78006B371B7865007800FA24206845
984:103D700085A004002268FF82C000BF2E78108F3714
985:103D80007800C62E11824000C42E78108C24781042
986:103D90009F372B7808301B7865007800FA242C7048
987:103DA00003804800D62E1920AF4E781013232F70B1
988:103DB00000807810E039307884A0C000C000E22E86
989:103DC0001800E22E1A7906A07C0085A001007C0074
990:103DD00084A66000C000EF2E2F680000336800004A
991:103DE0007800682F84A60008C000112FB46884A052
992:103DF000004835A684A60008C000112F9869946A6F
993:103E00002E69326A3C7005A0C000092F002205A16E
994:103E10004000102F3F701500007086A00600400083
995:103E2000102F781087487C0084A620004000332F94
996:103E300084A6004040001F2F2F6800003368000058
997:103E40007800092FB46884A0004835A684A60040F5
998:103E5000C000192F3C7005A0C0002D2F3F70150029
999:103E6000D879DC7A2E69326A7800092F84A600405E
1000:103E700040003D2F2F680000336800007800092FB4
1001:103E8000B46884A0004835A684A60040C000372F3F
1002:103E90003C7005A0C0004B2F3F701500D879DC7A2C
1003:103EA000D078FB80C800522F008084A03F0008A17A
1004:103EB00091A200002E69326A002105A2C0005F2F86
1005:103EC0007800092F007086A006004000682F781047
1006:103ED000414C7800092F7C00086085A000020A6030
1007:103EE00084A300024000752F086085A002000A60CC
1008:103EF0001B6806008F68000093680000306A2C6918
1009:103F00003E6A42692F68030033680000376820006A
1010:103F1000976800009B682000B3680000AF6800004D
1011:103F200000707900902F23259A2FA32F982F982F78
1012:103F3000982F982F982F78108C24206884A0010047
1013:103F4000C000A32F7810A2347800A92F6070502CE5
1014:103F5000602000680260602A21205A52042405A0D3
1015:103F60004000B22F20207800AB2F222D6B200000C4
1016:103F70007C007810A9347810B834086084A0FFFD64
1017:103F80000A602B6800009B780E00146F176802000F
1018:103F90007810894C84A600084000CF2F1C698DA1A1
1019:103FA00000201E69186884A000804000DF2F687818
1020:103FB0008CA0FF004000DD2F1B681E007800DF2F63
1021:103FC0001B68000021205A52042406AD4000E62F51
1022:103FD000607400682220C36800003C6A4069326A4D
1023:103FE0002E697810DC1C780023257810E52E2B68CC
1024:103FF000000001200E00146F7810E6398CA0FF003D
1025:104000001669186884A00080400005303C701A686A
1026:104010008CA600DF1E696F700000780023250070F9
1027:1040200005A0C00012307800232506A0781087482C
1028:10403000176800001B6814008CA600DF1E692B683F
1029:104040000000206885A0FF002268007079002530FC
1030:1040500023252F302F3031303130313031302D3079
1031:1040600078108C247810B834086084A0EFFF0A60C0
1032:1040700078007234002379003A303D303F30983078
1033:1040800078108C2484A60080C0007D3000707900F8
1034:1040900046302325503050306C30503079306C3001
1035:1040A0004E3078108C2484A6600086A06000C0008A
1036:1040B0006830B4A6DFFFB4A6FFBFB5A600205A7EC5
1037:1040C000B66E1C6884A0DFFF1E68781087487810E1
1038:1040D0004B4B7800563984A6002040005A301868AF
1039:1040E00084A00080400079301B68150084A6004041
1040:1040F000400079301B68070078106A397800FA248C
1041:10410000B4A6FF7F5A7EDC7AD879D078D2791B802A
1042:10411000C8008830008084A03F0008A191A2000060
1043:10412000986B002102A3B268946B002203A3AE68CF
1044:104130001B7865007C0078108C24002379009D306A
1045:10414000A030A230EB3078108C2484A60080C00010
1046:10415000DA3000707900A9302325B330B330CF3086
1047:10416000B330D630CF30B13078108C2484A66000C4
1048:1041700086A06000C000CB30B4A6BFFFB4A6FFBFCE
1049:10418000B5A600205A7EB66E1C6884A0BFFF1E68CC
1050:104190007810874878104B4B7800563984A6002059
1051:1041A0004000BD30186884A000804000D6301B68F5
1052:1041B00007001B78CA007800FA24B4A6FF7F5A7E55
1053:1041C000DC7AD879986B002102A3B268946B002244
1054:1041D00003A3AE68D2791B7865007C00206885A0B7
1055:1041E0000400226878102139B5A6000878108F37AE
1056:1041F0002B7808301B7865007800FA2400237900BA
1057:10420000FE3001310331053178108C2478007B3782
1058:1042100084A60004C0002E31E47984A1200040006F
1059:104220001531EC7884A00300400015312B7809305B
1060:104230009B786000AB78000084A6FBFF5A78E47995
1061:1042400084A1200040002631EC7884A00300C00047
1062:104250002A31012014007800A02D84A107007900E4
1063:104260006631907A94A207009B786000A879FF815C
1064:10427000400064319B781000A87B84A30100C0003B
1065:104280005531A87BA87B86A30100C00048310920D6
1066:10429000F7FF78004E3186A30300C0005531092096
1067:1042A000EFFF7E0C54706020046004A106607F0C58
1068:1042B0009B786000AB78000084A6FBFF5A782B78CF
1069:1042C000093020698CA1FFFD8CA1FFFE22697800D6
1070:1042D00056393F2A4A2A703178316E316E3156395B
1071:1042E000563978108C2420698CA1FFFD8CA1FFFE2B
1072:1042F00022697800603920698CA1FFFD8CA1FFFE46
1073:10430000226978005639E47984A1300040008A316E
1074:10431000EC7884A00300C000B131007086A00400D6
1075:10432000C000A4316C7086A00200C0009A31112038
1076:104330000200192000007800E9286C7086A00600B1
1077:10434000400094316C7086A00400400094310070ED
1078:1043500086A000004000FA24186885A000801A6832
1079:10436000012014007800A02D84A107007900B53148
1080:1043700056395639BD315639BB39BB39563956399C
1081:1043800084A680004000EC319471FF814000EC3144
1082:1043900082A10D00D000CD31977000007800D2319D
1083:1043A00082A10C00967009200C009B786100AA790C
1084:1043B0007E157E137E149870148110A29A7280A0CC
1085:1043C0000B0000AD9820A1202B019B7800000881F4
1086:1043D000AC81A6537F147F137F157800603984A6C3
1087:1043E0000004C0002D32206884A001004000603924
1088:1043F0008CA6600084A660004000013286A06000A8
1089:10440000C00001328DA100408CA1FBFF5A79B66932
1090:104410009B786000AB7800009B786100186885A0ED
1091:1044200000801A68AA7808800C814000D1348CA1E1
1092:10443000F800C000D1347E157E137E14A1202B011C
1093:104440009B7800000080AC8080AD0B009820A653C4
1094:104450007F147F137F151468078082787800603995
1095:10446000186884A00080400034321B6808001B7864
1096:10447000C0007800FA24002379003B324032D43265
1097:104480003E3278108C24007084A0070079004532F9
1098:1044900023254F3284325A324D3223254D324D324C
1099:1044A00078108C241C6884A00020400068320860CA
1100:1044B00085A002000A6078006832C06805A0C000CC
1101:1044C000843220698DA101002269C368010000685F
1102:1044D0006A7078007E3220698DA10100226900682F
1103:1044E000066005A0C000723202601C6884A00E0045
1104:1044F00040007E321470BA68307188A1007578006F
1105:10450000803209200076042102680A2D6271B66E9D
1106:1045100084A660004000D23284A60008C000983211
1107:1045200084A6FF7FB6689468A6689868AA68781021
1108:1045300087487800D23284A620004000AD32C0689F
1109:1045400005A04000A4327810894C7800A73206A05C
1110:104550007810414CD879DC7AAA69A66A7800B3321F
1111:104560007810CA38AA69A66A7810414C84A60080DF
1112:104570004000D23284A6FF7FB668DC7AD87984A660
1113:104580002000C000CA32D0781B80C800C53200802D
1114:1045900084A03F0008A191A20000986B002102A313
1115:1045A000B268946B002203A3AE68780023257800DC
1116:1045B0007B373770000082A206005000DE32781090
1117:1045C0008C24007084A00700C0108C3A002379006E
1118:1045D000E632E9321233263300227900EC3210330E
1119:1045E0007B37F232103342338433037005000120ED
1120:1045F000107768204A707E15A92031000320000042
1121:104600000080700002337800FB327F1580AD090016
1122:10461000367017680000B76800072368000827682D
1123:10462000030078006B3778108C240370050001209C
1124:10463000107768204A7080AD09003670002279003A
1125:104640001E337B3724332433423324337B377810B3
1126:104650008C24037005000120107768204A7080AD1B
1127:10466000090036700022790032333A333833383358
1128:104670003A3338333A3378108C2478109F372B78BC
1129:1046800008301B7865007800FA2403700200807AF5
1130:1046900094A2000F9B781800A87C84A41F0015A288
1131:1046A00069200076042D082D6271682005A0400065
1132:1046B0005D33146806A240007933006878005033F7
1133:1046C000037005000120107768204A7036707E154F
1134:1046D000A920310003200000008070006E337800B4
1135:1046E00067337F1580AD09003670166AB76800071A
1136:1046F0002368000827680300B46E5A7E206884A0EF
1137:10470000000C4000D333781097377800D333037010
1138:104710000200807A94A2000F9B781800A87C84A4E1
1139:104720001F0015A2A879A8798CA1FF00E8A1007547
1140:10473000042D082D6271682005A04000A333146881
1141:1047400006A24000BE33006878009633037005006F
1142:104750000120107768204A707E15A92031000320BF
1143:10476000000000807000B3337800AC337F1580AD5B
1144:1047700009003670166AB7680007236800082768C2
1145:104780000300B46E5A7E206884A0000C4000D3332E
1146:1047900084A000084000CD3378109B377800D333D5
1147:1047A000781097378B7000007800D3337E02078231
1148:1047B00084A00F0003800380038080A080546020C9
1149:1047C000567000605A7004605E7084A660004000FD
1150:1047D0002B34986B946CAC69B06805A1C0000D34A3
1151:1047E000D27BDA7BD67CDE7CB4A6FFB75A7E84A669
1152:1047F000600086A0600040002B34C06805A0400027
1153:104800000634037003002B68000078103A4B7800E0
1154:10481000083478104B4BB5A600205A7E78002B3414
1155:10482000B0681AA3002123A4002405A340002B3460
1156:10483000D27BDA7BD67CDE7CB068B4A6FFBF5A7E22
1157:104840007E00C06805A07F0040002934037003008B
1158:1048500078103A4B78002B347810964B7F077810FD
1159:10486000BD380920650084A6040040004C34E4787B
1160:1048700084A0300040004434EC7884A00300400061
1161:1048800044342B7808300920650078004C347E0FC2
1162:1048900079200052781087487F0F400023251A792D
1163:1048A000002D4A70078284A00F00038003800380DC
1164:1048B00080A0805448207800FA24206005A04000A1
1165:1048C000663401802260086085A008000A601070CC
1166:1048D00026607C0006A078108748176800001B68D7
1167:1048E0000100236840001F680001007084A00700D9
1168:1048F000790077342325813481349E348934873498
1169:1049000089347F3478108C247810A9347810A2343C
1170:104910007810DC1C780023256C706F700000937099
1171:104920000000790090349A349A349834983498344A
1172:104930009A3498349A34790002296F700000780014
1173:1049400023251B6800007800B62F006805A0C00072
1174:10495000A734026006607C00106005A04000B234FD
1175:104960000180D000B23478108C241260086084A0DA
1176:10497000EFFF0A607C00186005A04000BE34018093
1177:104980001A607C007810E0391B6818007800F53454
1178:104990007810E0391B6819007800F5347810E03998
1179:1049A0001B681A007800F5347810E0391B680300A2
1180:1049B0007800F53480777810BD3884718CA1FF00C1
1181:1049C000E8A10075042D082D682005A0C000E7347B
1182:1049D000780023251468807206A24000EF34006836
1183:1049E0007800E03400680A201B6805008B70000026
1184:1049F0007810A934206884A00100C000FE3478102B
1185:104A0000A2347810B8341F680000236820007810A2
1186:104A1000DC1C7800232582A20300C0006B37A87D30
1187:104A2000ACA5FF00A87CA4A4FF0020698DA1800094
1188:104A3000226984A1000140006C358CA1FFFE22692F
1189:104A4000A4A4FF004000563582A40C00480029357C
1190:104A50004000293521200C002B852B8578102E381D
1191:104A6000400033357810273678005F357810E93705
1192:104A70007E0C6029046084A0F5FF06607810523631
1193:104A80007F0C20698DA100012269587EB5A6040023
1194:104A90005A7E84A60004C00050352B7808301B785D
1195:104AA00056007800FA242B7808301B7865007800CF
1196:104AB000FA247E0C6029046084A0F5FF066078105B
1197:104AC00052367F0C587E84A60004C00068351B78DF
1198:104AD00058007800FA241B7865007800FA247E0CD0
1199:104AE0005470602000618CA100104000AC35086259
1200:104AF000178294A2FF0082A20C004800803540007B
1201:104B0000803511200C00002402A2C8008535202227
1202:104B1000086294A2FF00187086A02800C000953596
1203:104B200082A21900C8009B351120190078009B351E
1204:104B300082A20C00C8009B3511200C00002202A5A7
1205:104B4000C800A03528227810ED372B852B857810EA
1206:104B50002E384000AC35781027367800B035781004
1207:104B6000E93778105236587885A004005A787F0CBF
1208:104B70002B7808301B7865007800FA247E0C6029B9
1209:104B80000060E4D0C000D535B4D0C000CF3510608F
1210:104B900084A00F00C000CF3504618CA1F5FF066131
1211:104BA0007F0C7C0011203200192000007800FC35B9
1212:104BB000A06884A00002C000CF35086294A2FF0064
1213:104BC000187086A02800C000EA3582A21900C8002B
1214:104BD000F035112019007800F03582A20C00C800D1
1215:104BE000F03511200C0008631F839CA3FF0082A3F3
1216:104BF0000C004800FC354000FC3519200C00AB7857
1217:104C00000100AB780300AB780100AA7AAA7BC0A8A8
1218:104C10000500206885A0000122687F0C7C007E0CC6
1219:104C200060298CA1F5FF06611120320019200000D7
1220:104C300078001736AB780100AB780300AB78010041
1221:104C4000AA7AAA7BC0A80500206885A00001226876
1222:104C50007F0C7C007E0C5471602178102E367F0C06
1223:104C60007C00082084A0F0FF25A4867C18609A7838
1224:104C7000AE7C1264A47884A0F8FF8CA1070005A183
1225:104C8000A67816608A78A4A40F0027840482048082
1226:104C900084A0FF0005A40E60EC788CD0C0005136D3
1227:104CA000046084A0F5FF06607C007E0C54706020D8
1228:104CB000781059367F0C7C0018609A78A47884A00C
1229:104CC000F0FFA6781260847884A0F0FF86787C00DC
1230:104CD00082A20200C0006B37A87A20698DA18000F3
1231:104CE000226984A100024000AE368CA1FFFD22693A
1232:104CF00094A2FF0082A20200C8006B377810F93638
1233:104D00007810523680A901000C207810B93878103C
1234:104D1000BB35FF884000A1369B7860000028AA7848
1235:104D2000587EB5A604005A7E84A60004C0009B36B7
1236:104D30002B7808301B7856007800FA242B7808303E
1237:104D40001B7865007800FA24587E84A60004C00011
1238:104D5000AA361B7858007800FA241B786500780082
1239:104D6000FA2482A20200C800B63684A201004000E4
1240:104D7000C036547188A100000C218CA10020C00015
1241:104D8000C036112000007810DB377810F936781023
1242:104D90005236587885A004005A782B7808301B7852
1243:104DA00065007800FA247E0C7E02602900601120E4
1244:104DB0000100ECD0C000E936BCD0C000E73614607A
1245:104DC00084A04000C000E7368CA1EFFF066106A07A
1246:104DD0007800F63611200000AB780100AB780200B5
1247:104DE000AB780300AA7AC0A80400206885A000025E
1248:104DF00022687F027F0C7C007E0C5470602078104B
1249:104E000000377F0C7C00FF824000053711204000F6
1250:104E1000186080A002009A78A47884A0BFFF05A241
1251:104E2000A6788A781660EC788CD0C00018370460B9
1252:104E300084A0EFFF06607C007E00007086A0030067
1253:104E4000400022377F00780025377F0078006737E1
1254:104E500084A6200040006737887884A04000400086
1255:104E60006737B87B84A33F001B83C80035370080B9
1256:104E700005A040004B371B83C8003E37018040002F
1257:104E8000633784A6004040004B37B8781B80C800C9
1258:104E90004737008084A03F00C0006337B4A6FFBF3F
1259:104EA0005A7ED879DC7A0120010008A1C800573762
1260:104EB00091A20000D279DA79D67ADE7A7810414C64
1261:104EC0001B7864007810C64A7800FA241B786400C6
1262:104ED0007800FA241B7865007800FA247810A3374C
1263:104EE0002B7808301B7865007800FA2478108F370B
1264:104EF0002B7808301B7865007800FA2427680200B8
1265:104F000078109737E47884A0300040002325EC78AF
1266:104F100084A00300400023252B7808301B7865000F
1267:104F20007800FA24012005007800A53701200C0044
1268:104F30007800A537012006007800A53701200D0074
1269:104F40007800A537012009007800A5370120070067
1270:104F50009B781000AA789B786000AB780100B5A61A
1271:104F600004005A7E7C007E073F87BCA70F003B876A
1272:104F70003B870387E0A08054B8A720009A7FA479DC
1273:104F800084A10F004000C93784A1F0FFA678126009
1274:104F9000046085A008000660388738879A7FA47966
1275:104FA00084A140004000D93784A1BFFFA6781660D5
1276:104FB000046085A0100006607F077C009B781000CD
1277:104FC000AB780100AB780200AB780300AA7A9B783B
1278:104FD0006000AB7804007C00212000002920320012
1279:104FE0009B781000AB780100AB780300AB78010030
1280:104FF000AA7DAA7C9B786000AB7805007C007E15BA
1281:10500000078084A0FF000380038080A020009A789E
1282:10501000A4798CA1F0FF01204652042082A0280030
1283:10502000400017382120A03819201400A9200C00B6
1284:1050300078001D382120AC3819201900A9200D0056
1285:1050400011206400042484A0F0FF06A140002C3845
1286:105050002084002310A270002C3878001F387F15A0
1287:105060007C007E15092046520C2182A132004800A6
1288:105070004238400046380920923819201100A920F2
1289:105080000E00112032007800583882A1280040001C
1290:1050900050380920A03819201400A9200C00112034
1291:1050A0006400780058380920AC3819201900A9206C
1292:1050B0000D0011206400002202A54000683848005D
1293:1050C00068380881002310A27000653878005838CD
1294:1050D0007F1506A07C007F1582A56400C800773884
1295:1050E000087885A070000A78447085A0700046702A
1296:1050F00078007738EC7884A0000340007F380421E2
1297:105100007800903804219EA00211C0009038012040
1298:10511000FD04042082A0050048008F380120011200
1299:1051200078009038042105A07C0002110230023280
1300:105130000342034404540456056605680678067A5B
1301:10514000070C070C070E0232024202520262027280
1302:10515000056605760578057A057C057E057F0222C1
1303:105160000232024202520454046404740476047845
1304:10517000047A047C047E047F9B78100046A07C00A7
1305:1051800084A7000F0B8084A71F0003800380038087
1306:10519000038005A1E0A000557C00D879DC7AD078A6
1307:1051A0001B80C800D138008084A03F0008A191A2D4
1308:1051B00000007C007E0F79200001092040529120E0
1309:1051C000008004217900E1381739EB38EB38EB38EF
1310:1051D000EB38EB38EB381B3978108C244B78040013
1311:1051E000487884A00400C000ED384B780800487867
1312:1051F00084A00800C000F438B46885A00040B668F8
1313:10520000587885A000405A78307884A08000C0008B
1314:105210001739180017391C6884A02000C000153900
1315:105220007E0E7120405278106A397F0E780017394F
1316:105230001B78CA00912001807F0F7C00B3700000B2
1317:105240007810443B780017397E0C1468078084A0DE
1318:105250000F00038003800380E0A08054046084A0DA
1319:105260000A00C0005439086194A100FF400054397D
1320:105270008CA1FF000120190006A140004339012044
1321:10528000320006A14000473978004B390920200040
1322:1052900078004D3909203F0078004D391120000079
1323:1052A000002105A20A60046085A0020006607F0C50
1324:1052B0007C001B7865007800FA242B7808301B7876
1325:1052C00065007800FA241B7858007800FA242B78BF
1326:1052D00008301B7856007800FA24092020520C214F
1327:1052E00086A1000040007E3986A10100400081397E
1328:1052F000092038520B200B006F7001001B7848000A
1329:105300007C001B78C4007C00092038520B200A0066
1330:105310007C00092020520C2186A100004000A13908
1331:1053200086A1010040009B39092038520B200B0058
1332:105330006F7001001B7848007800FA240920385269
1333:105340000B200A007800FA242B7808301B78C40060
1334:105350007800FA241B78CA007800FA242B780830E9
1335:105360001B78CA007800FA241B788F007800FA2492
1336:105370002B7808301B788F007800FA24186884A0F6
1337:1053800000804000C2391B681D006F7001001B784F
1338:1053900048007800FA247E00307884A0C000C00065
1339:1053A000DE39087884A0FCFF0A78050005000500B6
1340:1053B0000500EC7884A021004000DE3944700A78B2
1341:1053C00005A07F007C00447085A0020046700A782A
1342:1053D0007C007E00307884A04000C000E73998004F
1343:1053E000F2397F009A78AC787C00087884A0FDFFC1
1344:1053F0000A780500050005000500EC7884A021006E
1345:105400004000013A9800FF397F009A78AC787E001E
1346:1054100044700A787F007C00EC7884A00200C00011
1347:10542000714884A77D00C000153A002778108C24AD
1348:1054300084A70100C0000C3084A770004000253A0A
1349:105440007E0C602D682F78103724782D682C7F0C07
1350:1054500084A708004000323A4B780800EC7884A01A
1351:105460000300400023257800563984A7040040003B
1352:10547000653AB87884A001404000653A4B7808004E
1353:10548000EC7884A0030040002325E47884A0070082
1354:1054900086A00100C000653AC07885A00048302091
1355:1054A0005A7E1B78CA007800FA244B7808001868E6
1356:1054B00084A000804000613A1B68150084A600406B
1357:1054C0004000613A1B68070078106A397800FA24B6
1358:1054D0001B680300587884A0003F1E682F680000F6
1359:1054E000336800004B780800EC7884A0030040008B
1360:1054F000062A1800FA2478007337146B078384A0F7
1361:105500000F0003800380038080A080546020482027
1362:10551000567000605A7004605E70602A7C007900EA
1363:105520008E3A963A973A963A993A963A963A963AFF
1364:105530009E3A7C007810B8347810874838700A603A
1365:105540007C00A07005A04000AB3A68207810D31B07
1366:105550007810FE4778100548A37000007C007E0E8E
1367:105560009120008071204052007086A00700C0008A
1368:10557000C23A1061BC7006A1C000C23A7F0E78101A
1369:10558000E01B7810C83A06A07C00912001807F0EB5
1370:1055900085A001007C007E0F7E0E712040527800B5
1371:1055A00097225B780000AF700E00092000017E0199
1372:1055B000A0706DA04000DD3AA37000007800E33ACF
1373:1055C000B370000078100C1C4000E93AAC702668FB
1374:1055D0007810C63B7800DD3A7F017E157E0C7E0D8B
1375:1055E000A920080061201076006005A102601C60FF
1376:1055F0006DA04000013B00681E607810AC19086087
1377:1056000000800A607800F43A18606DA040000B3BFF
1378:1056100000681A607810AC197800013BE0AC080013
1379:105620007000113B7800F13A9C7084A0008040002B
1380:10563000183B7810443C7F0D7F0C7F157C007E1258
1381:1056400091200023046884A00F007900243B343BA0
1382:10565000343B343B343B343B343B363B3C3B343BC8
1383:10566000343B343B343B343B3E3B343B363B78109D
1384:105670008C247810D3457810AC197800423B276809
1385:105680000B007810D3457810C63B7F127C007E1249
1386:10569000912000239800603B307884A0C000C000B7
1387:1056A000603B7E0D78101248002D2E680920040002
1388:1056B00001200000276884007810C7477810C63B97
1389:1056C0007F0D7800943B487985A100404A78980086
1390:1056D000693B4A7978004E3B287886A03418C00090
1391:1056E000723B85A104007800793B287886A01418C5
1392:1056F000C000663B85A10C004A789B780E00AB7811
1393:105700000200587884A0FF0085A000045A78B47085
1394:1057100080A091001A78276884022C683668306867
1395:105720003A6809200400012000007810C7477F1262
1396:105730007C007E0D146B7810701C4000A33B682029
1397:10574000276802007810C63B7800983B7F0D7C00EC
1398:105750007E0D146B286CA4A4FF0078101C1C400064
1399:10576000B33B6820276802007810C63B7F0D7C00A1
1400:105770007E0D146B9CA3FF007810481C4000C43BB6
1401:105780006820276802007810C63B7800B93B7F0D7F
1402:105790007C007E0C146978103B3C04698CA1FF00EE
1403:1057A00086A106004000E13B86A10D004000003CC0
1404:1057B00086A11700C000DD3B7810AC197800DF3BF4
1405:1057C0007810DE1C7F0C7C00046001804800FE3BEA
1406:1057D00006600920000084A60100C000EE3B8DA1F8
1407:1057E000008084A604004000F43B8DA102001E69E5
1408:1057F0002368000004710F81186805A11A687800F9
1409:10580000DD3B78108C24186005A0C0000F3C0860B8
1410:10581000018048000F3C0A601C600268002D1E6079
1411:105820007800253C88AC0600042105A04000183C07
1412:1058300008207800113C02680A2D086001804800A9
1413:10584000DF3B0A601860682000681A607800093C35
1414:105850007E157E137E147E0C7E0D78108919C00093
1415:10586000303C78108C24A02D7F13A9203100A35345
1416:105870007F0C7F147F137F157800DD3B84A11F0010
1417:1058800003800380038080A0107660207C001920B4
1418:105890005152042385A001001A201920020104237B
1419:1058A00085A001001A207C0019205152042384A0F5
1420:1058B000FEFF1A2019200201042384A0FEFF1A20F3
1421:1058C0007C0090798CA1F8FF9279B47080A0D80008
1422:1058D0001A787800FA24A370000003700000437067
1423:1058E0000100377000001800B12478100C1C400033
1424:1058F000993C09200F520B200000BC686020006119
1425:1059000084A1000340008D3C27680E0084A00002A3
1426:105910004000893C276817007810C63B7800683C37
1427:10592000007086A00700C0000D3D002DA27080AD64
1428:105930000F0036707800A03C407086A00100400047
1429:1059400033257800FA24312000001C6984A102006C
1430:105950004000A93CB5A6040084A1C00003800380D8
1431:10596000078080A0A63D042035A6206884A00004FE
1432:105970004000C13C9B781800AB7803009B78810005
1433:10598000AB780100B5A60050206884A000804000DC
1434:10599000CF3CB5A600049B780E0024680780AA7847
1435:1059A0007800EF3C1C68FCD0C000DD3CB5A60008C8
1436:1059B0002068C4D04000EF3CB5A600407800EF3C22
1437:1059C0002068C4D04000E53CB5A600407800EF3C1C
1438:1059D0009B781800AB7802009B788100AB780100BF
1439:1059E000B5A6001084A600024000093D2C68D278BC
1440:1059F0003068D67884A600014000073D2C6884A05A
1441:105A000001004000073D887884A040004000073D29
1442:105A1000B5A600807810F6475A7EB66E78003548F5
1443:105A20007810C839C000A03D2C70048048001B3D90
1444:105A30001920494F781013232F70010041200100D5
1445:105A4000312000109B781800146884A01F0085A0E6
1446:105A50008000AA781C6984A102004000343DB5A6EC
1447:105A60000400AB7820002868AA78C0A802001C684F
1448:105A7000F4D040003D3D502C78107A3A781002471F
1449:105A8000206884A0008040004B3DB5A600049B78B0
1450:105A90000E0024680780AA787800523D1C6884A014
1451:105AA0000080C000523DB5A60008206884A0000117
1452:105AB0004000593DB5A600401C6884A0C00003808A
1453:105AC0000380078080A0A63D042035A684A600019F
1454:105AD0004000733D2C6884A001004000733D88782D
1455:105AE00084A040004000733DB5A600809B787E00F6
1456:105AF000AE7EB66E14680780AA7882781028AA7ADB
1457:105B0000307884A0C000C000A03D1800A03DB47053
1458:105B100080A0DD001A787810E03984A600024000E9
1459:105B2000943D2C68D2783068D6787810F647002DEE
1460:105B3000A2704A701068BE700370070080AD0F003D
1461:105B400036707800FA247810D31B7810E03978008A
1462:105B5000FA24000000030002000078108C240023C7
1463:105B60007900AF3DB23DB23DB43D78108C24781041
1464:105B70000548246984A1FF0086A00A004000C63DB4
1465:105B800084A100FF85A00A0026687810D31B780046
1466:105B9000683C01200A00781097477800683C82A290
1467:105BA00005005000D23D78108C24007084A00700BE
1468:105BB000C0108C3A78108919C000F43D6920FFFFAD
1469:105BC00084A604004000E53D012000287800E73D60
1470:105BD00001200008B47188A191009B780E00078015
1471:105BE000AA78312000045A7E1A797800FA240768CE
1472:105BF00006010B6800009F6800002768000086A36C
1473:105C00000200C000153E86A20200C000153EA0782A
1474:105C100005A0C000153E84A40080C000153EE478B5
1475:105C200084A008004000153EB5A608001920000019
1476:105C300078101742002DA2704A7003700700377069
1477:105C40000000246884A080004000273E7810CD42E8
1478:105C50007800FA24002379002A3E2D3EAE3EC73E4E
1479:105C600000227900303E353E453E6B3E773E9A3EFF
1480:105C70002920010026A0112000007810F3437900AC
1481:105C80003E3E433EFA24683C433E433E78108C241B
1482:105C900090798CA10700C0004C3E0920080011201B
1483:105CA000010084A604004000543E1120030020227D
1484:105CB0002AA1112001007810F34379005C3E613E77
1485:105CC000FA24683C693E633E78003B48AB70673E0F
1486:105CD0007800FA247800613E78108C2484A61000A5
1487:105CE0004000753E78109C424000753E7800FA24D2
1488:105CF00078000D43006084A002004000943EB47020
1489:105D000080A0CD001A787E0D78101248002D2E68E4
1490:105D1000276800007810C63B7F0D7810AC1903701F
1491:105D20000000377000004B7000007800683C84A6CB
1492:105D30000400C0009A3E78003B48006084A0040044
1493:105D4000C000AC3E006084A001004000AC3EAB70DF
1494:105D5000AC3E0120070078108F477800414878005A
1495:105D60003B4800227900B13EB63EB83EB63EB63E54
1496:105D7000B63E78108C24A770BC3E78004748E47883
1497:105D800084A00800C000B83E78108147AB70C53EC3
1498:105D900078003B4800227900CA3ECF3ED13ED13E3A
1499:105DA000CF3ECF3E78108C24E47884A008004000D9
1500:105DB000E63EA770DA3E78004748112004007810CC
1501:105DC000ED437900E03EE63EFA24683CE63EF03ED4
1502:105DD000F43EAB70EE3E0120030078108F47780050
1503:105DE000414878003B48AB70E63E7800FA24AB703F
1504:105DF000F83E7800FA247800EE3E82A203005000BC
1505:105E0000003F78108C2486A30200C000193F86A2B0
1506:105E10000200C0001F3FA07805A0C0001F3F84A45F
1507:105E20000080C0001F3FE47884A008004000193FB4
1508:105E3000B5A608001920000084A6080040001F3FF6
1509:105E4000781079421068BE70037007000023790053
1510:105E5000263F293F563F5E3F002279002C3F313FCD
1511:105E60002F3F4A3F78108C249079ACA1070026A0E0
1512:105E7000112001007810F34379003B3F403FFA24A2
1513:105E8000683C483F423F78003B48AB70463F780053
1514:105E9000FA247800403F78108C2484A6100040003B
1515:105EA000543F78109C424000543F7800FA24780018
1516:105EB0000D4300227900593F5C3F5C3F5C3F781006
1517:105EC0008C2400227900613F643F663F663F781072
1518:105ED0008C24E47884A0080040007B3FA7706F3FCB
1519:105EE00078004748112004007810ED437900753F91
1520:105EF0007B3FFA24683C7B3F853F893FAB70833F03
1521:105F00000120030078108F477800414878003B4813
1522:105F1000AB707B3F7800FA24AB708D3F7800FA2499
1523:105F20007800833F00237900923F973F993F953F48
1524:105F300078108C24A4707A00A4707A0082A20200E7
1525:105F40005000A13F78108C2484A600024000AB3F93
1526:105F50007810FE477810D543781005480023790063
1527:105F6000AE3FB13FD93F3F4086ADFFFF4000683CA8
1528:105F700086A201004000BB3F78108C2484A600025A
1529:105F80004000C33F7810FE4778100548012001000B
1530:105F900078109747B87884A001C04000D53F487872
1531:105FA00085A008004A78487884A00800C000D03F47
1532:105FB000037000007800683C00227900DC3FDE3F7F
1533:105FC0000F40A770E23F7800474811200D0078107D
1534:105FD000ED437900E83FEF3FFA24683CF73FFF3F8D
1535:105FE00005400740B4A6FF00B5A60004B66E5A7E71
1536:105FF00078003548B4A6FF00B5A60004B66E5A7EF8
1537:1060000078003548AB7003407800FA247800EF3F01
1538:1060100078108C24AB700B407800FA2478104D482F
1539:106020007800FA24A7701340780047481120120026
1540:106030007810ED43790019401F40FA24683C2B404A
1541:1060400033403940B4A6FF00B5A60004B66E5A7EB0
1542:10605000B47080A0AA001A787800FA24B4A6FF00D1
1543:10606000B5A60004B66E5A7E78003548AB7037404E
1544:106070007800FA2478001F40AB703D407800FA2485
1545:1060800078002B4086A201004000454078108C2407
1546:10609000A770494078004748112015007810ED435B
1547:1060A00079004F405440FA24683C62406E40B4A6E8
1548:1060B000FF00B5A60004B66E5A7E3B780113B4709B
1549:1060C00080A0B5001A787800FA24B4A6FF00B5A61F
1550:1060D0000004B66E5A7EB47080A0AA001A787800C8
1551:1060E000FA24AB7072407800FA247800544082A2FF
1552:1060F000030050007A4078108C24002379007D4002
1553:106100008040B740144186A20100400086407810CC
1554:106110008C24046884A0FF0086A00600C000934081
1555:106120007810C63B037000007800683C3B680000B4
1556:106130003768000084A600024000A1407810FE47A6
1557:106140007810D54378100548012001007810974752
1558:10615000B87884A001C04000B340487885A008000A
1559:106160004A78487884A00800C000AE400370000060
1560:106170007800683C00227900BA40BC40EF40A7702C
1561:10618000C0407800474811200D007810ED43790099
1562:10619000C640CD40FA24683CD540DD40E340E540B0
1563:1061A000B4A6FF00B5A60008B66E5A7E7800354842
1564:1061B000B4A6FF00B5A60008B66E5A7E7800354832
1565:1061C000AB70E1407800FA247800CD4078108C2440
1566:1061D000AB70EB40781005487800FA2478104D48F1
1567:1061E0007800FA24A770F340780047481120050092
1568:1061F0007810ED437900F940FE40FA24683C0641EE
1569:106200000E41B4A6FF00B5A60008B66E5A7E78000F
1570:106210003548B4A6FF00B5A60008B66E5A7E7800D1
1571:106220003548AB7012417800FA247800FE4086A20F
1572:10623000010040001A4178108C24A7701E4178009C
1573:106240004748112006007810ED4379002441294188
1574:10625000FA24683C2F413941B5A60008B66E5A7E33
1575:1062600078003548B4A6FF00B5A60008B66EB5A6FE
1576:1062700000405A7E78003548AB703D417800FA24E2
1577:106280007800294100237900424147414541454179
1578:1062900078108C2478108C240023A87105A07A0132
1579:1062A0001068BE7082A203005000554178108C2403
1580:1062B0000023790058415B4169418B4184A600026B
1581:1062C000400063417810FE47781005480120010026
1582:1062D000781097477800FA2496A202004000724195
1583:1062E000FF824000724178108C24A77076417800BC
1584:1062F0004748112018007810ED4379007C41814116
1585:10630000FA24683C83418541780035487800354857
1586:10631000AB7089417800FA2478008141002279002D
1587:106320008E419041A941A7709441780047481120BF
1588:1063300017007810ED4379009A419F41FA24683C98
1589:10634000A141A3417800354878003548AB70A7419A
1590:106350007800FA2478009F4184A40080C0000542A0
1591:1063600084A600014000B5417810FE477810D5435F
1592:10637000D878D278DC78D678B4A6FFEF5A7EA770AA
1593:10638000C0417800474811200D007810ED43790096
1594:10639000C641CD41FA24683CCD41F341F941FB416E
1595:1063A000D878DC7905A1C000DF41B87884A01F004F
1596:1063B000C000DF41B3700000587884A0FFFD5A7818
1597:1063C0007800354884A600014000F141487885A056
1598:1063D00008004A787810BC472C68D2783068D678A4
1599:1063E000B37000007810F64778003548AB70F7417D
1600:1063F0007800FA247800CD4178108C24AB700142EB
1601:10640000781005487800FA2478104D487800FA246E
1602:1064100078100548AB700F420120030078108F47B9
1603:10642000780041487810F6472C68D2783068D678E2
1604:1064300078003548B8701268BE700080BA701B686A
1605:10644000000084A6080040003A427E157E137E14A8
1606:106450009078048004800480048084A00F001A686F
1607:10646000AC809B78000080AF2B00982080AD0B00A3
1608:10647000A020A5537F147F137F15C4A6000F84A608
1609:106480000200C00049422C690D810D810D8184A15B
1610:106490000700082078005C429B781000AC7984A14A
1611:1064A000200040005C427E01092005000120003DE3
1612:1064B0007810C747246885A03B0026687F0184A127
1613:1064C0001F0005A8166878103B3CBE6884A604002F
1614:1064D00040006D428CA100FFA87884A0FF0005A1B8
1615:1064E0002A68B4A6FF00006084A00800400077423C
1616:1064F000B5A60040B66E7C007E157E137E1418692A
1617:106500009078048004800480048084A00F007E00C2
1618:1065100000A11A687F000080048040009842A820F3
1619:10652000048180A00B0000ADA0209B78000080AF0C
1620:106530002B009820A5537F147F137F157C002C68B7
1621:1065400084A02000C000A4420C627800A542106222
1622:10655000186B002302A24000C542182082A30E003F
1623:106560004800B5424000B54219200E007800B942FB
1624:10657000587884A0EFFF5A783B78011B937800008D
1625:10658000A27BB47080A08E001A7885A001007C00E8
1626:10659000587884A0EFFF5A789378000006A07C001A
1627:1065A00004698CA1FF0096A107004000DA4296A181
1628:1065B0000F004000DA4207681701146978103B3C6D
1629:1065C00000610481C800F5421C6005A04000E9425A
1630:1065D000012000087800F7427E0D24687E007810C4
1631:1065E00012487F002668002D2E687810C63B7F0D6C
1632:1065F0000120000224698CA1FF000DA126690780FB
1633:106600009B780E00AA78206885A00080226831203F
1634:106610000004B66E5A7EB47188A191001A797C008C
1635:10662000C4A6000F84A60200C00021432C690D817E
1636:106630000D810D8184A10700082005A81668781037
1637:106640003B3CBE6878002443146978103B3C0061F1
1638:106650000481C800824384A10003400030430768DE
1639:10666000170178004E43046005A0C0005743076837
1640:1066700017011C6005A0C00044437E0D781012482D
1641:1066800027683400002D2E687810C63B7F0D84A645
1642:10669000040040004E43312000040120002878000F
1643:1066A00052433120000401200008B47188A19100F8
1644:1066B0007800B043186005A0C00044431C6005A0EA
1645:1066C000C00044439F68000027683D0084A6010085
1646:1066D0004000BE4394D6C0007B430061D4D140004B
1647:1066E0007B432C698CA1FF004000BE4386A10300C0
1648:1066F0004000BE4386A112004000BE43B5A600087C
1649:10670000B47188A1AE007800B94307681701312041
1650:1067100000042C698CA1FF0086A11200C0009343E5
1651:106720000120CB43092001007800A44386A1030087
1652:10673000C0009D430120CC43092012007800A443EF
1653:1067400001200002B47188A191007800B043781054
1654:10675000E147A37800001C6885A040001E68B47162
1655:1067600088A1DA0006A0266807809B780E00AA7828
1656:10677000206885A000802268B66E5A7E1A7978005B
1657:10678000FA24B66E7810C63B1068BE70037007001E
1658:10679000A37000004B7000007800FA242300700002
1659:1067A00005000000000A00000000250000000000B5
1660:1067B0003B6800003768000084A600024000EC43FC
1661:1067C000B8788CA01F0084A000804000E5430881B9
1662:1067D000D87800A13668DC7881A000003A687C0097
1663:1067E00090790F81ACA507002120000080A4100043
1664:1067F0009A78A8798CA1FF0084A18000C0001B4476
1665:1068000082A12000C800394482A11200C80081473B
1666:106810000021791009447C008147EB45814781477D
1667:10682000464449448344B944ED44F0448147814798
1668:10683000A44414454E4581478147744584A12000F6
1669:10684000C000A8458CA11F00146884A01F0006A1E9
1670:1068500040003644B47080A0CD001A7801201400A6
1671:106860007810974778100548037000000120020057
1672:106870007C00012000007C0082A12400C800814728
1673:1068800084A10300791009447C0081478147814736
1674:106890008147781081477C00002279004C4477457D
1675:1068A0007745704470447044704470447044704440
1676:1068B00070446E4470446544704470447044704445
1677:1068C000704478447B4477457B4470447044704402
1678:1068D0007E0C7E07146F7810B0377F077F0C78002E
1679:1068E000704478108E462768B30209200B000120FF
1680:1068F00000487800AB45781073477C002768930008
1681:1069000009200B000120004878009345582D0468A9
1682:1069100084A0FF0086A00600C0008D440768170110
1683:106920002768020078101248276836003269002D67
1684:106930002E687E0D7810963B7810D345682B781022
1685:10694000C63B7F0D7810C63B012002007C0078100A
1686:10695000D3450120170078109747A3700000092045
1687:1069600038520B200600AF70170009200002781083
1688:10697000D43A012001007C0000227900BC44774514
1689:10698000A845A845A845DD44BA45E544BA45BA45F9
1690:10699000BD45BD45C245C245D544D544A845A845D9
1691:1069A000BA45A845E5447745E544E544E544E54472
1692:1069B0002768840009200B00012000437800CC45A3
1693:1069C00027680D0009200B00012000437800AB452B
1694:1069D0002768930009200B000120004378009345AD
1695:1069E000012000007C0000227900F34477450C452B
1696:1069F0000C450C450C45BA45BA45BA45BA45BA45A9
1697:106A0000BA45BA45BA450C450C450C450C45BA4546
1698:106A10000C450C45BA45BA45BA45BA45774527688D
1699:106A2000930009200B00012000437800934584A6C1
1700:106A30000400C0002845046884A0FF0086A006006A
1701:106A4000C00081477810D345076817017810C63B0E
1702:106A5000012002007C00006084A004004000814707
1703:106A6000582D046884A0FF0086A00600C0003745AA
1704:106A70000768170127680200781012482768360057
1705:106A80003269002D2E687E0D7810A53B7810D34515
1706:106A9000682B7810C63B7F0D7810C63B01200200A2
1707:106AA0007C00006084A0040040008147046A94A236
1708:106AB000FF0086A20600C0005C4507681701276832
1709:106AC0000200582D78101248276836003269002DD0
1710:106AD0002E687E0D7810B53B7810D345682B781062
1711:106AE000C63B7F0D7810C63B012002007C00781069
1712:106AF00081477C00B47080A0CD001A78012001008D
1713:106B000078109747781005480370000001200200B4
1714:106B10007C007810C7477810FE477810D54378106E
1715:106B2000CD4278100548012001007C007810C7474D
1716:106B30007810FE477810D543B47080A0CD001A7845
1717:106B40000120130078109747781005480370000063
1718:106B5000012002007C00781081477C007810C74734
1719:106B60007810FE477810D5437810CD42781005484C
1720:106B700078104D48012001007C00012003007C00BA
1721:106B800078108E46012000007C007E0C7E07146F7A
1722:106B90007810B0377F077F0C012000007C00781050
1723:106BA000C74778108147012006007C0004698CA14A
1724:106BB000FF0086A107004000DE4586A10F00C0004F
1725:106BC000E2457810FE477810D543B47080A0CD0020
1726:106BD0001A7878100548037000007C00A87A94A207
1727:106BE000FF00A87884A0FF008AA00400C8008147A5
1728:106BF0007910F8457C008147FC458147954682A283
1729:106C0000030040000346781081477C00A87DACA5B6
1730:106C1000FF00A87CA4A4FF00B86984A10001400083
1731:106C200042468CA1FFFEBA69A07805A0C00042468A
1732:106C3000A4A4FF004000364682A40C0040001F467A
1733:106C4000C80029462B852B8578102E384000294610
1734:106C5000781027367800384678106047781052361A
1735:106C6000B8698DA10001BA69B5A600105A7E7800F6
1736:106C70003B4678105236B4A6FFEF5A7EB47080A01F
1737:106C800091001A78012001007C007E0C7810824669
1738:106C90000062E4D2400073460862178294A2FF00AB
1739:106CA00082A20C00480055464000554611200C00B9
1740:106CB000002402A2C8005A462022086294A2FF00C3
1741:106CC0001C7002A2C80062461C72002202A5C80005
1742:106CD00067462822781064472B852B8578102E383C
1743:106CE0004000734678102E3678007746781060475B
1744:106CF00078105936B5A600105A7EB47080A0B9003D
1745:106D00001A78012004007F0C7C007E001468078044
1746:106D100084A00F00038003800380E0A080547F00E4
1747:106D20007C007E0C78108246781059367F0C7C00EF
1748:106D300082A20200C0008147A87A94A2FF00B8692D
1749:106D400084A100024000CC468CA1FFFDBA69A07866
1750:106D500005A0C000CC4682A20200C8006B377810A4
1751:106D60002A477810F9367810523684A60001400080
1752:106D7000C2462C6884A001004000C246FCC6887848
1753:106D800084A040004000C246FDC6B5A600105A7E51
1754:106D9000B47080A091001A78012001007C007E0C64
1755:106DA0007810824684A2FEFF4000D74611200100E1
1756:106DB0007800DB4684A201004000E1460061ECD18E
1757:106DC000C000E1461120000078101C477810003701
1758:106DD0007810593684A600014000F7462C6884A03C
1759:106DE00001004000F746FCC6887884A040004000BF
1760:106DF000F746FDC6B5A600105A7EB47080A0B90053
1761:106E00001A78012004007F0C7C007E0C6029006051
1762:106E10001120010084A00020C0000D4711200000B7
1763:106E2000AB780100AB780200AB780300AA7AC0A867
1764:106E30000400B86885A00002BA687F0C7C009B78CB
1765:106E40001800AB780100AB780200AB780300AA7A97
1766:106E50009B788100AB7804007C007E0C547060202D
1767:106E6000006084A00010C000384729203200212093
1768:106E70000000780058470865ACA5FF00187086A090
1769:106E80002800C000484782A51900C8004E472920A5
1770:106E9000190078004E4782A50C00C8004E472920F3
1771:106EA0000C0008642784A4A4FF0082A40C004800FE
1772:106EB000584721200C0078106447B86885A000016D
1773:106EC000BA687F0C7C0021200000292032009B78CA
1774:106ED0001800AB780100AB780300AB780100AA7D05
1775:106EE000AA7C9B788100AB7805007C000120030020
1776:106EF00078108F47B5A600105A7EB47080A0B900F4
1777:106F00001A78012005007C000120070078108F47C7
1778:106F1000B5A600105A7EB47080A0B9001A7801207E
1779:106F200004007C009B781800AA789B788100AB78DD
1780:106F300001007C0004698CA1FF0096A107004000BD
1781:106F4000A54796A10F004000A5477810AC197C001A
1782:106F5000246994A13F00C000AE478CA1C0FF05A1E9
1783:106F600026687810C63B1C6984A100014000BB471D
1784:106F7000146978103B3C0462108206627C002C6924
1785:106F800034682E6812A13069386832681BA100A2EB
1786:106F900001A37C007E0CE0AD180003607000066168
1787:106FA0000B6000000F60000A136000001760000013
1788:106FB00007801A601F600000236000007F0C2468B7
1789:106FC00085A0800026687C007E157E137E149820A4
1790:106FD00080AF2D00A020AC814000EC47A65384A1D7
1791:106FE00001004000F2470433BE787F147F137F1501
1792:106FF0007C00B07005A0C0108C24B37000807800B5
1793:107000004B4BB071FF81400004487810414C7C002C
1794:10701000B071FF8140001148487885A008004A7887
1795:10702000B3700000781087487C007E0C7E0D7810CD
1796:107030008919C0001A4878108C247F0C7E157E13A5
1797:107040007E14A02D982CA9203100A3537F147F1308
1798:107050007F1507680D010B680000047007801A682F
1799:10706000236800001F6800009F6800007F0C7C0000
1800:10707000B47080A091001A787800FA24B47080A0CF
1801:1070800081001A787800FA24B47080A0B9001A78C8
1802:107090007800FA24B47080A0C3001A787800FA242B
1803:1070A00004698CA1FF0096A1070040005A4896A1F0
1804:1070B0000F0040005A4807681701246884A0FF00A9
1805:1070C00085A00002266807809B780E00AA782068B9
1806:1070D00085A00080226831200004B66E5A7EB4710B
1807:1070E00088A191001A797C0078100548487885A01D
1808:1070F0000C004A78B47080A0CD001A7809200B00EB
1809:10710000012000447810C7470120130078109747EA
1810:107110007800683C7E129120002249208748007048
1811:10712000047205A20C7215A2087084A0F7FF05A2D4
1812:107130004000994878009E48037000007F120020AC
1813:107140007C00007084A00100C000CC48087103815D
1814:10715000C800AB487810CE497800A3480C708CA0CA
1815:10716000FF004000CC4804700480C800C34814707D
1816:1071700005A0C000BF48107005A04000C34802A190
1817:10718000C800A348077010007800CC48FF8A400070
1818:10719000CC487810184CC000C6484000A34878106E
1819:1071A0005749037000007F1200207C007E010461BB
1820:1071B0008CA1FF0086A107004000DF488EA10F00D0
1821:1071C000C000E24840607800E34828647F01FF8403
1822:1071D00040000D49702C0470BCA00F00B8A71D49D9
1823:1071E0003C27FB87C000FB484800F54878108C24FA
1824:1071F0009C6075A040000D497800E848042768AEFF
1825:10720000086830A60C6829A5218440000D493887FC
1826:10721000042705A0C000FC489C7075A0C000E84889
1827:107220007C000000050009000D0011001500190088
1828:107230001D000000030009000F0015001B000000E6
1829:10724000000012490F4900000000008000001249B0
1830:1072500000001A49174900000000000000001A4908
1831:107260000000154915490000000000800000154984
1832:1072700000001B491B4900000000000000001B49E2
1833:107280007E12912000227920005271201000077098
1834:107290000A000770020003700000712020000770D0
1835:1072A0000A000770020003700000492000007F12EE
1836:1072B00000207C00492057491920000004700480F8
1837:1072C000C800AA49077012000871087006A1C00022
1838:1072D000614984A1E00140006C4978108C240120B0
1839:1072E000FD04042082A00500C800774984A1004065
1840:1072F000C00061499CA10C3086A304204000854950
1841:1073000086A308004000904986A30C20C000614974
1842:1073100000720482480090490C7384A3FF0040006F
1843:10732000904978108C2407701200007084A001002E
1844:10733000C000AA49087084A0E001C000AA491073E7
1845:10734000147005A34000AA490C7184A10003C00079
1846:10735000AA4984A1FF00C0005749077012000770B6
1847:107360000800047084A00800C000AE490770120035
1848:10737000087103814800B3490370000049200000F0
1849:107380007C007E107E007E127E1591200022087106
1850:107390007810CE497F157F12912001807F007F10E9
1851:1073A0007C00047200750C7384A30003C000F549CF
1852:1073B00084A1E001C000194A087184A1E001C00065
1853:1073C000194A0120FD04042082A00500C800E949F3
1854:1073D00084A10040C000D94984A107007900ED498B
1855:1073E000F749094AF549094AF549554AF549534AC1
1856:1073F00078108C24047084A0100085A00200067010
1857:10740000FF8AC000044A492000007800084A78102A
1858:10741000184CC000044A7C00047084A0100085A0B1
1859:1074200002000670FF8AC000144A7800184A7810DB
1860:10743000184CC000144A7C00077012000871E0006C
1861:107440001C4A91200060E000204A912000600770F3
1862:10745000120007700800047084A00800C000284AC9
1863:10746000077012000871038148002D4A0370000064
1864:10747000007005A0C000414A047005A0C000414A48
1865:107480000C7005A04000434A7800244A49200000BF
1866:107490007810D738186884A0008040004E4A1B68D6
1867:1074A00002007C0078108C2478108C247810B14A6B
1868:1074B000107214710C709CA0FF00002800A311A290
1869:1074C00089A100007810B14A0427582C60AC0863E9
1870:1074D000002222A30C6300211BA3002405A340006B
1871:1074E000784AC800784A128410820A8389A1000071
1872:1074F000602B78005F4A602B078A7E00046084A0BE
1873:1075000008004000844ABAA717497800864ABAA7FB
1874:107510000F497F003DA7002C86688A6F926C8E6BA6
1875:1075200007701200781057497C003887042705A09F
1876:10753000C000A54A9C6005A04000AE4A60200460DF
1877:1075400084A00F0080A01D493C20FB8740108C24A4
1878:10755000518A4000AD4A087084A0030086A0030051
1879:107560007C00512000007C00508A3987042704A049
1880:10757000C000C54A006064A0C000BC4A602D046021
1881:1075800084A00F0080A02D493C20FB8740108C2454
1882:107590007C007E127E0D912000227F0D8468602089
1883:1075A00088688C6B906C5780D4AAFF0084A0FF0081
1884:1075B0007E00046884A008007F004000E04AB8A074
1885:1075C00017497800E24AB8A00F49087EB5A60C001A
1886:1075D00004698CA1FF0086A107004000F04A8EA13B
1887:1075E0000F00C000F94A1C6884A040004000004B16
1888:1075F000B5A601007800004B1C6884A04000400044
1889:10760000004BB5A6010007700400047084A00400BC
1890:10761000C000024B002405A3C0000D4B7800334B83
1891:10762000582C0427046160AC006000A41A70046048
1892:1076300001A31E7084A108004000234B106081A0AC
1893:1076400000002270146081A00000267008620024EF
1894:1076500002A212700C62002303A216700276077059
1895:107660000100602B7810924A7800354B7810184C46
1896:10767000C000334B7F1200207C007E127E0D9120D3
1897:1076800000227F0D07700400047084A00400C00075
1898:10769000414B037008007F1200207C007E127E0D9B
1899:1076A000912000227F0D49204B4B0770040004708D
1900:1076B00084A00400C000544B087EB5A60C000469E9
1901:1076C0008CA1FF0086A107004000674B8EA10F0030
1902:1076D000C000724B1C6884A0400040006E4BB5A6F1
1903:1076E00001004068502078007B4B1C6884A020007B
1904:1076F000C000794BB5A6010028685020602D0460B9
1905:10770000BCA00F00B8A71D493C27FB87C0008F4BCA
1906:107710004800894B78108C249C6865A04000934BEE
1907:1077200078007C4B7810184CC0008F4B7F120020E3
1908:107730007C007E127E007E017E0D912000227F0D56
1909:107740007F037F04087EB5A60C0004698CA1FF00AE
1910:1077500086A107004000AD4B8EA10F00C000B64BC4
1911:107760001C6884A040004000BD4BB5A60100780015
1912:10777000BD4B1C6884A040004000BD4BB5A6010075
1913:107780004920964B7E0104698CA1FF0086A1070069
1914:107790004000CB4B8EA10F00C000CE4B406878005C
1915:1077A000CF4B28687F0155A04000154C702D602EEE
1916:1077B0000470BCA00F00B8A71D493C27FB87C00080
1917:1077C000E94B4800E24B78108C249C7075A0602037
1918:1077D0004000154C7800D54B042768AE086822A4F9
1919:1077E0000C681BA34800024C518AC000F64B78106D
1920:1077F0008C243887042705A0C000EA4B9C7075A034
1921:1078000060204000154C7800D54B228420841A83D8
1922:1078100099A300000869002422A10C6900231BA180
1923:10782000C800114C78108C24712020007800004B87
1924:107830007F1200207C00087084A0030086A0030053
1925:107840004000404C042708AC04211A700881042130
1926:107850001E700881042112700881042116700460D2
1927:1078600084A008004000374C088104212270088160
1928:10787000042126700276047084A0100085A0010007
1929:1078800006707810924A7C007E127E007E0D912058
1930:1078900000224920414C7F0D7F08087184A103001C
1931:1078A000C0006B4C7E0104698CA1FF0086A107001B
1932:1078B00040005B4C8EA10F00C0005E4C4068780019
1933:1078C0005F4C28687F0105A04000794C78009E48F5
1934:1078D00020006B4C7810554A7800794CA000724C0F
1935:1078E00008717810CE4978004A4C07701000A0004B
1936:1078F000744C08717810CE49087086A00800C0004A
1937:107900004A4C007005A0C0004A4C0370000049209A
1938:1079100000007F1200207C007E127E147E137E15F4
1939:107920007E0C7E0D912000227F0D4920894C80AD78
1940:107930001100A020992031000C7084A0FF002A685B
1941:107940000770080007700200037001004000A84C97
1942:107950000080AC80A55307700400047084A004006C
1943:10796000C000AA4C7F0C49200000037000007F1566
1944:107970007F137F147F1200207C00912000609120F3
1945:107980000080CC7805A04000D14C9479D07006A13D
1946:10799000C000D14C047805A04000D14C077800000D
1947:1079A0006800D14C91208040207801802278C0006E
1948:1079B0002C4D2478227869204052006884A007006A
1949:1079C0004000EF4C86A002004000EF4C34680DA050
1950:1079D0004000EF4C042105A04000EF4C01800A203C
1951:1079E0004000D44D487805A04000FD4C01804A7805
1952:1079F000C000FD4C0920020144680A2078106F2263
1953:107A0000906805A04000094D01809268C000094DB2
1954:107A10006F6800007368010061200055A920000113
1955:107A200009200200346005A040001F4D018036602F
1956:107A3000C0001F4D106005A040001F4D7E01781052
1957:107A40006F227F01E0AC10007000254D78000F4DD3
1958:107A5000098140002C4DA920000178000F4D7810BD
1959:107A6000394D78105E4D0920515204210920020140
1960:107A70000A20912001807C00347801803678C00093
1961:107A80005D4D3878367891200080447805A0C0009C
1962:107A9000484D012001010180467880A000754020FA
1963:107AA000042065A040005D4D246005A04000594DB4
1964:107AB0000180266040008D4D0060402C78004E4DC6
1965:107AC0007C00287801802A78C0008C4D2C782A7898
1966:107AD000307805A0C0006B4D012000020180327893
1967:107AE000038003800380038090A0005598A20200C9
1968:107AF000042384A0080040008C4D90A209000422B9
1969:107B000005A04000844D01801220C0008C4D04234C
1970:107B100084A0F7FF85A080001A2078106F227C00D7
1971:107B200069204052006805A04000974D486806ACA7
1972:107B30004000D44D1B600600B46084A0003F1E606E
1973:107B4000206084A0FF0085A06000226000604220C9
1974:107B50001467826F7810C519186805A04000AF4DF2
1975:107B600001801A68086884A0EFFF0A681068018025
1976:107B7000D000B94D78108C2412682F60000033605B
1977:107B80000000682C7810DC1C69204052447984A1E4
1978:107B90000001012006006E68C000CF4D86690120FB
1979:107BA00004006E6878106A22912001807C006920B0
1980:107BB000000109204052042184A007004000304EFB
1981:107BC00086A00700C000EA4D7E0D092052526C21AC
1982:107BD00078101C3B7F0D7800304E092052526421F2
1983:107BE000781037241B600600586884A0003F1E6090
1984:107BF000206084A0FF0085A0480022602F60000064
1985:107C000033600000306884A040004000244E4B6880
1986:107C10000400A9201400486884A004004000114E0C
1987:107C20007000114E7800084E4B680900A92014001E
1988:107C3000486884A0010040001E4E70001E4E78006F
1989:107C4000154EA920FA007000244E7800204E0868D6
1990:107C500084A0FDFF0A681B68480009205B520B20C6
1991:107C600007004C784A78912001807C0079200052EE
1992:107C700078105E4E7810424E7810504E33780000E7
1993:107C8000477800004B7800007C0019200300112089
1994:107C90004652042286A03C0040004D4E19200200AE
1995:107CA0002A7B2E7B7C0019203900112046520422A9
1996:107CB00086A03C0040005B4E19202700367B3A7BB3
1997:107CC0007C001920713911204652042286A03C0004
1998:107CD0004000694E19202626227B267B3F78000033
1999:107CE00043780A007C0020002B00000020000000E8
2000:107CF0002000000020000000200000002000000004
2001:107D000020000000200000002000000020000000F3
2002:107D100020000000200000002000000020000000E3
2003:107D200020000000200000002000000014001400CB
2004:107D300049981400140014001400140014001400D6
2005:107D400080000F00000001020406080C20212240E0
2006:107D500080F818000B3001A2140000A2140000A249
2007:107D6000140200006C0002001400CD989E009300E5
2008:107D700002A2388806383988C32064088598C1284B
2009:107D8000AE9C03A20C30462861816A840083561899
2010:107D90003A886598F228919C58980C30E128919C7B
2011:107DA000022806A2C3642E2807A2A064E06DA06783
2012:107DB000C06F14183B882478C16864783E8879982D
2013:107DC000768577866B20C128AE9C44200321A220B3
2014:107DD0008120659809A201298D98140005A200A3AD
2015:107DE00072189A873C88E21F01C60AA26E850407B2
2016:107DF000919C140004A200A30930E21964F86E8576
2017:107E00003F88E608919881F88C9801C81400C1F861
2018:107E10001600B285F080329502FBE21D1400328517
2019:107E200041F21400E21DA884A0D7E61F140008A2A6
2020:107E300043600880C11D1600008360812A8441F0E0
2021:107E40000830A884D6114270DD201100D520228888
2022:107E50001600008047281110C098008000A002285A
2023:107E60001110C69865983E281110CA980BA21700E9
2024:107E70000C3000A3E21D81DB14001002D79814001F
2025:107E8000E0263A8702FBF219E21F14000DA2063821
2026:107E90001002B39C040700006C0002004F9814000D
2027:107EA0009E00A0001700FF600C30208711A2D09C1C
2028:107EB0007287378801217A98D210E278D39C59983A
2029:107EC00084D9E2F0A1F0CD981400318866D13088D1
2030:107ED0000F80019420B502C820887A9801237A98EF
2031:107EE000D210E478D39C21882088599823F142F15C
2032:107EF00001F1C698D210F670328803820C879ED9A1
2033:107F000001601400456814021BA2D09C0120C59892
2034:107F10000182521884D163D1348801808D98273032
2035:107F2000A884561A3388140018A28169BC9C26695B
2036:107F30000269341A9998141A2170140000A341613F
2037:107F40006469108092852680B984E4692380E116F3
2038:107F50000180F110466913A2621413A20080E11699
2039:107F6000B598696914A2C2610280E1140480E11627
2040:107F700001010A302788140017A2BC9C140000A33A
2041:107F800081812A84A884E61C2C88160012A2D09C29
2042:107F9000D210E4700400078024941ACCD39CC598B6
2043:107FA00027880A3013000080A4841600C2111E2105
2044:107FB0000E871DA214008E8716001CA23510919802
2045:107FC00010A200A0108092853B8544D02280073803
2046:107FD000BB84EA9821800738B9840C307E812B87D6
2047:107FE00072879198000020002B0000002000000004
2048:107FF0002000000020000000200000002000000001
2049:1080000020000000200000002000000020000000F0
2050:1080100020000000200000002000000020000000E0
2051:1080200020000000200000002000000014001400C8
2052:10803000499814001400E298CD981400140014001C
2053:1080400080003701000001020406080C20212240B4
2054:1080500080F818000B3001A2140000A2140000A246
2055:10806000140202A2388806383988C32064082FA871
2056:10807000C128AE9C03A20C30462861816A8400832B
2057:1080800056183A8804A8F228919CF4A80C30E128EC
2058:10809000919C022806A2C3642E2807A2A064E06D6A
2059:1080A000A067C06F14183B882478C16864783E8844
2060:1080B00002A8768577866B20C128AE9C44200321D8
2061:1080C000A2208120E4A809A2012909A8140005A280
2062:1080D00000A372189A873C88E21F01C60AA26E8527
2063:1080E0000407919C140004A200A30930E21964F86B
2064:1080F0006E853F88E608F7A881F8F0A801C814004B
2065:10810000C1F81600B285F080329502FBE21D140022
2066:10811000328541F21400E21DA884A0D7E61F1400A6
2067:1081200008A243600880C11D1600008360812A8474
2068:1081300041F00830A884D6114270DD201100D5200E
2069:1081400022881600008047281110FCA8008000A09B
2070:1081500002281110FDA89BA83E281110FDA80BA213
2071:1081600017000C3000A3E21D81DB1400100201A8EF
2072:108170001400E0263A8702FBF219E21F14000DA258
2073:1081800006381002B39C04071700FF600C302087EC
2074:1081900011A2639D72873788012121A8D210E2784D
2075:1081A000669DFCA884D9E2F0A1F06CA81400318887
2076:1081B00066D130880F80019420B502C820880FA8AE
2077:1081C00001230DA8D210E478669D21882088E6A8B6
2078:1081D00023F142F101F14FA8D210F67032880382E8
2079:1081E0000C879ED901601400456814021BA2639D90
2080:1081F000012040A80182521884D163D134880180C3
2081:1082000001A82730A884561A3388140018A281695F
2082:108210004F9D26690269341A01A8141A21701400AE
2083:1082200000A341616469108092852680B984E46965
2084:108230002380E1160180F110466913A2621413A293
2085:108240000080E11607A8696914A2C2610280E114E6
2086:108250000480E11601010A302788140017A24F9DFF
2087:10826000140000A381812A84A884E61C2C881600AF
2088:1082700012A2639DD210E4700400078024941ACCEB
2089:10828000669DF8A827880A3013000080A484160091
2090:10829000C2111E210E871DA214008E8716001CA27B
2091:1082A0003510B4A810A207380C307E812B87728756
2092:0682B000ADA800000C0D5A
2093:00000001FF
2094/**************************************************************************
2095 * QLOGIC LINUX SOFTWARE
2096 *
2097 * Copyright (C) 2004 QLogic Corporation
2098 * (www.qlogic.com)
2099 *
2100 *************************************************************************/
2101
2102/************************************************************************
2103 * *
2104 * --- ISP1040 Initiator/Target Firmware --- *
2105 * 32 LUN Support *
2106 * *
2107 ************************************************************************/
2108
2109/*
2110 * Firmware Version 7.65.06 (14:38 Jan 07, 2002)
2111 */
diff --git a/firmware/qlogic/12160.bin.ihex b/firmware/qlogic/12160.bin.ihex
new file mode 100644
index 00000000000..dc800ecdaf3
--- /dev/null
+++ b/firmware/qlogic/12160.bin.ihex
@@ -0,0 +1,1771 @@
1:100000000A042A000010040841100000C93600004C
2:100010004320504F525947495448312039392C31E7
3:1000200039313239312C39392C3339313439512085
4:100030004F4C494720434F435052524F54414F4930
5:10004000004E492050533231363146207269776D67
6:10005000726120655620726569736E6F31202E3093
7:1000600034302020432073756F74656D20726F4E9D
8:10007000202E303050206F72756474634E202E6FC6
9:100080002020303020200024C920FF907120000261
10:10009000A070A2700120FF010420FCD0201171206B
11:1000A0000001A070A270C1202000892021127120BF
12:1000B0001000C3700400C7705349CB702050CF703C
13:1000C0002020D3700A000120FD040420D6700920EE
14:1000D000FFFE30212821A2A1004724842484248407
15:1000E00024842484248492A100910920000001200A
16:1000F00032000C08051E182279200047A02F082482
17:1001000011200000A9204000A4420981D81D092027
18:1001100000FF003402A118021001A820A4421B789D
19:1001200064001478CDC0D5C0167871200002D600C6
20:10013000692040470C085C460120FF010420FCD0E8
21:10014000301169208047712000010C085C4614784A
22:10015000D4C01678DE00CA7EC27CC67B67780000F9
23:1001600000788DC0027831203000AF78010123780B
24:1001700002002778020009200200692040471B681E
25:100180000300236807002768FA002B6808002F681F
26:10019000280037680600336808003B6800000981C2
27:1001A0000005CF680A00BF68C04779200047D368C0
28:1001B0002D76C368C04CC768C04BCB68C08CA7689D
29:1001C000448FAB68498FAF68448FB368448FA3688E
30:1001D00001000120FF010420FCD0C81169208047E4
31:1001E0007008CF680A00BF68C049D3683978C3680F
32:1001F000C06CC768404CCB68D08DA768498FAB688E
33:100200004E8FAF68498FB368498FA3680100E6003D
34:100210006920C04B71200002EC70E4D0192009184D
35:1002200021200900201119200C1821200C000C0895
36:10023000751D0120FF010420FCD088116920404C6D
37:1002400071200001EC70E4D0192009182120090068
38:10025000201119200C1821200C000C08751DEE002F
39:10026000112002006920C04C09200200A9200001D1
40:10027000376800000B684000C87B86A3FFFE28118A
41:10028000176800011F6864002000176864001F6879
42:100290000200E8AD1000041F35110981381D01204E
43:1002A000FF010420FCD02811118218016920C06CC4
44:1002B000D8080C08F6220C083D400C088C1B0C08D2
45:1002C000154691200022792000477120500091208E
46:1002D00000247920004771202000912000267920F9
47:1002E00000027120404791200028792000017120F0
48:1002F00080479120002079200047712010000032B3
49:1003000085A03D30902071201000C37000000410C3
50:100310008C11C07086A0020010110C08BA1339208D
51:1003200000000C08AB12AC7805A08011040E9A11E5
52:100330006C7865A010010C08A1200C08261E040E84
53:10034000AF116C7865A010010C08A120040EAF114C
54:10035000092047471120874704210C2205A11001DD
55:100360000C089B1C71204047A07005A0E8014C744C
56:1003700085A40000C8017920000291200080D0727D
57:100380008CA23D3090210C084C27912000809120B8
58:100390003D30040ED111792000476C7865A0200112
59:1003A000712010000C08A120041DD91179200047EC
60:1003B000712010000C08294471208047A07005A00E
61:1003C00088014C7025A070017920000191200080E7
62:1003D000D0728CA23D3090210C084C2791200080D7
63:1003E00091203D307920004771201000040EFA1151
64:1003F0006C7865A010010C08A120041D8E110C085A
65:10040000294404088E11003C84A0070002000C124D
66:100410000C120E120E1213121312181218120C08CC
67:100420007525912000240C08D5400500912000225C
68:100430000C08D5400500912000220C08D5409120E1
69:1004400000240C08D540050041124112421242120C
70:100450004D124D124D124D1256125612611261126A
71:100460004D124D124D124D12701270127012701208
72:10047000701270127012701270127012701270126C
73:100480007012701270127012F80C0600060126012C
74:10049000912000280C0892252E010E010E000D005F
75:1004A0000600060126010C0800122E010E010E00A6
76:1004B0000D00060006012601912000260C08922559
77:1004C0002E010E010E000D000600060126019120EE
78:1004D00000260C089225912000280C0892252E0158
79:1004E0000E010E000D00060006012601D600E600F2
80:1004F000F600792000477120000269204047003D46
81:100500008CD03001EC7084A0001CE2780C085C46B2
82:10051000003D84D050016920804771200001EC70BB
83:1005200084A0001CE6780C085C460C082625FE001A
84:10053000EE00DE002E010E010E000D0008700B8093
85:100540004012077002008CA0E00120119CD008012D
86:1005500087089708C37002400408BD13040E1E13D9
87:1005600061200000186084D004191E13287805A0AB
88:10057000201104001F1304081E13FCD030010600D4
89:100580000C08291B0E005001280006000C081E1B39
90:100590000E002001012007400408BC131079FCD094
91:1005A0002811612040479CC1FCC720006120804782
92:1005B0009DC1FDC7606005A004191E1312797E60FD
93:1005C0002878FCC086A018002011C6000C08261947
94:1005D000CE002B780000786065A0E001C6009C602A
95:1005E0000C08F31BCE009F6000000C08601A092065
96:1005F00018008760030110780600FF841011FF8542
97:100600001001C5C012780C08341B0E001278981126
98:100610000C087F1B10789CD01811612040472000E7
99:10062000612080479CC012787B600000D060C4D0FD
100:100630003001C4C0D260012005400408BC13040886
101:10064000BA13050006A0C270C670CA70CE70DA7008
102:10065000C0703DA08AA04000041A6C130200BA13B7
103:100660000814D6133C1470147014CE13781A7A142C
104:10067000C813DA13DB13DC13DD137C1AC8138714D9
105:10068000DB144119721ADE13C817FE1730187618DA
106:1006900085179217A517B717BF15C8130D1518158D
107:1006A000261534154B1559155C156E157C158615D8
108:1006B000A515B115C813C813C813C813CC15DD157B
109:1006C000F7152B165416661669169316CC16DE16F9
110:1006D00053176317C813C813C813C813751700211D
111:1006E0008AA04000041AC8130200C813C813C81314
112:1006F000C813C8139E1AA41AC813C813C813A81A7B
113:10070000E81AC813C813C813C81303146B1482144F
114:10071000D6143C19C813C8130B19C813EC1A901A35
115:100720009A1AC813C813C813C813C813C813C81318
116:10073000C813C813C813C813C813C813C813C813E1
117:10074000C813C813C813C813C813C813C813C813D1
118:10075000C813C813C813C813C813C813C813C813C1
119:10076000C813C813C813C813C813CA72C6710120AE
120:1007700006402800CE73CA72C67101200040C270C4
121:10078000040EBD13612000001B6001009120005089
122:10079000912080400500C3700140900CC37006405A
123:1007A000780C99204100A1204100A9200500A35305
124:1007B000200CC470C37004000708F808F008E808AB
125:1007C000E00891200080C3700400C7705349CB70CB
126:1007D0002050CF702020D3700A0001200400D67072
127:1007E000792000001B7801003120300059200010D2
128:1007F00029201A045120450461204704C12020000B
129:10080000912000509120804004081804D875DC74B1
130:10081000DA75DE741800292000002025D071C87216
131:10082000CC73C470A02099203000037001000770C1
132:1008300006001A731E722274267521204000FF8163
133:100840000409BA1382A140001012202106A008203A
134:100850000384127007700400077001000870FCD058
135:10086000E80D0770020084A0E0012001C37002407F
136:100870000408BD13A824A553100C0408BA1329209A
137:1008800000002025D071C872CC73C4709820A120BC
138:10089000300003700000077006001A731E72227485
139:1008A00026752120400007700600FF810409BA1355
140:1008B00082A140001012202106A00820038412709B
141:1008C000A824A653077001000870FCD0E80D84A08E
142:1008D000E001480DC37002400408BD13D875DC74F4
143:1008E000DA75DE747808C471C87014219EA70400FC
144:1008F00008110A20CA720408B913C7700A00CB7025
145:100900000400CF702A000408BA13D875DC76DA75B3
146:10091000DE761800292000003025C470C872CC7320
147:10092000D074C670CA72CE73D27405A0E8050AA44A
148:10093000080140120180727884A000FC3801AC7874
149:1009400085C0AE78012005400408BC137E7B7A7A0E
150:10095000867E827D767C8CA400FF700107840480F3
151:1009600004800C810C810F8118A191A20000B1A616
152:10097000000081A50000500007840480048018A3B3
153:1009800091A20000B1A6000081A500001A731E729A
154:100990002276267005A61801107AC5C2127AAC78A4
155:1009A00084A0FCFFAE781800AC7885C0AE7804084F
156:1009B000BA13D875DC76DA75DE76180029200000C7
157:1009C0003025C470C872CC73D474C670CA72CE732A
158:1009D000D67405A000050AA41001041ABC130180F6
159:1009E000927884A000FC3801AC78C5C0AE780120B4
160:1009F00005400408BC139A7A9E7BA27DA67E002641
161:100A000005A51801107AC5C2127A967CAC7884A02C
162:100A1000FFFCAE781800AC78C5C0AE780408BA13F5
163:100A2000092000006C7865A0180108810060D80CCE
164:100A3000C47A0408B813092048470C210120FF019B
165:100A40000420FCD00419B91311208847142204088B
166:100A5000B813092049470C210120FF010420FCD0D4
167:100A60000419B9131120894714220408B81361200E
168:100A7000404728612C621482148214820120FF01F5
169:100A80000420FCD04811612080472863DA732C636E
170:100A90001C831C831C83DE730408B81309204C4795
171:100AA0000C210120FF010420FCD00419B9131120EE
172:100AB0008C4714220408B81318790408B9130920C4
173:100AC00002020C218CA1300F0120FF010420FCD078
174:100AD0000419B91311200201142294A2300F040842
175:100AE000B81309204D470C210120FF010420FCD040
176:100AF0000419B91311208D4714220408B813207962
177:100B00000120FF010420FCD00419B913247A040841
178:100B1000B8131120404CC471FCD110111120C04BEE
179:100B2000078184A00F0003800380038068A2006A0D
180:100B3000086B1C6CDA74FCD1181121203B021000E8
181:100B400021203B012424A4A4001CDE740408B71354
182:100B5000C4770C089A1B912000801C6B146A9120AA
183:100B6000018008270408B71361204047186101205D
184:100B7000FF010420FCD00419B913612080471862DA
185:100B80000408B813C4770C089A1B912000800869E8
186:100B9000186A106BDA77912001800408B713C471CA
187:100BA000102194A20F0082A21000041AB3130C08A3
188:100BB000B42384A30040100195A220000408B713B9
189:100BC000C4710021BCC082A01000041AB313BCD1B0
190:100BD00020111120484704222000112088470422B8
191:100BE000BDC006000021BCC012200C0858231E0006
192:100BF0000408B913C471212049470424C670192080
193:100C000000003000C871212089470424CA70FDC348
194:100C100011202316A9200800042206A13801108201
195:100C2000041F0916C471C8720408B21392A22316D5
196:100C3000260022211E000C086A230120FF01042047
197:100C4000FCD01011FCD3F0090408BA13E803FA0031
198:100C5000F401EE020400010002000300612040479D
199:100C600028612C62148214821482C4702A60C870B5
200:100C70000380038003802E600120FF010420FCD04C
201:100C8000A011260016006120804728612C62148282
202:100C900014821482D8702A60DC7003800380038081
203:100CA0002E60DA71DE721E002E000408B813612077
204:100CB00040473061C47032600120FF010420FCD045
205:100CC0000419B913612080473062C870326004088B
206:100CD000B81318790408B913C47184A1CFF048017E
207:100CE0000120FF010420FCD00419B313C8720408CA
208:100CF000B213192000000C08A62336000120FF01C2
209:100D00000420FCD018011E000408B913C87184A186
210:100D1000CFF028010E001021C4710408B213FDC3E6
211:100D20000C08A62310231E000408B813C47182A166
212:100D3000100048020120FF010420FCD00419B31365
213:100D4000C8720408B21311204D4704220600048122
214:100D5000081208811221192000000C089323012099
215:100D6000FF010420FCD018011E000408B913C8714B
216:100D700082A11000280206001021C4710408B213D9
217:100D800011208D47042206000481081208811221D7
218:100D9000FDC30C0893232E001E000408B813C47171
219:100DA000C87284A1FDFF0419B21384A2FDFF0419C7
220:100DB000B2130021207922780022247A26780408B0
221:100DC000B8131120404CC471FCD110111120C04B3C
222:100DD000078184A00F0003800380038068A2C8728B
223:100DE000CC73D874C6710068CA70CE73DA7491205F
224:100DF0000080026AACD2181121200000900084A467
225:100E0000FF0082A00200041A4F173F84BCA7FF0016
226:100E1000400186A7020004194F1784A4FF000409AB
227:100E20004F1761200002FCD1100161200001292030
228:100E30000900312062003F84BCA7FF003001078316
229:100E400084A0FF0010113DA738114120190084A390
230:100E5000FF0082A01A001002A4A4FF00078384A050
231:100E6000FF00880142A8F00286A0100020119CA378
232:100E7000FF009DA3000FBCA3FF00002502A7900266
233:100E8000002602A7781239203A00046805A70668F0
234:100E90000A6B0C6BCE731C68DA701E6C912001809B
235:100EA0000408BA13912001800408B413C4770C0815
236:100EB0009A1B91200080146A1C6B91200180C870DD
237:100EC0001668CC701E6808270408B713C470612028
238:100ED000404718611A600120FF010420FCD004196A
239:100EE000B913C8706120804718621A600408B813EB
240:100EF000C471C872CC7382A11000041AB3130C0819
241:100F0000D82384A30040100195A220000408B71341
242:100F1000C4770C089A1B91200080086A8DC20A6A67
243:100F20009120018008270408B813C4770C089A1B85
244:100F300091200080086A94A2F9FF0A6A046805A05B
245:100F400010010C08D5229120018008270408B8134D
246:100F5000C4770C089A1B91200080086A95C20A6A1F
247:100F6000046805A010010C08D522912001800827F3
248:100F70000408B813C477412001004920050051201E
249:100F80002000912000800C08B21B912001800827CE
250:100F9000086A0408B813C477FCD728010C08291B79
251:100FA00038010408BC130C081E1B10010408BC13F4
252:100FB000C873CC72C677CA73CE720C082A1CE811AB
253:100FC000186805A0A001082776000C08F7237E000A
254:100FD000701101201500FCD718116120404718003E
255:100FE000FDC0612080472A78912001800500912072
256:100FF0000180012005400408BC13912001800408F1
257:10100000BA13C477FCD728010C08291B380104083F
258:10101000BC130C081E1B10010408BC13C67741202A
259:1010200021004920050051202000912000800C085B
260:10103000B21B09201600FCD7181161204047180088
261:1010400061208047FDC1636003007B600000726720
262:101050007F600F002A79D061C4C1D2610C08D5220B
263:10106000912001800500C877CA77C477C677FCD77E
264:1010700028010C08291B38010408BC130C081E1B8E
265:1010800010010408BC13BCA700FF912000800920B8
266:101090001700FCD7181161204047180061208047D5
267:1010A000FDC17B6000006360020072677F600F001B
268:1010B0002A79D061C4C1D2610C08D5229120018067
269:1010C000412021004920050051201000912000807E
270:1010D000C87005A01801D060FDC0D2600C08B21B1A
271:1010E000C8703668388784A71F00C01D9120018012
272:1010F000050019200000C87284D228010C08291BA1
273:1011000038010408BC130C081E1B10010408BC1392
274:10111000C872CA72AC7884A0030018153920000088
275:1011200084D20801FDC7412021004920040051203C
276:1011300008000C089A1B912000800868D4C00DA8F4
277:101140000A693768000091200180388784A71F0052
278:10115000801DBCA700FF3F8738873F8784A7000F0B
279:10116000401D91200080C8726920000184D21011B6
280:1011700069200002086884A0FDFF0A683068B4D0C6
281:10118000B0014B680400A9201400486894D01001F5
282:10119000041FC2184B680900A9201400486884D0B5
283:1011A0001001041FCB18A920FA00041FD2187920BF
284:1011B000004709201800C87284D2181161204047E6
285:1011C000180061208047FDC17B6000002A796360C0
286:1011D00001007F600F00A3600000A460AE60B260F9
287:1011E000D060B4D06001B4C0D260C600B46065A065
288:1011F0000860D4C00A60186001801A60CE00D06018
289:1012000084A0FF7ED260AC788DC0AE78FF830801E9
290:1012100005001B685400912001800500CC730C0868
291:101220007818EC69486A85A100184A6885A14000D1
292:10123000EE68CC7321200400A920FF09041F1B19AC
293:101240002184D01D1983B01DEE694A6A9120018066
294:101250000500FCD71811692040471000692080471D
295:10126000C471C6711669FF811011A3680100AC78C2
296:101270008CC0AE7884D010110C087A1C0500D8758B
297:10128000DC74DA75DE7410002EA02025C471C873DA
298:10129000CC72C671CA73CE7279200047DE7DDA7CCB
299:1012A000D67BD27A0C08771B04095C1AA9200500AA
300:1012B000A120144791200080A141912001800920A4
301:1012C00040000C08411D20010C087F1B04085C1A1B
302:1012D00004608CA0FF008EA10900201106000C08FC
303:1012E00086200E0084A000FF078009800409F11900
304:1012F000C600682C0C08771BA805002C9E68098185
305:10130000C01D9F600000CE00C600DC7DD87CD47B71
306:10131000D07A90A2400099A30000A1A40000A9A542
307:101320000000DE7DDA7CD67BD27A682C9C6865A0D2
308:101330000409F019092040000C08411DA0150460A3
309:1013400084A0FF0086A002005001046084A0FF007A
310:1013500086A00A00381116000C0883201E00002DFC
311:1013600002609808CE00C6009C600C08F31BCE00FB
312:101370009F6000000C08601A092018000860CDC0AA
313:101380000A600460866010780600FF841011FF85F3
314:101390001001C5C012780C08341B0E0012780C081E
315:1013A0007F1B04085C1ACE00C6009C600C08F31B6F
316:1013B000CE009F6000000C08601A092018008760AA
317:1013C00003011B60030010780600FF841011FF85E5
318:1013D0001001C5C012780C08341B0E0012780C08DE
319:1013E0007F1B04085C1ACE001461FCD120010C089C
320:1013F000291BF00118000C081E1BD0010C08601AF4
321:1014000009201800876003011B6021001078060086
322:10141000FF841011FF851001C5C012780C08341B21
323:101420000E0012780C087F1B012007400408BC1333
324:1014300004618CA1FF0086A1050018111C60BDC0CD
325:101440001E60C474C873CC72146091200080E600E2
326:1014500009201200FCD0181171204047180071209B
327:101460008047FDC12A7963700500D071C4C1D27173
328:1014700066736A726E74727077700000002C7A70F6
329:101480002EA030251C6184A1600010010C08E93FEA
330:10149000EE009665A6659A66AA66AF600000B36026
331:1014A0000000146723600000246096A00100101162
332:1014B000008026600C08D522912001800500C370B1
333:1014C00005400408BD13A920050099201447912068
334:1014D00000800A5391200180002110A299A30000EE
335:1014E000A1A40000A9A500000500C471C7700000F8
336:1014F0001E790408BA13C471C671682110006920EE
337:1015000000100C6916A0042D10A2688D0981D81D49
338:1015100085A200001811C37000401000C370034082
339:10152000CA700408BD136479C671C47182A1030036
340:10153000041AB31366790408BA136479C6710408EF
341:10154000BA130079C671C47102790408BA1300791C
342:10155000C6710408BA13C470112000008CA00D00DD
343:1015600060010C81300210820C810C81100210820B
344:101570000C81FF810419B41310820E7A8CD23805C5
345:101580001079CDC11279092021001920030084D2DD
346:10159000C00108811920410011204E8F122319200B
347:1015A00042001082122319204300108212231920B6
348:1015B000460010821223192047001082122319209E
349:1015C00006001120538F12211120738F12230479EA
350:1015D00006780408B9130478C6700408BA13C471F5
351:1015E000FCD118111120C04B10001120404C078174
352:1015F00084A00F0003800380038068A211200000F4
353:101600001468FCD0100195A20002B4D0100195A27C
354:1016100001000C6B0068DA700408B7131478F4D07A
355:10162000300101200740DB70000005A04800FCD01D
356:10163000300101200740DB70010005A0080006A072
357:1016400005001478F4D0300101200740DB70000061
358:1016500005A0080006A005001478FCD03001012088
359:101660000740DB70010005A0080006A0050012710C
360:101670001A721E731078C4D010012274267580ACC3
361:10168000010008810C81A9819880A120300003709D
362:1016900000008460A220A65307700100747984A121
363:1016A00000FF40010F810C810C81048004800780C1
364:1016B00000A118000781048004807C7908A1787A51
365:1016C00006A011A2107DC4D52001847B19A3807CC3
366:1016D00021A40870FCD0E80D03700100077006001B
367:1016E0001A711E72107DC4D510012273267484A055
368:1016F000E0010500487865A02001042C4A786320A9
369:1017000000000500F6007920004748786220002C90
370:1017100005A010110C0875254A78FE00050011205F
371:1017200000914A7AC47B1983280180A232001220DA
372:101730001020C80C13200000050016002600FCD75E
373:1017400018111120C04C10001120C06C84A7000F8C
374:101750000B8084A71F002001038003800380038087
375:1017600005A168A22E001E000500390C00292A6878
376:10177000002A2E68086884A0EFF90DA80A69E6001F
377:10178000FCD728110920524771204047200009202A
378:101790009247712080470C21046805A0480116A1DA
379:1017A000381160200060066816000B200000180049
380:1017B000092000001600046865A078010060066832
381:1017C00021040C08B21D1068087909810A7901808A
382:1017D0001268881D1079A5C112791E000269066978
383:1017E000002D60200C08BF26EE00050065A06001FA
384:1017F00008209C6005A0280162209F60000065A071
385:10180000C00C48784A7962200500076003018F60A8
386:101810000000A9201C0080AC0500A02001200000D1
387:10182000A44028681A602C6822600500E600FCD7F6
388:101830002811712040473120C04720007120804787
389:101840003120C0494C708CA00002281108A60A2D36
390:1018500000804E7006A0EE000500F600FCD71811BF
391:10186000792040471000792080470C089A1B91206E
392:10187000008004680A7865A0F0053000002C0A7822
393:101880006020006065A0B805106006A3B81D0C605C
394:1018900006A2A01D282C487806AC0811480404684C
395:1018A00006AC401100606020066805A018110368AE
396:1018B00000004800006408786020026486A40000EC
397:1018C0001011002C026860250C08021C1B6005002A
398:1018D00023602000FE000C08B21DF6000879098183
399:1018E0000A7910680180126818111078A5C0127862
400:1018F0000120FFFF05A0FE0005007600002739202B
401:101900000000FCD00801FDC741202100492004004F
402:1019100051200800912000800C08B21B388784A752
403:101920001F00D01DBCA700FF3F8738873F8784A7D3
404:10193000000F901D912001807E0005006C78092029
405:10194000748F0C210DA1180165A00408A12061204D
406:101950000000186084D0B81110788CD030018CC091
407:101960001278FCC76920404728008DC01278692092
408:101970008047FDC7912000801C681F6800009120EF
409:10198000018005A0081105008CA0F0FF10010C08D3
410:1019900075250200D71CDA1CE01CE41CD81CE81CCE
411:1019A000D81CD81CD81CEE1C181D1B1D201D291D61
412:1019B000D81CD81C05000C0875250C087A1C0120C1
413:1019C00001800408321D012003800408321D01201B
414:1019D00004800408321D0C087A1C012006800408CB
415:1019E000321D11200A8091200080FCD71811692037
416:1019F00040471000692080473820006886A000001A
417:101A000020011E6F91200180050026007068BCA097
418:101A100000FF4120210049200400512010000C0843
419:101A2000B21B388784A71F00D01D912001800E00B3
420:101A30007069C671D00001200C80B8000C087A1CB7
421:101A400001200D809000FCD71001E4780800E078B8
422:101A5000C67001200E804800FCD71001EC78080009
423:101A6000E878C67001200F800000C270FCD7181102
424:101A7000DB7000001000DB700100612000001B60C3
425:101A8000010091208040050080AC0100FF81180515
426:101A900099203000A0200C7084A0FF07000118706E
427:101AA00006001C70060020700600247006001271EB
428:101AB000AC811A721E7322742675037001000770C0
429:101AC000010008700B80E81E077002008CA0E00186
430:101AD0001011A55306A003700000077004000E004B
431:101AE00026700E0022700E001E700E001A70050087
432:101AF00011202000092010000A6B0E6C1F680102E3
433:101B0000036820FD076838001A6A002DE8A0080065
434:101B100090A204000981801D0500EC70DCD0201526
435:101B2000292001001478CCD06011EC70E4D0192089
436:101B30000A0C21200A00201119200C0C21200C0075
437:101B40007000EC70E4D0281119200C1821200C0032
438:101B500030001920091821200900ADA500020A6BE8
439:101B60000E6C1E6D07683800050004608660082C46
440:101B700063200000687805A06A791001022C080033
441:101B80006E790500C6006120004787680301082DB3
442:101B90006B200000686005A06A611001022D08003A
443:101BA0006E61CE00050091200080042C6E7805A0A7
444:101BB00008116A78912001809C6005A08801C60008
445:101BC000602008209C6005A0380162209F60000012
446:101BD00065A09C6005A0C81D48784A796220CE00A7
447:101BE000487862209F60000085AC000010110C084E
448:101BF00075254A780500A920100006A0048086807B
449:101C00008E81081200A2041FFC1D86808E810500B3
450:101C10005601A920100005A0B8011AA1A81213822C
451:101C20008D8128021AA12012041F0C1E28001AA15F
452:101C300008231082041F0C1E0600003284A0FFEF50
453:101C400080200E005E0105000600003285A0001015
454:101C5000B80C747DD07006A50409DA1E10785020E7
455:101C60000C08771B0409DA1E46A070790025008055
456:101C700012A10920400008123000D07206A21801FB
457:101C8000408809208000C600127107700100992069
458:101C90003000A920200080AC0100A02061200000BD
459:101CA000FF8810010C08771B0870FCD0E80D077046
460:101CB0000200912001808CA0E0013815A553FF8C13
461:101CC0002011FF880409C71E5000002C8E78A9201F
462:101CD000200080AC0100A020A5530408C71E46A028
463:101CE00018721C73C4DA10012074247592A240008B
464:101CF0009BA30000A3A40000ABA500001A721E73F2
465:101D0000C4DA18012274267506A0077004000409BD
466:101D1000C71EFF8C10010C087F1BCE000C087F1B18
467:101D200046A0887800808A7886A00200C0017C7A6C
468:101D3000787BC4DA1001847C807D7479078104800B
469:101D4000048010A299A30000A1A40000A9A500008E
470:101D50001A721E73C4DA8805227426757004146022
471:101D6000FCD018116920404710006920804791205D
472:101D700000801F680200FF88200146A08C78602048
473:101D8000700C8B780000AC7885A00300AE789120B1
474:101D900001809800CE008B7800000C085C20046065
475:101DA00084A00F005900FF8830018C786020046007
476:101DB00084A00F0019000408261E05000200EC1E76
477:101DC000071F201FEC1E2D1FFD1EEC1EEC1EEC1E1F
478:101DD000051F1E1FEC1EEC1EEC1EEC1EEC1E392017
479:101DE0000004BC7805A7BE78086005A70A600C0847
480:101DF000691F9C60BA789F6000000C0848200500AD
481:101E0000BC78C4D00801580C1C60BDC01E603000F6
482:101E10000C088620BC78C4D00801080CBF780000EC
483:101E20000460078084A0FF00B278018038010C08AC
484:101E3000691F2001BC78C5C0BE7810000408841F4B
485:101E400005000C088320BC788CA0000E1011C4D0B3
486:101E5000081128080C08691F10110408841F0500C8
487:101E6000BC78C4D010010408EC1EBF7800001467D1
488:101E700011200100A822186084A0FF0005A088019D
489:101E8000BCA700FFA92020008EA001005001BCA724
490:101E9000008011200200A92000018EA0020008018C
491:101EA000C0000C089A1B002D912000802B680000B8
492:101EB0002F680000086884A0DEFF0A68E8AD100003
493:101EC00091200180041F511F11821801A9200001D7
494:101ED000580C0C087F1B05009F600000B4786DA0B3
495:101EE000002CB6781011BA7838009E68002D026078
496:101EF000B87806AD08110260B0780180B278301170
497:101F0000BC78C4C0BE78B878602006A00500E600A2
498:101F10002EA03025BA7DB67DAE65B2651C60A2608C
499:101F2000482084A9FFE11E6084A9600060010C08BC
500:101F3000E93FFF864011FF853011392000080C0869
501:101F40004820040846209665A6659A66AA66146726
502:101F500071208047FCD710117120404784A7000FE3
503:101F60000B8084A71F00200103800380038003806F
504:101F700005A1C07168A10027078084A00F0003801D
505:101F800003800380C47100A1C26091200080147896
506:101F9000C4D03801FCD71811F4D040111000FCD087
507:101FA0002811086E84D6F001FCD9E011912001803F
508:101FB0000C08021C912000800C08B21D91200180A9
509:101FC0001478C4D004094620FCD72011F4D0301175
510:101FD00004084620FCD01011040846201B60210094
511:101FE00004084620246096A001001011008026609D
512:101FF000106A146802A268026001912001803920F1
513:1020000000029C60BA789F6000000C084820040819
514:102010004620082CFCD9F001006865A0D801046AAC
515:10202000007084A002006801487006A25011046B81
516:1020300060210423026005A0081102696022026188
517:102040009800002D60200C08BF26086E60210262F7
518:10205000066950000068026965A01001026108006D
519:1020600006696021036000006021FCD91801B4A654
520:10207000FCFF0A6E1068087D28850A7D00801268C2
521:1020800091200180B4D62801B6A640000A6E0C0843
522:10209000131CEE000500086005A70A60912000806F
523:1020A0000C08B21D91200180B87865A028019C60C1
524:1020B000BA789F600000780CB678BA78050070791D
525:1020C0007478182884D31801008012A1200200809F
526:1020D00012A1781284C37C7A1A72787A1E72C4DADA
527:1020E0002001847A2272807A267206A084D30801A5
528:1020F00000807678D2701C7805A0380101801E78A7
529:102100002011040E82209120804005003920982063
530:10211000100039209E20042705A0600100AC682033
531:102120000869106812690A680C69146816690E68F3
532:102130003887880C0500030009000F0015001B00FC
533:10214000000015001B000000412000000C78020078
534:102150004A222522A92019213920748F3427107D85
535:10216000C000846086A00301041903211461186073
536:1021700005A12001FF86D81104080321038680A051
537:10218000558F0C6202220080106202220C08D01DC2
538:1021900030868EA60F00040984216C7865A0081D86
539:1021A000087802A62012ACD510113A26050082A6A6
540:1021B0000300041A8421912000806920000018681F
541:1021C00084D0F8111120558F0422C6701082042289
542:1021D000CA7084D6301110820422DA701082042270
543:1021E000DE7085A62080C2701B68010091208040AF
544:1021F000107884A0CFFF1278912001803B2000004E
545:1022000005001078ADC01278040884213A260C0825
546:10221000502204196C226C7865A00419AE2091201C
547:102220000080107884A0CFFFFF860801ADC012782F
548:102230009120018004086C223920748F3427107D8E
549:10224000A000846086A0030104196E211461186047
550:1022500005A12001FF86B81104086E2180A6558FC4
551:102260000C6202220C08D01D30868EA61E000409C6
552:1022700084216C7865A0281D087802A62012ACD5B0
553:1022800010113A26050082A60600041A8421912026
554:10229000008069200000186884D0F8111120558F43
555:1022A00009204E8FA8261C2104221A2008811082A2
556:1022B000041F502185A63080C2701B680100912048
557:1022C0008040107884A0CFFF12789120018006A072
558:1022D0000920758F0A203A2005001078ADC01278C9
559:1022E000B0003A260C08502204196C226C7865A0C4
560:1022F00004191E2191200080107884A0CFFFFF8652
561:102300000801ADC012789120018004086C22912050
562:102310000080077004009479D47002A1280268013B
563:10232000907B02A350111000028038113A261078D9
564:10233000ADC0127891200180050084A100FF40010A
565:102340000F810C810C8104800480078000A118009B
566:102350000781048004809C7A10A21A72987A06A0E1
567:1023600011A21E72C4D43001A47A11A22272A07AE2
568:1023700011A22672A1203000037000000920548FA2
569:102380000A2609819821042184D008013386B0A649
570:102390000200A826A65303861270077001009079E8
571:1023A000947800800AA1081206A02820747984A1DC
572:1023B00000FF40010F810C810C81048004800780A4
573:1023C00000A118000781048004807C7908A1787A34
574:1023D00006A011A2C4D42001847B19A3807C21A46F
575:1023E0000870FCD0E80D84A0E001D001107D312000
576:1023F000548F3426A8780080AA788CD038110770C2
577:102400000600047094D0E81D04088621692047471F
578:102410006B200300AC7885A00003AE7806A04800CE
579:102420003020D67591208040967D107DACA5CFFFE1
580:10243000127D91200180AA78077006003A26037069
581:1024400001001A711E72C4D5100122732674050092
582:10245000846086A00301D8111461186005A1B81129
583:1024600069200000186884D090110C60C67010605C
584:10247000CA70C37020801B680100912080400C0846
585:10248000D01D040E43226C7865A0101D0500590074
586:1024900030156C7865A0E0191004290000156C78DF
587:1024A00065A0D81DE000846086A003016811186053
588:1024B000FCC01A6086A0040038110478A4D0200162
589:1024C0000C08D01D06A005007900181185A0010098
590:1024D0000500B900101141200100107D0500FF88A2
591:1024E0001001912080400500907B9479D47002A166
592:1024F000181185A300000500100202A30500028048
593:10250000050084A100FF40010F810C810C81048033
594:102510000480078000A118000781048004809C7A51
595:10252000987BA47CA07D10A206A019A321A429A5B4
596:1025300009201800286005A01001092040000C089F
597:10254000341BD001A8780080AA788CD010151460B4
598:10255000FCD0181169204047100069208047912065
599:1025600000801F680300AB780000AC7885A00003F2
600:10257000AE78912001806800AB7800000C08D01D77
601:102580009079947800800AA1081206A09678D670F7
602:1025900006A071201000912001800500FCD71811C1
603:1025A00009205847100009209847912000800A20F0
604:1025B000F6000920804779200001FCD7201109206E
605:1025C000404779200002042186A000008011FCD73A
606:1025D000181109204547100009208547042105A04E
607:1025E0003011307884A0C00010111B785200FE001A
608:1025F000050009200200692000470120FF01042096
609:10260000FCD004194B237120804779200001212040
610:10261000BF494B780F000120FF010420FCD01801B6
611:102620001920373E3000A1202B011920373E84D1DC
612:102630001001A1202B02042305A040019A781883E1
613:10264000AC2318839823A6531833A80C9B7800005A
614:102650009B782000A9201000AF780000AF782020E0
615:10266000041F29230370000016008CD109200000EC
616:102670000801BDC10C086C241E00207084A00F004E
617:1026800085A0006306780F7800904378D8005378CF
618:1026900090000B78082F52744F70000009814001A0
619:1026A00071204047792000022120BF4704080623FB
620:1026B0000C0826250500160011200101BCD11011BF
621:1026C000112001028CA10F00042284A0F0FF05A1BB
622:1026D00012201E000C086C24050011200101FCD3FF
623:1026E000101111200102A92009000B81041F72237F
624:1026F0008CA1000E042284A0FFF105A11220050088
625:102700001920020009200101A92005001382041FDD
626:10271000832394A2E000042184A01FFF05A20A20C5
627:102720001983180109200102780C0500112001010C
628:10273000FCD3101111200102A9200C000B81041FF1
629:102740009B238CA100F0042284A0FF0F05A112207E
630:10275000050011200201FCD31011112002020422F5
631:102760009CA0300F84A0CFF005A112200500C60068
632:1027700061200001BCD1101161200002BCC10381A5
633:10278000038080A020009A60AC62AC63CE0005009C
634:10279000C60061200001BCD1101161200002BCC143
635:1027A0000381038080A022009A60A46084A0DFFFE0
636:1027B000AE60CE000500C60061200001BCD1101142
637:1027C00061200002BCC10381038080A020009A60C8
638:1027D000A4608CA220001801ACC29DA30040ECC3F1
639:1027E000B4D30811EDC3AE621020A460AE6318200C
640:1027F000CE00050091200080C600E600186805A004
641:1028000004095024FCD118016120D08E10006120F1
642:10281000C08D0C0858246005A9200101FCD11801C5
643:102820006120D08D10006120C08CC6000C08582497
644:102830002801CE00608C041F1224A8040E00FCD1D5
645:10284000280182A0D08D71208047200082A0C08CFA
646:102850007120404776707271382101200400627047
647:102860007F700F00D071C4C1D2710C08CB22C000A0
648:10287000FCD1181171204047100071208047206062
649:10288000DDC0226072713821002C7A7001200600B0
650:1028900062707F700F00D071C4C1D2710C08CB225E
651:1028A000012000001000012001009120018005A0FE
652:1028B000EE00CE000500042C05A070016020106021
653:1028C00006A340110C6006A22811146006A1101185
654:1028D00006A020000060800C85A001000500F60025
655:1028E000E60016007920804771200001BCD120113C
656:1028F000792040477120000220798CA10F00EC70F4
657:10290000C4D010111E0060000B810B810B810B8164
658:102910000E008DA10008BCD010118DA1000F042164
659:10292000EE00FE000500012001470420ACD0381164
660:10293000E468ACD0200184A006000811090005005D
661:102940001460E600360018207120404CFCD01011B5
662:102950007120C04B078084A00F0003800380038098
663:1029600070AE047084A00A0004192325087194A194
664:1029700000FF040923258CA1FF001C7084A000FF28
665:10298000C001047085A03A0006700120090002A170
666:10299000D81601200A0002A1D01601200C0002A1C5
667:1029A000C8161C7084A0FF001E70047084A0DFFF96
668:1029B000067001200A0006A1A80101200C0006A152
669:1029C000A0010120120006A198010120140006A117
670:1029D00090010120190006A188010120320006A102
671:1029E0008001D80009200C00D00009201200B80096
672:1029F00009201400A00009201900880009202000E7
673:102A0000700009203F00580009200A0040000920FA
674:102A10000C002800092019001000112000000021DE
675:102A200005A20A70047085A00A0006707120004794
676:102A30000470BCD05801FCD32011EA7371204047C8
677:102A40001800EE73712080471F700D003E00EE00ED
678:102A500005000120FF010420FCD0D0110120FD045D
679:102A6000042082A00500A01271200002EC718CA14C
680:102A7000001C0F810C810C8179200001EC7884A06E
681:102A8000001C07800480048005A18AA007000802BA
682:102A90000500020074255B2574255B254E256825FD
683:102AA0004E25087084A0FFC385A000300A70087806
684:102AB00084A0FFC385A000300A780500087084A0B8
685:102AC000FFC385A000200A70087884A0FFC385A0FA
686:102AD00000200A780500087084A0FFC385A0000CC0
687:102AE0000A70087884A0FFC385A0000C0A7805004E
688:102AF000040E7525912000807120000006001870DA
689:102B000084D0E81D0E0071201000CA700E00C6703F
690:102B1000C3700280DB70040ADF702A00712000009D
691:102B20001B70010091208040F80C3C7F587E307C67
692:102B3000387DA0788A708E75927496769A7794A56F
693:102B40003F00F4D43801BCD7281184A77D000419B4
694:102B50009C3C71089CA40F0082A304002003A6A340
695:102B6000070030191824078584A00F0002006C2B81
696:102B7000572C952CFB2E7932D03276330534D9344C
697:102B8000AB35C725C4259E29852A4D32C4250C089E
698:102B90007525050006A0380008788DC00A7806A0C3
699:102BA00002704A704270CE705C7005A0041918273C
700:102BB000607084A007000200E12552265A26632691
701:102BC0006C26FE26752652263078BCD0101DD0719A
702:102BD000BCD1F819B4D104192F26A07086A0010029
703:102BE000C009147005A0A819B0706DA0006865A098
704:102BF00055A09B7880000C6BAA7B086845A0106DDF
705:102C000004686DA05DA086A801001801BC69AA7DBA
706:102C1000AA79C0684DA01C6E0120100004084B2842
707:102C20005C7005A00419C625C600D600B0706DA062
708:102C3000006865A055A09B7880000C6BAA7B086893
709:102C400045A0106D04686DA05DA086A80100180164
710:102C5000BC69AA7DAA79C0684DA01C6E0120200025
711:102C600004084B280C085B3C0419C6251B78680037
712:102C7000B8706DA0B4685A789468D678DE78986891
713:102C8000D278DA7808788DC00A78BC683E70B4C112
714:102C9000D271B47065A0C068567003700200002D38
715:102CA0004A7080AD0900427005000C085B3C2011A1
716:102CB0001B7854000370040005000C085B3C2811CD
717:102CC00011200C0019040370040005000C085B3C83
718:102CD000281111200600D1000370040005000C0823
719:102CE0005B3C281111200D008900037004000500D1
720:102CF0000C085B3C501111200600410078707B707D
721:102D0000000068204A700370040005007071FCC167
722:102D1000078182789B78800086A20C002011AA7A15
723:102D20000120010098008CA11F008DA1C000AA798C
724:102D300086A20D002001AA7A012002003800AB789B
725:102D400020007471AA79AA7A012004009B7860009F
726:102D5000AA785B7804001B7813010C086E3C7F7026
727:102D60000F00D070B4D06801B4C0D270C600B47087
728:102D700065A0086084A0EFFB0A60186001801A60FB
729:102D8000CE000500147005A03811D070B4D0280111
730:102D9000B47006AC1011290C05001600A07186A1B4
731:102DA00001002805D600260000211120010012A2F2
732:102DB000B0706820006806AC20011182B001C90023
733:102DC000C80CC60000211120010012A2B0706820BA
734:102DD00000686020086084A0EFFB0A601182100187
735:102DE0004100B00CA3700100CE002E00DE001E00DA
736:102DF0000500E8AD0500A87006AD1011A4706820AC
737:102E000005000C085B3C0419C625787068207077B3
738:102E10000C08953B502C0C08F63C9B7880001468FD
739:102E200084A01F00BDC0AA781C6E412001000120B3
740:102E30000400040850280C085B3C0419C6259B7844
741:102E400080005C706820146FD070B4D06801B4C08A
742:102E5000D270C600B47065A0086084A0EFFB0A6061
743:102E6000186001801A60CE000C08953B502C0C08AD
744:102E7000F63C246805A0300182A00600080210007C
745:102E800027680500146884A01F00BDC0AA783120FF
746:102E900020004120010001200300040850288DC2B9
747:102EA000D272BC7200A215A0507108812AA108023A
748:102EB000BC7164210465FF85701152712184A81DC5
749:102EC000D0708CD02801CC7005A01011CF700A00F2
750:102ED00005000022900CD0708CC0D270CF70000022
751:102EE000346005A0B01D086784A73F07D001D4D780
752:102EF000801D84A72100681D84A70200300184A7DB
753:102F00000400380DBCA7FBFF0A6784A71802081D40
754:102F100084A700013001186005A0D819BCA7FFFEE6
755:102F20000A676825236800001C6E84A60E001863DB
756:102F300028011C6002A3200218015808FF834819C9
757:102F4000582D502C5271BCD72011287022603A6045
758:102F50001000BCC70A67C06865A04DA00061602A68
759:102F600041200100146B9CA31F009DA3C000FCD155
760:102F7000100184D610019CA3BFFFA4D610019DA30D
761:102F8000200084A60E0004190228A5C70A67002C99
762:102F9000C668A07786A701007811D070B4D0601100
763:102FA000007082A0020040123078BCD028119B78BB
764:102FB0008000AA7B040849283987A2775027AC777C
765:102FC000B0A70500A87006A60811A476AE763A2C24
766:102FD00038873A2D38873A2838873A2338873A2570
767:102FE0003078BCD050019120008091203D30D070CD
768:102FF00084A03D30912000809020D5AA00002001BF
769:1030000021840022041951270500DCD10409F1377D
770:10301000292020009CD6201128858CD608112885CF
771:103020004088146F0C6108818CA1FF00C87060A1FA
772:10303000642CFF8C8801146006A7D01DB860018045
773:10304000BA60881D602A086085A000010A6000221D
774:103050002184041951270500602A0E61BE69002CE5
775:10306000C66840880860D5C00A60A07786A70100BE
776:103070000419D927D070B4D00419D927007082A0C0
777:103080000200041AD9273078BCD00419D9279B78BC
778:103090008000AA7BAA7DAA790120020006001860A0
779:1030A00000801A600800060060290461602A0C088C
780:1030B000093D901584A11800800184A11000180119
781:1030C0000C089A39481584A108003801A06984A128
782:1030D000000618110C08B838F800A06984A1001E79
783:1030E000280584A100087801C6006029006085A039
784:1030F0000020026004618DA110000661CE000C0862
785:103100009A395011A06984A1000218010C08FD38F9
786:10311000180084A10004F019A06984A100103001F6
787:1031200014698CA100FF0F810C08C5232E008CA60A
788:10313000E00084A66000280186A0600010118DA127
789:1031400000408DA10401B6699B7860000028AA7830
790:103150001868FDC01A68BCD66801FCC08370000006
791:103160008AA00D0028038AA00C00827101200C00A7
792:103170000C808671AA781835403328340080AC80E2
793:1031800080AF2B00A0209B78000080AD0B00982022
794:10319000A653A8239828A02586A220000815D07041
795:1031A000B5C0D270002CB670002DBA701468FCC087
796:1031B0000780827886A2020004092129A07000807D
797:1031C000A270B07498A40500A87006A30811A47397
798:1031D000B27386A210000409C625DE00CE000500E9
799:1031E000007005A0E01986A20200041938290C0815
800:1031F0005B3CA8191468FCC007808278912000808D
801:103200001B786800B4685A789468D678DE78986835
802:10321000D278DA789120018008788DC00A7826016A
803:10322000D600C600D07084A0002E9020CE00DE0014
804:103230002E0100295670BC683E7003700200002DFC
805:103240004A7080AD090042703078BCD040019120B6
806:103250003D30D07084A03D30912000809020A0703F
807:1032600005A0081105002184E80D4C72BC7000A275
808:1032700015A00408512786A2100060150C085B3CBD
809:103280000419CC281468FCC0078082781B78680079
810:10329000B4685A789468D678DE789868D278DA7804
811:1032A00008788DC00A78A0700080A270B07490A4D5
812:1032B0000500A87006A20811A472B2720029567007
813:1032C000BC683E7003700200002D4A7080AD09009A
814:1032D00042700500B46B9DA300205A7B1468FCC0AB
815:1032E00007808278946BD67BDE7B986ED27EDA7E06
816:1032F0001B78680000295670027208788DC00A7821
817:10330000002305A67001D07084A0002E86A00026A0
818:1033100018110920000010000920010084A20F00EC
819:10332000330080AD09004270002D4A7005009C29D1
820:1033300008420842F64108429C299C299C290C0815
821:103340007525087884A0FDFF0A78F60079200047EB
822:10335000AC78FE0084D0C001607186A10100040930
823:10336000612A86A10700700186A1050058117870B6
824:1033700068201B68040017680000206884A0FF0014
825:103380009DC0226863700000A3700000A470AE703E
826:10339000B2700C08AE26560111200400607186A19F
827:1033A0000100580186A1070018111F7005001000C8
828:1033B0001F700100D070C5C0D27001200A470420E0
829:1033C00084A0FF0086A0180030011870167005A0B8
830:1033D0001011A370010066000C084E3FA9201000D8
831:1033E000392000000C088B3AB8A70001041FEF2910
832:1033F0006E00007002002C2A0A2A0A2A022A2C2AAD
833:103400002C2A2C2A002A0C0875255C7005A038058A
834:1034100006AD181100685E708000206884D04811E5
835:10342000146F0C08953B0860D4C00A600C08C737BD
836:103430002000587060200068026084A6005F1E684B
837:103440001868FCD008011A6A176800002B68000091
838:10345000206884A0FF009DC022680C08BF1D1120B9
839:103460000400C874A0A40001B104A0AE1700990420
840:10347000A9200101C87479042084041F382AC0706F
841:10348000602021200200A92000011061FF81980125
842:10349000186016000600112002470C2202A112201B
843:1034A0000E001E0002A138031260281111200447EB
844:1034B0000422A5C012201B600000E0AC1000041F15
845:1034C000422A2184001D5E01637000000370000029
846:1034D0004B70000005004600042405A0A8016820E8
847:1034E000006806001A6A176800002B680000B468BC
848:1034F00084A0005F1E68206884A0FF009DC0226831
849:103500000C08BF1D0E00480C4E00232000000500D3
850:1035100082A2030010030C087525002302008F2AE5
851:103520000C2B1A2B82A2020010010C08752560706A
852:10353000637000007F7000002200D077C5C7D2778B
853:103540000200A62AA62AA82AE02AFB37A62AE02AF1
854:10355000A62A0C08752570770C088B3A7077BCA7E3
855:10356000008F0C08953B186005A02805FCD71811A2
856:103570002120C08D10002120D08E092005001120AF
857:1035800010000C08342BB8015601A9200101FCD70A
858:1035900018112120C08C10002120D08D4600092058
859:1035A0000500112010000C08342B4E001801208457
860:1035B000041FCB2A5E01388784A71F0090190408D6
861:1035C000C9250408C92570770C08953B186005A02B
862:1035D0002005FCD718112120C08D10002120D08E8D
863:1035E00009200500112020000C08342BB0015601E1
864:1035F000A9200101FCD718112120C08C1000212026
865:10360000D08D4600092005001120200081044E00C5
866:1036100018012084041FFE2A5E010408C925002227
867:103620000200112B132B132B0C087525637000005F
868:10363000D070C5C0D2700408C92500220200212B19
869:10364000132B1F2B0C0875250C084E3F007086A00D
870:103650000200041980370C08E137086084A0EFFBF2
871:103660000A600C087237040980370408C92504244D
872:1036700005A090056820042D0600146806A718010F
873:10368000202D0E00A80C0E0022201A6917680000D9
874:103690002B680000B46884A0005F1E68206884A0C6
875:1036A000FF0005A222680C08BF1D212002471C2430
876:1036B0001983222310600180126028112120044701
877:1036C0000424A5C02220086084A0EFF90A600C0839
878:1036D000CA260C08E137050085A00100E00C002394
879:1036E0000200732B712BEE2B0C087525E47805A0D6
880:1036F000B01708328CA1000818010401C62510007B
881:103700000403C625082084A03000101104084D329F
882:10371000EC7884A00300D00D8478FCD0181184A12B
883:103720000700900084A1070086A004001811012062
884:103730000000500084A1070086A00500180184A1A4
885:1037400007001000012001000200D12BDA2BC72B4B
886:10375000AA2B4F3C4F3CAA2BE42B0C08752500707C
887:1037600086A004009011607086A002003011112024
888:103770000200192000000408852A607086A0060057
889:10378000B00D607086A00400900DE4790120030064
890:1037900004083B2F1868FCD010011B681D000C08A2
891:1037A000613A1B786E0005001868FCD010011B6898
892:1037B0001D000C08613A04082D3C1868FCD010016B
893:1037C0001B681D000C08613A1B78FA000500186898
894:1037D000FCD010011B681D000C08613A1B78CB005F
895:1037E000050084A50F00C01100700200C925FB2B45
896:1037F000FD2B803780378037FB2BFB2B0C08752582
897:103800000C08E137086084A0EFFB0A600C087237EF
898:10381000040980370408C925E47805A0041BAC2BF3
899:1038200008328CA1000818010401AC2B100004031D
900:10383000AC2B082084A0300018111B78680005000C
901:10384000EC7884A00300C80D8478FCD0181184A102
902:103850000700900084A1070086A004001811012031
903:103860000000500084A1070086A00500180184A173
904:1038700007001000012001000200492C4D2C442CAF
905:10388000422C4F3C4F3C422C493C0C0875250C08FF
906:10389000673A1B786E0005000C08673A04082D3C57
907:1038A0000C08673A1B78FA0005000C08673A1B7889
908:1038B000CB000500002302005E2C5C2C602C0C0861
909:1038C0007525040805341B681600A3780000E47908
910:1038D00084A1300004090534EC7884A003000409B5
911:1038E000053484A10001980D8478FCD0181184A1BE
912:1038F0000700900084A1070086A004001811012091
913:103900000000500084A1070086A00500180184A1D2
914:1039100007001000012001000200922C4D2CC72B43
915:103920000B3C4F3C4F3C0B3C493C0C08173C050002
916:1039300082A2050010030C0875259878402000230A
917:103940000200A12CCB2ED52E00220200BD2CAA2CC9
918:10395000BD2CA82CAD2E0C0875259B781800A878D6
919:10396000102084A0FF0082A02000040A303A8AA020
920:103970000400041A303A0200303A303A303AE4395E
921:103980009B781800A87984A1800048010408303A87
922:10399000007005A0D81D112004000408B73584A1CB
923:1039A000FF008AA01000041A303A0200E52CE32C34
924:1039B000F72CFB2CA92D303A303AAB2D303A303A67
925:1039C000A92EA92E303A303A303AAB2E0C08752584
926:1039D000E4D6400101200003008000803A781B7883
927:1039E000C70005001868FCD018011B681D00900C6A
928:1039F00004080B3C1B681D0004085B3A206922691F
929:103A000084A6001804194C2D206884D00419542D64
930:103A1000186886A0080010111B680000D4D668053D
931:103A2000BCD6580583700000186884A03F008AA0A7
932:103A30000D0018078AA00C00827101200C000C8078
933:103A400086719B786100AA785601360146011600FE
934:103A500008328CA100061801A1202B021000A12021
935:103A60002B011E009B7800000080AC8080AD0B0015
936:103A70009820A6534E013E015E01386005A050110A
937:103A80001C6884A00E0004095B3A0C086D3A2B7880
938:103A90000830100001803A601B7871000500E4D600
939:103AA00030011B78830005001B788300050084A685
940:103AB0006000D00DDCD6C00DFCD6A001FCC65A7E3D
941:103AC000B66EDC7AD879D078078084A07F0008A110
942:103AD00091A20000986B002102A3B268946B0022AF
943:103AE00003A3AE68F4D61801F4C65A7EB66E007011
944:103AF00086A00300481106000C084E3F0C0808423F
945:103B00000E001B788000050006A00C08E842B06A91
946:103B1000AC69986C946B002205A12001002222A4BC
947:103B200000211BA3AA6CD27CDA7CA66BD67BDE7B41
948:103B3000002305A43011F5C65A7EB66E1B788000AE
949:103B400005001B788000002215A118110C080842FE
950:103B500005000C08354205000C08752504083F2EA9
951:103B6000C6005470602020698CA1FFEC22690060BF
952:103B700084A0DFCF02600C08173906A0402038204F
953:103B80000C08BF390408332EC60054706020482C3E
954:103B9000A87A94A2FF0086A20400D8112069E4D17B
955:103BA000701139200000412000003120000006A0E3
956:103BB00010200C081A390C08BF390408332E8CA1C8
957:103BC000FFEC226904618CA1DDFF06610060ACC0DE
958:103BD000026086A20300D001046184A110004805A0
959:103BE0000C08913B0C089A39FF881805CE009B7889
960:103BF00060000028AA78587E95C65A7ED4D618113F
961:103C00001B786E0005001B78820005002069CCD16E
962:103C100030018CA1FFFD22690060ECC002603920F8
963:103C20000000412000003120000006A010200C08F8
964:103C3000BF3986A201005801046184A10800B001C7
965:103C40000C08913B0C08B838FF888019780020696F
966:103C5000C4D130018CA1FFFE22690060E4C0026083
967:103C60003120000006A010200C081A39CE00587E22
968:103C7000D4D618111B78710005001B78830005004D
969:103C80000408573A08289B78800019208000A878FB
970:103C900094A0FF0086A20100B811002302A186A013
971:103CA00001000409AD2DA87CA4A4FF0080A402009B
972:103CB00000A3182002A1040AC12D0409C12DA824C3
973:103CC000A87A041F5D2E180C84A2F00082A02000A8
974:103CD000B806002282A021009816A87A18831883BB
975:103CE000002102A3A00A86A2230050091C6884A018
976:103CF000F1FF1E68587E84A6F1FFA5C030205A7ED1
977:103D00000860A5C00A60A07805A00409342EA82088
978:103D100098799B786000AA78112080009A79A87819
979:103D200098799A7AAA78987A041F8B2E95C65A7E2B
980:103D3000D4D618111B786E0005001B788200050090
981:103D40001883002102A3040A442E84A280000419CF
982:103D50005B3AA07805A0C80804085B3A0408303A2A
983:103D600054704DA09B781800A87884A0FF008EA006
984:103D7000010010010C087525A87A94A2FF004B7869
985:103D80000800A87884A0FF008AA00500041A303A31
986:103D90000200303A2F38303A4A39593D82A20000A9
987:103DA00010110C0875250C08613A1B78820005007B
988:103DB00082A2030010110C087525FCD4D01160708C
989:103DC00005A010010C087525146F7277BCA7008F31
990:103DD0000C08953B086085A021000A60388784A7FD
991:103DE0001F00B01D0C08643A637002001F700900C8
992:103DF00010000C08703A1B788200050082A20400B3
993:103E000010030C08752500230200052F9B30D730C6
994:103E100086A2030098050072D87CDC7DD07FD0712B
995:103E2000B4D12805BCD11815012001470420C4D005
996:103E3000F011687884A0FF00D01182A20200B812AD
997:103E4000D6003B7800831B785900B8706DA0B46829
998:103E50005A789468D678DE789868D278DA78B4C1DF
999:103E6000D27103703000DE000120000058003B7862
1000:103E700000131B7857000120000020000072D87C3E
1001:103E8000DC7DD07F4670A068ECD0180108608DC042
1002:103E90000A6084A20F0002007C30562F532FA731F6
1003:103EA0003232C925512F512F0C0875250860D4C016
1004:103EB0000A60E4D62001447086A01400E8110C08C2
1005:103EC0004E3F092000001868FCD00801447086A00D
1006:103ED00014006801186886A0080004193E3058785C
1007:103EE0009CD004093E302068ACD004093E301B68E9
1008:103EF000140009200200A80468788CA0FF0088053F
1009:103F000086A1080058110860A4C00A600C08723726
1010:103F100040050C08E1370C084E3F600086A12800E0
1011:103F20000015186005A0780D0180680D0180580DFE
1012:103F30001E60480C206884D00409C92584C022680A
1013:103F40000C08BF265870C600602000680260CE00D2
1014:103F50000460026805A0002D0811026006600408D4
1015:103F6000C9251600FF81F015007086A03000D0052D
1016:103F7000D071BCD1B815B4D1E8115C7005A0901512
1017:103F8000A07086A001007005037000004600560076
1018:103F900076006600C600D6000C08F125DE00CE00D3
1019:103FA0006E007E005E004E00D071B4D1D811037057
1020:103FB0004000C0000C085B3CA8111B786800D600CC
1021:103FC000B8706DA0B4685A789468D678DE7898682E
1022:103FD000D278DA78B4C1D2710370300008788DC01D
1023:103FE0000A78DE000C08FF301E00FF8104093E3015
1024:103FF00084A600DF1E682B680000146F86A10200F3
1025:1040000004193F30186886A0140030110820E4D647
1026:10401000180168788CA0FF000C087A3A0C08CA26B0
1027:104020002068DCD07815178794A20F0013821382C2
1028:10403000138284B20006180190A2C04B100090A217
1029:10404000404C90A200001C22C4D370012068E4D030
1030:10405000280184A0FFEF2268ACC31223108204223F
1031:1040600085A0380012201182D4D33801A068C4D0B2
1032:1040700020110C0867310408C92508608DC00A604A
1033:1040800008002A6916691868FCD0100144701A6883
1034:104090008CA600DF1E691064FF84680109200247B6
1035:1040A000042101800A202184126428112120044760
1036:1040B0000424A5C02220186005A0180101801A6000
1037:1040C00018110860A4C00A60206884D0301100680C
1038:1040D00005A008110260066020005870602000688A
1039:1040E00002606120004787680301082D6B200000F3
1040:1040F000686005A06A611001022D08006E610072FF
1041:1041000086A23000580186A240000419C925037018
1042:10411000020048706820C468602005000370020037
1043:10412000B8706DA0BC683E70B47065A0C068567071
1044:10413000002D4A7080AD09004270050082A2040083
1045:1041400010020C08752500220200A630B530C130DF
1046:10415000B53086A50013600186A50083901D03700D
1047:104160000000186001801A60086084A0EFFB0A60FC
1048:10417000007086A0050028010C08613A1B788200B7
1049:1041800005001B788300050090780780018084A0DB
1050:10419000070080A018009A78A8798CA1FF0086A15A
1051:1041A0000300280186A1000010010408303A1B78A2
1052:1041B00083000500206895C02268FF8218110C0852
1053:1041C000613A3000118210010C0875250C08703A14
1054:1041D0001B78820005000C086E3C307884A0C0007B
1055:1041E0007011160008328CA100081E00180104018D
1056:1041F000FC3010000403FC301A7906A0050085A0ED
1057:104200000100050084A6600030112F6800003368AB
1058:10421000000004086631DCD69811B468DCD0801147
1059:104220009869946A2E69326A447005A030110022A0
1060:1042300005A104094E3F4770150004084E3F0500D4
1061:10424000ACD6F001F4D630012F68000033680000CE
1062:1042500004084E3FB46884A0004035A6F4D6A01DE3
1063:10426000447005A0101147701500DCD62811B46801
1064:10427000DCD01001A86CA46D2E6C326D04084E3F8A
1065:10428000F4D630012F6800003368000004084E3F68
1066:10429000B46884A0004835A6F4D6A01D447005A0DB
1067:1042A000101147701500082410250027078084A0EE
1068:1042B0007F0008A191A200002E69326A002105A2A8
1069:1042C000101104084E3F007086A00600100104087B
1070:1042D0004E3F050046690860CDC0CCD308018DC0B3
1071:1042E0000A6018683A681B6806008F6800009368C7
1072:1042F0000000306A2C693E6A42692F680300336807
1073:10430000000037682000976800009B68200000705C
1074:104310000200C925963190318E318E318E318E3129
1075:104320008E310C087525206884D018110C08C73709
1076:1043300030005870502C602000680260602AA0AEE7
1077:104340001700042405A010012020D80C222D6B207A
1078:10435000000005000C08CD370C08E1370860CCC020
1079:104360000A602B6800009B780E00146F38691A6988
1080:10437000446916690920000086AE404710010920F3
1081:1043800001000C081F43DCD6C8011C69EDC11E6981
1082:10439000286882A00E009002486884A00F0086A0C2
1083:1043A0000B0060115C6886A04700401101200147A6
1084:1043B0000420ACD0181100270C089E241868FCD0EB
1085:1043C00040011B68000068788CA0FF0010011B688A
1086:1043D0001E00A0AE1700006822203C6A4069326AC5
1087:1043E0002E69C06860200060A4D0800541202100B3
1088:1043F0004920050051202000D600F6005601460154
1089:10440000792000470C08B21B4E015E01FE00C87007
1090:10441000102009200101260004226DA0400114682B
1091:1044200006A710010068C80C2068D5C022682E00BD
1092:1044300010820981801DDE00637003007B70000024
1093:1044400072777F700F00D071C4C1D271186886A0D6
1094:1044500002003811176800002B6800001C68ECC0CF
1095:104460001E680C08BF1D0408C925D87CDC7DD07FE0
1096:104470000C08FF302B6800009B780E00146F0C08AE
1097:10448000723C8CA0FF0016691868FCD010014470C3
1098:104490001A688CA600DF1E69637000000408C92535
1099:1044A000007005A010110408C92506A00C084E3F95
1100:1044B0002069ACD110111B6814008CA600DF1E69A6
1101:1044C0002B680000206884A0FF00226800700200B2
1102:1044D000C9256F326F327232723272326D326D3282
1103:1044E0000C087525186804083B2F0860A4C00A60F2
1104:1044F0001768000004089537002302007E328032DE
1105:10450000CE320C087525FCD604195B2D00700DA069
1106:104510000200C92590329032BA329032CB328E32BC
1107:104520008E320C08752584A66000380586A06000D0
1108:104530001015ACC6F4C6EDC65A7EB66E1C68ACC08B
1109:104540001E6886A1020048010C084E3FAC69B068A5
1110:1045500015A118010C08354210000C0808421B7800
1111:104560008300D071B4D10419C625A07086A00100C3
1112:1045700004190D260500ECD6F0091868FCD070016E
1113:10458000F4D630111B6815001B7883000408C6257B
1114:104590001B6807002F680000336800000C08173CF8
1115:1045A00005000C08752500230200D732F93251337B
1116:1045B0000C08752500700200E132E332EA32E13284
1117:1045C000E132E132E132E1320C087525AC69B068C4
1118:1045D00015A118010C08354210000C0808421C688F
1119:1045E000B4C01E68D070B4D00419C625A07086A0CF
1120:1045F000010004190D260500FCD604194133007092
1121:104600000DA00200C9250F33093339330F333E3370
1122:10461000073307330C0875259468D678DE789868D8
1123:10462000D278DA7884A66000380586A0600010157C
1124:10463000B4A6BFBFEDC65A7EB66E86A10200480181
1125:104640000C084E3FAC69B06815A118010C08354242
1126:1046500010000C0808421B7883001C68B4C01E6858
1127:10466000D071B4D10419C625A07086A00100041928
1128:104670000D260500ECD6F0091868FCD010011B6867
1129:1046800007001B78FB000500FCC65A7EDC7AD8794F
1130:10469000986B002102A3B268946B002203A3AE685A
1131:1046A000D2791B7883000500DCD630012B780930E5
1132:1046B0001B7883000408C6258478ACC08678E4782B
1133:1046C00084A00800501184A400020801F5C6DDC6CC
1134:1046D0005A7E1B7883000408C625206895C022688E
1135:1046E0000C08023CDDC60C08613A1B788200040805
1136:1046F000C625002302007B337D337F330C087525EC
1137:1047000004085B3A987DD4D6A815E479ACD1300181
1138:10471000EC7884A0030010012B7809309B786000AE
1139:10472000AB78000084A6FBFF5A789A7DE479ACD17F
1140:104730002001EC7884A0030020110120140004085B
1141:104740003B2F8478FCD0181184A10700900084A12D
1142:10475000070086A00400181101200000500084A169
1143:10476000070086A00500180184A1070010000120A1
1144:104770000100C204907A94A207009B786000A87997
1145:10478000FF8168059B788000A87B84A30100D0117D
1146:10479000A87BA87B86A3040018110920DFFF58001E
1147:1047A00086A3010018110920F7FF280086A3030043
1148:1047B00048110920EFFFC60054706020046004A176
1149:1047C0000660CE009B786000AB78000084A6FBFFFB
1150:1047D0005A782B78093020698CA1FFEC22699A7DE8
1151:1047E00004080B3CD12BDA2BF933FF33F733F733C3
1152:1047F0000B3C0B3C0C08752520698CA1FFFC226941
1153:104800000408113C20698CA1FFFC226904080B3CC0
1154:10481000E47984A130002001EC7884A003007015B5
1155:10482000007086A004009011607086A00200301114
1156:1048300011200200192000000408852A607086A05B
1157:104840000600B00D607086A00400900D007086A078
1158:1048500000000409C625206984A120042801D4C1D0
1159:104860002269186804083B2F18688EA002002001F6
1160:10487000FDC01A680120140004083B2F8478FCD086
1161:10488000181184A10700900084A1070086A00400ED
1162:10489000181101200000500084A1070086A0050027
1163:1048A000180184A1070010000120010002000B3C48
1164:1048B0000B3C5C340B3C4F3C4F3C0B3C0B3CBCD6A4
1165:1048C00070058071FF81580582A10D001813837057
1166:1048D0000000280082A10C00827009200C009B7847
1167:1048E0006100AA795601360146018470148110A234
1168:1048F000867280A00B0000AD982084B200061801DB
1169:10490000A1202B021000A1202B019B780000088120
1170:10491000AC81A6534E013E015E010408113CD4D681
1171:104920000419CF34206884D00409113C8CA660009F
1172:1049300084A66000200186A060000811F5C194C122
1173:104940005A79B6699B786000AB7800009B7861006B
1174:104950001868FDC01A68AA7808800C810409F63727
1175:104960008CA1F8000419F6375601360146011600ED
1176:10497000A1202B0108328CA100061001A1202B02DE
1177:104980001E009B7800000080AC8080AD0B0098205A
1178:10499000A6534E013E015E011468FCC00780827878
1179:1049A0000408113C1868FCD010011B6808000C08B2
1180:1049B000613A1B78ED00050000230200E0349D35CC
1181:1049C000DE340C087525D87CDC7DD07FFF8228156D
1182:1049D000007286A203000409092FD071BCD1F8111E
1183:1049E000B4D1E801012001470420C4D0C011D60091
1184:1049F0003B7800881B785900B8706DA0B468A5C0DA
1185:104A00005A789468D678DE789868D278DA78B4C123
1186:104A1000D27103703000DE003000007220003B785D
1187:104A200000181B78570084A20F0002008835453516
1188:104A30001D35382F1B3588351B351B350C08752562
1189:104A40001C68ECD0180108608DC00A60206985C11F
1190:104A500022690068066005A0081102600860D4C0E1
1191:104A60000A601C6884A00E002011C87188A1000192
1192:104A700028003070BA683C71C87008A1042102682F
1193:104A80000A2D5A71DCD62011FCC6B66E0408883592
1194:104A9000B66E84A66000201184A6FF7FB668D80495
1195:104AA000DCD6501184A6FF7FB6689468A668986823
1196:104AB000AA680C084E3F7804ACD6400106A00C084A
1197:104AC0004E3F08241025AA69A66A6800082410250C
1198:104AD0000027078084A07F0008A191A20000AA6996
1199:104AE000A66A0C084E3FFCD6B00184A6FF7FB668CC
1200:104AF00010250824ACD638110027078084A07F0039
1201:104B000008A191A20000986B002102A3B268946BE7
1202:104B1000002203A3AE68007086A030000419C925E6
1203:104B200003700200B8706DA0BC683E70B47065A0E0
1204:104B3000C0685670002D4A7080AD090042700500B3
1205:104B400086A50088481103700000186001801A6073
1206:104B5000086084A0EFFB0A6004085B3A4370000021
1207:104B600082A2060010030C08752500230200B73549
1208:104B7000C835D23500220200BF355B3AC135BF359A
1209:104B8000033651360C087525807A94A2000F0C0864
1210:104B9000A5360408303AC10002005B3AD035D03562
1211:104BA0000336D0355B3A0C08752571000200DC3500
1212:104BB000DA35DA35DC35DA35DC350C0875250C08E4
1213:104BC000703A1B7882000500007086A00200501128
1214:104BD0000C08E13710000C084E3F086084A0EFFB82
1215:104BE0000A602000007086A00300A80D0370050075
1216:104BF0000120E08E8EAE404710010120128F682008
1217:104C00004A7080AD0900427000220500007086A045
1218:104C100002005811D070B5C0D270002CB670002DB3
1219:104C2000BA7038000C084E3F2000007086A00300C8
1220:104C3000C80D03700100807A94A2000F9B781800C1
1221:104C4000A87C84A41F0015A26920C08D84B2000630
1222:104C50001811FDC26920D08E042D082D5A716DA047
1223:104C60002801146806A220010068B80C0C08A536BB
1224:104C7000B46E5A7E206984A1000C0409CB366070A2
1225:104C800086A006002811707006A2101162707A705A
1226:104C90001B680500ADC11B680500ADC1D4C1226908
1227:104CA0000C08673A0408CB36007286A2020058113D
1228:104CB000D070B5C0D270002CB670002DBA70300024
1229:104CC0000C084E3F180086A20300D00D03700100AF
1230:104CD000807A94A2000F9B781800A87C84A41F00FF
1231:104CE00015A286AE40470801FDC2A879A8798CA11B
1232:104CF000FF001821C87068A1042D082D5A716DA0FD
1233:104D00002801146806A218010068B80C0904B46EE2
1234:104D1000206984A1000C0409CB36DCD078016070D6
1235:104D200086A004004011707006A22811747006A3BA
1236:104D3000101162707A700C086D3A80041B680500CF
1237:104D4000ADC1D4C122690C08673A7B700000300401
1238:104D50000370050084B2000618010120E08E1000E7
1239:104D60000120128F68204A705601A92032000320CA
1240:104D700000000080041FB4365E0184B200061001FA
1241:104D8000FCC20800FDC2166A80AD09004270B76817
1242:104D9000000723680008276803000500ECC6ACA6DE
1243:104DA000600004091237986B946CAC69B06805A177
1244:104DB000E011D27BDA7BD67CDE7C86A56000C8055C
1245:104DC000F4D60811EDC6B4A6FFB75A7E09208300B9
1246:104DD0009CD62801092082001920000020231A797E
1247:104DE000ECD688050C0808427004B0681AA30021AC
1248:104DF00023A4002405A3F801D27BDA7BD67CDE7CD9
1249:104E0000B068F4D60811EDC6F4C65A7E11208300AE
1250:104E10009CD62801112082001920000020231A7A34
1251:104E2000ECD688010C0835427000192000002023C0
1252:104E30001000B4A6FFB75A7E092083009CD610014B
1253:104E4000092082001A79C0685670002D4A70C46823
1254:104E50006020D071012001470420C4D0C815D4704F
1255:104E60002DA0B801BCD14805807A94A2000FD8705B
1256:104E700006A21801E07804A55815D670BCC1D271FD
1257:104E80003804312001002C85180233861082D80C9A
1258:104E90000500E07D94A500FF3001112008002F855A
1259:104EA000810C37860800690C1782807884A0000F77
1260:104EB00006A27001DA72D6765800807A94A2000FAA
1261:104EC000D87036A2C00DE07834A5A80DBDC1D2714E
1262:104ED000B4D10419C625002305A40409C625A07071
1263:104EE00086A0010004190D260500206005A05001D0
1264:104EF00001802260086085A008000A600F70000130
1265:104F00002C702660050006A00C084E3F007086A09D
1266:104F100002002001607086A0050050112B6800007F
1267:104F2000176800001B680100236840001F6800012B
1268:104F3000007084A00F000200C925A637A337C3372D
1269:104F4000AF37C925A137A1370C08752549041104CD
1270:104F50002800310458706020006802600C08BF1DF2
1271:104F60000408C9256070637000007F7000000200B3
1272:104F7000BF37BF37BD37BD37BD37BF37BD37BF3789
1273:104F800004089A2A637000000408C9251B68000001
1274:104F90000408A731006805A008110260066005003A
1275:104FA0001064FF84680109200247042101800A205F
1276:104FB000218412642811212004470424A5C0222042
1277:104FC0000860A4C00A600500186005A010010180F7
1278:104FD0001A6005000C086E3C1B68180090040C0851
1279:104FE0006E3C1B68190068040C086E3C1B681A00B4
1280:104FF00040040C086E3C1B680300180470770C0812
1281:10500000953B74718CA1FF00103294A20006180128
1282:10501000E8A1C08C1000E8A1D08D042D082D6820D7
1283:1050200005A018117A700408C9251468707206A2C8
1284:1050300010010068980C00680A201B6805007B704E
1285:1050400000000C08CD37206884D010110C08C73739
1286:105050000C08E1371F680000236820000C08BF1D02
1287:105060000408C92582A203000419353AA87DACA51D
1288:10507000FF00A87EB4A6FF002069BDC12269C4D18B
1289:10508000B005C4C12269B4A6FF00300582A618008D
1290:10509000180210013120180086A610000811308671
1291:1050A0002B852B85412000000C08EE3A18010C08D6
1292:1050B0001A39A0000C08BA3A0C0817392069C5C182
1293:1050C0002269587E95C65A7ED4D618111B786E0078
1294:1050D00005001B78820005000C081739587ED4D6CD
1295:1050E00018111B78710005001B7883000500C600AD
1296:1050F000547060200061E4D198050862178294A280
1297:10510000FF0082A2180018021001112018000026CA
1298:1051100002A20812302286A610000811308608620A
1299:1051200094A2FF00EC78E4D0300182A20A00401281
1300:1051300011200A00280082A20C00101211200C007D
1301:10514000002202A5081228220C08BE3A2B852B85C6
1302:10515000412000000C08EE3A18010C081A39200012
1303:105160000C08BA3A0C081739587895C05A78CE000E
1304:105170001B7882000500C60060290060E4D0881119
1305:10518000B4D05011106084A00F00301104618CA1C4
1306:10519000F5FF0661CE000500112032001920000045
1307:1051A000F000A068CCD0C01D086294A2FF00EC788B
1308:1051B000E4D0300182A20B00181211200A0028004E
1309:1051C00082A20C00101211200C0008631F839CA304
1310:1051D000FF0082A318001802100119201800AB78F4
1311:1051E0000100AB780300AB780100AA7AAA7BC0A8C3
1312:1051F00005002068C5C022680C087A3ACE00050078
1313:10520000C600602904618CA1F5FF066111203200FF
1314:10521000192000000000AB780100AB780300AB78E8
1315:105220000100AA7AAA7BC0A805002068C5C0226830
1316:10523000CE00050006A030201020C6005471602169
1317:105240001820082084A0E0FF35A6867E18609A7892
1318:10525000AE7E1266A47884A070778CA10F0005A1A1
1319:10526000292005472C25CCD54001A4D3100185A0C9
1320:105270000008FCD3100185A08080A67816608A788B
1321:10528000B4A61F0037860482048005A60E60046061
1322:1052900084A0D5FF0660CE00050082A2020004199A
1323:1052A0003F3AA87A2069BDC12269CCD16805CCC13A
1324:1052B000226994A2FF0082A20200041A303A0C086C
1325:1052C000C1390C08173980A901000C200C08913B4A
1326:1052D0000C08B838FF8878019B7860000028AA780D
1327:1052E000587E95C65A7ED4D618111B786E000500DC
1328:1052F0001B7882000500587ED4D618111B787100E7
1329:1053000005001B788300050082A20200181284A207
1330:1053100001004001547188A100000C21ECD1101152
1331:10532000112000000C08AC3A79040C0817395878A1
1332:1053300095C05A781B7882000500C60026006029B7
1333:10534000006011200100ECD05811BCD0381114605D
1334:10535000B4D02011A4C1066106A08800112000006D
1335:10536000AB780100AB780200AB780300AA7AC0A842
1336:1053700004000C087A3A206885A0000222682E00FA
1337:10538000CE000500078815A7C6000920000054704C
1338:105390006020FF82100109204000186080A00200F8
1339:1053A0009A78A47884A09FFF05A1ECC0B4D008111E
1340:1053B000EDC00061F4D1100185A02000A678166030
1341:1053C0008A78046084A0EFFF0660CE000500060026
1342:1053D000007086A0030010010E0010000E0098045B
1343:1053E000ACD68805887884A040006805B87B078320
1344:1053F00084A07F001815078284A0FF000409573A93
1345:105400009AA00400041A573AF4D6D011D879DC7A5D
1346:1054100008A191A20000D279DA79D67ADE7A0C0856
1347:10542000E8421B78800084B20006180101200000C9
1348:105430001000012001000C089A4105000C08752598
1349:105440001B78800005001B788300050039200000D0
1350:10545000412000003120000006A010200C081A395D
1351:105460000C08BF39587E0C08733A1B78820005007F
1352:10547000D10C2068C4C02268C600547060200C089B
1353:105480004439B000810C2068CCC02268C60054703A
1354:1054900060200C08DE396000310C206884A0FFEC2D
1355:1054A0002268C60054706020046084A0C5FF0660B6
1356:1054B000CE00050049001B78820005002768020025
1357:1054C00049001B78820005000120050088000120AA
1358:1054D0000C0070002068D5C0226801200600400042
1359:1054E00001200D0028000120090010000120070004
1360:1054F0009B787E00AA789DC65A7ED070B4D0680191
1361:10550000B4C0D270C600B47065A0086084A0EFFB80
1362:105510000A60186001801A60CE00050076003F879F
1363:10552000BCA70F003B873B870387E0A0C04B8EAE34
1364:1055300040471001E0A0404CB8A720009A7FA47912
1365:1055400084A1E07FAE781260A47984A13F77A67829
1366:105550001660046085A0380006607E0005009B7818
1367:105560008000AB780100AB780200AB780300AA7A28
1368:105570009B786000AB7804000008312000002920EF
1369:1055800032009B788000AB780100AB780300AB78E9
1370:105590000100AA7DAA7E9B786000AB780500040814
1371:1055A0007A3A5601078084A0FF000380038080A020
1372:1055B00020009A78A4798CA1E0FF21207A3B192061
1373:1055C0001100A9200E0011203200042484A0E0FF65
1374:1055D00006A128012084002310A2041FE23A5E01E4
1375:1055E000050056010408303B2120883BA920090012
1376:1055F0001120290082A5280050052084A99511209A
1377:10560000330082A5330018062084A99519200A00CA
1378:1056100011206500002202A5D0022084002310A2E0
1379:10562000041F073B5E01880021207A3B19201100EE
1380:10563000A9200E0011203300002202A54002208480
1381:10564000002310A2041F193B5E0106A00500118271
1382:105650005E0182A564002012087885A070000A7897
1383:10566000042405A0050086A80200E8012120663B6D
1384:10567000A9200D001120280082A52800480D2084B3
1385:105680001920190011203300002202A5000E2084E9
1386:10569000002310A2041F413B5E011120840182A55A
1387:1056A0008501B00A90082120753BA9200300112034
1388:1056B000240086A52400600920841120280086A5E6
1389:1056C0002800300920841920190011203300040813
1390:1056D000193B21100222033404460558066A077C50
1391:1056E000104612461258125A146A146C146E177E21
1392:1056F000219002B004E210E210E2091202300232FC
1393:105700000342034404540456056605680678067A85
1394:10571000070C070C070EE1100A330558055A066AF4
1395:10572000066C077C077E000E9B78800046A0050073
1396:1057300084A7000F0B8084A71F00038003800380D1
1397:10574000038005A1FCD71801E0A0C06C1000E0A008
1398:10575000C04C0500E600F60084D038017920000135
1399:105760000920804771208047300009204047792078
1400:1057700000027120404791200080042184A00F0086
1401:105780000200C83BC83BC83BC83BC83BC83BC63B04
1402:10579000C63B0C087525B469F5C18CA19FFFB6699D
1403:1057A00005A08005587884A09FFF85A000605A78E6
1404:1057B000287886A0141830154B780400487884A007
1405:1057C0000400E01D4B780800487884A00800E01D24
1406:1057D0003078BCD0B81184B2000818010401FF3B36
1407:1057E00010000403FF3BE47984A130005801EC78F9
1408:1057F00084A0030038011C68ACD01011D90010003F
1409:105800001B78FB00FE00EE0005000120014704208C
1410:10581000ACD0181114680C089E2405001B78830076
1411:1058200005001B78820005001B78710005001B78BD
1412:105830006E000500092019470C2186A100005001C7
1413:1058400086A1010050011F700B00637001001B78DE
1414:10585000540005001B78F30005001F700A000500C6
1415:10586000092019470C2186A10000680186A10100CA
1416:1058700038011F700B00637001001B785400050095
1417:105880001F700A0005001B78F20005001B78FB0062
1418:1058900005001B78FA0005001B78CC0005001B787A
1419:1058A000CB0005001868FCD010011B681D001F709C
1420:1058B0000B00637001001B7854000500307884A051
1421:1058C000C000701108788CC00A7800E000E000E0A9
1422:1058D00000E0EC7884A02100180108788DC00A78D7
1423:1058E000050008788DC00A780500307884A0400053
1424:1058F000E01D84B2000818010411803C100004135C
1425:10590000803CAC780500087884A0FDFF0A7800E0B0
1426:1059100000E000E000E0EC7884A02100400184B2C7
1427:105920000008180104118F3C10000413923CAC785D
1428:105930000600087885A002000A780E00050084A7FA
1429:10594000010004194D3284A770004001C600602D8B
1430:10595000682F0C089024782D682CCE0084A70800AE
1431:1059600048014B780800EC7884A0030004094D320C
1432:1059700004080B3C84A70400C801B87884A0008008
1433:10598000A8014B780800EC7884A0030004094D328C
1434:10599000E47884A0070086A001004011C07885A6A5
1435:1059A000004830205A7E1B78FB00050084A7800049
1436:1059B00040018478FCD028010C08573A1B6822006B
1437:1059C00005001B680300587884A0005F1E682F68DC
1438:1059D0000000336800004B780800EC7884A00300D6
1439:1059E0000409AC2B84B2000810010401C62504038D
1440:1059F000C625146B078384A00F00038003800380F7
1441:105A0000FCD3180180A0404C100080A0C04B602047
1442:105A100048205670602A0500C60060290060ACD09E
1443:105A20000409573DA068ACD1201184A0000E0409E0
1444:105A3000553D086117818CA1FF001C632F83DCD0CA
1445:105A400010019DA30100CCD0C81184A5FF0038012E
1446:105A5000EC78E4D010011382B8002920000082A164
1447:105A60000C009012EC78E4D0181109200C006000B2
1448:105A700082A10B00481209200A00300009203200E0
1449:105A80001120000029200000AB780100AB7806004F
1450:105A9000AB780400AA79AB780000AA7AAA7BAA7D29
1451:105AA000C0A80800206885A0001022680C087A3A77
1452:105AB00085A00100CE00050082A206000419493A23
1453:105AC000A87DAC7E3786ACA5FF00B4A6FF00AC7FF6
1454:105AD0004787BCA7FF00C4A8FF002069BDC1226999
1455:105AE000E4D10409CB3D8CA1FFEC226982A702001E
1456:105AF000041A233AB4A6FF000409C83D82A6310067
1457:105B0000041A233A82A50900040A233A82A8030052
1458:105B1000041A233A86A80200D00186A800000419BE
1459:105B2000233A01200C00EC79E4D1100101200A0095
1460:105B300002A590120C08233AC6006029046085A0D3
1461:105B40001A0006600060ACC00260CE00050086A7A7
1462:105B500000000409233A348682A618002802200196
1463:105B6000312018000408193E86A61000081130865E
1464:105B70002B852B850C08EE3A0409233A0C081A39B8
1465:105B80000C08BF39587ED4D618111B787100050057
1466:105B90001B78830005000C081739900C86A80200BA
1467:105BA00008113486547188A100000C21ACD104097D
1468:105BB000233AECD120113920000041200000E4D12B
1469:105BC0002011312000004120000082A70200C812ED
1470:105BD0001C6284A2FF0006A710013920000005A660
1471:105BE000900108611F819CA3FF00680102A30812B5
1472:105BF0003023078805A786A00102600186A800005F
1473:105C0000680139200000412000003120000006A07A
1474:105C10001020700084A200FF0811402084A1FF0022
1475:105C200002A5080128212B852B850C08EE3A580D7A
1476:105C30000C081A390C08BF399B788000AB7801003A
1477:105C4000AB780600AB780400AA7DAB780000AA7E92
1478:105C5000AA7F0028AA789B786000AB7808002068AB
1479:105C6000E5C022680C087A3A587895C05A781B78B3
1480:105C7000820005002000200000002000000020001D
1481:105C80000000200000002000000020000000200094
1482:105C90000000200000002000000020000000200084
1483:105CA0000000200000002000000020000000200074
1484:105CB0000000200000002000620009001400140011
1485:105CC00055984D9814001199FF98140014009000F5
1486:105CD000E70000010204082080F8180017000F8474
1487:105CE000C1D8140016000AA214000B300CA2140034
1488:105CF00000251300002510001000100010001000F7
1489:105D00001000100010001000100010001000100013
1490:105D1000100000A206383988C420640850A8083052
1491:105D2000C128189D01A20C30472861816A84008037
1492:105D3000A48456183A8808A8E228CE9CF3A86408E0
1493:105D40003EA80C3001A80830E128CE9CA22863713F
1494:105D500031A8212018A805A20C87DED8A064E06D28
1495:105D6000C06FA467806C120205A23D882B881418AE
1496:105D70003B882770F28537A732A503F076857786B2
1497:105D800013A83E8811A88228627114A80A2804A2C8
1498:105D9000C064E06DA067C06F14183B8823707685DF
1499:105DA000778602A861783E886A20C128189D422023
1500:105DB0000121CAA802290EA20BA807A2140003A25F
1501:105DC0000080A48572189A873C88E21F01F608A219
1502:105DD0006E852171140004070830CE9C140002A2C5
1503:105DE0000080A4850930A884E21944F86E853F88B4
1504:105DF000E608F5A861F8EBA801F8140081F8160090
1505:105E0000B285F0803295A2FAE21D1400328521F2AB
1506:105E10001400E21DA884E0D6E61F140008300080BC
1507:105E200049281110FCA80830008000A08120022819
1508:105E30001110FCA889A80830A1203C281110FCA84A
1509:105E400009A217000C300080A485E21DC1DA1400FD
1510:105E5000100201A81400E0263A87A3FAF219E026FE
1511:105E6000F21814000BA214000DA206381002229D95
1512:105E7000040706A265687E812A84C11D2388160056
1513:105E800042600880FAA860812A84808121F008306D
1514:105E9000A884D7114270DD201100D5202288160079
1515:105EA00000002601D07084A0004C04809020047271
1516:105EB00008709CC005A2A0110C72FF822801FF8A05
1517:105EC0007811007284D260110478CCD010010C08D3
1518:105ED0005B4307700800037008002E0100200500D6
1519:105EE000007084A0030002709CC684D088050871ED
1520:105EF00000E0087006A1D81D84A103000409CA3F70
1521:105F000084A1E0010419CA3FF4D1881D84A10030A6
1522:105F100086A00010600D112080010C7111823001EB
1523:105F20000870F4D0201D0C7006A1C00D077012007F
1524:105F3000087100E0087006A1D81D84A1030068055F
1525:105F400094D1B00DF4D148050770020080082804F0
1526:105F50000871FCD130010C08D640FF8A0409543F77
1527:105F6000B80C0C708CA0FF07E801047084D0780195
1528:105F7000147005A048111070107306A3E01D0023D3
1529:105F800005A0280102A1201E077010003000FF8A22
1530:105F900048010C089A42E81DD8090C085C402E0103
1531:105FA00000200500047208719CC10381181207705B
1532:105FB0000200C00C05A2881D0770080003700800CD
1533:105FC0000600012001470420CCD010010C085B43DF
1534:105FD0000E002E01002005002864FF840805702CA7
1535:105FE0000470BCA00F00B8A71D403C27FB874811D8
1536:105FF00010020C0875259C6075A09001880C392052
1537:106000001240042768AE086830A60C6829A52184D0
1538:1060100038013887042705A0A81D9C7075A0001DB5
1539:1060200005000000050009000D0011001500190011
1540:106030001D000000030009000F0015001B000000F8
1541:10604000000012400F4000000000008000001240DD
1542:1060500000001A40174000000000000000001A4035
1543:1060600000001540154000000000008000001540B1
1544:1060700000001B401B4000000000000000001B400F
1545:10608000792000477120100007700A000770020095
1546:1060900003700100092002007120500007700A00FF
1547:1060A00007700200037000000120FF010420FCD0F3
1548:1060B00028110981180171202000800C050004704E
1549:1060C0000480041AB2400871087006A1E01D84A182
1550:1060D000E00120010C080E410408D24007701200B4
1551:1060E000192000000871087006A1E01D84A1E001DC
1552:1060F00020010C080E410408D2409CA10C3086A35C
1553:106100000420900186A30800C001047084D04811C7
1554:106110000871087006A1E01D84A1030010010408A5
1555:106120000E4186A30C20F0190072048230020C7319
1556:1061300084A3FF0710010C0875250871087006A1DB
1557:10614000E01D84A1E00118010C080E4170040770E5
1558:106150001200007084D048111073147005A3280138
1559:106160000C7184A1FF0704195C400871087006A136
1560:10617000E01D84A1E00118010C080E41B000077079
1561:1061800012000770080004709CD0E81D08710870A8
1562:1061900006A1E01D84A1E00118010C080E412800B1
1563:1061A0000770120008710381880E03700800050053
1564:1061B000087184A1E001A815087184A1E001881587
1565:1061C00084A107000200EA40F840E840F840E840B7
1566:1061D0004841E84046410C087525047084A0100031
1567:1061E0008DC00670FF8A18114920000005000C08B8
1568:1061F0009A42E81D0500047084A010008DC006704E
1569:10620000047084D040110871087006A1E01D84A1BB
1570:10621000030008013000FF8A18010C089A42E81DAB
1571:106220000500077012000871041D114191200060E3
1572:10623000041D1541912000600770120007700800CE
1573:1062400004709CD0E81D077012000871FCD1D81DA5
1574:1062500003700000007005A03011047005A0181133
1575:106260000C7005A00801400C4920000084B2000217
1576:106270001801012000001000012001000C08A73BBC
1577:106280001B6802005120000005000C0875250C0851
1578:1062900075250C088741107214710C709CA0FF07C3
1579:1062A000002800A311A289A10000A1040427582CF2
1580:1062B00060AC0863002222A30C6300211BA300240E
1581:1062C00005A340013812128410820A8389A10000BC
1582:1062D000602B580C602B078A060004609CD01801C4
1583:1062E000BAA717401000BAA70F400E003DA7002C18
1584:1062F00086688A6F926C8E6B0871087006A1E01D2B
1585:1063000084A1E00110010C080E41077012000C0876
1586:106310005C400500508A3987042704A0681100609A
1587:1063200064A00811602D046084A00F0080A02D409F
1588:106330003C20FB870C09752505002601D600D0708E
1589:1063400084A0004C04809020DE008468602088686F
1590:106350008C6B906C5780D4AAFF0084A0FF000600CD
1591:10636000046884A008000E001801B8A017401000AF
1592:10637000B8A00F4084B200021001207E0800247EE5
1593:10638000B5A60C001C68B4D0080185C6002405A37E
1594:106390005005582C0427046160AC006000A448201C
1595:1063A000CCA9040018010C08A34300041A7004606F
1596:1063B00001A31E709CD14001106081A000002270DA
1597:1063C000146081A0000026700862002402A21270EE
1598:1063D0000C62002303A21670027607700100602B86
1599:1063E0000C08C54210000C089A42E81D2E0100203E
1600:1063F00005002601D600D07084A0004C04809020B7
1601:10640000DE0007700400047094D0E81D03700800DB
1602:106410002E01002005002601D600D07084A0004C7B
1603:1064200004809020DE00207E84B200020811247EC9
1604:10643000B5A60C001C68ACD0181185C6037000000E
1605:1064400028685020602D0460BCA00F00B8A71D4034
1606:106450003C27FB87381110020C0875259C6865A045
1607:106460002001880C0C089A42E81D2E01002005002E
1608:10647000260106001600D600D07084A0004C0480CF
1609:106480009020207E84B200020811247EDE003E00AF
1610:106490004E00B5A60C001C68B4D0280185C6037058
1611:1064A00000000770040049203542286855A0D60036
1612:1064B00004099642702D602E0470BCA00F00B8A78E
1613:1064C0001D403C27FB87401110020C0875259C706D
1614:1064D00075A060207005800C042768AE086822A4AF
1615:1064E0000C681BA36802518A10110C0875253887A7
1616:1064F000042705A0901D9C7075A06020D001E008C5
1617:10650000228420841A8399A300000869002422A110
1618:106510000C6900231BA110120C08752584B200021F
1619:10652000180171205000100071202000DE000408C6
1620:10653000C341DE002E01002005000870060084A083
1621:10654000E0010E00100106A0050084A0030086A053
1622:10655000030008110500042778AC0078082F94D0B8
1623:106560000419A6431A7004781E70087812700C780B
1624:10657000167004609CD02001107822701478267068
1625:106580000276047084A0100085C006707920004750
1626:10659000518AE8013887042705A068119C6005A08E
1627:1065A000B8016020046084A00F0080A01D403C2042
1628:1065B000FB870C0975250870060084A0E0010E0019
1629:1065C000100106A0280084A0030086A00300050097
1630:1065D00051200000050026010600D600D07084A0DE
1631:1065E000004C04809020DE008E00087184A103001E
1632:1065F0002811286805A0780104086D3F0871FCD1B6
1633:1066000018010C08D640880C077010000871FCD1E6
1634:10661000E80D0C08D640087086A00800301D0070F8
1635:1066200005A0181D0370000049200000060001208D
1636:1066300001470420CCD010010C085B430E002E0152
1637:10664000002005002601460136015601C600D6008D
1638:10665000D07084A0004C04809020DE0049201F43AD
1639:1066600080AD1100A02084B20002180199203200F0
1640:106670001000992031000C7084A0FF072A68077071
1641:106680000800077002000370010018010080AC8050
1642:10669000A5530C7084A0FF0730010770040004703C
1643:1066A00084A00400E01DCE0049200000037000001B
1644:1066B0005E013E014E012E01002005001468FCD051
1645:1066C00004099E43007084D0E005247EB5A6040032
1646:1066D00007700400047084A00400E01D1871160007
1647:1066E0001C71160020711600247116001B7000002A
1648:1066F0001F70FF3F2370000027700000137004001C
1649:10670000177000000276077001000120FFFF0920CA
1650:1067100031000A200A200871087006A1E01DFCD192
1651:10672000D00D2E0026722E0022722E001E722E0018
1652:106730001A7207700200087086A008001001040891
1653:106740000E41077004000370000005004920C3419A
1654:106750006800087084A00300100106A0050006A0D0
1655:1067600020201820582C602149200000588B0061FF
1656:10677000002108A41A71046001A31E700600042BF6
1657:1067800084A008005001106081A000002270060063
1658:10679000146081A000002670060084A1070011206B
1659:1067A00008002AA20862002412A226000C624022DD
1660:1067B000002343A82E00FF887011002502A20801C3
1661:1067C0005012202241200000042B9CD010010E000A
1662:1067D0000E000E005004127517700000027686A994
1663:1067E000C3411811077001002800047084A0100034
1664:1067F00085C00670002500A11A70042B84A0080033
1665:1068000010010E004E001E0089A100001E710C2B0D
1666:106810008CA108003001A1A40000227481A0000016
1667:106820002670002522A2C3A8000012742028167426
1668:10683000027686A9C3411811077001002800047070
1669:1068400084A0100085C00670598B602B792000470A
1670:106850000C08C54206A00500912000809120006030
1671:10686000AC7805A068117479D07006A148111C7825
1672:1068700005A030011F780000040E3D4491208040A7
1673:1068800069208047FDC7006884A00F009811D06878
1674:10689000B4D08001BCD07011F60079200001FCD783
1675:1068A000101179200002307884A0C00010110C086B
1676:1068B000D522FE00FCD7200169204047FCC7180CF8
1677:1068C0003078018032780419C744347832786120F6
1678:1068D000C06C69208047FDC7CC6805A028010180F5
1679:1068E000CE6810110C083946006884A00F006801BA
1680:1068F00086A00100500140680DA03801042105A0C8
1681:10690000200101800A200409D645146805A0A801C9
1682:10691000018016689011A3680100F600FCD71811D9
1683:10692000792000021000792000010C086E3CFE0066
1684:10693000606805A010010C08D5227C6805A0400104
1685:1069400001807E68281163680000D068C5C0D268E5
1686:10695000D068FCD0B001FCC0D268A920000234602D
1687:1069600005A0580101803660D068FDC0D2682811AA
1688:10697000106005A010010C08D522E0AC1000041F27
1689:10698000AC44FCD738016120C04C69204047FCC7AB
1690:10699000040869445904387801803A78A0113C7899
1691:1069A0003A786120C04C69204047FCC70C6805A0BC
1692:1069B00010010C084345FCD730116120C06C6920E0
1693:1069C0008047FDC7980C1078CCD06801ACD020115E
1694:1069D000A4D04801ADC0127891200180040EEF448C
1695:1069E0000C08A1200500912001800500407801805D
1696:1069F0004278041942454478427869204047FCC7F0
1697:106A000079200002D46805A03801E07D04A520119A
1698:106A1000D668D068BCC0D26879200047106805A04D
1699:106A200010110120010101801268FCD7180180A01B
1700:106A3000D08D100080A0C08C4020042065A0E00113
1701:106A4000246005A0B001018026609811006805A0AF
1702:106A50003001486806AC18110C08D645680060681B
1703:106A600005A018012760010020000C0884450428B7
1704:106A7000280C0060402C100CFCD73811692080478E
1705:106A8000FDC7792000010408FF440500092000002B
1706:106A9000A920000208609CD05805246005A01801B8
1707:106AA00001802660180408609CC084D01011ACD00E
1708:106AB000C0010A60046005A0D801D600C600160017
1709:106AC00068201060018012600C08C737002D682C08
1710:106AD00060200C08021C0C08B21D1E00CE00DE0057
1711:106AE0003800BDC00A608DA1010010008DA1000119
1712:106AF000E0AC1000041F474584A1010030018CA1C7
1713:106B0000FEFF0E690C08D52208000E690500002C56
1714:106B10007A681467726F176000002B6000001B60BA
1715:106B20000600B46084A0005F1E60206084A0FF00A7
1716:106B300085A0600022600060422069208047FCD769
1717:106B4000101169204047586806AC101100285A6897
1718:106B50000C089A1B186805A0100101801A680868C3
1719:106B6000A4C00A681068087909810A7901801013A5
1720:106B70000C087525126818111079A5C112792F60BB
1721:106B8000000033600000682C0C08BF1DFCD71811F2
1722:106B900069204047100069208047106984A10001E6
1723:106BA0000120060018117669012004000C08CB2290
1724:106BB0000500D60048696021FCD718116920000241
1725:106BC0001000692000010C0890241B600600586822
1726:106BD00084A0005F1E60206084A0FF0085A04800A4
1727:106BE00022602F60000033600000086884A0FDFF71
1728:106BF0000A683068B4D0B0014B680400A9201400C2
1729:106C0000486894D01001041FFD454B680900A92075
1730:106C10001400486884D01001041F0646A920FA0019
1731:106C2000041F0D461B685400DE0063680700050062
1732:106C300079200047E1008900A900092002006920AD
1733:106C400080470F6800001368000017680000098182
1734:106C5000180169204047A80C05001920A3003A7BC1
1735:106C60003E7B050019203300427B467B050019203E
1736:106C7000DD32327B367B05004C6A85A20000F001D4
1737:106C80005069BC6B00A3C60064210463FF83381104
1738:106C90001182480108811AA1B80EBC69A80CCF68FE
1739:106CA0000A00CE0005004C69BC6A64220860B5C0C9
1740:106CB0000A6010820981C81D4E69CE0005001600C9
1741:106CC000041D5D4691200060041D61469120006016
1742:106CD000EC70DCD01811D4D09001A0008EAE000171
1743:106CE00038011478F5C0C5C01678D4D0801560047A
1744:106CF0001478FDC0C5C01678D4D048152804E4D057
1745:106D00000409C446041D7F469120006009200C0040
1746:106D1000041D8546912000600981D01DE47084A087
1747:106D2000FF0186A0FF011011EC70C0088EAE0001BB
1748:106D300028011478F4C0FCD0301120001478FCC075
1749:106D4000F4D00811C4C0167804788CD00005C600B1
1750:106D500061200000186084D0B81186AE0002E60001
1751:106D6000712010002001DB700100E4781800DB7056
1752:106D70000000E078C670C3700E801B600100912097
1753:106D80008040EE00CE001800CE001F680C001E00F0
1754:086D9000A070A2700500260CA2
1755:00000001FF
1756/*****************************************************************************
1757 * QLOGIC LINUX SOFTWARE
1758 *
1759 * QLogic ISP12160 device driver for Linux 2.2.x and 2.4.x
1760 * Copyright (C) 2002 Qlogic Corporation (www.qlogic.com)
1761 *
1762 *****************************************************************************/
1763
1764/************************************************************************
1765 * --- ISP12160A Initiator Firmware --- *
1766 * 32 LUN Support *
1767 ************************************************************************/
1768
1769/*
1770 * Firmware Version 10.04.42 (15:44 Apr 18, 2003)
1771 */
diff --git a/firmware/qlogic/1280.bin.ihex b/firmware/qlogic/1280.bin.ihex
new file mode 100644
index 00000000000..612c2633f8c
--- /dev/null
+++ b/firmware/qlogic/1280.bin.ihex
@@ -0,0 +1,2008 @@
1:10000000080F0B0000107800411000002E3E000089
2:100010004320504F525947495448312039392C31E7
3:1000200039313239312C39392C3339313439512085
4:100030004F4C494720434F435052524F54414F4930
5:10004000004E492050533231303446207269776D6A
6:10005000726120655620726569736E6F30202E388C
7:1000600035312020432073756F74656D20726F4E9B
8:10007000202E303050206F72756474634E202E6FC6
9:100080002020303020200024C920FF980120FC04CB
10:10009000042086A08010C000541071200001A070C0
11:1000A000A270C12010008920741378006D10012007
12:1000B000FC04042086A08012C00069107120000298
13:1000C000A070A27071200001A070A270C120100069
14:1000D0008920F81378006D10C120200089201C139E
15:1000E00071201000C3700400C7705349CB702050BA
16:1000F000CF702020D37008000120FE04D670C120EC
17:100100002100192000000920FFFE00210B20A5A5D9
18:10011000ECA1FF7F642D6B200A0ADCADFF3F542B5E
19:100120005B205050142186A2A5A54000A41086A3F0
20:100130000F004000A0106A2C5A2AC120200019206C
21:100140000F00780080106A2C5A2A7800A2106A2CBE
22:100150005A2A30212821A2A1004F248424842484F7
23:1001600024842484248492A1009909200000012081
24:1001700032007810C12018227920004FA02F0824C7
25:1001800011200000A9204000A4420981C000BF1036
26:10019000092000FF003402A14800CF104000CF101A
27:1001A000A820A4420120FC04042086A08010C000E6
28:1001B000E510712000017E0D6920404F7810B04D90
29:1001C0007F0D1078EDC012781B78640078000A115A
30:1001D0000120FC04042086A08012C00005111478C0
31:1001E000EDC0D5C016781B786400712000027E0D2A
32:1001F0006920404F7810B04D6920804F7120000178
33:100200007810B04D1478D4C016787F0D78000A119C
34:100210001478E5C016781B783C00CA7EC27CC67B89
35:100220006778000000788DC0027831203000AF7808
36:1002300001012378020027780200092002006920CA
37:10024000404F1B680300236807002768FA002B68EB
38:1002500008002F682800376800003B6806003368F4
39:1002600008003F680000098140005E11D3680A0061
40:10027000C368C04F7920004F1478E4D0C000441107
41:10028000ECD0C0004811D768297378004A11D768AC
42:100290000D7378004A11D7682D73C768C054CB68B6
43:1002A000C053CF68C094AB684497AF684997B368B0
44:1002B0004497B7684497A76801006920804F780089
45:1002C0001E11D3680A00C368C0511478E4D0C0007E
46:1002D0006A11D768397478006C11D7681974C768C7
47:1002E000C074CB684054CF68D095AB684997AF686D
48:1002F0004E97B3684997B7684997A7680100107887
49:10030000ECD0C000C2111478E4D0C000B4117E0E4D
50:100310006920C05371200002EC70E4D0C000951138
51:1003200019200C0C21200C007810502078009B1113
52:1003300019200A0C21200A0078105020692040540E
53:1003400071200001EC70E4D0C000AB1119200C0C3E
54:1003500021200C00781050207800B11119200A0CCF
55:1003600021200A00781050207F0E7800DB11192020
56:100370000C0C21200C006920C053781050206920FB
57:100380004054781050207800DB116920C0537E0E55
58:1003900071200001EC70E4D0C000D41119200C0CC5
59:1003A00021200C00781050207F0E7800DB111920DE
60:1003B0000A0C21200A00781050207F0E1120020024
61:1003C0006920C05409200200A920000137680000FC
62:1003D0000B684000C87B86A3FFFEC000F2111768BF
63:1003E00000011F6864007800F611176864001F6838
64:1003F0000200E8AD1000F000E3110981C000E11136
65:100400001182400004126920C0747800DF11781056
66:10041000A2267810124778101B1E7810424D9120AA
67:1004200000217920004F1078ECD040001812712084
68:10043000200078001A1271205000912000227920AB
69:10044000004F71202000912000237920004F107868
70:10045000ECD040002C127920000178002E12792077
71:1004600000027120404F912000247920000171206A
72:10047000804F912000207920004F71201000003221
73:1004800085A03D30902071201000C37000009000C6
74:100490004D12C07086A00200C0004D127810C11528
75:1004A000392000001078ECD0C000CF1278108E14E4
76:1004B000AC7805A0C0006B12680061126C7865A072
77:1004C000400061127810DC237810E8206800781270
78:1004D0006C7865A040006B127810DC2368007812FD
79:1004E0000920474F1120874F04210C2205A140000D
80:1004F00078127810511F7120404FA47005A0400061
81:100500009D12507485A4000040009D1279200002C5
82:1005100091200080D4728CA23D3090217810B12BB4
83:100520009120008091203D3068009D127920004F7D
84:100530006C7865A040009D12712010007810DC23BB
85:10054000E000A5127920004F712010007810164BA2
86:100550007120804FA47005A04000BD12507025A0EE
87:100560004000BD127920000191200080D4728CA23D
88:100570003D3090217810B12B9120008091203D30AA
89:100580007920004F712010006800C9126C7865A0B6
90:100590004000C9127810DC23E00053127810164B8B
91:1005A0007800531278108E14AC7805A0C000E712C2
92:1005B0006800DD126C7865A04000DD127810DC2345
93:1005C0007810E8206800F1126C7865A04000E7120E
94:1005D0007810DC236800F1120920474F042105A0A0
95:1005E0004000F1127810511F7120404FA47005A0F7
96:1005F00040000C13507485A4000040000C137920B7
97:10060000000191200080D4728CA23D30902178109E
98:10061000B12B9120008091203D307920004F712036
99:100620001000680016136C7865A04000161378104F
100:10063000DC23E000CF127810164B7800CF123C1369
101:100640003C133E133E134B134B134B134B135613D8
102:100650005613631363134B134B134B134B133C137E
103:100660003C133E133E134B134B134B134B135613B8
104:100670005613631363134B134B134B134B13780035
105:100680003C137E007E107E12912000247810D12928
106:100690007F127F107F00912001807C007E007E1001
107:1006A0007E127810C8137F127F107F009120018086
108:1006B0007C007E007E107E12912000237810D129CC
109:1006C0007F127F107F00912001807C007E007E10D1
110:1006D0007E12912000237810D129912000247810D7
111:1006E000D1297F127F107F00912001807C0094131C
112:1006F000941396139613A313A313A313A313AE1368
113:10070000AE1396139613A313A313A313A313AF133C
114:10071000AF13AF13AF13AF13AF13AF13AF13AF13C9
115:10072000AF13AF13AF13AF13AF13AF13AF13780003
116:1007300094137E007E107E12912000237810D12920
117:100740007F127F107F00912001807C007E007E1050
118:100750007E127810D5137F127F107F0091200180C8
119:100760007C007C007E107E127E0D7E0E7E0F7E0051
120:10077000712000016920404F7920004FEC7084A067
121:10078000001CE2787810B04D7F007F0F7F0E7F0D48
122:100790007F127F107C00003C84A007007900CD13FD
123:1007A000DE13DE13E013E013E513E513EA13EA1397
124:1007B000003C84A003007900DA13DE13DE13F31388
125:1007C000F3137810B229912000227810EC477C00B6
126:1007D000912000217810EC477C00912000217810B6
127:1007E000EC47912000227810EC477C0091200021FA
128:1007F0007810EC477C00181418141A141A142714D3
129:10080000271427142714321432143F143F142714CA
130:100810002714271427145014501450145014501433
131:1008200050145014501450145014501450145014A8
132:10083000501450145014780018147E007E107E124C
133:10084000912000247810D1297F127F107F00912001
134:1008500001807C007E007E107E127810C8137F120B
135:100860007F107F00912001807C007E007E107E1230
136:10087000912000237810D1297F127F107F009120D2
137:1008800001807C007E007E107E1291200023781073
138:10089000D129912000247810D1297F127F107F0068
139:1008A000912001807C007E007E107E127E0D7E0EE7
140:1008B0007E0F7920004F712000026920404F003DDB
141:1008C0008CD040006614EC7084A0001CE278781094
142:1008D000B04D003D84D0400074146920804F7120D9
143:1008E0000001EC7084A0001CE6787810B04D7F0FFA
144:1008F0007F0E7F0D7F127F107F007C0008700B80C1
145:10090000C8008914077002008CA0E001C0008A149E
146:100910009CD0400089147A087A09C370024078009C
147:10092000C41568001A1561200000186084D0C0004A
148:100930001A15287805A0C0009E1410001B15780019
149:100940001A151079F4D14000A4147800B914147960
150:10095000ECD14000BD14FCD04000B3147E007810F0
151:10096000AE1D7F004000BD147800B9147E007810E1
152:10097000A11D7F004000BD14012007407800C31571
153:100980001079FCD0C000C7146120404F9CC1FCC747
154:100990007800CB146120804F9DC1FDC7646005A025
155:1009A000C0001A15127982602878FCC086A0180051
156:1009B000C000DB147E0C7810851B7F0C2B780000A8
157:1009C0007C6065A0400000157E0C9C607810901E35
158:1009D0007F0C9F6000007810D51C092018008760EC
159:1009E000030110787E00FF84C000F614FF854000EC
160:1009F000F814C5C012787810BB1D7F001278C000B3
161:100A0000141578100D1E10789CD0C00008156120B8
162:100A1000404F78000C156120804F9CC012787F6099
163:100A20000000D460DCD040001815DCC0D660012086
164:100A300005407800C3157800C1157C001078F4D00B
165:100A400040002315012007407800C31506A0C2709E
166:100A5000C670CA70CE70DA70C0703DA08AA0400027
167:100A6000C80031157900381500218AA04000C8005F
168:100A7000CF1579007815C1151716E0154F16871692
169:100A80008716D715ED1C9216CF15E415E615E81557
170:100A9000EA15F21CCF15A016FD16A51BE71CEC15D8
171:100AA000EA192C1A671AB81AA519B219C619D91950
172:100AB000EB17CF15341741174D1759176F177B17C1
173:100AC0007E178A1796179E17D317DF17CF15CF15E6
174:100AD000CF15CF15F8170A1826185C188418941823
175:100AE0009718C818F9180B1974198419CF15CF1550
176:100AF000CF15CF159419CF15CF15CF15CF15CF150D
177:100B0000171D1D1DCF15CF15CF15211D661DCF1526
178:100B1000CF15CF15CF15111681169A16F7169F1BF4
179:100B2000CF15CF15681BCF156A1D091D131DCF15D5
180:100B3000CF15CF15CF15CF15CF15CF15CF15CF1595
181:100B4000CF15CF15CF15CF15CF15CF15CF15CF1585
182:100B5000CF15CF15CF15CF15CF15CF15CF15CF1575
183:100B6000CF15CF15CF15CF15CF15CF15CF15CF1565
184:100B7000CF15CF15CF15CA72C67101200640780077
185:100B8000C315CE73CA72C67101200040C2706800DE
186:100B9000C415612000001B600100912000509120CD
187:100BA00080407C00C37001407800C415C3700640CB
188:100BB0007800C41599204100A1204100A92005001A
189:100BC000A3537800C115C470C37004007A00780084
190:100BD000C1157800C1157800C1157800C1159120A4
191:100BE0000080C3700400C7705349CB702050CF7091
192:100BF0002020D370080001200F00D670792000005B
193:100C00001B780100312030005920001029201A04DF
194:100C10005120450461204704C1202000912000504C
195:100C20009120804078001804D875DC74DA75DE7481
196:100C300078001A16292000002025D071C872CC73C4
197:100C4000C470A020992030000370010007700600D6
198:100C50001A731E722274267521204000FF81400005
199:100C6000C11582A14000C8003416202106A008202A
200:100C70000384127007700400077001000870FCD034
201:100C800040003B160770020084A0E00140004916B6
202:100C9000C37002407800C415A824A55378002B1611
203:100CA0007800C115292000002025D071C872CC73AE
204:100CB000C4709820A1203000037000000770060067
205:100CC0001A731E72227426752120400007700600D8
206:100CD000FF814000C11582A14000C8006E1620218E
207:100CE00006A0082003841270A824A65307700100F0
208:100CF0000870FCD04000751684A0E0014000631627
209:100D0000C37002407800C415D875DC74DA75DE74DF
210:100D100078005216C471C87014219EA70400C00048
211:100D20008F160A20CA727800C015C7700800CB70F1
212:100D30000F00CF700B007800C115D875DC76DA751E
213:100D4000DE767800A316292000003025C470C87212
214:100D5000CC73D074C670CA72CE73D27405A0400032
215:100D6000F2160AA44000B316C800BC1601807278BF
216:100D700084A000FC4000C016AC7885C0AE7801208D
217:100D800005407800C3157E7B7A7A867E827D767CEC
218:100D90008CA400FF4000D8160784048004800C81D6
219:100DA0000C810F8118A191A20000B1A6000081A5BD
220:100DB00000007800E21607840480048018A391A242
221:100DC0000000B1A6000081A500001A731E722276F1
222:100DD000267005A64000EC16107AC5C2127AAC78CF
223:100DE00084A0FCFFAE787800F516AC7885C0AE78AC
224:100DF0007800C115D875DC76DA75DE7678000017D4
225:100E0000292000003025C470C872CC73D474C67019
226:100E1000CA72CE73D67405A040002F170AA44000F2
227:100E20001017C80019170180927884A000FC4000B8
228:100E30001D17AC78C5C0AE78012005407800C315F9
229:100E40009A7A9E7BA27DA67E002605A540002817E3
230:100E5000107AC5C2127A967CAC7884A0FFFCAE787A
231:100E600078003217AC78C5C0AE787800C11509207B
232:100E700000006C7865A040003E1708810060780093
233:100E80003717C47A7800BF150920484F0C21107815
234:100E9000ECD0C000C0151120884F14227800BF1577
235:100EA0000920494F0C211078ECD0C000C01511204A
236:100EB000894F14227800BF156120404F28612C62B1
237:100EC0001482148214821078ECD0C0006D17612057
238:100ED000804F2863DA732C631C831C831C83DE73AE
239:100EE0007800BF1509204C4F0C211078ECD0C000C1
240:100EF000C01511208C4F14227800BF151879780086
241:100F0000C01509204D4F0C211078ECD0C000C01541
242:100F100011208D4F14227800BF1509204E4F0C214F
243:100F20001078ECD0C000C01511208E4F142278002C
244:100F3000BF1520791078ECD0C000C015247A780055
245:100F4000BF15C471FCD1C000A6171120C053780092
246:100F5000A81711204054078184A00F00038003804C
247:100F6000038068A2006A04689CD04000B717086B31
248:100F70007800B8170C6BFCD1C000BF1721203B02D2
249:100F80007800C11721203B0124241479E4D14000CA
250:100F9000CD17C4D4C000CC17D5C47800CD17DDC49C
251:100FA000A4A4001CDE74C4717800BE15C477781048
252:100FB0002B1E912000801C6B146A91200180082751
253:100FC0007800BE156120404F18611078ECD0C00049
254:100FD000C0156120804F18627800BF15C477781063
255:100FE0002B1E912000800869186A106BDA77912017
256:100FF00001807800BE15C471102194A20F0082A256
257:101000001000C800B9157810C62784A3004040001E
258:10101000081895A220007800BE15C4710021BCC03C
259:1010200082A01000C800B915BCD1C0001918112049
260:10103000484F042278001D181120884F0422BDC09B
261:101040007E000021BCC01220781023277F01780089
262:10105000C015C4712120494F0424C6701920000016
263:1010600078003518C8712120894F0424CA70FDC347
264:1010700011205418A9200800042206A14000441899
265:101080001082F0003918C471C8727800B81592A2A5
266:1010900054187E0222217F01781044271078ECD06A
267:1010A000C0005218FCD340002F187800C115E80387
268:1010B000FA00F401EE0204000100020003006120C6
269:1010C000404F28612C62148214821482C4702A60FA
270:1010D000C8700380038003802E601078ECD0C000BD
271:1010E00082187E027E016120804F28612C6214826A
272:1010F00014821482D8702A60DC700380038003801D
273:101100002E60DA71DE727F017F027800BF156120E8
274:10111000404F3061C47032601078ECD0C000C01510
275:101120006120804F3062C87032607800BF15187936
276:101130007800C015C47184A1CFFF4000A3181078B7
277:10114000ECD0C000B915C8727800B81511204D4F09
278:10115000042212217E00192000007810AB2710789D
279:10116000ECD04000B3187F017800C015C87184A18D
280:10117000CFFF4000BC181021C4717800B8151120B1
281:101180008D4F042212217E00FDC37810AB277F0211
282:101190007F017800BF15C47182A110004800D418E7
283:1011A0001078ECD0C000B915C8727800B8151120BD
284:1011B0004E4F04227E00122119200000781089274A
285:1011C0001078ECD04000E4187F017800C015C87199
286:1011D00082A110004800ED181021C4717800B815E4
287:1011E00011208E4F04227E001221FDC37810892722
288:1011F0007F027F017800BF15C471C87284A1FDFF12
289:10120000C000B81584A2FDFFC000B81500212079E8
290:1012100022780022247A26787800BF15C471FCD188
291:10122000C00013191120C053780015191120405423
292:10123000078184A00F0003800380038068A2192027
293:101240000000C872BCD2400024199DA31000B4D283
294:10125000400029199DA308009120008000687E00AD
295:1012600026A240004819026AECD440003519A5C3F3
296:10127000E4D4400039199DC3F4D4400048190F81CB
297:10128000F4D24000441978100828780048197810E2
298:10129000E62778004819CC72086806A240006A194F
299:1012A000A4A2FF001478E4D0C0005B1982A4280037
300:1012B000480067194000671978005F1982A443004D
301:1012C00048006719C471C6717F02CA7291200180FB
302:1012D0007800BA150A6A9DA30A00046805A3066887
303:1012E0007F020C6BC471912001807800BE15C47719
304:1012F00078102B1E91200080146A1C6B91200180B5
305:10130000C8701668CC701E6808277800BE15C470B7
306:101310006120404F18611A601078ECD0C000C015F1
307:10132000C8706120804F18621A607800BF15C471C0
308:10133000C872CC7382A11000C800B91578102A2891
309:1013400084A300404000A31995A220007800BE1598
310:10135000C47778102B1E91200080086A8DC20A6A1B
311:101360009120018008277800BF15C47778102B1EC4
312:1013700091200080086A94A2F9FF0A6A046805A017
313:101380004000C11978106F2691200180082778004D
314:10139000BF15C47778102B1E91200080086A95C273
315:1013A0000A6A046805A04000D41978106F269120BD
316:1013B000018008277800BF15C4774120010049202B
317:1013C000050051202000912000807810461E9120B9
318:1013D00001800827086A7800BF15C4771478E4D024
319:1013E000C000FE19FCD74000F8197810AE1D40006F
320:1013F000FE197800C3157810A11D4000FE19780071
321:10140000C315C873CC72C677CA73CE727810CD1E5E
322:10141000C000281A186805A04000221A08277E0775
323:1014200078105A287F07C000221A01201500FCD727
324:10143000C0001B1A6120404F78001E1AFDC06120B9
325:10144000804F2A78912001807C009120018001202A
326:1014500005407800C315912001807800C115C4773C
327:101460001478E4D0C000401AFCD740003A1A781033
328:10147000AE1D4000401A7800C3157810A11D400031
329:10148000401A7800C315C677412021004920050085
330:1014900051202000912000807810461E092016005F
331:1014A000FCD7C000541A6120404F7800571A6120C1
332:1014B000804FFDC1676003007F6000007667836036
333:1014C0000F002A79D461DCC1D66178106F26912093
334:1014D00001807C00C877CA77C477C6771478E4D0D7
335:1014E000C0007E1AFCD74000781A7810AE1D40006C
336:1014F0007E1A7800C3157810A11D40007E1A78006E
337:10150000C315BCA700FF9120008009201700FCD75D
338:10151000C0008B1A6120404F78008E1A6120804FE6
339:10152000FDC17F60000067600200766783600F0086
340:101530002A79D461DCC1D66178106F2691200180B0
341:1015400041202100492005005120100091200080F9
342:10155000C87005A04000AC1AD460FDC0D6607810F9
343:10156000461EC8703668388784A71F00C000AC1AB2
344:10157000912001807C00192000001478E4D0C00084
345:10158000CE1AC87284D24000C81A7810AE1D40002E
346:10159000CE1A7800C3157810A11D4000CE1A78002D
347:1015A000C315C872CA72AC7884A00300C000F91ACF
348:1015B0003920000084D24000DB1AFDC74120210001
349:1015C000492004005120080078102B1E9120008033
350:1015D0000868D4C00DA80A6991200180388784A7C3
351:1015E0001F00C000E11ABCA700FF3F8738873F8774
352:1015F00084A7000FC000E11A91200080C87284D235
353:10160000C0000B1B1078ECD04000071B69200001C4
354:1016100078000D1B6920000278000D1B6920000175
355:10162000086884A0FDFF0A683068B4D040002D1B14
356:101630004B680400A9201400486894D040001F1B88
357:10164000F000191B4B680900A9201400486884D0D9
358:101650004000291BF000231BA920FA00F0002B1BDF
359:101660007920004F09201800C87284D2C000391BAD
360:101670006120404F78003C1B6120804FFDC17F609E
361:1016800000002A796760010083600F00A7600000F6
362:10169000A860B260B660D460B4D04000581BB4C03B
363:1016A000D6607E0CB86065A00860D4C00A6018607F
364:1016B00001801A607F0CD46084A0FF77D660AC787C
365:1016C0008DC0AE78FF834000631B7C001B68470021
366:1016D000912001807C00CC737810BA1AEC69486ABA
367:1016E00085A100184A6885A14000EE68CC732120CE
368:1016F0000400A920FF09F000781B2184C000761B9C
369:101700001983C000741BEE694A6A912001807C0035
370:10171000FCD7C0008C1B6920404F78008E1B6920CD
371:10172000804FC471C6711669FF81C000961BA768FF
372:101730000100AC788CC0AE7884D0C0009E1B7810BD
373:101740002D1F7C00D875DC74DA75DE747800A71B59
374:101750002EA02025C471C873CC72C671CA73CE7214
375:101760007920004FDE7DDA7CD67BD27A7810041E99
376:101770004000D11CA9200500A120144F9120008019
377:10178000A1419120018009204000781018204000DC
378:10179000CA1B78100D1E7800D11C04608CA0FF00BD
379:1017A0008EA10900C000D51B7E007810BF237F00EA
380:1017B00084A000FF078009804000611C7E0C682C1B
381:1017C0007810041E40001B1C002C9E680981C0007C
382:1017D000DC1B9F6000007F0C7E0CDC7DD87CD47B02
383:1017E000D07A90A2400099A30000A1A40000A9A56E
384:1017F0000000DE7DDA7CD67BD27A682C9C6865A0FE
385:101800004000601C0920400078101820C0003E1CD9
386:10181000046084A0FF0086A00200C0001B1C0460BE
387:1018200084A0FF0086A00A00C000171C7E0178106B
388:10183000BB237F01002D02607800EA1B7F0C7E0C29
389:101840009C607810901E7F0C9F6000007810D51C63
390:10185000092018000860CDC00A6004608660107816
391:101860007E00FF84C000341CFF854000361CC5C0CC
392:1018700012787810BB1D7F00127878100D1E78004A
393:10188000D11C7F0C7E0C9C607810901E7F0C9F609A
394:1018900000007810D51C09201800876003011B6028
395:1018A000030010787E00FF84C000561CFF854000B6
396:1018B000581CC5C012787810BB1D7F0012787810B4
397:1018C0000D1E7800D11C7F0C1478E4D0C0008F1C52
398:1018D0001461FCD140006F1C7810AE1D40008F1CBD
399:1018E0007800731C7810A11D40008F1C7810D51C47
400:1018F00009201800876003011B60210010787E001A
401:10190000FF84C000831CFF854000851CC5C0127881
402:101910007810BB1D7F00127878100D1E0120074043
403:101920007800C315C474C873CC7214609120008011
404:101930007E0E09201200FCD0C0009F1C7120404F79
405:101940007800A21C7120804FFDC12A7967700500C4
406:10195000D471DCC1D6716A736E72727476707B70EA
407:101960000000002C7E702EA030251C6184A1600038
408:101970004000B91C7810B6467F0E9665A6659A663B
409:10198000AA66AF600000B360000014672360000027
410:10199000246096A00100C000CC1C00802660781056
411:1019A0006F26912001807C00C37005407800C4152B
412:1019B000A92005009920144F912000800A539120FE
413:1019C0000180002110A299A30000A1A40000A9A5F4
414:1019D00000007C00C471C77000001E797800C1153A
415:1019E000C471C67168217800F41C692000100C696C
416:1019F00016A0042D10A2688D0981C000F61C85A2D6
417:101A00000000C000041DC37000407800061DC370B4
418:101A10000340CA707800C4156479C671C47182A18C
419:101A20000300C800B91566797800C1156479C671DC
420:101A30007800C1150079C671C47102797800C115AA
421:101A40000079C6717800C115C470112000008CA007
422:101A50000D004000361D0C814800321D10820C81A3
423:101A60000C814800321D10820C81FF81C000BA1524
424:101A700010820E7A8CD24000621D1079CDC112798D
425:101A8000092021001920030084D240005C1D088138
426:101A90001920410011204E97122319204200108274
427:101AA00012231920430010821223192046001082AD
428:101AB000122319204700108212231920060011203A
429:101AC0005397122111207397122304790678780016
430:101AD000C0150478C6707800C115C471FCD1C0006F
431:101AE000721D1120C0537800741D112040540781CD
432:101AF00084A00F0003800380038068A2146AB4D21C
433:101B00004000831D112001007800851D1120000078
434:101B10000C6B0068DA707800BE151478F4D04000C1
435:101B2000951D01200740DB70000005A07800A01D76
436:101B3000FCD040009F1D01200740DB70010005A084
437:101B40007800A01D06A07C001478F4D04000AC1DE5
438:101B500001200740DB70000005A07800AD1D06A045
439:101B60007C001478FCD04000B91D01200740DB70D8
440:101B7000010005A07800BA1D06A07C0012711A723F
441:101B80001E731078C4D04000C41D2274267580AC2A
442:101B9000010008810C81A9819880A1203000037088
443:101BA00000008460A220A65307700100747984A10C
444:101BB00000FF4000E11D0F810C810C810480048036
445:101BC000078000A17800E41D0781048004807C79EF
446:101BD00008A1787A06A011A2107DC4D54000F11D9D
447:101BE000847B19A3807C21A40870FCD04000F11DE7
448:101BF00003700100077006001A711E72107DC4D5B3
449:101C00004000011E2273267484A0E0017C00487805
450:101C100065A040000C1E042C4A78632000007C0064
451:101C20007E0F7920004F48786220002C05A0C0006C
452:101C3000181E7810B2294A787F0F7C001120009975
453:101C40004A7AC47B19834000281E80A232001220E9
454:101C5000102078001F1E132000007C007E017E02F1
455:101C6000FCD7C000341E1120C0547800361E11204D
456:101C7000C07484A7000F0B8084A71F004000411E82
457:101C8000038003800380038005A168A27F027F0197
458:101C90007C0078102B1E00292A68002A2E6808680C
459:101CA00084A0EFF90DA80A697E0EFCD7C0005B1E68
460:101CB0000920534F7120404F78005F1E0920934F39
461:101CC0007120804F0C21046805A040006F1E16A1F2
462:101CD000C0006F1E6020006006687E010B200000BF
463:101CE0007800721E092000007E01046865A0400093
464:101CF000871E006006687810A21E781064201068A5
465:101D0000087909810A7901801268C000721E107971
466:101D1000A5C112797F0102690669002D6020781043
467:101D2000132B7F0E7C0065A04000A11E08209C6044
468:101D300005A040009E1E62209F60000065A0780004
469:101D4000941E48784A7962207C00076003018F6006
470:101D50000000A9201C0080AC0500A020012000008C
471:101D6000A44028681A602C6822607C007E0EFCD794
472:101D7000C000BD1E7120404F3120C04F7800C11EF1
473:101D80007120804F3120C05150708CA00002C000E3
474:101D9000CB1E08A60A2D0080527006A07F0E7C0084
475:101DA0007E0FFCD7C000D51E7920404F7800D71E8B
476:101DB0007920804F78102B1E9120008004680A78CB
477:101DC00065A040002B1F7800E91E002C0A786020D7
478:101DD000006065A040002B1F106006A3C000E21E3B
479:101DE0000C6006A2C000E21E282C4C7806ACC00095
480:101DF000F81E7800281F046806ACC000061F0060AB
481:101E00006020066805A0C000061F03680000780077
482:101E1000101F006408786020026486A40000C000DF
483:101E2000101F002C026860257F0F7810A21E7E0F05
484:101E30001B600500236020007F0F781064207E0F58
485:101E4000087909810A79106801801268C000281F8A
486:101E50001078A5C012780120FFFF05A07F0F7C003D
487:101E60007E07002739200000FCD04000351FFDC749
488:101E700041202100492004005120080091200080C9
489:101E80007810461E388784A71F00C0003D1FBCA7DE
490:101E900000FF3F8738873F8784A7000FC0003D1FA2
491:101EA000912001807F077C006C78092074970C21B9
492:101EB0000DA140005B1F65A07800DC2361200000BD
493:101EC000186084D0C0007B1F10788CD040006C1F3D
494:101ED0008CC01278FCC76920404F7800711F8DC0FC
495:101EE00012786920804FFDC7912000801C681F6810
496:101EF00000009120018005A0C0007C1F7C008CA008
497:101F0000F0FF4000821F7810B2297900841F941FCF
498:101F1000971F9D1FA11F951FA51F951F951F951FFB
499:101F2000AB1FDC1FE01FE61FFB1F951F951F7C00EA
500:101F30007810B22978102D1F012001807800072029
501:101F4000012003807800072001200480780007200A
502:101F500078102D1F01200680780007209120008036
503:101F60007E07FCD7C000B71F6920404F3920090009
504:101F70007800BB1F6920804F39200900006886A0C7
505:101F800000004000C51F7F001E6F912001807C0073
506:101F900074687F07BCA000FF412021004920040095
507:101FA000512010007810461E388784A71F00C000FB
508:101FB000CF1F9120018001200A8078000720012096
509:101FC0000C807800072078102D1F01200D807800EC
510:101FD00007201478E4D0C000F91FECD04000F31FB4
511:101FE000FCD74000F31FE4787800F41FE078C67057
512:101FF00001200E80780007207800951FFCD7400054
513:102000000120EC7878000220E878C67001200F806B
514:1020100078000720C270FCD7C0000F20DB700000E2
515:1020200078001120DB700100612000001B600100BE
516:10203000912080407C0080AC0100FF814000432063
517:1020400099203000A0200C7084A0FF0340002520C0
518:1020500018707E001C707E0020707E0024707E0050
519:102060001271AC811A721E732274267503700100FE
520:102070000770010008700B80C8003720077002004D
521:102080008CA0E001C0004320A55306A0037000000F
522:10209000077004007F0026707F0022707F001E7092
523:1020A0007F001A707C0011202000092010000A6BAC
524:1020B0000E6C036800FD076818001A6A002DE8A07E
525:1020C000080090A204000981C00054207C00046034
526:1020D0008660082C63200000687805A06A794000BB
527:1020E0007120022C780072206E797C007E0C6120B9
528:1020F000004F87680301082D6B200000686005A071
529:102100006A6140008320022D780084206E617F0C7C
530:102110007C0091200080042C6E7805A0C0008E20E9
531:102120006A78912001809C6005A04000A7207E0C69
532:10213000602008209C6005A04000A32062209F60D2
533:10214000000065A09C6005A0C0009B2048784A79EB
534:1021500062207F0C487862209F60000085AC000000
535:10216000C000B1207810B2294A787C00A920100064
536:1021700006A0048086808E81C800BC2000A2F000EA
537:10218000B72086808E817C007E15A920100005A0D6
538:102190004000E2201AA1C800E22013828D8148008D
539:1021A000D5201AA1C800D620F000CA207800DA2075
540:1021B0001AA108231082F000CA207E00003284A0F9
541:1021C000FFF780207F007F157C007E00003285A015
542:1021D00000087800DE20747DD07006A54000CE2176
543:1021E0001078502000788CD040000A21ECDA4000B2
544:1021F0000A217E0E9120008071202000047005A02D
545:10220000C000072108707F0E86A0080040000A2148
546:102210007800CE217F0E7800CE217810041E400079
547:10222000CE2146A070790025008012A1092040002F
548:10223000C800192178002021D07206A24000202178
549:102240004088092080007E0C1271077001009920DF
550:102250003000A920200080AC0100A02061200000F7
551:10226000FF88400032217810041E0870FCD0400026
552:10227000322107700200912001808CA0E001C00093
553:102280006921A553FF8CC0004721FF884000B82179
554:1022900078005121002C8E78A920200080AC01000C
555:1022A000A020A5537800B82146A018721C73C4DA88
556:1022B000400059212074247592A240009BA3000085
557:1022C000A3A40000ABA500001A721E73C4DA40007C
558:1022D00069212274267506A0077004004000B82109
559:1022E000FF8C4000722178100D1E7F0C78100D1E9F
560:1022F00046A0887800808A7886A002004000982155
561:102300007C7A787BC4DA40008421847C807D747977
562:1023100007810480048010A299A30000A1A40000FA
563:10232000A9A500001A721E73C4DA4000CE212274DF
564:1023300026757800CE211460FCD0C000A021692051
565:10234000404F7800A2216920804F912000801F68B3
566:102350000200FF884000AE2146A08C786020780003
567:1023600098218B780000AC7885A00300AE7891208E
568:1023700001807800CE217F0C8B78000078108D23AF
569:10238000046084A00F007810CF21FF884000CC218A
570:102390008C786020046084A00F007810CF21780032
571:1023A000E8207C007900D121E121FF211D22E121DB
572:1023B0002E22F221E121E121E121FD211B22E12157
573:1023C000E121E121E121E12139200004BC7805A7C8
574:1023D000BE78086005A70A60781071229C60BA7800
575:1023E0009F600000781077237C00BC78C4D0400048
576:1023F000F8217800E1211C60BDC01E607800052234
577:102400007810BF23BC78C4D0400005227800E121B9
578:10241000BF7800000460078084A0FF00B2780180CC
579:10242000400018227810712240001822BC78C5C0E4
580:10243000BE7878001A22780090227C007810BB23A6
581:10244000BC788CA0000EC0002522C4D0C00027227A
582:102450007800E12178107122C0002D2278009022AE
583:102460007C00BC78C4D0400034227800E121BF78E1
584:102470000000146711200100A822186084A0FF004A
585:1024800005A040005422BCA700FFA92020008EA078
586:10249000010040005422BCA7008011200200A920A6
587:1024A00000018EA002004000542278006E227810B5
588:1024B0002B1E002D912000802B6800002F6800004B
589:1024C000086884A0DEFF0A68E8AD10009120018052
590:1024D000F0005722118240006E22A92000017800EE
591:1024E000572278100D1E7C009F600000B4786DA00C
592:1024F000002CB678C0007C22BA78780084229E68CE
593:10250000002D0260B87806ADC00084220260B07869
594:102510000180B278C0008F22BC78C4C0BE78B87881
595:10252000602006A07C007E0E2EA03025BA7DB67DF0
596:10253000AE65B2651C60A260482084A9FFE11E6000
597:1025400084A960004000A3227810B6469665A6656F
598:102550009A66AA6614677120804FFCD7C000AF222C
599:102560007120404F84A7000F0B8084A71F004000FC
600:10257000BA22038003800380038005A1C47168A18F
601:102580000027078084A00F00038003800380C871A8
602:1025900000A1C260912000801478C4D04000DF22E6
603:1025A000ECD04000DB22FCD7C000D822F4D0C00021
604:1025B000E6227800DF22FCD0C000E6221078F4D0BA
605:1025C000C000E622086E84D640001023FCD9C0006B
606:1025D0001023912001807810A21E91200080781095
607:1025E0006420912001801478E4D0C0007523147811
608:1025F000C4D040007523ECD040000823FCD7C000B5
609:102600000323F4D0C0000C2378007523FCD0C00055
610:102610000C23780075231078F4D0400075231B60DC
611:10262000210078007523246096A00100C0001723C4
612:1026300000802660106A146802A248002A23400025
613:102640002A2391200180392000029C60BA789F6083
614:1026500000007810772378007523082CFCD94000FF
615:102660005223006865A040005223046A007084A0D1
616:102670000200400048234C7006A2C0004823046BAF
617:1026800060210423026005A0C00044230269602287
618:10269000026178005E23002D60207810132B086EF5
619:1026A00060210262066978005E230068026965A005
620:1026B00040005A23026178005B23066960210360B1
621:1026C00000006021FCD940006523B4A6FCFF0A6E1F
622:1026D0001068087D28850A7D00801268912001809D
623:1026E000B4D640007523B6A640000A6E7810B31E1B
624:1026F0007F0E7C00086005A70A609120008078109A
625:10270000642091200180B87865A040008A239C60F5
626:10271000BA789F60000078007723B678BA787C009A
627:1027200070797478182884D340009723008012A110
628:1027300048009C23008012A1C800AC2384C37C7A8B
629:102740001A72787A1E72C4DA4000A723847A227241
630:10275000807A267206A084D34000AC23008076786D
631:10276000D2701C7805A04000BA2301801E78C000FA
632:10277000BA236800BA23912080407C003920D323FB
633:102780007800C1233920D923042705A04000D22393
634:1027900000AC68200869106812690A680C6914683E
635:1027A00016690E6838877800C1237C000300090091
636:1027B0000F0015001B00000015001B000000412049
637:1027C00000000C787900E123B3258625E5235E24FB
638:1027D000392074973427107D78000524846086A002
639:1027E0000301C00047241461186005A14000FA23CA
640:1027F000FF86C000162478004724038680A05597E2
641:102800000C6202220080106202227810862030863C
642:102810008EA60F004000D2246C7865A0C000EB2388
643:10282000087802A6C8001624ACD5C00016243A26A3
644:102830007C0082A60300C800D22491200080692079
645:102840000000186884D0C00042241120559704224B
646:10285000C67010820422CA7084D6C000322410824E
647:102860000422DA7010820422DE7085A62080C270F5
648:102870001B68010091208040107884A0CFFF12785F
649:10288000912001803B2000007C001078ADC01278C0
650:102890007800D2243A267810BD25C000E0256C7857
651:1028A00065A0C000EB2391200080107884A0CFFFAA
652:1028B000FF8640005924ADC0127891200180780035
653:1028C000E025392074973427107D78007A248460BD
654:1028D00086A00301C000BB241461186005A140005C
655:1028E0007324FF86C0008B247800BB2480A65597F4
656:1028F0000C6202227810862030868EA61E004000D0
657:10290000D2246C7865A0C0006424087802A6C800B0
658:102910008B24ACD5C0008B243A267C0082A606000E
659:10292000C800D2249120008069200000186884D05B
660:10293000C000B6241120559709204E97A8261C21C7
661:1029400004221A2008811082F0009C2485A6308081
662:10295000C2701B68010091208040107884A0CFFFD6
663:1029600012789120018006A0092075970A203A204C
664:102970007C001078ADC012787800D2243A26781006
665:10298000BD25C000E0256C7865A0C00064249120BE
666:102990000080107884A0CFFFFF864000CD24ADC01A
667:1029A0001278912001807800E02591200080077046
668:1029B00004009479D47002A14800E3244000ED247F
669:1029C000907B02A3C000ED247800E6240280C000C2
670:1029D000ED243A261078ADC01278912001807C0059
671:1029E00084A100FF4000FA240F810C810C81048037
672:1029F0000480078000A17800FD2407810480048002
673:102A00009C7A10A21A72987A06A011A21E72C4D4DF
674:102A100040000D25A47A11A22272A07A11A226727A
675:102A2000A120300003700000092054970A26098174
676:102A30009821042184D040001B253386B0A60200D3
677:102A4000A826A65303861270077001009079947827
678:102A500000800AA1C8002A2506A02820747984A134
679:102A600000FF400039250F810C810C810480048017
680:102A7000078000A178003C250781048004807C79D0
681:102A800008A1787A06A011A2C4D440004825847B0E
682:102A900019A3807C21A40870FCD04000482584A0A4
683:102AA000E00140006D25107D312054973426A87830
684:102AB0000080AA788CD0C0006225077006000470E0
685:102AC00094D0C0005C257800D4246920474F6B2047
686:102AD0000300AC7885A00003AE7806A078007625C8
687:102AE0003020D67591208040967D107DACA5CFFF1B
688:102AF000127D91200180AA78077006003A260370A3
689:102B000001001A711E72C4D54000852522732674F7
690:102B10007C00846086A00301C000A92514611860B0
691:102B200005A1C000A92569200000186884D0C00054
692:102B3000A9250C60C6701060CA70C37020801B6825
693:102B4000010091208040781086206800A8256C78CC
694:102B500065A0C00086257C007810BD25C000E0255A
695:102B60006C7865A0C00086257800E0257810BD252A
696:102B7000C000E0256C7865A0C000B3257800E02592
697:102B8000846086A00301C000D1251860FCC01A60D3
698:102B900086A00400C000D1250478A4D04000D1252F
699:102BA0007810862006A07C007810E625C000D82585
700:102BB00085A001007C007810F525C000DE254120AD
701:102BC0000100107D7C00FF884000E52591208040B9
702:102BD0007C00907B9479D47002A1C000EF2585A37E
703:102BE00000007C004800F32502A37C0002807C00EA
704:102BF0001078ECD040000D267E0E912000807120D0
705:102C00002000047005A0C0000A2608707F0E86A070
706:102C1000080040000D2678005E267F0E78005E26B4
707:102C200084A100FF40001A260F810C810C810480D2
708:102C30000480078000A178001D260781048004809D
709:102C40009C7A987BA47CA07D10A206A019A321A445
710:102C500029A509201800286005A040002E2609207B
711:102C600040007810BB1D40005026A8780080AA784C
712:102C70008CD0C0005E261460FCD0C00040266920C5
713:102C8000404F780042266920804F912000801F68C5
714:102C90000300AB780000AC7885A00003AE789120EB
715:102CA000018078005E26AB7800007810862090794D
716:102CB000947800800AA1C8005B2606A09678D6709A
717:102CC00006A071201000912001807C00FCD7C0007C
718:102CD0006A260920594F78006C260920994F9120C7
719:102CE00000800A207E0FFCD7C00083260920404FB9
720:102CF0000120044F0420ECD040007F267920000101
721:102D00007800872679200002780087260920804FE6
722:102D100079200001042186A00000C000A026FCD775
723:102D2000C00093260920454F780095260920854F3D
724:102D3000042105A0C000A026307884A0C000C000F7
725:102D4000A0261B7845007F0F7C0009200200692027
726:102D5000004F1068ECD0C0000F277120804F792001
727:102D600000012120BF514B780F001920A74484D1C6
728:102D70004000C3261068ECD04000BF26A1202B01E4
729:102D80007800C526A1202B027800C526A1202B01A2
730:102D9000042305A04000D2269A781883AC23188318
731:102DA0009823A65318337800C5269B782000A920C5
732:102DB00010001468E4D04000E226AF780000AF783D
733:102DC0002090F000DA267800E826AF780000AF788F
734:102DD0002080F000E226037000007E018CD10920E3
735:102DE00000004000F126BDC17810E2287F0120706C
736:102DF00084A00F007E001468E4D07F00C00001278B
737:102E000085A040637800032785A0C06206780F780C
738:102E100000924378D800537880000B7808005674ED
739:102E2000537000000981400022277120404F106834
740:102E3000ECD040001C277920000178001E27792063
741:102E400000022120BF4F7800B0267C007E01BCD15B
742:102E5000C00037277E000120044F0420ECD07F0003
743:102E60004000332711200101780039271120010289
744:102E700078003927112001018CA10F00042284A0C1
745:102E8000F0FF05A112207F017810E2287C00FCD31E
746:102E9000C00057277E000120044F0420ECD07F00A3
747:102EA0004000532711200101780059271120010209
748:102EB0007800592711200101A92009000B81F00099
749:102EC0005B278CA1000E042284A0FFF105A1122033
750:102ED0007C00192002000120044F0420ECD04000A7
751:102EE0007327198309200101780075270920010142
752:102EF000A92005001382F000772794A2E0000421A6
753:102F000084A01FFF05A20A201983400088270920FA
754:102F10000102780075277C00FCD3C0009C277E004E
755:102F20000120044F0420ECD07F004000982711209E
756:102F3000010178009E271120010278009E271120B0
757:102F40000101A9200C000B81F000A0278CA100F04A
758:102F5000042284A0FF0F05A112207C00FCD3C00036
759:102F6000BE277E000120044F0420ECD07F004000EB
760:102F7000BA27112002017800C02711200202780030
761:102F8000C02711200201042284A0CFFF05A1122036
762:102F90007C007E0CBCD1C000DA277E000120044FEB
763:102FA0000420ECD07F004000D6276120000178008B
764:102FB000DC27612000027800DC2761200001BCC111
765:102FC0000381038080A020009A60AC62AC637F0C18
766:102FD0007C007E0CBCD1C000FA277E000120044F8B
767:102FE0000420ECD07F004000F6276120000178002B
768:102FF000FC27612000027800FC2761200001BCC191
769:103000000381038080A022009A60A46084A0DFFF77
770:10301000AE607F0C7C007E0CBCD1C0001C287E0002
771:103020000120044F0420ECD07F00400018286120CC
772:10303000000178001E286120000278001E2861200F
773:103040000001BCC10381038080A022009A60A460BB
774:1030500085A02000AE607F0C7C007E0CBCD1C0003F
775:103060003E287E000120044F0420ECD07F00400069
776:103070003A28612000017800402861200002780091
777:10308000402861200001BCC10381038080A0200092
778:103090009A60A4608CA2200040004E28ACC29DA380
779:1030A0000040FCC3B4D3C0005328FDC3AE6210205F
780:1030B000A460AE6318207F0C7C00912000807E0C01
781:1030C0007E0E186805A04000C028FCD14000692889
782:1030D0006120D09678006B286120C0957810C828B0
783:1030E0004000A228A9200101FCD1400078286120DD
784:1030F000D09578007A286120C0947E0C7810C8287A
785:10310000400085287F0C608CF0007A287800C02869
786:103110007F00FCD140008F2882A0D0957120804F85
787:103120007800932882A0C0947120404F7A70767105
788:10313000382101200400667083700F00D471DCC157
789:10314000D671781063267800BC28FCD1C000A9286D
790:103150007120404F7800AB287120804F2060DDC087
791:10316000226076713821002C7E7001200600667086
792:1031700083700F00D471DCC1D671781063260120F2
793:1031800000007800C228012001009120018005A0E4
794:103190007F0E7F0C7C00042C05A04000DF286020FF
795:1031A000106006A3C000DC280C6006A2C000DC286A
796:1031B000146006A1C000DC2806A07800E1280060A9
797:1031C0007800C92885A001007C007E0F7E0E7E015C
798:1031D000BCD1C000FA287920404F7E000120044F66
799:1031E0000420ECD07F004000F62871200001780018
800:1031F000FE28712000027800FE287920804F71207F
801:10320000000120798CA10F00EC70C4D0C000082907
802:103210007F01780023290B810B810B810B817F00BB
803:10322000BCD0C00020297E000120044F0420ECD037
804:103230007F0040001C298DA1000F780022298DA15C
805:10324000000F780022298DA1000804217F0E7F0F36
806:103250007C007E0E0120014F0420ACD0C000A329C9
807:10326000E468ACD04000A32984A00600C000A329D4
808:103270001460FCD0C0003D297120C05378003F2964
809:1032800071204054078084A00F00038003800380D6
810:1032900070AE047084A00A00C000A329087194A134
811:1032A00000FF4000A3298CA1FF0001200A0006A115
812:1032B0004000722901200C0006A14000762901205F
813:1032C000120006A140007A290120140006A1400046
814:1032D0007E290120190006A1400082290120320028
815:1032E00006A14000862978008A2909200C00780070
816:1032F0008C290920120078008C29092014007800FC
817:103300008C290920190078008C29092020007800D8
818:103310008C2909203F0078008C2911200000002111
819:1033200005A20A707120004F0470BCD04000A32990
820:103330001460FCD0C0009E29EA707120404F7800D4
821:10334000A129EE707120804F1F700D007F0E7C0050
822:103350000120054F0420E4D0C000B129047884A0E6
823:103360001FFF85A0406306787C006800B229912089
824:103370000080712000007E00187084D0C000B92940
825:103380007F0071201000CA707F00C670C370028079
826:10339000DB700F08DF700B00712000001B70010054
827:1033A000912080407800CF293C7F587E307C387D4A
828:1033B000A0788E70927596749A769E7794A53F0049
829:1033C000F4D44000E62984A77D00C0001D44781095
830:1033D000B2299CA40F0082A304005000F129A6A3E7
831:1033E0000700C000B2291824078584A00F007900C7
832:1033F000F629713062318D31FF33E8376238173981
833:10340000A839963A853B092A062A422E652FB937F4
834:10341000062A7810B2297C0006A07800132A0878C2
835:103420008DC00A7806A002704E704670D27060702F
836:1034300005A0C000792B647084A0070079001D2AC4
837:10344000252A982AA12AAC2AB72A5F2BC22A982AB1
838:103450003078BCD0C000082AD471BCD1C000082A82
839:10346000B4D1C000752AA47086A001004000082ACB
840:10347000B4706DA0006865A055A09B7810000C6B1F
841:10348000AA7B086845A0106D04686DA05DA086A8A1
842:10349000010040004B2ABC69AA7DAA79C0684DA0F2
843:1034A0001C6E012010007800D32C607005A0C000B5
844:1034B000082A7E0C7E0DB4706DA0006865A055A032
845:1034C0009B7810000C6BAA7B086845A0106D0468FF
846:1034D0006DA05DA086A8010040006E2ABC69AA7D8F
847:1034E000AA79C0684DA01C6E012020007800D32C62
848:1034F0007810B043C000082A1B785B00BC706DA038
849:10350000B4685A789468D678DE789868D278DA7891
850:1035100008788DC00A78BC684270B4C1D671B870A2
851:1035200065A0C0685A7003700200002D4E7080AD17
852:10353000090046707C007810B043C000A02A1B78B8
853:103540004700037004007C007810B043C000AB2A31
854:1035500011200C007810D22A037004007C0078102F
855:10356000B043C000B62A112006007810D22A03709A
856:1035700004007C007810B043C000C12A11200D0067
857:103580007810D22A037004007C007810B043C00089
858:10359000D12A112006007810D22A7C707F7000009A
859:1035A00068204E70037001007C007471FCC10781BB
860:1035B00082789B78100086A20C00C000E12AAA7ACB
861:1035C000012001007800F62A8CA11F008DA1C00007
862:1035D000AA7986A20D004000EF2AAA7A01200200F3
863:1035E0007800F62AAB7820007871AA79AA7A0120AF
864:1035F00004009B786000AA785B7804001B781601B1
865:103600007810D34383700F00D470B4D04000122BD5
866:10361000B4C0D6707E0CB87065A0086084A0EFFBC3
867:103620000A60186001801A607F0C7C00147005A08D
868:10363000C000212BD470B4D04000222BB87006AC4F
869:10364000C000222B7810012B7C007E01A47186A182
870:1036500001004000542B7E0D7E020021112001004C
871:1036600012A2B4706820006806AC40003B2B1182A7
872:103670004000522B7810562B7800302B7E0C002106
873:103680001120010012A2B470682000686020086058
874:1036900084A0EFFB0A60118240004F2B7810562B5C
875:1036A0007800422BA77001007F0C7F027F0D7F0105
876:1036B0007C00E8AD0500AC7006ADC0005E2BA870C4
877:1036C00068207C007810B043C000082A7C70682015
878:1036D000747778104E42502C781092449B781000EA
879:1036E000146884A01F00BDC0AA781C6E4120010090
880:1036F000012004007800D92C7810B043C000082ABB
881:103700009B78100060706820146FD470B4D04000B3
882:10371000932BB4C0D6707E0CB87065A0086084A0EE
883:10372000EFFB0A60186001801A607F0C78104E422F
884:10373000502C78109244246805A04000A42B82A04D
885:1037400006004800A22B7800A42B27680500146807
886:1037500084A01F00BDC0AA783120200041200100B4
887:10376000012003007800D92C8DC2D672C07200A24D
888:1037700015A0547108812AA14800BC2BC071642196
889:103780000465FF85C000D32B56712184C000B72B80
890:10379000D4708CD04000CF2BD07005A0C000CF2BB0
891:1037A000D3700A007C0000227800C12BD4708CC03A
892:1037B000D670D3700000346005A0C000D02B08671D
893:1037C00084A73F074000022CD4D7C000D02B84A789
894:1037D0002100C000D02B84A702004000F32B84A757
895:1037E00004004000D02BBCA7FBFF0A6784A7180287
896:1037F000C000D02B84A700014000022C186005A057
897:10380000C000D02BBCA7FFFE0A6768252368000014
898:103810001C6E84A60E0018634000132C1C6002A3CB
899:103820004800162C4000162C7800D02BFF83C000D7
900:10383000D02B582D502C5671BCD7C0001F2C28708F
901:1038400022603A60BCC70A67C06865A04DA00061ED
902:10385000602A41200100146B9CA31F009DA3C0009F
903:10386000FCD14000332C84D64000352C9CA3BFFFF4
904:10387000A4D640003A2C9DA3200084A60E00C000D0
905:10388000852CA5C70A67002CC668A47786A7010007
906:10389000C000592CD470B4D0C000592C007082A044
907:1038A0000200C800592C3078BCD0C000592C9B783D
908:1038B0001000AA7B7800D12C3987A6775027B077E3
909:1038C000B0A70500AC7006A6C000642CA876B2763E
910:1038D0003A2C38873A2D38873A2838873A23388760
911:1038E0003A253078BCD040007C2C9120008091207B
912:1038F0003D30D47084A03D30912000809020D5AA26
913:1039000000004000842C21840022C000B62B7C00E3
914:10391000DCD14000493E292020009CD6C000922CDA
915:1039200028858CD6C000922C28854088146F0C61A5
916:1039300008818CA1FF00CC7060A1642CFF8C40003A
917:10394000B12C146006A7C0009A2CB8600180BA6040
918:10395000C000952C602A086085A000010A60002242
919:103960002184C000B62B7C00602A0E61BE69002C49
920:10397000C66840880860D5C00A60A47786A70100A1
921:10398000C000592CD470B4D0C000592C007082A053
922:103990000200C800592C3078BCD0C000592C9B784C
923:1039A0001000AA7BAA7DAA79012002007E0018607F
924:1039B00000801A607800DA2C7E0060290461602A99
925:1039C00084A118004000F62C84A110004000E92CCE
926:1039D00078105E40C0001B2D84A108004000F62C2A
927:1039E000A06984A10006C000F62C78103E3F780044
928:1039F0001B2DA06984A1001E4000262D84A1000873
929:103A000040000F2D7E0C6029006085A00020026020
930:103A100004618DA1100006617F0C78105E40C0002B
931:103A20001B2DA06984A100024000172D7810A13F32
932:103A300078001B2D84A10004C000F22CA06984A191
933:103A400000104000262D14698CA100FF0F81781012
934:103A5000E6277F028CA6E00084A660004000332D9C
935:103A600086A06000C000332D8DA100408DA104010F
936:103A7000B6699B7860000028AA781868FDC01A68AB
937:103A8000BCD640004E2DFCC0877000008AA00D00FF
938:103A900050004C2D8AA00C00867101200C000C8077
939:103AA0008A71AA781835403328340080AC8080AF02
940:103AB0002B00A0209B78000080AD0B009820A6531F
941:103AC000A8239828A02586A22000C000862DD470A7
942:103AD000B5C0D670002CBA70002DBE701468FCC042
943:103AE0000780827886A202004000BC2DA47000806E
944:103AF000A670B47498A40500AC7006A3C0007E2D17
945:103B0000A873B67386A210004000082A7F0D7F0CB0
946:103B10007C00007005A0C000642D86A20200C000D9
947:103B2000D62D7810B043C000642D1468FCC0078007
948:103B30008278912000801B785B00B4685A78946882
949:103B4000D678DE789868D278DA7891200180087883
950:103B50008DC00A787E127E0D7E0CD47084A0002762
951:103B600090207F0C7F0D7F1200295A70BC68427034
952:103B700003700200002D4E7080AD09004670307851
953:103B8000BCD04000C82D91203D30D47084A03D3081
954:103B9000912000809020A47005A0C000CD2D7C0055
955:103BA00021844000CC2D5072C07000A215A0780076
956:103BB000B62B86A21000C000072E7810B043C000BC
957:103BC000642D1468FCC0078082781B785B00B468A1
958:103BD0005A789468D678DE789868D278DA78087857
959:103BE0008DC00A78A4700080A670B47490A40500FB
960:103BF000AC7006A2C000FA2DA872B67200295A70E5
961:103C0000BC68427003700200002D4E7080AD090048
962:103C100046707C00B46B9DA300205A7B1468FCC0E6
963:103C200007808278946BD67BDE7B986ED27EDA7EBC
964:103C30001B785B0000295A70027208788DC00A78E0
965:103C4000002305A64000322ED47084A0002786A051
966:103C50000023C0002C2E0920000078002E2E092001
967:103C6000010084A20F007910382E80AD0900467043
968:103C7000002D4E707C00402E3F493F492C493F4962
969:103C8000402E402E402E7810B229087884A0FDFFE7
970:103C90000A787810A5297E0F7920004FAC787F0F25
971:103CA00084D040006A2E647086A00100C000582EA7
972:103CB00066707800412F647086A00500C000682EF1
973:103CC0007C7068201B68040017680000206884A0CE
974:103CD000FF009DC0226867700000A7700000A870F8
975:103CE000B270B6707810012B7E151120040064713B
976:103CF00086A1010040008A2E86A10700C000812E07
977:103D00001F70050078008A2E1F7001006770000088
978:103D1000D470DDC0D67078008C2E67700000012052
979:103D20000A4F042084A0FF0086A0180040009C2EAB
980:103D30001870167005A0C0009C2EA77001007E06AA
981:103D40007810D645A920100039200000781048418D
982:103D5000B8A70001F000A32E7F0600707900AD2EF9
983:103D6000E72EC22EC22EB72EE72EE72EE72EB52E57
984:103D70007810B229607005A04000E72E06ADC000A3
985:103D8000C22E006862707800D42E206884D0C000F3
986:103D9000D02E146F78104E420860D4C00A6078109C
987:103DA000193E7800D42E5C7060200068026084A602
988:103DB000005F1E681868FCD04000DC2E1A6A176885
989:103DC00000002B680000206884A0FF009DC02268CE
990:103DD0007810732084B200044000EF2E2120D0968A
991:103DE0007800F12E2120C0957810462F84B200046F
992:103DF0004000FB2E2120984F7800FD2E2120584FA7
993:103E00007810462FA920010184B200044000092F38
994:103E10002120D09578000B2F2120C0947810462FB8
995:103E20002084F0000B2F84B200034000182F612083
996:103E3000C05478001A2F6120C07421200200A920EC
997:103E400000011061FF814000372F18607E017E0065
998:103E50001120024F0C2202A112207F007F0102A13B
999:103E60005000372F1260C000372F1120044F04225A
1000:103E7000A5C012201B600000E0AC1000F0001E2F57
1001:103E80002184C0001C2F7F15037000004F700000BC
1002:103E90007C007E04042405A04000612F6820006897
1003:103EA0007E001A6A176800002B680000B46884A0BE
1004:103EB000005F1E68206884A0FF009DC02268781003
1005:103EC00073207F007800482F7F04232000007C00AF
1006:103ED00082A2030050006B2F7810B22900237900D2
1007:103EE0006E2F712FFC2F193082A202004000772F15
1008:103EF0007810B22964706770000083700000790048
1009:103F00007E2F862F862F882FC82F553E862FC82FAD
1010:103F1000862F7810B2297477781048417477BCA73F
1011:103F2000008F78104E42186005A04000BF2FFCD7CC
1012:103F3000C0009B2F2120C09578009D2F2120D09676
1013:103F40000920050011201000781034304000BF2FE8
1014:103F50007E15A9200101FCD7C000AF2F2120C094FD
1015:103F60007800B12F2120D0957E0409200500112072
1016:103F70001000781034307F044000BE2F2084F00001
1017:103F8000B12F7F15388784A71F00C0008E2F7800BF
1018:103F90000C2A78000C2A747778104E42186005A01D
1019:103FA0004000FA2FFCD7C000D62F2120C095780002
1020:103FB000D82F2120D096092005001120200078104C
1021:103FC00034304000FA2F7E15A9200101FCD7C00033
1022:103FD000EA2F2120C0947800EC2F2120D0957E0478
1023:103FE0000920050011202000781034307F044000A3
1024:103FF000F92F2084F000EC2F7F1578000C2A002286
1025:104000007900FF2F0230043004307810B2290920E3
1026:104010001200647086A0020040000D3009200E00DE
1027:104020001868FCD0400012301A6967700000D47024
1028:10403000DDC0D67078005D43002279001C3021304D
1029:1040400004301F307810B2297810D645007086A051
1030:104050000200C000C73D7810363E086084A0EFFB28
1031:104060000A607810B83D4000C73D78000C2A04244F
1032:1040700005A040006D306820042D7E00146806A75E
1033:1040800040004330202D7F00780035307F00222013
1034:104090001A69176800002B680000B46884A0005FEC
1035:1040A0001E68206884A0FF0005A222687810732093
1036:1040B0002120024F1C2419832223106001801260EA
1037:1040C000C00064302120044F0424A5C022200860D1
1038:1040D00084A0EFF90A607810222B7810363E7C001D
1039:1040E00085A0010078006C300023790074307930AD
1040:1040F0007730F9307810B229E47805A0D000AF30DD
1041:1041000008327E000120044F0420ECD07F004000E4
1042:104110008A308CA1000378008C308CA10004400010
1043:1041200092301800082A780094302800082A0820C5
1044:1041300084A03000C0009B307800B937EC7884A0B0
1045:10414000030040009930002184A007007900A530C9
1046:10415000D930E330CE30AD30A543A543AD30EE309D
1047:104160007810B229007086A00400C000C9306470C5
1048:1041700086A00200C000BF301120020019200000FC
1049:104180007800652F647086A006004000B930647026
1050:1041900086A004004000B930E479012003007800D3
1051:1041A00043341868FCD04000D4301B681D007810E0
1052:1041B00018411B7864007C001868FCD04000DF3098
1053:1041C0001B681D0078101841780081431868FCD0E6
1054:1041D0004000E9301B681D00781018411B78F8007A
1055:1041E0007C001868FCD04000F4301B681D0078107B
1056:1041F00018411B78C8007C0084A50F00C00018314E
1057:104200007810A5290070790002310C2A0A310C318E
1058:10421000C73DC73DC73D0A310A317810B229781031
1059:10422000363E086084A0EFFB0A607810B83D40007D
1060:10423000C73D78000C2AE47805A0D000AF300832E2
1061:104240007E000120044F0420ECD07F004000293183
1062:104250008CA1000378002B318CA100044000313187
1063:104260001800AF30780033312800AF30082084A028
1064:104270003000C0003B311B785B007C00EC7884A0F0
1065:10428000030040003831002184A107007900453146
1066:10429000543158314F314D31A543A5434D319F43E2
1067:1042A0007810B229781020411B7864007C007810C7
1068:1042B000204178008143781020411B78F8007C0071
1069:1042C000781020411B78C8007C00002379006531FC
1070:1042D0006A3168316C317810B2297800A8391B68CE
1071:1042E0001600A3780000E47984A130004000A839CA
1072:1042F000EC7884A003004000A83984A100014000AC
1073:10430000703184A10700790082318A315831CE3072
1074:104310005D43A543A5435D439F43781069437C00FB
1075:1043200082A20500500093317810B2290023790051
1076:1043300096319931C933D433002279009C31B6319A
1077:10434000A331B631A131AC337810B2299B78180073
1078:10435000A87884A0FF0082A02000480007418AA01E
1079:104360000400C80007417900B23107410741074105
1080:10437000B1409B781800A87984A180004000C73123
1081:1043800078000741007005A0C000BD311120040075
1082:104390007800933B84A1FF008AA01000C800074169
1083:1043A0007900CF31E131DF31F631FA31CD320741D9
1084:1043B0000741CF3207410741A833A83307410741DE
1085:1043C0000741AA337810B229E4D64000EC3101202D
1086:1043D0000003008000803A781B78C3007C001868D6
1087:1043E000FCD04000F4311B681D007800E4317800F7
1088:1043F0005D431B681D00780011412069226984A675
1089:104400000018C0005F32206884D0C0006532186890
1090:1044100086A00800C0000B321B680000D4D6400004
1091:10442000CA32BCD640004B3287700000186884A0A6
1092:104430003F008AA00D0050004B328AA00C0086710C
1093:1044400001200C000C808A719B786100AA787E158F
1094:104450007E137E147E0108328CA1000340003D32A1
1095:104460007E000120044F0420ECD07F004000393250
1096:10447000A1202B0178003F32A1202B0278003F328F
1097:10448000A1202B017F019B7800000080AC8080ADD3
1098:104490000B009820A6537F147F137F15386005A06A
1099:1044A000C0005A321C6884A00E00400011417810F0
1100:1044B00027412B78083078005C3201803A601B7805
1101:1044C00067007C00E4D6400065321B7879007C00F0
1102:1044D00084A660004000C732DCD64000C732FCD65C
1103:1044E000C000713278008832FCC65A7EB66EDC7A23
1104:1044F000D879D0781B80C8007B32008084A03F0030
1105:1045000008A191A20000986B002102A3B268946BED
1106:10451000002203A3AE68F4D640008E32F4C65A7E61
1107:10452000B66E007086A00300C0009C327E0078103A
1108:10453000D64578103F497F001B7876007C0006A0A6
1109:104540007810444AB06AAC69986C946B002205A15B
1110:104550004000AB32002222A400211BA3AA6CD27C13
1111:10456000DA7CA66BD67BDE7B002305A4C000BB32C1
1112:10457000F5C65A7EB66E1B7876007C001B787600F6
1113:10458000002215A1C000C43278103F497C00781089
1114:1045900077497C001B7879007C001B7867007C00E1
1115:1045A0007810B22978001B332069C4D14000E4326E
1116:1045B000C4C122697E0C587060200060E4C00260B3
1117:1045C000046084A0F5FF06607F0C78000F33CCD127
1118:1045D00040000F33CCC122697E0C5870602000600F
1119:1045E000ECC002600460A4C006600820482C7F0C68
1120:1045F0009CD140000F3378104A4278103E3FFF882C
1121:1046000040000F339B7860000028AA78587E95C63A
1122:104610005A7ED4D6C0000C331B7864007C001B7813
1123:1046200078007C00587ED4D6C00016331B78670013
1124:104630007C001B7879007C0078000C411920000078
1125:1046400090798CA10700C0002933206884A0000164
1126:1046500040001933092008009B781000A87894A026
1127:10466000FF0086A20100C00045330023A87C00A4FF
1128:10467000182002A140003D3348003D3378003F330D
1129:104680007800D132A824A87AF0003F3378002B3389
1130:1046900084A2F00086A02000C000993318831883FC
1131:1046A000002302A14000553348005533780096336B
1132:1046B00086A22300400019331C6884A0F1FF1E6805
1133:1046C000587E84A6F1FFA5C030205A7E0860A5C0A0
1134:1046D0000A607E0C5870602004600820482C7F0C13
1135:1046E000A4D14000763378104A4278105E407800BA
1136:1046F00084337E0C5870602004600820482C7F0CA6
1137:104700009CD140000F3378104A4278103E3FFF881A
1138:1047100040000F339B7860000028AA7895C65A7E27
1139:10472000D4D6C00093331B7864007C001B787800DB
1140:104730007C00A87A78002B331883002302A1400064
1141:10474000A2334800A23378002B3384A28000C0003B
1142:10475000114178000C4178001141780007415870F0
1143:104760004DA09B781800A87884A0FF008EA00100BF
1144:104770004000B9337810B229A87A94A2FF00A87833
1145:1047800084A0FF008AA00400C80007417900C53357
1146:1047900007418F3E0741064082A20000C000CF3390
1147:1047A0007810B229781018411B7878007C0082A21A
1148:1047B0000300C000DA337810B229FCD4C000FA3309
1149:1047C000647005A04000E3337810B229146F767747
1150:1047D000BCA7008F78104E42086085A021000A60B7
1151:1047E000388784A71F00C000E73378101C4167702A
1152:1047F00002001F7009007800FC3378102B411B78F1
1153:1048000078007C0082A20400500005347810B229A0
1154:104810000023790008340B34CB350E3686A2030012
1155:10482000400043340072D87CDC7DD07FD471BCD191
1156:10483000C0003B34B4D140003B34687884A0FF0012
1157:10484000C0003B3482A20200C8003B347E0D3B789E
1158:1048500000831B784C00BC706DA0B4685A789468D3
1159:10486000D678DE789868D278DA78B4C1D6710370D9
1160:1048700030007F0D01200000780047343B780013A2
1161:104880001B784A0001200000780047340072D87C71
1162:10489000DC7DD07F4A70A068ECD040004F340860C7
1163:1048A0008DC00A6084A20F0079005334AB356034A8
1164:1048B0005D3411379D370C2A5B345B347810B22994
1165:1048C0000860D4C00A60E4D640006834487086A00E
1166:1048D0001400C00088347810D645092000001868FC
1167:1048E000FCD040007134487086A01400400082342F
1168:1048F000186886A00800C000633558789CD0400036
1169:1049000063352068ACD0400063351B681400092073
1170:1049100002007800C73468788CA0FF004000C734DC
1171:1049200086A10800C0009E340860A4C00A60781008
1172:10493000B83D4000C7347810363E7810D645780030
1173:10494000AF3486A12800C000C734186005A040001D
1174:1049500091340180400091340180400091341E6008
1175:1049600078009134206884D040000C2A84C02268EA
1176:104970007810132B5C707E0C6020006802607F0C46
1177:104980000460026805A0002DC000C4340260066007
1178:1049900078000C2A7E01FF81C0001135007086A0CE
1179:1049A000300040001135D471BCD1C0001135B4D1F4
1180:1049B000C000F834607005A0C0001135A47086A056
1181:1049C000010040001135037000007E047E057E0763
1182:1049D0007E067E0C7E0D7810352A7F0D7F0C7F06BB
1183:1049E0007F077F057F04D471B4D1C00011350370F7
1184:1049F0004000780011357810B043C00011351B78A5
1185:104A00005B007E0DBC706DA0B4685A789468D6784F
1186:104A1000DE789868D278DA78B4C1D6710370300045
1187:104A200008788DC00A787F0D781048367F01FF81A5
1188:104A30004000633584A600DF1E682B680000146FF9
1189:104A400086A10200C0006435186886A01400C0006A
1190:104A50002D350820E4D640002D3568788CA0FF0065
1191:104A60007810012B7810222B2068DCD0C000643530
1192:104A7000178794A20F0013821382138284B200035B
1193:104A80004000433590A2C0537800453590A2405471
1194:104A900090A200001C22C4D3C0004D3578005335CD
1195:104AA0001082042285A0180012201182D4D3400065
1196:104AB0005E35A068C4D0C0005E357810C23678007C
1197:104AC0000C2A08608DC00A60780064352A6916696E
1198:104AD0001868FCD040006B3548701A688CA600DF5F
1199:104AE0001E691064FF84400080350920024F0421B4
1200:104AF00001800A2021841264C00080352120044FE7
1201:104B00000424A5C02220186005A04000883501803B
1202:104B10001A60C0008B350860A4C00A60206884D089
1203:104B2000C0009735006805A0C0009435026006609B
1204:104B300078009B355C706020006802606120004F47
1205:104B400087680301082D6B200000686005A06A617A
1206:104B50004000AA35022D7800AB356E61007286A246
1207:104B600030004000BB3586A24000C0000C2A037014
1208:104B700002004C706820C46860207C000370020052
1209:104B8000BC706DA0BC684270B87065A0C0685A70F7
1210:104B9000002D4E7080AD090046707C0082A204009A
1211:104BA0004800D1357810B22900227900D435D835A3
1212:104BB000E935F635E93586A500134000E93586A5C7
1213:104BC0000083C000CF3503700000186001801A60B8
1214:104BD000086084A0EFFB0A60007086A0050040001A
1215:104BE000F335781018411B7878007C001B78790029
1216:104BF0007C0090780780018084A0070080A01800C6
1217:104C00009A78A8798CA1FF0086A1030040000B369A
1218:104C100086A1000040000B36780007411B78790020
1219:104C20007C00206895C02268FF82C000183678108A
1220:104C3000184178001F36118240001D367810B229C5
1221:104C400078102B411B7878007C007810D3433078A3
1222:104C500084A0C000C00045367E0108327E000120DD
1223:104C6000044F0420ECD07F00400037368CA10003B5
1224:104C7000780039368CA100047F01400040361800CE
1225:104C8000453678004236280045361A7906A07C0061
1226:104C900085A001007C0084A66000C00052362F6809
1227:104CA0000000336800007800C136DCD6C0006A36E8
1228:104CB000B468DCD0C0006A369869946A2E69326A9A
1229:104CC000487005A0C0006736002205A14000D64507
1230:104CD0004B7015007800D6457C00ACD6400090366D
1231:104CE000F4D6400076362F68000033680000780064
1232:104CF000D645B46884A0004035A6F4D6C00070360E
1233:104D0000487005A0C00083364B701500DCD6C0008B
1234:104D10008C36B468DCD040008C36A86CA46D2E6C48
1235:104D2000326D7800D645F4D6400099362F680000E1
1236:104D3000336800007800D645B46884A0004835A6E2
1237:104D4000F4D6C0009336487005A0C000A6364B705C
1238:104D50001500082410250027FB80C800AD36008010
1239:104D600084A03F0008A191A200002E69326A0021B0
1240:104D700005A2C000BA367800D645007086A00600AD
1241:104D80004000C1367800D6457C0046690860CDC039
1242:104D9000CCD34000C9368DC00A6018683A681B68D9
1243:104DA00006008F68000093680000306A2C693E6A34
1244:104DB00042692F6803003368000037682000976855
1245:104DC00000009B68200000707900E3360C2AF5365D
1246:104DD000ED36EB36EB36EB36EB36EB367810B229A8
1247:104DE000206884D0C000F5367810193E7800FB3674
1248:104DF0005C70502C602000680260602A08328CA130
1249:104E00000003400004372120584F78000637212046
1250:104E1000984F042405A040000D3720207800063765
1251:104E2000222D6B2000007C007810203E7810363E4A
1252:104E30000860CCC00A602B6800009B780E00146FDD
1253:104E400038691A694469166908328CA10003400068
1254:104E50002A370920000078002C370920010078103B
1255:104E6000814ADCD6400034371C69EDC11E691868E0
1256:104E7000FCD04000433768788CA0FF0040004137E9
1257:104E80001B681E00780043371B68000084B20003D3
1258:104E9000C0004B372120984F78004D372120584FC4
1259:104EA000006822203C6A4069326A2E69C06860202E
1260:104EB0000060A4D040008D3741202100492005002A
1261:104EC000512020007E0D7E0F7E157E147920004F2C
1262:104ED0007810461E7F147F157F0FCC70102009209C
1263:104EE00001017E0204226DA040007D37146806A7F0
1264:104EF00040007A370068780070372068D5C0226893
1265:104F00007F0210820981C0006E377F0D6770030039
1266:104F10007F700000767783700F00D471DCC1D6718A
1267:104F2000186886A00200C0009937176800002B6837
1268:104F300000001C68ECC01E687810732078000C2AF2
1269:104F4000D87CDC7DD07F781048362B6800009B78B9
1270:104F50000E00146F7810D7438CA0FF0016691868F4
1271:104F6000FCD04000B23748701A688CA600DF1E697A
1272:104F70006770000078000C2A007005A0C000BF37E1
1273:104F800078000C2A06A07810D6452069ACD1C00064
1274:104F9000C8371B6814008CA600DF1E692B68000050
1275:104FA000206884A0FF00226800707900D4370C2AA2
1276:104FB000DE37DE37E137E137E137DC37DC377810D1
1277:104FC000B2291868780043340860A4C00A601768E2
1278:104FD00000007800DE3D00237900EB37EE37F03734
1279:104FE00060387810B229FCD6C000473800700DA098
1280:104FF0007900F7370C2A0138013831380138443844
1281:10500000FF37FF377810B22984A66000400031389E
1282:1050100086A06000C0002E38ACC6F4C6EDC65A7E2D
1283:10502000B66E1C68ACC01E6886A102004000203825
1284:105030007810D645AC69B06815A1400020387810CA
1285:1050400077497800223878103F491B787900D4716D
1286:10505000B4D1C000082AA47086A00100C000522A62
1287:105060007C00ECD640000B381868FCD04000443877
1288:10507000F4D6C0003E381B6815001B787900780014
1289:10508000082A1B6807002F680000336800007810AA
1290:1050900069437C00FCC65A7EDC7AD879D0781B80C4
1291:1050A000C8005038008084A03F0008A191A20000F1
1292:1050B000986B002102A3B268946B002203A3AE6830
1293:1050C0001B7879007C007810B229002379006538BC
1294:1050D0006A388F38EF387810B229007079006D384F
1295:1050E000753877388038753875387538753875384B
1296:1050F0007810B229AC69B06815A1400080387810EA
1297:1051000077497800823878103F491C68B4C01E681F
1298:10511000D470B4D0C000082AA47086A00100C000DA
1299:10512000522A7C00FCD6C000DF3800700DA0790048
1300:1051300096380C2AA638A038D638A638DC389E38DF
1301:105140009E387810B2299468D678DE789868D2783C
1302:10515000DA7884A660004000D63886A06000C000DF
1303:10516000D338B4A6BFBFEDC65A7EB66E86A1020084
1304:105170004000C2387810D645AC69B06815A140002F
1305:10518000C238781077497800C43878103F491B78C6
1306:1051900079001C68B4C01E68D471B4D1C000082A5C
1307:1051A000A47086A00100C000522A7C00ECD640000A
1308:1051B000B0381868FCD04000DC381B6807001B784A
1309:1051C000F9007C00FCC65A7EDC7AD879986B002105
1310:1051D00002A3B268946B002203A3AE68D2791B7855
1311:1051E00079007C00DCD64000F8382B7809301B7839
1312:1051F00079007800082A8478ACC08678E47884A0A6
1313:105200000800C0000B3984A4000240000539F5C62F
1314:10521000DDC65A7E1B7879007800082A206895C080
1315:1052200022687810E242DDC6781018411B787800B9
1316:105230007800082A002379001A391D391F392139CD
1317:105240007810B22978001141D4D6C0005C39E479D5
1318:10525000ACD140002F39EC7884A0030040002F39F6
1319:105260002B7809309B786000AB78000084A6FBFFA8
1320:105270005A78E479ACD140003F39EC7884A003003F
1321:10528000C00058390120044F0420E4D0C000543934
1322:105290002068C4D0400054397E0C587060200460EF
1323:1052A0009DC00660086084A0FF000A607F0C01209A
1324:1052B00014007800433484A1070079009239907A71
1325:1052C00094A207009B786000A879FF814000903984
1326:1052D0009B781000A87B84A30100C0008339A87BC1
1327:1052E000A87B86A30100C00076390920F7FF78006B
1328:1052F0007C3986A30300C00083390920EFFF7E0CB0
1329:1053000058706020046004A106607F0C9B786000E8
1330:10531000AB78000084A6FBFF5A782B78093020690F
1331:105320008CA1FFFC226978005D43D930E3309C39C1
1332:10533000A2399A399A395D435D437810B2292069C0
1333:105340008CA1FFFC22697800634320698CA1FFFCDB
1334:10535000226978005D43E47984A130004000B239CD
1335:10536000EC7884A00300C000E639007086A0040039
1336:10537000C000CC39647086A00200C000C239112080
1337:105380000200192000007800652F647086A00600D6
1338:105390004000BC39647086A004004000BC39007035
1339:1053A00086A000004000082A206984A12004400053
1340:1053B000DB39D4C1226918687800433418688EA09C
1341:1053C00002004000E439FDC01A6801201400780092
1342:1053D000433484A107007900EA395D435D43F23923
1343:1053E0005D43A543A5435D435D43BCD64000343ACD
1344:1053F0008471FF814000343A82A10D00D000013A4F
1345:10540000877000007800063A82A10C00867009209F
1346:105410000C009B786100AA797E157E137E1488703B
1347:10542000148110A28A7280A00B0000AD982084B273
1348:1054300000034000283A7E000120044F0420ECD0F5
1349:105440007F004000243AA1202B0178002A3AA120B5
1350:105450002B0278002A3AA1202B019B7800000881BA
1351:10546000AC81A6537F147F137F1578006343D4D695
1352:10547000C000883A206884D0400063438CA6600056
1353:1054800084A660004000463A86A06000C000463A0C
1354:10549000F5C194C15A79B6699B786000AB78000079
1355:1054A0009B7861001868FDC01A68AA7808800C8192
1356:1054B00040004F3E8CA1F800C0004F3E7E157E1389
1357:1054C0007E147E0108328CA100034000743A7E00F5
1358:1054D0000120044F0420ECD07F004000703AA1204E
1359:1054E0002B017800763AA1202B027800763AA12091
1360:1054F0002B017F019B7800000080AC8080AD0B0009
1361:105500009820A6537F147F137F151468FCC0078072
1362:105510008278780063431868FCD040008E3A1B689C
1363:1055200008002068ADC02268781020411B78EA008E
1364:105530007C0000237900993A9E3A763B9C3A781099
1365:10554000B229D87CDC7DD07FFF82C000C73A0072D0
1366:1055500086A2030040001034D471BCD1C000CA3A06
1367:10556000B4D14000CA3A7E0D3B7800881B784C00CD
1368:10557000BC706DA0B468A5C05A789468D678DE78FF
1369:105580009868D278DA78B4C1D671037030007F0D94
1370:105590007800CE3A00727800CE3A3B7800181B783B
1371:1055A0004A0084A20F007900D23A613B103BDC3AFA
1372:1055B0003F34DA3A613BDA3ADA3A7810B2291C68B9
1373:1055C000ECD04000E33A08608DC00A60206985C1D4
1374:1055D00022690068066005A0C000EC3A026008601D
1375:1055E000D4C00A601C6884A00E00C000003B84B2D6
1376:1055F00000034000FC3A0920C0957800053B0920D3
1377:10560000D0967800053B3070BA684071CC7008A124
1378:10561000042102680A2D5E71DCD6C000103BFCC676
1379:10562000B66E7800613BB66E84A66000C0001A3B7F
1380:1056300084A6FF7FB6687800613BDCD6C000283BBB
1381:1056400084A6FF7FB6689468A6689868AA687810F0
1382:10565000D6457800613BACD64000343B06A07810BC
1383:10566000D64508241025AA69A66A7800443B082478
1384:10567000102500271B80C8003B3B008084A03F0012
1385:1056800008A191A20000AA69A66A7810D645FCD6A6
1386:105690004000613B84A6FF7FB66810250824ACD685
1387:1056A000C000593B00271B80C800543B008084A0E9
1388:1056B0003F0008A191A20000986B002102A3B268EC
1389:1056C000946B002203A3AE68007086A03000C00077
1390:1056D0000C2A03700200BC706DA0BC684270B870E8
1391:1056E00065A0C0685A70002D4E7080AD09004670EC
1392:1056F0007C0086A50088C000833B03700000186012
1393:1057000001801A60086084A0EFFB0A6078001141F4
1394:105710004770000082A2060050008D3B7810B2292D
1395:1057200000237900903B933BA53BB13B00227900DD
1396:10573000963B9C3B11419E3B9C3BEB3B403C781095
1397:10574000B229807A94A2000F7810CA3C78000741F1
1398:105750007810C23B7900A93B1141AF3BAF3BEB3B1B
1399:10576000AF3B11417810B2297810C23B7900B53BAC
1400:10577000BD3BBB3BBB3BBD3BBB3BBD3B7810B229FC
1401:1057800078102B411B7878007C00007086A0020006
1402:10579000C000D33B7810363E7800CD3B7810D6451C
1403:1057A000086084A0EFFB0A607800D83B007086A0F8
1404:1057B00003004000CB3B0370050084B200034000AF
1405:1057C000E23B0120E0967800E43B0120129768203C
1406:1057D0004E7080AD0900467000227C00007086A0EB
1407:1057E0000200C000FD3BD470B5C0D670002CBA706A
1408:1057F000002DBE707800023C7810D6457800023C3F
1409:10580000007086A003004000F93B03700100807A1D
1410:1058100094A2000F9B781800A87C84A41F0015A2F6
1411:105820006920C09584B20003C000163CFDC2692007
1412:10583000D096042D082D5E716DA04000233C1468A5
1413:1058400006A24000253C00687800173C7810CA3C4E
1414:10585000B46E5A7E206984A1000C4000F43C647050
1415:1058600086A00600C000373C747006A2C000373C1A
1416:1058700066707E701B680500ADC1D4C122697810C6
1417:1058800020417800F43C007286A20200C000523C25
1418:10589000D470B5C0D670002CBA70002DBE707800E0
1419:1058A000563C7810D6457800563C86A2030040004E
1420:1058B0004E3C03700100807A94A2000F9B78180080
1421:1058C000A87C84A41F0015A284B20003C000663C1B
1422:1058D000FDC2A879A8798CA1FF001821CC7068A11D
1423:1058E000042D082D5E716DA040007A3C146806A25C
1424:1058F0004000A33C006878006E3C0370050084B251
1425:1059000000034000843C0120E0967800863C0120A2
1426:10591000129768204E707E15A920320003200000E7
1427:105920000080F0008B3C7F1584B200034000983C5F
1428:10593000FCC27800993CFDC2166A80AD0900467031
1429:10594000B76800072368000827680300B46E206961
1430:1059500084A1000C4000F43CDCD04000BF3C6470EB
1431:1059600086A00400C000BB3C747006A2C000BB3C13
1432:10597000787006A3C000BB3C66707E70781027412B
1433:105980007800F43C1B680500ADC1D4C122697810D1
1434:1059900020417F7000007800F43C0370050084B261
1435:1059A00000034000D43C0120E0967800D63C012062
1436:1059B000129768204E707E15A92032000320000047
1437:1059C0000080F000DB3C7F1584B200034000E83C1F
1438:1059D000FCC27800E93CFDC2166A80AD0900467041
1439:1059E000B768000723680008276803007C00ECC63E
1440:1059F000ACA660004000463D986B946CAC69B06802
1441:105A000005A1C000213DD27BDA7BD67CDE7C86A559
1442:105A1000600040004B3DF4D6C0000C3DEDC6B4A67E
1443:105A2000FFB75A7E092079009CD64000193D092015
1444:105A300078001920000020231A79ECD64000563D4A
1445:105A400078103F497800563DB0681AA3002123A47E
1446:105A5000002405A340004D3DD27BDA7BD67CDE7C62
1447:105A6000B068F4D6C000323DEDC6F4C65A7E1120AF
1448:105A700079009CD640003E3D11207800192000009E
1449:105A800020231A7AECD64000563D781077497800EA
1450:105A9000563D19200000202378004D3DB4A6FFB7E5
1451:105AA0005A7E092079009CD64000553D0920780097
1452:105AB0001A79C0685A70002D4E70C4686020D47185
1453:105AC0000120014F0420C4D0C000AB3DD8702DA0F0
1454:105AD0004000843DBCD140009E3D807A94A2000FDE
1455:105AE000DC7006A24000753DE07804A5C000AB3D27
1456:105AF000DA70BCC1D6717800AB3D312001002C8535
1457:105B00004800833D3386108278007C3D7C00E07D38
1458:105B100094A500FF4000913D112008002F857810CA
1459:105B20007A3D37867800933D78107A3D17828078E9
1460:105B300084A0000F06A24000AB3DDE72DA7678004A
1461:105B4000AB3D807A94A2000FDC7036A240009B3DF2
1462:105B5000E07834A540009B3DBDC1D671B4D1C000F2
1463:105B6000082A002305A44000082AA47086A001008A
1464:105B7000C000522A7C00206005A04000C63D018084
1465:105B80002260086085A008000A600F7000012C7078
1466:105B900026607C0006A07810D645007086A0020022
1467:105BA0004000D43D647086A00500C000DE3D2B6837
1468:105BB0000000176800001B680100236840001F6890
1469:105BC0000001007084A00F007900E33D0C2AF33D32
1470:105BD000ED3D153EFD3D0C2AEB3DEB3D7810B22925
1471:105BE0007810203E7810193E7800F93D7810203E5C
1472:105BF0005C706020006802607810732078000C2AC6
1473:105C0000647067700000837000007900043E113EEC
1474:105C1000113E0C3E0C3E0C3E113E0C3E113ED47724
1475:105C2000DDC7D67779007E2F6770000078000C2AD8
1476:105C30001B68000078001137006805A0C0001E3EF8
1477:105C4000026006607C001064FF844000323E092040
1478:105C5000024F042101800A2021841264C000323ED8
1479:105C60002120044F0424A5C022200860A4C00A609B
1480:105C70007C00186005A040003C3E01801A607C005A
1481:105C80007810D3431B68180078007D3E7810D3430A
1482:105C90001B68190078007D3E7810D3431B681A00FA
1483:105CA00078007D3E7810D3431B68030078007D3E6A
1484:105CB000747778104E4278718CA1FF00103294A254
1485:105CC00000034000643EE8A1C0947800663EE8A16D
1486:105CD000D095042D082D682005A0C0006F3E7E7071
1487:105CE00078000C2A1468747206A24000773E00689F
1488:105CF0007800673E00680A201B6805007F7000007E
1489:105D00007810203E206884D0C000853E7810193E6F
1490:105D10007810363E1F68000023682000781073203A
1491:105D200078000C2A82A20300C0000741A87DACA520
1492:105D3000FF005A7EA87EB4A6FF002069BDC122697B
1493:105D4000C4D14000EA3EC4C12269B4A6FF004000AD
1494:105D5000D73E82A60C004800AE3E4000AE3E312049
1495:105D60000C00002586A00A004000B53E2B852B853F
1496:105D70007810E0414000BD3E7810BC3F7800E03E26
1497:105D800078109B417E0C6029046084A0F5FF0660BA
1498:105D90007810F23F7F0C2069C5C12269587E95C6F4
1499:105DA0005A7ED4D6C000D43E1B7864007C001B7899
1500:105DB00078007C007E0C6029046084A0F5FF0660FA
1501:105DC0007810F23F7F0C587ED4D6C000E73E1B7897
1502:105DD00067007C001B7879007C007E0C5870602086
1503:105DE0000061E4D14000333F0862178294A2FF00B3
1504:105DF00082A20C004800FD3E4000FD3E11200C0038
1505:105E0000002602A2C800023F3022086294A2FF00CE
1506:105E10000120054F0420E4D0C000173FEC78E4D007
1507:105E20004000173F82A20A00C8001D3F11200A004F
1508:105E300078001D3F82A20C00C8001D3F11200C00FD
1509:105E4000002202A5C800223F282278109F41002589
1510:105E500086A00A0040002B3F2B852B857810E0415F
1511:105E60004000333F7810BC3F7800373F78109B41AB
1512:105E70007810F23F587895C05A787F0C1B787800DC
1513:105E80007C007E0C60290060E4D0C000583FB4D094
1514:105E9000C000523F106084A00F00C000523F046158
1515:105EA0008CA1F5FF06617F0C7C00112032001920C7
1516:105EB00000007800833FA068CCD0C000523F086249
1517:105EC00094A2FF000120054F0420E4D0C000713FE0
1518:105ED000EC78E4D04000713F82A20B00C800713F13
1519:105EE00011200A007800773F82A20C00C800773F9B
1520:105EF00011200C0008631F839CA3FF0082A30C00E9
1521:105F00004800833F4000833F19200C00AB7801001C
1522:105F1000AB780300AB780100AA7AAA7BC0A8050081
1523:105F20002068C5C02268D470B4D040009F3FB4C080
1524:105F3000D670B87065A0086084A0EFFB0A60186096
1525:105F400001801A607F0C7C007E0C602904618CA1AA
1526:105F5000F5FF066111203200192000007800AD3FE6
1527:105F6000AB780100AB780300AB780100AA7AAA7B7A
1528:105F7000C0A805002068C5C022687F0C7C007E0C8C
1529:105F80005871602118208CA020004000C53FACC093
1530:105F9000082084A0F0FF35A6867E18609A78AE7E31
1531:105FA0001266A47884A0F0FF8CA10F0005A1F4C0B4
1532:105FB0009CA320004000DB3F85A00040FCC0B4D083
1533:105FC000C000E03FFDC0A67816608A78B4A60F0036
1534:105FD00037860482048084A0FF0005A60E6004605A
1535:105FE00084A0F5FF06607F0C7C007E0C587060205A
1536:105FF00018609A78A47884A0F0FFA678126084785C
1537:1060000084A0F0FF86780C6084A0FF000E607F0CF7
1538:106010007C0082A20200C0000741A87A2069BDC1AD
1539:106020002269CCD140004140CCC1226994A2FF003A
1540:1060300082A20200C8000741781094407810F23F15
1541:1060400080A901000C2078104A4278103E3FFF885A
1542:10605000400037409B7860000028AA78587E95C69B
1543:106060005A7ED4D6C00034401B7864007C001B7874
1544:1060700078007C00587ED4D6C0003E401B78670074
1545:106080007C001B7879007C0082A20200C800494095
1546:1060900084A2010040005240587188A100000C21E8
1547:1060A000ECD1C00052401120000078107C417810E3
1548:1060B00094407810F23F587895C05A781B78780051
1549:1060C0007C007E0C7E026029006011200100ECD073
1550:1060D000C0007540BCD0C00073401460B4D0C00094
1551:1060E0007340A4C1066106A0780091401120000011
1552:1060F000AB780100AB780200AB780300AA7AC0A8A5
1553:106100000400D470B4D040008D40B4C0D670B870D4
1554:1061100065A0086084A0EFFB0A60186001801A6027
1555:10612000206885A0000222687F027F0C7C007E0C24
1556:1061300058706020FF8240009C4011204000186091
1557:1061400080A002009A78A47884A0BFFF05A2FCC0BA
1558:10615000B4D0C000A940FDC0A67816608A7804605B
1559:10616000A4C006607F0C7C007E00007086A0030047
1560:106170004000BA407F007800BD407F0078000441B5
1561:10618000ACD640000441887884A04000400004411F
1562:10619000B87B84A33F001B83C800CC40008005A0CF
1563:1061A0004000E1401B83C800D54001804000014110
1564:1061B000F4D64000E140B8781B80C800DD40008084
1565:1061C00084A03F00C0000141F4C65A7ED879DC7A31
1566:1061D0000120010008A1C800EC4091A20000D27982
1567:1061E000DA79D67ADE7A7810444A1B78760084B25F
1568:1061F00000034000FC40012000007800FE40012028
1569:1062000001007810CE487C001B7876007C001B785B
1570:1062100079007C0078102F411B7878007C00781082
1571:1062200018411B7878007C00276802007810204114
1572:106230001B7878007C0001200500780031410120A6
1573:106240000C00780031412068D5C02268012006008A
1574:106250007800314101200D00780031410120090012
1575:1062600078003141012007009B787E00AA789DC606
1576:106270005A7ED470B4D040004741B4C0D6707E0C72
1577:10628000B87065A0086084A0EFFB0A601860018008
1578:106290001A607F0C7C007E073F87BCA70F003B87FE
1579:1062A0003B8703877E018CB2000340005841E0A089
1580:1062B000C05378005A41E0A040547F01B8A72000A5
1581:1062C0009A7FA47984A10F0040006A4184A1F0FF65
1582:1062D000A678126004609DC00660388738879A7F70
1583:1062E000A47984A1400040007A4184A1BFFFFDC091
1584:1062F000A67816600460A5C006607F077C009B78C6
1585:106300001000AB780100AB780200AB780300AA7AEA
1586:106310009B786000AB780400D470B4D040009A4100
1587:10632000B4C0D6707E0CB87065A0086084A0EFFB86
1588:106330000A60186001801A607F0C7C003120000028
1589:10634000292032009B781000AB780100AB78030065
1590:10635000AB780100AA7DAA7E9B786000AB7805002F
1591:10636000D470B4D04000BE41B4C0D6707E0CB870BA
1592:1063700065A0086084A0EFFB0A60186001801A60C5
1593:106380007F0C7C007E15078084A0FF0003800380C3
1594:1063900080A020009A78A4798CA1F0FF21203342BC
1595:1063A00019201100A9200E0011203200042484A01D
1596:1063B000F0FF06A14000DE412084002310A2F0007F
1597:1063C000D3417F157C007E150120054F0420E4D0C9
1598:1063D000C000114221204142A920090011202800BB
1599:1063E00082A5190040002742480027422084A99531
1600:1063F0001120320082A53200400027424800274287
1601:106400002084A99519200A0011206400002202A509
1602:1064100040002742480027422084002310A2F000B9
1603:1064200003427F15780025422120334219201100B4
1604:10643000A9200E0011203200002202A540002742B0
1605:10644000480027422084002310A2F00019427F1543
1606:1064500006A07C007F1582A56400C8003042087841
1607:1064600085A070000A78042405A07C00091202307F
1608:106470000232034203440454045605660568067854
1609:10648000067A070C070C070EE1100A330558055A67
1610:10649000066A066C077C077E000E9B78100046A0FB
1611:1064A0007C0084A7000F0B8084A71F00038003805B
1612:1064B0000380038005A1FCD740005F42E0A0C074C8
1613:1064C00078006142E0A0C0547C007E0E7E0F84D034
1614:1064D00040006F42792000010920804F7120804FD9
1615:1064E00078007F420920404F7120404F0120044F27
1616:1064F0000420ECD040007D427920000178007F42EA
1617:106500007920000291200080042184A00F007900EE
1618:1065100086429042904290429042904290428E42F7
1619:106520008E427810B229B469F5C18CA19FFFB6697B
1620:1065300005A04000DF42587884A09FFF85A000603E
1621:106540005A78287886A01418C000DF424B780400DF
1622:10655000487884A00400C000A5424B780800487821
1623:1065600084A00800C000AC423078BCD0C000DF423C
1624:106570007E000120044F0420ECD07F004000C14287
1625:1065800084B200037800C34284B200044000C942D0
1626:106590001800DF427800CB422800DF42E47984A172
1627:1065A00030004000DF42EC7884A003004000DF426E
1628:1065B0001C68ACD0C000DD42781069437800DF422F
1629:1065C0001B78F9007F0F7F0E7C007E0C0120014FAD
1630:1065D0000420ACD0C0005B431468078084A00F0087
1631:1065E0000380038003808CB200034000F842E0A0E7
1632:1065F000C0537800FA42E0A04054046084A00A002E
1633:10660000C0005B43086194A100FF40005B438CA184
1634:10661000FF0001200A0006A14000264301200C00D3
1635:1066200006A140002A430120120006A140002E438B
1636:106630000120140006A1400032430120190006A1E8
1637:10664000400036430120320006A140003A43780062
1638:106650003E4309200C0078004043092012007800D6
1639:1066600040430920140078004043092019007800B5
1640:106670004043092020007800404309203F00780073
1641:10668000404311200000002105A20A60046085A09B
1642:10669000020006606120004F0460BCD040005B43F4
1643:1066A0001468FCD0C0005643EA606120404F780077
1644:1066B0005943EE606120804F1F600F807F0C7C008B
1645:1066C0001B7879007C001B7878007C001B786700C1
1646:1066D0007C001B7864007C000920194F0C2186A1E6
1647:1066E000000040007B4386A1010040007E431F70F4
1648:1066F0000B00677001001B7847007C001B78F000DE
1649:106700007C001F700A007C000920194F0C2186A113
1650:1067100000004000964386A10100400093431F7093
1651:106720000B00677001001B7847007C001F700A0097
1652:106730007C001B78EF007C001B78F9007C001B7844
1653:10674000F8007C001B78C9007C001B78C8007C0026
1654:106750001868FCD04000AB431B681D006770010047
1655:106760001B7847007C00307884A0C000C000D24372
1656:1067700008788CC00A780500050005000500EC7853
1657:1067800084A02100C000CF430120054F0420E4D0A5
1658:10679000C000CD43047884A01FFF85A0E0000678E8
1659:1067A00006A07C0008788DC00A787C0008788DC02F
1660:1067B0000A787C00307884A04000C000D7430120D4
1661:1067C000044F0420ECD04000E64384B2000378007C
1662:1067D000E84384B200044000EE439800F24378009E
1663:1067E000F043A800F243AC787C00087884A0FDFF59
1664:1067F0000A780500050005000500EC7884A021005A
1665:10680000400015447E000120044F0420ECD07F009E
1666:1068100040000B4484B2000378000D4484B20004AD
1667:106820004000134498000F4478001544A800134416
1668:10683000AC787E00087885A002000A787F007C0092
1669:1068400084A70100C000B93784A7700040002D4420
1670:106850007E0C602D682F78102629782D682C7F0CEF
1671:1068600084A7080040003A444B780800EC7884A0E4
1672:1068700003004000B93778005D4384A7040040005E
1673:106880006944B87884A00140400069444B7808000E
1674:10689000EC7884A003004000B937E47884A00700B6
1675:1068A00086A00100C0006944C07885A60048302059
1676:1068B0005A7E1B78F9007C004B7808001868FCD0E1
1677:1068C000400066441B681500F4D6400066441B680F
1678:1068D0000700781069437C001B680300587884A087
1679:1068E000003F1E682F680000336800004B780800E6
1680:1068F000EC7884A003004000AF307E000120044FFC
1681:106900000420ECD07F004000864484B2000378006D
1682:10691000884484B2000440008E441800082A78009D
1683:1069200090442800082A78000C41146B078384A047
1684:106930000F00038003800380FCD34000A04480A0AC
1685:1069400040547800A24480A0C053602048205A7070
1686:10695000602A7C00200020000000200000002000B1
1687:1069600000002000000020000000200000002000A7
1688:106970000000200000002000000020000000200097
1689:106980000000200000002000000020000000200087
1690:106990000000200000002000620009001400140024
1691:1069A0004898140014001499FD98140014008000F5
1692:1069B000FF0000010204082080F818000AA2140059
1693:1069C0000B300CA21400002513000025100010004D
1694:1069D0001000100010001000100010001000100037
1695:1069E000100010001000100000A2063802715F8035
1696:1069F00081943988C420640856A80830C1281B9D9A
1697:106A000001A20C30472861816A840080A484561852
1698:106A10003A8808A8E228CB9CF3A8640844A80C3064
1699:106A200001A80830E128CB9C21201DA805A20C87D5
1700:106A3000DED8A064E06DC06FA463806C120205A272
1701:106A40003D8842792080A1A42B8814183B88DF80E0
1702:106A5000A1942770F28537A732A503F07685778653
1703:106A600016A83E8814A8012012A804A2C064E06DF4
1704:106A7000A067C06F42792080A1A41418DF80A19480
1705:106A80003B8823707685778602A861783E886B20E4
1706:106A9000C1281B9D44200321A2208120C3A807A256
1707:106AA00004090EA209A803A20080A48572189A877F
1708:106AB0003C88E21F01F608A26E856F8661711400A2
1709:106AC00004070830CB9C140002A20080A485093082
1710:106AD000A884E21944F86E853F88E608F5A861F8B5
1711:106AE000EAA801F8140081F81600B285F08032950A
1712:106AF000A2FAE21D1400328521F21400E21DA884DE
1713:106B0000E0D6E61F1400083000804A281110FCA8C7
1714:106B10000830339D008000A002281110FDA8399D87
1715:106B2000BDA80830339D3B281110FDA809A20271B1
1716:106B30005F80819417000C3009A20080A485E21DBB
1717:106B400009A2C1DA1400100201A81400E0263A8755
1718:106B5000A3FAF219E026F21814000BA214000DA2F9
1719:106B600006381002259D040706A265687E812A84E6
1720:106B7000C11D2388160042600880FAA80080A48402
1721:106B800060812A8421F00830A884D6114270DD206B
1722:106B90001100D420228816004479218420A032A537
1723:106BA000A184160044792184DFA03295A1841600C7
1724:106BB00000007E12D47084A00046048090200472ED
1725:106BC00008709CC005A2C00002460C72FF82400003
1726:106BD000ED45FF8AC0000246007284D2C000024622
1727:106BE0000478CCD04000F3457810CC4A23700000E4
1728:106BF00027700000007084D04000FD45077004003D
1729:106C0000037008007F1200207C00007084A0030045
1730:106C100002709CC684D040005B4608710500087075
1731:106C200006A1C0000A4684A1030040008C4684A14E
1732:106C3000E001C0008C46F4D1C0000A4684A10030B7
1733:106C400086A0001040000A460120054F0420E4D031
1734:106C500040003746112080010C71118240004546EA
1735:106C60000870F4D0C0000A460C7006A140002A4605
1736:106C700078002746112080010C71118240004546A2
1737:106C80000870F4D0C0000A460C7006A140003A46D5
1738:106C90000770120008710500087006A1C000474681
1739:106CA00084A1030040008C4694D140004746F4D1B3
1740:106CB00040008C460770020078000A460871FCD13B
1741:106CC000400066467810ED47FF8A4000DC457800BA
1742:106CD0005B460C708CA0FF0340009146047084D08A
1743:106CE00040008346147005A0C0007F4610701073EA
1744:106CF00006A3C0007346002305A04000834602A1FE
1745:106D0000C8005B460770100078008C46FF8A400080
1746:106D100091467810F249C000864640005B467810E4
1747:106D200038477F1200207C00047208719CC10381E7
1748:106D3000C800A04607700200780091460370080062
1749:106D40007F1200207C0005A2C0008C46237000004A
1750:106D500027700000037008007E000120014F04200E
1751:106D6000CCD04000B2467810CC4A7F007F12002081
1752:106D70007C002864FF844000E246702C0470BCA0B4
1753:106D80000F00B8A7F2463C27FB87C000D04648005A
1754:106D9000C8467810B2299C6075A04000E246780091
1755:106DA000BB463920E746042768AE086830A60C6861
1756:106DB00029A521844000E2463887042705A0C000A9
1757:106DC000D1469C7075A0C000BB467C000000050049
1758:106DD00009000D001100150019001D00000003003E
1759:106DE00009000F0015001B0000000000E746E44604
1760:106DF0000000000000800000E7460000EF46EC467F
1761:106E00000000000000000000EF460000EA46EA46ED
1762:106E10000000000000800000EA460000F046F04656
1763:106E20000000000000000000F0467920004F7120B3
1764:106E3000100007700A00077002000370010010784C
1765:106E4000ECD0400026470920010071202000780086
1766:106E50002A47092002007120500007700A000770BD
1767:106E600002000370000009814000374771202000B4
1768:106E700078002A477C0004700480C800C14708716C
1769:106E8000087006A1C0003C4784A1E00140004947CA
1770:106E9000781030487800E947077012001920000088
1771:106EA0000871087006A1C0004D4784A1E0014000B0
1772:106EB0005A47781030487800E9471078ECD0400005
1773:106EC00074470120FD04042086A00300C000784719
1774:106ED00084A1004040007C4782A30300C8007C4797
1775:106EE00084A1040040004D47188378004D47147872
1776:106EF000ECD0C0007C4784A10040C0004D479CA15D
1777:106F00000C3086A304204000994786A30800400067
1778:106F1000A447047084D0C00095470871087006A18A
1779:106F2000C0008A4784A1030040009547780030489C
1780:106F300086A30C20C0004D47007204824800A4477D
1781:106F40000C7384A3FF034000A4477810B229087192
1782:106F5000087006A1C000A44784A1E0014000B14729
1783:106F6000781030487800E94707701200007084D02C
1784:106F7000C000C1471073147005A34000C1470C71D5
1785:106F800084A1FF03C00038470871087006A1C00043
1786:106F9000C14784A1E0014000CE4778103048780016
1787:106FA000E947077012000770080004709CD0C00009
1788:106FB000D2470871087006A1C000D64784A1E0013D
1789:106FC0004000E347781030487800E9470770120026
1790:106FD000087103814800D647037008007C000871DF
1791:106FE00084A1E001C0003048087184A1E001C00024
1792:106FF000304884A107007900FA4704481448024841
1793:10700000144802487248024870487810B229047047
1794:1070100084A010008DC00670FF8AC0000F48492070
1795:1070200000007C007810F249C0000F487C0004701A
1796:1070300084A010008DC00670047084D0C000284861
1797:107040000871087006A1C0001D4884A1030040001B
1798:10705000284878003048FF8A40002F487810F249CD
1799:10706000C0002B487C00077012000871E000334814
1800:1070700091200060E0003748912000600770120006
1801:107080000770080004709CD0C0003F4807701200D1
1802:107090000871FCD1C000434803700000007005A0D7
1803:1070A000C0005748047005A0C00057480C7005A0E8
1804:1070B0004000594878003B484920000084B2000154
1805:1070C000400063480120000078006548012001006D
1806:1070D000781062421B680200512000007C0078108A
1807:1070E000B2297810B2297810B948107214710C7056
1808:1070F0009CA0FF03002800A311A289A10000781022
1809:10710000B9480427582C60AC0863002222A30C6302
1810:1071100000211BA3002405A340009548C800954802
1811:10712000128410820A8389A10000602B78007C48B9
1812:10713000602B078A7E0004609CD04000A048BAA75C
1813:10714000EC467800A248BAA7E4467F003DA7002C91
1814:1071500086688A6F926C8E6B0871087006A1C000F9
1815:10716000A94884A1E0014000B44878103048077075
1816:107170001200781038477C00508A3987042704A011
1817:10718000C000CD48006064A0C000C448602D046009
1818:1071900084A00F0080A002473C20FB874010B2294A
1819:1071A0007C007E127E0DD47084A000460480902066
1820:1071B0007F0D8468602088688C6B906C5780D4AA9F
1821:1071C000FF0084A0FF007E00046884A008007F0008
1822:1071D0004000EB48B8A0EC467800ED48B8A0E44683
1823:1071E00084B200014000F448207E7800F548247EF7
1824:1071F000B5A60C001C68B4D04000FC4885C600242D
1825:1072000005A340002549582C0427046160AC0060A8
1826:1072100000A41A70046001A31E709CD1400015499F
1827:10722000106081A000002270146081A00000267010
1828:107230000862002402A212700C62002303A21670DE
1829:10724000027607700100602B78101C4A78002749ED
1830:107250007810F249C00025497F1200207C007E1280
1831:107260007E0DD47084A00046048090207F0D0770AE
1832:107270000400047094D0C0003649037008007F12E7
1833:1072800000207C007E127E0DD47084A00046048015
1834:107290007E0090207F007F0D207E84B20001C00020
1835:1072A0004F49247EB5A60C001C68ACD0C0005A49DA
1836:1072B00085C6037000000770040028685020602D08
1837:1072C0000460BCA00F00B8A7F2463C27FB87C000B3
1838:1072D000704948006A497810B2299C6865A040004E
1839:1072E000744978005D497810F249C00070497F12F6
1840:1072F00000207C007E127E007E017E0DD47084A072
1841:10730000004604807E0090207F00207E84B2000131
1842:10731000C0008849247E7F0D7F037F04B5A60C0042
1843:107320001C68B4D04000964985C603700000077001
1844:10733000040049207749286855A07E0D4000EE4999
1845:10734000702D602E0470BCA00F00B8A7F2463C2739
1846:10735000FB87C000B3494800AC497810B2299C7043
1847:1073600075A060204000EE4978009F49042768AE70
1848:10737000086822A40C681BA34800CC49518AC000AD
1849:10738000C0497810B2293887042705A0C000B44945
1850:107390009C7075A060204000EE4978009F492284CF
1851:1073A00020841A8399A300000869002422A10C6993
1852:1073B00000231BA1C800DB497810B22984B2000168
1853:1073C0004000E9490120044F0420ECD0C000E94905
1854:1073D000712050007800EB49712020007F0D78006B
1855:1073E000FC487F0D7F1200207C0008707E0084A086
1856:1073F000E0017F004000FB4906A07C0084A0030060
1857:1074000086A00300C000024A7C00042778AC007804
1858:107410001A7004781E70087812700C781670046068
1859:107420009CD04000144A107822701478267002769E
1860:10743000047084A0100085C006707920004F388742
1861:10744000518A4000404A042705A0C000324A9C608F
1862:1074500005A04000414A6020046084A00F0080A085
1863:10746000F2463C20FB874010B22908707E0084A0C1
1864:10747000E0017F0040003C4A06A07800414A84A019
1865:10748000030086A003007C00512000007C007E12D7
1866:107490007E007E0DD47084A00046048090207F0D75
1867:1074A0007F08087184A10300C000594A286805A01C
1868:1074B0004000694A780002460871FCD14000614AE8
1869:1074C0007810ED4778004E4A077010000871FCD123
1870:1074D0004000634A7810ED47087086A00800C0009D
1871:1074E0004E4A007005A0C0004E4A037000004920BB
1872:1074F00000007E000478CCD040007D4A7810CC4A51
1873:107500007F007F1200207C007E127E147E137E1589
1874:107510007E0C7E0DD47084A00046048090207F0DE8
1875:107520004920814A80AD1100A02084B200014000B2
1876:10753000A44A0120044F0420ECD04000A04A992026
1877:1075400031007800A64A992032007800A64A992096
1878:1075500031000C7084A0FF032A68077008000770D0
1879:107560000200037001004000B54A0080AC80A553C2
1880:107570000C7084A0FF034000C14A0770040004702F
1881:1075800084A00400C000BC4A7F0C492000000370A6
1882:1075900000007F157F137F147F1200207C00146889
1883:1075A000FCD04000114B007084D04000114B247E71
1884:1075B000B5A6040007700400047084A00400C00095
1885:1075C000D94A18717E011C717E0120717E012471DF
1886:1075D0007E010EA01A711F70FF3F22712671137079
1887:1075E000040016710276077001000120FFFF0920D8
1888:1075F00031000A200A200871087006A1C000F84A6C
1889:10760000FCD14000F84A7F0226727F0222727F027C
1890:107610001E727F021A7207700200087086A00800AE
1891:107620004000114B780030480770040003700000E0
1892:107630007C009120008091200060AC7805A0C00003
1893:107640002D4B7479D07006A1C0002D4B1C7805A07D
1894:1076500040002D4B1F78000068002D4B912080408A
1895:10766000307801803278C000B54B347832781078A9
1896:10767000ECD0C000AE4B6120C0746920804FFDC7C4
1897:10768000D06805A04000474B0180D268C000474B3E
1898:107690007810834D006884A00F0040005C4B86A0EA
1899:1076A000010040005C4B44680DA040005C4B04218D
1900:1076B00005A040005C4B01800A204000F64C146895
1901:1076C00005A04000814B01801668C000814BA7686F
1902:1076D00001007E0FFCD7C000764B1078ECD0400044
1903:1076E000724B792000017800784B792000027800F5
1904:1076F000784B792000017810D3437F0F646805A090
1905:107700004000814B78106F26806805A040008E4BAA
1906:1077100001808268C0008E4B67680000D468DDC0BD
1907:10772000D668D468FCD04000AB4BFCC0D668A9201A
1908:107730000002346005A04000A74B01803660D46889
1909:10774000FDC0D668C000A74B106005A04000A74B45
1910:1077500078106F26E0AC1000F000964BFCD740008C
1911:10776000B54B6120C0546920404FFCC778003D4BA9
1912:107770007810F14B387801803A78C000D74B3C78CC
1913:107780003A786120C0546920404FFCC70C6805A0BE
1914:107790004000C94B78105B4CFCD7C000D74B107829
1915:1077A000ECD0C000D74B6120C0746920804FFDC76A
1916:1077B0007800C34B1478E4D0C000DB4B1078CCD0F9
1917:1077C0004000EE4BACD0C000E74BA4D04000EE4BE5
1918:1077D000ADC01278912001806800ED4B7810DC2359
1919:1077E0007C00912001807C00407801804278C000BC
1920:1077F0005A4C447842786920404FFCC71078792071
1921:107800000002ECD04000034C79200001D86805A0AC
1922:1078100040000F4CE07D04A5C0000F4CDA68D4682E
1923:10782000BCC0D6687920004F106805A0C000174C76
1924:107830000120010101801268FCD74000204C80A08B
1925:10784000D0957800224C80A0C0944020042065A0F0
1926:1078500040004C4C246005A04000484C018026604C
1927:10786000C000484C006805A040003B4C4C6806AC8A
1928:10787000C0003B4C7810F64C78004C4C646805A076
1929:107880004000434C276001007800484C7810A94C18
1930:1078900004287800244C0060402C7800244CFCD74D
1931:1078A000C0005A4C1078ECD0C0005A4C6920804F70
1932:1078B000FDC7792000017800034C7C0009200000FE
1933:1078C000A920000208609CD04000954C246005A0CF
1934:1078D00040006B4C018026607800934C08609CC08F
1935:1078E00084D0C000734CACD040008D4C0A60046062
1936:1078F00005A04000954C7E0D7E0C7E016820106036
1937:10790000018012607810193E002D682C60207810DC
1938:10791000A21E781064207F017F0C7F0D7800954CAB
1939:10792000BDC00A608DA101007800954C8DA10001B9
1940:10793000E0AC1000F0005F4C84A101004000A44CBA
1941:107940008CA1FEFF0E6978106F267800A54C0E6999
1942:107950007C00C000A54C6C78002C7E681467766FA4
1943:10796000176000002B6000001B600600B46084A05C
1944:10797000003F1E60206084A0FF0085A060002260A0
1945:107980000060422078102B1E186805A04000C74CEC
1946:1079900001801A680868A4C00A681068087909811B
1947:1079A0000A790180D000D34C7810B2291268C00047
1948:1079B000D94C1079A5C112792F6000003360000006
1949:1079C000682C78107320FCD7C000E74C6920404F2A
1950:1079D0007800E94C6920804F106984A100010120E2
1951:1079E0000600C000F34C7A69012004007810632679
1952:1079F0007C007E0D4C696021FCD7C000084D1078DA
1953:107A0000ECD04000044D6920000178000A4D692047
1954:107A1000000278000A4D69200001781026291B60B9
1955:107A20000600586884A0003F1E60206084A0FF000C
1956:107A300085A0480022602F600000336000000868C5
1957:107A400084A0FDFF0A683068B4D040003C4D4B680C
1958:107A50000400A9201400486894D040002E4DF00086
1959:107A6000284D4B680900A9201400486884D04000C4
1960:107A7000384DF000324DA920FA00F0003A4D1B6855
1961:107A800047007F0D676807007C007920004F781061
1962:107A9000764D78105C4D7810694D09200200692000
1963:107AA000804F0F680000136800001768000009810C
1964:107AB00040005B4D6920404F78004E4D7C001078AF
1965:107AC000ECD04000644D1920CC007800664D1920A0
1966:107AD0007B003A7B3E7B7C001478E4D0C000714D83
1967:107AE000192040007800734D19202600427B467B08
1968:107AF0007C001478E4D0C0007E4D1920943F7800BB
1969:107B0000804D19202426327B367B7C00506A85A26A
1970:107B100000004000AF4D5469C06B00A37E0C64218F
1971:107B20000463FF83C0009B4D118240009F4D08817C
1972:107B30001AA148008C4DC06978008C4DD3680A00AA
1973:107B40007F0C7C005069C06A64222B6000002F60AB
1974:107B500000000860B5C00A6010820981C000A14D14
1975:107B600052697F0C7C00E000B04D91200060E00085
1976:107B7000B44D91200060EC70DCD0C000C14DD4D079
1977:107B80004000EA4D7800ED4D08201078ECD0400020
1978:107B9000D44DC4D1C0000E4E1478C5C016781078EC
1979:107BA000F5C01278ECD040000A4E7800064E8EAE3A
1980:107BB00000014000E14D1478F5C0C5C01678D4D05E
1981:107BC000C0000A4E7800064E1478FDC0C5C0167875
1982:107BD000D4D0C0000A4E7800064EE4D040000C4ECF
1983:107BE000E000ED4D9120006009200C00E000F34D15
1984:107BF000912000600981C000F34DE47084A0FF0172
1985:107C000086A0FF01C000044EEC707800C14D7810D2
1986:107C10000F4E04788CD040000C4E1F680C00A070F2
1987:107C2000A2707C001079ECD14000194E1478C4C0C9
1988:107C3000F4C1127978002B4E8EAE00014000254E23
1989:107C40001478F4C0FCD0C0002B4EC4C078002B4E7A
1990:107C50001478FCC0F4D0C0002B4EC4C016787C0051
1991:027C6000E3142B
1992:00000001FF
1993/*****************************************************************************
1994 * QLOGIC LINUX SOFTWARE
1995 *
1996 * QLogic ISP1280/ device driver for Linux 2.2.x and 2.4.x
1997 * Copyright (C) 2001 Qlogic Corporation (www.qlogic.com)
1998 *
1999 *****************************************************************************/
2000
2001/************************************************************************
2002 * --- ISP1240/1080/1280 Initiator Firmware --- *
2003 * 32 LUN Support *
2004 ************************************************************************/
2005
2006/*
2007 * Firmware Version 8.15.11 (10:20 Jan 02, 2002)
2008 */
diff --git a/firmware/qlogic/isp1000.bin.ihex b/firmware/qlogic/isp1000.bin.ihex
new file mode 100644
index 00000000000..a5c242cda22
--- /dev/null
+++ b/firmware/qlogic/isp1000.bin.ihex
@@ -0,0 +1,1158 @@
1:1000000078003010000019240000FF124320504FE8
2:10001000525947495448312039392C313931323914
3:10002000312C39392C333931343951204F4C49472F
4:1000300020434F435052524F54414F49004E4920A4
5:1000400050533031303046207269776D72612065CF
6:100050005620726569736E6F30202E313133202047
7:10006000B9201212C120080071201000C3700400D2
8:10007000C920FF3F8920C810C7705349CB7020505A
9:10008000CF702020D3700100003FD67031203000A7
10:100090007920003563780000A02F09202703112064
11:1000A0000000A9204000A4420981C00051109B78A3
12:1000B00001010B7802000F7802004F78B80B69201D
13:1000C0004035A8006A101B683C0009201313B821B2
14:1000D00078006C101B682800076807000B68FA009E
15:1000E0000F680800136805001F68000023680600F9
16:1000F00017680800276800006920003611202000DA
17:10010000092010000B68190C0F681900036800DD46
18:1001100007681A001A6A002DE8A0080090A20400DF
19:100120000981C000821069208036A92080003768CC
20:1001300000000B684000176800011F686400E8AD0C
21:1001400010007000A510780097107810381A7810F9
22:100150003A2F781081167810BA33003285A00D003E
23:100160009020C37000009000BC10C07086A00200F8
24:10017000C000BC107810BA117810EC107810171865
25:100180007810A81978107D3278107D177800BC108F
26:10019000D010D210C31BC31B982F982FC31BC31B97
27:1001A0007800D0107800D2107800D4107800D610E3
28:1001B00008700C80C800E710077002008CA00C00CB
29:1001C000C000E81004800480C800E7107A087A09AB
30:1001D000C37002407800BD11147805A0C000F4106F
31:1001E0001000301178002F1109206835042105A076
32:1001F000C0002F11147886A00100C00001117810F2
33:1002000036151778000009206F35042165A04000DD
34:100210001D1109206A351C2108811421088104213F
35:1002200010A299A3000009201C008360030178102C
36:100230001116C00029117810781609206F350B208F
37:1002400000000920693504210B20000005A04000B2
38:100250002D11012005407800BC117800BA117C00F6
39:1002600061200000186084A00100400038117C006B
40:10027000C3700000C7700000CB700000CF7000009A
41:10028000C070BCA0C0FFC0008811382079004811A0
42:10029000BA110512D311051256125612CA11901531
43:1002A0006112C611D711D911DB11DD119515C611D7
44:1002B0006712831244158A15DF116B148D14A7146D
45:1002C000D0142414321446145A14EF12C6119F127B
46:1002D000A612AB12B012B612BB12C012C512CA12CD
47:1002E000CE12E312C611C611C611C611C611FB12F9
48:1002F00004131313391343134A1370137F138E130C
49:10030000A0130914C611C611C611C611C6111914BD
50:10031000BCA0A0FFC000C611382084A01F00790037
51:100320009111C611C611C611C611C611C611C6114A
52:10033000C611C611C611C611C611C611C611C61105
53:10034000C611C611C611C611C611C611C611C611F5
54:10035000C611C611C611ED15F715FB150916C61104
55:10036000C611CA72C671012006407800BC11CE7356
56:10037000CA72C67101200040C270612000001B607B
57:10038000010091200050912080407C00C37001400A
58:100390007800BD1199204100A1204100A92005004D
59:1003A000A3537800BA11C470C37004007A007800B7
60:1003B000BA117800BA117800BA117800BA119120F8
61:1003C0000080C3700000C7705349CB702050CF70BD
62:1003D0002020D3700100003FD670792000001B78E8
63:1003E00001003120300059200010292057045120ED
64:1003F000700461207204B920FFFFC1200000912029
65:1004000000509120804078005504D071C872CC73A0
66:10041000C470A020982031203000FF814000BA1124
67:10042000077004001A731E72512012004920341202
68:100430004120BA110370020086A70100C0002612F5
69:100440004920421241204E12037003001770000031
70:100450000B811271C8002E12177001000770010085
71:1004600086A70100400042120C7084A07F00048027
72:100470000920200002A142094A09A820A026A6536B
73:100480007800D8100C7084A07F0040004212AC802D
74:10049000480042129826A5537800D8100C7084A00A
75:1004A0007F00AC809826A5537800BA11C471C8703B
76:1004B00014219EA70400C0005E120A20CA727800B0
77:1004C000B911C7700100CB701F007800BA11C47059
78:1004D000C872CC73D074C670CA72CE73D27405A0C1
79:1004E00040007D12018072787A7A7E7B767C9878E3
80:1004F00084A0FCFF9A7878008112987885A001008A
81:100500009A787800BA11C470C872CC73D474C6706B
82:10051000CA72CE73D67405A0400099120180867805
83:100520008E7A927B8A7C987884A0FFFC9A787800F7
84:100530009D12987885A000019A787800BA11092058
85:1005400059350C21112010047800B81109204135CB
86:100550000C217800B911092042350C217800B9111D
87:10056000612040350C6110627800B81109204535D2
88:100570000C217800B911092046350C217800B911F9
89:10058000092047350C217800B911092048350C2184
90:100590007800B91108790C7A7800B811C471078114
91:1005A00084A00F00038003800380E8A00036006A67
92:1005B000046884A008004000E012086B7800E11293
93:1005C0000C6B7800B711C4777810921691200080D8
94:1005D0001C6B146A9120018008277800B711C4773A
95:1005E00078109216912000800869186A106B91208B
96:1005F00001807800B711C47182A11000C800B21147
97:100600007810BC1A7800B711C47182A11000C8001C
98:10061000B2111120413504227E0012217810751A82
99:100620007F017800B911C47111203113A92008008D
100:10063000042206A1400023131082700021137800C9
101:1006400018137800B21192A231137E0211204235A4
102:10065000042212217F017E007810811A7F01780028
103:10066000B911E803FA00F401EE0264001900320047
104:100670004B00612040350C611062C4700E60C87080
105:1006800012607800B811612040351461C4701660A2
106:100690007800B911C471112004001920121286A12A
107:1006A000280040006313112005001920121286A1B2
108:1006B000320040006313112006001920131386A195
109:1006C0003C00C000B2116120403518607E001A6104
110:1006D000B8237810921A7810BA337F017800B911D4
111:1006E000C47184A1CFFFC000B2111120473504228C
112:1006F00012217E007810B41A7F017800B911C471FC
113:1007000082A11000C800B2111120483504227E00D9
114:1007100012217810A31A7F017800B911C471C87230
115:1007200084A1FDFFC000B11184A2FDFFC000B11182
116:10073000002108790A7800220C7A0E787800B81126
117:10074000C471078184A00F00038003800380E8A0A8
118:10075000003619200000C87200687E0026A2400002
119:10076000CF13026A84A400204000B8139DA3100098
120:1007700084A400104000BE139DA3080084A4004080
121:100780004000CF130F8184A200404000CB137810AB
122:10079000D61A7800CF137810C81A7800CF13CC720D
123:1007A000FF8240000114086806A240000114A4A2C0
124:1007B000FF0061204035186186A128004000E81341
125:1007C00086A132004000EE1386A13C004000F413E5
126:1007D00082A464004800FE137800F81382A450003D
127:1007E0004800FE137800F81382A443004800FE136B
128:1007F000C471C6717F02CA727800B3110A6A9DA3E0
129:100800000A00046805A306687F020C6BC4717800B7
130:10081000B711C4777810921691200080146A1C6B6F
131:1008200091200180C8701668CC701E680827780077
132:10083000B711C471C872CC7382A11000C800B21184
133:100840007810E41A7800B711C477781092169120C6
134:100850000080086A95A202000A6A91200180082798
135:100860007800B811C4777810921691200080086A39
136:1008700094A2F9FF0A6A046805A0400041147810A8
137:10088000191A9120018008277800B811C4777810D0
138:10089000921691200080086A95A204000A6A0468F2
139:1008A00005A0400055147810191A912001800827DE
140:1008B0007800B811C477412001004920050051207B
141:1008C00020009120008078109F1691200180082739
142:1008D000086A7800B811C477C872CC73C677CA7238
143:1008E000CE7378101817C0008914186805A040004E
144:1008F000831408277810F41AC00083141778FFFFB8
145:10090000912001807C009120018001200540780029
146:10091000BC11912001807800BA11C477C6774120BC
147:1009200021004920050051202000912000807810EE
148:100930009F1661204035A3600300B667A7600000E2
149:100940001778FFFF912001807810191A7C00C87772
150:10095000CA77C477C677BCA700FF912000806120CA
151:100960004035A3600200A7600000B6671778FFFF5C
152:100970007810191A9120018041202100492004009B
153:10098000512010009120008078109F16C8703668A2
154:10099000388784A70700C000C414912001807C0020
155:1009A000987884A00300C000F4143920000041208E
156:1009B000210049200400512008007810921691204F
157:1009C000008008680DA80A6991200180388784A7F3
158:1009D0000700C000DD14BCA700FF3F8738873F87B2
159:1009E00084A7000FC000DD14912000806920000161
160:1009F000306884A0400040001D154B680400A92009
161:100A00001400486884A0040040000A1570000A150C
162:100A1000780001154B680900A9201400486884A0DB
163:100A20000100400017157000171578000E15A92059
164:100A3000FA0070001D157800191579200035177817
165:100A4000010061204035A3600100A7600000C36081
166:100A50000F00987885A002009A78086884A0FDFFAE
167:100A60000A681B684600912001807C00987884A069
168:100A7000FDFF9A7884A00100C0004015781060172F
169:100A8000C471C6714A797C00C474C873CC72C674D0
170:100A9000CA73CE72792000350920400078106F1695
171:100AA0004000861578103F1640005A1578107816C9
172:100AB000780086151060912001801778FFFF0920CB
173:100AC00068350B20050008810B20000008810A23EF
174:100AD00008810A2208810A2408810A2008810B2043
175:100AE000000008810A2C2EA030257E0E7810132FCE
176:100AF0007F0E9265A2659666A666AB600000AF6049
177:100B00000000912001807810191A7C00C370054004
178:100B10007800BD11C471C770000006797800BA1161
179:100B2000C471C671682178009715692000100C699E
180:100B300016A0042D10A2688D0981C000991585A208
181:100B40000000C000A715C37000407800A915C3704D
182:100B50000340CA707800BD11C471C872CC73002103
183:100B600084A1FCFFC000C61100217900B715CE1585
184:100B7000E315E515E715C3700340CE71D272D67345
185:100B80007800CA15C3700040CF700000D370000019
186:100B9000D7700000C677CA717800BA113120E91504
187:100BA000242630861224042246A4C000BB1584A447
188:100BB000FFFFC000D0153120E9151082198384A3EE
189:100BC000FFFFC000D0157800C2157800C21578006C
190:100BD000C2155555AAAAFFFF00006079C671C471FD
191:100BE00082A10300C800B21162797800BA1160795D
192:100BF000C6717800BA115479C671C47156795879A2
193:100C0000CA71C8715A795C79CE71CC715E797800FD
194:100C1000BA115479C6715879CA715C79CE7178006D
195:100C2000BA110C7084A07F0040001D1607700400EC
196:100C3000047084A00400C000181617700000127120
197:100C40001A721E7308810C81A981988CA120300032
198:100C50008060A220A6530C7885A000000270077067
199:100C6000010008710481C80031160770020084A1D8
200:100C70000C000C7184A10003037000007C000C7058
201:100C800084A07F0040004B1607700400047084A00D
202:100C90000400C00046161770000012711A721E730D
203:100CA000992030000881AC810C7885A00100027089
204:100CB0000770010008700C80C8005A160770020007
205:100CC0008CA00C00C0006C160C7184A10003C00045
206:100CD0006C16A02CA55306A0037000007C00507871
207:100CE00065A040007716042C5278632000007C0039
208:100CF0007E0F7920003550786220002C52787F0FCB
209:100D00007C0011200040527A192010041983400001
210:100D10008F1680A22F001220102078008616132034
211:100D200000007C0084A7000F0C8084A707000380CC
212:100D300003800380038005A1E8A080367C00781042
213:100D4000921600292A68002A2E68086884A0EFFFFE
214:100D50000DA80A6909204F350C21046805A0400040
215:100D6000BC1616A1C000BC166020006006687E019B
216:100D70000B2000007800BF16092000007E010468E7
217:100D800065A04000CE16006006687810DF16781067
218:100D9000CB17106801801268C000BF167F0102697E
219:100DA00006697C0065A04000DE1698609B6000002C
220:100DB00008207810781600217800D2167C00036095
221:100DC0000301A9201C0080AC0400A0200120000029
222:100DD000A440286816602C681E607C007E0E71207E
223:100DE000403540708CA08000C000FC1688A0803583
224:100DF0000A2D0080427006A07F0E7C007E0E7120BE
225:100E00004035092080354072218211824800161732
226:100E10000421088106ADC000051719811E21088133
227:100E200018831182C8000E17427406A07F0E7C0042
228:100E3000781092169120008004681E7865A040000A
229:100E40005F1778002917002C1E78006065A040000D
230:100E50005F170C6006A3C0002317086006A2C0003D
231:100E60002317282C01204F35042006AC40005F17C3
232:100E7000046806ACC000461700606020066805A044
233:100E8000C0004617036800007800501700641C7803
234:100E90006020026486A40000C0005017002C026885
235:100EA00060257810DF16176005001F60200078109D
236:100EB000CB171068018012680120FFFF05A07C009D
237:100EC0003920000041202100492004005120080061
238:100ED0009120008078109F16388784A70700C000F3
239:100EE0006A17BCA700FF3F8738873F8784A7000F9A
240:100EF000C0006A17912001807C006120000018600A
241:100F000084A00100C0008A17AC78AF78000005A06B
242:100F1000C0008B177C008CA0F0FF40009117781068
243:100F2000A51B79009317A317A517AB17AF17A31726
244:100F3000B317A317A317A317A317B917BD17A317A1
245:100F4000A317A317A3177810A51B7810601701200B
246:100F500001807800C317012003807800C3170120A7
247:100F600004807800C317781060170120068078008D
248:100F7000C31701200C807800C31778106017012078
249:100F80000D807800C317C270612000001B60010053
250:100F9000912080407C00042C8260082C632000009B
251:100FA000647800806678687805A06A794000DB176D
252:100FB000022C7800DC176E797C007E0C61200035F5
253:100FC00083680301082D6B20000064600080666068
254:100FD000686005A06A614000F017022D7800F117E3
255:100FE0006E617F0C7C0078100418400003187E0CA2
256:100FF000986065A04000FE177810D2167F0C9B60A9
257:101000000000781078167C006C7865A040001618F7
258:1010100091200080647801806678042C6E7805A0A9
259:10102000C00014186A780080912001807C009878B4
260:1010300005A0C00065187479D07005000500D07255
261:1010400006A2C0001C18002206A1C00033180478B4
262:1010500005A0400065180778000068006518912019
263:1010600080407800651878106F16400065187C7A0B
264:10107000787B07810480048010A299A300000920D6
265:10108000400078103F1640005C1878107816807881
266:101090000080827886A00200C00065189120008040
267:1010A000AF78020083780000987885A003009A78D2
268:1010B00091200180780065188378000078109219DB
269:1010C000006084A00700790066187C006E187D1807
270:1010D0009D186E18AF186E186E186E18392000041F
271:1010E000A87805A7AA78046005A706607810ED180F
272:1010F0001860A67878107A197C00A87884A000017E
273:101100004000841878006E18AB78000000600780FB
274:1011100084A0FF009E7801809B60000040009A1828
275:101120007810ED1840009A18A87885A00001AA78D8
276:1011300078009C18781011197C00A8788CA0000EFB
277:10114000C000A61884A00001C000A81878006E187E
278:101150007810ED18C000AE18781011197C00A8782E
279:1011600084A000014000B61878006E18AB7800002B
280:101170001067A9200100146084A0FF0005A04000B2
281:10118000D318BCA700FFA92008008EA001004000D2
282:10119000D31839200000A92080008EA00200400052
283:1011A000D3187800EA1878109216002D912000804C
284:1011B0002B6800002F680000086884A0DEFF0A6822
285:1011C000002D80A010006820912001807000EA1896
286:1011D0007800D618781078167C00A0786DA0C00032
287:1011E000F818002CA278A6789B60000078000419FB
288:1011F000002C9A689B600000A278002D0260A47801
289:1012000006ADC000041902609C7801809E78C00081
290:101210001019A87884A00000AA78A478602006A0FD
291:101220007C002EA03025186184A160009E614000E2
292:101230001D197E0E7810132F7F0E9265A26596669B
293:10124000A666AB600000AF600000106778109216D1
294:1012500091200080086884A0010040003F1991207F
295:1012600001807810DF16912000807810CB17912034
296:101270000180A3780000A778000078007919206029
297:1012800096A00100C000461900802260106A146810
298:101290009120018002A248005519400055193920BB
299:1012A000000278107A1978007919082C91200080B2
300:1012B000006865A040005D1902610269C000611903
301:1012C00006696021036000001068008012689120A8
302:1012D000018008688CA040004000731986A040007F
303:1012E0000A687810EE167810191AA7780000A3780B
304:1012F00000007C00046005A7066091200080781043
305:10130000CB1791200180A47865A040008D199860CA
306:10131000A6789B60000078007D19A3780000A7786C
307:1013200000007C007079747800800AA1C8009919C7
308:1013300006A07678D270047805A04000A719018035
309:101340000678C000A7196800A719912080407C008A
310:101350006800C219292000006C7865A04000BD1902
311:101360007810C3194000BD197E057810D9197F0582
312:10137000C000BD1928857800AC19FF854000C2194E
313:10138000912080407C00847B8879D4720500050020
314:10139000D47006A2C000C519002202A1C000D31952
315:1013A000002305A07C004800D71902A37C0002801E
316:1013B0007C0078100B1A09201C00246005A0400056
317:1013C000E31909204000781011164000FC199478A8
318:1013D0000080967886A00200C0000A1A9120008042
319:1013E000AF78030097780000987885A000039A787A
320:1013F0009120018078000A1A977800007810F3177E
321:101400008479887800800AA1C800071A06A08A7823
322:10141000D67006A07C00078104800480907A8C7BC3
323:1014200010A299A300007C0009206835912000805B
324:101430000A207E0F7920000109204035912000808C
325:10144000042186A00000C000341A092012350421AE
326:1014500005A0C000341A307884A0C000C000341A3F
327:101460001800341A1B784400912001807F0F7C0003
328:101470007E1291200023712040357920000119202F
329:10148000D82DA1202B01042305A04000501A9A78E2
330:101490001883AC2318839823A65318337800431A73
331:1014A0009B782000A9201000AF780000AF782002C0
332:1014B00070005C1A7800541A0370000078105B1BEF
333:1014C000047084A00F0085A0806206780F780092D7
334:1014D0004378D800537880000B78380047707F3508
335:1014E000437000007F1200207C008CA10F001120AF
336:1014F0000101042284A0F0FF05A1122078105B1BDB
337:101500007C0011200101A92009000B8170008A1ABA
338:101510007800851A8CA1000E042284A0FFF105A199
339:1015200012207C0009200101A9200500138270000F
340:101530009B1A7800961A94A2E000042184A01FFF51
341:1015400005A20A207C0011200101A9200C000B81BA
342:101550007000AC1A7800A71A8CA100F0042284A0B5
343:10156000FF0F05A112207C0011200201042284A09B
344:10157000CFFF05A112207C000381038080A0200002
345:101580007E0C612000019A60AC62AC637F0C7C0031
346:101590000381038080A022007E0C612000019A60FC
347:1015A000A46084A0DFFFAE607F0C7C000381038019
348:1015B00080A022007E0C612000019A60A46085A0BA
349:1015C0002000AE607F0C7C000381038080A020009F
350:1015D0007E0C612000019A60A460AE621020A460BD
351:1015E000AE6318207F0C7C00912000807E0C7E0E64
352:1015F000186805A04000391B6120803F7810411B0E
353:101600004000271BA92000006120803E7E0C78103E
354:10161000411B4000131B7F0C608C7000111B780075
355:10162000061B7800391B7F0082A0803E7120403568
356:10163000BA701C6085A000081E60B671A76000002B
357:1016400001200400A2707810141A7800351B712054
358:1016500040351C6085A000081E60B671A7600000C0
359:1016600001200600A2707810141A012000007800F2
360:101670003B1B012001009120018005A07F0E7F0C03
361:101680007C00042C05A04000581B60200C6006A3C1
362:10169000C000551B086006A2C000551B106006A1C3
363:1016A000C000551B06A078005A1B00607800421B42
364:1016B00085A001007C00112041350C228CA10F0077
365:1016C00011203B01042284A0000140006A1B21205C
366:1016D00080FF22217C007E0EE4688CA02000400068
367:1016E000A31B84A00600C000A31B1060078084A079
368:1016F0000F00038003800380F0A00036047084A0F4
369:101700000A00C000A31B087194A100FF4000A31BA6
370:101710008CA1FF000120190006A14000961B0120AA
371:10172000320006A140009A1B78009E1B0920200071
372:101730007800A01B09203F007800A01B11200000AA
373:10174000002105A20A707F0E7C006800A51B7E00A8
374:1017500071200000187084A00100C000AA1B7F0047
375:10176000082E71201000CA707F00C670C3700280FE
376:10177000712000001B700100912080407F007020CC
377:101780007F007800C11B7E107E007E129120002316
378:101790003C7F587E307C387D94A53F0084A4004077
379:1017A0004000D81B84A77C00C0009C2D7810A51B8E
380:1017B0009CA40F0082A304005000E01B7810A51B1E
381:1017C000078584A00F007900E51BEA1F9A20C0203E
382:1017D000E6226B25B325EA256526BF2644270B1C88
383:1017E000F51B531E1D1F4A25F51B7810A51B18005D
384:1017F000C81B7F12912001807F007F107C00037046
385:1018000000003F700000307005A04000091C3370DC
386:1018100000001800C81B5C7005A0C000B61CA070BA
387:1018200084A007007900141CD61C1C1C2A1C4B1C0D
388:10183000711C9D1C9B1C1C1C087884A0FDFF0A7851
389:101840000920460078101224C000281C03700400F0
390:101850007800F71B78105E2DC000491CB47007801B
391:101860009B787E00AA789B781000AB780C009B7860
392:101870006000AB7801005B7804000920F700781065
393:101880001024C000491C03700400C3700F003370A3
394:1018900070357800F71B78105E2DC0006F1CB47196
395:1018A00007819B787E00AA789B7810008CA10700A6
396:1018B0008DA1C000AA79AB7806009B786000AB7858
397:1018C00002005B7804000920F70078101024C000A3
398:1018D0006F1C03700400C3700F0033707035780004
399:1018E000F71B78105E2DC000991CB47107819B789E
400:1018F0007E00AA789B7810008CA107008DA1C00003
401:10190000AA79AB782000B871AA79AB780D009B78E2
402:101910006000AB7804005B7804000920F7007810C1
403:101920001024C000991C03700400C3700F003370B2
404:1019300070357800F71B78004B1C78105E2DC000C6
405:10194000F71BBC7068209B781000106F7810A12CDA
406:10195000502C106884A0070085A08000AA78186E1B
407:1019600041200100012004007800DE1D78105E2D6A
408:10197000C000F71B9B7810005C706820106F781017
409:10198000A12C502C086085A010000A60106884A06B
410:10199000070085A08000AA783120200041200100A6
411:1019A0007810C52D012003007800C91D1800C81B40
412:1019B000407485A400004000F01C80A080353020D9
413:1019C000447108812AA14800E71C09208035642160
414:1019D0000465FF85C000FD1C2184C000E11C467128
415:1019E000037000003F7000007800F71B4076B0A63F
416:1019F0008035447100267800EC1C46716825582516
417:101A00003E75502C346085A00000C000FA1C0867A9
418:101A1000367784A73F0140002F1D84A72100C00016
419:101A2000FA1C84A7020040001C1D84A7040040008B
420:101A3000FA1CBCA7FBFF0A6784A70800C000FA1CB9
421:101A400084A71000C000FA1C84A7000140002F1DCD
422:101A5000186005A0C000FA1CBCA7FFFE0A671F683B
423:101A60000000186E84A60E00186140003F1D1C6027
424:101A700002A14800421D4000421D7800F61CFF8173
425:101A8000C000F61C84A78000C000481D0C702260B6
426:101A9000BCA77FFF0A67106B078384A00F00038039
427:101AA0000380038080A00036602048204A700060D8
428:101AB0004E7004605270602A1800C81B9B7810009A
429:101AC00046A078105E2DC000F71B106B9CA307008A
430:101AD0009DA3C0004C7084A000804000731D84A6AC
431:101AE00001004000751D9CA3BFFF84A610004000AC
432:101AF0007B1D9DA32000AA7B408884A60E00C00009
433:101B0000861DBDA710000A677800C71D4C718CA107
434:101B100000084000022911202100048004804800B0
435:101B20009D1D11202200048048009D1D11202000D1
436:101B3000048048009D1D4000C71DAA7A4088781087
437:101B4000772D106A0C6108818CA1FF00E0A1803E16
438:101B5000642CFF8C4000BE1D106006A2C000A81DB2
439:101B6000B4600180B660C000A31D7E0C602A0860CE
440:101B700085A000010A607F0C7800D61C78105E2DCD
441:101B8000C000F71B602A0E61AA7940882E710120DF
442:101B900001007E00507184A118004000DD1D84A169
443:101BA00010004000D71D7810CC2AC000DD1D84A194
444:101BB00008004000DD1D7810E6297F0002708CA629
445:101BC0006000FF884000E61D8DA104005A79B269CB
446:101BD0009B7860000028AA789B786100146885A033
447:101BE00000801668AA787E157E137E14A1202C0131
448:101BF0009B7800000080AC8080AD0A009820A6533E
449:101C00007F147F137F15106807809B787E00AA7869
450:101C1000906DD67DDE7D946ED27EDA7E307884A0A3
451:101C2000C000C000151E98001D1E086084A0EFFFB4
452:101C30000A607810772D7800FF1B007284A20700DD
453:101C400086A00100C0002A1E1B7849007810772D5D
454:101C500078003B1EB06A95A200205A7A1B78490092
455:101C60007810772D0072002505A640003B1E84A247
456:101C700007007910491E80AD0800327084A2070069
457:101C800086A00100C000471E186000801A6078001E
458:101C9000F71B511EF030F030DF30F030511E511E76
459:101CA000511E7810A51B087884A0FDFF0A787E0FCE
460:101CB0007920003598787F0F84A001004000791EBC
461:101CC000A07086A00100C000681EA2707800011FED
462:101CD000A07086A00500C000771EBC706820176841
463:101CE0000400136800001C6885A008001E68A3702B
464:101CF00000007E1511200400A07186A101004000A3
465:101D00009B1E86A10700C0008B1E09202B350B20CF
466:101D1000050078009B1E0920133504210920123587
467:101D20000A2009202B350B200100A3700000A770AA
468:101D3000010078009D1EA37000007810C72EA92016
469:101D40001000392000007810A62BB8A70001700001
470:101D5000AB1E7800A31E007020207900AF1EDD1E90
471:101D6000C61EC61EB91EDD1EDD1EB71EB71E7810AC
472:101D7000A51B21205735042405A04000C61E06AD32
473:101D8000C000C61E006822207800D61E1C6884A0F1
474:101D90000100C000D21E106F7810A12C7810D92835
475:101DA0007800D61E5470602000680260166A1C68B5
476:101DB00085A008001E687810DD172120803F78106C
477:101DC000071F212057357810071FA9200000212068
478:101DD000803E7810071F20847000F01E7800E91EF6
479:101DE000A9208000612080361860106102A1126075
480:101DF0001B600000E0AC10007000001F7800F41EB3
481:101E00007F15037000003F7000007800F71B7E0410
482:101E1000042405A04000191F682000687E00166A8F
483:101E20001C6885A008001E687810DD177F00780008
484:101E3000091F7F04232000007C0082A203005000C1
485:101E4000231F7810A51B00237900261F291F9C1F24
486:101E5000AA1F82A2020040002F1F7810A51BA070AD
487:101E6000A3700000C37000007900361F3E1F3E1FA4
488:101E7000401F741F08293E1F741F3E1F7810A51BAA
489:101E8000B4777810A62BB477BCA7000F7810A12CDC
490:101E9000186005A040006B1F2120803F092004002E
491:101EA000112010007810C51F40006B1F7E15A9205F
492:101EB00000002120803E7E04092004001120100033
493:101EC0007810C51F7F0440006A1F208470006A1FBD
494:101ED00078005B1F7F15388784A70700C000461F66
495:101EE0007800FF1B7800FF1BB4777810A12C1860D6
496:101EF00005A040009A1F2120803F092005001120E5
497:101F000020007810C51F40009A1F7E15A9200000F0
498:101F10002120803E7E040920050011202000781039
499:101F2000C51F7F044000991F20847000991F78000E
500:101F30008A1F7F157800FF1B002279009F1FA21FB8
501:101F4000A41FA41F7810A51BA3700000A770010098
502:101F50007800F71B00227900AD1FB21FA41FB01F2D
503:101F60007810A51B78101F24007086A00100C00007
504:101F7000AF287810EF28086084A0EFFF0A6078107F
505:101F8000A2284000AF287800D61C042405A04000F9
506:101F9000E61F6820042D7E00106806A74000D41FAD
507:101FA000202D7F007800C61F7F00222016691C6844
508:101FB00005A21E687810DD171060018012600860AD
509:101FC00084A0EFFF0A607810EF287C0085A0010054
510:101FD0007800E51F00237900ED1FF21FF01F352068
511:101FE0007810A51BE47805A0D00015201800152056
512:101FF000082084A03000C00001201B784900780030
513:10200000F71BEC7884A003004000FD1F002184A092
514:10201000070079000B20232029201D201320582D94
515:10202000582D13202F207810A51B007005A040000C
516:10203000FF1B012003007800FA227810892B1B78FF
517:1020400055007800F71B7810892B1B78DC0078008E
518:10205000F71B7810892B1B78E3007800F71B7810AA
519:10206000892B1B789D007800F71B84A50F00C0000A
520:102070005F2078101F24007079003E2046205320F6
521:102080004620AF284820AF28462046207810A51BC0
522:10209000A071A370000086A10400C0005120780048
523:1020A00008297800AF287810EF28086084A0EFFF97
524:1020B0000A607810A2284000AF287800D61CE47887
525:1020C00005A0D000152018001520082084A030009D
526:1020D000C0006E201B7849007800F71BEC7884A0C4
527:1020E000030040006A20002184A1070079007820C5
528:1020F00088208E2082208020582D582D8020502D21
529:102100007810A51B7810912B1B7855007800F71BD1
530:102110007810912B1B78DC007800F71B7810912B3E
531:102120001B78E3007800F71B7810912B1B789D003B
532:102130007800F71B002379009D20A220A020A42076
533:102140007810A51B7800652617680800A3780000A2
534:10215000E47984A1300040006526EC7884A0030077
535:102160004000652684A107007900B620232029209D
536:102170001D20302D582D582DBE20502D7810A51B18
537:1021800082A205005000C6207810A51B002379000C
538:10219000C920CC20CE22DA2200227900CF20D42000
539:1021A000D620E920D420B3227810A51B9B781800F4
540:1021B000A87884A0FF0082A0200048006A2B8AA093
541:1021C0000400C8006A2B7900E5206A2B6A2B6A2B71
542:1021D0000C2B9B781800A87984A180004000FE2079
543:1021E00084A118004000FA2078006A2B007005A036
544:1021F000C000F420112003007800522784A1FF00C2
545:102200008AA01000C8006A2B790006211821162127
546:102210002E213021C2216A2B6A2BC4216A2B6A2B02
547:10222000AF22AF226A2B6A2B6A2BB1227810A51B32
548:1022300084A60010400025210120000300800080BA
549:102240003A781B789A007800F71B146884A0008005
550:1022500040002C21176803007800302D7810A51B52
551:102260001C691E6984A60018C0004A211C6884A04D
552:102270000100C0005221146886A00800C00042215D
553:102280001768000084A600044000BE211B78580097
554:102290007800F71B84A60010400052211B785800DC
555:1022A0007800F71B84A660004000BA2184A60008CD
556:1022B0004000BA2184A60080C000602178007A2105
557:1022C000B4A6FF7F5A7EB26E9B787400AC7AAC796C
558:1022D000AC781B80C8006D21008084A03F0008A15D
559:1022E00091A20000946B002102A3AE68906B0022C3
560:1022F00003A3AA6884A6004040008221B4A6FFBFC1
561:102300005A7EB26E007086A00300C0008F21781044
562:102310003A2F7810DF301B7867007800F71B06A093
563:1023200078109431AC6AA869946C906B002205A176
564:1023300040009E21002222A400211BA3D27CD67B38
565:10234000002305A4C000AC21B5A600405A7EB26EA1
566:102350001B7867007800F71B1B786700002215A127
567:10236000C000B6217810F0307800F71B78101D31CE
568:102370007800F71B1B786A007800F71B1B78580061
569:102380007800F71B7810A51B780021221C6984A116
570:1023900000014000DC218CA1FFFE1E697E0C48700C
571:1023A0006020006084A0FFEF0260046084A0F5FF5D
572:1023B00006607F0C7800102284A1000240001022E9
573:1023C0008CA1FFFD1E697E0C48706020006084A017
574:1023D000FFDF0260046084A0EFFF06600820482C45
575:1023E0007F0C84A108004000102278109D2C7810EA
576:1023F000E629FF88400010229B7860000028AA7818
577:10240000587EB5A604005A7E84A60004C0000C22A3
578:102410001B7855007800F71B1B7869007800F71BC4
579:10242000587E84A60004C00019221B78580078004A
580:10243000F71B1B786A007800F71B7800702B780078
581:10244000702B1920000090798CA1070040001F22FA
582:102450009B781000A87894A0FF0086A20100C0001D
583:1024600044220023A87C00A4182002A140003C22A2
584:1024700048003C2278003E227800C621A824A87A91
585:10248000F0003E2278002A2284A2F00086A02000DC
586:10249000C000A02218831883002302A14000542208
587:1024A0004800542278009D2286A2230040001F226B
588:1024B000186884A0F1FF1A68587E84A6F1FF85A0F1
589:1024C000100030205A7E086085A010000A607E0C43
590:1024D0004870602004600820482C7F0C84A1100004
591:1024E0004000782278109D2C7810CC2A7800872222
592:1024F0007E0C4870602004600820482C7F0C84A16A
593:1025000008004000102278109D2C7810E629FF88E2
594:10251000400010229B7860000028AA78B5A604002D
595:102520005A7E84A60004C00099221B7855007800CA
596:10253000F71B1B7869007800F71BA87A78002A221D
597:102540001883002302A14000A9224800A922780094
598:102550002A2284A28000C000762B7800702B78009D
599:10256000762B78006A2B9B781800A87884A0FF004F
600:102570008EA001004000BE227810A51BA87A94A26C
601:10258000FF00A87884A0FF008AA00400C8006A2B7E
602:102590007900CA226A2B39296A2B672A82A2000095
603:1025A000C000D4227810A51B7810892B1B786900F5
604:1025B0007800F71B82A20300C000E0227810A51B60
605:1025C0007810992B1B7869007800F71B82A2040011
606:1025D0005000EC227810A51B00237900EF22F22294
607:1025E000C923FA2386A203004000F8227810A51B15
608:1025F000012000003A70007084A0070079000023D9
609:1026000008230A230A2308253025D2240823082377
610:102610007810A51B84A60010C00012237810C72EC6
611:102620004000A32368788CA0FF0040005A2386A1B5
612:102630000800C00029237810EF28086084A0EFFF6D
613:102640000A607810A22840005A237810C72E78001C
614:10265000412386A12800C0005A237810C72E0860A5
615:1026600084A0EFFF0A60186005A0400041230180AC
616:102670001A6005A040004123018005A040004123CD
617:102680001E601C6884A001004000FF1B1C6884A021
618:10269000FEFF1E6854707E0C6020006802607F0C94
619:1026A0000460026805A0002DC00057230260066088
620:1026B0007800FF1B7E0178101F247F0184A600DFB5
621:1026C0001A6827680000106FFF814000A32386A1CD
622:1026D0000200C0009B2384A60008C000772384A6C4
623:1026E000600040007723D878DC7A2E682A6A178742
624:1026F00094A20F0013821382138290A2003690A23C
625:1027000000001C2284A30001C000882378008E23CF
626:102710001082042285A018001220118284A30004D4
627:1027200040009B239C6884A00001C0009B2378107C
628:1027300091247800FF1B86A118004000A32386A1E6
629:1027400014004000FF1B1269146884A00080400040
630:10275000AB23387016688CA600DF1A697810E02861
631:102760007810EF28C000B823086084A0EFFF0A604B
632:102770001C6884A00100C000C1237810D92878000B
633:10278000C52354706020006802607810DD1778005F
634:10279000FF1B82A204004800CF237810A51B002253
635:1027A0007900D223D623D823E523D8237810A51B7C
636:1027B000007086A005004000E1237810892B1B786B
637:1027C00069001B786A007800F71B90780780018009
638:1027D00084A0070080A018009A78A8798CA1FF0037
639:1027E00086A103004000F62378006A2B1B786A005C
640:1027F0007800F71B1C6885A004001E68FF82C000DB
641:1028000005247810892B78000C24118240000A24BA
642:102810007810A51B7810992B1B7869007800F71B9E
643:102820007810772D307884A0C000C0001C241800D8
644:102830001C241A7906A07C0085A001007C0084A6D7
645:102840006000C00029242F6800002B680000780079
646:10285000902484A60008C0003824B06884A00048F2
647:1028600035A684A60008C00038247810C72E7C0046
648:1028700084A6200040006224D0780380C80046244B
649:1028800006A078109431D4787810F93184A60040ED
650:10289000400050242F6800002B6800007800352489
651:1028A000B06884A0004835A684A60040C0004A2431
652:1028B000387005A0C0005C24D879DC7A2E692A6AB9
653:1028C0007800352484A6004040006C242F68000066
654:1028D0002B68000078003524B06884A0004835A635
655:1028E00084A60040C0006624387005A0C0007A2489
656:1028F0003B700700D879DC7AD078F380C800812457
657:10290000008084A03F0008A191A200002E692A6ADD
658:10291000002105A2C0008E2478003524781094315F
659:102920007C0084A3000240009924086085A0020076
660:102930000A6017680600286A2C693A6A3E692B68A3
661:1029400000032F6800003368002093680000976838
662:10295000200000707900AC24B424B624BF24B42431
663:10296000B424B424B424B4247810A51B1C6884A017
664:102970000100C000BF247810D9287800C524547005
665:10298000502C602000680260602A21205735042402
666:1029900005A04000CE2420207800C724222D6B20E3
667:1029A00000007C00B4777810A62BBCA7000F78102D
668:1029B000A12C186005A0400001257E0D0120903F4C
669:1029C00068207F0D2120803F092004001120100085
670:1029D0007810C51F400001257E15A9200000212088
671:1029E000803E7E0409200400112010007810C51FCD
672:1029F0007F04400000252084700000257800F12429
673:102A00007F15388784A70700C000D7247800FF1BF4
674:102A10007810E0287810EF28276800009B780E00D7
675:102A2000106F136802007810CA3184A600084000B5
676:102A30001D2518698DA100201A69146884A00080E2
677:102A40004000242517680000212057350068222007
678:102A5000386A3C692A6A2E697810DD177800FF1BF6
679:102A600078101F24276800009B780E00106F7810E4
680:102A70007C2D8CA0FF001269146884A000804000A7
681:102A80004325387016688CA600DF1A69A370000011
682:102A90007800FF1B06A07810C72E13680000176887
683:102AA00001008CA600DF1A69276800000070790019
684:102AB00059256125632563256525652565256125DE
685:102AC00061257810A51B7810EF28086084A0EFFF1F
686:102AD0000A607800BA28002379006E2571257325D5
687:102AE000B1257810A51B0070790076257E258025FC
688:102AF00080258B25802592257E257E257810A51B97
689:102B000084A60020C0008B25B5A600205A7E781030
690:102B1000F0307800302D146884A0008040009225A9
691:102B200017680700092018350C2186A10000400015
692:102B3000A72586A101004000AB2509202B350B20DD
693:102B40000B00A37001001B7846007800F71B1B7870
694:102B5000DD007800F71B09202B350B200A007800D8
695:102B6000F71B7810A51B00237900B625B925BB25D6
696:102B7000DE257810A51B00707900BE25C625C82566
697:102B8000C825D325C825DA25C625C6257810A51B56
698:102B900084A60020C000D325B5A600205A7E781058
699:102BA000F0307800302D146884A000804000DA25D1
700:102BB000176807001B78E4007800F71B1C6885A0E5
701:102BC00004001E68B5A600087810892B1B786900E0
702:102BD0007800F71B00237900ED25F025F225F42578
703:102BE0007810A51B7810A51B84A60004C00013262E
704:102BF0002B7809309B786000AB78000084A6FBFF3F
705:102C00005A78E47984A1200040000B26EC7884A057
706:102C10000300C0000F26012014007800FA2284A1CE
707:102C2000070079004B26907A94A207009B786000F9
708:102C3000A879FF81400049269B781000A87B84A3D7
709:102C40000100C0003A26A87BA87B86A30100C00033
710:102C50002D260920F7FF7800332686A30300C00045
711:102C60003A260920EFFF7E0C48706020046004A122
712:102C700006607F0C9B786000AB78000084A6FBFFA9
713:102C80005A782B7809301C698CA1FFFD8CA1FFFEBE
714:102C90001E697800302D2320292055265D265326D5
715:102CA00053265326302D7810A51B1C698CA1FFFDDF
716:102CB0008CA1FFFE1E697800382D1C698CA1FFFDD8
717:102CC0008CA1FFFE1E697800302DE47984A13000CC
718:102CD00040006F26EC7884A00300C00077261468BB
719:102CE00085A000801668012014007800FA2284A1D3
720:102CF000070079007B26302D302D8326302D582D6E
721:102D0000582D302D302D84A60004C000B4261C6838
722:102D100084A001004000382D8CA660208CA1FBFF10
723:102D20005A79B2699B786000AB7800009B786100AB
724:102D3000146885A000801668AA787E157E137E141C
725:102D4000A1202C019B7800000080AC8080AD0A009F
726:102D50009820A6537F147F137F15106807809B78F7
727:102D60007E00AA787800382D146884A00080400086
728:102D7000BB26176808001B78D8007800F71B0023D3
729:102D80007900C226C7264227C5267810A51B0070E9
730:102D900084A007007900CC26D426D626F226D42695
731:102DA000D426D224D426D4267810A51B1C698DA144
732:102DB00001001E690068066005A0C000E0260260F0
733:102DC000186884A00E004000EC261470B6682C71C0
734:102DD00088A1803E7800EE260920803F0421026809
735:102DE0000A2D5671B26E84A660004000402784A66A
736:102DF0000008C000042784A6FF7FB268906894682A
737:102E00007810C72E7800402784A62000400016279F
738:102E100006A078109431D0780380C8001227D478A7
739:102E20007810F931D879DC7A78001A277810AE2C2E
740:102E30007810943184A600804000402784A6FF7F4C
741:102E4000B2689B78740078107C2D102078107C2D4F
742:102E5000082084A62000C000382778107C2D1B8015
743:102E6000C8003327008084A03F0008A191A2000081
744:102E7000946B002102A3AE68906B002203A3AA68A2
745:102E80007800FF1B7800762B3370000082A20500CB
746:102E900050004C277810A51B002379004F2752279C
747:102EA0005C277F270022790055275A27762B5A273F
748:102EB000A827F9277810A51B007086A00100C00084
749:102EC00069277810EF287810C72E34700A607800D0
750:102ED0006E27007086A00300400063270370050082
751:102EE0000120903F68203E703270002279007827E0
752:102EF000762B7D27A8277D27762B7810A51B0070C1
753:102F000086A00100C0008C277810EF287810C72E0B
754:102F100034700A6078009127007086A0030040009A
755:102F20008627037005000120903F68203E703270B4
756:102F3000002279009B27A227A027A227A027A2274B
757:102F40007810A51B7810992B1B7869007800F71B67
758:102F5000007086A00100C000B5277810EF28781017
759:102F6000C72E34700A607800BA27007086A003006C
760:102F70004000AF2703700200807A94A2000F9B7874
761:102F80001800A87C84A4070015A26920803F042DA6
762:102F9000082D5671682005A04000D527106806A2AC
763:102FA0004000EE2700687800C82703700500012064
764:102FB000903F68203E7032707E15A9202F000320BC
765:102FC000000000807000E6277800DF277F15126A76
766:102FD000B36800071F68000823680300B06E5A7EBC
767:102FE0001C6884A0000C40004F287810912B7800BA
768:102FF0004F28007086A00100C00006287810EF2836
769:103000007810C72E34700A6078000B28007086A0F4
770:1030100003004000002803700200807A94A2000F91
771:103020009B781800A87C84A4070015A2A879A87929
772:103030008CA1FF00E8A1803E042D082D5671682068
773:1030400005A040002A28106806A240004328006816
774:1030500078001D28037005000120903F68203E7015
775:1030600032707E15A9202F00032000000080700020
776:103070003B28780034287F15126AB36800071F6860
777:10308000000823680300B06E5A7E1C6884A0000C00
778:1030900040004F2878108D2B587E78004F287E02F4
779:1030A000078284A00F0003800380038080A0003685
780:1030B00060204A7000604E700460527084A6600008
781:1030C00040008628946B906CA869AC6805A1C0008C
782:1030D0007428D27BDA7BD67CDE7CB4A6FFB75A7E1E
783:1030E0007810F03078008628AC681AA3002123A459
784:1030F000002405A340008628D27BDA7BD67CDE7CC8
785:10310000AC68B4A6FFBF5A7E78101D317F077810D7
786:10311000A12C09206A0084A60800400091280920FB
787:103120006900B5A600205A7E1A79002D3E700782EC
788:1031300084A00F0003800380038080A00036482015
789:103140007800F71B206005A04000AE2801802260B7
790:10315000086085A008000A60107026607C0006A048
791:103160007810C72E13680000176801001F68400020
792:103170001B680001007084A007007900BF28C728E1
793:10318000C928C928D528D128C728C728C728781012
794:10319000A51B7810E0287810D9287810DD17780062
795:1031A000FF1BA37000007800FF1B17680000780069
796:1031B0000825006805A0C000DE28026006607C00CB
797:1031C000106005A04000E9280180D000E9287810AF
798:1031D000A51B1260086084A0EFFF0A607C001860E5
799:1031E00005A04000F52801801A607C007810772D3A
800:1031F00017681800780026297810772D17681900AD
801:10320000780026297810772D17681A00780026296B
802:10321000B4777810A12CB8718CA1FF00E8A1803E92
803:10322000042D082D682005A0C00018297800FF1B78
804:103230001068B47206A240002029006878001129A5
805:1032400000680A2017680500BF7000007810E028A9
806:103250001C6884A00100C0002F297810D92878109C
807:10326000EF281B6800001F6820007810DD17780029
808:10327000FF1B82A20300C0006A2BA87DACA5FF0043
809:10328000A87EB4A6FF001C698DA180001E6984A1E0
810:103290000001400099298CA1FFFE1E69B4A6FF0021
811:1032A0004000832982A60F0048005A2940005A296D
812:1032B00031200F002B852B857810242C40006429A9
813:1032C0007810332A78008C297810DF2B7E0C602947
814:1032D000046084A0F5FF06607810572A7F0C1C69F3
815:1032E0008DA100011E69587EB5A604005A7E84A6F1
816:1032F0000004C0007F291B7855007800F71B1B785D
817:1033000069007800F71B7E0C6029046084A0F5FF3B
818:1033100006607810572A7F0C587E84A60004C000EF
819:1033200095291B7858007800F71B1B786A007800F5
820:10333000F71B7E0C4870602000618CA100104000DB
821:10334000D9290862178294A2FF0082A20F004800C8
822:10335000AD294000AD2911200F00002602A2C800AF
823:10336000B2293022086294A2FF00187086A02800BB
824:10337000C000C22982A21900C800C8291120190062
825:103380007800C82982A20C00C800C82911200C00AE
826:10339000002202A5C800CD2928227810E32B2B8516
827:1033A0002B857810242C4000D9297810332A7800F6
828:1033B000DD297810DF2B7810572A587885A0040073
829:1033C0005A787F0C1B7869007800F71B7E0C602907
830:1033D000006084A00010C000012A106084A00F00CB
831:1033E000C000FB298CA10200C000FB298CA1F5FFC5
832:1033F00006617F0C7C00112032001920000078004B
833:10340000232A086294A2FF00187086A02800C0003A
834:10341000112A82A21900C800172A11201900780069
835:10342000172A82A20C00C800172A11200C0008637A
836:103430001F839CA3FF0082A30F004800232A4000A3
837:10344000232A19200F00AB780100AB780300AB787A
838:103450000100AA7AAA7BC0A805001C6885A000010B
839:103460001E687F0C7C007E0C48716021082084A0BF
840:10347000F0FF35A6867E18609A78AE7E1266A47834
841:1034800084A0F8FF8CA1070005A1A67816608A78B1
842:10349000B4A60F0037860482048084A0FF0005A62E
843:1034A0000E60046084A0F5FF06607F0C7C007E0C3B
844:1034B0004870602018609A78A47884A0F0FFA678FD
845:1034C0001260847884A0F0FF86787F0C7C0082A252
846:1034D0000200C0006A2BA87A1C698DA180001E69B9
847:1034E00084A100024000AC2A8CA1FFFD1E6994A2B9
848:1034F000FF0082A20200C8006A2B7810F32A78101D
849:10350000572A80A901000C2078109D2C7810E629FC
850:10351000FF8840009F2A9B7860000028AA78587E88
851:10352000B5A604005A7E84A60004C0009B2A1B781E
852:1035300055007800F71B1B7869007800F71B587E50
853:1035400084A60004C000A82A1B7858007800F71B46
854:103550001B786A007800F71B82A20200C800B42A18
855:1035600084A201004000BE2A487188A100000C21FD
856:103570008CA10020C000BE2A112000007810D12BA1
857:103580007810F32A7810572A587885A004005A78C2
858:103590001B7869007800F71B7E0C7E0260290060B2
859:1035A0001120010084A00020C000E32A146084A040
860:1035B0004000C000E12A8CA1EFFF066106A0780060
861:1035C000F02A11200000AB780100AB780200AB7844
862:1035D0000300AA7AC0A804001C6885A000021E6827
863:1035E0007F027F0C7C007E0C48706020FF824000D0
864:1035F000FB2A11204000186080A002009A78A4786D
865:1036000084A0BFFF05A2A67816608A78046084A013
866:10361000EFFF06607F0C7C007E00007086A0030038
867:103620004000152B7F007800182B7F007800662B58
868:1036300084A620004000662B887884A040004000CB
869:10364000662BA87801804000252BB87B84A33F001F
870:103650001B83C8002C2B008005A040004D2B1B8332
871:10366000C800352B01804000622B06A078109431F1
872:10367000B4787810F9317800662B84A600404000B9
873:103680004D2BB8781B80C800462B008084A03F00DB
874:10369000C000622BB4A6FFBF5A7ED879DC7A012025
875:1036A000010008A1C800562B91A20000D279DA7956
876:1036B000D67ADE7A781094311B78670078105E3005
877:1036C0007800F71B1B7867007800F71B1B786A00EF
878:1036D0007800F71B78109D2B1B7869007800F71B8A
879:1036E0007810892B1B7869007800F71B236802008B
880:1036F0007810912B1C698DA120001E69146884A08C
881:1037000000804000852B176805001B786900780051
882:10371000F71B0120050078009F2B01200C0078008A
883:103720009F2B0120060078009F2B01200D007800C0
884:103730009F2B0120090078009F2B012007009B7818
885:103740007F00AA78B5A608005A7E7C007E073F87D6
886:10375000BCA70F003B873B870387E0A00036B8A7D4
887:1037600020009A7FA47984A10F004000BF2B84A180
888:10377000F0FFA6781260046085A008000660388714
889:1037800038879A7FA47984A140004000CF2B84A180
890:10379000BFFFA6781660046085A0100006607F0752
891:1037A0007C009B781000AB780100AB780200AB780E
892:1037B0000300AA7A9B786000AB7804007C0031207B
893:1037C0000000292032009B781000AB780100AB7814
894:1037D0000300AB780100AA7DAA7E9B786000AB78DD
895:1037E00005007C007E15078084A0FF000380038015
896:1037F00080A020009A78A4798CA1F0FF01204635A2
897:10380000042082A0280040000D2C2120842C1920A7
898:103810001400A9200C007800132C2120902C1920D2
899:103820001900A9200D0011206400042484A0F0FFD9
900:1038300006A14000222C2084002310A27000222C1C
901:103840007800152C7F157C007E151120463514223A
902:1038500082A232004800382C40003C2C2120762CDB
903:1038600019201100A9200E001120320078004C2CE4
904:1038700082A228004000442C2120842C192014000E
905:10388000A9200C0078004A2C2120902C1920190026
906:10389000A9200D0011206400002202A540005C2C2C
907:1038A00048005C2C2084002310A27000592C780062
908:1038B0004C2C7F1506A07C007F1582A56400C800F3
909:1038C000652C087885A070000A78EC7884A0000345
910:1038D0004000732C04249EA00112C000732C012010
911:1038E00001217800742C042405A07C000112023010
912:1038F0000232034203440454045605660568067800
913:10390000067A070A070C070E0232024202520262CE
914:103910000272056605760578057A057C057E057FC9
915:1039200002220232024202520454046404740476F5
916:103930000478047A047C047E047F9B78100046A0FF
917:103940007C0084A7000F0C8084A7070003800380FD
918:103950000380038005A1E0A080367C00D879DC7A62
919:10396000D0781B80C800B52C008084A03F0008A13F
920:1039700091A200007C007E0F7920000109204035D3
921:103980009120008004217900C52CF72CCF2CCF2C5E
922:10399000CF2CCF2CCF2CCD2CCD2C7810A51B4B7839
923:1039A0000400487884A00400C000D12C4B780800A3
924:1039B000487884A00800C000D82CB06885A00040DA
925:1039C000B268587885A000405A78307884A080008A
926:1039D000C000F72C1800F72C186884A02000C00045
927:1039E000F52C1B78DD007800F72C1B78E400912083
928:1039F00001807F0F7C007E0C1068078084A00F0080
929:103A0000038003800380E0A00036046084A00A00E5
930:103A1000C0002E2D086194A100FF40002E2D8CA126
931:103A2000FF000120190006A140001D2D01203200D9
932:103A300006A14000212D7800252D092020007800C6
933:103A4000272D09203F007800272D1120000000219C
934:103A500005A20A60046085A0020006607F0C7C005D
935:103A60001B786A007800F71B1B7869007800F71B49
936:103A70001B7858007800F71B1B7855007800F71B5F
937:103A80001B78DD007800F71B1B78DC007800F71B43
938:103A90001B78E4007800F71B1B78E3007800F71B25
939:103AA0001B789E007800F71B1B789D007800F71BA1
940:103AB000A37001001B7846007800F71B7E00307869
941:103AC00084A0C000C000752D087884A0FDFF0A788E
942:103AD0000500050005000500EC7884A021004000E9
943:103AE000752D087885A002000A787F007C00087890
944:103AF00085A002000A787C00307884A04000C000D5
945:103B00007C2D9800852DAC787C00087884A0FDFF82
946:103B10000A780500050005000500EC7884A0210066
947:103B20004000942D9800922DAC787E00087885A0F6
948:103B300002000A787F007C0084A770004000A82D56
949:103B40007E0C602D682F78106B1B782D682C7F0CF5
950:103B500017680300587884A0003F1A682F68000097
951:103B60002B6800004B780800E47805A0D0001520F1
952:103B700084A0200040001520EC7884A003004000C1
953:103B80001520180015207800702B7E0C1068078017
954:103B900084A00F0003800380038080A00036602093
955:103BA00048204A7000604E70046052707F0C7C00A8
956:103BB0002000200000002000000020000000200065
957:103BC0000000200000002000000020000000200075
958:103BD0000000200000002000000020000000200065
959:103BE0000000200000002000000020000000200055
960:103BF000000020006200090014001400479814001F
961:103C00001400F598E798140014008000BF0000012C
962:103C10000204082080F80AA214000B300CA2140041
963:103C200000A238887E812A84A08406383988C22878
964:103C3000C39C05A864083BA80830C128C39C01A206
965:103C40000C30472861816A840080A48456183A8821
966:103C500008A8E228A09CF3A8640829A80C3001A8B1
967:103C60000830E128A09C0D2804A2C064A067C06FA2
968:103C700014183B882370768577860FA86E783E8867
969:103C80000CA82B2805A2A064A067C06F14183B885D
970:103C900023707685778601A83E886920C128C39C59
971:103CA00044200321A2208120DCA807A2140003A243
972:103CB0000080A884A48572189A843C88E21F01F6CB
973:103CC00008A26E856F8604070830A09C140002A22B
974:103CD0000080A4850930A884E21948F87481EB8635
975:103CE000EB852E87A9873F88E608F1A861F8E8A848
976:103CF00001F8140081F81600B285F0803295A2FA1E
977:103D0000E21D1400328521F21400E21DA884E0D6E1
978:103D1000E61F140006A265687F812A84C11D2388DE
979:103D2000160042600880FAA80080A48460812A847A
980:103D300021F00830A884C61DD720228816000080F4
981:103D400048281110FCA80830008000A0022811109B
982:103D5000FDA887A808303D281110FDA809A217006A
983:103D60000C300080A485E21DC1DA1400E0263A87F9
984:103D7000A2FAF219E21F14000BA214000DA27E8118
985:103D80002A84A08406381002CD9C040700007E120D
986:103D9000912000224920C72E0070047205A20C72E7
987:103DA00015A2087084A0FDFF05A24000D92E78005E
988:103DB000DE2E037000007F1200207C00007084A0C3
989:103DC0000100C0000C2F08710481C800EB2E781090
990:103DD000A82F7800E32E0C708CA07F0040000C2FE1
991:103DE00004700480C800032F147005A0C000FF2ECB
992:103DF000107005A04000032F02A1C800E32E077039
993:103E0000100078000C2FFF8A40000C2F78106B31C7
994:103E1000C000062F4000E32E7810562F03700000DC
995:103E20007F1200207C002464FF844000302F702C1F
996:103E30003920352F042768AE0C6830A6086829A5FC
997:103E400021844000302F3887042705A0C0001B2F95
998:103E5000987075A04000302F3920322F78001A2F2B
999:103E60007C000000040008000C0010001400180082
1000:103E70001C0000007E129120002279200035712064
1001:103E8000100007700A000770020003700000712024
1002:103E9000200007700A00077002000370000049202C
1003:103EA0000000B37800007F1200207C004920562FCC
1004:103EB00004700480C800822F077012000871087017
1005:103EC00006A1C0005E2F84A1300040006B2F86A0A9
1006:103ED0003000C0005E2F007084A00100C000822F5F
1007:103EE000087084A00C00C000802F0C7184A1000316
1008:103EF000C000802F84A17F00C000562F7800822F41
1009:103F0000176803000770120007700800047084A08F
1010:103F10000800C000862F0770120008710481480055
1011:103F20008B2FB378000003700000492000007C0054
1012:103F30007E107E007E127E1591200022087178107E
1013:103F4000A82F7F157F12912001807F007F107C00B9
1014:103F50000472182108710C7084A00003C000EA2FBD
1015:103F600084A10C00C000EA2F1382138213821382F3
1016:103F700084A200010DA10B810B810F8184A1070098
1017:103F80007900C22FCC2FDC2FEA2FDC2FFE2FFE2F43
1018:103F9000EA2FFC2F7810A51B07700200FF8AC000D3
1019:103FA000D52F492000007800D92F78106B31C00040
1020:103FB000D52FB37800007C0007700200FF8AC00094
1021:103FC000E32F7800E72F78106B31C000E32FB37830
1022:103FD00000007C00077002007810562F7810BB2C70
1023:103FE000146884A000804000F72F176802007C004E
1024:103FF0007810A51B7810A51B781050301072147122
1025:104000000C709CA07F00002800A311A289A10000D1
1026:10401000B07805A040001030B3780000780033304D
1027:10402000781050300427582C60AC0C63002222A377
1028:10403000086300211BA3002405A340002930C80009
1029:104040002930128410820A8389A10000602B780035
1030:104050001030602B078ABAA7322F3DA7002C826848
1031:10406000866F8E6C8A6B077012007810562F7C005A
1032:104070003887042705A0C0004430986005A04000A0
1033:104080004D3060203920322F518A40004C3008706A
1034:1040900084A0C00086A0C0007C00512000007C00ED
1035:1040A000508A3987042704A0C0005D303920382F9A
1036:1040B000006064A0C0005D30602D7C007E127E0D2B
1037:1040C000912000227F0D806860208468886B8C6C52
1038:1040D0005780D4AAFF0084A0FF00B8A0322F087E2A
1039:1040E000B5A60C00186884A0400040007930B5A641
1040:1040F00001007E0F7920000158787F0F84A04000D6
1041:104100004000883084A60100C0008830B5A60100B8
1042:1041100007700400047084A00400C0008A3000709E
1043:1041200005A0400095307810A51B002405A3C00011
1044:104130009B307800D830582C042760AC046000A471
1045:104140007E001A70006001A31E700920FD04042186
1046:1041500086A0FD047F00C000C83084A0010040009C
1047:10416000C83084A60100C000C83013700100177069
1048:104170000000027607700100B3780100A0A40100DE
1049:1041800099A30000046000A41A70006001A31E70CF
1050:104190000C62002402A212700862002303A21670AF
1051:1041A000027607700100602B781038307800DA3022
1052:1041B00078106B31C000D8307F1200207C007E1256
1053:1041C0007E0D912000227F0D07700400047084A0F2
1054:1041D0000400C000E630037008007F1200207C005D
1055:1041E0007E127E0D912000227F0D4920F030077055
1056:1041F0000400047084A00400C000F930007005A021
1057:10420000400004317810A51B087EB5A60C00186884
1058:1042100084A0400040000E31B5A60100246805A02E
1059:1042200040001A3150203920352F602D78106B3125
1060:10423000C00016317F1200207C007E127E007E01BD
1061:104240007E0D912000227F0D7F037F04087EB5A69E
1062:104250000C00186884A0400040003031B5A6010071
1063:1042600049201D31246855A040006831702D602E12
1064:104270003920352F042768AE0C6822A408681BA3D8
1065:1042800048005531518AC00047317810A51B388746
1066:10429000042705A0C0003B31987075A06020400045
1067:1042A00068313920322F78003A31228420841A83F1
1068:1042B00099A300000C69002422A1086900231BA116
1069:1042C000C80064317810A51B712020007800883068
1070:1042D0007F1200207C00087084A0C00086A0C0006F
1071:1042E00040009331042708AC04211E70088104218A
1072:1042F0001A700881042116700881042112707E0F43
1073:104300007920000158787F0F84A0400040008E3152
1074:1043100084A60100C0008E31B5A6010002760770A8
1075:104320000100781038307C007E127E007E0D9120D6
1076:104330000022492094317F0D7F08087184A1C000BC
1077:10434000C000AA31246805A04000BA317800DE2EF2
1078:104350007800BA3108710481C800B2317810A82FF2
1079:1043600078009D310770100008710481C800B431D5
1080:104370007810A82F087086A00200C0009D31007040
1081:1043800005A0C0009D3103700000492000007F128D
1082:1043900000207C007E127E147E137E157E0D9120FF
1083:1043A00000227F0D4920CA3180AD1000A020992045
1084:1043B00031000C7084A07F00266807700800077029
1085:1043C0000200037001004000E8310080AC80A5537A
1086:1043D00007700400047084A00400C000EA31492082
1087:1043E0000000037000007F157F137F147F120020F0
1088:1043F0007C007E127E007E0D912000227F0D4920E0
1089:10440000F931806860208468886B8C6C5780D4AAEE
1090:10441000FF0084A0FF00B8A0322F087EB5A60400DC
1091:1044200007700400047084A00400C0001232582CED
1092:10443000042760AC046000A41A70006001A31E7021
1093:1044400013700100177000000276077001007F00F2
1094:104450000780092031000A20A0002C320871077063
1095:1044600002000C81C8002C320C81480039327800DF
1096:10447000EA2FA0A4010099A300008A6B8E6C07703C
1097:10448000040049200000037000007F1200207C001F
1098:10449000A920100006A0048086808E81C8005132B9
1099:1044A00000A2F0004C3286808E817C007E15A9200F
1100:1044B000100005A0400077321AA1C800773213829D
1101:1044C0008D8148006A321AA1C8006B32F0005F3259
1102:1044D00078006F321AA108231082F0005F327E004C
1103:1044E000003284A0FFF780207F007F157C007E00D3
1104:1044F000003285A0000878007332E000BF329120BE
1105:104500000060207801802278C000B93224782278B7
1106:104510009120008069204035006884A00700400099
1107:10452000A13286A002004000A13230680DA04000F8
1108:10453000A132042105A04000A13201800A204000E0
1109:104540006F3361208036A9208000346005A04000D0
1110:10455000B33201803660C000B332106005A0400065
1111:10456000B3327810191AE0AC10007000B93278003C
1112:10457000A5327810D4327810C2327810F9329120F6
1113:1045800001807C003C7801803E78C000D3324078C6
1114:104590003E78487805A04000D33201804A78C000B8
1115:1045A000D3327810191A7C00347801803678C00034
1116:1045B000F8323878367891200080447805A0C00021
1117:1045C000E332012001010180467880A0803E402036
1118:1045D000042065A04000F832206005A04000F432BD
1119:1045E00001802260400028330060402C7800E932CE
1120:1045F0007C00287801802A78C00027332C782A781C
1121:10460000307805A0C0000633012080000180327898
1122:10461000038003800380038090A0803698A202006C
1123:10462000042384A008004000273390A2090004223C
1124:1046300005A040001F3301801220C000273304234F
1125:1046400084A0F7FF85A080001A207810191A7C003A
1126:1046500069204035006805A0400032333C6806AC54
1127:1046600040006F3317600600B06084A0003F1A60FE
1128:104670001C6084A0FF0085A060001E6000604220D6
1129:104680001067B66F78109216186805A040004A337C
1130:1046900001801A68086884A0EFFF0A68106801802A
1131:1046A000D00054337810A51B12682F6000002B60D7
1132:1046B0000000682C7810DD176920403501200600C5
1133:1046C000A268447984A10001C0006A33BA6901205C
1134:1046D0000400A2687810141A912001807C0009203F
1135:1046E0004F3564216920000178106B1B17600600AC
1136:1046F000586884A0003F1A601C6084A0FF0085A059
1137:1047000048001E602F6000002B600000306884A00D
1138:1047100040004000AB334B680400A92014004868F7
1139:1047200084A00400400098337000983378008F33E1
1140:104730004B680900A9201400486884A001004000CB
1141:10474000A5337000A53378009C33A920FA007000CF
1142:10475000AB337800A733086884A0FDFF0A681B68A4
1143:104760004600092068350B2007004C784A789120D4
1144:1047700001807C0079200035781003347810CB3329
1145:104780007810E0337810F533337800004778000074
1146:104790004B7800007C0019200A00112046350422C5
1147:1047A00086A032004000DD3319200C00042286A0D0
1148:1047B0003C004000DD33192008002A7B2E7B7C0062
1149:1047C0001920300011204635042286A03200400016
1150:1047D000F23319203900042286A03C004000F23355
1151:1047E00019202700367B3A7B7C0019200D00112010
1152:1047F0004635042286A03C004000003419200A00FF
1153:104800003E7B427B7C001920AF2F112046350422CD
1154:1048100086A032004000153419207139042286A088
1155:104820003C004000153419202626227B267B7C0084
1156:02483000A7924D
1157:00000001FF
1158/* Version 1.31.00 ISP1000 Initiator RISC firmware */
diff --git a/include/scsi/fc/fc_fip.h b/include/scsi/fc/fc_fip.h
new file mode 100644
index 00000000000..0627a9ae634
--- /dev/null
+++ b/include/scsi/fc/fc_fip.h
@@ -0,0 +1,237 @@
1/*
2 * Copyright 2008 Cisco Systems, Inc. All rights reserved.
3 *
4 * This program is free software; you may redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
9 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
11 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
12 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
13 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
14 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
15 * SOFTWARE.
16 */
17#ifndef _FC_FIP_H_
18#define _FC_FIP_H_
19
20/*
21 * This version is based on:
22 * http://www.t11.org/ftp/t11/pub/fc/bb-5/08-543v1.pdf
23 */
24
25/*
26 * The FIP ethertype eventually goes in net/if_ether.h.
27 */
28#ifndef ETH_P_FIP
29#define ETH_P_FIP 0x8914 /* FIP Ethertype */
30#endif
31
32#define FIP_DEF_PRI 128 /* default selection priority */
33#define FIP_DEF_FC_MAP 0x0efc00 /* default FCoE MAP (MAC OUI) value */
34#define FIP_DEF_FKA 8000 /* default FCF keep-alive/advert period (mS) */
35#define FIP_VN_KA_PERIOD 90000 /* required VN_port keep-alive period (mS) */
36#define FIP_FCF_FUZZ 100 /* random time added by FCF (mS) */
37
38/*
39 * Multicast MAC addresses. T11-adopted.
40 */
41#define FIP_ALL_FCOE_MACS ((u8[6]) { 1, 0x10, 0x18, 1, 0, 0 })
42#define FIP_ALL_ENODE_MACS ((u8[6]) { 1, 0x10, 0x18, 1, 0, 1 })
43#define FIP_ALL_FCF_MACS ((u8[6]) { 1, 0x10, 0x18, 1, 0, 2 })
44
45#define FIP_VER 1 /* version for fip_header */
46
47struct fip_header {
48 __u8 fip_ver; /* upper 4 bits are the version */
49 __u8 fip_resv1; /* reserved */
50 __be16 fip_op; /* operation code */
51 __u8 fip_resv2; /* reserved */
52 __u8 fip_subcode; /* lower 4 bits are sub-code */
53 __be16 fip_dl_len; /* length of descriptors in words */
54 __be16 fip_flags; /* header flags */
55} __attribute__((packed));
56
57#define FIP_VER_SHIFT 4
58#define FIP_VER_ENCAPS(v) ((v) << FIP_VER_SHIFT)
59#define FIP_VER_DECAPS(v) ((v) >> FIP_VER_SHIFT)
60#define FIP_BPW 4 /* bytes per word for lengths */
61
62/*
63 * fip_op.
64 */
65enum fip_opcode {
66 FIP_OP_DISC = 1, /* discovery, advertisement, etc. */
67 FIP_OP_LS = 2, /* Link Service request or reply */
68 FIP_OP_CTRL = 3, /* Keep Alive / Link Reset */
69 FIP_OP_VLAN = 4, /* VLAN discovery */
70 FIP_OP_VENDOR_MIN = 0xfff8, /* min vendor-specific opcode */
71 FIP_OP_VENDOR_MAX = 0xfffe, /* max vendor-specific opcode */
72};
73
74/*
75 * Subcodes for FIP_OP_DISC.
76 */
77enum fip_disc_subcode {
78 FIP_SC_SOL = 1, /* solicitation */
79 FIP_SC_ADV = 2, /* advertisement */
80};
81
82/*
83 * Subcodes for FIP_OP_LS.
84 */
85enum fip_trans_subcode {
86 FIP_SC_REQ = 1, /* request */
87 FIP_SC_REP = 2, /* reply */
88};
89
90/*
91 * Subcodes for FIP_OP_RESET.
92 */
93enum fip_reset_subcode {
94 FIP_SC_KEEP_ALIVE = 1, /* keep-alive from VN_Port */
95 FIP_SC_CLR_VLINK = 2, /* clear virtual link from VF_Port */
96};
97
98/*
99 * Subcodes for FIP_OP_VLAN.
100 */
101enum fip_vlan_subcode {
102 FIP_SC_VL_REQ = 1, /* request */
103 FIP_SC_VL_REP = 2, /* reply */
104};
105
106/*
107 * flags in header fip_flags.
108 */
109enum fip_flag {
110 FIP_FL_FPMA = 0x8000, /* supports FPMA fabric-provided MACs */
111 FIP_FL_SPMA = 0x4000, /* supports SPMA server-provided MACs */
112 FIP_FL_AVAIL = 0x0004, /* available for FLOGI/ELP */
113 FIP_FL_SOL = 0x0002, /* this is a solicited message */
114 FIP_FL_FPORT = 0x0001, /* sent from an F port */
115};
116
117/*
118 * Common descriptor header format.
119 */
120struct fip_desc {
121 __u8 fip_dtype; /* type - see below */
122 __u8 fip_dlen; /* length - in 32-bit words */
123};
124
125enum fip_desc_type {
126 FIP_DT_PRI = 1, /* priority for forwarder selection */
127 FIP_DT_MAC = 2, /* MAC address */
128 FIP_DT_MAP_OUI = 3, /* FC-MAP OUI */
129 FIP_DT_NAME = 4, /* switch name or node name */
130 FIP_DT_FAB = 5, /* fabric descriptor */
131 FIP_DT_FCOE_SIZE = 6, /* max FCoE frame size */
132 FIP_DT_FLOGI = 7, /* FLOGI request or response */
133 FIP_DT_FDISC = 8, /* FDISC request or response */
134 FIP_DT_LOGO = 9, /* LOGO request or response */
135 FIP_DT_ELP = 10, /* ELP request or response */
136 FIP_DT_VN_ID = 11, /* VN_Node Identifier */
137 FIP_DT_FKA = 12, /* advertisement keep-alive period */
138 FIP_DT_VENDOR = 13, /* vendor ID */
139 FIP_DT_VLAN = 14, /* vlan number */
140 FIP_DT_LIMIT, /* max defined desc_type + 1 */
141 FIP_DT_VENDOR_BASE = 128, /* first vendor-specific desc_type */
142};
143
144/*
145 * FIP_DT_PRI - priority descriptor.
146 */
147struct fip_pri_desc {
148 struct fip_desc fd_desc;
149 __u8 fd_resvd;
150 __u8 fd_pri; /* FCF priority: higher is better */
151} __attribute__((packed));
152
153/*
154 * FIP_DT_MAC - MAC address descriptor.
155 */
156struct fip_mac_desc {
157 struct fip_desc fd_desc;
158 __u8 fd_mac[ETH_ALEN];
159} __attribute__((packed));
160
161/*
162 * FIP_DT_MAP - descriptor.
163 */
164struct fip_map_desc {
165 struct fip_desc fd_desc;
166 __u8 fd_resvd[3];
167 __u8 fd_map[3];
168} __attribute__((packed));
169
170/*
171 * FIP_DT_NAME descriptor.
172 */
173struct fip_wwn_desc {
174 struct fip_desc fd_desc;
175 __u8 fd_resvd[2];
176 __be64 fd_wwn; /* 64-bit WWN, unaligned */
177} __attribute__((packed));
178
179/*
180 * FIP_DT_FAB descriptor.
181 */
182struct fip_fab_desc {
183 struct fip_desc fd_desc;
184 __be16 fd_vfid; /* virtual fabric ID */
185 __u8 fd_resvd;
186 __u8 fd_map[3]; /* FC-MAP value */
187 __be64 fd_wwn; /* fabric name, unaligned */
188} __attribute__((packed));
189
190/*
191 * FIP_DT_FCOE_SIZE descriptor.
192 */
193struct fip_size_desc {
194 struct fip_desc fd_desc;
195 __be16 fd_size;
196} __attribute__((packed));
197
198/*
199 * Descriptor that encapsulates an ELS or ILS frame.
200 * The encapsulated frame immediately follows this header, without
201 * SOF, EOF, or CRC.
202 */
203struct fip_encaps {
204 struct fip_desc fd_desc;
205 __u8 fd_resvd[2];
206} __attribute__((packed));
207
208/*
209 * FIP_DT_VN_ID - VN_Node Identifier descriptor.
210 */
211struct fip_vn_desc {
212 struct fip_desc fd_desc;
213 __u8 fd_mac[ETH_ALEN];
214 __u8 fd_resvd;
215 __u8 fd_fc_id[3];
216 __be64 fd_wwpn; /* port name, unaligned */
217} __attribute__((packed));
218
219/*
220 * FIP_DT_FKA - Advertisement keep-alive period.
221 */
222struct fip_fka_desc {
223 struct fip_desc fd_desc;
224 __u8 fd_resvd[2];
225 __be32 fd_fka_period; /* adv./keep-alive period in mS */
226} __attribute__((packed));
227
228/*
229 * FIP_DT_VENDOR descriptor.
230 */
231struct fip_vendor_desc {
232 struct fip_desc fd_desc;
233 __u8 fd_resvd[2];
234 __u8 fd_vendor_id[8];
235} __attribute__((packed));
236
237#endif /* _FC_FIP_H_ */
diff --git a/include/scsi/fc_transport_fcoe.h b/include/scsi/fc_transport_fcoe.h
deleted file mode 100644
index 8dca2af14ff..00000000000
--- a/include/scsi/fc_transport_fcoe.h
+++ /dev/null
@@ -1,54 +0,0 @@
1#ifndef FC_TRANSPORT_FCOE_H
2#define FC_TRANSPORT_FCOE_H
3
4#include <linux/device.h>
5#include <linux/netdevice.h>
6#include <scsi/scsi_host.h>
7#include <scsi/libfc.h>
8
9/**
10 * struct fcoe_transport - FCoE transport struct for generic transport
11 * for Ethernet devices as well as pure HBAs
12 *
13 * @name: name for thsi transport
14 * @bus: physical bus type (pci_bus_type)
15 * @driver: physical bus driver for network device
16 * @create: entry create function
17 * @destroy: exit destroy function
18 * @list: list of transports
19 */
20struct fcoe_transport {
21 char *name;
22 unsigned short vendor;
23 unsigned short device;
24 struct bus_type *bus;
25 struct device_driver *driver;
26 int (*create)(struct net_device *device);
27 int (*destroy)(struct net_device *device);
28 bool (*match)(struct net_device *device);
29 struct list_head list;
30 struct list_head devlist;
31 struct mutex devlock;
32};
33
34/**
35 * MODULE_ALIAS_FCOE_PCI
36 *
37 * some care must be taken with this, vendor and device MUST be a hex value
38 * preceded with 0x and with letters in lower case (0x12ab, not 0x12AB or 12AB)
39 */
40#define MODULE_ALIAS_FCOE_PCI(vendor, device) \
41 MODULE_ALIAS("fcoe-pci-" __stringify(vendor) "-" __stringify(device))
42
43/* exported funcs */
44int fcoe_transport_attach(struct net_device *netdev);
45int fcoe_transport_release(struct net_device *netdev);
46int fcoe_transport_register(struct fcoe_transport *t);
47int fcoe_transport_unregister(struct fcoe_transport *t);
48int fcoe_load_transport_driver(struct net_device *netdev);
49int __init fcoe_transport_init(void);
50int __exit fcoe_transport_exit(void);
51
52/* fcow_sw is the default transport */
53extern struct fcoe_transport fcoe_sw_transport;
54#endif /* FC_TRANSPORT_FCOE_H */
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index a70eafaad08..0303a6a098c 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -22,6 +22,7 @@
22 22
23#include <linux/timer.h> 23#include <linux/timer.h>
24#include <linux/if.h> 24#include <linux/if.h>
25#include <linux/percpu.h>
25 26
26#include <scsi/scsi_transport.h> 27#include <scsi/scsi_transport.h>
27#include <scsi/scsi_transport_fc.h> 28#include <scsi/scsi_transport_fc.h>
@@ -661,7 +662,8 @@ struct fc_lport {
661 unsigned long boot_time; 662 unsigned long boot_time;
662 663
663 struct fc_host_statistics host_stats; 664 struct fc_host_statistics host_stats;
664 struct fcoe_dev_stats *dev_stats[NR_CPUS]; 665 struct fcoe_dev_stats *dev_stats;
666
665 u64 wwpn; 667 u64 wwpn;
666 u64 wwnn; 668 u64 wwnn;
667 u8 retry_count; 669 u8 retry_count;
@@ -694,11 +696,6 @@ struct fc_lport {
694/* 696/*
695 * FC_LPORT HELPER FUNCTIONS 697 * FC_LPORT HELPER FUNCTIONS
696 *****************************/ 698 *****************************/
697static inline void *lport_priv(const struct fc_lport *lp)
698{
699 return (void *)(lp + 1);
700}
701
702static inline int fc_lport_test_ready(struct fc_lport *lp) 699static inline int fc_lport_test_ready(struct fc_lport *lp)
703{ 700{
704 return lp->state == LPORT_ST_READY; 701 return lp->state == LPORT_ST_READY;
@@ -722,6 +719,42 @@ static inline void fc_lport_state_enter(struct fc_lport *lp,
722 lp->state = state; 719 lp->state = state;
723} 720}
724 721
722static inline int fc_lport_init_stats(struct fc_lport *lp)
723{
724 /* allocate per cpu stats block */
725 lp->dev_stats = alloc_percpu(struct fcoe_dev_stats);
726 if (!lp->dev_stats)
727 return -ENOMEM;
728 return 0;
729}
730
731static inline void fc_lport_free_stats(struct fc_lport *lp)
732{
733 free_percpu(lp->dev_stats);
734}
735
736static inline struct fcoe_dev_stats *fc_lport_get_stats(struct fc_lport *lp)
737{
738 return per_cpu_ptr(lp->dev_stats, smp_processor_id());
739}
740
741static inline void *lport_priv(const struct fc_lport *lp)
742{
743 return (void *)(lp + 1);
744}
745
746/**
747 * libfc_host_alloc() - Allocate a Scsi_Host with room for the fc_lport
748 * @sht: ptr to the scsi host templ
749 * @priv_size: size of private data after fc_lport
750 *
751 * Returns: ptr to Scsi_Host
752 */
753static inline struct Scsi_Host *
754libfc_host_alloc(struct scsi_host_template *sht, int priv_size)
755{
756 return scsi_host_alloc(sht, sizeof(struct fc_lport) + priv_size);
757}
725 758
726/* 759/*
727 * LOCAL PORT LAYER 760 * LOCAL PORT LAYER
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h
index c41f7d0c6ef..666cc131732 100644
--- a/include/scsi/libfcoe.h
+++ b/include/scsi/libfcoe.h
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright(c) 2007 - 2008 Intel Corporation. All rights reserved. 2 * Copyright (c) 2008-2009 Cisco Systems, Inc. All rights reserved.
3 * Copyright (c) 2007-2008 Intel Corporation. All rights reserved.
3 * 4 *
4 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License, 6 * under the terms and conditions of the GNU General Public License,
@@ -20,134 +21,144 @@
20#ifndef _LIBFCOE_H 21#ifndef _LIBFCOE_H
21#define _LIBFCOE_H 22#define _LIBFCOE_H
22 23
24#include <linux/etherdevice.h>
25#include <linux/if_ether.h>
23#include <linux/netdevice.h> 26#include <linux/netdevice.h>
24#include <linux/skbuff.h> 27#include <linux/skbuff.h>
28#include <linux/workqueue.h>
25#include <scsi/fc/fc_fcoe.h> 29#include <scsi/fc/fc_fcoe.h>
26#include <scsi/libfc.h> 30#include <scsi/libfc.h>
27 31
28/* 32/*
29 * this percpu struct for fcoe 33 * FIP tunable parameters.
30 */ 34 */
31struct fcoe_percpu_s { 35#define FCOE_CTLR_START_DELAY 2000 /* mS after first adv. to choose FCF */
32 int cpu; 36#define FCOE_CTRL_SOL_TOV 2000 /* min. solicitation interval (mS) */
33 struct task_struct *thread; 37#define FCOE_CTLR_FCF_LIMIT 20 /* max. number of FCF entries */
34 struct sk_buff_head fcoe_rx_list; 38
35 struct page *crc_eof_page; 39/**
36 int crc_eof_offset; 40 * enum fip_state - internal state of FCoE controller.
41 * @FIP_ST_DISABLED: controller has been disabled or not yet enabled.
42 * @FIP_ST_LINK_WAIT: the physical link is down or unusable.
43 * @FIP_ST_AUTO: determining whether to use FIP or non-FIP mode.
44 * @FIP_ST_NON_FIP: non-FIP mode selected.
45 * @FIP_ST_ENABLED: FIP mode selected.
46 */
47enum fip_state {
48 FIP_ST_DISABLED,
49 FIP_ST_LINK_WAIT,
50 FIP_ST_AUTO,
51 FIP_ST_NON_FIP,
52 FIP_ST_ENABLED,
37}; 53};
38 54
39/* 55/**
40 * the fcoe sw transport private data 56 * struct fcoe_ctlr - FCoE Controller and FIP state.
57 * @state: internal FIP state for network link and FIP or non-FIP mode.
58 * @lp: &fc_lport: libfc local port.
59 * @sel_fcf: currently selected FCF, or NULL.
60 * @fcfs: list of discovered FCFs.
61 * @fcf_count: number of discovered FCF entries.
62 * @sol_time: time when a multicast solicitation was last sent.
63 * @sel_time: time after which to select an FCF.
64 * @port_ka_time: time of next port keep-alive.
65 * @ctlr_ka_time: time of next controller keep-alive.
66 * @timer: timer struct used for all delayed events.
67 * @link_work: &work_struct for doing FCF selection.
68 * @recv_work: &work_struct for receiving FIP frames.
69 * @fip_recv_list: list of received FIP frames.
70 * @user_mfs: configured maximum FC frame size, including FC header.
71 * @flogi_oxid: exchange ID of most recent fabric login.
72 * @flogi_count: number of FLOGI attempts in AUTO mode.
73 * @link: current link status for libfc.
74 * @last_link: last link state reported to libfc.
75 * @map_dest: use the FC_MAP mode for destination MAC addresses.
76 * @dest_addr: MAC address of the selected FC forwarder.
77 * @ctl_src_addr: the native MAC address of our local port.
78 * @data_src_addr: the assigned MAC address for the local port after FLOGI.
79 * @send: LLD-supplied function to handle sending of FIP Ethernet frames.
80 * @update_mac: LLD-supplied function to handle changes to MAC addresses.
81 * @lock: lock protecting this structure.
82 *
83 * This structure is used by all FCoE drivers. It contains information
84 * needed by all FCoE low-level drivers (LLDs) as well as internal state
85 * for FIP, and fields shared with the LLDS.
41 */ 86 */
42struct fcoe_softc { 87struct fcoe_ctlr {
43 struct list_head list; 88 enum fip_state state;
44 struct fc_lport *lp; 89 struct fc_lport *lp;
45 struct net_device *real_dev; 90 struct fcoe_fcf *sel_fcf;
46 struct net_device *phys_dev; /* device with ethtool_ops */ 91 struct list_head fcfs;
47 struct packet_type fcoe_packet_type; 92 u16 fcf_count;
48 struct sk_buff_head fcoe_pending_queue; 93 unsigned long sol_time;
49 u8 fcoe_pending_queue_active; 94 unsigned long sel_time;
50 95 unsigned long port_ka_time;
96 unsigned long ctlr_ka_time;
97 struct timer_list timer;
98 struct work_struct link_work;
99 struct work_struct recv_work;
100 struct sk_buff_head fip_recv_list;
101 u16 user_mfs;
102 u16 flogi_oxid;
103 u8 flogi_count;
104 u8 link;
105 u8 last_link;
106 u8 map_dest;
51 u8 dest_addr[ETH_ALEN]; 107 u8 dest_addr[ETH_ALEN];
52 u8 ctl_src_addr[ETH_ALEN]; 108 u8 ctl_src_addr[ETH_ALEN];
53 u8 data_src_addr[ETH_ALEN]; 109 u8 data_src_addr[ETH_ALEN];
54 /*
55 * fcoe protocol address learning related stuff
56 */
57 u16 flogi_oxid;
58 u8 flogi_progress;
59 u8 address_mode;
60};
61
62static inline struct net_device *fcoe_netdev(
63 const struct fc_lport *lp)
64{
65 return ((struct fcoe_softc *)lport_priv(lp))->real_dev;
66}
67
68static inline struct fcoe_hdr *skb_fcoe_header(const struct sk_buff *skb)
69{
70 return (struct fcoe_hdr *)skb_network_header(skb);
71}
72
73static inline int skb_fcoe_offset(const struct sk_buff *skb)
74{
75 return skb_network_offset(skb);
76}
77
78static inline struct fc_frame_header *skb_fc_header(const struct sk_buff *skb)
79{
80 return (struct fc_frame_header *)skb_transport_header(skb);
81}
82
83static inline int skb_fc_offset(const struct sk_buff *skb)
84{
85 return skb_transport_offset(skb);
86}
87 110
88static inline void skb_reset_fc_header(struct sk_buff *skb) 111 void (*send)(struct fcoe_ctlr *, struct sk_buff *);
89{ 112 void (*update_mac)(struct fcoe_ctlr *, u8 *old, u8 *new);
90 skb_reset_network_header(skb); 113 spinlock_t lock;
91 skb_set_transport_header(skb, skb_network_offset(skb) + 114};
92 sizeof(struct fcoe_hdr));
93}
94
95static inline bool skb_fc_is_data(const struct sk_buff *skb)
96{
97 return skb_fc_header(skb)->fh_r_ctl == FC_RCTL_DD_SOL_DATA;
98}
99
100static inline bool skb_fc_is_cmd(const struct sk_buff *skb)
101{
102 return skb_fc_header(skb)->fh_r_ctl == FC_RCTL_DD_UNSOL_CMD;
103}
104 115
105static inline bool skb_fc_has_exthdr(const struct sk_buff *skb) 116/*
106{ 117 * struct fcoe_fcf - Fibre-Channel Forwarder.
107 return (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_VFTH) || 118 * @list: list linkage.
108 (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_IFRH) || 119 * @time: system time (jiffies) when an advertisement was last received.
109 (skb_fc_header(skb)->fh_r_ctl == FC_RCTL_ENCH); 120 * @switch_name: WWN of switch from advertisement.
110} 121 * @fabric_name: WWN of fabric from advertisement.
122 * @fc_map: FC_MAP value from advertisement.
123 * @fcf_mac: Ethernet address of the FCF.
124 * @vfid: virtual fabric ID.
125 * @pri: seletion priority, smaller values are better.
126 * @flags: flags received from advertisement.
127 * @fka_period: keep-alive period, in jiffies.
128 *
129 * A Fibre-Channel Forwarder (FCF) is the entity on the Ethernet that
130 * passes FCoE frames on to an FC fabric. This structure represents
131 * one FCF from which advertisements have been received.
132 *
133 * When looking up an FCF, @switch_name, @fabric_name, @fc_map, @vfid, and
134 * @fcf_mac together form the lookup key.
135 */
136struct fcoe_fcf {
137 struct list_head list;
138 unsigned long time;
111 139
112static inline bool skb_fc_is_roff(const struct sk_buff *skb) 140 u64 switch_name;
113{ 141 u64 fabric_name;
114 return skb_fc_header(skb)->fh_f_ctl[2] & FC_FC_REL_OFF; 142 u32 fc_map;
115} 143 u16 vfid;
144 u8 fcf_mac[ETH_ALEN];
116 145
117static inline u16 skb_fc_oxid(const struct sk_buff *skb) 146 u8 pri;
118{ 147 u16 flags;
119 return be16_to_cpu(skb_fc_header(skb)->fh_ox_id); 148 u32 fka_period;
120} 149};
121 150
122static inline u16 skb_fc_rxid(const struct sk_buff *skb) 151/* FIP API functions */
123{ 152void fcoe_ctlr_init(struct fcoe_ctlr *);
124 return be16_to_cpu(skb_fc_header(skb)->fh_rx_id); 153void fcoe_ctlr_destroy(struct fcoe_ctlr *);
125} 154void fcoe_ctlr_link_up(struct fcoe_ctlr *);
155int fcoe_ctlr_link_down(struct fcoe_ctlr *);
156int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct sk_buff *);
157void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *);
158int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_frame *fp, u8 *sa);
126 159
127/* libfcoe funcs */ 160/* libfcoe funcs */
128int fcoe_reset(struct Scsi_Host *shost); 161u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int);
129u64 fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN],
130 unsigned int scheme, unsigned int port);
131
132u32 fcoe_fc_crc(struct fc_frame *fp);
133int fcoe_xmit(struct fc_lport *, struct fc_frame *);
134int fcoe_rcv(struct sk_buff *, struct net_device *,
135 struct packet_type *, struct net_device *);
136
137int fcoe_percpu_receive_thread(void *arg);
138void fcoe_clean_pending_queue(struct fc_lport *lp);
139void fcoe_percpu_clean(struct fc_lport *lp);
140void fcoe_watchdog(ulong vp);
141int fcoe_link_ok(struct fc_lport *lp);
142
143struct fc_lport *fcoe_hostlist_lookup(const struct net_device *);
144int fcoe_hostlist_add(const struct fc_lport *);
145int fcoe_hostlist_remove(const struct fc_lport *);
146
147struct Scsi_Host *fcoe_host_alloc(struct scsi_host_template *, int);
148int fcoe_libfc_config(struct fc_lport *, struct libfc_function_template *); 162int fcoe_libfc_config(struct fc_lport *, struct libfc_function_template *);
149 163
150/* fcoe sw hba */
151int __init fcoe_sw_init(void);
152int __exit fcoe_sw_exit(void);
153#endif /* _LIBFCOE_H */ 164#endif /* _LIBFCOE_H */