aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-09-02 22:48:03 +0000
committerwdenk <wdenk>2003-09-02 22:48:03 +0000
commit12f34241cb9679c27a1ab3561766562f5a515eff (patch)
treee6408a1701c7dabf3e2ceb1326ce2f5cc8657c96
parent326428cc8bbdddb30920a96b672abd0d59833ce4 (diff)
downloadu-boot-linaro-stable-12f34241cb9679c27a1ab3561766562f5a515eff.tar.gz
* Add support for PPChameleon Eval Board
* Add support for P3G4 board * Fix problem with MGT5100 FEC driver: add "early" MAC address initialization
-rw-r--r--CHANGELOG7
-rw-r--r--MAINTAINERS2
-rw-r--r--MAKEALL5
-rw-r--r--Makefile6
-rw-r--r--README1
-rw-r--r--board/dave/PPChameleonEVB/Makefile46
-rw-r--r--board/dave/PPChameleonEVB/PPChameleonEVB.c269
-rw-r--r--board/dave/PPChameleonEVB/config.mk24
-rw-r--r--board/dave/PPChameleonEVB/flash.c105
-rw-r--r--board/dave/PPChameleonEVB/fpgadata.c1139
-rw-r--r--board/dave/PPChameleonEVB/u-boot.lds147
-rw-r--r--board/dave/common/flash.c681
-rw-r--r--board/dave/common/fpga.c256
-rw-r--r--board/dave/common/pci.c202
-rw-r--r--board/evb64260/evb64260.c10
-rw-r--r--board/evb64260/flash.c45
-rw-r--r--board/evb64260/mpsc.c20
-rw-r--r--board/evb64260/sdram_init.c25
-rw-r--r--common/cmd_bdinfo.c2
-rw-r--r--common/cmd_nand.c2
-rw-r--r--cpu/mpc5xxx/fec.c19
-rw-r--r--cpu/ppc4xx/cpu.c10
-rw-r--r--cpu/ppc4xx/miiphy.c2
-rw-r--r--cpu/ppc4xx/start.S3
-rw-r--r--drivers/pci.c2
-rw-r--r--include/asm-ppc/global_data.h2
-rw-r--r--include/asm-ppc/processor.h1
-rw-r--r--include/asm-ppc/u-boot.h17
-rw-r--r--include/configs/P3G4.h394
-rw-r--r--include/configs/PPChameleonEVB.h734
-rw-r--r--lib_ppc/board.c2
31 files changed, 4146 insertions, 34 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 259bc2e94..1d46615e4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,13 @@
Changes for U-Boot 0.4.7:
======================================================================
+* Add support for PPChameleon Eval Board
+
+* Add support for P3G4 board
+
+* Fix problem with MGT5100 FEC driver: add "early" MAC address
+ initialization
+
* Patch by Yuli Barcohen, 7 Aug 2003:
check BCSR to detect if the board is configured in PCI mode
diff --git a/MAINTAINERS b/MAINTAINERS
index 16240a8f3..2e748efbe 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -92,6 +92,8 @@ Wolfgang Denk <wd@denx.de>
PM826 MPC8260
TQM8260 MPC8260
+ P3G4 MPC7410
+
PCIPPC2 MPC750
PCIPPC6 MPC750
diff --git a/MAKEALL b/MAKEALL
index d6547ee12..0dbcf7269 100644
--- a/MAKEALL
+++ b/MAKEALL
@@ -59,7 +59,7 @@ LIST_4xx=" \
DU405 EBONY ERIC EXBITGEN \
MIP405 MIP405T ML2 OCRTC \
ORSG PCI405 PIP405 PMC405 \
- W7OLMC W7OLMG WALNUT405 \
+ PPChameleonEVB W7OLMC W7OLMG WALNUT405 \
"
#########################################################################
@@ -89,7 +89,8 @@ LIST_8260=" \
#########################################################################
LIST_74xx=" \
- EVB64260 PCIPPC2 PCIPPC6 ZUMA \
+ EVB64260 P3G4 PCIPPC2 PCIPPC6 \
+ ZUMA \
"
LIST_7xx=" \
diff --git a/Makefile b/Makefile
index 122fee618..e755928d4 100644
--- a/Makefile
+++ b/Makefile
@@ -539,6 +539,9 @@ PIP405_config:unconfig
PMC405_config: unconfig
@./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd
+PPChameleonEVB_config: unconfig
+ @./mkconfig $(@:_config=) ppc ppc4xx PPChameleonEVB dave
+
W7OLMC_config \
W7OLMG_config: unconfig
@./mkconfig $(@:_config=) ppc ppc4xx w7o
@@ -751,6 +754,9 @@ BAB7xx_config: unconfig
ELPPC_config: unconfig
@./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec
+P3G4_config: unconfig
+ @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
+
#========================================================================
# ARM
#========================================================================
diff --git a/README b/README
index 26127fa01..3fb97e311 100644
--- a/README
+++ b/README
@@ -306,6 +306,7 @@ The following options need to be configured:
or CONFIG_MPC824X, CONFIG_MPC8260
or CONFIG_IOP480
or CONFIG_405GP
+ or CONFIG_405EP
or CONFIG_440
or CONFIG_MPC74xx
or CONFIG_750FX
diff --git a/board/dave/PPChameleonEVB/Makefile b/board/dave/PPChameleonEVB/Makefile
new file mode 100644
index 000000000..39d2feceb
--- /dev/null
+++ b/board/dave/PPChameleonEVB/Makefile
@@ -0,0 +1,46 @@
+#
+# (C) Copyright 2000
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB = lib$(BOARD).a
+
+OBJS = $(BOARD).o flash.o
+
+$(LIB): $(OBJS) $(SOBJS)
+ $(AR) crv $@ $^
+
+clean:
+ rm -f $(SOBJS) $(OBJS)
+
+distclean: clean
+ rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
+ $(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
+
+sinclude .depend
+
+#########################################################################
diff --git a/board/dave/PPChameleonEVB/PPChameleonEVB.c b/board/dave/PPChameleonEVB/PPChameleonEVB.c
new file mode 100644
index 000000000..04b7cd781
--- /dev/null
+++ b/board/dave/PPChameleonEVB/PPChameleonEVB.c
@@ -0,0 +1,269 @@
+/*
+ * (C) Copyright 2001-2003
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/processor.h>
+#include <command.h>
+#include <malloc.h>
+
+/* ------------------------------------------------------------------------- */
+
+#if 0
+#define FPGA_DEBUG
+#endif
+
+/* fpga configuration data - gzip compressed and generated by bin2c */
+const unsigned char fpgadata[] =
+{
+#include "fpgadata.c"
+};
+
+/*
+ * include common fpga code (for esd boards)
+ */
+#include "../common/fpga.c"
+
+
+/* Prototypes */
+int gunzip(void *, int, unsigned char *, int *);
+
+
+int board_pre_init (void)
+{
+ out32(GPIO0_OR, CFG_NAND0_CE); /* set initial outputs */
+ out32(GPIO0_OR, CFG_NAND1_CE); /* set initial outputs */
+
+ /*
+ * IRQ 0-15 405GP internally generated; active high; level sensitive
+ * IRQ 16 405GP internally generated; active low; level sensitive
+ * IRQ 17-24 RESERVED
+ * IRQ 25 (EXT IRQ 0) CAN0; active low; level sensitive
+ * IRQ 26 (EXT IRQ 1) SER0 ; active low; level sensitive
+ * IRQ 27 (EXT IRQ 2) SER1; active low; level sensitive
+ * IRQ 28 (EXT IRQ 3) FPGA 0; active low; level sensitive
+ * IRQ 29 (EXT IRQ 4) FPGA 1; active low; level sensitive
+ * IRQ 30 (EXT IRQ 5) PCI INTA; active low; level sensitive
+ * IRQ 31 (EXT IRQ 6) COMPACT FLASH; active high; level sensitive
+ */
+ mtdcr(uicsr, 0xFFFFFFFF); /* clear all ints */
+ mtdcr(uicer, 0x00000000); /* disable all ints */
+ mtdcr(uiccr, 0x00000000); /* set all to be non-critical*/
+ mtdcr(uicpr, 0xFFFFFF81); /* set int polarities */
+ mtdcr(uictr, 0x10000000); /* set int trigger levels */
+ mtdcr(uicvcr, 0x00000001); /* set vect base=0,INT0 highest priority*/
+ mtdcr(uicsr, 0xFFFFFFFF); /* clear all ints */
+
+ /*
+ * EBC Configuration Register: set ready timeout to 512 ebc-clks -> ca. 15 us
+ */
+#if 1 /* test-only */
+ mtebc (epcr, 0xa8400000); /* ebc always driven */
+#else
+ mtebc (epcr, 0x28400000); /* ebc in high-z */
+#endif
+
+ return 0;
+}
+
+
+/* ------------------------------------------------------------------------- */
+
+int misc_init_f (void)
+{
+ return 0; /* dummy implementation */
+}
+
+
+int misc_init_r (void)
+{
+#if 0 /* test-only */
+ DECLARE_GLOBAL_DATA_PTR;
+#if 0
+ volatile unsigned short *fpga_mode =
+ (unsigned short *)((ulong)CFG_FPGA_BASE_ADDR + CFG_FPGA_CTRL);
+ volatile unsigned char *duart0_mcr =
+ (unsigned char *)((ulong)DUART0_BA + 4);
+ volatile unsigned char *duart1_mcr =
+ (unsigned char *)((ulong)DUART1_BA + 4);
+
+ bd_t *bd = gd->bd;
+ char * tmp; /* Temporary char pointer */
+ unsigned char *dst;
+ ulong len = sizeof(fpgadata);
+ int status;
+ int index;
+ int i;
+ unsigned long cntrl0Reg;
+
+ dst = malloc(CFG_FPGA_MAX_SIZE);
+ if (gunzip (dst, CFG_FPGA_MAX_SIZE, (uchar *)fpgadata, (int *)&len) != 0) {
+ printf ("GUNZIP ERROR - must RESET board to recover\n");
+ do_reset (NULL, 0, 0, NULL);
+ }
+
+ status = fpga_boot(dst, len);
+ if (status != 0) {
+ printf("\nFPGA: Booting failed ");
+ switch (status) {
+ case ERROR_FPGA_PRG_INIT_LOW:
+ printf("(Timeout: INIT not low after asserting PROGRAM*)\n ");
+ break;
+ case ERROR_FPGA_PRG_INIT_HIGH:
+ printf("(Timeout: INIT not high after deasserting PROGRAM*)\n ");
+ break;
+ case ERROR_FPGA_PRG_DONE:
+ printf("(Timeout: DONE not high after programming FPGA)\n ");
+ break;
+ }
+
+ /* display infos on fpgaimage */
+ index = 15;
+ for (i=0; i<4; i++) {
+ len = dst[index];
+ printf("FPGA: %s\n", &(dst[index+1]));
+ index += len+3;
+ }
+ putc ('\n');
+ /* delayed reboot */
+ for (i=20; i>0; i--) {
+ printf("Rebooting in %2d seconds \r",i);
+ for (index=0;index<1000;index++)
+ udelay(1000);
+ }
+ putc ('\n');
+ do_reset(NULL, 0, 0, NULL);
+ }
+
+ puts("FPGA: ");
+
+ /* display infos on fpgaimage */
+ index = 15;
+ for (i=0; i<4; i++) {
+ len = dst[index];
+ printf("%s ", &(dst[index+1]));
+ index += len+3;
+ }
+ putc ('\n');
+
+ free(dst);
+
+ /*
+ * Reset FPGA via FPGA_DATA pin
+ */
+ SET_FPGA(FPGA_PRG | FPGA_CLK);
+ udelay(1000); /* wait 1ms */
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);
+ udelay(1000); /* wait 1ms */
+
+#endif
+
+#if 0
+ /*
+ * Enable power on PS/2 interface
+ */
+ *fpga_mode |= CFG_FPGA_CTRL_PS2_RESET;
+
+ /*
+ * Enable interrupts in exar duart mcr[3]
+ */
+ *duart0_mcr = 0x08;
+ *duart1_mcr = 0x08;
+#endif
+#endif
+
+ return (0);
+}
+
+
+/*
+ * Check Board Identity:
+ */
+
+int checkboard (void)
+{
+ unsigned char str[64];
+ int i = getenv_r ("serial#", str, sizeof(str));
+
+ puts ("Board: ");
+
+ if (i == -1) {
+ puts ("### No HW ID - assuming PPChameleonEVB");
+ } else {
+ puts(str);
+ }
+
+ putc ('\n');
+
+ return 0;
+}
+
+/* ------------------------------------------------------------------------- */
+
+long int initdram (int board_type)
+{
+ unsigned long val;
+
+ mtdcr(memcfga, mem_mb0cf);
+ val = mfdcr(memcfgd);
+
+#if 0 /* test-only */
+ for (;;) {
+ NAND_DISABLE_CE(1);
+ udelay(100);
+ NAND_ENABLE_CE(1);
+ udelay(100);
+ }
+#endif
+#if 0
+ printf("\nmb0cf=%x\n", val); /* test-only */
+ printf("strap=%x\n", mfdcr(strap)); /* test-only */
+#endif
+
+ return (4*1024*1024 << ((val & 0x000e0000) >> 17));
+}
+
+/* ------------------------------------------------------------------------- */
+
+int testdram (void)
+{
+ /* TODO: XXX XXX XXX */
+ printf ("test: 16 MB - ok\n");
+
+ return (0);
+}
+
+/* ------------------------------------------------------------------------- */
+
+#if (CONFIG_COMMANDS & CFG_CMD_NAND)
+extern void
+nand_probe(ulong physadr);
+
+void
+nand_init(void)
+{
+ printf("Probing at 0x%.8x\n", CFG_NAND0_BASE);
+ nand_probe(CFG_NAND0_BASE);
+ printf("Probing at 0x%.8x\n", CFG_NAND1_BASE);
+ nand_probe(CFG_NAND1_BASE);
+}
+#endif
diff --git a/board/dave/PPChameleonEVB/config.mk b/board/dave/PPChameleonEVB/config.mk
new file mode 100644
index 000000000..1bdf5e4fc
--- /dev/null
+++ b/board/dave/PPChameleonEVB/config.mk
@@ -0,0 +1,24 @@
+#
+# (C) Copyright 2000
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+TEXT_BASE = 0xFFFC0000
diff --git a/board/dave/PPChameleonEVB/flash.c b/board/dave/PPChameleonEVB/flash.c
new file mode 100644
index 000000000..110e02114
--- /dev/null
+++ b/board/dave/PPChameleonEVB/flash.c
@@ -0,0 +1,105 @@
+/*
+ * (C) Copyright 2001
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <ppc4xx.h>
+#include <asm/processor.h>
+
+/*
+ * include common flash code (for esd boards)
+ */
+#include "../common/flash.c"
+
+/*-----------------------------------------------------------------------
+ * Functions
+ */
+static ulong flash_get_size (vu_long * addr, flash_info_t * info);
+static void flash_get_offsets (ulong base, flash_info_t * info);
+
+/*-----------------------------------------------------------------------
+ */
+
+unsigned long flash_init (void)
+{
+#ifdef __DEBUG_START_FROM_SRAM__
+ return CFG_DUMMY_FLASH_SIZE;
+#else
+ unsigned long size_b0;
+ int i;
+ uint pbcr;
+ unsigned long base_b0;
+ int size_val = 0;
+
+ /* Init: no FLASHes known */
+ for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
+ flash_info[i].flash_id = FLASH_UNKNOWN;
+ }
+
+ /* Static FLASH Bank configuration here - FIXME XXX */
+
+ size_b0 = flash_get_size((vu_long *)FLASH_BASE0_PRELIM, &flash_info[0]);
+
+ if (flash_info[0].flash_id == FLASH_UNKNOWN) {
+ printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
+ size_b0, size_b0<<20);
+ }
+
+ /* Setup offsets */
+ flash_get_offsets (-size_b0, &flash_info[0]);
+
+ /* Re-do sizing to get full correct info */
+ mtdcr(ebccfga, pb0cr);
+ pbcr = mfdcr(ebccfgd);
+ mtdcr(ebccfga, pb0cr);
+ base_b0 = -size_b0;
+ switch (size_b0) {
+ case 1 << 20:
+ size_val = 0;
+ break;
+ case 2 << 20:
+ size_val = 1;
+ break;
+ case 4 << 20:
+ size_val = 2;
+ break;
+ case 8 << 20:
+ size_val = 3;
+ break;
+ case 16 << 20:
+ size_val = 4;
+ break;
+ }
+ pbcr = (pbcr & 0x0001ffff) | base_b0 | (size_val << 17);
+ mtdcr(ebccfgd, pbcr);
+
+ /* Monitor protection ON by default */
+ (void)flash_protect(FLAG_PROTECT_SET,
+ -CFG_MONITOR_LEN,
+ 0xffffffff,
+ &flash_info[0]);
+
+ flash_info[0].size = size_b0;
+
+ return (size_b0);
+#endif
+}
diff --git a/board/dave/PPChameleonEVB/fpgadata.c b/board/dave/PPChameleonEVB/fpgadata.c
new file mode 100644
index 000000000..f5e30dd6e
--- /dev/null
+++ b/board/dave/PPChameleonEVB/fpgadata.c
@@ -0,0 +1,1139 @@
+ 0x1f,0x8b,0x08,0x08,0x80,0xb0,0xc0,0x3e,0x00,0x03,0x61,0x73,0x68,0x34,0x30,0x35,
+ 0x5f,0x31,0x5f,0x30,0x30,0x2e,0x62,0x69,0x74,0x00,0x94,0x9b,0x7f,0x70,0x14,0x65,
+ 0x9a,0xc7,0x9f,0xe9,0xee,0x24,0x9d,0x99,0x4e,0xa6,0x0d,0x84,0x42,0xe5,0x47,0xe7,
+ 0xc7,0xba,0xa3,0x37,0x0c,0x63,0x82,0x9a,0x05,0x32,0x69,0x03,0x7f,0xe4,0x84,0x2d,
+ 0xd9,0xbd,0xba,0xaa,0xdb,0x5a,0x6b,0x1d,0x5d,0xbc,0xe2,0xb6,0xd0,0xca,0xea,0x55,
+ 0x1d,0x67,0x6d,0xdd,0xbd,0x24,0x39,0x08,0x07,0x2b,0x01,0xb9,0x23,0xee,0x51,0x5c,
+ 0xf3,0x63,0xcb,0xa8,0xa9,0xad,0x11,0x76,0x0d,0x0a,0xa5,0x4d,0x2e,0x8b,0x21,0x44,
+ 0xc8,0xb1,0xd6,0x6e,0x44,0x97,0x1d,0x34,0xab,0x23,0x72,0x18,0xd1,0x92,0x44,0x20,
+ 0xb9,0xf7,0xed,0xee,0xf7,0xed,0x9f,0x33,0xc9,0x8e,0x7f,0xf8,0xe4,0x9d,0xd7,0xf6,
+ 0x7d,0x9e,0x79,0xfb,0x79,0x3e,0xfd,0x7d,0xde,0x86,0xd2,0xe8,0xb8,0xf9,0x0f,0x40,
+ 0xe8,0x31,0x90,0x1f,0x7b,0x66,0xc3,0xb2,0xe4,0x7d,0x8f,0xde,0xfb,0x68,0x32,0x99,
+ 0x78,0xea,0xc7,0xeb,0xe1,0x71,0x88,0xd4,0x3d,0x73,0x5f,0xf2,0x89,0x7f,0xfc,0xe9,
+ 0xbd,0xcb,0x96,0xc1,0x8f,0xf1,0x5f,0xc9,0x64,0xfd,0xd2,0xe4,0x7d,0x4b,0xef,0xad,
+ 0x87,0xf5,0x50,0x7a,0x6f,0x72,0xf9,0xb2,0x65,0xcb,0x97,0x35,0xc0,0x13,0x10,0xaa,
+ 0x3f,0x3c,0x8d,0x3f,0x2f,0xbf,0xf0,0xb7,0x7f,0x9f,0x04,0x14,0x02,0x80,0x92,0x64,
+ 0x28,0x4d,0xfe,0x1d,0x49,0x86,0x94,0x10,0xa0,0xa6,0x25,0x49,0xd0,0xc9,0xdf,0x60,
+ 0x7d,0x5f,0x9a,0x04,0xc5,0xf9,0x77,0x28,0x09,0x2a,0xac,0x03,0x75,0x07,0x54,0x24,
+ 0x61,0xe6,0x8f,0x2a,0x20,0x6a,0xfe,0x85,0xf3,0xa7,0x87,0x50,0xde,0x59,0xf6,0xa7,
+ 0xe9,0x9a,0x46,0x4d,0x6e,0x16,0xd7,0x0f,0xa9,0xc0,0xae,0x7f,0x61,0x56,0xd7,0xff,
+ 0x9a,0x5e,0xff,0x2f,0x9d,0x0f,0x15,0xb3,0x98,0x0e,0x20,0xb0,0xf5,0x58,0xf3,0x11,
+ 0xc4,0x20,0x0c,0x1c,0x02,0x0d,0x14,0x6c,0x78,0xaf,0x3f,0x40,0xad,0x93,0x45,0x53,
+ 0x70,0x03,0x35,0x65,0xa3,0xa3,0xfc,0x3c,0x38,0x87,0x9a,0x40,0x9a,0xe0,0x53,0x30,
+ 0x4d,0x46,0x8e,0xf1,0x57,0x4d,0x63,0x82,0x1f,0x87,0x56,0x6b,0x7e,0xff,0xfc,0x5f,
+ 0xc1,0x71,0x94,0xc8,0x46,0xba,0x9a,0x13,0xdc,0x76,0x94,0x80,0xb2,0x4c,0x38,0x61,
+ 0x8e,0x1c,0xe3,0xae,0x52,0x23,0x2b,0xd0,0x28,0x0e,0x0a,0x3b,0xe0,0x28,0xc4,0xf5,
+ 0x88,0x1c,0xae,0x85,0x76,0x88,0x83,0x98,0xe4,0x24,0x73,0x24,0xc9,0x0d,0x53,0xa3,
+ 0x1f,0x2f,0xd2,0xfc,0xe8,0xd0,0x0b,0xc7,0x21,0xa1,0x47,0xba,0xfb,0x13,0xb0,0x1d,
+ 0x12,0x70,0x7b,0x92,0x8b,0x9b,0x23,0x19,0xee,0x0a,0x35,0xc6,0x05,0xba,0x9e,0xef,
+ 0x55,0x5e,0x81,0x1b,0x90,0xd2,0xa3,0xfb,0xf8,0xa5,0xca,0x19,0x58,0x19,0x93,0x32,
+ 0x35,0x71,0x73,0x24,0xc3,0x5f,0xa1,0xc6,0xc8,0x6a,0x3a,0x5f,0x0b,0x9d,0x80,0x69,
+ 0x68,0xd2,0xa3,0x23,0xfc,0x4d,0x62,0x24,0xa3,0xe3,0xa6,0xa1,0x3b,0x8d,0x1c,0xa4,
+ 0xe9,0x7a,0xe4,0x5e,0x7a,0xfd,0x8d,0xf0,0x19,0xa4,0xa0,0xdc,0x71,0x59,0x66,0x8c,
+ 0x0b,0x74,0xfd,0xa3,0x45,0x71,0xd9,0x5c,0xff,0x3d,0x12,0xbc,0x8f,0xd7,0xdf,0xf9,
+ 0x1b,0x7b,0xd9,0xcc,0xb8,0x86,0x77,0xbf,0x75,0x7d,0x61,0xad,0x19,0x04,0xc4,0x7d,
+ 0xb7,0xe3,0x10,0x17,0xd7,0xee,0x74,0x84,0x85,0x19,0x13,0xf8,0x5e,0x31,0x3f,0xe3,
+ 0xf0,0x23,0xe8,0x43,0x4b,0xb2,0x91,0x1f,0x84,0x53,0xf2,0x5e,0xb4,0xf4,0xc3,0xd2,
+ 0x4d,0xdc,0x45,0x73,0x04,0x1b,0xc8,0x32,0x46,0xd9,0xf5,0x5b,0xc4,0xb5,0xf0,0x25,
+ 0x5a,0xa9,0x47,0x77,0xf1,0x6b,0x95,0x8f,0x60,0x25,0x8a,0x26,0xf9,0x61,0xf8,0x12,
+ 0xf0,0x48,0x03,0x7f,0x16,0x61,0x23,0x8b,0x47,0xce,0x73,0x74,0x3f,0xa8,0x0b,0x7b,
+ 0xcd,0x20,0x7c,0x61,0x44,0xa3,0x51,0x2f,0x67,0x61,0xf9,0x82,0xbf,0xa2,0x5a,0xf1,
+ 0x19,0x29,0xa6,0xf1,0x11,0x8b,0x7a,0xa5,0x1b,0x02,0x0e,0x02,0x8a,0xc4,0xe1,0x0c,
+ 0x8e,0x8f,0xe4,0x89,0xcf,0xca,0x2c,0x1e,0x19,0x62,0xbf,0xef,0xe0,0xed,0xfb,0xa0,
+ 0x0f,0x96,0xe8,0x91,0x75,0xdc,0x02,0xd8,0x8a,0x0d,0xb1,0x95,0xfb,0xc0,0x1c,0xa1,
+ 0x06,0x1e,0xb9,0xc6,0xe2,0xa9,0xc0,0x7e,0xa1,0x0f,0x3d,0x99,0x8d,0xfc,0x1d,0xb7,
+ 0xbc,0x7a,0x2b,0x8a,0x6b,0x2e,0x7f,0x0d,0x43,0xdc,0xc4,0xe9,0xec,0xfa,0x1b,0xe8,
+ 0x7e,0xcb,0xe0,0x6d,0xd6,0x0e,0x92,0x7e,0xb7,0x2f,0x9e,0x78,0x07,0x9e,0x67,0xd7,
+ 0xcf,0x56,0xe6,0xe0,0x1b,0x48,0xa1,0x68,0x96,0x5f,0x21,0x0c,0x71,0x4d,0x07,0xcb,
+ 0x34,0xde,0x1a,0x31,0x0c,0x21,0x85,0xff,0x9f,0xfc,0x84,0x40,0xfd,0x6d,0x09,0x69,
+ 0xa1,0x09,0xec,0x66,0x14,0xf1,0x97,0x14,0x6c,0xc8,0xe5,0x88,0xcf,0x82,0x35,0xc2,
+ 0x8c,0xf3,0x40,0xf7,0xbf,0x28,0x1f,0x86,0x49,0x48,0xa9,0xd1,0x2e,0xfe,0x09,0x38,
+ 0x0d,0x2b,0x55,0xa9,0x8b,0xaf,0xa5,0x23,0x63,0xd4,0xe8,0x67,0xf7,0x0b,0x12,0xd6,
+ 0xc3,0xeb,0x90,0x50,0x23,0xbb,0xda,0x8a,0xdb,0x4a,0x21,0xb1,0x21,0xb6,0x8f,0xab,
+ 0x35,0x47,0xba,0xb8,0x31,0x6a,0x64,0x41,0xb6,0xe6,0x37,0x14,0xb1,0x6f,0xd7,0xc3,
+ 0x36,0x48,0xb4,0x88,0xf3,0x9c,0xf3,0x6f,0x37,0x8d,0x53,0x6c,0x3f,0xc4,0xe6,0x0a,
+ 0xf0,0x2a,0xc4,0xd5,0x88,0xcc,0x09,0xe2,0x66,0x88,0x3f,0x34,0x1f,0x1b,0x74,0x64,
+ 0x80,0x1a,0xfd,0x21,0xba,0x1f,0x36,0x95,0xa5,0xa9,0x53,0x69,0x18,0x84,0x94,0x28,
+ 0xa1,0x88,0xe2,0xf3,0xf7,0x22,0x4f,0xf7,0x67,0x77,0xa5,0xe9,0xd4,0xc3,0x4f,0xb7,
+ 0x7f,0x80,0x8d,0xa6,0x87,0xa2,0xbb,0xdb,0xc7,0x7c,0xfe,0x7e,0x5c,0x4c,0xef,0xc7,
+ 0xf9,0x45,0xd6,0xe0,0x3a,0x7e,0x0f,0x8e,0x4f,0x53,0x4b,0xf9,0x3a,0xde,0x35,0xbf,
+ 0x89,0x18,0xa7,0x58,0xfe,0x69,0x98,0x9f,0x85,0x63,0xf8,0xb6,0x8a,0xb4,0xb5,0x29,
+ 0x30,0x2a,0x24,0xe6,0x85,0xdb,0x38,0x6b,0x04,0xd9,0xc6,0x59,0x16,0xcf,0x16,0xe8,
+ 0x30,0x9d,0xda,0x1d,0xee,0x80,0xcd,0x5c,0x62,0x30,0x2c,0xb7,0x61,0x37,0x05,0xe2,
+ 0x66,0x05,0xf3,0xf7,0x7c,0x88,0x5e,0xbf,0x5b,0x38,0x6c,0x46,0x6f,0x37,0x0e,0xe3,
+ 0x0b,0xd8,0x08,0x3b,0xc2,0xce,0x8c,0x8f,0xd9,0x7e,0xd0,0x0c,0x7f,0x13,0x6a,0x74,
+ 0x01,0xdf,0x81,0xd7,0x9f,0x4a,0x97,0x77,0xf1,0x7e,0x7f,0x73,0x2c,0x5f,0x0d,0x86,
+ 0xac,0xfd,0xd0,0xcd,0x8f,0x55,0x63,0x63,0xc3,0xd2,0xa0,0xf9,0xdf,0xb0,0xfc,0x23,
+ 0xca,0x1a,0x09,0x3b,0x44,0xb7,0xf0,0x9a,0x38,0x28,0x18,0xd1,0xd6,0x7c,0xf1,0x1f,
+ 0x62,0xfb,0x39,0x56,0x14,0x83,0x37,0x20,0x81,0x22,0x63,0xdc,0xeb,0xf0,0x32,0x2c,
+ 0xe9,0xe2,0x3f,0xe4,0x62,0x22,0x19,0xd9,0xae,0x71,0x39,0xf3,0x2b,0x8d,0x1b,0xb2,
+ 0xf7,0x83,0xb0,0x56,0xa8,0x11,0xf0,0xdd,0x51,0xcb,0x89,0xd0,0x2e,0xc4,0xcf,0xe3,
+ 0xdb,0x64,0x87,0xeb,0x7e,0x39,0x89,0x8d,0x21,0xb6,0xdf,0x90,0xfc,0x88,0x79,0xb7,
+ 0x66,0xe7,0x65,0x62,0x2f,0xc2,0x12,0x15,0xdf,0x86,0x0b,0xd8,0xfd,0x2b,0x3f,0xc0,
+ 0x19,0x46,0x8e,0xcd,0xef,0xec,0xfc,0x11,0x7c,0x82,0x1a,0xb3,0xd1,0x0d,0xdf,0xae,
+ 0x80,0xb7,0xdb,0x1a,0xb5,0xe8,0x06,0x7e,0x3f,0x5c,0x47,0x0b,0xb3,0xd1,0x4d,0xfc,
+ 0x45,0xf8,0xa7,0x8e,0x46,0x62,0x5c,0xae,0xa6,0xf3,0xc5,0x4a,0x9c,0x6f,0x43,0x38,
+ 0x7b,0x68,0xd8,0xbb,0x1b,0xf0,0x2f,0x10,0xfd,0xb5,0x37,0xdf,0x2e,0xce,0xf0,0xfd,
+ 0x6d,0x34,0x3e,0x20,0xbc,0xa9,0x4e,0xa3,0xd4,0x58,0x34,0x17,0x99,0x07,0x67,0x3a,
+ 0x9a,0xc6,0xe2,0x37,0xad,0xfa,0xb5,0x73,0x82,0x9f,0x82,0xe9,0xb6,0xa6,0x4b,0xb8,
+ 0x7e,0xe9,0x1a,0x8d,0xff,0xcb,0xf3,0xf7,0xc1,0x75,0x58,0x92,0x8b,0xa4,0x39,0xb9,
+ 0x65,0x6b,0xe6,0xdb,0xab,0xc5,0x71,0x7b,0xfd,0x17,0xd5,0xbe,0x8a,0x38,0x31,0x2e,
+ 0xb3,0xdf,0x17,0x60,0x5f,0x08,0x7f,0x3b,0x78,0x67,0x2b,0xd7,0x4a,0xf2,0xd5,0x40,
+ 0x77,0xda,0xe1,0xaf,0x68,0x19,0x76,0xfe,0x51,0x84,0x1d,0xa5,0x35,0x46,0xf4,0xda,
+ 0x1e,0x44,0x3c,0xd4,0x7e,0x3f,0x46,0x12,0xd1,0xd1,0xd0,0x46,0x23,0x9e,0x45,0x56,
+ 0x60,0x07,0xd9,0xfe,0xec,0xa9,0x24,0x45,0x01,0x7b,0x27,0xf2,0x0f,0x92,0xfc,0x99,
+ 0x5e,0x90,0xf9,0x2b,0x7f,0xfd,0xb2,0xd7,0x83,0x42,0xbd,0x82,0x31,0x78,0x60,0xce,
+ 0x21,0x6c,0x2c,0x4a,0x47,0x83,0xea,0x51,0x96,0xdd,0x2f,0x55,0xb2,0x55,0xef,0xb2,
+ 0x7c,0x12,0xce,0xe1,0x7c,0x2e,0x65,0xf9,0x95,0xac,0xde,0x85,0x2c,0x43,0x5f,0x4d,
+ 0xd7,0x7f,0x40,0xd8,0x68,0x16,0x29,0x8d,0xab,0x41,0xaf,0x40,0xe2,0xf1,0x58,0x26,
+ 0xec,0xaf,0xbf,0xd9,0x07,0xd9,0x7e,0x28,0x8a,0xc3,0x2b,0x64,0xb0,0x93,0xab,0x26,
+ 0xf5,0x3a,0x1b,0xeb,0x36,0xea,0xf5,0x3d,0xee,0xf9,0x6c,0xbf,0x89,0x73,0x25,0x78,
+ 0x5e,0x8e,0x0f,0x46,0xb4,0x62,0x80,0x43,0x62,0x5c,0x15,0x65,0x9b,0x07,0xde,0xd1,
+ 0x28,0x0f,0xb0,0xfc,0x03,0x65,0x1b,0x43,0xb8,0xec,0x0e,0x62,0xa7,0x14,0x38,0xa3,
+ 0xa4,0xc8,0xfa,0x49,0x7c,0x96,0xeb,0xe7,0x7e,0xc3,0xff,0x1f,0xc2,0xa1,0x7b,0x17,
+ 0x7f,0xa5,0xb3,0xfc,0x73,0xb0,0xf2,0xa6,0x3c,0xad,0x34,0x0d,0x44,0x5a,0x31,0xb4,
+ 0x4c,0x93,0xec,0xc1,0xea,0xd7,0x35,0x1c,0x1f,0x5a,0xdf,0x59,0xfe,0xd1,0xcb,0x18,
+ 0xe4,0x5c,0x80,0x3f,0x75,0x19,0x06,0xde,0x36,0x28,0x75,0xe9,0x39,0xcb,0x70,0xf3,
+ 0x0f,0x02,0x06,0x39,0x39,0x91,0xf8,0xeb,0xc4,0x9e,0x00,0xfe,0x11,0x8b,0x58,0xf5,
+ 0xc9,0xc1,0xf3,0x8a,0xbb,0xac,0xb3,0xfb,0xab,0x9f,0xe5,0x1f,0xfd,0xb6,0x5e,0x1a,
+ 0xb4,0xcb,0x24,0x9e,0xae,0x30,0x3a,0xf8,0x87,0xed,0xcf,0xb9,0xbd,0xf4,0x47,0x1f,
+ 0xc2,0xbc,0xe1,0xd8,0x06,0x4e,0x50,0xd1,0x59,0x7e,0xb8,0x04,0x27,0x68,0x10,0x26,
+ 0xb8,0x69,0x58,0xaa,0x07,0xf2,0xcf,0x84,0x4a,0xe7,0x33,0xfe,0xc9,0xe0,0x6a,0xf8,
+ 0xbe,0x67,0x9b,0x05,0xf0,0xcf,0xa0,0xc0,0x76,0x4b,0x4e,0x7c,0xdf,0xbf,0x7e,0xce,
+ 0xe2,0x1f,0xfa,0xf9,0xb0,0x68,0x2d,0x8d,0x86,0x0e,0xcf,0x43,0x40,0x7c,0xdc,0xfc,
+ 0xf3,0x58,0x68,0x11,0xad,0xfe,0xdf,0xc0,0x5e,0xc3,0x28,0x36,0x30,0x20,0x17,0x71,
+ 0x80,0x81,0x83,0x7f,0xa0,0x1c,0xbe,0xcc,0x18,0x90,0x73,0x12,0x7e,0x47,0x40,0xc8,
+ 0xe2,0x9f,0x1c,0x35,0x3c,0xfc,0x53,0x69,0xc7,0x07,0xa6,0x65,0x16,0x96,0xd4,0x00,
+ 0x21,0x22,0xcc,0x3f,0x29,0x02,0x42,0x36,0xff,0xf4,0x54,0x9e,0xc5,0xb7,0xad,0x01,
+ 0x39,0xd9,0xfc,0xf1,0xb9,0x6c,0xe7,0xff,0xdb,0xf6,0xc1,0xdb,0x26,0xe4,0x8c,0x1a,
+ 0xfc,0x13,0xf1,0xf1,0x4f,0x84,0xf0,0x0f,0xbd,0xbe,0x0e,0xfb,0x61,0xab,0x09,0x39,
+ 0xd7,0x2c,0x7f,0xbd,0xfc,0x83,0x8d,0x71,0x96,0x7f,0x5a,0x30,0x4f,0xb6,0x9b,0x90,
+ 0x33,0x8c,0xb6,0xdb,0x61,0x94,0x5c,0xf1,0xb4,0xf9,0x24,0x57,0xd4,0x53,0x31,0x04,
+ 0x06,0xe4,0xbc,0x07,0x17,0x38,0x8a,0x3d,0xe0,0x36,0xec,0x7a,0xd4,0xa2,0x66,0x21,
+ 0xe7,0xa9,0x3e,0xd4,0x28,0x09,0xe2,0x1f,0x30,0x8b,0x5a,0x84,0x54,0xb7,0xd3,0x70,
+ 0xbf,0xb3,0xcc,0xd5,0x5b,0xa8,0xd0,0x35,0xa7,0x1f,0x7c,0xfc,0x43,0xaa,0xed,0x4b,
+ 0x50,0xed,0x2c,0xbb,0x15,0x36,0xff,0xc8,0x34,0xff,0xcc,0x9f,0x6b,0xd3,0x0e,0xb7,
+ 0x0d,0xee,0x72,0x95,0x69,0x66,0x9c,0x12,0xe8,0xef,0x2b,0x0a,0x8c,0x76,0xc6,0x60,
+ 0x33,0xfe,0xbd,0x9d,0xd8,0x63,0xf3,0x0f,0xdb,0x9f,0xc7,0x44,0xca,0x3f,0xf5,0x59,
+ 0x5c,0x88,0xef,0x77,0x3b,0x2e,0x5a,0xc6,0x59,0x8e,0xae,0xa7,0xbb,0x8c,0xf1,0xde,
+ 0xbb,0xda,0x64,0xcc,0x5d,0xd6,0x03,0xf8,0xa7,0xbb,0xe8,0x2b,0x0a,0x39,0x7f,0xe6,
+ 0x4e,0xc3,0x11,0xf7,0x7c,0x71,0x92,0x4b,0x79,0xf8,0x07,0x1c,0xb4,0xd3,0x09,0x07,
+ 0x61,0x0d,0x2a,0xc8,0x3f,0x62,0xe5,0x80,0xf0,0x2a,0x47,0xfd,0x8d,0x29,0x5e,0x7f,
+ 0x43,0x16,0xef,0x31,0x1e,0xab,0x3c,0xcc,0xa2,0xa7,0x6c,0x73,0xc6,0xbf,0xd4,0x15,
+ 0x4f,0xba,0x1f,0x0e,0x56,0x92,0x41,0xb2,0xc8,0x92,0xdf,0xc2,0x49,0xa8,0x0b,0xf6,
+ 0x37,0xd7,0x41,0xaf,0xdf,0x03,0x34,0x3e,0x35,0xfe,0x69,0xcc,0xb8,0x8c,0xe8,0xfd,
+ 0x1b,0x93,0x4d,0xda,0x91,0x30,0x6f,0xc3,0x44,0x28,0x05,0x3b,0x83,0x78,0x7b,0xa8,
+ 0x83,0xee,0x7f,0x45,0x30,0xf9,0x27,0x46,0x68,0xe7,0x4d,0x93,0x76,0x30,0xf6,0x70,
+ 0xa6,0x31,0xdf,0xe2,0x9f,0x41,0x9b,0x7f,0xac,0xfc,0x23,0x06,0xa5,0x1d,0x66,0x0c,
+ 0xb1,0xfc,0x53,0x15,0x32,0xaa,0x7f,0x56,0x6c,0xad,0xc0,0x77,0x6b,0x32,0xcf,0xfd,
+ 0x3b,0xa8,0xb2,0xeb,0xc3,0x22,0x4c,0x3b,0x8d,0x59,0x89,0xd0,0xce,0x75,0xad,0xd1,
+ 0xc4,0x1e,0x32,0xe2,0x34,0x86,0x58,0xfe,0x31,0xf8,0x87,0x3c,0x9d,0xe1,0xec,0xa1,
+ 0x98,0xd9,0x23,0xe4,0xcf,0x27,0xfd,0x2c,0xff,0xa8,0x95,0x53,0xaa,0x55,0xbf,0xa6,
+ 0xd2,0xe7,0xd0,0x0a,0x5a,0xbf,0xf0,0xc8,0xeb,0xf8,0xf9,0xfd,0x86,0xf9,0xd5,0x08,
+ 0xdb,0x3f,0x3d,0x38,0xff,0x18,0x4e,0xb5,0x72,0x37,0xe1,0x77,0x98,0x67,0xec,0x65,
+ 0xb3,0x7c,0xe2,0xe4,0x9f,0x17,0x60,0x1f,0x85,0x9c,0x0f,0x42,0xee,0x7c,0xf5,0xb4,
+ 0xc1,0x3f,0x4f,0x9e,0xc4,0x23,0x59,0x96,0x7f,0xd2,0x02,0x0b,0xda,0x39,0x35,0x6f,
+ 0x3e,0x1f,0x65,0xfb,0xb3,0xa1,0xa8,0x57,0xb4,0x9c,0xba,0xa5,0x9e,0x83,0x67,0x83,
+ 0xf3,0xe7,0x90,0x60,0xd7,0x5f,0x3a,0xb8,0xca,0x8f,0x85,0x0e,0xfe,0xa1,0xeb,0xd9,
+ 0x0c,0x8e,0xea,0xf6,0x27,0x77,0x99,0xab,0x71,0xf0,0x0f,0x5d,0xcf,0x49,0xca,0x3f,
+ 0x99,0xea,0x2b,0x26,0xd8,0x04,0xd6,0x5f,0x9b,0x7f,0x2a,0xe9,0x7c,0x8c,0xcd,0x79,
+ 0xeb,0xb5,0x83,0x7f,0x84,0x32,0x38,0x2a,0x5b,0xd1,0x38,0x84,0x0d,0xfa,0xbc,0x3f,
+ 0x82,0x89,0x71,0x58,0x39,0xaa,0xc4,0x47,0xd7,0x38,0xf9,0x47,0x2f,0x7d,0x92,0xc4,
+ 0x67,0x00,0x3b,0x75,0xc2,0x55,0x5f,0x46,0x0c,0x03,0xf3,0xcf,0x05,0x17,0xff,0x68,
+ 0x0b,0xb1,0x77,0x4a,0xd3,0xa0,0xe9,0xa6,0xd2,0xe4,0xad,0xef,0x6a,0xca,0xc3,0x3f,
+ 0x45,0x53,0x94,0x7f,0xbe,0x16,0xc7,0xd1,0x7d,0x9a,0x34,0x42,0xf5,0x1f,0x22,0x04,
+ 0x9d,0xf3,0xea,0x3f,0xba,0x6c,0x41,0x4e,0x92,0xfb,0x18,0x3a,0x95,0x7b,0x50,0x67,
+ 0xb6,0x22,0x4e,0xb1,0xe7,0x57,0xb0,0xdd,0xa7,0xff,0xd8,0xfc,0x33,0x86,0x93,0xe9,
+ 0x5d,0xa8,0x34,0x79,0x87,0xe4,0x7c,0x42,0xf7,0xea,0x3f,0x95,0x8c,0x7f,0x3e,0x81,
+ 0x4e,0x54,0xad,0x95,0xf6,0xd8,0xfc,0xd9,0x4b,0x23,0x6c,0xeb,0x3f,0x3a,0xd5,0x7f,
+ 0x32,0x7f,0x73,0x0e,0xc6,0xf5,0xfb,0xb3,0x65,0xdd,0xed,0x8c,0x9f,0x0d,0x45,0x22,
+ 0x8f,0xfe,0x33,0xde,0x7c,0x13,0x6f,0x8d,0x26,0x3d,0xe1,0x8c,0x0f,0x97,0x5f,0xff,
+ 0xc9,0xe0,0xc7,0xf6,0x41,0x75,0xb9,0x26,0xa5,0x22,0x7e,0x3e,0x77,0xf0,0x4f,0xc8,
+ 0x5c,0x6d,0xf9,0x09,0xfc,0xfc,0xd8,0xa9,0x28,0x7b,0x36,0x1c,0xb3,0xf5,0xab,0x61,
+ 0xbf,0xfe,0x93,0xa5,0xfc,0xf3,0x00,0x7e,0x0c,0x47,0x10,0x43,0xe2,0x32,0x8e,0x29,
+ 0x18,0x01,0xfc,0x93,0xc5,0xfc,0xf3,0x00,0xbe,0x49,0xc3,0x9b,0x9e,0x7e,0x40,0xed,
+ 0x38,0x50,0x73,0xb8,0x65,0x82,0xdb,0x6f,0xdc,0xb6,0x7c,0x20,0xff,0x3c,0x24,0x4a,
+ 0xa6,0xda,0x93,0xe4,0x05,0xd0,0xb5,0x06,0x41,0xaa,0xe3,0x77,0xd0,0x91,0xb3,0xd4,
+ 0x70,0xf0,0x4f,0xd9,0x09,0xec,0x94,0x11,0x84,0x77,0xe1,0xa6,0xdc,0x24,0x44,0x5b,
+ 0xf9,0x9f,0x99,0xb2,0x4f,0xc6,0x0e,0x94,0xcd,0x3f,0x2f,0x17,0x59,0x41,0x38,0x16,
+ 0x11,0xa0,0x1a,0x8e,0xe8,0xf1,0xd7,0x22,0x09,0x1a,0xf6,0xb3,0xd4,0x70,0xe8,0x3f,
+ 0xbb,0x8c,0xe7,0x29,0x92,0x46,0xe6,0xc2,0xef,0xa1,0x46,0x17,0xc7,0xdb,0x56,0xc2,
+ 0x1f,0x68,0x62,0xd9,0x4a,0xf9,0x87,0xce,0x47,0xb0,0x9f,0x3a,0xf5,0x7d,0x65,0xef,
+ 0xb6,0xaa,0x2a,0x0c,0x42,0x8b,0x0c,0x22,0x32,0xf2,0x95,0x65,0xd8,0xcf,0x5f,0x2d,
+ 0x73,0x69,0xd0,0x9a,0x57,0xc3,0xee,0x74,0x35,0x32,0xf4,0x46,0x96,0x88,0xac,0xfd,
+ 0xe6,0xd4,0x7f,0x7a,0x28,0xe4,0xfc,0x40,0xf8,0x7d,0x73,0xfd,0x9e,0x05,0x63,0x7c,
+ 0x0c,0x86,0x2c,0xfe,0xe1,0x2c,0xc3,0xa1,0xff,0x80,0x55,0x74,0x3a,0xf8,0x03,0x44,
+ 0xff,0x81,0x47,0x3b,0xda,0x0b,0xeb,0x3f,0x63,0xf0,0x29,0xad,0x6e,0x9f,0xd6,0xd4,
+ 0xb5,0x0e,0xef,0x5a,0x5e,0x2b,0xce,0x42,0xff,0xd9,0xd3,0x36,0x26,0x6c,0x53,0xaa,
+ 0x5b,0x36,0xec,0x8b,0xac,0x2f,0xa0,0xff,0xcc,0xa7,0xfa,0x4f,0x77,0xf1,0x98,0xf8,
+ 0x0a,0xae,0xd7,0x2d,0x72,0xf3,0x61,0x3f,0xff,0x38,0xf2,0x0f,0xe5,0x9f,0xe6,0xe1,
+ 0xd0,0x36,0x50,0x54,0xb1,0xae,0x6d,0x00,0x76,0xe5,0xd5,0x7f,0x1a,0xca,0xd2,0x98,
+ 0xf7,0x12,0x10,0x05,0x9e,0x80,0x5f,0x1d,0x48,0x6d,0x35,0x7e,0xfd,0xc1,0xd6,0x7f,
+ 0x46,0x17,0x5a,0x4e,0xed,0x6e,0xff,0x0a,0x6e,0xc5,0xde,0x7a,0x28,0x7a,0xbe,0x7d,
+ 0xbd,0x36,0x0b,0xfd,0x67,0x17,0xde,0x6f,0xef,0x40,0xbd,0x2e,0x9d,0x6f,0x67,0xfa,
+ 0xd8,0x57,0xd4,0xb0,0xf9,0x67,0x93,0x6c,0x41,0x0e,0xe0,0xb2,0x8e,0xef,0x2f,0xf1,
+ 0x9e,0x2d,0x61,0x05,0x15,0xe0,0x9f,0x22,0xcb,0xa9,0x0a,0xc2,0x3f,0xa2,0xd6,0x2c,
+ 0xca,0x6d,0x82,0xe2,0xe5,0x3d,0x5b,0xff,0x99,0x7f,0xdb,0x61,0x07,0x4f,0xaa,0xca,
+ 0xea,0xb0,0xdc,0xec,0xd7,0xdf,0xbc,0xfa,0x8f,0xb5,0xc8,0xd3,0xea,0x91,0xa7,0x03,
+ 0xf5,0x3d,0x5b,0xff,0xc9,0x51,0xfd,0x27,0xc3,0x8f,0xa1,0x49,0x31,0xd5,0x1c,0xfd,
+ 0x45,0x41,0xfd,0x87,0xf2,0x0f,0x0e,0xb2,0x82,0xf3,0x4f,0x4a,0x8e,0x13,0x63,0x16,
+ 0xfa,0xcf,0x2f,0x9b,0xbf,0x03,0x53,0xb0,0x74,0x77,0x4f,0x36,0x1c,0xa3,0xb2,0x4f,
+ 0x90,0xfe,0x43,0xf3,0x4f,0x03,0x17,0x49,0x6f,0x23,0x20,0xd4,0x10,0xa0,0xcf,0xdb,
+ 0xfa,0x8f,0x66,0xf0,0xcf,0x93,0x7a,0x64,0x23,0xb7,0x12,0xfa,0xc4,0x25,0x80,0xf3,
+ 0xd5,0x02,0xdd,0xcb,0x3f,0xb6,0xfe,0xd3,0x23,0x9a,0xfc,0x13,0xfd,0x87,0xc8,0x1d,
+ 0xf0,0x5b,0xd4,0x78,0x69,0xed,0x86,0x55,0x8b,0x74,0x2f,0xff,0x38,0xf4,0x9f,0x85,
+ 0x56,0xbe,0x3d,0x18,0xca,0x09,0x37,0x30,0xef,0x2d,0xc5,0x69,0x16,0xe5,0xe7,0x1f,
+ 0xf8,0xb7,0x29,0xf8,0x57,0x52,0xa4,0x72,0xf8,0xa6,0x7b,0xa7,0xab,0xfe,0x70,0x74,
+ 0xb2,0x86,0x95,0x2d,0x86,0x46,0xb6,0xfe,0x43,0xf8,0xa7,0x4f,0xc3,0x8b,0x4c,0x57,
+ 0x8c,0x70,0x3b,0xa1,0x4a,0x5a,0xf3,0x25,0xb7,0x80,0xe6,0x9f,0xb3,0xa8,0x0f,0xbe,
+ 0x63,0xe8,0x3f,0x2c,0xfe,0x00,0x78,0xbe,0x82,0xbf,0x55,0xb9,0xff,0x85,0x2d,0xa1,
+ 0xaa,0x93,0x3f,0x54,0xdb,0x1e,0xf1,0x3d,0xb8,0x39,0xf4,0x1f,0x9a,0x7f,0x80,0xd3,
+ 0xe5,0x36,0x55,0x51,0x7e,0xb8,0x92,0x5b,0xeb,0x7c,0xb0,0x8d,0x79,0xf5,0x1f,0xcb,
+ 0x5f,0x8d,0xd7,0xb9,0xc1,0x75,0x75,0xe9,0x48,0x27,0xff,0x33,0x23,0x6d,0x2e,0xce,
+ 0xcc,0x09,0x78,0x7e,0xc4,0xfc,0x63,0xf2,0x92,0x8e,0x79,0xf8,0x1b,0x35,0x25,0x44,
+ 0xb9,0x39,0xbd,0xbe,0x7a,0x94,0x65,0xeb,0x0f,0xc9,0x56,0xd2,0xce,0xcd,0x19,0x87,
+ 0x0f,0x60,0x85,0x2e,0xe9,0x0e,0xfd,0x07,0xa6,0x05,0x8f,0xfe,0x83,0x28,0xff,0x74,
+ 0x54,0x7c,0x04,0xe7,0x1f,0xac,0x56,0xd6,0xfe,0xbc,0x39,0x40,0xff,0x51,0x19,0xff,
+ 0x90,0x7a,0x47,0x1e,0xea,0x7f,0x59,0xfc,0xa1,0xd2,0x2d,0xc6,0x3a,0xc4,0x0e,0xab,
+ 0xde,0x85,0xf3,0xf0,0x0f,0xde,0x5d,0xca,0x46,0x23,0x3e,0xf0,0x0b,0x55,0x81,0x6d,
+ 0x60,0xe6,0x67,0x22,0x83,0x0c,0xa7,0x8f,0xc2,0x46,0x9f,0xfe,0x03,0xc7,0x63,0xa4,
+ 0xbf,0xc0,0x67,0x85,0x0b,0xea,0x72,0x7d,0x01,0xe2,0x17,0x30,0x7f,0xe9,0xc6,0xd0,
+ 0x4b,0x9c,0xfc,0x43,0xea,0xd7,0xc3,0x3a,0x86,0x96,0x29,0x68,0x82,0x72,0xdd,0x2e,
+ 0x5b,0x57,0x90,0x5f,0xff,0xb1,0xf9,0x67,0xaa,0x85,0x18,0xe5,0x13,0xfc,0x4d,0x64,
+ 0xc9,0x3e,0xec,0x2b,0x87,0xfe,0x23,0x7f,0x4c,0x69,0xe7,0x0a,0x3a,0x8e,0xee,0x22,
+ 0xc6,0xf4,0xec,0xf4,0x9f,0x61,0x44,0x8c,0x30,0x36,0x54,0x5f,0xff,0xcb,0xd6,0x7f,
+ 0xf0,0xf3,0x97,0x23,0xda,0x77,0xcd,0xa4,0xff,0xa8,0x95,0x57,0x55,0xd7,0xaf,0x1f,
+ 0xd8,0x9f,0x1a,0x61,0xfb,0x27,0x1b,0x7a,0xcd,0xa7,0xf6,0x04,0xe8,0x3f,0x41,0xfc,
+ 0xe3,0xbf,0x6c,0x10,0xff,0xe0,0x7a,0xe4,0x5d,0xed,0xcd,0x02,0xfd,0xaf,0x6c,0xd1,
+ 0xea,0xfc,0x8f,0x5d,0x01,0xfc,0x93,0x0e,0xcd,0xf3,0xa9,0x1f,0x7e,0xc3,0xd9,0xff,
+ 0x12,0x28,0xe4,0x0c,0xbb,0x8c,0x6c,0x34,0x59,0x33,0x1c,0xc0,0x3f,0x0b,0x7f,0x4d,
+ 0xd4,0x1e,0xbd,0x04,0xd3,0x8e,0x6a,0x81,0xd0,0x4d,0xd5,0x21,0x04,0x79,0xf8,0xa7,
+ 0x07,0xd7,0x2f,0x6f,0x34,0xa6,0xf4,0x33,0x5e,0xfd,0x87,0xed,0x9f,0xc1,0xdb,0xf6,
+ 0xf8,0x9e,0x16,0x87,0x15,0x6f,0x3e,0x71,0xea,0x3f,0xff,0x19,0xe0,0xe6,0x56,0xcf,
+ 0x88,0x43,0xff,0x99,0x3b,0x10,0x10,0xc6,0x76,0xcf,0xc8,0x79,0xb6,0x3f,0x73,0x36,
+ 0xff,0xd8,0xb2,0x0f,0xc5,0x1e,0x5b,0xff,0xf1,0xf3,0x4f,0xd0,0x63,0x78,0x1e,0xfe,
+ 0xb1,0xd5,0x0c,0xcb,0x10,0x26,0x43,0x33,0xf2,0x4f,0x90,0x8c,0x53,0x88,0x7f,0x0a,
+ 0xce,0x0f,0xe2,0x1f,0x87,0x0c,0xa2,0xe5,0xef,0x7f,0x35,0xd8,0xfd,0x2f,0xdb,0x4d,
+ 0xe4,0x1d,0x39,0x6b,0xf7,0xbf,0xca,0x28,0xb4,0xcc,0x19,0xd3,0xde,0xcb,0xa7,0x6f,
+ 0x04,0xf0,0x4f,0x17,0xff,0x67,0xc3,0xd8,0x19,0x34,0xff,0x14,0xbb,0x7f,0x1b,0x64,
+ 0x06,0x39,0xba,0x85,0x3d,0xcd,0x97,0xd4,0x59,0xf0,0x4f,0x90,0xcc,0xe5,0xf0,0x37,
+ 0x48,0xff,0x29,0x14,0x4f,0xba,0x1f,0xb4,0xca,0xf5,0xf9,0x65,0x1c,0xd3,0x58,0x8c,
+ 0xf9,0xc7,0xd6,0x1f,0x42,0x87,0x67,0x9a,0x4f,0xf4,0x9f,0x20,0xfe,0xc9,0x9a,0x8d,
+ 0x30,0x62,0x8c,0x7a,0xf9,0x87,0xed,0x7f,0xc6,0x3f,0x84,0x76,0xfe,0x1d,0x1b,0x51,
+ 0x6a,0xcc,0xc0,0x3f,0xc9,0x62,0xc7,0x6d,0xe2,0x15,0x2e,0x86,0x04,0x56,0x5f,0x42,
+ 0x76,0xb7,0x08,0x59,0xb7,0xed,0x59,0x1f,0x0f,0xe4,0xd8,0xf5,0x09,0xff,0xf4,0x59,
+ 0xb4,0xa3,0xbc,0x4d,0xb1,0xe7,0x0f,0x5e,0xfe,0xb1,0xf5,0x9f,0x85,0x76,0xbe,0xed,
+ 0x37,0xf3,0xb9,0x57,0xe8,0x70,0xf3,0x8f,0x59,0xbf,0xc6,0x8c,0x6a,0x75,0xae,0xcd,
+ 0x90,0x7d,0x58,0xd9,0xba,0xca,0xf8,0xc7,0xa5,0xff,0xf4,0x91,0xfe,0x17,0xd1,0x7f,
+ 0xb6,0x12,0x10,0x7a,0xd6,0x5e,0xf6,0x45,0x6a,0xb8,0xfa,0x5f,0x76,0xbe,0xda,0xaa,
+ 0x98,0xb2,0x0f,0x1b,0x41,0xf9,0xf9,0x27,0x28,0xed,0x30,0x23,0x80,0x7f,0x70,0xbe,
+ 0xe5,0xbc,0x69,0x33,0xa8,0xff,0x05,0x57,0xac,0x7a,0xb7,0x8a,0x14,0xfa,0x44,0xc0,
+ 0xfc,0x9d,0x84,0x7f,0xe8,0xf5,0x09,0xff,0x9c,0x33,0x92,0xf6,0x1c,0xbb,0xcc,0xc9,
+ 0xc4,0x58,0x8c,0x0d,0xd1,0xa7,0xff,0x6c,0x16,0xd6,0xba,0x65,0x9f,0x35,0x81,0x7a,
+ 0x8e,0xcd,0x3f,0x45,0x71,0x26,0xfb,0x08,0xde,0x69,0xd4,0x68,0x76,0xf2,0x4f,0x1c,
+ 0x0e,0x59,0xd1,0x10,0x8e,0x8a,0x76,0x58,0x06,0x18,0x21,0xac,0xf1,0xf2,0x0f,0x0e,
+ 0xcb,0x69,0xe3,0xe9,0xdb,0x70,0xf3,0x88,0xa5,0xff,0x44,0xb0,0xbf,0x1a,0xe5,0x1f,
+ 0x9e,0x4e,0x37,0xf4,0x1f,0xa2,0x17,0x91,0x6a,0x75,0x23,0x44,0x8e,0x6d,0xd4,0x50,
+ 0xc7,0xed,0x08,0xe4,0x4a,0x02,0xf8,0xe7,0x26,0xd9,0x8d,0x8a,0xe4,0x68,0x7b,0x05,
+ 0xf5,0xbf,0x64,0x06,0x39,0x53,0xc4,0x50,0x62,0x81,0xfd,0x2f,0x08,0xe2,0x1f,0x62,
+ 0x00,0x7e,0xbe,0xf0,0xef,0x07,0x27,0xff,0xb8,0x69,0x53,0x15,0x8f,0xcd,0xb6,0xff,
+ 0x65,0x9c,0x36,0xf1,0x9d,0x3f,0xc9,0xdf,0xff,0x32,0xa2,0x51,0x31,0xfb,0xfe,0xd7,
+ 0x15,0x74,0x06,0xd5,0xc1,0xda,0x37,0x0a,0xeb,0x3f,0xac,0xff,0x55,0x3d,0xa5,0x6c,
+ 0x87,0xea,0xe6,0xb2,0x13,0x01,0xe7,0x97,0xec,0xfe,0x57,0xd6,0xee,0x7f,0x9d,0x83,
+ 0x76,0x01,0x32,0xf8,0x79,0xca,0xff,0xfc,0xe5,0xe4,0x9f,0x45,0x0e,0x0c,0x18,0xa8,
+ 0x39,0x5c,0x4a,0xf4,0x10,0x1f,0xff,0x08,0x74,0xbf,0xb5,0x88,0xf8,0x6a,0xb4,0xed,
+ 0xf5,0x3f,0x4a,0xd7,0xe6,0x1d,0xd5,0xbc,0x44,0x8f,0xfd,0xd8,0xfd,0xaf,0x62,0xba,
+ 0x1e,0x75,0xa1,0x15,0x9f,0x0c,0xff,0x47,0x62,0x9c,0x8c,0xa6,0x03,0xe2,0x33,0xc2,
+ 0xe2,0xdf,0x53,0x74,0x05,0x3e,0x42,0x75,0x64,0xfe,0x55,0x79,0x0d,0xac,0x44,0xd2,
+ 0x31,0xa3,0x3f,0x6b,0x74,0xc4,0xd8,0xf9,0x1f,0x27,0xff,0x90,0xfc,0x59,0x45,0x92,
+ 0xc6,0x1f,0xbb,0xf1,0x63,0x17,0x2a,0x6b,0xb5,0xfa,0xe9,0xec,0x20,0x90,0xe8,0xed,
+ 0x7f,0xf5,0xa1,0x2a,0xe2,0xd4,0x59,0x78,0x11,0x2d,0x4d,0x8a,0x39,0xcb,0x5f,0xd1,
+ 0x71,0xfe,0x67,0xdc,0xa3,0xff,0x28,0x38,0x68,0xd5,0xc4,0xd8,0x78,0xf2,0x6e,0x08,
+ 0x4b,0x6e,0x85,0x5f,0x74,0xf3,0x0f,0x81,0x9c,0x23,0xb8,0x4c,0x94,0xe4,0xe0,0x32,
+ 0x34,0x6a,0x52,0x96,0x8f,0x19,0xd8,0x13,0xa7,0xfc,0x13,0x77,0xf3,0x8f,0xa3,0x1e,
+ 0x75,0xab,0x29,0x58,0xdc,0x31,0x6b,0xfe,0x81,0xc9,0x8a,0x94,0x2a,0x75,0xcf,0x19,
+ 0x93,0x67,0xa1,0xff,0x18,0xd5,0x56,0xc5,0xfb,0xff,0x85,0xfe,0x82,0xfc,0x23,0xd4,
+ 0xc2,0x4b,0xb4,0x5f,0x43,0xbe,0x15,0x83,0xeb,0x35,0xfd,0x88,0x60,0xf3,0x8f,0x56,
+ 0x2f,0x24,0x1e,0x8b,0x15,0xee,0x7f,0x35,0x88,0x69,0xd6,0xef,0x43,0x66,0x23,0x66,
+ 0x95,0xdf,0x5f,0x47,0xff,0x6b,0xa1,0xab,0x9a,0x37,0x91,0x83,0x3d,0x33,0xf1,0xcf,
+ 0x2d,0x4b,0xed,0x41,0xb7,0xf0,0x7c,0xa9,0xd5,0xd0,0x4f,0x9a,0xf2,0x9d,0xff,0xb1,
+ 0xf9,0xe7,0x92,0x61,0x7c,0x57,0xab,0x50,0x0a,0xf5,0xbf,0x2c,0xfe,0xd9,0x8e,0xbd,
+ 0x5b,0xfd,0x2a,0x24,0xd2,0xa2,0xdc,0x1c,0x74,0xde,0x29,0x1f,0xff,0xb4,0x94,0x76,
+ 0x05,0x9c,0xbf,0xb2,0xfb,0x5f,0xda,0x5c,0x0f,0xcf,0xc4,0x77,0x45,0x0a,0xe9,0x3f,
+ 0x76,0xff,0x8b,0x7c,0x2b,0xe6,0xed,0x7f,0xd1,0xeb,0xfb,0xf8,0x47,0xda,0x12,0xa4,
+ 0xff,0xd8,0xfd,0xaf,0x0e,0xcc,0x3f,0x21,0x02,0x39,0x15,0x37,0x76,0x3f,0x27,0x2e,
+ 0x41,0x3d,0x1b,0xda,0x7a,0x18,0x11,0xc9,0x79,0xfb,0x5f,0xa4,0xff,0x8e,0xda,0x70,
+ 0x34,0x44,0x25,0x48,0xff,0x51,0x3c,0xfd,0x2f,0x93,0x16,0xb6,0xc0,0x92,0x36,0x71,
+ 0x9c,0xdb,0x57,0xa8,0xff,0x45,0xf5,0x9f,0x4d,0x7c,0x3f,0xbc,0x4d,0xea,0xcb,0x26,
+ 0x7e,0x51,0xa1,0xfe,0x97,0xcd,0x3f,0x39,0x92,0x3d,0xd0,0xc3,0x41,0xf9,0xdc,0xd1,
+ 0xff,0x2a,0xba,0xda,0x72,0x1d,0xd5,0x93,0x22,0xf5,0x06,0x5c,0xc4,0x86,0xf4,0xcf,
+ 0x76,0xff,0x82,0xd4,0xaf,0x15,0xde,0xfe,0xd7,0x7e,0x5c,0x64,0x0f,0x90,0x45,0x8e,
+ 0x76,0xec,0x44,0x77,0x6f,0x11,0x9f,0xa9,0x58,0xe0,0x5b,0xbf,0x93,0x37,0x88,0x77,
+ 0xdf,0x32,0xe6,0x4b,0x27,0xa0,0xaa,0xab,0xb4,0xb5,0xda,0x35,0xff,0x6e,0xdd,0xdd,
+ 0xff,0x32,0xf2,0x4f,0xad,0x01,0x39,0x70,0x00,0x62,0x9b,0x4b,0x83,0xf4,0x34,0xbb,
+ 0xff,0x15,0x33,0xfa,0x17,0xaf,0x61,0xa7,0x4a,0x7a,0x8a,0xbe,0x80,0x24,0x2a,0x33,
+ 0xf3,0x27,0xf3,0x77,0xb9,0xd9,0xff,0xb2,0xd7,0xd3,0x4b,0x07,0x3f,0x85,0xff,0xe2,
+ 0x52,0x5d,0xe5,0xff,0x11,0x78,0xfe,0xc7,0xc9,0x3f,0xec,0xa1,0xfe,0xd6,0xe1,0x7a,
+ 0x24,0x8d,0xbb,0xf4,0x9f,0x7c,0xfd,0xaf,0xd2,0x0c,0xf7,0x19,0x1c,0x4f,0x57,0x1f,
+ 0x09,0x2f,0x0f,0x3a,0x7f,0xeb,0xe2,0x1f,0x6b,0xb0,0x27,0xfd,0x86,0x50,0xad,0x89,
+ 0xc7,0x02,0xe6,0x7b,0xf4,0x1f,0x1c,0x84,0xd2,0x64,0xf3,0x20,0x1c,0x55,0x0e,0x6e,
+ 0x7e,0xd6,0x3a,0x0f,0x3c,0x60,0xc6,0x87,0xf7,0x9e,0xff,0x91,0xe2,0xe8,0xc6,0x3a,
+ 0x6b,0x3f,0x4c,0x40,0x1d,0x92,0x32,0x56,0x7c,0x22,0x8e,0x46,0x98,0x93,0x7f,0x6e,
+ 0x19,0x4e,0x95,0x8d,0xf3,0xa3,0x30,0xa9,0x36,0x22,0xea,0xe6,0x20,0x35,0x86,0x02,
+ 0xf8,0x27,0x65,0x62,0xb3,0xd9,0x2d,0x5d,0xe3,0xda,0x3f,0xf5,0xfe,0xfe,0xd7,0x0a,
+ 0x02,0x39,0x47,0x2c,0xda,0x91,0x8e,0x71,0xae,0xf3,0xcf,0xd5,0xbe,0xfe,0x97,0x70,
+ 0x34,0x14,0xd7,0xb7,0x3b,0x7e,0x7d,0xd7,0x7e,0x50,0xf2,0xf6,0xbf,0xcc,0xe8,0x89,
+ 0x19,0x77,0x3c,0xab,0xf3,0xf5,0xbf,0xec,0x5f,0xdf,0xb5,0x7f,0xea,0xf2,0xf5,0xbf,
+ 0xf2,0xe8,0x3f,0x6f,0xe5,0xed,0x7f,0xcd,0x4a,0xff,0x19,0x2d,0xf2,0xfc,0xfa,0x7c,
+ 0xd2,0xc9,0x6f,0x47,0xbd,0xfa,0x4f,0xce,0xce,0x3f,0xb3,0xd2,0x7f,0xc6,0x43,0x8b,
+ 0xcc,0x43,0xce,0xcf,0x92,0xea,0xaf,0x99,0xd8,0x23,0xe4,0xd7,0x7f,0xfe,0x5a,0x2c,
+ 0x27,0x90,0x33,0x16,0x5d,0x4e,0x68,0x47,0x33,0x8e,0x3d,0x0f,0xfb,0x14,0x21,0xa7,
+ 0xfe,0x63,0xf4,0xbf,0x06,0x02,0xe2,0x63,0xfa,0xeb,0xd3,0x7f,0xf0,0xa0,0xc9,0x3f,
+ 0x56,0x34,0x1a,0x78,0x3f,0x1f,0xba,0xfa,0x5f,0xf0,0x16,0xdc,0xe7,0xca,0x36,0xfe,
+ 0xfc,0xe3,0xea,0x7f,0xc9,0x6f,0x99,0xfc,0xc3,0xbc,0xf3,0xf3,0x9e,0xb7,0xff,0x55,
+ 0xeb,0xea,0x1e,0xfa,0xf3,0x8f,0xb7,0xff,0x55,0xe7,0x54,0x7b,0x22,0x31,0x9f,0x22,
+ 0x14,0xd0,0xff,0xb2,0xab,0xcf,0x9c,0xac,0x30,0x2b,0xfe,0xf1,0x97,0xc5,0xc2,0xfc,
+ 0x53,0x40,0xd8,0xf1,0xe8,0x3f,0xa1,0x84,0xba,0xa6,0xe0,0xfc,0x20,0xfd,0x27,0x1c,
+ 0x20,0x04,0x15,0xd4,0x7f,0xfc,0x65,0x37,0xa8,0xff,0x55,0xc6,0xfa,0x5f,0x05,0xf4,
+ 0x0d,0x37,0xff,0x7c,0xea,0xfa,0x76,0x84,0x77,0xf0,0xa1,0x85,0x46,0xa7,0x38,0x67,
+ 0xff,0x2b,0x67,0x9e,0x7f,0xf6,0x1f,0xfb,0xb1,0xf9,0x07,0x9c,0xfc,0x73,0xc0,0xec,
+ 0x7f,0x51,0xef,0x2a,0x06,0xe4,0x02,0xfd,0x2f,0xcc,0x3f,0x2f,0xc1,0x53,0x33,0xe8,
+ 0x3f,0xee,0xfe,0x17,0x5e,0xff,0x83,0x85,0xf5,0x9c,0x80,0xfe,0x97,0x43,0x1d,0x9a,
+ 0xa9,0xff,0x95,0xef,0xbc,0x59,0xbe,0xfe,0xd7,0x4f,0x0c,0xc8,0x01,0xaa,0xf6,0x30,
+ 0xc3,0xa9,0xff,0xb0,0xeb,0xb3,0xfc,0x23,0x14,0xc8,0x3f,0xde,0xfe,0x17,0xbe,0x49,
+ 0x7f,0x5a,0xec,0x3f,0xf6,0x13,0xd4,0xff,0xea,0xf4,0xd0,0xce,0x7f,0x07,0x9d,0xff,
+ 0xb9,0xac,0xb0,0xfe,0xd7,0xed,0xbd,0xe4,0x35,0x13,0x3d,0x10,0x7b,0x4c,0xa3,0x24,
+ 0x53,0xd3,0xcf,0xe2,0xcf,0x59,0xcf,0xef,0x8b,0x27,0xf9,0x29,0xf5,0x2d,0xfb,0xfc,
+ 0xaa,0xd5,0xff,0xba,0x8e,0x8e,0x8c,0x95,0xbb,0xf5,0x9f,0x1d,0x45,0x9f,0xe0,0x45,
+ 0x6e,0x67,0xab,0x4d,0x52,0xe3,0x59,0xb8,0xb8,0xb9,0x4f,0xab,0x22,0xd2,0xd0,0xe5,
+ 0x0e,0x7a,0x7d,0x40,0xfb,0xe0,0x45,0xcb,0x3b,0x89,0xb9,0xb9,0x17,0xa8,0x10,0xa4,
+ 0x54,0x0d,0x86,0xbd,0xfa,0xcf,0xa1,0x42,0xf9,0x5c,0x31,0xf5,0x1f,0x16,0x9f,0x4a,
+ 0xd3,0x5f,0xd2,0x9d,0x31,0xbc,0x33,0x1c,0xb7,0x0f,0xba,0x84,0x8e,0x90,0x8e,0x86,
+ 0xab,0xff,0x65,0xce,0x2f,0x58,0x8f,0xdc,0xfd,0xaf,0xcf,0xf3,0xd4,0x3b,0xee,0x84,
+ 0xcd,0x3f,0x74,0xfd,0xac,0xff,0x15,0x24,0xfb,0xe4,0xd1,0x7f,0xcc,0xc1,0x62,0xf2,
+ 0x6d,0xf1,0xcc,0xe7,0x7f,0x24,0xeb,0xb4,0x0f,0xd1,0x7f,0xbc,0xf1,0x91,0xb1,0xd1,
+ 0x7f,0xa7,0x57,0xff,0xb1,0xfd,0x95,0xb1,0xc1,0xce,0xc3,0x1f,0x99,0xd3,0x9b,0xbc,
+ 0x61,0x1e,0x8d,0x76,0x9d,0xff,0x51,0x4c,0xa7,0xda,0xad,0xf3,0x3f,0xd7,0xda,0x2d,
+ 0x7f,0x5f,0x25,0xff,0xa1,0x1a,0xd0,0xff,0xfa,0xdc,0xda,0x2d,0xf2,0x34,0x79,0xff,
+ 0x6b,0xd4,0xde,0x3f,0x6f,0x06,0xf5,0xbf,0xae,0xc2,0x67,0x36,0xed,0x2c,0xcd,0xb6,
+ 0x74,0xcf,0xf6,0xfc,0xb3,0x61,0x28,0xf3,0xe5,0x19,0xf4,0x1f,0x37,0xff,0x20,0xb1,
+ 0x7b,0x86,0xfe,0x97,0xfb,0xd7,0xaf,0x8d,0xed,0x69,0x67,0x23,0x0c,0x5d,0x9c,0xfd,
+ 0xaf,0x13,0xce,0xfd,0xd0,0x08,0xf4,0x45,0xb0,0x59,0xf4,0xbf,0xd2,0x37,0xe0,0x7e,
+ 0xb1,0xcc,0xf7,0x3e,0x82,0xa7,0xff,0x45,0xf7,0x03,0x18,0xb4,0x06,0xe2,0xee,0x82,
+ 0xef,0x7f,0x39,0xf4,0x9f,0xb3,0x98,0x87,0x6b,0x47,0x44,0x80,0xc2,0xfd,0xaf,0x45,
+ 0xe6,0x69,0x67,0x83,0x7f,0x90,0x92,0x15,0xd7,0xce,0xd0,0xff,0x92,0xcc,0xd3,0xce,
+ 0x98,0x7f,0xd0,0x97,0x68,0x99,0x2e,0xc1,0x8c,0xfc,0x83,0x83,0x30,0xb0,0x93,0xbc,
+ 0xff,0x75,0x5d,0x4e,0x8d,0x3c,0x65,0xf6,0x4f,0x53,0x79,0xfb,0x5f,0x34,0x08,0x25,
+ 0x1b,0x0d,0x1a,0x97,0xba,0x9c,0xf1,0x79,0xdf,0xdf,0xff,0xa2,0x4f,0x8b,0x46,0xfe,
+ 0x8c,0xeb,0x9d,0xeb,0x66,0x3c,0xff,0x6c,0x3a,0x55,0x61,0xbc,0xf8,0xf6,0x61,0xcc,
+ 0xd5,0x08,0xdb,0xeb,0xef,0x7f,0xf9,0xdf,0xf6,0xf2,0xc7,0xd3,0xdb,0xff,0x22,0x6d,
+ 0x82,0x55,0x2d,0xf2,0x37,0xd0,0x88,0xa4,0xc7,0x9d,0xe7,0x9f,0x2f,0xe4,0xef,0x7f,
+ 0x61,0xa3,0x41,0x4d,0xc9,0x0f,0x77,0xce,0x56,0xff,0xf9,0xb8,0xf3,0x34,0xa4,0x9a,
+ 0xc5,0x00,0x10,0xe2,0xfc,0xfc,0xb3,0xbd,0x8b,0xfb,0x44,0xdc,0x96,0x36,0xf4,0x1c,
+ 0x7f,0x47,0x26,0x4f,0xff,0x6b,0x1b,0x24,0x9a,0xc3,0x81,0x7a,0x45,0x70,0xff,0x6b,
+ 0x33,0x24,0x1e,0x0a,0xcb,0x5c,0xc7,0xac,0xf8,0x67,0x55,0x4e,0x26,0xef,0x7f,0x3d,
+ 0xa7,0x05,0x80,0x90,0xa3,0xff,0xc5,0xf4,0x9f,0x39,0x63,0xc5,0x93,0x78,0xb7,0x2c,
+ 0x19,0x99,0x65,0xff,0x8b,0xfb,0x0a,0xd3,0x4e,0xbd,0x5a,0x36,0x12,0x00,0x8a,0x36,
+ 0xff,0x38,0xf4,0x1f,0x62,0xdc,0x13,0x0a,0x23,0x3e,0x3d,0x03,0xff,0x58,0x4e,0xad,
+ 0x0e,0xbd,0xca,0xa5,0xd7,0x95,0x9a,0xef,0xbb,0xd5,0x1a,0x20,0x24,0x90,0xaf,0xd6,
+ 0xc8,0x15,0x41,0xfa,0x4f,0x31,0x89,0xde,0x4f,0xc8,0x8b,0x60,0xfe,0x8e,0xe4,0x29,
+ 0x17,0xff,0x98,0xe7,0x9f,0xf9,0xf5,0x0b,0x26,0xa1,0xee,0x7b,0x65,0x72,0xc1,0xf3,
+ 0x3f,0xbe,0xfe,0x97,0xe3,0x7d,0xb1,0x92,0x3c,0xfd,0x2f,0xab,0xdb,0xa5,0xc1,0x84,
+ 0x72,0x3f,0x79,0xdf,0x70,0x56,0xe7,0x7f,0x34,0x6e,0xb2,0xe3,0x35,0xa8,0xea,0x12,
+ 0x2f,0x71,0xa6,0xfe,0xb3,0x06,0xf3,0x8f,0x60,0x7e,0x55,0x11,0xd4,0xff,0xe2,0xda,
+ 0xd1,0x11,0xbd,0x76,0x6f,0x38,0x48,0x7f,0xb6,0xcf,0x3f,0x3b,0xfa,0x5f,0x23,0xd0,
+ 0x27,0x7e,0xeb,0xe4,0x1d,0xd9,0x36,0x9f,0xfe,0x03,0xee,0xfe,0x97,0x05,0x39,0xbb,
+ 0xe1,0x6b,0xb4,0x4c,0x2b,0x0f,0xd2,0x7f,0x2e,0xd3,0xed,0xc6,0xf4,0x9f,0x12,0x5c,
+ 0xc4,0xe5,0x6b,0xb0,0x7c,0xf3,0xcf,0x93,0x41,0xfa,0x8f,0xad,0xff,0x93,0xf7,0x97,
+ 0xbb,0x8c,0x63,0x1b,0x53,0xd0,0x81,0x56,0xd4,0x2e,0x7c,0xcf,0xd0,0x7f,0xac,0x83,
+ 0xd0,0x9f,0x9b,0xad,0x31,0x4f,0xff,0x0b,0x19,0x4e,0x8d,0x70,0x48,0xa9,0x92,0xa4,
+ 0x67,0xf8,0x47,0x9c,0xeb,0x6f,0xcc,0xfa,0xfb,0x5f,0xca,0x12,0x3d,0x4c,0xfc,0xed,
+ 0x08,0xc5,0x20,0x36,0x62,0x3c,0xaf,0xdd,0xcd,0xfc,0x1d,0xcc,0xd7,0xff,0xd2,0x45,
+ 0x04,0x8a,0x22,0xde,0xcb,0xf9,0x9f,0x70,0xdd,0xfd,0xaf,0xe3,0xe6,0xb1,0x8d,0x2c,
+ 0x4e,0x76,0x0d,0xf3,0xa4,0xff,0x67,0xef,0xfa,0x63,0xab,0xb8,0xb2,0xf3,0x7d,0xf3,
+ 0xc6,0x30,0xb6,0x9f,0xed,0xb1,0x81,0x96,0x2c,0x04,0x06,0x03,0x5b,0x97,0xba,0xe0,
+ 0xc5,0x88,0xb0,0x0e,0x31,0x83,0x49,0x54,0x16,0xa2,0x80,0x36,0x6d,0xb5,0x2b,0x45,
+ 0x91,0x45,0xa8,0x8a,0x54,0xb6,0x62,0x7f,0xfc,0xe1,0x25,0xab,0xcd,0x80,0xc9,0xc6,
+ 0x59,0xd3,0xae,0x93,0xcd,0x6a,0x89,0xb2,0xbb,0x7d,0x04,0x54,0x50,0x97,0x56,0x40,
+ 0xd2,0x2c,0x34,0x28,0x79,0x10,0x4b,0x71,0x12,0x27,0x58,0xd9,0x54,0x9b,0x1f,0x94,
+ 0x7d,0xd1,0xd2,0xc4,0x0d,0x0e,0x71,0x48,0x94,0x3a,0xc1,0xe0,0xce,0x9d,0xb9,0x3f,
+ 0xe7,0x9e,0x7b,0x67,0x1c,0x36,0x9b,0x48,0x8d,0xff,0x3a,0x7a,0x1e,0x9e,0xe6,0x1e,
+ 0xc6,0xf7,0x7e,0xf3,0x9d,0xef,0x7c,0x67,0x05,0xe9,0x6f,0x8a,0xd6,0x7b,0x1e,0xa8,
+ 0x7f,0xd1,0x24,0xbc,0x8e,0xc6,0x56,0xb7,0xa3,0xda,0xc4,0x79,0xd4,0xa6,0xe5,0x7f,
+ 0x2e,0xa2,0x71,0x74,0x3d,0xaa,0x19,0xcf,0x7f,0xcf,0xc0,0xff,0xec,0xe0,0xf8,0x27,
+ 0xfc,0x6b,0x0a,0x96,0x7b,0x35,0x27,0x76,0x1a,0xf5,0x3f,0xfc,0x7d,0xbf,0x5c,0x3c,
+ 0x56,0x5a,0xd4,0x52,0x79,0xd8,0x52,0x11,0x94,0xca,0xff,0x54,0x2f,0x9b,0x52,0x42,
+ 0x87,0xdd,0x05,0xe8,0x2b,0xf1,0xfb,0x29,0x96,0xfd,0xc4,0x07,0xdf,0x40,0x52,0xff,
+ 0x53,0xff,0xb8,0x43,0x40,0xdd,0x98,0xdf,0x86,0x7e,0x7e,0x38,0xbf,0x55,0xad,0xef,
+ 0x70,0xfc,0x73,0x4d,0xb4,0xa8,0x53,0x75,0x17,0xf3,0x43,0x68,0xdc,0x5b,0x85,0xea,
+ 0xb6,0xc9,0xe7,0x7b,0xfb,0x10,0xac,0xff,0xf9,0x50,0x84,0xcd,0x11,0x22,0x3a,0xc6,
+ 0x18,0x21,0xa8,0xfe,0x75,0x98,0xa3,0x9d,0x91,0xa0,0x37,0x1d,0xff,0x2c,0x6d,0x18,
+ 0xcc,0xb1,0xc7,0x80,0x20,0xe4,0xdd,0xe9,0xf8,0x27,0x7e,0x91,0x4f,0x0a,0xcb,0x25,
+ 0xfc,0x93,0x53,0x61,0xf0,0x79,0x23,0xfe,0xb9,0x7a,0xfd,0x4f,0xb2,0xd1,0x49,0xc6,
+ 0x3f,0x97,0x14,0xd8,0x9c,0xbc,0x7f,0x10,0xff,0x08,0xc7,0x74,0xb2,0xfe,0x0e,0xd7,
+ 0xbf,0x5c,0x1a,0x38,0xf7,0x24,0x18,0x21,0x05,0xff,0x48,0x68,0x67,0x04,0xfd,0x1a,
+ 0x97,0xbd,0x18,0x23,0x24,0xe1,0x9f,0xf0,0xfd,0xeb,0x1d,0xd2,0x1d,0x40,0x69,0x1f,
+ 0xd2,0xf6,0x85,0xdf,0x50,0x26,0xdc,0xa8,0xb4,0x0a,0xe0,0x9f,0x63,0xd5,0x58,0x08,
+ 0x17,0x65,0xe3,0x02,0x7a,0x0e,0xcd,0x91,0xf2,0x03,0xe1,0x1f,0x91,0xf6,0x31,0xe9,
+ 0x7f,0x98,0xfe,0x79,0x8e,0x9d,0x49,0xff,0x03,0xd1,0x3e,0x99,0xf4,0x3f,0x02,0xed,
+ 0x33,0x29,0xfd,0xcf,0xb4,0xf2,0x94,0xac,0xf5,0xaf,0x49,0xf1,0x3f,0x7f,0x38,0xfd,
+ 0x4f,0x16,0xfc,0x83,0xe6,0xb3,0xd5,0x95,0xd0,0x98,0x95,0x8a,0x7f,0x38,0xff,0xd3,
+ 0x7a,0xae,0x48,0xda,0xb8,0xc2,0x4f,0xf2,0x3a,0xfc,0xf3,0x00,0xa3,0x7d,0xa6,0x9d,
+ 0xf3,0x15,0xfc,0x03,0xd5,0xbf,0x4c,0xfc,0x0f,0x58,0xff,0xa2,0xc2,0xef,0xfe,0xe0,
+ 0xaa,0xf5,0x3f,0x90,0xfe,0xd9,0xc0,0xe7,0x28,0xf8,0x87,0xf3,0x45,0xff,0x94,0xae,
+ 0xff,0x99,0x2c,0xff,0x13,0xd7,0xbf,0x2c,0x95,0xf6,0xd1,0xe8,0x7f,0x8c,0x7c,0x85,
+ 0x0e,0xff,0x88,0x32,0x18,0x5f,0xe5,0x7f,0xe8,0xf7,0x63,0xfc,0x13,0xf5,0xbf,0x6f,
+ 0xef,0xe6,0xb4,0x4f,0x51,0xc1,0x3f,0xa0,0xfe,0xc7,0xd6,0xf2,0x1b,0xb2,0xfe,0x07,
+ 0xe3,0x9f,0xba,0xe3,0xdd,0x21,0xec,0xe9,0x4b,0x1c,0x64,0x08,0xd6,0xff,0x60,0xd9,
+ 0xcf,0x47,0x74,0xff,0xe9,0xb2,0xe2,0x17,0x31,0xb8,0xfe,0xc5,0xf4,0x3f,0xdf,0xb2,
+ 0x88,0xf0,0xfb,0x5b,0xc0,0xfb,0x1a,0x88,0x7f,0x54,0x18,0x09,0xe2,0x1f,0xc2,0x96,
+ 0x8f,0xfe,0x1d,0xa3,0xcd,0x89,0xd0,0x45,0x10,0x3e,0x01,0xf8,0x67,0x14,0x48,0x8b,
+ 0xa1,0xfe,0xb5,0x41,0x7f,0xde,0xd5,0x24,0xf0,0x8f,0xf3,0xf1,0xf8,0x1f,0xe3,0xf5,
+ 0x2a,0xfe,0x69,0xd9,0x39,0x68,0xb7,0x46,0xc0,0x40,0xca,0x8f,0x9b,0xac,0x7f,0xd5,
+ 0x84,0x68,0xc7,0x13,0xd7,0x7b,0xb4,0x3b,0xca,0xcf,0x4b,0x8c,0x08,0xaa,0x51,0xfa,
+ 0xbf,0x24,0xb5,0x2a,0x16,0x4a,0xc5,0xfd,0xef,0x94,0x11,0x02,0xf0,0xcf,0xb3,0x35,
+ 0x63,0xf9,0x76,0xcc,0xff,0x74,0x4a,0xfc,0x21,0xcc,0xff,0x3c,0x1e,0x2c,0x19,0x75,
+ 0x48,0xd9,0xab,0x33,0x53,0xff,0xfb,0x62,0x54,0x49,0x9e,0x87,0xd5,0xe0,0xf3,0x90,
+ 0xc0,0x3f,0xb9,0xc5,0x1d,0x3d,0xb8,0xdb,0x2b,0xcc,0xde,0x8d,0x4a,0x3e,0x4f,0x42,
+ 0xfc,0xcf,0x4b,0x35,0xa4,0xec,0xd5,0x39,0x15,0x7a,0x1e,0x14,0xfc,0x53,0xae,0x1b,
+ 0xad,0x8e,0x60,0x70,0x27,0xf8,0x60,0x28,0xf8,0xc7,0xbd,0x99,0x7c,0xdb,0x4d,0xa9,
+ 0xfa,0x67,0xfc,0x3c,0x34,0x77,0x38,0x2d,0x28,0xea,0x76,0xff,0x0e,0xf8,0x3c,0x28,
+ 0xf8,0xa7,0xb3,0x89,0x64,0x63,0x63,0xaa,0xfe,0x19,0xe3,0x9f,0xe6,0x2d,0x54,0xfd,
+ 0xb2,0x85,0xc2,0x00,0x5d,0xff,0x7b,0x8c,0x7f,0x4e,0x16,0x08,0xfe,0xd9,0xa2,0xf4,
+ 0xbf,0x27,0xf9,0x9f,0xc8,0xff,0x67,0x98,0x66,0xe3,0x46,0x1a,0xe0,0xfe,0xf7,0x11,
+ 0x2d,0xff,0xb3,0x96,0xca,0xae,0x7c,0x9c,0x16,0xe7,0x4e,0x83,0xfe,0x39,0xda,0x4f,
+ 0x3a,0x54,0xdb,0x1f,0x13,0xfe,0x69,0x8e,0xd4,0x3e,0xb9,0x70,0x75,0x9d,0x69,0xfd,
+ 0xef,0x78,0xff,0xb1,0x38,0xed,0xe3,0x83,0xf9,0x4c,0xe2,0x9f,0x55,0x4c,0xed,0xb3,
+ 0x13,0xee,0x7f,0xd7,0xe2,0x1f,0x97,0x1d,0x43,0x73,0x0d,0xf8,0x67,0xe5,0xe6,0xc2,
+ 0x24,0xf1,0x0f,0x95,0xf1,0x7c,0x35,0x23,0xfe,0x71,0xe2,0x7e,0xf9,0xac,0xf8,0x67,
+ 0x1d,0x28,0xfb,0xd1,0xe3,0x1f,0xa7,0x10,0xe4,0xf5,0x8d,0xff,0x0a,0xfe,0x91,0xd5,
+ 0x3b,0xe7,0x92,0xc2,0xe6,0x35,0x49,0xfc,0xb3,0x6a,0x4b,0x21,0xa6,0x7d,0x6e,0xf0,
+ 0xa1,0x44,0xdd,0x21,0xe1,0x1f,0x27,0x04,0x39,0x7d,0x4e,0x60,0x79,0x38,0x40,0x4e,
+ 0x26,0xfc,0xb3,0xd1,0x21,0x36,0x47,0xab,0x2b,0x53,0xf5,0xcf,0x39,0x2c,0xfb,0x71,
+ 0x28,0x8d,0x56,0x99,0x09,0xff,0x6c,0x6c,0x8e,0x68,0xbd,0xdc,0xca,0xce,0x3f,0xcf,
+ 0x84,0x7f,0xc2,0x0f,0xab,0xa3,0xdf,0xae,0x9d,0x93,0x05,0xff,0xac,0xc4,0x6d,0x5f,
+ 0x65,0xda,0x08,0x9f,0x8a,0x7f,0x30,0x6d,0xee,0x45,0x68,0x67,0xc9,0x03,0xeb,0x32,
+ 0xe1,0x9f,0x32,0xfd,0x7b,0xd9,0x05,0xf2,0xa5,0x0a,0xfe,0x19,0xa2,0x7f,0xbf,0xa8,
+ 0x0a,0xae,0x7f,0xd1,0xef,0x8f,0xf1,0xcf,0xca,0xce,0x66,0x8a,0x76,0x0a,0x60,0xfd,
+ 0x4b,0x83,0x7f,0x72,0xe1,0xea,0x40,0xfc,0x63,0xd1,0xfc,0x10,0xfd,0x73,0xb9,0x40,
+ 0xde,0xd6,0x3d,0xf0,0xfc,0x52,0xf4,0xcf,0xa5,0xa6,0x3b,0xf1,0xdd,0x06,0xcd,0x0e,
+ 0x59,0x48,0x73,0xac,0xe8,0xd6,0xe1,0x1f,0x9f,0x5c,0xb6,0x44,0x5e,0x2f,0xac,0x7f,
+ 0x6e,0xc5,0xcf,0x1b,0xd3,0xbb,0xa6,0xe1,0x1f,0xbc,0xde,0x95,0xfd,0x54,0x2d,0xe9,
+ 0x81,0xfd,0x3b,0x12,0xfe,0x71,0xc4,0xdf,0xda,0x99,0xf0,0x4f,0xbb,0x5f,0x20,0xdb,
+ 0x38,0x2a,0x40,0xe7,0x9d,0xca,0xff,0x34,0x11,0x3d,0x73,0x63,0x55,0xa2,0x11,0xa9,
+ 0x0d,0xc0,0x3f,0xb9,0xc5,0xa5,0xb5,0xe4,0x74,0xf3,0x9c,0x6c,0xf8,0xc7,0x69,0x69,
+ 0x88,0xb2,0xe1,0x56,0xc5,0xb2,0x1f,0xac,0x98,0x6a,0x60,0xfd,0x71,0x09,0xfc,0x83,
+ 0xef,0x3f,0x5a,0xdd,0xbc,0x76,0x77,0x36,0xfe,0x5a,0x22,0xfb,0x11,0xf4,0xcf,0x12,
+ 0xfe,0xc1,0xdb,0x4e,0xe4,0x5f,0xe7,0xdf,0x80,0x44,0xd9,0x0f,0x3e,0xbf,0xae,0x4f,
+ 0xe0,0x9f,0x19,0xcc,0xff,0x87,0x1b,0x29,0xb8,0xa4,0x11,0x0c,0xc4,0x3f,0x7f,0x4f,
+ 0x41,0xce,0xa0,0x45,0x68,0x9f,0x91,0xac,0xf5,0xaf,0x7d,0xf1,0xea,0x06,0x89,0x02,
+ 0x0a,0xc4,0x3f,0x15,0x87,0xf4,0xb4,0x09,0xc4,0xff,0x54,0xe8,0x60,0xb0,0xf8,0x20,
+ 0x19,0xf9,0x9f,0x35,0x46,0xfc,0x83,0x0e,0x71,0x7e,0x29,0x49,0xfb,0xe0,0x60,0xb9,
+ 0xae,0xfe,0x45,0xee,0xbf,0x36,0x05,0xff,0xcc,0x60,0xfc,0xcf,0x08,0xe8,0xff,0xb3,
+ 0x40,0xc1,0x3f,0x01,0x3d,0xfd,0x0b,0x98,0x06,0xa9,0x4a,0xeb,0xff,0xaa,0xa5,0xfa,
+ 0xe7,0x17,0xd0,0xad,0xe8,0x7b,0x4a,0x23,0xd8,0x32,0xb0,0xfe,0x55,0x8a,0xdb,0xbe,
+ 0x72,0x77,0x31,0xda,0x50,0x0a,0x64,0xfc,0xf3,0x1e,0xd5,0xff,0x40,0xf9,0x01,0xf1,
+ 0xcf,0x3c,0x10,0xf6,0x34,0x68,0xf1,0xcf,0x42,0xb6,0xba,0xd7,0xd9,0x32,0x2b,0x0d,
+ 0xfc,0x4f,0x94,0xb4,0x41,0x87,0x25,0x36,0x0d,0xff,0x3c,0x26,0x55,0xbb,0xd2,0xf1,
+ 0x4f,0xdb,0xc7,0xea,0xff,0x22,0x42,0x17,0x0b,0x1b,0x01,0xb1,0xf3,0xae,0xd6,0xc0,
+ 0xff,0xbc,0xc2,0x8d,0x80,0xb4,0xf8,0x27,0x17,0x1e,0xd3,0x56,0xf4,0x61,0x3f,0xae,
+ 0x7f,0xb1,0x42,0x58,0x18,0x74,0x40,0xf8,0x27,0xd2,0x3f,0x6f,0xf5,0x67,0xe1,0xd3,
+ 0x9f,0xb5,0xbd,0xef,0xd5,0xe3,0x9f,0x82,0xd0,0xff,0xc5,0xf0,0x0f,0x16,0xe2,0x4e,
+ 0x4d,0xa9,0x7f,0xe5,0xcf,0x15,0x95,0xc0,0xa8,0x7f,0xfe,0x6f,0x3d,0x3e,0x84,0xf9,
+ 0x9f,0x60,0x85,0x9e,0xff,0x61,0x7a,0x12,0xa8,0xff,0x0b,0xe8,0x77,0x33,0xf0,0x3f,
+ 0x8d,0x26,0xff,0x1f,0x85,0xff,0x49,0xd1,0xff,0x5c,0x55,0xff,0x57,0x56,0xfe,0x27,
+ 0x02,0x39,0x9b,0x32,0xf3,0x3f,0xe9,0xfa,0x43,0xb0,0xfe,0xa5,0xc2,0x00,0x0d,0xfe,
+ 0xd1,0xd2,0x3e,0x10,0xfe,0xa9,0xa1,0xf8,0x67,0xcd,0xdb,0x7d,0x34,0xf0,0x53,0xfb,
+ 0xbf,0xa2,0x63,0xcb,0x23,0xc1,0x44,0x0a,0xfe,0x79,0x84,0xb4,0x9d,0x46,0x77,0x5b,
+ 0x0b,0xe1,0x37,0x4d,0xff,0x97,0x36,0x80,0xfb,0xbf,0x22,0x7d,0x4b,0x15,0x4f,0x63,
+ 0x47,0x4a,0xff,0x57,0x6c,0x84,0xc8,0xf9,0x9f,0xbf,0x30,0xf1,0x3f,0x94,0x1d,0x02,
+ 0xf1,0x12,0x58,0xff,0x1a,0x27,0xa7,0xff,0x34,0xda,0x11,0x96,0x52,0xff,0x8a,0x8d,
+ 0x19,0xa3,0x20,0x69,0x04,0xa4,0xf2,0x3f,0xb3,0x84,0xfe,0x2f,0xb5,0x5e,0x23,0xe1,
+ 0x1f,0x9f,0x90,0x3c,0xcf,0x8b,0xc0,0x40,0x56,0x08,0x4b,0xf8,0xc7,0x25,0x8b,0xba,
+ 0x4c,0xab,0x7b,0xe3,0x28,0xd9,0x28,0x27,0xe0,0x9f,0xaf,0x48,0xb6,0x3f,0xd7,0x97,
+ 0x36,0x40,0xe7,0x3b,0x50,0xff,0xc2,0xf8,0xf9,0xb7,0x89,0xc7,0x46,0xcb,0xff,0x48,
+ 0x68,0x67,0x93,0xf8,0xc9,0xce,0x04,0xfe,0x69,0xaa,0x30,0xfc,0x59,0xf1,0xf5,0xea,
+ 0xf5,0xcf,0x1a,0xfc,0x43,0xef,0x07,0xd9,0x69,0xfa,0xe4,0x93,0x38,0x3f,0xdc,0xdf,
+ 0xd2,0xe5,0xe7,0xbb,0xa7,0xad,0x7f,0x0d,0x83,0xfd,0x5f,0x14,0xed,0x18,0xf9,0x1f,
+ 0xee,0x7f,0x78,0xc1,0x23,0x81,0x5a,0x0f,0xe5,0xfd,0x5f,0x25,0xc6,0x07,0x8a,0xcf,
+ 0x83,0x81,0xff,0x41,0xaa,0xfa,0xf7,0x76,0x19,0x18,0xc0,0xf5,0xaf,0x15,0xf9,0x41,
+ 0xe7,0xbd,0xdc,0xb2,0x93,0x62,0xdb,0x3b,0xc4,0xff,0xcc,0x8e,0xf3,0x33,0x37,0xc2,
+ 0x3f,0x98,0xf6,0x39,0x4c,0x69,0x1f,0xd0,0xff,0xc7,0x91,0xf1,0x67,0x9b,0x98,0x96,
+ 0xf9,0x80,0xfe,0x79,0x38,0x07,0xec,0x27,0xb6,0x5e,0xff,0x8c,0x78,0xfd,0xcb,0xd0,
+ 0xef,0x2f,0xea,0x9f,0xf9,0x7e,0x1e,0xd5,0x5b,0x99,0x9f,0x76,0xa5,0x84,0x7f,0xd8,
+ 0xfd,0xd8,0x58,0x1d,0xc1,0xd0,0xce,0x76,0x18,0xff,0x7c,0xc8,0xf1,0x0f,0x3b,0x8f,
+ 0xfe,0x04,0x9f,0x3e,0xdf,0x97,0xcf,0x23,0x1b,0xc0,0x3f,0xf4,0xbc,0x9b,0x86,0xf1,
+ 0x8c,0x46,0x28,0xfb,0x14,0xc7,0x3f,0x88,0xd6,0xb3,0xf2,0x86,0x42,0x8c,0xdc,0xff,
+ 0xc5,0xfc,0xfa,0x0c,0xf5,0x2f,0xba,0x5e,0xa1,0xfe,0xa5,0xca,0x7e,0xa0,0xfe,0xaf,
+ 0x6b,0xc4,0xfe,0x77,0x4b,0x73,0xfe,0x9e,0x65,0xfd,0x5f,0xc7,0x6a,0xb2,0xe0,0x81,
+ 0x37,0xb8,0x9e,0x07,0xf3,0x3f,0x76,0x94,0x9f,0xf7,0x13,0x97,0x0d,0x31,0xff,0x1f,
+ 0x81,0xff,0x99,0x69,0xac,0x7f,0xb9,0x7a,0xff,0x67,0xba,0xba,0x59,0xd0,0x7a,0x05,
+ 0xfd,0xf3,0x74,0x96,0xf6,0x91,0x4c,0xfa,0x67,0xdb,0xbc,0xde,0x1c,0xf6,0xb7,0x9c,
+ 0x2f,0xe8,0x9f,0xdd,0xfd,0x0e,0x65,0xc3,0x3c,0xed,0x3f,0x04,0xfd,0x7f,0x32,0xe1,
+ 0x1f,0x64,0x33,0xfd,0xcf,0x58,0x40,0x6d,0x0f,0xf1,0x27,0x3b,0x44,0xfc,0x33,0xe0,
+ 0xd1,0xfd,0xc1,0xb9,0x9b,0xfd,0xbd,0x9c,0x34,0xe1,0x1f,0xfa,0x33,0xaf,0x5e,0xd4,
+ 0xff,0x68,0xf0,0x40,0xc7,0x00,0xfd,0x7a,0xdc,0xff,0xe5,0x12,0x90,0xf3,0xa2,0x02,
+ 0x7b,0x78,0xff,0x57,0x23,0xbd,0xde,0xe1,0x78,0xa0,0xac,0xdf,0xd8,0x4f,0xfd,0x80,
+ 0xe6,0xa7,0xd3,0x66,0x22,0xd5,0xb3,0x91,0xed,0xcf,0x3d,0xa4,0x6d,0xf9,0x5c,0xdd,
+ 0x77,0xf3,0x73,0xa8,0x11,0xd0,0x50,0xc0,0xf0,0x0f,0xfa,0x19,0xad,0xd6,0x0d,0xf9,
+ 0xbf,0x11,0x6e,0x1b,0x2b,0x2a,0x67,0x5b,0x51,0x21,0xfe,0x9b,0x82,0xfe,0x39,0xe0,
+ 0xf8,0x47,0xf5,0x6b,0x9d,0x4d,0x3f,0xe1,0xfd,0x5f,0xfe,0x74,0x26,0xea,0x50,0xfd,
+ 0x6c,0x99,0xdf,0x9d,0xd0,0xff,0x55,0x21,0xac,0xb7,0x57,0x5e,0x66,0x75,0x33,0xed,
+ 0x88,0xe7,0xff,0xbf,0x45,0x77,0x24,0x43,0x7e,0xf8,0xfd,0x08,0xf8,0xe7,0x3d,0xad,
+ 0x10,0x5a,0x38,0x1f,0xb9,0xff,0xa1,0xf5,0x94,0x81,0x7f,0x60,0xff,0xbf,0x01,0x3f,
+ 0xef,0xca,0xa2,0x10,0x5a,0x8b,0x7f,0x50,0x81,0xe7,0x47,0x94,0x25,0x0c,0x88,0x85,
+ 0x30,0x01,0xff,0xcc,0x24,0x6a,0x9f,0x7f,0x4f,0xac,0xf7,0x59,0x0d,0xfe,0xa9,0x61,
+ 0x8b,0x1a,0x4d,0x2c,0xf3,0x08,0x8c,0x7f,0xce,0x5a,0xe4,0x21,0x19,0xc7,0x6a,0xb1,
+ 0x52,0xcd,0x18,0xc6,0x4b,0xc1,0xaa,0xd7,0x35,0xfc,0xcf,0xcc,0x0b,0xd4,0xe4,0xf0,
+ 0x4c,0xe9,0x97,0xbb,0x96,0x8c,0x56,0x1f,0xeb,0x98,0xf0,0xcd,0xfc,0x0f,0x5d,0xa6,
+ 0xb7,0x8f,0x08,0xbf,0x85,0xbf,0x2f,0x3b,0x89,0x7f,0x2a,0x0e,0xf1,0xb4,0xeb,0xfd,
+ 0x27,0x39,0xfe,0x99,0xb1,0xd5,0x61,0x68,0xf0,0x7c,0x5c,0x0d,0xc4,0x69,0x99,0x23,
+ 0x01,0x63,0xfe,0xff,0x2b,0xf4,0x7f,0x9d,0x89,0xfc,0x30,0x7b,0xa3,0xfc,0x58,0x26,
+ 0xfc,0xc3,0xf4,0xe7,0xaf,0x91,0x36,0x28,0x3b,0x9a,0xf8,0xa0,0xa9,0x7f,0x15,0x82,
+ 0x5e,0x6a,0xfb,0xd3,0x6b,0x2f,0x09,0x83,0x06,0xee,0xff,0x33,0x1d,0xc0,0x3f,0x98,
+ 0x7f,0x8e,0xf9,0x8a,0x2c,0xfe,0xcf,0x9d,0xee,0xed,0x8a,0xfb,0x9f,0x80,0x07,0xae,
+ 0x53,0xf5,0x3f,0x37,0xa3,0xdf,0x05,0xcb,0x62,0xb4,0x73,0xab,0x2b,0xc0,0x9e,0xa9,
+ 0x2d,0xf3,0x5f,0x88,0x47,0x63,0x24,0xfd,0x9f,0x71,0xf6,0x28,0x3e,0x4c,0x36,0x82,
+ 0x59,0x49,0xfc,0x13,0xbb,0xb3,0x96,0x6b,0x48,0xfe,0x07,0xc3,0xb4,0x5f,0x09,0xce,
+ 0x47,0x2f,0x26,0xf3,0x19,0x23,0x94,0x9c,0x7f,0xb1,0xa4,0xe4,0x6c,0xb3,0xc6,0x8b,
+ 0xf7,0xd8,0xcd,0xa7,0xc2,0xe0,0x79,0x5f,0xd5,0xff,0xd0,0xeb,0xbd,0x08,0xff,0x2c,
+ 0x89,0xd8,0x9e,0xe0,0x00,0xe1,0xbb,0xa2,0x80,0xf1,0x3f,0xeb,0xe5,0xf9,0x17,0x02,
+ 0xda,0xa1,0x46,0xd0,0x80,0xfe,0x87,0x5e,0x3f,0x4c,0xe6,0x5f,0x44,0x63,0x2f,0xde,
+ 0x0a,0x83,0x5a,0x29,0x78,0x55,0xe9,0xff,0xca,0xed,0x8d,0xe6,0x5f,0xd4,0x46,0x32,
+ 0x98,0x24,0xfe,0x31,0xce,0xbf,0xc0,0xf8,0x67,0xe5,0x6a,0xa1,0xbe,0x63,0xe1,0x60,
+ 0x4e,0x18,0xe4,0x44,0xfe,0xe7,0x6f,0x11,0x9e,0xa7,0xb0,0x9e,0xd2,0x38,0x35,0xd2,
+ 0xf9,0xfb,0xe5,0x24,0xfe,0x59,0x51,0xb1,0xd0,0x67,0xbf,0x7d,0x50,0xe9,0x7f,0x7f,
+ 0x30,0x97,0xe8,0x7f,0x6f,0x72,0x6d,0xc6,0xf6,0x14,0xef,0x43,0xcd,0xeb,0x2a,0x21,
+ 0x3e,0xe4,0x29,0x76,0xfd,0xb1,0x02,0x56,0x17,0xe3,0x45,0xcd,0x2f,0x07,0x2f,0x93,
+ 0x42,0x18,0xf7,0xff,0xe9,0x4a,0xe2,0x9f,0x3d,0x02,0x1f,0x52,0xfc,0x1f,0xd9,0xef,
+ 0xfa,0x56,0xf6,0xab,0x37,0x25,0xff,0xe7,0x57,0xe8,0xf5,0xcf,0x27,0x1b,0xc1,0x68,
+ 0x20,0xf8,0xff,0xcc,0xc4,0xb6,0xcf,0x6d,0xb9,0xc8,0xff,0xe7,0x20,0x5a,0xec,0x62,
+ 0xd8,0xe3,0x2b,0xf8,0x67,0x8a,0x88,0x7f,0x28,0xcd,0x55,0xdc,0x81,0x9a,0x6f,0xac,
+ 0x76,0x1b,0xf1,0x32,0x9b,0x74,0xf8,0xc7,0xde,0x1f,0xa6,0x7d,0x51,0x4c,0xfb,0x68,
+ 0xeb,0x89,0x6f,0x70,0xff,0x9f,0xbf,0xea,0x27,0xf7,0x3f,0xed,0x9c,0xfd,0x0c,0xb7,
+ 0x75,0x6a,0x93,0xf1,0x8f,0xc7,0xf8,0xcf,0x88,0xff,0x89,0x7e,0xbb,0x99,0xe8,0x85,
+ 0x72,0x9b,0x93,0xf8,0x67,0x1a,0xe7,0x1b,0x1d,0xb7,0xd8,0x49,0x69,0x37,0x6b,0x20,
+ 0x0b,0xff,0xd3,0xe6,0xb0,0x6e,0x77,0x6c,0xfb,0xb3,0x1e,0xe2,0x7f,0xc4,0xfe,0xf7,
+ 0x0d,0x44,0xff,0x13,0x1e,0x5b,0xdd,0x31,0x5f,0xa1,0x32,0x42,0x1c,0xff,0x04,0x0c,
+ 0xff,0x4c,0x39,0xa3,0xfc,0xd9,0x02,0xf8,0xa7,0xc7,0xb9,0x3f,0xd6,0xff,0x84,0x68,
+ 0xc7,0x7f,0x7a,0xc7,0x0d,0xe5,0x0d,0x5d,0x6b,0xcc,0xf8,0xa7,0x18,0xee,0x96,0xb1,
+ 0x7a,0x70,0xf7,0xf5,0x48,0xd3,0x08,0x76,0x6a,0x0a,0x5d,0xaf,0x6f,0x1f,0x45,0xa7,
+ 0xfb,0x62,0xff,0x1f,0xff,0xe9,0xbe,0xd6,0xf8,0x45,0x3e,0xc2,0x3f,0x5d,0x91,0x10,
+ 0x3a,0x0a,0x5c,0x96,0xff,0x83,0x33,0xfb,0xd0,0xaf,0x8b,0x91,0xff,0x0f,0xf6,0x2f,
+ 0x9a,0x57,0xaa,0xfe,0x2e,0xc5,0x3f,0xdb,0x22,0x85,0x46,0x18,0x7c,0xb3,0x63,0x91,
+ 0xc0,0xff,0xf4,0xc5,0xb6,0x3f,0x98,0x2f,0xba,0x47,0x90,0x3d,0x4b,0x0a,0x46,0x4f,
+ 0xf0,0x7f,0x0e,0x44,0xb7,0xd5,0x26,0x31,0x8d,0x1d,0xec,0xe8,0x9f,0x29,0xf4,0xbf,
+ 0xf7,0xa0,0xe7,0x72,0x91,0x69,0xcf,0xf8,0x94,0xe7,0xd0,0x47,0xa2,0x8d,0x33,0x56,
+ 0x54,0xc6,0x41,0x95,0xd0,0x0f,0x1b,0xc3,0x00,0x92,0x96,0xbf,0x4e,0xc3,0x3f,0x45,
+ 0xf7,0xa2,0xe2,0x7e,0x73,0x26,0xe2,0x7f,0x6a,0x40,0xfc,0xb3,0xd7,0xde,0xe4,0xab,
+ 0xc7,0x6e,0xf2,0x13,0x01,0xff,0xdc,0xe4,0x79,0xea,0xf5,0x06,0xfe,0x67,0x3a,0x42,
+ 0xfb,0xd6,0x36,0x9f,0x8a,0xf0,0x00,0x15,0x06,0xe3,0x27,0x70,0x20,0x4e,0x94,0x9f,
+ 0xc0,0x3f,0x41,0xb8,0xff,0x9c,0xef,0x8c,0x9a,0xbc,0xc6,0x83,0x58,0xff,0x13,0x2e,
+ 0x33,0x3c,0xf1,0x4f,0x85,0x27,0xce,0xdb,0x6b,0x2f,0xf9,0x49,0xfc,0x53,0xd1,0xc7,
+ 0xf5,0x51,0xbf,0xb5,0x56,0x9d,0x24,0x83,0x9c,0xe2,0xf3,0x2b,0xc0,0xa3,0x31,0x24,
+ 0xfc,0x83,0x50,0xf8,0x1e,0xb8,0x37,0xdc,0x0e,0xa2,0x3e,0x10,0x5d,0x80,0xc4,0x1f,
+ 0x1b,0x85,0x77,0xe7,0x87,0x3b,0xb0,0x21,0x10,0x7f,0x76,0xa1,0x79,0xc8,0xf1,0xc3,
+ 0x1d,0xd2,0x10,0x5c,0xcd,0xf7,0x07,0xe1,0x7f,0xb6,0x83,0x2c,0x63,0x20,0xfc,0x98,
+ 0x2f,0x8c,0x83,0xab,0xf9,0xfe,0xc9,0xfe,0x7c,0xc6,0xf2,0xef,0xe2,0x59,0x7e,0x83,
+ 0xe8,0xdb,0x68,0x76,0xc9,0x10,0xd8,0x1f,0xfb,0xfb,0x3f,0xe1,0xfc,0xdb,0x6e,0x90,
+ 0x21,0xe7,0x39,0x81,0x5f,0x9a,0xdc,0xcf,0xca,0x95,0x59,0xae,0xaa,0xab,0xfb,0x98,
+ 0x5f,0xff,0x07,0xf8,0x59,0x35,0x31,0x31,0x51,0x4a,0x09,0xfe,0x3f,0x5f,0xff,0x19,
+ 0xfb,0x7b,0xfc,0x7c,0x3f,0xfc,0x7c,0x3f,0xbc,0x8a,0xfc,0x7f,0xbe,0x1f,0xa6,0xfd,
+ 0x7c,0xd6,0xf6,0x9f,0xcf,0xd6,0xf5,0xa2,0x3f,0x36,0x7e,0x9b,0x50,0x02,0x6d,0x7d,
+ 0xb0,0x91,0x06,0x0d,0x46,0x7d,0x38,0xda,0x5d,0xaf,0xa3,0x9d,0x3b,0xc0,0xfa,0xa0,
+ 0xa1,0x2c,0x08,0xf0,0x63,0x39,0xa1,0x7e,0x17,0x15,0x52,0xab,0xa1,0xf7,0x05,0x01,
+ 0xff,0x27,0xfc,0x21,0x95,0x60,0xae,0xb6,0x3e,0xc8,0x02,0xb5,0x3f,0x11,0xaa,0x0f,
+ 0xe6,0x13,0x65,0xc1,0x5e,0x9d,0x3f,0x64,0x8e,0xb1,0xc7,0x59,0xea,0x83,0xb4,0x3f,
+ 0x6e,0xcc,0x22,0x83,0x62,0xb7,0xf3,0xb1,0xb0,0xa6,0xfa,0xe0,0xe1,0x78,0x2c,0x08,
+ 0x6e,0x8b,0xbb,0x25,0xf6,0x87,0x5c,0x01,0xd6,0x07,0x05,0x7d,0x14,0x8a,0xdc,0x90,
+ 0x04,0x59,0x38,0x50,0x1f,0x6c,0xb2,0x0f,0xa1,0xd7,0xe0,0xb2,0xa9,0x60,0x94,0x24,
+ 0xf0,0x63,0xae,0x5e,0x6f,0xe0,0xce,0x36,0xd5,0x07,0xbf,0xa8,0xca,0xa2,0x58,0xa9,
+ 0x54,0xac,0x0f,0xee,0xd6,0xa7,0xb1,0xa0,0xf2,0x63,0xd8,0x1f,0xe9,0x55,0xb4,0x1c,
+ 0x2c,0x0b,0x72,0xa3,0x24,0xad,0x3f,0x52,0x06,0x7e,0x4c,0xa8,0xfe,0x7c,0x9d,0xd3,
+ 0x20,0x8b,0x53,0xfb,0xe3,0x90,0x3a,0x16,0x4d,0xe0,0xc7,0xe8,0xf5,0x42,0x7d,0x70,
+ 0x73,0xc4,0x8f,0xc9,0x7c,0xce,0x83,0x8a,0x3f,0x64,0xa6,0xfe,0x38,0xce,0x8f,0x75,
+ 0x55,0x0a,0xf5,0x41,0x6a,0xcb,0xec,0xe8,0xeb,0x83,0x09,0x7f,0x48,0x1a,0x54,0xc8,
+ 0x9f,0xbc,0x99,0xd0,0x87,0x83,0x65,0x32,0xc1,0x58,0xc0,0xd8,0x1f,0xd7,0xa8,0x04,
+ 0x62,0x7d,0xb0,0x62,0x97,0x58,0x0f,0x6d,0x02,0xd6,0x5b,0x25,0xcd,0x87,0x9d,0x6e,
+ 0x28,0xcb,0x02,0xf5,0xc1,0x87,0x45,0x7d,0xd4,0x71,0x46,0x8b,0x25,0xf5,0x51,0x0b,
+ 0x58,0x7d,0x10,0xd4,0x47,0x1d,0x4f,0x04,0x52,0x7d,0x30,0xe2,0x63,0xe7,0x64,0xac,
+ 0x0f,0x7a,0x15,0x89,0x69,0x20,0x75,0x29,0xfc,0x18,0x9e,0xa7,0x6c,0x6d,0x4d,0xd1,
+ 0x6f,0x08,0xf5,0x41,0x24,0xe9,0xa3,0xbe,0x91,0x5a,0x1f,0xec,0x89,0xfd,0xb1,0x6b,
+ 0xa3,0x69,0xb0,0x19,0xea,0x83,0xb3,0x13,0x7a,0x0f,0x50,0xff,0x23,0xf0,0x63,0x15,
+ 0x4c,0xdf,0xfb,0x7d,0x3c,0x0d,0x56,0x3a,0xb6,0xd8,0xaf,0x86,0x18,0x3f,0xf6,0x2f,
+ 0xf5,0xbf,0xe8,0x21,0x77,0x7b,0x1b,0xfa,0x69,0x31,0xf2,0x47,0x7a,0x21,0x20,0x46,
+ 0x49,0x67,0xef,0x8e,0xad,0x9f,0x3a,0x24,0x7f,0xc8,0x1d,0x7c,0x75,0x1e,0xd3,0x83,
+ 0x2d,0x94,0x84,0x61,0x49,0x7f,0xc8,0x34,0x3d,0x8c,0x50,0x1f,0x9c,0x7e,0x88,0xca,
+ 0xa2,0xc2,0xd5,0x45,0x65,0x17,0x32,0x16,0xe4,0x47,0xc2,0x7a,0x9f,0x15,0xf8,0x31,
+ 0xe1,0x18,0xd2,0xea,0x51,0xc5,0xfa,0xa0,0xf1,0xbc,0x7b,0x52,0xad,0x0f,0x36,0xeb,
+ 0xc7,0x52,0x40,0xfc,0x98,0xa8,0x07,0x96,0x82,0xe7,0xf0,0x84,0x35,0x50,0x1f,0xfe,
+ 0x63,0x5a,0x0f,0x7a,0xc4,0x61,0x63,0x41,0xc2,0xb4,0x2c,0x23,0xfe,0xd8,0x49,0x7d,
+ 0x54,0xc0,0x57,0x57,0x6c,0xff,0x4f,0xdc,0x16,0x17,0x7e,0x32,0x67,0x88,0x04,0x8a,
+ 0x3e,0xfc,0x72,0xfd,0x93,0xe8,0x8f,0xd9,0xf9,0x35,0x5c,0x77,0xb1,0x3b,0x1a,0x0b,
+ 0xf2,0x6c,0xdd,0xc5,0x58,0xf1,0x92,0xa8,0x0f,0xde,0x2d,0x3e,0x2d,0xde,0xaa,0x73,
+ 0xb5,0x66,0x7d,0x54,0xc9,0x11,0xd0,0xce,0x93,0x43,0xcd,0x25,0x07,0xea,0x8f,0x1b,
+ 0x65,0xfb,0xf3,0x00,0xda,0x6d,0xe3,0x7e,0x25,0xf6,0xbf,0x5f,0xa5,0x04,0xe1,0xaf,
+ 0x2e,0x72,0x7d,0xb8,0x2d,0xe9,0xa3,0x9a,0x4b,0xa0,0xde,0x9e,0xeb,0xc3,0xeb,0x93,
+ 0xfa,0x70,0xf0,0xef,0xe5,0x1c,0xc3,0x4b,0xc5,0x7a,0xf1,0x79,0xc8,0xe9,0xf4,0x51,
+ 0x6c,0xff,0x19,0x72,0x0f,0xf1,0x7e,0x84,0x77,0xc4,0xef,0xaf,0x85,0xf1,0xcf,0x4d,
+ 0xc2,0xf3,0xf0,0x64,0xe4,0x6f,0xd9,0xc1,0xef,0xdf,0x25,0xc1,0x07,0xec,0x79,0x10,
+ 0xf4,0x51,0x6a,0x5a,0x00,0xfc,0x33,0xea,0x72,0x7d,0x78,0x14,0x38,0xdb,0xa7,0xa8,
+ 0x7a,0xa1,0x71,0x8e,0x7f,0x66,0xd6,0xa2,0xf7,0xdc,0x95,0xa5,0xd3,0x2d,0xd3,0x5e,
+ 0x70,0x7e,0x17,0xa2,0x9d,0xda,0x36,0x6e,0x8b,0xfd,0x42,0xf8,0x6e,0x87,0xf1,0xcf,
+ 0x1d,0x2f,0xb2,0xc7,0xcd,0x9f,0x7e,0x02,0x5d,0x62,0xfd,0x95,0x0e,0x4f,0x4b,0x7f,
+ 0xdc,0xa1,0xa9,0xd4,0x07,0x05,0x7f,0x72,0xc0,0xa8,0x81,0x14,0x52,0x05,0x7d,0xb8,
+ 0x23,0xe2,0x1f,0xdd,0x7c,0xc9,0x8b,0x0b,0xe8,0xf7,0x7b,0x92,0x3e,0xea,0x07,0x90,
+ 0x3e,0x6a,0x7d,0x57,0x43,0x99,0xe1,0xd5,0x2d,0x76,0x8c,0x7f,0xf2,0xc6,0xfd,0x87,
+ 0xeb,0xc3,0xcb,0xd3,0xb1,0x3e,0x7c,0x0e,0x2c,0x8b,0x02,0xfd,0x21,0x05,0xbd,0xca,
+ 0x68,0x16,0x7d,0xf8,0x7e,0xa2,0xff,0x89,0xce,0x3b,0xcd,0xfc,0x50,0x11,0xff,0x2c,
+ 0x70,0x85,0xd3,0xb6,0x11,0x3e,0x7f,0x85,0xfa,0xe0,0x4d,0x0b,0xec,0xf4,0xeb,0xb9,
+ 0x3e,0xbc,0x69,0xba,0x88,0x7f,0x9a,0x8a,0x1a,0x7d,0x14,0xdb,0x7f,0xba,0xae,0xed,
+ 0x74,0xe9,0x7c,0x58,0x7b,0xcc,0x5b,0x0a,0xcf,0x27,0xbd,0xc0,0xf6,0x9f,0x63,0x33,
+ 0xf8,0x18,0x14,0x5c,0x38,0x5b,0x47,0x96,0xb9,0x3c,0x56,0x88,0x91,0x5f,0x7d,0xc0,
+ 0xf6,0x9f,0x15,0x04,0xff,0xd4,0xe0,0x7a,0xd9,0x2b,0x68,0xe9,0xc6,0x5a,0x50,0x4f,
+ 0xc5,0xf5,0x51,0x4e,0x31,0xf6,0x87,0x8c,0xf1,0x4f,0x23,0x72,0x82,0x06,0x05,0x11,
+ 0x35,0x9c,0xe5,0xf8,0xc7,0x16,0xf5,0x51,0xbe,0xe7,0xff,0x50,0x5a,0xef,0x7d,0xc9,
+ 0xfa,0xe0,0x1e,0x7b,0xbf,0x50,0x16,0xcc,0x3d,0xac,0xf1,0x1b,0x17,0xf4,0x51,0xfb,
+ 0x39,0x7a,0xf9,0x30,0xd7,0xe0,0xff,0x02,0xb8,0xff,0x1c,0x9f,0x0f,0x3b,0x20,0xd6,
+ 0x8b,0xdf,0xb5,0x71,0xf5,0x50,0xbd,0x7e,0xcd,0x47,0xcc,0x1f,0xdb,0x49,0xfa,0x03,
+ 0xa4,0xcc,0x87,0x75,0xb8,0x3e,0x8a,0xb9,0x61,0x53,0xd8,0xd3,0x08,0xe0,0x1f,0xc7,
+ 0x96,0xaa,0x81,0x8b,0x75,0xf8,0x87,0xfe,0xff,0x22,0x57,0xf8,0x6b,0xbd,0x4e,0x9a,
+ 0xaf,0x2a,0xea,0xc3,0x99,0x3f,0xb6,0xb3,0xe7,0x76,0x09,0xed,0xbc,0x55,0x47,0xeb,
+ 0x83,0x53,0xa5,0xf9,0x68,0xf4,0xeb,0x05,0x7d,0x94,0xa1,0xff,0x5d,0xd0,0x47,0xed,
+ 0x7a,0x62,0x23,0xc7,0x3f,0x61,0x50,0xe0,0xc7,0xd6,0xb4,0x2b,0x0e,0x3d,0xbf,0xb8,
+ 0x3e,0xca,0xd9,0x8d,0x37,0x0d,0x7a,0xb7,0x4b,0x4a,0x55,0x5f,0xe2,0xfd,0x71,0x83,
+ 0xb1,0x50,0x53,0xd4,0x47,0x21,0xf4,0x33,0xfb,0x3a,0x71,0x75,0x60,0x63,0x6f,0x3f,
+ 0xd7,0x47,0xd9,0xe2,0xfb,0x97,0xad,0xd1,0x87,0x8b,0xfa,0xa8,0x70,0x51,0x71,0x7d,
+ 0x70,0xc4,0x7e,0x3c,0xdc,0x5d,0xc1,0xf9,0x0e,0xaf,0xf2,0xe7,0xad,0x5e,0xc9,0xcf,
+ 0xb4,0x11,0x57,0x39,0xef,0xd8,0xfe,0x33,0xcf,0x3d,0xe1,0xb0,0xd3,0x0d,0xeb,0xa3,
+ 0xaa,0xa1,0xf3,0x6e,0x94,0xdd,0xcf,0xde,0x4c,0xfe,0x90,0xe7,0xd8,0xfe,0x13,0x54,
+ 0x28,0xd7,0x63,0x7d,0x54,0x4e,0x5b,0x1f,0x74,0x0b,0xbe,0x38,0x16,0xa4,0x14,0x0d,
+ 0xa6,0x21,0xf3,0xbb,0x99,0x42,0x58,0xc0,0x3f,0x7b,0x88,0x3f,0xc0,0xe1,0xfc,0xdb,
+ 0xf1,0xfb,0xf8,0x91,0x58,0xff,0xd3,0x4f,0x3e,0x89,0xf1,0x1e,0xc7,0x3f,0x33,0x70,
+ 0x19,0x31,0x5e,0x5d,0x31,0xb6,0x05,0xc8,0xcb,0xfe,0xd8,0x49,0x7d,0x14,0x01,0xc9,
+ 0x2f,0xcb,0xb6,0xea,0x5a,0xfc,0xb3,0x87,0x80,0x9c,0xfb,0xad,0x7f,0x53,0x60,0x0f,
+ 0xc0,0xff,0x84,0xf8,0x27,0x5e,0x54,0x71,0xa7,0x81,0xdf,0xe0,0xfc,0x4f,0xd9,0x3e,
+ 0x14,0x83,0x84,0xa2,0x65,0x10,0x8a,0x73,0xfe,0x67,0xf5,0x0c,0xa2,0x56,0x7a,0x00,
+ 0xb0,0x65,0xe6,0xfd,0x71,0xaa,0x3f,0xf6,0x8b,0x39,0x83,0x3f,0x12,0xc7,0x3f,0xfd,
+ 0x94,0xff,0x79,0xb4,0xda,0xf0,0x87,0x09,0xf8,0x63,0xb7,0x00,0xb6,0x5a,0x40,0x7f,
+ 0x5c,0x89,0xed,0x3f,0x55,0x99,0xf8,0x9f,0x51,0xf7,0x76,0x85,0xfd,0x30,0xf7,0xc7,
+ 0xdd,0x12,0x93,0x3c,0x27,0xf8,0x58,0x58,0xa3,0x3e,0x7c,0xc6,0x09,0xff,0x49,0x2e,
+ 0x8b,0x12,0xfb,0x35,0x34,0xfc,0x0f,0x71,0xa3,0xea,0x33,0xe5,0x5f,0xe0,0x7f,0x66,
+ 0x12,0xfc,0xb3,0x11,0xb0,0xc5,0xd6,0xe8,0xc3,0x0f,0x04,0x5c,0x06,0x9f,0xa6,0x0f,
+ 0xa7,0xfa,0xa8,0xea,0x13,0x3f,0x34,0x34,0xfe,0x88,0xfc,0x4f,0xac,0x86,0xaa,0x7b,
+ 0x2b,0xbf,0x85,0x0b,0xc5,0x71,0x30,0x17,0xd6,0x87,0xe7,0x8a,0x94,0xf6,0x31,0x08,
+ 0x77,0x25,0xfc,0xe3,0xe2,0xb6,0xb8,0x0d,0xf7,0xe5,0x17,0x24,0x8c,0xa0,0x35,0xfa,
+ 0x70,0xc2,0xff,0xec,0xc9,0x67,0xf2,0xc7,0x5e,0x51,0x21,0xf0,0x3f,0x19,0xfc,0x91,
+ 0x38,0xfe,0x99,0x92,0xc9,0x1f,0xbb,0xab,0x86,0xcc,0x07,0x41,0xd5,0x9c,0x08,0xaa,
+ 0xd4,0xfb,0x63,0x33,0x7d,0xd4,0x8b,0xdd,0x26,0x7d,0xb8,0xca,0xff,0x40,0xb6,0x90,
+ 0x10,0xff,0x33,0x93,0x80,0x9c,0x2a,0x4b,0x1d,0x0b,0x02,0xf1,0x3f,0x68,0x17,0xd1,
+ 0x83,0xdd,0x6f,0x3b,0xda,0xf5,0xca,0xf8,0x27,0x4a,0x5a,0xbd,0xc9,0x6f,0x5c,0xf2,
+ 0xc7,0x8e,0x6d,0x9d,0xee,0x07,0xc6,0x82,0x00,0xfd,0x71,0x58,0x1f,0x75,0x5c,0x77,
+ 0x19,0xa0,0x0f,0x77,0xa8,0x3e,0x7c,0x57,0xde,0x23,0x42,0xb5,0x8c,0xfd,0x71,0x56,
+ 0x1c,0xf4,0xa6,0xf4,0xc7,0x71,0xfc,0x63,0xd8,0x7f,0xb8,0x3f,0x76,0xe0,0xde,0x96,
+ 0xe1,0xef,0x97,0xfb,0x63,0xf7,0xf4,0xdc,0x9e,0x8b,0x40,0xce,0xd7,0xab,0x55,0x5b,
+ 0x48,0x68,0x3e,0x2c,0xc5,0x3f,0x8f,0x19,0xf1,0x0f,0xef,0x8f,0xe3,0xfa,0xf0,0xf6,
+ 0xb8,0xbf,0x29,0xd6,0x47,0xad,0x3a,0x47,0x83,0xb2,0x3c,0x1f,0x96,0xee,0x3f,0x2e,
+ 0xbd,0xff,0x3b,0xe3,0xdb,0x2e,0xd3,0xa0,0x24,0xf7,0xc7,0x05,0xe4,0xfa,0xaf,0x55,
+ 0xc9,0xeb,0x1d,0xd0,0xf4,0xc7,0x71,0xfc,0x23,0xe4,0xb3,0x35,0x91,0x4f,0xb1,0x3f,
+ 0x8e,0x2d,0x8a,0xef,0x9f,0x05,0xce,0x08,0xa1,0x68,0x02,0x9a,0xe0,0x8f,0x9d,0x23,
+ 0xf9,0xe9,0x4b,0xa6,0xe5,0xb4,0xc4,0xff,0xd0,0xfb,0x67,0xf8,0x67,0x08,0x18,0x0b,
+ 0x02,0xea,0xa3,0x08,0x9e,0x69,0x61,0x63,0xd9,0x1b,0xd5,0xf3,0x0b,0xf4,0x47,0x32,
+ 0x9c,0x77,0xa2,0x3e,0x8a,0xa4,0xe5,0x01,0x9a,0x9f,0xa5,0xb1,0x2d,0xb6,0x4e,0x1f,
+ 0xfe,0x0f,0x5b,0xfd,0x68,0x51,0x7f,0x49,0xf3,0x73,0x8c,0xbc,0x68,0x8b,0x46,0x40,
+ 0x25,0x11,0xff,0xf4,0xc9,0xab,0x7b,0x3f,0x4f,0x26,0xa6,0xbd,0x0b,0xe3,0x1f,0x15,
+ 0xed,0x08,0x41,0xec,0x0f,0x79,0x87,0xae,0x3f,0xae,0x29,0x15,0xff,0x88,0xfe,0x00,
+ 0xd3,0xc9,0xf4,0x5b,0xfa,0x49,0x43,0xb4,0xf0,0x78,0xbd,0xec,0x7e,0xea,0xf5,0xb0,
+ 0xa7,0x01,0xe0,0x7f,0x10,0x30,0x1f,0x04,0xa8,0x7f,0x65,0xf0,0x87,0x9c,0x6b,0xf2,
+ 0x47,0x2a,0x11,0xfd,0xf9,0x52,0xf9,0xfb,0xdd,0x3b,0x55,0x7d,0xb8,0xf0,0x18,0x9c,
+ 0x8f,0xa7,0x99,0xa4,0xfb,0x23,0x91,0xb4,0xec,0x8b,0xdd,0xe3,0x59,0xc6,0x76,0xab,
+ 0xf8,0x47,0x9a,0x8f,0x76,0x40,0x68,0x9c,0xe7,0xc1,0x2c,0x09,0xff,0xac,0x2d,0x38,
+ 0x0c,0xed,0x9c,0x47,0x2d,0x49,0xfc,0x73,0x18,0xf6,0x47,0xa2,0x69,0x79,0xbc,0x44,
+ 0xda,0xe2,0x88,0xe2,0x4e,0xf5,0x07,0x98,0x71,0x41,0x1c,0x6b,0xb8,0xbc,0xb4,0x41,
+ 0x68,0x8b,0x83,0xfc,0x01,0xae,0x39,0xc1,0xdb,0x4c,0x7e,0xaa,0x31,0x0a,0x90,0xfc,
+ 0x01,0x9e,0x10,0x65,0xf0,0xd0,0x7a,0xb1,0x3f,0x00,0xe3,0x7f,0xd6,0xda,0x82,0x1a,
+ 0xfc,0xa1,0x44,0x3e,0x35,0xfe,0x00,0x82,0x1b,0x24,0x5c,0x08,0xfb,0x3d,0xcd,0x87,
+ 0x25,0x34,0x48,0x0a,0xff,0x23,0xc1,0x18,0x81,0xcf,0xe9,0xcd,0xe2,0x0f,0xf9,0x45,
+ 0xe9,0x98,0x8e,0x8f,0xf2,0x59,0x06,0x7f,0x48,0x2f,0x0d,0xff,0x48,0xf3,0x61,0x47,
+ 0xd1,0x72,0x71,0x99,0x6b,0x00,0xfe,0x27,0xae,0x7f,0xd1,0xea,0x5e,0x93,0x4c,0x6b,
+ 0x98,0xf0,0x8f,0x09,0x0f,0xdc,0xf1,0x86,0xa6,0xfe,0xe5,0x01,0xf8,0x27,0x67,0x98,
+ 0x0f,0xeb,0x24,0xf0,0x8f,0x7d,0xf5,0xfe,0x90,0xc9,0xf9,0x68,0x3f,0x92,0xea,0x59,
+ 0x44,0xef,0xcd,0xf9,0x1f,0x79,0x3e,0x9a,0xd6,0x1f,0x00,0x9e,0x8f,0x96,0xc5,0x1f,
+ 0xc0,0x6e,0xd2,0xda,0x02,0x40,0xfc,0xcf,0x64,0xfd,0x01,0x3c,0xc8,0x1f,0x40,0xe9,
+ 0x6f,0xe5,0xfc,0x8f,0x30,0x1f,0x2d,0x44,0x3b,0x43,0xe9,0xfe,0x00,0xd7,0x1e,0x12,
+ 0xd8,0x8c,0xce,0x54,0xfc,0xe3,0x57,0x30,0xb5,0x06,0x9e,0x06,0xdb,0x9a,0xf6,0xfe,
+ 0x4e,0xfc,0x91,0xca,0xc4,0x0d,0x29,0xdc,0x7f,0xb6,0x73,0x5b,0x92,0xc8,0x1f,0xa9,
+ 0x0c,0xf9,0x03,0x9c,0x24,0xab,0x9b,0xa7,0xce,0x87,0x3d,0x29,0xf1,0x3f,0x72,0xfd,
+ 0xcb,0xd6,0xec,0x3f,0xe2,0x7c,0x34,0xe1,0x7c,0x99,0x40,0x47,0xe1,0xf5,0x9e,0x85,
+ 0xfc,0xb1,0x0d,0xc1,0xeb,0x3a,0x7f,0x00,0x4d,0xc0,0xf9,0x1f,0xc9,0x1f,0xe0,0x7c,
+ 0x06,0x7f,0xc8,0x9c,0x70,0xbd,0xb6,0x9f,0x4b,0xe9,0x8f,0x1b,0x20,0xe7,0x1d,0xc6,
+ 0x3f,0x3b,0xc5,0xfc,0xf8,0x49,0xfc,0xe3,0x44,0x6a,0x13,0xac,0x0f,0x1f,0x09,0xde,
+ 0xa4,0xfa,0x70,0xba,0xde,0xdd,0x97,0x56,0x47,0xbf,0x2a,0x27,0xfd,0x91,0xb0,0x09,
+ 0xf6,0xe5,0xb8,0x1f,0x50,0x68,0xeb,0x7e,0x1b,0x91,0xd1,0xb1,0x06,0xfc,0x53,0x33,
+ 0x96,0x9b,0xa4,0x3f,0xc0,0xa4,0xe6,0x83,0x68,0xf8,0x1f,0x93,0x3f,0xf6,0x26,0x1c,
+ 0xd4,0x4a,0x83,0x7a,0x27,0x8f,0x7f,0xe8,0xf3,0xc9,0xf1,0xcf,0x34,0xc3,0xf3,0x00,
+ 0xcc,0x87,0x3d,0xa2,0x7e,0x2d,0x3f,0xe8,0x35,0xf8,0xc7,0xc0,0xff,0xd0,0x1f,0xd8,
+ 0x1f,0x3b,0x83,0xfe,0xc7,0xd8,0x2f,0x2f,0xe9,0x7f,0x6c,0x99,0xed,0xb9,0x1e,0x07,
+ 0x81,0x96,0xff,0xb9,0x56,0x87,0x0f,0x61,0xfe,0xe7,0xa0,0xd6,0x9f,0x4a,0x83,0x7f,
+ 0xb8,0x3f,0x76,0x26,0x7f,0xc8,0x93,0x99,0xfc,0x01,0x24,0x7f,0x24,0x75,0xec,0x8e,
+ 0x09,0xff,0xfc,0xe4,0x20,0x47,0x3b,0x98,0xf6,0xa9,0xfe,0x44,0xf1,0x8f,0x26,0xf8,
+ 0xe4,0xfd,0xb1,0xe9,0x4f,0x46,0x7f,0x6c,0x76,0xfd,0x31,0x11,0xff,0x68,0x03,0xed,
+ 0x7c,0xd8,0x38,0x70,0x92,0x9f,0x70,0xfc,0xb3,0x87,0xf1,0x3f,0x20,0x7f,0xf2,0x8c,
+ 0x41,0xff,0x13,0xf3,0x3f,0x75,0x22,0xfe,0xb1,0x7a,0x0c,0xf3,0x41,0xa0,0x85,0xef,
+ 0x30,0xe0,0x9f,0x38,0xb1,0x55,0x52,0x3e,0xef,0x4d,0xe2,0x9f,0x87,0xeb,0xd9,0xdd,
+ 0xc6,0xf7,0x5f,0x2d,0xdc,0x7f,0x3f,0xbd,0xff,0x49,0xfb,0x23,0x31,0xfc,0xb3,0x88,
+ 0xe3,0x1f,0xc3,0x7c,0x3a,0x61,0x3e,0x2c,0xe5,0x7f,0xbc,0x88,0xcf,0x94,0x0b,0x61,
+ 0x63,0x06,0xfc,0xe3,0x02,0xfc,0xcf,0x00,0xc3,0x3f,0x6c,0x3e,0x2c,0xf3,0x47,0xda,
+ 0x68,0xb1,0xb1,0x1a,0x2c,0x78,0x99,0x06,0x03,0x37,0xd2,0xef,0x67,0xfe,0x48,0x5f,
+ 0x63,0x63,0x41,0xa6,0x31,0xd8,0xf3,0x2a,0xd3,0xff,0xb0,0xf9,0xd4,0xcc,0x1f,0xd2,
+ 0x05,0xb6,0x91,0x61,0x86,0x7f,0xf8,0xfb,0x11,0x3d,0xbf,0xd8,0x58,0xab,0xe3,0xfc,
+ 0xd8,0xfa,0x88,0xe9,0x7f,0x14,0x7f,0xc8,0xf0,0xfe,0xc9,0x6e,0xb3,0x22,0x0c,0x1e,
+ 0x49,0xdc,0x3f,0xe0,0x8f,0xc4,0xae,0x17,0xf0,0x0f,0xbb,0x9e,0xeb,0x6d,0xa8,0x3f,
+ 0x52,0xde,0x25,0x69,0x5c,0x13,0x0f,0xaa,0x96,0xf3,0xc9,0xf1,0xcf,0x16,0x8a,0x7f,
+ 0x28,0x9f,0xf3,0x34,0xb4,0xde,0x67,0xb3,0xe1,0x1f,0x76,0x3d,0xd7,0x07,0x96,0x28,
+ 0xfe,0x19,0x82,0x8e,0x39,0x83,0x3f,0x12,0x34,0x96,0x7d,0x98,0xeb,0x7f,0x14,0xfe,
+ 0x07,0x1a,0x83,0x35,0x0c,0xe0,0x9f,0xa4,0xde,0x03,0x1b,0x65,0x2b,0xf9,0x11,0xfa,
+ 0xe3,0x6a,0xb6,0x26,0xf8,0xae,0x47,0x70,0xb0,0x51,0x5e,0xaf,0xe2,0x0f,0x29,0x2c,
+ 0xf3,0x22,0xb0,0x5e,0x8e,0x7f,0x4e,0x55,0x5c,0xb1,0x27,0x76,0x24,0x68,0x9f,0x8d,
+ 0x0c,0xff,0xbc,0x13,0x57,0x54,0x85,0xfa,0xd7,0x4c,0x15,0xed,0x0c,0x06,0xf1,0xc4,
+ 0x90,0x9d,0x23,0x91,0x75,0x40,0xd5,0x31,0x6b,0x54,0xad,0x7f,0xa9,0xc7,0xd0,0x52,
+ 0x6b,0xb0,0xb8,0x2f,0xcc,0x4f,0xa5,0x41,0xff,0x43,0x82,0x87,0xc2,0x20,0xc4,0x3f,
+ 0xb1,0xf1,0x54,0x95,0x88,0x7f,0x56,0x9b,0xf1,0x0f,0x2e,0xcd,0x14,0x0e,0xe7,0xdf,
+ 0xe7,0xfa,0x1f,0x95,0xff,0x81,0xfc,0xa3,0x14,0xfe,0xa7,0x46,0xfa,0xda,0xd7,0x48,
+ 0xe1,0x95,0x52,0x1f,0xdf,0x61,0xf8,0xa7,0x14,0x3d,0x0f,0xb5,0xba,0x7e,0xc9,0xde,
+ 0x24,0xff,0x33,0x60,0x43,0xf8,0x47,0xe8,0x30,0x8d,0x2a,0xf2,0x5d,0x50,0xfd,0x4b,
+ 0x80,0x01,0x49,0xc7,0x00,0x41,0xff,0xe3,0xdc,0xac,0xa0,0x9d,0x41,0x3c,0x1f,0xa4,
+ 0x14,0x0d,0x0a,0x79,0x2a,0x0e,0xbe,0x2a,0xf9,0x03,0x18,0xf1,0x4f,0xcc,0xff,0xfc,
+ 0x33,0xcd,0x0f,0xd6,0xff,0xbc,0x17,0xc8,0xb4,0xd8,0x85,0xb8,0x22,0x86,0x27,0x86,
+ 0xbc,0xa6,0xe0,0x1f,0x57,0xf5,0x87,0x1c,0x8f,0x19,0xa1,0x51,0xce,0xa8,0x27,0xf5,
+ 0x3f,0xf3,0x12,0xeb,0x3d,0x40,0x2b,0x80,0x64,0x3e,0x1a,0xdf,0x7f,0xb6,0x60,0xfd,
+ 0xb3,0x95,0x7c,0xed,0xea,0x4e,0x30,0xd2,0x82,0xfe,0xa7,0x1e,0x83,0x9c,0xa3,0x09,
+ 0xda,0xe7,0x2d,0x3a,0x31,0x04,0xf0,0x07,0xc8,0xf2,0x3e,0xae,0xf1,0x07,0x48,0x04,
+ 0x16,0x0b,0x54,0xfc,0x53,0x6b,0xc2,0x33,0x8d,0x60,0xfd,0x2b,0xd3,0x7c,0x10,0x5a,
+ 0xff,0xaa,0x32,0xe3,0x1f,0xa9,0xfe,0x95,0x01,0xff,0x28,0xf5,0x2f,0x49,0xc6,0x73,
+ 0x38,0xae,0x10,0x75,0x33,0xa3,0xc8,0x0f,0x24,0xfe,0xe7,0x72,0x22,0x3f,0x9b,0x37,
+ 0x46,0x1d,0xf7,0x0f,0xe4,0x59,0xea,0xc4,0xfa,0x57,0x51,0x2d,0x7b,0x05,0x11,0xec,
+ 0xd9,0x69,0x79,0x45,0xf2,0x89,0x4e,0xff,0x43,0x06,0xa5,0x05,0x44,0xf6,0xb3,0x8b,
+ 0x0e,0x0a,0xb9,0x5f,0xa9,0x7f,0xe5,0x55,0xd8,0xe3,0x12,0x44,0x94,0xef,0xeb,0x30,
+ 0xfb,0x43,0x6e,0xa6,0x8e,0x07,0xec,0xfe,0x0f,0x4a,0xf5,0xaf,0x74,0xfc,0x03,0xd4,
+ 0xbf,0x12,0x69,0x6f,0x93,0x14,0xe9,0x62,0xfd,0xeb,0x60,0x92,0xf6,0x89,0xe6,0xc3,
+ 0xb6,0xc5,0x9f,0x60,0xc7,0x80,0x3a,0x4d,0xfd,0x6b,0x30,0x9a,0x4e,0xbe,0x1e,0x1b,
+ 0xfb,0x3f,0x42,0x1b,0xdb,0x7f,0x9c,0xe4,0x7f,0x58,0xfd,0x6b,0x9b,0x4c,0x83,0xe0,
+ 0xc6,0xf9,0x29,0xb8,0xe3,0x3e,0xe1,0x0f,0xd9,0xd3,0x43,0xf5,0x3f,0x16,0xa7,0x7d,
+ 0xfc,0x5f,0x05,0x5f,0x2e,0xd7,0x6d,0xcf,0x5f,0xf1,0x7e,0x13,0x5c,0xab,0xe8,0x7f,
+ 0xea,0x93,0xdb,0x38,0xf1,0x87,0x7c,0x34,0x3f,0x52,0xc2,0xc1,0x2d,0x52,0xfd,0x6b,
+ 0xd7,0x13,0xae,0x5a,0xb6,0x88,0xe6,0x5b,0x8d,0x77,0x5f,0x41,0xa7,0x77,0x44,0xa3,
+ 0x63,0x05,0x7f,0xc8,0x99,0xcc,0x1f,0x52,0xb0,0xa5,0x65,0x8c,0xf4,0x3d,0xd9,0xfc,
+ 0x21,0x0f,0x24,0xae,0x2f,0x79,0x34,0xff,0x9e,0x0d,0x9d,0x77,0xdd,0x72,0xd0,0x28,
+ 0xd7,0xbf,0x1e,0x4f,0xac,0x77,0x9c,0x4e,0x8c,0x65,0x46,0x88,0x82,0x1e,0x3b,0x77,
+ 0x08,0xdd,0x09,0x9f,0x77,0xa3,0xf9,0x11,0x4b,0xc1,0x3f,0xf3,0x0c,0xfa,0xe7,0x79,
+ 0x80,0x3f,0xa4,0x59,0xff,0x93,0x63,0x78,0x06,0xa8,0x7f,0x41,0xef,0xfb,0xbf,0x04,
+ 0xeb,0x5f,0x2e,0xfc,0x5a,0xba,0x09,0xaa,0x7f,0x61,0xfc,0xe3,0xcb,0xeb,0x3d,0x43,
+ 0xd7,0x7b,0x06,0x9d,0xcf,0xc5,0xfe,0x87,0x6c,0xff,0xd9,0x3b,0x23,0x95,0xef,0x3a,
+ 0x9d,0xa9,0xfe,0xe5,0xd5,0xae,0xcd,0x7f,0x80,0x4e,0xa3,0xd6,0x4c,0xfc,0x0f,0x5a,
+ 0x5c,0x76,0xfa,0x76,0xe2,0x8d,0xa2,0xb1,0xa4,0xf2,0x3f,0xb9,0x58,0xe6,0x2d,0x09,
+ 0xed,0x50,0x95,0x17,0xa6,0xa5,0x1b,0x1d,0x4c,0xe5,0x7f,0x48,0xe0,0x84,0x69,0xb4,
+ 0xee,0x45,0x8b,0x64,0xfe,0xc7,0x07,0x9e,0x9f,0x28,0xc0,0x0e,0x36,0x83,0xe8,0x39,
+ 0xef,0x0b,0xf8,0x93,0x4c,0xf3,0xd1,0x42,0x84,0xec,0x5d,0x2e,0x5e,0xa7,0xab,0x7f,
+ 0x4d,0x95,0xbe,0x7f,0x29,0xaa,0x7b,0x38,0x3c,0x1f,0x2f,0xb9,0x4b,0x15,0xfe,0x07,
+ 0x9c,0x2f,0xb3,0x0c,0x07,0x7f,0x8a,0x8e,0x0f,0x2d,0x87,0xea,0x5f,0xea,0xf3,0xe0,
+ 0xa1,0x6a,0xdb,0xaa,0x40,0xff,0xe1,0x37,0x65,0xe3,0x7f,0x16,0xbe,0x5e,0xfd,0x72,
+ 0xd5,0x1f,0xa1,0xc7,0x00,0xfe,0x87,0xc0,0x1e,0x6b,0x90,0x07,0x97,0x50,0x4b,0xae,
+ 0xce,0xcb,0xa3,0xdc,0x25,0xb4,0x22,0x9d,0xff,0x61,0xfd,0x5f,0x17,0xd1,0x84,0x7b,
+ 0x9d,0x66,0x3e,0x9a,0xd0,0x1f,0x87,0x3f,0x59,0x89,0xf3,0xdf,0x8c,0x47,0xcf,0x97,
+ 0x0b,0x2b,0xaa,0x17,0x65,0xe0,0x7f,0x1c,0xac,0x28,0x38,0x8a,0xf6,0x61,0x85,0xe1,
+ 0x52,0x68,0x3e,0x9a,0xb4,0xde,0x25,0x5e,0xd5,0xb0,0xf5,0x05,0x0f,0x57,0xc4,0x9c,
+ 0x2e,0xab,0x25,0xe1,0x8f,0x2d,0xe5,0x33,0x1a,0x3b,0xb8,0x15,0x3b,0xd2,0x57,0x21,
+ 0x6c,0x9d,0xed,0xb4,0x58,0x0d,0xd0,0x7c,0xb4,0x04,0xed,0x53,0xeb,0x85,0xff,0xbf,
+ 0x57,0xd0,0x72,0x3c,0x3a,0xa4,0x0d,0xe6,0x7f,0xba,0xe4,0x83,0xa9,0x7a,0x14,0x8d,
+ 0xfa,0x6d,0x99,0xf8,0x1f,0x3f,0x52,0xfc,0x2e,0x40,0x1f,0xee,0x6d,0xcc,0xc4,0xff,
+ 0x04,0xcd,0x7e,0x3c,0xb1,0xa2,0xb3,0x31,0x1b,0xff,0xb3,0xc8,0xaf,0x1c,0xb2,0x96,
+ 0x55,0x44,0x13,0x4e,0xe1,0xfa,0x57,0x87,0x54,0x06,0x5a,0xe2,0x3b,0x43,0xd6,0x74,
+ 0x74,0xa4,0x69,0x8b,0xa1,0xfe,0x25,0x9d,0xbf,0x35,0x41,0xbe,0xc5,0x1e,0xf3,0xda,
+ 0xf4,0xfe,0xd8,0x42,0x80,0x0b,0x61,0x0d,0xbd,0x23,0xc5,0x89,0xa6,0xc7,0xd6,0xa5,
+ 0xd5,0xbf,0xa6,0x2e,0x88,0x11,0xd1,0x4b,0xf9,0x97,0xfc,0xcb,0xa8,0xf5,0x46,0xec,
+ 0x8f,0xa4,0x9b,0x0f,0x8b,0x83,0x7c,0x67,0x5c,0x08,0xdb,0x89,0x3f,0x71,0x1a,0xb5,
+ 0xfc,0x0f,0x09,0xfa,0x70,0x23,0x98,0xd3,0xec,0xf7,0x36,0x58,0xfd,0xc1,0x11,0xd7,
+ 0x4b,0xaf,0x7f,0x6d,0x16,0x11,0x51,0x63,0xaa,0x3f,0xb6,0xc5,0x10,0x0e,0x76,0xfc,
+ 0x3e,0x9a,0x99,0xff,0x79,0x10,0x07,0x4e,0x7b,0x47,0x5d,0x8a,0x3f,0xb6,0x55,0x8e,
+ 0x15,0xe9,0x3d,0x79,0x0f,0x95,0x36,0x2e,0x45,0xcd,0x1a,0xfd,0x0f,0xc5,0x3f,0x53,
+ 0x48,0x30,0x6c,0xb5,0xa1,0x7f,0x0c,0x7e,0x55,0x74,0xca,0x46,0x7f,0xec,0xc3,0x0d,
+ 0x83,0x05,0x1c,0xcc,0xfa,0x92,0x55,0xeb,0x77,0x97,0xbc,0x6d,0x95,0x9e,0xec,0x8f,
+ 0xed,0x68,0x68,0xdb,0xb1,0xaa,0x36,0xf4,0x13,0xb4,0x70,0x53,0x65,0xa7,0xc6,0x1f,
+ 0x5b,0x01,0x42,0xd8,0xbf,0xb1,0xb5,0xb3,0x66,0x0b,0x30,0x1f,0x16,0x38,0xdf,0x5b,
+ 0xf2,0xc3,0x16,0x56,0xd0,0xd5,0x16,0x13,0xf3,0x61,0x27,0x82,0xb9,0xd2,0xf9,0x15,
+ 0x0b,0xa1,0xeb,0x86,0xf3,0xed,0x21,0xfe,0x69,0x2d,0x17,0x86,0xf3,0x48,0xe5,0x7f,
+ 0xd4,0xfb,0x1f,0xb5,0x56,0xf8,0x77,0xa3,0x3f,0x2b,0x39,0x9d,0xd6,0x22,0x09,0xff,
+ 0x1c,0x80,0xaf,0xef,0xb4,0x6e,0x43,0xd8,0x61,0x29,0xbc,0x1e,0x81,0xfe,0xd8,0x34,
+ 0xc0,0x78,0xb2,0x79,0x2c,0x0c,0xd6,0xa1,0x1d,0x41,0x53,0xc9,0xf1,0x2c,0x47,0xf2,
+ 0xc7,0x96,0xe6,0xdd,0x57,0x93,0xf9,0x17,0xe5,0x10,0xff,0xff,0xcd,0xce,0x81,0x9e,
+ 0x46,0xbc,0xff,0x2c,0x4a,0xe7,0x7f,0xfa,0x31,0xde,0x0e,0xde,0xf5,0xdb,0xfb,0xe6,
+ 0x16,0xf3,0x5a,0x7f,0x6c,0x12,0xfc,0x17,0x16,0x42,0x0f,0x75,0x2f,0x0b,0xf1,0xd5,
+ 0xb7,0x0f,0x16,0xca,0xf3,0xb5,0xfe,0xd8,0x24,0xb8,0x17,0x07,0x7d,0xd6,0xc2,0xe0,
+ 0xde,0xf2,0xf2,0x3e,0xa7,0x98,0x3a,0x1f,0xed,0x21,0x6f,0x71,0x69,0x56,0x93,0x55,
+ 0x08,0x7a,0x77,0xec,0x1f,0xc2,0xd7,0x9b,0xf8,0x1f,0x6b,0x84,0xbf,0x9f,0xee,0x08,
+ 0xf7,0xe7,0x26,0x4f,0x9d,0x0f,0x22,0xae,0x37,0xbc,0xfe,0x15,0x1c,0x14,0xf3,0xd8,
+ 0x3f,0xf3,0xb1,0x52,0xa1,0x68,0xe4,0x7f,0x46,0xa7,0x8e,0x87,0xfb,0xc9,0xaa,0xd2,
+ 0x54,0xfc,0xc9,0x65,0x74,0x57,0xa9,0xae,0xd3,0x5c,0xff,0x9a,0xac,0x3f,0xf6,0xe4,
+ 0xea,0x5f,0xa2,0x4d,0xf1,0x6e,0xfa,0x7e,0x91,0x45,0xff,0x33,0x8b,0x37,0x52,0x21,
+ 0x65,0x3e,0x1a,0xcf,0x8f,0x40,0xd4,0xac,0xe1,0xfa,0xe7,0xdf,0xcf,0x7c,0xd8,0xa4,
+ 0x2d,0x79,0x5a,0xfd,0xeb,0xb5,0x74,0xfd,0xb3,0x84,0x7f,0x92,0x36,0x86,0xda,0xfa,
+ 0xd7,0x37,0x30,0x0c,0xb8,0x42,0xd9,0x8f,0x94,0xfa,0x17,0x1f,0x0b,0xfb,0x54,0x06,
+ 0xfd,0xf3,0xb5,0xd8,0x1f,0x52,0x86,0x3d,0x9f,0x66,0xfd,0x4b,0x87,0x7f,0x0c,0xf5,
+ 0xaf,0x0c,0xf5,0x44,0x70,0x3e,0xac,0xa1,0xff,0xeb,0xb3,0x50,0xff,0x5a,0xff,0xe9,
+ 0xce,0x87,0x05,0x96,0x39,0x3f,0x65,0x3e,0xc8,0xa4,0xf4,0xcf,0xf8,0xb7,0x49,0x22,
+ 0x28,0x5b,0xff,0xbb,0x1a,0x20,0x59,0xff,0x43,0xfd,0x21,0xdd,0xfb,0xc4,0x65,0x56,
+ 0x4a,0xeb,0x9d,0x94,0xfe,0x27,0xc1,0xff,0xbc,0x22,0xf4,0xbb,0xc1,0xf7,0xff,0x69,
+ 0xcc,0x07,0xc9,0x3e,0x1f,0x76,0x32,0xfa,0x1f,0x70,0x3e,0x08,0xa0,0x7f,0xa6,0xdf,
+ 0xaf,0xe0,0x9f,0xa9,0x4a,0xa0,0x9d,0x8f,0x96,0x0c,0xe2,0xc6,0xf0,0x93,0x75,0xca,
+ 0x7c,0x90,0xbe,0xf8,0xb4,0xf2,0xff,0x37,0xd2,0xff,0xcc,0x27,0xfe,0x90,0x63,0x77,
+ 0xe0,0x89,0x57,0xed,0xea,0x7c,0x10,0xd2,0xff,0x45,0xf4,0x3f,0xdb,0xa8,0xfe,0x99,
+ 0x04,0xc3,0x2a,0xff,0xe3,0xb1,0xd5,0xf1,0xeb,0x23,0xfd,0xb3,0x43,0x02,0x78,0x3e,
+ 0x08,0x7e,0x8d,0x85,0xf3,0x99,0x9c,0x0f,0xb2,0x98,0x2e,0x53,0xa3,0xff,0x81,0xe6,
+ 0x83,0x98,0xf6,0xdb,0x34,0xfc,0x43,0x82,0x13,0x2a,0xff,0x03,0xe3,0x9f,0x38,0x20,
+ 0xe7,0x6f,0x5e,0x3b,0x1f,0x36,0x8b,0xfe,0x07,0xe3,0x1f,0x2f,0xce,0x46,0x20,0xf4,
+ 0x7f,0xf1,0xfc,0x3c,0xf3,0x10,0x30,0x1f,0x8d,0x57,0x73,0xe8,0x32,0x07,0xe8,0x1b,
+ 0xf7,0x80,0x52,0xff,0xba,0xe4,0xde,0x45,0xd5,0x3e,0x7c,0xbd,0x43,0x62,0x23,0xb3,
+ 0x99,0xff,0x19,0x0f,0x26,0x16,0xb4,0x0e,0x14,0xba,0xf2,0xed,0xe1,0x1b,0x52,0x2b,
+ 0xfe,0x86,0x16,0x5e,0xff,0x02,0xf0,0xcf,0x3b,0xe8,0x78,0x5f,0xe3,0x36,0x3c,0x31,
+ 0xd6,0xe9,0x0d,0x1e,0x7e,0xb4,0xfa,0x5f,0x2d,0x8f,0xd7,0xbf,0x00,0xfd,0x4f,0xbf,
+ 0x1f,0x3e,0x18,0x78,0x10,0x61,0x33,0xea,0x0d,0x9f,0x90,0xf5,0x2d,0x96,0x65,0x9a,
+ 0x0f,0x12,0xa5,0xbd,0x11,0x85,0xdf,0x1f,0x5e,0xbf,0xab,0xb1,0x54,0x7d,0xa4,0xa3,
+ 0x85,0xed,0x27,0xff,0xd7,0xde,0xd5,0x07,0xd7,0x55,0x5c,0xf7,0xb3,0xf7,0xed,0x95,
+ 0xaf,0xa4,0x27,0xeb,0x3e,0xe9,0x3d,0xfb,0xc1,0x18,0xb8,0x92,0x0d,0x68,0x88,0x21,
+ 0x4f,0xc2,0x80,0x83,0x29,0xba,0x7a,0xfa,0xb0,0xfc,0x01,0x7e,0xd8,0xb2,0x51,0xa9,
+ 0xa6,0x73,0xcd,0xb8,0x0c,0x9d,0x71,0x33,0xb6,0x3b,0x0d,0x74,0x9a,0xc2,0x7d,0x92,
+ 0x30,0x9a,0x40,0xca,0xab,0xe3,0x0e,0x62,0x86,0x19,0x5e,0x52,0x4f,0xca,0x4c,0x68,
+ 0x47,0x40,0x08,0xce,0x40,0xe2,0x27,0x23,0x1b,0x07,0x13,0xaa,0x52,0x27,0xf1,0x50,
+ 0x0f,0xb6,0x3b,0x2e,0xe3,0xb4,0x06,0x9c,0xc1,0x09,0x76,0xc0,0xb8,0x67,0x77,0xef,
+ 0xc7,0xde,0xf7,0x25,0x19,0x02,0xed,0x24,0xf7,0xfc,0xe3,0xdf,0xec,0x5b,0x5d,0xef,
+ 0xdd,0xbb,0x7b,0xf6,0xb7,0x67,0xf7,0x9c,0x53,0xc2,0x7f,0x38,0xf8,0x00,0x52,0x85,
+ 0xc5,0xec,0x46,0xfd,0x2b,0x76,0x87,0xb9,0x66,0x77,0xbd,0x5e,0xea,0xff,0x15,0x18,
+ 0x0f,0xe7,0x61,0x0f,0x03,0x9f,0xd8,0x17,0xd8,0x7a,0xd7,0x56,0xe6,0xfc,0xcb,0x35,
+ 0xfb,0x30,0x70,0x82,0x5b,0xe4,0xa2,0xe2,0xc6,0x7e,0x87,0xb9,0xf8,0xd9,0xfa,0x54,
+ 0xa5,0xfb,0x3f,0xee,0xfd,0x67,0xe4,0xc3,0x1a,0xe3,0xb7,0x2f,0xa9,0xad,0x47,0xf0,
+ 0x45,0x3a,0x2a,0xd9,0x7f,0x9c,0xf9,0xf2,0x1c,0xf0,0xc0,0xce,0x94,0x97,0x20,0x48,
+ 0x79,0xfa,0xe7,0x98,0x6c,0xff,0xd9,0xe3,0x1e,0x0c,0x7d,0xdf,0x5e,0x6c,0x69,0x5f,
+ 0x57,0x2e,0x67,0x25,0x79,0x6d,0xb3,0x92,0x2c,0xc7,0x7f,0xb8,0xd9,0x87,0x81,0x29,
+ 0x56,0x62,0x47,0x53,0x11,0xfc,0xc9,0x4c,0x15,0x10,0x5c,0x5a,0xc9,0xfe,0xb3,0xc7,
+ 0xeb,0x28,0xf8,0xf2,0x34,0x8b,0x9f,0xa0,0xef,0x99,0x81,0xff,0x3c,0xb6,0x3b,0xf2,
+ 0x2f,0xf0,0x1a,0x76,0x54,0x54,0xe8,0xab,0x0e,0xb3,0x71,0x3c,0x52,0xe7,0xfb,0x7f,
+ 0x95,0xf0,0x1f,0x76,0xec,0x35,0xca,0xb6,0x51,0x8e,0x86,0xb1,0xeb,0x4d,0xe5,0x66,
+ 0x29,0xde,0x45,0x31,0xff,0x39,0xab,0x6c,0x87,0x11,0xdb,0xe0,0x19,0x63,0xd9,0xfb,
+ 0x5a,0xf5,0x49,0x69,0xff,0x85,0xfc,0x47,0x2f,0x1e,0x6f,0x51,0x65,0x04,0xf2,0x53,
+ 0x6d,0x29,0xe5,0x0d,0x78,0x3e,0x63,0x1c,0xab,0x4f,0xd6,0x35,0x49,0xf1,0xb1,0x4b,
+ 0xf9,0xcf,0xd3,0xf0,0x06,0xb4,0x4f,0xe0,0xb6,0xe2,0xb7,0xf0,0x89,0xfd,0x7c,0xbe,
+ 0xf1,0xbf,0x23,0x4b,0x67,0xe6,0x3f,0x1a,0x03,0xe6,0x59,0xf8,0x31,0x9d,0x05,0xff,
+ 0xf9,0x15,0x1b,0x36,0x08,0xe8,0x4f,0xb4,0x94,0x19,0x9d,0x89,0xff,0xfc,0x17,0xfc,
+ 0x30,0xdd,0x9a,0xd1,0x72,0xfc,0xbe,0xca,0x77,0xcc,0xb6,0x9d,0x33,0xf1,0x1f,0xe3,
+ 0x25,0xad,0x35,0xbd,0x72,0x9c,0x1f,0xdc,0xb4,0x9a,0x5a,0x6e,0x78,0x06,0xfe,0xb3,
+ 0xeb,0xd9,0x36,0x63,0x65,0x9d,0x8e,0xf5,0xb3,0x00,0x2b,0xb5,0xa6,0xe1,0x19,0xf8,
+ 0x8f,0x7d,0xd6,0xe8,0xd0,0xe6,0xb2,0x92,0x03,0xd0,0xa1,0xad,0x1e,0x96,0xfd,0xbf,
+ 0xca,0xf0,0x9f,0x33,0x6c,0x7e,0x99,0x0d,0xd3,0xcd,0x67,0x94,0x5f,0xb3,0xd4,0x8d,
+ 0xd3,0x33,0xdd,0x7f,0x36,0xce,0xb5,0x75,0xb0,0x8c,0x90,0xbc,0xa3,0x56,0x46,0x77,
+ 0x8c,0x54,0xe5,0x3f,0xf8,0x45,0x76,0x9b,0xad,0x6e,0xa2,0xd8,0x6b,0x74,0x6d,0x2a,
+ 0x10,0xff,0xa7,0x84,0xdd,0xa5,0xa7,0xe0,0x05,0xbb,0x25,0xa3,0x65,0x9a,0x0e,0xc1,
+ 0x1e,0xf8,0xb6,0xa5,0x0d,0xca,0xf1,0xb1,0x03,0xfc,0x47,0x11,0xf1,0x97,0xcc,0x1f,
+ 0xd1,0x85,0x66,0xdb,0x9b,0xca,0x19,0xfb,0x47,0xc6,0x97,0x98,0xa1,0xec,0x9d,0xaa,
+ 0xe7,0x5f,0xef,0xc0,0xb9,0xc2,0x73,0xe9,0x28,0x03,0xbf,0xd2,0x3a,0x32,0x8b,0x77,
+ 0x4a,0xfc,0xa7,0x5c,0xfc,0x1f,0xac,0x6f,0xdc,0xc2,0x1c,0xe1,0xdf,0x29,0x3d,0xff,
+ 0x2a,0xe1,0x3f,0x73,0xdc,0xc0,0x0b,0xc2,0x11,0xde,0x4c,0xc1,0x9a,0x82,0x14,0x3f,
+ 0xb9,0x84,0xff,0xc8,0xfe,0x5f,0xbf,0x44,0xd0,0xca,0x40,0xdd,0x4c,0xfc,0x47,0x44,
+ 0x2c,0xf9,0xa9,0xcd,0xf4,0xcf,0x2a,0x03,0xeb,0xbb,0xe3,0xad,0x84,0xff,0x3c,0xc2,
+ 0xc0,0x0b,0xc2,0x1e,0x72,0x84,0xf5,0x27,0xd4,0xdf,0xab,0xb4,0x79,0xf5,0xcb,0xd8,
+ 0x7f,0x22,0x6f,0xc1,0x6f,0xec,0x3f,0xca,0x37,0x0e,0xf2,0x92,0x76,0x16,0x88,0xec,
+ 0x1a,0xdf,0xff,0xab,0x0c,0xff,0x39,0xc9,0x5e,0xdc,0x8e,0xd8,0xac,0x84,0x62,0x57,
+ 0x54,0xca,0x8f,0xe6,0x80,0x6e,0x76,0xfe,0x75,0xfd,0x71,0x2c,0xb9,0x14,0xf6,0x31,
+ 0x46,0x74,0x32,0x52,0xb0,0x03,0xfc,0xa7,0x84,0xb6,0x3d,0xc4,0x88,0x8d,0x85,0x6a,
+ 0x13,0x01,0x20,0x08,0xf8,0xbf,0x97,0xd4,0x3f,0x0c,0xdf,0x61,0x6a,0x6a,0x5a,0x19,
+ 0x34,0xf8,0x1f,0xde,0x5f,0x99,0xff,0xf0,0x40,0x1c,0x27,0xc1,0xb6,0x21,0x5f,0xaf,
+ 0x31,0xfb,0xcf,0x31,0x43,0xaf,0x5f,0x52,0x3e,0x3f,0x9a,0x7c,0x7f,0x20,0x8f,0x6a,
+ 0x73,0xf7,0xc8,0x3d,0xf0,0xda,0x81,0x8e,0x63,0xf8,0xe9,0x25,0xff,0xaf,0x32,0xfc,
+ 0xe7,0x3d,0x1c,0x36,0x2f,0xf7,0x34,0xe6,0x57,0xed,0x42,0x0d,0x76,0x8b,0x71,0x05,
+ 0x48,0xfe,0x5f,0xc8,0x7f,0x92,0xa5,0xb7,0x3b,0xde,0x86,0x4e,0x35,0x3a,0xdd,0x7a,
+ 0x06,0x15,0xdd,0xf5,0x7b,0xa3,0xff,0x36,0x02,0x9e,0xff,0x97,0x5d,0x86,0xff,0x9c,
+ 0x04,0x76,0xbe,0x8c,0xf3,0x6b,0x0a,0x86,0xd9,0x42,0x9c,0x53,0x8c,0x99,0xec,0x3f,
+ 0x2c,0x50,0xff,0x84,0xf2,0x9f,0x74,0x0c,0x57,0x40,0x96,0xca,0x79,0x06,0xfb,0x0f,
+ 0xbb,0x86,0xd7,0x66,0x60,0x37,0x8e,0xd9,0x79,0x68,0x83,0x3a,0xa5,0x9a,0xfd,0x47,
+ 0xa4,0x2d,0x80,0xd5,0xb9,0xc8,0x31,0x7a,0x80,0x2d,0x34,0xb9,0x08,0x54,0xb3,0xff,
+ 0x44,0xce,0xc2,0xc7,0xa4,0x13,0xd6,0x98,0x91,0xd3,0xf0,0x31,0xed,0x84,0xc7,0xa6,
+ 0x67,0xef,0xff,0xf5,0xaf,0x17,0x69,0xff,0xf9,0xde,0x45,0xdd,0x7f,0xf6,0x0c,0x5f,
+ 0x55,0xce,0xbf,0x6a,0xcb,0x9d,0x27,0xce,0xfa,0xfe,0x33,0x0b,0xbd,0xbe,0x66,0xa2,
+ 0x7b,0x36,0xfe,0x5f,0x0e,0xf8,0x72,0x15,0xfb,0x4f,0x45,0x50,0x64,0xff,0xa1,0x33,
+ 0xdf,0x7f,0x76,0xc7,0x43,0xd5,0xfb,0xcf,0xa7,0x3e,0xcd,0xfd,0xe7,0x93,0x95,0xec,
+ 0x3f,0xa5,0x66,0x1f,0x0e,0x0e,0x54,0x38,0xff,0x2a,0x8a,0x0f,0x30,0xf5,0xd4,0x69,
+ 0xfe,0xbe,0xff,0x3f,0xed,0x3f,0xbe,0xff,0xd7,0x17,0x68,0xff,0xa1,0x9f,0xb7,0xfd,
+ 0xe7,0x2b,0x17,0x7d,0xff,0xf9,0x1a,0x0e,0xc8,0xe7,0x66,0xff,0xa9,0x90,0x18,0xb7,
+ 0xd8,0xff,0xeb,0x22,0xec,0x3f,0xb3,0xca,0xaf,0x5a,0xc9,0xff,0x6b,0x66,0xff,0xf7,
+ 0xb2,0xf9,0x61,0x83,0xe0,0x91,0x80,0xfd,0x47,0x2d,0x63,0xff,0x29,0xed,0xcf,0x40,
+ 0xfc,0x9f,0x32,0xcd,0x26,0xc1,0x44,0x78,0x92,0xfd,0x67,0x76,0xfe,0x5f,0x3e,0xff,
+ 0x81,0x8b,0xb4,0xff,0x54,0xf1,0xff,0x2a,0x1b,0xff,0x30,0x51,0x45,0xff,0xf8,0xf6,
+ 0x1f,0xef,0xfe,0x73,0x59,0xff,0xaf,0x2a,0xf1,0x7f,0xda,0xca,0xf0,0x1f,0x19,0xf0,
+ 0x8c,0x21,0xcd,0xb3,0xb3,0xff,0x2c,0x2c,0xe7,0xff,0x95,0xa8,0xba,0x7e,0x39,0xf6,
+ 0x1f,0xc9,0xff,0xeb,0x12,0x49,0xff,0x7c,0xe8,0x37,0x7b,0x31,0xb7,0x08,0x31,0x50,
+ 0xc6,0xfe,0x53,0xf5,0x7d,0x99,0xfd,0xc7,0xcf,0x3f,0x68,0xd1,0x6a,0xfa,0xc7,0x75,
+ 0xcd,0xa8,0xe0,0xff,0x55,0x16,0x4c,0x3e,0x26,0xc7,0xff,0x91,0xf9,0x0f,0x09,0x1c,
+ 0x9c,0x3d,0x25,0xfd,0xe1,0x89,0xf2,0xf6,0x9f,0xf7,0x45,0x76,0xf8,0x59,0xfb,0x7f,
+ 0x7d,0x54,0x1a,0xd8,0xa7,0xaa,0xff,0x57,0x00,0xd4,0x4d,0xf0,0x08,0x36,0x5f,0x2d,
+ 0xe7,0xff,0xb5,0xb9,0xe2,0x78,0x23,0x9b,0xdf,0xaa,0x4f,0xb5,0x96,0xf8,0x7f,0xb9,
+ 0xf6,0x9f,0x9b,0xa5,0xf3,0x3e,0x04,0x06,0x82,0xc3,0xe5,0xfc,0xbf,0xf8,0xdb,0xd1,
+ 0x40,0x3e,0xb8,0x35,0xd2,0x89,0x86,0xc4,0x7f,0xbe,0x29,0x46,0x4b,0xd9,0xb0,0x87,
+ 0xc8,0x7f,0x0a,0x45,0xf7,0x7f,0x0a,0x10,0xa4,0x3d,0xc7,0x05,0xd8,0x2e,0x2e,0x42,
+ 0xeb,0x8f,0x40,0x6b,0x90,0xff,0x9c,0x64,0xf1,0x0f,0x69,0xa5,0xf5,0x3d,0x3f,0x62,
+ 0x18,0xc2,0xbe,0xea,0x8e,0x1f,0x37,0xfe,0x8f,0x14,0x2d,0xb9,0x49,0x32,0x04,0x8d,
+ 0x10,0x66,0x51,0x49,0x9f,0xf5,0xf4,0x89,0x4a,0xc5,0xf8,0x99,0x5b,0x6e,0x9a,0xbc,
+ 0x01,0x07,0x29,0xb7,0xd8,0x94,0x8f,0xff,0x6c,0x14,0x0f,0x83,0x4f,0xd2,0x6e,0xff,
+ 0xf8,0xfe,0x5f,0x5e,0xbc,0xcd,0x66,0x7f,0xe0,0xe9,0x5e,0xa2,0xd8,0x83,0xd0,0x31,
+ 0x89,0xfc,0x4a,0x8a,0xff,0x13,0xf7,0xf8,0xf0,0xbb,0x65,0x0c,0x41,0xd8,0x3f,0x93,
+ 0x41,0xff,0xaf,0x32,0x7c,0xf8,0x75,0x70,0x33,0xbc,0x93,0x11,0xe1,0x41,0x29,0xc5,
+ 0xff,0x91,0xf2,0xc3,0x1a,0x5e,0xfc,0x67,0xc7,0x10,0xf4,0x0b,0xed,0xe1,0x42,0x4b,
+ 0xf0,0xfc,0xeb,0x5e,0xe0,0xfc,0x67,0xca,0xa7,0x3d,0x37,0x63,0xb7,0x7c,0x04,0x4e,
+ 0xc6,0xb4,0x83,0x34,0x55,0x74,0xfe,0x15,0xaf,0x36,0x1f,0xcd,0x8f,0x74,0x71,0x9e,
+ 0xe8,0xc7,0x3f,0x8c,0x56,0xa9,0xff,0x1e,0x1c,0x1c,0xe6,0xfd,0xef,0xc7,0x77,0x3a,
+ 0x50,0xac,0x4f,0x56,0x6d,0xf1,0xfd,0x4f,0x0f,0xf1,0xf3,0xf4,0x0a,0xf1,0x9f,0xcb,
+ 0xf2,0x9f,0x87,0xc5,0x8b,0x4b,0xf1,0x9f,0x83,0xf7,0x0f,0x8b,0xe3,0xb9,0x8d,0x08,
+ 0x0b,0x9b,0xcf,0x7f,0x0a,0xea,0xd3,0x7a,0x65,0xfe,0x83,0x03,0xf3,0xb9,0x2a,0xf1,
+ 0x0f,0x4b,0x80,0x56,0xca,0x7f,0xfc,0xf5,0xee,0x1d,0x9b,0x81,0x86,0x19,0xf8,0x4f,
+ 0x7c,0x91,0xeb,0xed,0xfe,0x0e,0x07,0x22,0xfe,0x1e,0x15,0x86,0x20,0xbb,0x6a,0x7e,
+ 0x58,0x0e,0x6a,0xa5,0xfa,0xf8,0x84,0xe1,0x62,0xff,0x2f,0x08,0xf0,0x1f,0x7c,0xbe,
+ 0xb8,0xff,0xb3,0xd9,0x29,0xc9,0x16,0xf9,0x7f,0x0d,0x82,0xcb,0x7f,0x9a,0xc5,0x6b,
+ 0x36,0x48,0xef,0x5b,0xd0,0x4e,0x97,0xc4,0x7f,0xae,0xc6,0x67,0xce,0xec,0x72,0x3c,
+ 0xe2,0xcb,0xda,0x7f,0x44,0x36,0xd8,0x35,0xfe,0xb5,0xf0,0xc8,0xaf,0xe1,0xa7,0xc5,
+ 0xe7,0x5f,0xd5,0xf3,0xc3,0x6a,0x63,0xc5,0xfc,0xe7,0x5e,0x28,0xba,0xff,0xfc,0x27,
+ 0x7a,0x93,0xec,0xff,0xd5,0x56,0x14,0xff,0x67,0x77,0xf9,0xfc,0xb0,0xa2,0x3f,0x4f,
+ 0x8c,0x09,0xff,0xaf,0xb4,0x14,0xff,0xb9,0x3c,0xff,0xf1,0xfc,0xd7,0x04,0x11,0x92,
+ 0xe2,0x1f,0xc2,0x2e,0xea,0x57,0x53,0x8a,0x68,0x9e,0xe2,0xda,0x7f,0xfc,0xf8,0x87,
+ 0xd2,0x78,0x33,0x9c,0xc4,0x7c,0xd2,0xc0,0x3b,0x50,0xec,0xff,0x25,0xe5,0x87,0xfd,
+ 0xc8,0xf6,0x69,0x0f,0xbd,0x4e,0xf8,0x7f,0xfd,0x5d,0x31,0xff,0x91,0xf6,0xe3,0x05,
+ 0x0e,0xe4,0xf8,0xab,0xa7,0x94,0x11,0xa1,0xba,0x0f,0x7a,0xe3,0x81,0xf8,0x41,0xda,
+ 0xa7,0x75,0x31,0x7f,0x95,0x23,0xfa,0x8b,0xe4,0x2f,0x84,0x61,0x64,0xbb,0xe3,0xff,
+ 0xe5,0x3e,0x1e,0xb4,0x31,0x8f,0xff,0x88,0xfc,0xb0,0x73,0x25,0xfe,0xf3,0x1b,0x78,
+ 0x55,0x80,0x83,0xde,0xfd,0xe7,0x36,0x5f,0xff,0xc8,0xf9,0x40,0x15,0x67,0x59,0x77,
+ 0xf9,0xcf,0x76,0xf7,0x7d,0xcd,0x47,0x7f,0xdc,0xef,0xac,0x56,0x6f,0xc1,0xfb,0xa3,
+ 0x08,0xce,0xb1,0x40,0xbe,0x3b,0x44,0xc6,0x34,0xb8,0x30,0xca,0x7f,0x0a,0xe4,0x87,
+ 0xf5,0xb4,0x8d,0xc8,0xef,0x76,0x33,0x8b,0xff,0x9c,0x17,0x86,0x1d,0xeb,0x07,0xce,
+ 0xfd,0x67,0xcf,0xfe,0x93,0x87,0x27,0x75,0xf7,0x7d,0xbd,0x8b,0x40,0xa6,0xe3,0xf6,
+ 0x7e,0xa8,0xd4,0xff,0x4b,0x8a,0x7f,0x38,0xc5,0x77,0xf7,0x07,0x27,0x7c,0x45,0x34,
+ 0xc5,0x23,0xfa,0x06,0xf8,0x8f,0xa6,0x3e,0x43,0xbd,0xf7,0xfd,0x5e,0xa9,0x61,0x87,
+ 0x3e,0x50,0x68,0x0c,0xc4,0x7f,0x26,0x5e,0x3c,0xde,0xe3,0x3e,0x11,0x72,0x0d,0x23,
+ 0xf1,0xb3,0xee,0xa3,0xdc,0xfa,0xc4,0x5f,0xef,0x4e,0xf3,0xb4,0x68,0x8d,0xa7,0x95,
+ 0xaf,0x53,0x56,0x12,0x3d,0x1d,0xb9,0x80,0x0b,0xfd,0xf5,0x85,0x40,0xfc,0x9f,0xc9,
+ 0xb8,0xe7,0xbf,0x33,0xe9,0xde,0xdf,0x10,0x2b,0x5a,0x03,0xae,0x5f,0xda,0x4b,0xb9,
+ 0x56,0xe1,0xff,0xe5,0x7e,0x2f,0x1b,0x16,0xc3,0x32,0x85,0xb3,0x9d,0x93,0xc1,0xb4,
+ 0x68,0x3c,0x70,0xf1,0x0f,0xc5,0xc2,0x17,0xe0,0x3f,0x9a,0xc3,0x7f,0x9c,0xfc,0xb0,
+ 0x3f,0x50,0xbe,0x39,0xfa,0xbc,0xc1,0xdd,0xa0,0x0e,0x68,0x13,0x90,0x2f,0xac,0x4a,
+ 0x35,0x49,0xfc,0x07,0x36,0xfb,0xe3,0x81,0xe7,0xcf,0x7d,0x39,0xf2,0x3e,0x7c,0xf4,
+ 0xf4,0xad,0x4e,0xa0,0x48,0x45,0xac,0xef,0x1e,0xff,0xc9,0xfa,0xf7,0x9f,0x4f,0x13,
+ 0x0e,0x5e,0x8e,0x3c,0xe8,0x84,0xed,0x65,0x1e,0xdf,0xb4,0x4c,0xfc,0x9f,0xa3,0xf6,
+ 0x4d,0xdc,0x6c,0x18,0xbc,0x48,0x1f,0x3d,0x1b,0x79,0x8f,0x1e,0x1c,0x2e,0xf2,0xff,
+ 0x92,0xed,0x3f,0xfa,0x32,0x04,0x11,0x97,0x08,0xd5,0xb9,0xf6,0x9f,0x80,0xff,0x97,
+ 0x63,0xff,0x29,0xbd,0xff,0xcc,0x8e,0x75,0x4e,0x71,0xff,0xa6,0x64,0xc0,0xff,0xcb,
+ 0xb1,0xff,0x44,0x26,0xf4,0x53,0xb0,0x4c,0xf6,0xff,0xfa,0x86,0x6b,0xff,0xa9,0x9b,
+ 0x48,0x4b,0xf6,0x9f,0xf8,0x33,0xf1,0xff,0x20,0x37,0x4e,0x36,0x4e,0x90,0x53,0xf0,
+ 0x37,0xe2,0x36,0xb8,0x18,0x3f,0xec,0xfc,0x45,0x3f,0xc8,0x01,0x6e,0xd5,0xdd,0xe7,
+ 0x1f,0xb7,0x5f,0x86,0xa3,0xb0,0x06,0x3b,0x61,0xe1,0xc7,0xb4,0xa2,0x23,0x58,0xf9,
+ 0xf3,0x2f,0x37,0x30,0xc5,0x62,0x8f,0x11,0xb9,0x25,0xc5,0xf9,0x2f,0xbe,0xca,0x0e,
+ 0x49,0x5d,0xda,0x16,0x48,0x84,0xc1,0x03,0x63,0x82,0x1f,0xff,0xd9,0xe7,0x3f,0x69,
+ 0xff,0xbc,0xc6,0x9d,0x2f,0xa7,0x5c,0x50,0x64,0xff,0x19,0x65,0xab,0x7f,0xda,0x3b,
+ 0x0f,0x92,0x3d,0xc2,0xf2,0xd7,0x8a,0xab,0x41,0xee,0xf3,0x85,0xfd,0x67,0x71,0xa1,
+ 0xb1,0xdd,0xe5,0x3f,0x13,0x11,0xc1,0x88,0xae,0x60,0xf1,0x9f,0x3f,0xc8,0xf3,0x40,
+ 0xd0,0xb2,0xfd,0xe7,0x16,0xb9,0x37,0xae,0x28,0x34,0xca,0xf1,0x7f,0xcc,0x0b,0xfa,
+ 0xad,0xe5,0xed,0x3f,0xb8,0x49,0x29,0x4a,0x9b,0x2b,0x25,0x3a,0x0c,0xda,0x7f,0x74,
+ 0xcf,0x6c,0x5e,0x7e,0x63,0xb5,0x4a,0xf6,0xff,0xaa,0x66,0xff,0x49,0x7b,0x25,0xc7,
+ 0x66,0xb2,0xff,0x90,0xcf,0x64,0xff,0xe9,0xae,0x98,0xff,0xa2,0x42,0x3e,0x88,0xd9,
+ 0xda,0x7f,0xe2,0xe7,0xc8,0xc5,0xf9,0xbf,0x97,0xe4,0x87,0x2d,0xe1,0x3f,0x81,0xf5,
+ 0xba,0x8c,0xfd,0x07,0x66,0xb2,0xff,0x74,0x05,0xec,0x3f,0xbb,0xb5,0xd9,0xf8,0x7f,
+ 0x5d,0xac,0xfd,0xc7,0xf7,0xff,0x1a,0x9f,0x4d,0xfc,0x9f,0x8b,0xb6,0xff,0xbc,0x3d,
+ 0x4b,0xfb,0xcf,0x82,0x67,0xc9,0x62,0xf3,0xa0,0xde,0x5a,0xe9,0xfc,0xab,0x02,0xa8,
+ 0x91,0xfc,0xdf,0x8b,0xe3,0xff,0xcc,0x74,0xff,0x67,0x56,0xf6,0x9f,0x2a,0xe7,0x5f,
+ 0x25,0x80,0x3c,0x16,0xc8,0x7f,0xf1,0xf9,0xc4,0xff,0xf1,0xec,0x3f,0x2d,0xcc,0xfe,
+ 0x43,0x2f,0xca,0xfe,0x53,0xfb,0xe1,0x43,0x33,0xda,0x7f,0x7c,0xff,0xaf,0xcb,0x9e,
+ 0x51,0x2b,0xef,0xbf,0x74,0x71,0xff,0xa7,0x3b,0x60,0xff,0x31,0x8f,0xe6,0x3a,0x8f,
+ 0x3b,0xf1,0x7f,0x4a,0xec,0x3f,0x06,0x27,0x42,0x45,0xf6,0x1f,0xdd,0x8f,0xf6,0xe3,
+ 0x35,0xfb,0xe4,0x2a,0x6e,0x11,0xd2,0x17,0x1f,0x0b,0xd8,0x7f,0xc6,0xe1,0x49,0xf2,
+ 0xa2,0x52,0xc1,0xec,0x73,0x84,0x3d,0x8a,0x81,0x29,0xcf,0xff,0xcb,0xa2,0xaf,0xab,
+ 0xc5,0xda,0xe6,0x75,0x4f,0xc3,0xc7,0x9d,0x9f,0x7c,0xfe,0xb3,0x34,0xf1,0x8c,0x97,
+ 0xc6,0x42,0x2f,0x56,0x9b,0xa7,0x54,0x87,0xf8,0x95,0x8f,0xff,0x43,0x8a,0x17,0x26,
+ 0xef,0x86,0x8c,0x1f,0xff,0x27,0xeb,0xd9,0x7f,0xaa,0xc5,0xfb,0xf5,0xd7,0xeb,0xc9,
+ 0xd1,0xcd,0x7a,0x79,0x7b,0x8e,0xb7,0xa2,0x3d,0x12,0xf4,0xff,0xda,0xac,0x8b,0x43,
+ 0x99,0xb5,0x22,0xbb,0x41,0x1d,0xaf,0xa6,0xcc,0x10,0xff,0x07,0x3b,0xe1,0x1e,0x2f,
+ 0xdb,0x05,0xf6,0x4f,0xcd,0xe6,0x03,0xee,0xc1,0xeb,0xde,0x80,0xff,0x97,0xad,0x6d,
+ 0xa6,0xff,0x23,0x3a,0xc1,0xcb,0x76,0xe1,0xdd,0xff,0x79,0x97,0x5d,0x44,0x39,0x8c,
+ 0xe3,0xa1,0xc8,0xfe,0x23,0x48,0x8e,0x97,0xed,0xe2,0x63,0x37,0xec,0xcf,0xc7,0xf9,
+ 0x0b,0x6d,0xb7,0xbe,0x16,0xe0,0x3f,0x15,0xf2,0xf1,0xe5,0x5f,0xff,0x5d,0xe7,0xe3,
+ 0x6b,0xd5,0xc1,0xcd,0x8e,0xa7,0x8d,0x2a,0x2d,0x30,0x86,0x25,0x1e,0xf8,0x4c,0xcf,
+ 0x0f,0xf3,0x21,0x7e,0x9e,0xf9,0x10,0xcd,0xa2,0x12,0xa8,0x94,0x0f,0x71,0x41,0xa1,
+ 0xf4,0xb1,0x0f,0xa7,0x10,0xfc,0x65,0xf9,0x7c,0x88,0x7a,0x99,0x8e,0xa4,0x0c,0x98,
+ 0xe5,0xfb,0x5f,0x2f,0xd3,0xed,0xa3,0x0c,0x98,0xe5,0xf3,0x21,0x46,0x0b,0x95,0xfb,
+ 0x3c,0xcc,0x87,0x58,0x1d,0xfc,0x21,0xd7,0xff,0x02,0xe7,0x23,0xd7,0x7e,0x4c,0x1f,
+ 0x3a,0x1a,0x52,0x0b,0xf3,0xc3,0xca,0xfd,0xff,0x70,0xea,0xf3,0xed,0x7f,0x7b,0xd6,
+ 0xfa,0x90,0x29,0x3d,0xfe,0xb4,0x30,0x3f,0x6c,0x91,0x84,0xfa,0xf0,0xf7,0xbc,0xfe,
+ 0xbe,0xae,0xc8,0x16,0xf3,0x88,0x7e,0x13,0xa8,0x59,0x01,0xe2,0xea,0xbe,0xc8,0x56,
+ 0x73,0x48,0xbf,0x2f,0xde,0xf0,0x2a,0x03,0x99,0xf9,0xf4,0xb2,0x42,0xbb,0x57,0xbf,
+ 0xb7,0x47,0xdd,0x4a,0x86,0xcc,0x3b,0x75,0x70,0x81,0x3a,0xc5,0x41,0xb7,0x9e,0x98,
+ 0x22,0xa2,0x24,0x51,0x88,0xb9,0x7c,0x15,0x6c,0x85,0x18,0x76,0xbf,0xd1,0xa4,0xd1,
+ 0x61,0x01,0x92,0x74,0x3b,0x69,0x41,0x30,0xdf,0x29,0xb1,0xf0,0x27,0xdb,0xf0,0x9e,
+ 0x6f,0x03,0xb1,0x60,0x10,0xe6,0xc1,0x4e,0x5b,0x00,0x4d,0x45,0x40,0x06,0x95,0x79,
+ 0x49,0x75,0x94,0x6c,0x24,0x83,0xb0,0x01,0x12,0x52,0xfd,0x7d,0x83,0x57,0xde,0x48,
+ 0x6e,0xb3,0xd7,0x75,0xd1,0x31,0x75,0x1b,0x19,0xb2,0xef,0x34,0x12,0x07,0x38,0x98,
+ 0x8f,0x80,0x20,0xc8,0x63,0x49,0xa1,0xdd,0x6b,0xcf,0xbe,0x2e,0xd3,0xd0,0x35,0xaa,
+ 0x10,0xfc,0x9f,0x2c,0x48,0x9a,0x35,0x40,0x86,0xc1,0xb2,0x93,0xd0,0x07,0xc4,0xa6,
+ 0x06,0x02,0x2c,0xb1,0xfd,0xf7,0xdd,0xd7,0x4f,0xef,0x26,0x49,0xbb,0xcf,0x80,0x31,
+ 0xda,0x4a,0x34,0x3b,0x6d,0xe8,0x63,0xd4,0x10,0xc0,0xa6,0x16,0xd1,0x80,0x01,0xa9,
+ 0xfe,0x2a,0x75,0x6d,0x76,0x20,0xbf,0xbe,0x8d,0xce,0x55,0xd3,0xd9,0xcc,0xe9,0x81,
+ 0xb6,0x44,0x9d,0xda,0x35,0x9a,0xc9,0x23,0xa8,0x51,0xcd,0xd1,0x8c,0x11,0xbf,0x45,
+ 0x05,0xbf,0x3d,0xf6,0x02,0x32,0x07,0xd6,0x17,0x12,0x19,0x7a,0x39,0xb9,0x13,0x41,
+ 0x6c,0x8b,0x3a,0x44,0xd6,0xc1,0x40,0x21,0x91,0x52,0xff,0x94,0x44,0x18,0x58,0x4a,
+ 0x3d,0xf3,0x0f,0xd6,0x67,0x1a,0xa0,0x09,0xa8,0xad,0x53,0xa6,0xf9,0x4c,0x02,0x31,
+ 0x80,0x6e,0x1b,0xb5,0x97,0x4e,0x28,0xaa,0x86,0xa4,0x4d,0x75,0xe8,0x92,0xfa,0xc7,
+ 0x52,0x34,0x60,0x1d,0x9d,0xcc,0x33,0x00,0x2d,0xa8,0x43,0x38,0x30,0x6c,0xcd,0xa8,
+ 0x71,0x40,0x97,0xd4,0x3f,0x19,0x75,0x11,0xf9,0x63,0xd8,0x60,0xc6,0x73,0x64,0x13,
+ 0x07,0x89,0x9c,0x6a,0xc1,0x61,0xd6,0xed,0x39,0xd5,0x20,0x87,0xe1,0x6b,0xd8,0xff,
+ 0xd2,0xfb,0x9a,0x11,0xf6,0x99,0x6e,0xc4,0x16,0x45,0x58,0xb5,0xaf,0xc1,0x6d,0x76,
+ 0xe4,0x6e,0x2c,0xb9,0x89,0x1d,0x25,0x21,0xb0,0xe7,0x21,0x90,0xc6,0x4f,0x9a,0xa6,
+ 0xec,0xa8,0xd1,0xad,0x69,0xc3,0x34,0x95,0x65,0x40,0xdf,0xcb,0x41,0x1f,0x02,0x70,
+ 0x4a,0xa4,0xef,0x85,0x92,0xc2,0x3d,0x55,0x84,0x8d,0x0c,0x07,0x14,0x38,0x50,0xd8,
+ 0x61,0x8b,0x5b,0x22,0xf5,0x8f,0x42,0x52,0xf6,0x6a,0xa3,0x99,0x8d,0x2e,0x06,0xd6,
+ 0x69,0x74,0x2f,0x49,0x4d,0xf2,0x92,0x83,0x0c,0xa4,0xb0,0x44,0xaa,0xbf,0x2f,0xad,
+ 0x5a,0xd9,0x41,0x63,0x03,0xd0,0x61,0x01,0xb4,0x04,0x82,0x49,0x0e,0x46,0x08,0x4c,
+ 0x0e,0xa6,0x10,0xd8,0x52,0xff,0xa4,0x79,0xcf,0xf1,0x2e,0x04,0x17,0x18,0xf8,0x46,
+ 0x0c,0x50,0x06,0x22,0x1a,0xc8,0xef,0xbb,0x96,0x5a,0xd9,0xa4,0xd1,0xd7,0x0f,0x3b,
+ 0x10,0x5c,0x82,0xaf,0x19,0x1b,0xa6,0x9b,0xd8,0xfb,0xf6,0xc7,0x76,0x50,0x83,0xbd,
+ 0x6f,0x7f,0xcc,0x8e,0x49,0xdf,0x4b,0x1d,0x24,0x1b,0x60,0x3d,0x8e,0x45,0x0e,0x12,
+ 0x76,0x02,0x4b,0x68,0x1f,0x96,0x20,0xd0,0x70,0x98,0xc6,0xec,0x84,0x29,0x8d,0x9f,
+ 0x1a,0xb2,0xd5,0x1e,0xb0,0x12,0xe3,0xb4,0x86,0x74,0xd9,0x19,0x2b,0x9e,0x54,0x4b,
+ 0x01,0x18,0xde,0x92,0x54,0x68,0xc2,0x4d,0xb3,0x66,0x00,0xb6,0x07,0xa7,0x40,0x97,
+ 0x98,0x0b,0xd4,0xc6,0x49,0xd1,0x4f,0x9b,0xb0,0x84,0x03,0xef,0x78,0x01,0xdb,0xd3,
+ 0xa7,0xc4,0xb2,0xa3,0x56,0x4b,0x32,0xd9,0x17,0xb9,0xc3,0x3e,0x64,0xdd,0x90,0x6c,
+ 0x60,0x60,0x8a,0x83,0x39,0x4e,0x89,0xd4,0x9e,0xa9,0x3e,0xb2,0x35,0x3b,0x64,0xdd,
+ 0xa9,0x5f,0xb6,0x5f,0xe5,0x20,0x99,0x60,0xe0,0xb0,0xe9,0x80,0x23,0xd6,0x7d,0xc9,
+ 0x84,0xac,0x4f,0xb0,0xbe,0x3d,0x64,0xdd,0x94,0x6c,0xd8,0x1f,0xd9,0x6a,0x1f,0x71,
+ 0x40,0x56,0x94,0x34,0xb3,0x9f,0xe6,0x27,0x1b,0x0a,0x31,0xa9,0x3e,0xe5,0x8f,0x1d,
+ 0x84,0xfd,0x09,0x06,0xe6,0xb3,0xc7,0xde,0xf1,0x50,0x94,0xff,0x47,0xd0,0x92,0x8d,
+ 0x5a,0xcb,0x93,0xeb,0x25,0xfd,0x03,0x6c,0x3c,0xf4,0xb7,0x34,0x69,0xea,0xb0,0xac,
+ 0x88,0x86,0x7c,0x80,0x03,0xc3,0x96,0x46,0x1b,0xeb,0xb4,0x41,0x6b,0x5e,0x32,0xbe,
+ 0x9d,0x6c,0xe4,0x40,0x95,0x40,0x4b,0x76,0xd0,0xda,0x90,0x54,0xa5,0xfa,0xbd,0x66,
+ 0x22,0x45,0x56,0xc3,0x3a,0x1c,0xff,0xea,0x16,0x32,0x04,0xcb,0x21,0x51,0xe0,0xe0,
+ 0x4e,0x04,0x24,0xe5,0x00,0xbf,0x3d,0xbd,0x38,0x7e,0xf2,0x5a,0x9b,0x52,0x07,0x5c,
+ 0xed,0xe0,0x14,0x24,0x3e,0x60,0xfa,0x87,0x01,0x69,0x3c,0xf4,0xae,0xa4,0xd6,0xb7,
+ 0x71,0xfc,0xd4,0xb1,0xd1,0x85,0x1f,0x2e,0xad,0xe9,0x12,0xb0,0x04,0x90,0xeb,0x77,
+ 0x5d,0x99,0xe9,0x1a,0x68,0x5a,0x8f,0xec,0x53,0x35,0xb3,0x19,0x63,0x40,0x8b,0x31,
+ 0x70,0x07,0x82,0x44,0x24,0x91,0xb1,0x51,0xff,0x68,0x09,0x90,0xfa,0xa7,0x8e,0x64,
+ 0x0e,0x0c,0xa4,0x12,0x1a,0x8d,0x90,0x4c,0x61,0xc0,0x48,0x44,0xd5,0x6e,0x06,0x52,
+ 0x08,0xd2,0x02,0x68,0xaa,0x29,0xf5,0x0f,0x98,0x66,0x4c,0xa7,0x94,0xe0,0x0e,0x2f,
+ 0x0d,0xa8,0x02,0x0d,0xa6,0x02,0x29,0x07,0x00,0x77,0x83,0x03,0xfc,0xf6,0xa4,0x15,
+ 0xc5,0xb6,0xf3,0x46,0xbf,0xad,0x28,0x60,0x33,0xed,0xa5,0x31,0x90,0x6d,0x33,0x10,
+ 0x00,0x2b,0x41,0x20,0xb5,0xa7,0xd7,0x9c,0x63,0x31,0x25,0x1f,0xc1,0xfe,0xb4,0x1c,
+ 0x6d,0x8f,0xe0,0x30,0x65,0xa0,0xc1,0x72,0xf4,0x8f,0x34,0x5f,0xcc,0xf9,0x4c,0xed,
+ 0xcc,0x8b,0x3c,0x6a,0x47,0x18,0xb8,0x91,0xa9,0x1d,0x8b,0x0e,0x51,0x06,0xe6,0x18,
+ 0x30,0x04,0xf3,0x11,0x48,0x0d,0x22,0x34,0x45,0x98,0xd2,0xb0,0x6d,0x0e,0xba,0x41,
+ 0x2f,0x20,0x48,0x2a,0x0c,0x28,0x06,0x61,0x0b,0x81,0x5e,0x90,0xc7,0x83,0x50,0x32,
+ 0x26,0x92,0xbb,0x76,0x88,0x9a,0x91,0x41,0x38,0x04,0x4b,0xa0,0x96,0x95,0x1c,0x32,
+ 0x17,0x21,0x50,0x4c,0x90,0xeb,0xab,0x6a,0xbb,0xb9,0x3a,0xd3,0x9c,0xdb,0x39,0x42,
+ 0x10,0x98,0xcd,0x71,0xfa,0x2a,0x69,0xef,0xba,0x3d,0x83,0x60,0x3f,0x69,0xe9,0x5a,
+ 0x9d,0x59,0xa7,0x53,0xb9,0xfe,0x42,0xf5,0xde,0xc9,0xbb,0x52,0x1b,0xc6,0xe8,0x3f,
+ 0xaa,0x7f,0x3e,0x79,0xd7,0x96,0x0d,0x4f,0x26,0xfe,0x89,0x95,0x18,0x1b,0x1e,0x15,
+ 0x20,0x85,0x40,0x6e,0x3f,0xe5,0x49,0x01,0xf1,0x3f,0x15,0x5b,0x69,0x04,0x39,0x58,
+ 0x24,0xda,0x23,0x00,0xff,0x49,0x92,0x1e,0x2b,0x96,0xa4,0x7d,0x04,0xd7,0x2f,0xb1,
+ 0x90,0xc5,0x10,0xc4,0x92,0xa3,0xdd,0x2d,0x31,0xbb,0x87,0x81,0x3e,0x04,0x72,0xfd,
+ 0x8d,0x99,0xd8,0x00,0x5d,0x8f,0x8b,0x89,0x8a,0xa0,0x67,0x3d,0x49,0x98,0xbd,0x19,
+ 0x18,0xa0,0x77,0x40,0xc2,0xec,0xca,0xe8,0x03,0xd1,0x04,0x96,0x48,0xd5,0xb5,0x16,
+ 0x45,0x33,0x87,0x75,0x63,0x54,0x6b,0x49,0x6b,0x99,0xe1,0xb8,0xa1,0x6a,0xc4,0x05,
+ 0x1b,0xd7,0xb6,0x71,0x20,0x3f,0xbe,0x0e,0x14,0x1b,0xf2,0x99,0x36,0x1c,0x78,0x8a,
+ 0x6d,0xe6,0xf5,0x36,0x8a,0x60,0x4c,0x00,0x70,0x4a,0xe4,0xfa,0x51,0xa5,0x19,0x46,
+ 0x0b,0x7f,0x96,0x4a,0xae,0x8e,0xac,0x83,0x43,0x85,0xf6,0x54,0x83,0x00,0x37,0x20,
+ 0xa8,0x69,0x16,0x40,0x6e,0x4f,0xad,0xba,0xad,0x6b,0x28,0xe7,0xd2,0x80,0xb1,0x79,
+ 0x02,0x1c,0xe1,0xc4,0xa0,0x97,0x81,0xfb,0x8c,0x7f,0x90,0xfb,0xbf,0x7e,0x65,0xfa,
+ 0xe7,0xb9,0x17,0x76,0x5d,0x5b,0xcb,0xc1,0xf7,0x77,0x5d,0xbb,0xa2,0x7e,0xed,0xca,
+ 0xe9,0x1d,0x2f,0x2c,0xfa,0xe7,0xda,0xfa,0xf4,0xca,0x43,0x1c,0xc8,0xed,0x59,0xf6,
+ 0xe0,0xed,0x17,0xfe,0x7d,0xcf,0x99,0x77,0xcf,0x71,0xf0,0xe2,0x99,0xf7,0xcf,0x2d,
+ 0xfb,0x64,0xcd,0xd1,0x6f,0x5d,0x38,0x71,0xfe,0xdc,0xb2,0x07,0xd6,0x5c,0xe0,0x00,
+ 0x3e,0x83,0xdc,0xfa,0x44,0xed,0x55,0xe9,0x15,0xb9,0x1d,0x9b,0x3a,0xcf,0x35,0x7e,
+ 0xb7,0xfb,0x42,0xee,0xb7,0x7f,0x7b,0xeb,0x53,0x2b,0x1e,0x7c,0x73,0x45,0xee,0xf1,
+ 0xf3,0x9d,0x17,0x56,0x5c,0xfd,0xe6,0x8a,0x33,0x8f,0x9f,0x97,0xeb,0x77,0x3e,0x70,
+ 0xfb,0xd1,0x6f,0xbd,0x78,0xe2,0xdd,0x73,0x9d,0x4e,0x33,0xce,0x77,0xf2,0x86,0x9d,
+ 0x78,0x1f,0xeb,0xdf,0x7e,0x94,0xb5,0x30,0x50,0x7f,0xe1,0xe5,0xfd,0x47,0x77,0xdc,
+ 0x74,0xe2,0xd1,0x8d,0xcb,0xd8,0x1f,0x3e,0x8b,0x7f,0x88,0xe0,0xed,0xe6,0x17,0x47,
+ 0xdf,0x3d,0xb7,0x30,0xc9,0xc1,0xa9,0xbf,0x0e,0x34,0xa8,0x75,0x8b,0xf9,0xa4,0x7e,
+ 0xb5,0x9e,0x2d,0x28,0x08,0xe0,0x6a,0x5a,0x3b,0x09,0x5b,0xb1,0x64,0x4e,0xbc,0x76,
+ 0x9f,0x82,0x20,0x73,0x35,0x25,0x72,0x7f,0x52,0x97,0x1f,0x8e,0x5e,0xe9,0xb0,0x41,
+ 0xe4,0x87,0x30,0x64,0xce,0xe7,0xc0,0xe1,0x87,0x52,0xfd,0x62,0x7e,0xe8,0x01,0x5c,
+ 0x91,0x19,0x51,0xe4,0xfc,0x30,0xd0,0x20,0xa4,0x6d,0x50,0x13,0xcb,0xd9,0x02,0x30,
+ 0xda,0xb6,0x91,0x01,0x8d,0x6c,0x47,0x46,0xc4,0x4a,0x02,0xe3,0x59,0xeb,0xd9,0x46,
+ 0xa2,0xc3,0xdd,0x0d,0xf6,0x58,0x4f,0x07,0x59,0x30,0xba,0xdc,0x88,0x1d,0xa0,0xdb,
+ 0xc8,0x02,0x1b,0xc1,0xeb,0x74,0x5b,0x96,0x83,0x42,0xf0,0xf9,0x0e,0x3f,0xb4,0x0c,
+ 0x48,0xea,0xec,0xf9,0xde,0x7f,0xc4,0x80,0xc1,0x81,0x2f,0x51,0xa4,0x85,0x38,0xad,
+ 0x32,0x7c,0x7e,0x21,0x2d,0xb4,0xf4,0x1c,0xbd,0x6a,0x12,0xc1,0x16,0x7d,0x9c,0x5e,
+ 0x45,0x6a,0xed,0xb4,0x19,0xd8,0xa3,0x7d,0x89,0xae,0xcc,0xce,0xcb,0xf7,0x8e,0xc1,
+ 0x75,0xf4,0xae,0x6c,0xd3,0x44,0xcf,0xd3,0xb1,0x56,0x58,0x95,0x6d,0xca,0x23,0xb8,
+ 0x0e,0x7f,0x42,0x30,0x2e,0xe9,0x4f,0xad,0xd0,0x08,0xcd,0x10,0x2f,0xa8,0x39,0x98,
+ 0x8b,0x4a,0x2b,0x8e,0xdc,0x87,0xaf,0x36,0x58,0xb2,0xd4,0x07,0xa6,0xff,0x07,0xb8,
+ 0x55,0xd5,0x71,0xb5,0xa7,0x5b,0x74,0x36,0x8b,0x70,0xd9,0x37,0x51,0xa5,0xf5,0xb2,
+ 0xdd,0x6d,0x86,0xc4,0xf5,0x1e,0x64,0x8b,0x74,0x0b,0xf1,0xcc,0xe7,0xf8,0x7c,0xd3,
+ 0xb1,0xbc,0x25,0xf9,0x06,0x53,0x17,0x76,0x3a,0xb6,0x25,0x35,0xc7,0xf4,0x56,0xaa,
+ 0x65,0x15,0x56,0x22,0xd7,0x47,0xd2,0xcb,0x95,0x24,0x53,0xf4,0x49,0x48,0x63,0x6f,
+ 0xd7,0xb0,0x92,0x7b,0x10,0xec,0x12,0x3f,0x5d,0x62,0x7b,0xf5,0x75,0x62,0x2a,0x16,
+ 0x8c,0xc3,0x55,0x06,0xea,0x2c,0x0e,0xa0,0x76,0x0c,0x36,0x31,0xc0,0xae,0x32,0xb1,
+ 0x9c,0xf6,0x57,0x19,0xb8,0x02,0xba,0x62,0x32,0x7e,0xc8,0x49,0x91,0x2e,0xf3,0xc3,
+ 0x31,0x06,0x72,0x7b,0x97,0x88,0x92,0x9c,0xbf,0x9e,0xb2,0x37,0x2f,0xe1,0x87,0x66,
+ 0x11,0x30,0x0b,0x9e,0x7d,0xde,0xc4,0xb7,0x4c,0x71,0x92,0xa6,0x0f,0x3b,0x00,0x5e,
+ 0xa1,0x0e,0xd8,0x2b,0x4a,0xa2,0x92,0xfe,0x37,0x7b,0x4d,0xc1,0xdf,0xd8,0xd1,0x25,
+ 0x02,0x40,0xfe,0x36,0xc2,0x7a,0xc0,0x60,0x44,0x4c,0xfc,0x44,0x91,0xbf,0x79,0xed,
+ 0x21,0x12,0x3f,0xf4,0x40,0xaa,0xa8,0xc4,0x7f,0x7e,0x86,0xa4,0xc5,0x43,0x18,0x7b,
+ 0x14,0x20,0xc6,0x5e,0xdc,0x01,0xa2,0xa4,0xa8,0x3d,0xf8,0x21,0xf1,0x8b,0x02,0x38,
+ 0x20,0x86,0xdb,0x00,0x07,0xb8,0x3f,0xa5,0xbd,0xf6,0xf4,0xe3,0xb8,0xed,0xb2,0xe3,
+ 0x96,0xca,0x06,0xf0,0x56,0x5b,0xb7,0x68,0x92,0xb0,0x92,0x20,0xf0,0x87,0x4f,0x3f,
+ 0xb0,0x91,0xef,0xf1,0x5b,0x6f,0xaf,0x14,0x04,0x20,0xb5,0x67,0x03,0xb2,0x41,0xe4,
+ 0x87,0x83,0xda,0x06,0x25,0x66,0xff,0xcc,0xe5,0x87,0x03,0x2e,0x10,0xfc,0xd0,0x5f,
+ 0xdf,0x09,0xe3,0x6f,0x0b,0xac,0xe5,0x7a,0x6c,0xbf,0x00,0xc9,0xd8,0xfe,0x9a,0xbf,
+ 0x22,0x08,0x32,0xb1,0x43,0x74,0x2b,0x59,0x60,0x2e,0x1f,0xbc,0x44,0x7a,0x5f,0xd2,
+ 0x87,0xb4,0xf0,0x49,0xeb,0xea,0x24,0xd9,0xaf,0x08,0x50,0xbb,0x1f,0x5c,0xe0,0x94,
+ 0x48,0xfa,0x27,0xd3,0xdb,0xa7,0xb6,0x73,0xda,0x09,0x12,0xff,0xbc,0xc1,0x66,0x8c,
+ 0x31,0xf1,0xf3,0x84,0xa0,0x8e,0xfa,0x5e,0x69,0xfc,0x34,0x11,0x8b,0x69,0x1b,0xc6,
+ 0x87,0x0d,0x7b,0x85,0xd0,0x3f,0x9b,0x78,0x89,0xab,0x88,0xfa,0xd5,0x82,0xd7,0x43,
+ 0x26,0x0e,0xe0,0x8d,0x76,0xd2,0xaa,0x19,0xd7,0xbf,0x8b,0xe0,0x52,0xab,0x26,0x49,
+ 0xb6,0xab,0xbc,0x04,0x81,0xf8,0x29,0x29,0xeb,0x9f,0x5e,0x8b,0xde,0xdf,0x32,0x17,
+ 0x77,0x68,0x90,0x1f,0x5d,0x4a,0x2e,0x47,0x10,0x3b,0xb6,0xe8,0x7e,0x04,0xcb,0x11,
+ 0x50,0x07,0x48,0xe3,0x99,0xac,0x45,0x36,0x88,0xfd,0x8f,0xed,0xc1,0xd1,0x72,0x09,
+ 0x7e,0x08,0x9c,0x1d,0x9b,0x18,0x2d,0xec,0x27,0x3b,0x04,0x51,0xec,0x97,0xf4,0x0f,
+ 0x8e,0x37,0x64,0x83,0x7c,0xfc,0x7c,0x83,0xb1,0xc1,0x7c,0x5f,0x80,0x1f,0x3a,0x40,
+ 0xaa,0x8f,0xf3,0xcb,0xec,0x8a,0xeb,0xbd,0x38,0x5d,0x68,0x26,0xab,0x1b,0xbd,0x1a,
+ 0x72,0x29,0x13,0x41,0x0f,0x02,0x2a,0x00,0x01,0xa9,0x7f,0x70,0xbe,0x14,0xe2,0x1d,
+ 0xb8,0xf3,0xa8,0xc3,0x09,0x15,0x9f,0x20,0x51,0xd2,0x0d,0x99,0x42,0x3c,0xa5,0x22,
+ 0x30,0x1c,0x60,0xfa,0xcf,0x47,0x65,0xa1,0xeb,0x9c,0x1f,0xda,0x66,0x2b,0xaa,0x1d,
+ 0x82,0xfc,0xd0,0x74,0x89,0xa2,0x0b,0xe4,0xf1,0x93,0x6e,0x6d,0x62,0xfc,0x50,0x1b,
+ 0x57,0x5a,0x91,0x93,0x75,0xb4,0x70,0x7e,0x38,0x06,0x86,0x51,0x37,0x86,0x25,0x79,
+ 0xc6,0x0f,0xc7,0xa4,0xf6,0x10,0x57,0xff,0x24,0x85,0xfe,0xe9,0x73,0xf5,0x0f,0x03,
+ 0x8b,0x70,0x9c,0x2b,0x4c,0xff,0x48,0xfd,0x63,0x72,0x25,0x53,0x63,0x8e,0xe5,0x50,
+ 0x7b,0x3f,0x21,0xd4,0xce,0x16,0x6d,0x9c,0xa0,0x22,0xca,0x39,0x1a,0xa9,0x4b,0x9e,
+ 0x5f,0x16,0x7e,0x26,0x54,0xb5,0xd8,0x26,0x1b,0x81,0x86,0x5b,0xeb,0x63,0x70,0xaf,
+ 0x86,0x5f,0x70,0x38,0x77,0x6c,0xd1,0xd2,0xda,0xb9,0x0a,0x7e,0x41,0x7f,0xbe,0x67,
+ 0x80,0xc0,0x57,0xac,0xb9,0x5b,0x22,0x2c,0x8c,0x54,0xca,0x8c,0xea,0x11,0x0a,0xaf,
+ 0x22,0x31,0xe3,0x60,0x9f,0x21,0x4a,0x6c,0xa9,0x3d,0xc8,0xdf,0x96,0x98,0x0d,0x99,
+ 0x48,0x26,0xb7,0x13,0xda,0xcd,0x06,0x33,0x32,0x00,0x3f,0xa3,0xed,0xfd,0xd1,0x4c,
+ 0x24,0x0e,0xbf,0xc0,0x12,0x06,0xf4,0xbd,0x52,0x7b,0xba,0x29,0xee,0x46,0x53,0x7d,
+ 0x49,0x40,0xb5,0x33,0x99,0x4c,0xf5,0x45,0x63,0x7f,0xef,0x82,0xc7,0x5d,0x20,0xeb,
+ 0x1f,0x13,0xf9,0x61,0xb2,0xe0,0x1e,0x9e,0x54,0xb2,0x23,0xfa,0xfd,0xd3,0x8f,0xfc,
+ 0x50,0x43,0x7e,0x68,0xdb,0x9b,0xee,0x66,0x44,0xd1,0x88,0x8d,0x53,0x87,0x16,0x7a,
+ 0x40,0x1e,0x3f,0x66,0xaf,0x1a,0x4b,0xd4,0xf4,0x22,0x5d,0xee,0xc9,0xc4,0xe2,0xb4,
+ 0x97,0xc4,0x4c,0x13,0xd5,0x0e,0x15,0xfa,0x87,0x95,0x00,0x31,0xa5,0xf1,0xa3,0x31,
+ 0x96,0xea,0x6a,0x3e,0x7d,0x58,0xc5,0x61,0x60,0xe0,0x30,0x18,0x16,0x1b,0x07,0x3e,
+ 0x1e,0xb2,0x20,0x09,0xa3,0x85,0x90,0x37,0x83,0xfc,0x90,0x83,0x1e,0xaf,0x44,0x1e,
+ 0x3f,0xb7,0x2d,0x5c,0x67,0x8e,0x4e,0x6f,0x5c,0x32,0x7e,0x5b,0xcd,0x3a,0xf3,0xd0,
+ 0xb4,0xb1,0xa4,0xe1,0x36,0xb2,0xce,0x1c,0x98,0xbe,0x01,0x41,0x84,0x95,0x20,0x90,
+ 0xda,0x43,0xfa,0xe9,0xb6,0xae,0x05,0x39,0x5c,0xf4,0x7f,0xf2,0xb0,0x43,0x03,0x3c,
+ 0x3e,0xc0,0x01,0x2c,0x37,0x24,0xfd,0x83,0xeb,0xb5,0xcf,0x0f,0x57,0xca,0xfc,0x70,
+ 0x57,0x05,0x7e,0xd8,0xe9,0xf3,0xc3,0x35,0x32,0x3f,0x3c,0xf3,0x3b,0xe2,0x87,0x57,
+ 0x32,0x5a,0xf8,0xcb,0xdc,0x85,0xf3,0x9d,0xe7,0x38,0x51,0x44,0x7e,0xf8,0x44,0x6d,
+ 0x90,0x1f,0x9e,0x90,0xeb,0xf3,0xff,0xfd,0xc3,0x13,0x58,0xff,0x13,0x4e,0x14,0x91,
+ 0x1f,0x3e,0x50,0xc4,0x0f,0x03,0xed,0x59,0xe6,0xf2,0xc3,0x85,0x97,0xdf,0x7e,0x74,
+ 0x47,0x3b,0x23,0x96,0xf7,0x17,0xd5,0x3f,0xfe,0xe9,0x5b,0x9f,0x02,0x83,0xe0,0xfc,
+ 0xc6,0x7f,0xbb,0xa3,0x9f,0xfe,0x29,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a,
+ 0x28,0xa1,0x84,0x12,0xca,0xef,0xbb,0xf0,0xbd,0x03,0x0d,0xf7,0x0e,0xa1,0x84,0x12,
+ 0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x75,0xe1,0x7b,0x87,0x9a,
+ 0x70,0xef,0x10,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0x4a,0x28,0xa1,
+ 0x54,0x17,0xbe,0x77,0xd0,0xf8,0xde,0xe1,0xff,0xba,0x29,0xa1,0x84,0x12,0x4a,0x28,
+ 0xa1,0x84,0x12,0x4a,0x28,0xa1,0x84,0x12,0xca,0x17,0x28,0x29,0x16,0x72,0x19,0x5e,
+ 0xf9,0x20,0x05,0x36,0xf3,0x62,0x8a,0xa4,0xc0,0xbc,0xe8,0xf3,0x04,0xe7,0x6f,0xd5,
+ 0x14,0xe4,0x89,0xff,0xcc,0xe3,0x77,0x15,0xd7,0xfb,0x5f,0x2b,0x92,0xad,0x46,0xf1,
+ 0x33,0x01,0x00,
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
new file mode 100644
index 000000000..1ba6d1787
--- /dev/null
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -0,0 +1,147 @@
+/*
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+OUTPUT_ARCH(powerpc)
+SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
+/* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+SECTIONS
+{
+ .resetvec 0xFFFFFFFC :
+ {
+ *(.resetvec)
+ } = 0xffff
+
+ /* Read-only sections, merged into text segment: */
+ . = + SIZEOF_HEADERS;
+ .interp : { *(.interp) }
+ .hash : { *(.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .rel.text : { *(.rel.text) }
+ .rela.text : { *(.rela.text) }
+ .rel.data : { *(.rel.data) }
+ .rela.data : { *(.rela.data) }
+ .rel.rodata : { *(.rel.rodata) }
+ .rela.rodata : { *(.rela.rodata) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.bss : { *(.rel.bss) }
+ .rela.bss : { *(.rela.bss) }
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .init : { *(.init) }
+ .plt : { *(.plt) }
+ .text :
+ {
+ /* WARNING - the following is hand-optimized to fit within */
+ /* the sector layout of our flash chips! XXX FIXME XXX */
+
+ cpu/ppc4xx/start.o (.text)
+ cpu/ppc4xx/traps.o (.text)
+ cpu/ppc4xx/interrupts.o (.text)
+ cpu/ppc4xx/serial.o (.text)
+ cpu/ppc4xx/cpu_init.o (.text)
+ cpu/ppc4xx/speed.o (.text)
+ cpu/ppc4xx/405gp_enet.o (.text)
+ common/dlmalloc.o (.text)
+ lib_generic/crc32.o (.text)
+ lib_ppc/extable.o (.text)
+ lib_generic/zlib.o (.text)
+
+/* . = env_offset;*/
+/* common/environment.o(.text)*/
+
+ *(.text)
+ *(.fixup)
+ *(.got1)
+ }
+ _etext = .;
+ PROVIDE (etext = .);
+ .rodata :
+ {
+ *(.rodata)
+ *(.rodata1)
+ }
+ .fini : { *(.fini) } =0
+ .ctors : { *(.ctors) }
+ .dtors : { *(.dtors) }
+
+ /* Read-write section, merged into data segment: */
+ . = (. + 0x00FF) & 0xFFFFFF00;
+ _erotext = .;
+ PROVIDE (erotext = .);
+ .reloc :
+ {
+ *(.got)
+ _GOT2_TABLE_ = .;
+ *(.got2)
+ _FIXUP_TABLE_ = .;
+ *(.fixup)
+ }
+ __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
+ __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+
+ .data :
+ {
+ *(.data)
+ *(.data1)
+ *(.sdata)
+ *(.sdata2)
+ *(.dynamic)
+ CONSTRUCTORS
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ . = ALIGN(256);
+ __init_begin = .;
+ .text.init : { *(.text.init) }
+ .data.init : { *(.data.init) }
+ . = ALIGN(256);
+ __init_end = .;
+
+ __bss_start = .;
+ .bss :
+ {
+ *(.sbss) *(.scommon)
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ }
+ _end = . ;
+ PROVIDE (end = .);
+}
diff --git a/board/dave/common/flash.c b/board/dave/common/flash.c
new file mode 100644
index 000000000..3cdbaa920
--- /dev/null
+++ b/board/dave/common/flash.c
@@ -0,0 +1,681 @@
+/*
+ * (C) Copyright 2001
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <ppc4xx.h>
+#include <asm/processor.h>
+
+flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
+
+/*-----------------------------------------------------------------------
+ * Functions
+ */
+static int write_word (flash_info_t *info, ulong dest, ulong data);
+
+/*-----------------------------------------------------------------------
+ */
+static void flash_get_offsets (ulong base, flash_info_t *info)
+{
+ int i;
+ short n;
+
+ /* set up sector start address table */
+ if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) {
+ for (i = 0; i < info->sector_count; i++)
+ info->start[i] = base + (i * 0x00010000);
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) {
+ /* set sector offsets for bottom boot block type */
+ for (i=0; i<8; ++i) { /* 8 x 8k boot sectors */
+ info->start[i] = base;
+ base += 8 << 10;
+ }
+ while (i < info->sector_count) { /* 64k regular sectors */
+ info->start[i] = base;
+ base += 64 << 10;
+ ++i;
+ }
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) {
+ /* set sector offsets for top boot block type */
+ base += info->size;
+ i = info->sector_count;
+ for (n=0; n<8; ++n) { /* 8 x 8k boot sectors */
+ base -= 8 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ while (i > 0) { /* 64k regular sectors */
+ base -= 64 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ } else {
+ if (info->flash_id & FLASH_BTYPE) {
+ /* set sector offsets for bottom boot block type */
+ info->start[0] = base + 0x00000000;
+ info->start[1] = base + 0x00004000;
+ info->start[2] = base + 0x00006000;
+ info->start[3] = base + 0x00008000;
+ for (i = 4; i < info->sector_count; i++) {
+ info->start[i] = base + (i * 0x00010000) - 0x00030000;
+ }
+ } else {
+ /* set sector offsets for top boot block type */
+ i = info->sector_count - 1;
+ info->start[i--] = base + info->size - 0x00004000;
+ info->start[i--] = base + info->size - 0x00006000;
+ info->start[i--] = base + info->size - 0x00008000;
+ for (; i >= 0; i--) {
+ info->start[i] = base + i * 0x00010000;
+ }
+ }
+ }
+}
+
+/*-----------------------------------------------------------------------
+ */
+void flash_print_info (flash_info_t *info)
+{
+ int i;
+ int k;
+ int size;
+ int erased;
+ volatile unsigned long *flash;
+
+ if (info->flash_id == FLASH_UNKNOWN) {
+ printf ("missing or unknown FLASH type\n");
+ return;
+ }
+
+ switch (info->flash_id & FLASH_VENDMASK) {
+ case FLASH_MAN_AMD: printf ("AMD "); break;
+ case FLASH_MAN_FUJ: printf ("FUJITSU "); break;
+ case FLASH_MAN_SST: printf ("SST "); break;
+ case FLASH_MAN_STM: printf ("ST "); break;
+ default: printf ("Unknown Vendor "); break;
+ }
+
+ switch (info->flash_id & FLASH_TYPEMASK) {
+ case FLASH_AM400B: printf ("AM29LV400B (4 Mbit, bottom boot sect)\n");
+ break;
+ case FLASH_AM400T: printf ("AM29LV400T (4 Mbit, top boot sector)\n");
+ break;
+ case FLASH_AM800B: printf ("AM29LV800B (8 Mbit, bottom boot sect)\n");
+ break;
+ case FLASH_AM800T: printf ("AM29LV800T (8 Mbit, top boot sector)\n");
+ break;
+ case FLASH_AM160B: printf ("AM29LV160B (16 Mbit, bottom boot sect)\n");
+ break;
+ case FLASH_AM160T: printf ("AM29LV160T (16 Mbit, top boot sector)\n");
+ break;
+ case FLASH_AM320T: printf ("AM29LV320T (32 M, top sector)\n");
+ break;
+ case FLASH_AM320B: printf ("AM29LV320B (32 M, bottom sector)\n");
+ break;
+ case FLASH_AMDL322T: printf ("AM29DL322T (32 M, top sector)\n");
+ break;
+ case FLASH_AMDL322B: printf ("AM29DL322B (32 M, bottom sector)\n");
+ break;
+ case FLASH_AMDL323T: printf ("AM29DL323T (32 M, top sector)\n");
+ break;
+ case FLASH_AMDL323B: printf ("AM29DL323B (32 M, bottom sector)\n");
+ break;
+ case FLASH_AM640U: printf ("AM29LV640D (64 M, uniform sector)\n");
+ break;
+ case FLASH_SST800A: printf ("SST39LF/VF800 (8 Mbit, uniform sector size)\n");
+ break;
+ case FLASH_SST160A: printf ("SST39LF/VF160 (16 Mbit, uniform sector size)\n");
+ break;
+ case FLASH_STMW320DT: printf ("M29W320DT (32 M, top sector)\n");
+ break;
+ default: printf ("Unknown Chip Type\n");
+ break;
+ }
+
+ printf (" Size: %ld MB in %d Sectors\n",
+ info->size >> 20, info->sector_count);
+
+ printf (" Sector Start Addresses:");
+ for (i=0; i<info->sector_count; ++i) {
+#ifdef CFG_FLASH_EMPTY_INFO
+ /*
+ * Check if whole sector is erased
+ */
+ if (i != (info->sector_count-1))
+ size = info->start[i+1] - info->start[i];
+ else
+ size = info->start[0] + info->size - info->start[i];
+ erased = 1;
+ flash = (volatile unsigned long *)info->start[i];
+ size = size >> 2; /* divide by 4 for longword access */
+ for (k=0; k<size; k++)
+ {
+ if (*flash++ != 0xffffffff)
+ {
+ erased = 0;
+ break;
+ }
+ }
+
+ if ((i % 5) == 0)
+ printf ("\n ");
+ /* print empty and read-only info */
+ printf (" %08lX%s%s",
+ info->start[i],
+ erased ? " E" : " ",
+ info->protect[i] ? "RO " : " ");
+#else
+ if ((i % 5) == 0)
+ printf ("\n ");
+ printf (" %08lX%s",
+ info->start[i],
+ info->protect[i] ? " (RO)" : " ");
+#endif
+
+ }
+ printf ("\n");
+ return;
+}
+
+/*-----------------------------------------------------------------------
+ */
+
+
+/*-----------------------------------------------------------------------
+ */
+
+/*
+ * The following code cannot be run from FLASH!
+ */
+static ulong flash_get_size (vu_long *addr, flash_info_t *info)
+{
+ short i;
+ short n;
+ CFG_FLASH_WORD_SIZE value;
+ ulong base = (ulong)addr;
+ volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)addr;
+
+ /* Write auto select command: read Manufacturer ID */
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr2[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00900090;
+
+ value = addr2[CFG_FLASH_READ0];
+
+ switch (value) {
+ case (CFG_FLASH_WORD_SIZE)AMD_MANUFACT:
+ info->flash_id = FLASH_MAN_AMD;
+ break;
+ case (CFG_FLASH_WORD_SIZE)FUJ_MANUFACT:
+ info->flash_id = FLASH_MAN_FUJ;
+ break;
+ case (CFG_FLASH_WORD_SIZE)SST_MANUFACT:
+ info->flash_id = FLASH_MAN_SST;
+ break;
+ case (CFG_FLASH_WORD_SIZE)STM_MANUFACT:
+ info->flash_id = FLASH_MAN_STM;
+ break;
+ default:
+ info->flash_id = FLASH_UNKNOWN;
+ info->sector_count = 0;
+ info->size = 0;
+ return (0); /* no or unknown flash */
+ }
+
+ value = addr2[CFG_FLASH_READ1]; /* device ID */
+
+ switch (value) {
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV400T:
+ info->flash_id += FLASH_AM400T;
+ info->sector_count = 11;
+ info->size = 0x00080000;
+ break; /* => 0.5 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV400B:
+ info->flash_id += FLASH_AM400B;
+ info->sector_count = 11;
+ info->size = 0x00080000;
+ break; /* => 0.5 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV800T:
+ info->flash_id += FLASH_AM800T;
+ info->sector_count = 19;
+ info->size = 0x00100000;
+ break; /* => 1 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV800B:
+ info->flash_id += FLASH_AM800B;
+ info->sector_count = 19;
+ info->size = 0x00100000;
+ break; /* => 1 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV160T:
+ info->flash_id += FLASH_AM160T;
+ info->sector_count = 35;
+ info->size = 0x00200000;
+ break; /* => 2 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV160B:
+ info->flash_id += FLASH_AM160B;
+ info->sector_count = 35;
+ info->size = 0x00200000;
+ break; /* => 2 MB */
+
+ case (CFG_FLASH_WORD_SIZE)STM_ID_29W320DT:
+ info->flash_id += FLASH_STMW320DT;
+ info->sector_count = 67;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV320T:
+ info->flash_id += FLASH_AM320T;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV320B:
+ info->flash_id += FLASH_AM320B;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_DL322T:
+ info->flash_id += FLASH_AMDL322T;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_DL322B:
+ info->flash_id += FLASH_AMDL322B;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_DL323T:
+ info->flash_id += FLASH_AMDL323T;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_DL323B:
+ info->flash_id += FLASH_AMDL323B;
+ info->sector_count = 71;
+ info->size = 0x00400000; break; /* => 4 MB */
+
+ case (CFG_FLASH_WORD_SIZE)AMD_ID_LV640U:
+ info->flash_id += FLASH_AM640U;
+ info->sector_count = 128;
+ info->size = 0x00800000; break; /* => 8 MB */
+
+ case (CFG_FLASH_WORD_SIZE)SST_ID_xF800A:
+ info->flash_id += FLASH_SST800A;
+ info->sector_count = 16;
+ info->size = 0x00100000;
+ break; /* => 1 MB */
+
+ case (CFG_FLASH_WORD_SIZE)SST_ID_xF160A:
+ info->flash_id += FLASH_SST160A;
+ info->sector_count = 32;
+ info->size = 0x00200000;
+ break; /* => 2 MB */
+
+ default:
+ info->flash_id = FLASH_UNKNOWN;
+ return (0); /* => no or unknown flash */
+
+ }
+
+ /* set up sector start address table */
+ if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U)) {
+ for (i = 0; i < info->sector_count; i++)
+ info->start[i] = base + (i * 0x00010000);
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320B) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324B)) {
+ /* set sector offsets for bottom boot block type */
+ for (i=0; i<8; ++i) { /* 8 x 8k boot sectors */
+ info->start[i] = base;
+ base += 8 << 10;
+ }
+ while (i < info->sector_count) { /* 64k regular sectors */
+ info->start[i] = base;
+ base += 64 << 10;
+ ++i;
+ }
+ } else if (((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL322T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL323T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AM320T) ||
+ ((info->flash_id & FLASH_TYPEMASK) == FLASH_AMDL324T)) {
+ /* set sector offsets for top boot block type */
+ base += info->size;
+ i = info->sector_count;
+ for (n=0; n<8; ++n) { /* 8 x 8k boot sectors */
+ base -= 8 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ while (i > 0) { /* 64k regular sectors */
+ base -= 64 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ } else if ((info->flash_id & FLASH_TYPEMASK) == FLASH_STMW320DT) {
+ /* set sector offsets for top boot block type */
+ base += info->size;
+ i = info->sector_count;
+ /* 1 x 16k boot sector */
+ base -= 16 << 10;
+ --i;
+ info->start[i] = base;
+ /* 2 x 8k boot sectors */
+ for (n=0; n<2; ++n) {
+ base -= 8 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ /* 1 x 32k boot sector */
+ base -= 32 << 10;
+ --i;
+ info->start[i] = base;
+
+ while (i > 0) { /* 64k regular sectors */
+ base -= 64 << 10;
+ --i;
+ info->start[i] = base;
+ }
+ } else {
+ if (info->flash_id & FLASH_BTYPE) {
+ /* set sector offsets for bottom boot block type */
+ info->start[0] = base + 0x00000000;
+ info->start[1] = base + 0x00004000;
+ info->start[2] = base + 0x00006000;
+ info->start[3] = base + 0x00008000;
+ for (i = 4; i < info->sector_count; i++) {
+ info->start[i] = base + (i * 0x00010000) - 0x00030000;
+ }
+ } else {
+ /* set sector offsets for top boot block type */
+ i = info->sector_count - 1;
+ info->start[i--] = base + info->size - 0x00004000;
+ info->start[i--] = base + info->size - 0x00006000;
+ info->start[i--] = base + info->size - 0x00008000;
+ for (; i >= 0; i--) {
+ info->start[i] = base + i * 0x00010000;
+ }
+ }
+ }
+
+ /* check for protected sectors */
+ for (i = 0; i < info->sector_count; i++) {
+ /* read sector protection at sector address, (A7 .. A0) = 0x02 */
+ /* D0 = 1 if protected */
+ addr2 = (volatile CFG_FLASH_WORD_SIZE *)(info->start[i]);
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST)
+ info->protect[i] = 0;
+ else
+ info->protect[i] = addr2[CFG_FLASH_READ2] & 1;
+ }
+
+ /*
+ * Prevent writes to uninitialized FLASH.
+ */
+ if (info->flash_id != FLASH_UNKNOWN) {
+ addr2 = (CFG_FLASH_WORD_SIZE *)info->start[0];
+ *addr2 = (CFG_FLASH_WORD_SIZE)0x00F000F0; /* reset bank */
+ }
+
+ return (info->size);
+}
+
+
+/*-----------------------------------------------------------------------
+ */
+
+int flash_erase (flash_info_t *info, int s_first, int s_last)
+{
+ volatile CFG_FLASH_WORD_SIZE *addr = (CFG_FLASH_WORD_SIZE *)(info->start[0]);
+ volatile CFG_FLASH_WORD_SIZE *addr2;
+ int flag, prot, sect, l_sect;
+ ulong start, now, last;
+ int i;
+
+ if ((s_first < 0) || (s_first > s_last)) {
+ if (info->flash_id == FLASH_UNKNOWN) {
+ printf ("- missing\n");
+ } else {
+ printf ("- no sectors to erase\n");
+ }
+ return 1;
+ }
+
+ if (info->flash_id == FLASH_UNKNOWN) {
+ printf ("Can't erase unknown flash type - aborted\n");
+ return 1;
+ }
+
+ prot = 0;
+ for (sect=s_first; sect<=s_last; ++sect) {
+ if (info->protect[sect]) {
+ prot++;
+ }
+ }
+
+ if (prot) {
+ printf ("- Warning: %d protected sectors will not be erased!\n",
+ prot);
+ } else {
+ printf ("\n");
+ }
+
+ l_sect = -1;
+
+ /* Disable interrupts which might cause a timeout here */
+ flag = disable_interrupts();
+
+ /* Start erase on unprotected sectors */
+ for (sect = s_first; sect<=s_last; sect++) {
+ if (info->protect[sect] == 0) { /* not protected */
+ addr2 = (CFG_FLASH_WORD_SIZE *)(info->start[sect]);
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) {
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr2[0] = (CFG_FLASH_WORD_SIZE)0x00500050; /* block erase */
+ for (i=0; i<50; i++)
+ udelay(1000); /* wait 1 ms */
+ } else {
+ if (sect == s_first) {
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00800080;
+ addr[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ }
+ addr2[0] = (CFG_FLASH_WORD_SIZE)0x00300030; /* sector erase */
+ }
+ l_sect = sect;
+ }
+ }
+
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
+
+ /* wait at least 80us - let's wait 1 ms */
+ udelay (1000);
+
+ /*
+ * We wait for the last triggered sector
+ */
+ if (l_sect < 0)
+ goto DONE;
+
+ start = get_timer (0);
+ last = start;
+ addr = (CFG_FLASH_WORD_SIZE *)(info->start[l_sect]);
+ while ((addr[0] & (CFG_FLASH_WORD_SIZE)0x00800080) != (CFG_FLASH_WORD_SIZE)0x00800080) {
+ if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
+ printf ("Timeout\n");
+ return 1;
+ }
+ /* show that we're waiting */
+ if ((now - last) > 1000) { /* every second */
+ putc ('.');
+ last = now;
+ }
+ }
+
+DONE:
+ /* reset to read mode */
+ addr = (CFG_FLASH_WORD_SIZE *)info->start[0];
+ addr[0] = (CFG_FLASH_WORD_SIZE)0x00F000F0; /* reset bank */
+
+ printf (" done\n");
+ return 0;
+}
+
+/*-----------------------------------------------------------------------
+ * Copy memory to flash, returns:
+ * 0 - OK
+ * 1 - write timeout
+ * 2 - Flash not erased
+ */
+
+int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
+{
+ ulong cp, wp, data;
+ int i, l, rc;
+
+ wp = (addr & ~3); /* get lower word aligned address */
+
+ /*
+ * handle unaligned start bytes
+ */
+ if ((l = addr - wp) != 0) {
+ data = 0;
+ for (i=0, cp=wp; i<l; ++i, ++cp) {
+ data = (data << 8) | (*(uchar *)cp);
+ }
+ for (; i<4 && cnt>0; ++i) {
+ data = (data << 8) | *src++;
+ --cnt;
+ ++cp;
+ }
+ for (; cnt==0 && i<4; ++i, ++cp) {
+ data = (data << 8) | (*(uchar *)cp);
+ }
+
+ if ((rc = write_word(info, wp, data)) != 0) {
+ return (rc);
+ }
+ wp += 4;
+ }
+
+ /*
+ * handle word aligned part
+ */
+ while (cnt >= 4) {
+ data = 0;
+ for (i=0; i<4; ++i) {
+ data = (data << 8) | *src++;
+ }
+ if ((rc = write_word(info, wp, data)) != 0) {
+ return (rc);
+ }
+ wp += 4;
+ cnt -= 4;
+ }
+
+ if (cnt == 0) {
+ return (0);
+ }
+
+ /*
+ * handle unaligned tail bytes
+ */
+ data = 0;
+ for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) {
+ data = (data << 8) | *src++;
+ --cnt;
+ }
+ for (; i<4; ++i, ++cp) {
+ data = (data << 8) | (*(uchar *)cp);
+ }
+
+ return (write_word(info, wp, data));
+}
+
+/*-----------------------------------------------------------------------
+ * Write a word to Flash, returns:
+ * 0 - OK
+ * 1 - write timeout
+ * 2 - Flash not erased
+ */
+static int write_word (flash_info_t *info, ulong dest, ulong data)
+{
+ volatile CFG_FLASH_WORD_SIZE *addr2 = (CFG_FLASH_WORD_SIZE *)(info->start[0]);
+ volatile CFG_FLASH_WORD_SIZE *dest2 = (CFG_FLASH_WORD_SIZE *)dest;
+ volatile CFG_FLASH_WORD_SIZE *data2 = (CFG_FLASH_WORD_SIZE *)&data;
+ ulong start;
+ int flag;
+ int i;
+
+ /* Check if Flash is (sufficiently) erased */
+ if ((*((volatile CFG_FLASH_WORD_SIZE *)dest) &
+ (CFG_FLASH_WORD_SIZE)data) != (CFG_FLASH_WORD_SIZE)data) {
+ return (2);
+ }
+ /* Disable interrupts which might cause a timeout here */
+ flag = disable_interrupts();
+
+ for (i=0; i<4/sizeof(CFG_FLASH_WORD_SIZE); i++)
+ {
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
+ addr2[CFG_FLASH_ADDR1] = (CFG_FLASH_WORD_SIZE)0x00550055;
+ addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00A000A0;
+
+ dest2[i] = data2[i];
+
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
+
+ /* data polling for D7 */
+ start = get_timer (0);
+ while ((dest2[i] & (CFG_FLASH_WORD_SIZE)0x00800080) !=
+ (data2[i] & (CFG_FLASH_WORD_SIZE)0x00800080)) {
+ if (get_timer(start) > CFG_FLASH_WRITE_TOUT) {
+ return (1);
+ }
+ }
+ }
+
+ return (0);
+}
+
+/*-----------------------------------------------------------------------
+ */
diff --git a/board/dave/common/fpga.c b/board/dave/common/fpga.c
new file mode 100644
index 000000000..9547325ca
--- /dev/null
+++ b/board/dave/common/fpga.c
@@ -0,0 +1,256 @@
+/*
+ * (C) Copyright 2001-2003
+ * Matthias Fuchs, esd gmbh germany, matthias.fuchs@esd-electronics.com
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <asm/processor.h>
+#include <command.h>
+
+/* ------------------------------------------------------------------------- */
+
+#ifdef FPGA_DEBUG
+#define DBG(x...) printf(x)
+#else
+#define DBG(x...)
+#endif /* DEBUG */
+
+#define MAX_ONES 226
+
+#ifdef CFG_FPGA_PRG
+# define FPGA_PRG CFG_FPGA_PRG /* FPGA program pin (ppc output)*/
+# define FPGA_CLK CFG_FPGA_CLK /* FPGA clk pin (ppc output) */
+# define FPGA_DATA CFG_FPGA_DATA /* FPGA data pin (ppc output) */
+# define FPGA_DONE CFG_FPGA_DONE /* FPGA done pin (ppc input) */
+# define FPGA_INIT CFG_FPGA_INIT /* FPGA init pin (ppc input) */
+#else
+# define FPGA_PRG 0x04000000 /* FPGA program pin (ppc output) */
+# define FPGA_CLK 0x02000000 /* FPGA clk pin (ppc output) */
+# define FPGA_DATA 0x01000000 /* FPGA data pin (ppc output) */
+# define FPGA_DONE 0x00800000 /* FPGA done pin (ppc input) */
+# define FPGA_INIT 0x00400000 /* FPGA init pin (ppc input) */
+#endif
+
+#define ERROR_FPGA_PRG_INIT_LOW -1 /* Timeout after PRG* asserted */
+#define ERROR_FPGA_PRG_INIT_HIGH -2 /* Timeout after PRG* deasserted */
+#define ERROR_FPGA_PRG_DONE -3 /* Timeout after programming */
+
+#define SET_FPGA(data) out32(GPIO0_OR, data)
+
+#define FPGA_WRITE_1 { \
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set data to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set clock to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
+
+#define FPGA_WRITE_0 { \
+ SET_FPGA(FPGA_PRG | FPGA_DATA); /* set clock to 0 */ \
+ SET_FPGA(FPGA_PRG); /* set data to 0 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK); /* set clock to 1 */ \
+ SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);} /* set data to 1 */
+
+#if 0
+static int fpga_boot (unsigned char *fpgadata, int size)
+{
+ int i, index, len;
+ int count;
+
+#ifdef CFG_FPGA_SPARTAN2
+ int j;
+#else
+ unsigned char b;
+ int bit;
+#endif
+
+ /* display infos on fpgaimage */
+ index = 15;
+ for (i = 0; i < 4; i++) {
+ len = fpgadata[index];
+ DBG ("FPGA: %s\n", &(fpgadata[index + 1]));
+ index += len + 3;
+ }
+
+#ifdef CFG_FPGA_SPARTAN2
+ /* search for preamble 0xFFFFFFFF */
+ while (1) {
+ if ((fpgadata[index] == 0xff) && (fpgadata[index + 1] == 0xff)
+ && (fpgadata[index + 2] == 0xff)
+ && (fpgadata[index + 3] == 0xff))
+ break; /* preamble found */
+ else
+ index++;
+ }
+#else
+ /* search for preamble 0xFF2X */
+ for (index = 0; index < size - 1; index++) {
+ if ((fpgadata[index] == 0xff)
+ && ((fpgadata[index + 1] & 0xf0) == 0x30))
+ break;
+ }
+ index += 2;
+#endif
+
+ DBG ("FPGA: configdata starts at position 0x%x\n", index);
+ DBG ("FPGA: length of fpga-data %d\n", size - index);
+
+ /*
+ * Setup port pins for fpga programming
+ */
+ out32 (GPIO0_ODR, 0x00000000); /* no open drain pins */
+ out32 (GPIO0_TCR, in32 (GPIO0_TCR) | FPGA_PRG | FPGA_CLK | FPGA_DATA); /* setup for output */
+ out32 (GPIO0_OR, in32 (GPIO0_OR) | FPGA_PRG | FPGA_CLK | FPGA_DATA); /* set pins to high */
+
+ DBG ("%s, ",
+ ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE");
+ DBG ("%s\n",
+ ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT");
+
+ /*
+ * Init fpga by asserting and deasserting PROGRAM*
+ */
+ SET_FPGA (FPGA_CLK | FPGA_DATA);
+
+ /* Wait for FPGA init line low */
+ count = 0;
+ while (in32 (GPIO0_IR) & FPGA_INIT) {
+ udelay (1000); /* wait 1ms */
+ /* Check for timeout - 100us max, so use 3ms */
+ if (count++ > 3) {
+ DBG ("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_INIT_LOW;
+ }
+ }
+
+ DBG ("%s, ",
+ ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE");
+ DBG ("%s\n",
+ ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT");
+
+ /* deassert PROGRAM* */
+ SET_FPGA (FPGA_PRG | FPGA_CLK | FPGA_DATA);
+
+ /* Wait for FPGA end of init period . */
+ count = 0;
+ while (!(in32 (GPIO0_IR) & FPGA_INIT)) {
+ udelay (1000); /* wait 1ms */
+ /* Check for timeout */
+ if (count++ > 3) {
+ DBG ("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_INIT_HIGH;
+ }
+ }
+
+ DBG ("%s, ",
+ ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE");
+ DBG ("%s\n",
+ ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT");
+
+ DBG ("write configuration data into fpga\n");
+ /* write configuration-data into fpga... */
+
+#ifdef CFG_FPGA_SPARTAN2
+ /*
+ * Load uncompressed image into fpga
+ */
+ for (i = index; i < size; i++) {
+ for (j = 0; j < 8; j++) {
+ if ((fpgadata[i] & 0x80) == 0x80) {
+ FPGA_WRITE_1;
+ } else {
+ FPGA_WRITE_0;
+ }
+ fpgadata[i] <<= 1;
+ }
+ }
+#else /* ! CFG_FPGA_SPARTAN2 */
+ /* send 0xff 0x20 */
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_1;
+ FPGA_WRITE_0;
+ FPGA_WRITE_0;
+ FPGA_WRITE_1;
+ FPGA_WRITE_0;
+ FPGA_WRITE_0;
+ FPGA_WRITE_0;
+ FPGA_WRITE_0;
+ FPGA_WRITE_0;
+
+ /*
+ ** Bit_DeCompression
+ ** Code 1 .. maxOnes : n '1's followed by '0'
+ ** maxOnes + 1 .. maxOnes + 1 : n - 1 '1's no '0'
+ ** maxOnes + 2 .. 254 : n - (maxOnes + 2) '0's followed by '1'
+ ** 255 : '1'
+ */
+
+ for (i = index; i < size; i++) {
+ b = fpgadata[i];
+ if ((b >= 1) && (b <= MAX_ONES)) {
+ for (bit = 0; bit < b; bit++) {
+ FPGA_WRITE_1;
+ }
+ FPGA_WRITE_0;
+ } else if (b == (MAX_ONES + 1)) {
+ for (bit = 1; bit < b; bit++) {
+ FPGA_WRITE_1;
+ }
+ } else if ((b >= (MAX_ONES + 2)) && (b <= 254)) {
+ for (bit = 0; bit < (b - (MAX_ONES + 2)); bit++) {
+ FPGA_WRITE_0;
+ }
+ FPGA_WRITE_1;
+ } else if (b == 255) {
+ FPGA_WRITE_1;
+ }
+ }
+#endif /* CFG_FPGA_SPARTAN2 */
+
+ DBG ("%s, ",
+ ((in32 (GPIO0_IR) & FPGA_DONE) == 0) ? "NOT DONE" : "DONE");
+ DBG ("%s\n",
+ ((in32 (GPIO0_IR) & FPGA_INIT) == 0) ? "NOT INIT" : "INIT");
+
+ /*
+ * Check if fpga's DONE signal - correctly booted ?
+ */
+
+ /* Wait for FPGA end of programming period . */
+ count = 0;
+ while (!(in32 (GPIO0_IR) & FPGA_DONE)) {
+ udelay (1000); /* wait 1ms */
+ /* Check for timeout */
+ if (count++ > 3) {
+ DBG ("FPGA: Booting failed!\n");
+ return ERROR_FPGA_PRG_DONE;
+ }
+ }
+
+ DBG ("FPGA: Booting successful!\n");
+ return 0;
+}
+#endif /* 0 */
diff --git a/board/dave/common/pci.c b/board/dave/common/pci.c
new file mode 100644
index 000000000..f8f180c6c
--- /dev/null
+++ b/board/dave/common/pci.c
@@ -0,0 +1,202 @@
+/*
+ * (C) Copyright 2001
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <ppc4xx.h>
+#include <asm/processor.h>
+#include <pci.h>
+
+
+u_long pci9054_iobase;
+
+
+#define PCI_PRIMARY_CAR (0x500000dc) /* PCI config address reg */
+#define PCI_PRIMARY_CDR (0x80000000) /* PCI config data reg */
+
+
+/*-----------------------------------------------------------------------------+
+| Subroutine: pci9054_read_config_dword
+| Description: Read a PCI configuration register
+| Inputs:
+| hose PCI Controller
+| dev PCI Bus+Device+Function number
+| offset Configuration register number
+| value Address of the configuration register value
+| Return value:
+| 0 Successful
++-----------------------------------------------------------------------------*/
+int pci9054_read_config_dword(struct pci_controller *hose,
+ pci_dev_t dev, int offset, u32* value)
+{
+ unsigned long conAdrVal;
+ unsigned long val;
+
+ /* generate coded value for CON_ADR register */
+ conAdrVal = dev | (offset & 0xfc) | 0x80000000;
+
+ /* Load the CON_ADR (CAR) value first, then read from CON_DATA (CDR) */
+ *(unsigned long *)PCI_PRIMARY_CAR = conAdrVal;
+
+ /* Note: *pResult comes back as -1 if machine check happened */
+ val = in32r(PCI_PRIMARY_CDR);
+
+ *value = (unsigned long) val;
+
+ out32r(PCI_PRIMARY_CAR, 0);
+
+ if ((*(unsigned long *)0x50000304) & 0x60000000)
+ {
+ /* clear pci master/target abort bits */
+ *(unsigned long *)0x50000304 = *(unsigned long *)0x50000304;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------+
+| Subroutine: pci9054_write_config_dword
+| Description: Write a PCI configuration register.
+| Inputs:
+| hose PCI Controller
+| dev PCI Bus+Device+Function number
+| offset Configuration register number
+| Value Configuration register value
+| Return value:
+| 0 Successful
+| Updated for pass2 errata #6. Need to disable interrupts and clear the
+| PCICFGADR reg after writing the PCICFGDATA reg.
++-----------------------------------------------------------------------------*/
+int pci9054_write_config_dword(struct pci_controller *hose,
+ pci_dev_t dev, int offset, u32 value)
+{
+ unsigned long conAdrVal;
+
+ conAdrVal = dev | (offset & 0xfc) | 0x80000000;
+
+ *(unsigned long *)PCI_PRIMARY_CAR = conAdrVal;
+
+ out32r(PCI_PRIMARY_CDR, value);
+
+ out32r(PCI_PRIMARY_CAR, 0);
+
+ /* clear pci master/target abort bits */
+ *(unsigned long *)0x50000304 = *(unsigned long *)0x50000304;
+
+ return (0);
+}
+
+/*-----------------------------------------------------------------------
+ */
+
+#ifdef CONFIG_DASA_SIM
+static void pci_dasa_sim_config_pci9054(struct pci_controller *hose, pci_dev_t dev,
+ struct pci_config_table *_)
+{
+ unsigned int iobase;
+ unsigned short status = 0;
+ unsigned char timer;
+
+ /*
+ * Configure PLX PCI9054
+ */
+ pci_read_config_word(CFG_PCI9054_DEV_FN, PCI_COMMAND, &status);
+ status |= PCI_COMMAND_MASTER | PCI_COMMAND_IO | PCI_COMMAND_MEMORY;
+ pci_write_config_word(CFG_PCI9054_DEV_FN, PCI_COMMAND, status);
+
+ /* Check the latency timer for values >= 0x60.
+ */
+ pci_read_config_byte(CFG_PCI9054_DEV_FN, PCI_LATENCY_TIMER, &timer);
+ if (timer < 0x60)
+ {
+ pci_write_config_byte(CFG_PCI9054_DEV_FN, PCI_LATENCY_TIMER, 0x60);
+ }
+
+ /* Set I/O base register.
+ */
+ pci_write_config_dword(CFG_PCI9054_DEV_FN, PCI_BASE_ADDRESS_0, CFG_PCI9054_IOBASE);
+ pci_read_config_dword(CFG_PCI9054_DEV_FN, PCI_BASE_ADDRESS_0, &iobase);
+
+ pci9054_iobase = pci_mem_to_phys(CFG_PCI9054_DEV_FN, iobase & PCI_BASE_ADDRESS_MEM_MASK);
+
+ if (pci9054_iobase == 0xffffffff)
+ {
+ printf("Error: Can not set I/O base register.\n");
+ return;
+ }
+}
+#endif
+
+static struct pci_config_table pci9054_config_table[] = {
+#ifndef CONFIG_PCI_PNP
+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ PCI_BUS(CFG_ETH_DEV_FN), PCI_DEV(CFG_ETH_DEV_FN), PCI_FUNC(CFG_ETH_DEV_FN),
+ pci_cfgfunc_config_device, { CFG_ETH_IOBASE,
+ CFG_ETH_IOBASE,
+ PCI_COMMAND_IO | PCI_COMMAND_MASTER }},
+#ifdef CONFIG_DASA_SIM
+ { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+ PCI_BUS(CFG_PCI9054_DEV_FN), PCI_DEV(CFG_PCI9054_DEV_FN), PCI_FUNC(CFG_PCI9054_DEV_FN),
+ pci_dasa_sim_config_pci9054 },
+#endif
+#endif
+ { }
+};
+
+static struct pci_controller pci9054_hose = {
+ config_table: pci9054_config_table,
+};
+
+void pci_init(void)
+{
+ struct pci_controller *hose = &pci9054_hose;
+
+ /*
+ * Register the hose
+ */
+ hose->first_busno = 0;
+ hose->last_busno = 0xff;
+
+ /* System memory space */
+ pci_set_region(hose->regions + 0,
+ 0x00000000, 0x00000000, 0x01000000,
+ PCI_REGION_MEM | PCI_REGION_MEMORY);
+
+ /* PCI Memory space */
+ pci_set_region(hose->regions + 1,
+ 0x00000000, 0xc0000000, 0x10000000,
+ PCI_REGION_MEM);
+
+ pci_set_ops(hose,
+ pci_hose_read_config_byte_via_dword,
+ pci_hose_read_config_word_via_dword,
+ pci9054_read_config_dword,
+ pci_hose_write_config_byte_via_dword,
+ pci_hose_write_config_word_via_dword,
+ pci9054_write_config_dword);
+
+ hose->region_count = 2;
+
+ pci_register_hose(hose);
+
+ hose->last_busno = pci_hose_scan(hose);
+}
diff --git a/board/evb64260/evb64260.c b/board/evb64260/evb64260.c
index 4f3032efe..99717beb0 100644
--- a/board/evb64260/evb64260.c
+++ b/board/evb64260/evb64260.c
@@ -237,7 +237,7 @@ int board_pre_init (void)
* on-board sram on the eval board, and updates the correct
* registers to boot from the sram. (device0)
*/
-#ifdef CONFIG_ZUMA_V2
+#if defined(CONFIG_ZUMA_V2) || defined(CONFIG_P3G4)
/* Zuma has no SRAM */
sram_boot = 0;
#else
@@ -265,6 +265,7 @@ int board_pre_init (void)
GT_REG_WRITE(DEVICE_BANK2PARAMETERS, CFG_DEV2_PAR);
#endif
+#ifdef CONFIG_EVB64260
#ifdef CFG_32BIT_BOOT_PAR
/* detect if we are booting from the 32 bit flash */
if (GTREGREAD(DEVICE_BOOT_BANK_PARAMETERS) & (0x3 << 20)) {
@@ -280,6 +281,11 @@ int board_pre_init (void)
/* 8 bit boot flash only */
GT_REG_WRITE(DEVICE_BOOT_BANK_PARAMETERS, CFG_8BIT_BOOT_PAR);
#endif
+#else /* CONFIG_EVB64260 not defined */
+ /* We are booting from 16-bit flash.
+ */
+ GT_REG_WRITE(DEVICE_BOOT_BANK_PARAMETERS, CFG_16BIT_BOOT_PAR);
+#endif
gt_cpu_config();
@@ -351,7 +357,7 @@ checkboard (void)
void
debug_led(int led, int mode)
{
-#ifndef CONFIG_ZUMA_V2
+#if !defined(CONFIG_ZUMA_V2) && !defined(CONFIG_P3G4)
volatile int *addr = NULL;
int dummy;
diff --git a/board/evb64260/flash.c b/board/evb64260/flash.c
index c89739333..e6cf8eb6b 100644
--- a/board/evb64260/flash.c
+++ b/board/evb64260/flash.c
@@ -54,6 +54,7 @@ flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
static ulong flash_get_size (int portwidth, vu_long *addr, flash_info_t *info);
static int write_word (flash_info_t *info, ulong dest, ulong data);
static void flash_get_offsets (ulong base, flash_info_t *info);
+static flash_info_t *flash_get_info(ulong base);
/*-----------------------------------------------------------------------
*/
@@ -72,7 +73,11 @@ flash_init (void)
/* the boot flash */
base = CFG_FLASH_BASE;
- size_b0 = flash_get_size(1, (vu_long *)base, &flash_info[0]);
+#ifndef CFG_BOOT_FLASH_WIDTH
+#define CFG_BOOT_FLASH_WIDTH 1
+#endif
+ size_b0 = flash_get_size(CFG_BOOT_FLASH_WIDTH, (vu_long *)base,
+ &flash_info[0]);
printf("[%ldkB@%lx] ", size_b0/1024, base);
@@ -98,6 +103,22 @@ flash_init (void)
base+=size;
}
+#if CFG_MONITOR_BASE >= CFG_FLASH_BASE
+ /* monitor protection ON by default */
+ flash_protect(FLAG_PROTECT_SET,
+ CFG_MONITOR_BASE,
+ CFG_MONITOR_BASE + monitor_flash_len - 1,
+ flash_get_info(CFG_MONITOR_BASE));
+#endif
+
+#ifdef CFG_ENV_IS_IN_FLASH
+ /* ENV protection ON by default */
+ flash_protect(FLAG_PROTECT_SET,
+ CFG_ENV_ADDR,
+ CFG_ENV_ADDR + CFG_ENV_SIZE - 1,
+ flash_get_info(CFG_ENV_ADDR));
+#endif
+
flash_size = size_b0 + size_b1;
return flash_size;
}
@@ -148,6 +169,23 @@ flash_get_offsets (ulong base, flash_info_t *info)
/*-----------------------------------------------------------------------
*/
+
+static flash_info_t *flash_get_info(ulong base)
+{
+ int i;
+ flash_info_t * info;
+
+ for (i = 0; i < CFG_MAX_FLASH_BANKS; i ++) {
+ info = & flash_info[i];
+ if (info->start[0] <= base && base <= info->start[0] + info->size - 1)
+ break;
+ }
+
+ return i == CFG_MAX_FLASH_BANKS ? 0 : info;
+}
+
+/*-----------------------------------------------------------------------
+ */
void
flash_print_info (flash_info_t *info)
{
@@ -247,8 +285,11 @@ static inline void flash_cmd(int width, volatile unsigned char *addr, int offset
/* 2x16 */
unsigned long cmd32=(cmd<<16)|cmd;
*(volatile unsigned long *)(addr+offset*2)=cmd32;
+ } else if (width == 2) {
+ /* 1x16 */
+ *(volatile unsigned short *)((unsigned short*)addr+offset)=cmd;
} else {
- /* 1x16 or 1x8 */
+ /* 1x8 */
*(volatile unsigned char *)(addr+offset)=cmd;
}
}
diff --git a/board/evb64260/mpsc.c b/board/evb64260/mpsc.c
index 718fe0566..ee623ca56 100644
--- a/board/evb64260/mpsc.c
+++ b/board/evb64260/mpsc.c
@@ -273,7 +273,7 @@ mpsc_init(int baud)
/* BRG CONFIG */
galbrg_set_baudrate(CHANNEL, baud);
-#ifdef CONFIG_ZUMA_V2
+#if defined(CONFIG_ZUMA_V2) || defined(CONFIG_P3G4)
galbrg_set_clksrc(CHANNEL,0x8); /* connect TCLK -> BRG */
#else
galbrg_set_clksrc(CHANNEL,0);
@@ -387,7 +387,7 @@ galbrg_set_baudrate(int channel, int rate)
galbrg_disable(channel);
-#ifdef CONFIG_ZUMA_V2
+#if defined(CONFIG_ZUMA_V2) || defined(CONFIG_P3G4)
/* from tclk */
clock = (CFG_BUS_HZ/(16*rate)) - 1;
#else
@@ -803,6 +803,7 @@ static int
galmpsc_shutdown(int mpsc)
{
DECLARE_GLOBAL_DATA_PTR;
+#if 0
unsigned int temp;
/* cause RX abort (clears RX) */
@@ -810,9 +811,11 @@ galmpsc_shutdown(int mpsc)
temp |= MPSC_RX_ABORT | MPSC_TX_ABORT;
temp &= ~MPSC_ENTER_HUNT;
GT_REG_WRITE_MIRROR(GALMPSC_CHANNELREG_2,mpsc,GALMPSC_REG_GAP,temp);
+#endif
- GT_REG_WRITE(GALSDMA_0_COM_REG, 0);
- GT_REG_WRITE(GALSDMA_0_COM_REG, SDMA_TX_ABORT | SDMA_RX_ABORT);
+ GT_REG_WRITE(GALSDMA_0_COM_REG + CHANNEL * GALSDMA_REG_DIFF, 0);
+ GT_REG_WRITE(GALSDMA_0_COM_REG + CHANNEL * GALSDMA_REG_DIFF,
+ SDMA_TX_ABORT | SDMA_RX_ABORT);
/* shut down the MPSC */
GT_REG_WRITE(GALMPSC_MCONF_LOW, 0);
@@ -823,14 +826,15 @@ galmpsc_shutdown(int mpsc)
/* shut down the sdma engines. */
/* reset config to default */
- GT_REG_WRITE(GALSDMA_0_CONF_REG, 0x000000fc);
+ GT_REG_WRITE(GALSDMA_0_CONF_REG + CHANNEL * GALSDMA_REG_DIFF,
+ 0x000000fc);
udelay(100);
/* clear the SDMA current and first TX and RX pointers */
- GT_REG_WRITE(GALSDMA_0_CUR_RX_PTR, 0);
- GT_REG_WRITE(GALSDMA_0_CUR_TX_PTR, 0);
- GT_REG_WRITE(GALSDMA_0_FIR_TX_PTR, 0);
+ GT_REG_WRITE(GALSDMA_0_CUR_RX_PTR + CHANNEL * GALSDMA_REG_DIFF, 0);
+ GT_REG_WRITE(GALSDMA_0_CUR_TX_PTR + CHANNEL * GALSDMA_REG_DIFF, 0);
+ GT_REG_WRITE(GALSDMA_0_FIR_TX_PTR + CHANNEL * GALSDMA_REG_DIFF, 0);
udelay(100);
diff --git a/board/evb64260/sdram_init.c b/board/evb64260/sdram_init.c
index 361656574..d019d2265 100644
--- a/board/evb64260/sdram_init.c
+++ b/board/evb64260/sdram_init.c
@@ -175,7 +175,30 @@ check_dimm(uchar slot, sdram_info_t *info)
return 0;
}
-#else /* ! CONFIG_ZUMA_V2 */
+#elif defined(CONFIG_P3G4)
+
+static int
+check_dimm(uchar slot, sdram_info_t *info)
+{
+ memset(info, 0, sizeof(*info));
+
+ if (slot)
+ return 0;
+
+ info->slot = slot;
+ info->banks = 1;
+ info->registered = 0;
+ info->drb_size = 4;
+ info->tpar = 3;
+ info->tras_clocks = 6;
+ info->burst_len = 4;
+#ifdef CONFIG_ECC
+ info->ecc = 2;
+#endif
+ return 0;
+}
+
+#else /* ! CONFIG_ZUMA_V2 && ! CONFIG_P3G4*/
/* This code reads the SPD chip on the sdram and populates
* the array which is passed in with the relevant information */
diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c
index f1adeaa7b..dd9a4899c 100644
--- a/common/cmd_bdinfo.c
+++ b/common/cmd_bdinfo.c
@@ -81,7 +81,7 @@ int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
for (i=0; i<6; ++i) {
printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
}
-#ifdef CONFIG_PN62
+#if (defined CONFIG_PN62) || (defined CONFIG_PPCHAMELEONEVB)
printf ("\neth1addr =");
for (i=0; i<6; ++i) {
printf ("%c%02X", i ? ':' : ' ', bd->bi_enet1addr[i]);
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index ec76aa328..26cbe5d1f 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -520,7 +520,7 @@ static int NanD_WaitReady(struct nand_chip *nand, int ale_wait)
else
udelay(10);
#else /* has functional r/b signal */
- NAND_WAIT_READY(nand);
+ NAND_WAIT_READY(nand);
#endif
return ret;
}
diff --git a/cpu/mpc5xxx/fec.c b/cpu/mpc5xxx/fec.c
index b01e44c18..557355f9d 100644
--- a/cpu/mpc5xxx/fec.c
+++ b/cpu/mpc5xxx/fec.c
@@ -809,9 +809,13 @@ int mpc5xxx_fec_initialize(bd_t * bis)
{
mpc5xxx_fec_priv *fec;
struct eth_device *dev;
+ char *tmp, *end;
+ char env_enetaddr[6];
+ int i;
fec = (mpc5xxx_fec_priv *)malloc(sizeof(*fec));
dev = (struct eth_device *)malloc(sizeof(*dev));
+ memset(dev, 0, sizeof *dev);
fec->eth = (ethernet_regs *)MPC5XXX_FEC;
fec->tbdBase = (FEC_TBD *)FEC_BD_BASE;
@@ -830,6 +834,21 @@ int mpc5xxx_fec_initialize(bd_t * bis)
sprintf(dev->name, "FEC ETHERNET");
eth_register(dev);
+ /*
+ * Try to set the mac address now. The fec mac address is
+ * a garbage after reset. When not using fec for booting
+ * the Linux fec driver will try to work with this garbage.
+ */
+ tmp = getenv("ethaddr");
+ if (tmp) {
+ for (i=0; i<6; i++) {
+ env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0;
+ if (tmp)
+ tmp = (*end) ? end+1 : end;
+ }
+ mpc5xxx_fec_set_hwaddr(fec, env_enetaddr);
+ }
+
return 1;
}
diff --git a/cpu/ppc4xx/cpu.c b/cpu/ppc4xx/cpu.c
index 1d7c0c9a7..ab9b2e5ea 100644
--- a/cpu/ppc4xx/cpu.c
+++ b/cpu/ppc4xx/cpu.c
@@ -50,15 +50,15 @@ int checkcpu (void)
{
#if defined(CONFIG_405GP) || \
defined(CONFIG_405CR) || \
- defined(CONFIG_IOP480) || \
- defined(CONFIG_440) || \
- defined(CONFIG_405EP)
+ defined(CONFIG_405EP) || \
+ defined(CONFIG_440) || \
+ defined(CONFIG_IOP480)
uint pvr = get_pvr();
#endif
#if defined(CONFIG_405GP) || \
defined(CONFIG_405CR) || \
- defined(CONFIG_IOP480) || \
- defined(CONFIG_405EP)
+ defined(CONFIG_405EP) || \
+ defined(CONFIG_IOP480)
DECLARE_GLOBAL_DATA_PTR;
ulong clock = gd->cpu_clk;
diff --git a/cpu/ppc4xx/miiphy.c b/cpu/ppc4xx/miiphy.c
index 0606ebef9..e719a330f 100644
--- a/cpu/ppc4xx/miiphy.c
+++ b/cpu/ppc4xx/miiphy.c
@@ -101,6 +101,7 @@ int miiphy_read (unsigned char addr, unsigned char reg,
sta_reg = reg; /* reg address */
/* set clock (50Mhz) and read flags */
sta_reg = (sta_reg | EMAC_STACR_READ) & ~EMAC_STACR_CLK_100MHZ;
+ sta_reg = sta_reg | CONFIG_PHY_CLK_FREQ;
sta_reg = sta_reg | (addr << 5); /* Phy address */
out32 (EMAC_STACR, sta_reg);
@@ -156,6 +157,7 @@ int miiphy_write (unsigned char addr, unsigned char reg,
sta_reg = reg; /* reg address */
/* set clock (50Mhz) and read flags */
sta_reg = (sta_reg | EMAC_STACR_WRITE) & ~EMAC_STACR_CLK_100MHZ;
+ sta_reg = sta_reg | CONFIG_PHY_CLK_FREQ; /* Set clock frequency (PLB freq. dependend) */
sta_reg = sta_reg | ((unsigned long) addr << 5); /* Phy address */
memcpy (&sta_reg, &value, 2); /* put in data */
diff --git a/cpu/ppc4xx/start.S b/cpu/ppc4xx/start.S
index e3e92afa8..215a925b9 100644
--- a/cpu/ppc4xx/start.S
+++ b/cpu/ppc4xx/start.S
@@ -702,7 +702,8 @@ _start:
/* NEVER RETURNS! */
bl board_init_f /* run first part of init code (from Flash) */
-#endif /* CONFIG_405GP || CONFIG_405CR */
+#endif /* CONFIG_405GP || CONFIG_405CR || CONFIG_405 || CONFIG_405EP */
+ /*----------------------------------------------------------------------- */
/*****************************************************************************/
diff --git a/drivers/pci.c b/drivers/pci.c
index b9a1b9a87..c91c992e8 100644
--- a/drivers/pci.c
+++ b/drivers/pci.c
@@ -428,7 +428,7 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
dev < PCI_BDF(bus,PCI_MAX_PCI_DEVICES-1,PCI_MAX_PCI_FUNCTIONS-1);
dev += PCI_BDF(0,0,1))
{
-#ifndef CONFIG_405GP /* don't skip host bridge on ppc405gp */
+#if ((!defined(CONFIG_405GP)) && (!defined(CONFIG_405EP))) /* don't skip host bridge on ppc405gp and 405ep */
/* Skip our host bridge */
if ( dev == PCI_BDF(hose->first_busno,0,0) )
continue;
diff --git a/include/asm-ppc/global_data.h b/include/asm-ppc/global_data.h
index 8ebaa17a2..f17a764a1 100644
--- a/include/asm-ppc/global_data.h
+++ b/include/asm-ppc/global_data.h
@@ -60,7 +60,7 @@ typedef struct global_data {
unsigned int dp_alloc_base;
unsigned int dp_alloc_top;
#endif
-#if defined(CONFIG_EVB64260)
+#if defined(CFG_GT_6426x)
unsigned int mirror_hack[16];
#endif
#if defined(CONFIG_SANDPOINT) || \
diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h
index 726102da2..feaff9468 100644
--- a/include/asm-ppc/processor.h
+++ b/include/asm-ppc/processor.h
@@ -494,6 +494,7 @@
#define PVR_405CR_RA 0x40110041
#define PVR_405CR_RB 0x401100C5
#define PVR_405CR_RC 0x40110145 /* same as pc405gp rev e */
+#define PVR_405EP_RA 0x51210950
#define PVR_405GPR_RB 0x50910951
#define PVR_440GP_RB 0x40120440
#define PVR_440GP_RC 0x40120481
diff --git a/include/asm-ppc/u-boot.h b/include/asm-ppc/u-boot.h
index 8014225db..9f861ac23 100644
--- a/include/asm-ppc/u-boot.h
+++ b/include/asm-ppc/u-boot.h
@@ -61,11 +61,11 @@ typedef struct bd_info {
unsigned long bi_pcifreq; /* PCI Bus Freq, in MHz */
#endif
unsigned long bi_baudrate; /* Console Baudrate */
-#if defined(CONFIG_405GP) || \
+#if defined(CONFIG_405) || \
+ defined(CONFIG_405GP) || \
defined(CONFIG_405CR) || \
- defined(CONFIG_440) || \
- defined(CONFIG_405) || \
- defined(CONFIG_405EP)
+ defined(CONFIG_405EP) || \
+ defined(CONFIG_440)
unsigned char bi_s_version[4]; /* Version of this structure */
unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */
unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */
@@ -76,14 +76,15 @@ typedef struct bd_info {
#if defined(CONFIG_HYMOD)
hymod_conf_t bi_hymod_conf; /* hymod configuration information */
#endif
-#if defined(CONFIG_EVB64260) || \
- defined(CONFIG_PN62) || \
- defined(CONFIG_SXNI855T) || \
+#if defined(CFG_GT_6426x) || \
+ defined(CONFIG_PN62) || \
+ defined(CONFIG_PPCHAMELEONEVB) || \
+ defined(CONFIG_SXNI855T) || \
defined(CONFIG_SVM_SC8xx)
/* second onboard ethernet port */
unsigned char bi_enet1addr[6];
#endif
-#if defined(CONFIG_EVB64260) || defined(CONFIG_SVM_SC8xx)
+#if defined(CFG_GT_6426x) || defined(CONFIG_SVM_SC8xx)
/* third onboard ethernet port */
unsigned char bi_enet2addr[6];
#endif
diff --git a/include/configs/P3G4.h b/include/configs/P3G4.h
new file mode 100644
index 000000000..d7bfe8191
--- /dev/null
+++ b/include/configs/P3G4.h
@@ -0,0 +1,394 @@
+/*
+ * (C) Copyright 2001
+ * Josh Huber <huber@mclx.com>, Mission Critical Linux, Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * board/config.h - configuration options, board specific
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/processor.h>
+
+#ifndef __ASSEMBLY__
+#include <galileo/core.h>
+#endif
+
+#include "../board/evb64260/local.h"
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+
+#define CONFIG_P3G4 1 /* this is a P3G4 board */
+#define CFG_GT_6426x GT_64260 /* with a 64260 system controller */
+
+#define CONFIG_BAUDRATE 115200 /* console baudrate = 115200 */
+
+#undef CONFIG_ECC /* enable ECC support */
+/* #define CONFIG_EVB64260_750CX 1 */ /* Support the EVB-64260-750CX Board */
+
+/* which initialization functions to call for this board */
+#define CONFIG_MISC_INIT_R 1
+#define CONFIG_BOARD_PRE_INIT 1
+
+#define CFG_BOARD_NAME "P3G4"
+
+#undef CFG_HUSH_PARSER
+#define CFG_PROMPT_HUSH_PS2 "> "
+
+/*
+ * The following defines let you select what serial you want to use
+ * for your console driver.
+ *
+ * to use the MPSC, #define CONFIG_MPSC. If you have wired up another
+ * mpsc channel, change CONFIG_MPSC_PORT to the desired value.
+ */
+#define CONFIG_MPSC
+#define CONFIG_MPSC_PORT 1
+
+#define CONFIG_NET_MULTI /* attempt all available adapters */
+
+/* define this if you want to enable GT MAC filtering */
+#define CONFIG_GT_USE_MAC_HASH_TABLE
+
+#undef CONFIG_ETHER_PORT_MII /* use RMII */
+
+#if 1
+#define CONFIG_BOOTDELAY -1 /* autoboot disabled */
+#else
+#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */
+#endif
+#define CONFIG_ZERO_BOOTDELAY_CHECK
+
+#undef CONFIG_BOOTARGS
+#define CONFIG_BOOTCOMMAND \
+ "bootp && " \
+ "setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath " \
+ "ip=$ipaddr:$serverip:$gatewayip:" \
+ "$netmask:$hostname:eth0:none; && " \
+ "bootm"
+
+#define CONFIG_LOADS_ECHO 0 /* echo off for serial download */
+#define CFG_LOADS_BAUD_CHANGE /* allow baudrate changes */
+
+#undef CONFIG_WATCHDOG /* watchdog disabled */
+#undef CONFIG_ALTIVEC /* undef to disable */
+
+#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \
+ CONFIG_BOOTP_BOOTFILESIZE)
+
+
+#define CONFIG_COMMANDS (CONFIG_CMD_DFL | CFG_CMD_ASKENV)
+
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+/*
+ * Miscellaneous configurable options
+ */
+#define CFG_LONGHELP /* undef to save memory */
+#define CFG_PROMPT "=> " /* Monitor Command Prompt */
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
+#else
+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
+#endif
+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define CFG_MAXARGS 16 /* max number of command args */
+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
+
+#define CFG_MEMTEST_START 0x00400000 /* memtest works on */
+#define CFG_MEMTEST_END 0x00C00000 /* 4 ... 12 MB in DRAM */
+
+#define CFG_LOAD_ADDR 0x00300000 /* default load address */
+
+#define CFG_HZ 1000 /* decr freq: 1ms ticks */
+#define CFG_BUS_HZ 133000000 /* 133 MHz */
+#define CFG_BUS_CLK CFG_BUS_HZ
+
+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
+
+
+/*
+ * Low Level Configuration Settings
+ * (address mappings, register initial values, etc.)
+ * You should know what you are doing if you make changes here.
+ */
+
+/*-----------------------------------------------------------------------
+ * Definitions for initial stack pointer and data area
+ */
+#define CFG_INIT_RAM_ADDR 0x40000000
+#define CFG_INIT_RAM_END 0x1000
+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for init data */
+#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
+#define CFG_INIT_RAM_LOCK
+
+
+/*-----------------------------------------------------------------------
+ * Start addresses for the final memory configuration
+ * (Set up by the startup code)
+ * Please note that CFG_SDRAM_BASE _must_ start at 0
+ */
+#define CFG_SDRAM_BASE 0x00000000
+#define CFG_FLASH_BASE 0xff800000
+#define CFG_RESET_ADDRESS 0xfff00100
+#define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
+#define CFG_MONITOR_BASE TEXT_BASE
+#define CFG_MALLOC_LEN (256 << 10) /* Reserve 256 kB for malloc */
+
+/* areas to map different things with the GT in physical space */
+#define CFG_DRAM_BANKS 1
+#define CFG_DFL_GT_REGS 0x14000000 /* boot time GT_REGS */
+
+/* What to put in the bats. */
+#define CFG_MISC_REGION_BASE 0xf0000000
+
+/* Peripheral Device section */
+#define CFG_GT_REGS 0xf8000000
+#define CFG_DEV_BASE 0xff000000
+
+#define CFG_DEV0_SPACE CFG_DEV_BASE
+#define CFG_DEV1_SPACE (CFG_DEV0_SPACE + CFG_DEV0_SIZE)
+#define CFG_DEV2_SPACE (CFG_DEV1_SPACE + CFG_DEV1_SIZE)
+#define CFG_DEV3_SPACE (CFG_DEV2_SPACE + CFG_DEV2_SIZE)
+
+#define CFG_DEV0_SIZE _8M /* Flash bank */
+#define CFG_DEV1_SIZE 0 /* unused */
+#define CFG_DEV2_SIZE 0 /* unused */
+#define CFG_DEV3_SIZE 0 /* unused */
+
+#define CFG_16BIT_BOOT_PAR 0xc01b5e7c
+#define CFG_DEV0_PAR CFG_16BIT_BOOT_PAR
+
+#if 0 /* Wrong?? NTL */
+#define CFG_MPP_CONTROL_0 0x53541717 /* InitAct EOT[4] DBurst TCEn[1] */
+ /* DMAAck[1:0] GNT0[1:0] */
+#else
+#define CFG_MPP_CONTROL_0 0x53547777 /* InitAct EOT[4] DBurst TCEn[1] */
+ /* REQ0[1:0] GNT0[1:0] */
+#endif
+#define CFG_MPP_CONTROL_1 0x44009911 /* TCEn[4] TCTcnt[4] GPP[13:12] */
+ /* DMAReq[4] DMAAck[4] WDNMI WDE */
+#if 0 /* Wrong?? NTL */
+#define CFG_MPP_CONTROL_2 0x40091818 /* TCTcnt[0] GPP[22:21] BClkIn */
+ /* DMAAck[1:0] GNT1[1:0] */
+#else
+#define CFG_MPP_CONTROL_2 0x40098888 /* TCTcnt[0] */
+ /* GPP[22] (RS232IntB or PCI1Int) */
+ /* GPP[21] (RS323IntA) */
+ /* BClkIn */
+ /* REQ1[1:0] GNT1[1:0] */
+#endif
+
+#if 0 /* Wrong?? NTL */
+# define CFG_MPP_CONTROL_3 0x00090066 /* GPP[31:29] BClkOut0 */
+ /* GPP[27:26] Int[1:0] */
+#else
+# define CFG_MPP_CONTROL_3 0x22090066 /* MREQ MGNT */
+ /* GPP[29] (PCI1Int) */
+ /* BClkOut0 */
+ /* GPP[27] (PCI0Int) */
+ /* GPP[26] (RtcInt or PCI1Int) */
+ /* CPUInt[25:24] */
+#endif
+
+#define CFG_SERIAL_PORT_MUX 0x00001102 /* 11=MPSC1/MPSC0 02=ETH 0 and 2 RMII */
+
+#if 0 /* Wrong?? - NTL */
+# define CFG_GPP_LEVEL_CONTROL 0x000002c6
+#else
+# define CFG_GPP_LEVEL_CONTROL 0x2c600000 /* 0010 1100 0110 0000 */
+ /* gpp[29] */
+ /* gpp[27:26] */
+ /* gpp[22:21] */
+
+# define CFG_SDRAM_CONFIG 0xd8e18200 /* 0x448 */
+ /* idmas use buffer 1,1
+ comm use buffer 0
+ pci use buffer 1,1
+ cpu use buffer 0
+ normal load (see also ifdef HVL)
+ standard SDRAM (see also ifdef REG)
+ non staggered refresh */
+ /* 31:26 25 23 20 19 18 16 */
+ /* 110110 00 111 0 0 00 1 */
+ /* refresh_count=0x200
+ phisical interleaving disable
+ virtual interleaving enable */
+ /* 15 14 13:0 */
+ /* 1 0 0x200 */
+#endif
+
+#if 0
+#define CFG_DUART_IO CFG_DEV2_SPACE
+#define CFG_DUART_CHAN 1 /* channel to use for console */
+#endif
+#undef CFG_INIT_CHAN1
+#undef CFG_INIT_CHAN2
+#if 0
+#define SRAM_BASE CFG_DEV0_SPACE
+#define SRAM_SIZE 0x00100000 /* 1 MB of sram */
+#endif
+
+
+/*-----------------------------------------------------------------------
+ * PCI stuff
+ *-----------------------------------------------------------------------
+ */
+
+#define PCI_HOST_ADAPTER 0 /* configure ar pci adapter */
+#define PCI_HOST_FORCE 1 /* configure as pci host */
+#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
+
+#define CONFIG_PCI /* include pci support */
+#define CONFIG_PCI_HOST PCI_HOST_FORCE /* select pci host function */
+#define CONFIG_PCI_PNP /* do pci plug-and-play */
+
+/* PCI MEMORY MAP section */
+#define CFG_PCI0_MEM_BASE 0x80000000
+#define CFG_PCI0_MEM_SIZE _128M
+#define CFG_PCI1_MEM_BASE 0x88000000
+#define CFG_PCI1_MEM_SIZE _128M
+
+#define CFG_PCI0_0_MEM_SPACE (CFG_PCI0_MEM_BASE)
+#define CFG_PCI1_0_MEM_SPACE (CFG_PCI1_MEM_BASE)
+
+
+/* PCI I/O MAP section */
+#define CFG_PCI0_IO_BASE 0xfa000000
+#define CFG_PCI0_IO_SIZE _16M
+#define CFG_PCI1_IO_BASE 0xfb000000
+#define CFG_PCI1_IO_SIZE _16M
+
+#define CFG_PCI0_IO_SPACE (CFG_PCI0_IO_BASE)
+#define CFG_PCI0_IO_SPACE_PCI 0x00000000
+#define CFG_PCI1_IO_SPACE (CFG_PCI1_IO_BASE)
+#define CFG_PCI1_IO_SPACE_PCI 0x00000000
+
+/*----------------------------------------------------------------------
+ * Initial BAT mappings
+ */
+
+/* NOTES:
+ * 1) GUARDED and WRITE_THRU not allowed in IBATS
+ * 2) CACHEINHIBIT and WRITETHROUGH not allowed together in same BAT
+ */
+
+/* SDRAM */
+#define CFG_IBAT0L (CFG_SDRAM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT)
+#define CFG_IBAT0U (CFG_SDRAM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
+#define CFG_DBAT0L (CFG_SDRAM_BASE | BATL_PP_RW | BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
+#define CFG_DBAT0U CFG_IBAT0U
+
+/* init ram */
+#define CFG_IBAT1L (CFG_INIT_RAM_ADDR | BATL_PP_RW | BATL_MEMCOHERENCE)
+#define CFG_IBAT1U (CFG_INIT_RAM_ADDR | BATU_BL_128K | BATU_VS | BATU_VP)
+#define CFG_DBAT1L CFG_IBAT1L
+#define CFG_DBAT1U CFG_IBAT1U
+
+/* PCI0, PCI1 in one BAT */
+#define CFG_IBAT2L BATL_NO_ACCESS
+#define CFG_IBAT2U CFG_DBAT2U
+#define CFG_DBAT2L (CFG_PCI0_MEM_BASE | BATL_CACHEINHIBIT | BATL_PP_RW | BATL_GUARDEDSTORAGE)
+#define CFG_DBAT2U (CFG_PCI0_MEM_BASE | BATU_BL_256M | BATU_VS | BATU_VP)
+
+/* GT regs, bootrom, all the devices, PCI I/O */
+#define CFG_IBAT3L (CFG_MISC_REGION_BASE | BATL_CACHEINHIBIT | BATL_PP_RW)
+#define CFG_IBAT3U (CFG_MISC_REGION_BASE | BATU_VS | BATU_VP | BATU_BL_256M)
+#define CFG_DBAT3L (CFG_MISC_REGION_BASE | BATL_CACHEINHIBIT | BATL_PP_RW | BATL_GUARDEDSTORAGE)
+#define CFG_DBAT3U CFG_IBAT3U
+
+/* I2C speed and slave address (for compatability) defaults */
+#define CFG_I2C_SPEED 400000
+#define CFG_I2C_SLAVE 0x7F
+
+/* I2C addresses for the two DIMM SPD chips */
+#ifndef CONFIG_EVB64260_750CX
+#define DIMM0_I2C_ADDR 0x56
+#define DIMM1_I2C_ADDR 0x54
+#else /* CONFIG_EVB64260_750CX - only has 1 DIMM */
+#define DIMM0_I2C_ADDR 0x54
+#define DIMM1_I2C_ADDR 0x54
+#endif
+
+/*
+ * For booting Linux, the board info and command line data
+ * have to be in the first 8 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CFG_BOOTMAPSZ (8<<20) /* Initial Memory map for Linux */
+
+/*-----------------------------------------------------------------------
+ * FLASH organization
+ */
+#define CFG_MAX_FLASH_BANKS 2 /* max number of memory banks */
+#define CFG_MAX_FLASH_SECT 67 /* max number of sectors on one chip */
+
+#define CFG_EXTRA_FLASH_DEVICE DEVICE0 /* extra flash at device 0 */
+#define CFG_EXTRA_FLASH_WIDTH 2 /* 16 bit */
+#define CFG_BOOT_FLASH_WIDTH 2 /* 16 bit */
+
+#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
+#define CFG_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
+#define CFG_FLASH_CFI 1
+
+#define CFG_ENV_IS_IN_FLASH 1
+#define CFG_ENV_SIZE 0x1000 /* Total Size of Environment Sector */
+#define CFG_ENV_SECT_SIZE 0x20000
+#define CFG_ENV_ADDR 0xFFFE0000
+
+/*-----------------------------------------------------------------------
+ * Cache Configuration
+ */
+#define CFG_CACHELINE_SIZE 32 /* For all MPC74xx CPUs */
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
+#endif
+
+/*-----------------------------------------------------------------------
+ * L2CR setup -- make sure this is right for your board!
+ * look in include/74xx_7xx.h for the defines used here
+ */
+
+#define CFG_L2
+
+#define L2_INIT (L2CR_L2SIZ_2M | L2CR_L2CLK_3 | L2CR_L2RAM_BURST | \
+ L2CR_L2OH_5 | L2CR_L2CTL | L2CR_L2WT)
+
+#define L2_ENABLE (L2_INIT | L2CR_L2E)
+
+/*
+ * Internal Definitions
+ *
+ * Boot Flags
+ */
+#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
+#define BOOTFLAG_WARM 0x02 /* Software reboot */
+
+#define CFG_BOARD_ASM_INIT 1
+
+
+#endif /* __CONFIG_H */
diff --git a/include/configs/PPChameleonEVB.h b/include/configs/PPChameleonEVB.h
new file mode 100644
index 000000000..967a2d094
--- /dev/null
+++ b/include/configs/PPChameleonEVB.h
@@ -0,0 +1,734 @@
+/*
+ * (C) Copyright 2001-2003
+ * Stefan Roese, esd gmbh germany, stefan.roese@esd-electronics.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * board/config.h - configuration options, board specific
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * Debug stuff
+ */
+#undef __DEBUG_START_FROM_SRAM__
+#define __DISABLE_MACHINE_EXCEPTION__
+
+#ifdef __DEBUG_START_FROM_SRAM__
+#define CFG_DUMMY_FLASH_SIZE 1024*1024*4
+#endif
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+
+#define CONFIG_405EP 1 /* This is a PPC405 CPU */
+#define CONFIG_4xx 1 /* ...member of PPC4xx family */
+#define CONFIG_PPCHAMELEONEVB 1 /* ...on a PPChameleonEVB board */
+
+#define CONFIG_BOARD_PRE_INIT 1 /* call board_pre_init() */
+#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
+
+#define CONFIG_SYS_CLK_FREQ 33333333 /* external frequency to pll */
+
+#if 1
+#define CONFIG_BAUDRATE 9600
+#else
+#define CONFIG_BAUDRATE 115200
+#endif
+#define CONFIG_BOOTDELAY 3 /* autoboot after 3 seconds */
+
+#if 0
+#define CONFIG_PREBOOT \
+ "crc32 f0207004 ffc 0;" \
+ "if cmp 0 f0207000 1;" \
+ "then;echo Old CRC is correct;crc32 f0207004 ff4 f0207000;" \
+ "else;echo Old CRC is bad;fi"
+#endif
+
+#undef CONFIG_BOOTARGS
+#define CONFIG_RAMBOOTCOMMAND \
+ "setenv bootargs root=/dev/ram rw nfsroot=$(serverip):$(rootpath) " \
+ "ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;" \
+ "bootm ffc00000 ffca0000"
+#define CONFIG_NFSBOOTCOMMAND \
+ "setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) " \
+ "ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off;" \
+ "bootm ffc00000"
+
+#define CONFIG_PELK_NOR_KERNEL_NOR_RAMDISK_BOOTCOMMAND \
+ "setenv ipaddr 192.168.10.203;" \
+ "setenv serverip 192.168.10.6;" \
+ "setenv netmask 255.255.255.0;" \
+ "setenv bootargs root=/dev/ram rw console=ttyS0,9600;" \
+ "setenv autostart yes;" \
+ "bootm ffc00000 ffd00000"
+/*
+ "setenv ethaddr 00:50:c2:1e:af:fe;" \
+ "setenv eth1addr 00:50:c2:1e:af:fd;" \
+*/
+
+#define CONFIG_BOOTCOMMAND CONFIG_PELK_NOR_KERNEL_NOR_RAMDISK_BOOTCOMMAND
+
+#define CONFIG_LOADS_ECHO 1 /* echo on for serial download */
+#define CFG_LOADS_BAUD_CHANGE 1 /* allow baudrate change */
+
+
+/* EThernet stuff */
+#define CONFIG_ENV_OVERWRITE /* Let the user to change the Ethernet MAC addresses */
+#define CONFIG_ETHADDR 00:50:c2:1e:af:fe
+#define CONFIG_ETH1ADDR 00:50:c2:1e:af:fd
+
+#undef CONFIG_EXT_PHY
+/*#define CONFIG_EXT_PHY*/
+#define CONFIG_MII 1 /* MII PHY management */
+#ifndef CONFIG_EXT_PHY
+#define CONFIG_PHY_ADDR 1 /* PHY address */
+#else
+#define CONFIG_PHY_ADDR 2 /* PHY address */
+#endif
+#define CONFIG_PHY_CLK_FREQ EMAC_STACR_CLK_66MHZ
+
+#if 0 /* test-only */
+#define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \
+ CFG_CMD_IRQ | \
+ CFG_CMD_ELF | \
+ CFG_CMD_DATE | \
+ CFG_CMD_JFFS2 | \
+ CFG_CMD_I2C | \
+ CFG_CMD_EEPROM )
+#else
+#define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \
+ CFG_CMD_IRQ | \
+ CFG_CMD_ELF | \
+ CFG_CMD_NAND | \
+ CFG_CMD_MII | \
+ CFG_CMD_DATE | \
+ CFG_CMD_I2C | \
+ CFG_CMD_EEPROM )
+#endif
+
+#define CONFIG_MAC_PARTITION
+#define CONFIG_DOS_PARTITION
+
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+#undef CONFIG_WATCHDOG /* watchdog disabled */
+
+#define CONFIG_RTC_MC146818 /* DS1685 is MC146818 compatible*/
+#define CFG_RTC_REG_BASE_ADDR 0xF0000500 /* RTC Base Address */
+
+#define CONFIG_SDRAM_BANK0 1 /* init onboard SDRAM bank 0 */
+
+/*
+ * Miscellaneous configurable options
+ */
+#define CFG_LONGHELP /* undef to save memory */
+#define CFG_PROMPT "=> " /* Monitor Command Prompt */
+
+#undef CFG_HUSH_PARSER /* use "hush" command parser */
+#ifdef CFG_HUSH_PARSER
+#define CFG_PROMPT_HUSH_PS2 "> "
+#endif
+
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
+#else
+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */
+#endif
+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define CFG_MAXARGS 16 /* max number of command args */
+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */
+
+#define CFG_DEVICE_NULLDEV 1 /* include nulldev device */
+
+#define CFG_CONSOLE_INFO_QUIET 1 /* don't print console @ startup*/
+
+#define CFG_MEMTEST_START 0x0400000 /* memtest works on */
+#define CFG_MEMTEST_END 0x0C00000 /* 4 ... 12 MB in DRAM */
+
+#undef CFG_EXT_SERIAL_CLOCK /* no external serial clock used */
+#define CFG_IGNORE_405_UART_ERRATA_59 /* ignore ppc405gp errata #59 */
+#define CFG_BASE_BAUD 691200
+
+/* The following table includes the supported baudrates */
+#define CFG_BAUDRATE_TABLE \
+ { 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, \
+ 57600, 115200, 230400, 460800, 921600 }
+
+#define CFG_LOAD_ADDR 0x100000 /* default load address */
+#define CFG_EXTBDINFO 1 /* To use extended board_into (bd_t) */
+
+#define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */
+
+#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */
+
+/*-----------------------------------------------------------------------
+ * NAND-FLASH stuff
+ *-----------------------------------------------------------------------
+ */
+#define CFG_NAND0_BASE 0xFF400000
+#define CFG_NAND1_BASE 0xFF000000
+
+#define CFG_MAX_NAND_DEVICE 2 /* Max number of NAND devices */
+#define SECTORSIZE 512
+
+#define ADDR_COLUMN 1
+#define ADDR_PAGE 2
+#define ADDR_COLUMN_PAGE 3
+
+#define NAND_ChipID_UNKNOWN 0x00
+#define NAND_MAX_FLOORS 1
+#define NAND_MAX_CHIPS 1
+
+#define CFG_NAND0_CE (0x80000000 >> 1) /* our CE is GPIO1 */
+#define CFG_NAND0_CLE (0x80000000 >> 2) /* our CLE is GPIO2 */
+#define CFG_NAND0_ALE (0x80000000 >> 3) /* our ALE is GPIO3 */
+#define CFG_NAND0_RDY (0x80000000 >> 4) /* our RDY is GPIO4 */
+
+#define CFG_NAND1_CE (0x80000000 >> 14) /* our CE is GPIO14 */
+#define CFG_NAND1_CLE (0x80000000 >> 15) /* our CLE is GPIO15 */
+#define CFG_NAND1_ALE (0x80000000 >> 16) /* our ALE is GPIO16 */
+#define CFG_NAND1_RDY (0x80000000 >> 31) /* our RDY is GPIO31 */
+
+
+#define NAND_DISABLE_CE(nand) do \
+{ \
+ switch((unsigned long)(((struct nand_chip *)nand)->IO_ADDR)) \
+ { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND0_CE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND1_CE); \
+ break; \
+ } \
+} while(0)
+
+#define NAND_ENABLE_CE(nand) do \
+{ \
+ switch((unsigned long)(((struct nand_chip *)nand)->IO_ADDR)) \
+ { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND0_CE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND1_CE); \
+ break; \
+ } \
+} while(0)
+
+
+
+#define NAND_CTL_CLRALE(nandptr) do \
+{ \
+ switch((unsigned long)nandptr) \
+ { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND0_ALE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND1_ALE); \
+ break; \
+ } \
+} while(0)
+
+#define NAND_CTL_SETALE(nandptr) do \
+{ \
+ switch((unsigned long)nandptr) \
+ { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND0_ALE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND1_ALE); \
+ break; \
+ } \
+} while(0)
+
+#define NAND_CTL_CLRCLE(nandptr) do \
+{ \
+ switch((unsigned long)nandptr) \
+ { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND0_CLE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) & ~CFG_NAND1_CLE); \
+ break; \
+ } \
+} while(0)
+
+#define NAND_CTL_SETCLE(nandptr) do { \
+ switch((unsigned long)nandptr) { \
+ case CFG_NAND0_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND0_CLE); \
+ break; \
+ case CFG_NAND1_BASE: \
+ out32(GPIO0_OR, in32(GPIO0_OR) | CFG_NAND1_CLE); \
+ break; \
+ } \
+} while(0)
+
+#define NAND_WAIT_READY(nand) do { \
+ ulong mask = 0; \
+ switch ((ulong)(((struct nand_chip *)nand)->IO_ADDR)) { \
+ case CFG_NAND0_BASE: \
+ mask = CFG_NAND0_RDY; \
+ break; \
+ case CFG_NAND1_BASE: \
+ mask = CFG_NAND1_RDY; \
+ break; \
+ } \
+ while (!(in32(GPIO0_IR) & mask)) \
+ ; \
+} while (0)
+
+#define WRITE_NAND_COMMAND(d, adr) do{ *(volatile __u8 *)((unsigned long)adr) = (__u8)(d); } while(0)
+#define WRITE_NAND_ADDRESS(d, adr) do{ *(volatile __u8 *)((unsigned long)adr) = (__u8)(d); } while(0)
+#define WRITE_NAND(d, adr) do{ *(volatile __u8 *)((unsigned long)adr) = (__u8)d; } while(0)
+#define READ_NAND(adr) ((volatile unsigned char)(*(volatile __u8 *)(unsigned long)adr))
+
+/*-----------------------------------------------------------------------
+ * PCI stuff
+ *-----------------------------------------------------------------------
+ */
+#define PCI_HOST_ADAPTER 0 /* configure as pci adapter */
+#define PCI_HOST_FORCE 1 /* configure as pci host */
+#define PCI_HOST_AUTO 2 /* detected via arbiter enable */
+
+#define CONFIG_PCI /* include pci support */
+#define CONFIG_PCI_HOST PCI_HOST_HOST /* select pci host function */
+#undef CONFIG_PCI_PNP /* do pci plug-and-play */
+ /* resource configuration */
+
+#define CONFIG_PCI_SCAN_SHOW /* print pci devices @ startup */
+
+#define CFG_PCI_SUBSYS_VENDORID 0x12FE /* PCI Vendor ID: esd gmbh */
+#define CFG_PCI_SUBSYS_DEVICEID 0x0405 /* PCI Device ID: CPCI-405 */
+#define CFG_PCI_CLASSCODE 0x0b20 /* PCI Class Code: Processor/PPC*/
+#define CFG_PCI_PTM1LA 0x00000000 /* point to sdram */
+#define CFG_PCI_PTM1MS 0xfc000001 /* 64MB, enable hard-wired to 1 */
+#define CFG_PCI_PTM1PCI 0x00000000 /* Host: use this pci address */
+#define CFG_PCI_PTM2LA 0xffc00000 /* point to flash */
+#define CFG_PCI_PTM2MS 0xffc00001 /* 4MB, enable */
+#define CFG_PCI_PTM2PCI 0x04000000 /* Host: use this pci address */
+
+/*-----------------------------------------------------------------------
+ * Start addresses for the final memory configuration
+ * (Set up by the startup code)
+ * Please note that CFG_SDRAM_BASE _must_ start at 0
+ */
+#define CFG_SDRAM_BASE 0x00000000
+#define CFG_FLASH_BASE 0xFFFC0000
+#define CFG_MONITOR_BASE CFG_FLASH_BASE
+#define CFG_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Monitor */
+#define CFG_MALLOC_LEN (256 * 1024) /* Reserve 256 kB for malloc() */
+
+/*
+ * For booting Linux, the board info and command line data
+ * have to be in the first 8 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
+/*-----------------------------------------------------------------------
+ * FLASH organization
+ */
+#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
+#define CFG_MAX_FLASH_SECT 256 /* max number of sectors on one chip */
+
+#define CFG_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
+#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
+
+#define CFG_FLASH_WORD_SIZE unsigned short /* flash word size (width) */
+#define CFG_FLASH_ADDR0 0x5555 /* 1st address for flash config cycles */
+#define CFG_FLASH_ADDR1 0x2AAA /* 2nd address for flash config cycles */
+/*
+ * The following defines are added for buggy IOP480 byte interface.
+ * All other boards should use the standard values (CPCI405 etc.)
+ */
+#define CFG_FLASH_READ0 0x0000 /* 0 is standard */
+#define CFG_FLASH_READ1 0x0001 /* 1 is standard */
+#define CFG_FLASH_READ2 0x0002 /* 2 is standard */
+
+#define CFG_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */
+
+#if 0 /* test-only */
+#define CFG_JFFS2_FIRST_BANK 0 /* use for JFFS2 */
+#define CFG_JFFS2_NUM_BANKS 1 /* ! second bank contains U-Boot */
+#endif
+
+/*-----------------------------------------------------------------------
+ * Environment Variable setup
+ */
+#define CFG_ENV_IS_IN_EEPROM 1 /* use EEPROM for environment vars */
+#define CFG_ENV_OFFSET 0x100 /* environment starts at the beginning of the EEPROM */
+#define CFG_ENV_SIZE 0x700 /* 2048 bytes may be used for env vars*/
+ /* total size of a CAT24WC16 is 2048 bytes */
+
+#define CFG_NVRAM_BASE_ADDR 0xF0000500 /* NVRAM base address */
+#define CFG_NVRAM_SIZE 242 /* NVRAM size */
+
+/*-----------------------------------------------------------------------
+ * I2C EEPROM (CAT24WC16) for environment
+ */
+#define CONFIG_HARD_I2C /* I2c with hardware support */
+#define CFG_I2C_SPEED 400000 /* I2C speed and slave address */
+#define CFG_I2C_SLAVE 0x7F
+
+#define CFG_I2C_EEPROM_ADDR 0x50 /* EEPROM CAT28WC08 */
+#define CFG_I2C_EEPROM_ADDR_LEN 1 /* Bytes of address */
+/* mask of address bits that overflow into the "EEPROM chip address" */
+/*#define CFG_I2C_EEPROM_ADDR_OVERFLOW 0x07*/
+#define CFG_EEPROM_PAGE_WRITE_BITS 4 /* The Catalyst CAT24WC08 has */
+ /* 16 byte page write mode using*/
+ /* last 4 bits of the address */
+#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10 /* and takes up to 10 msec */
+#define CFG_EEPROM_PAGE_WRITE_ENABLE
+
+/*-----------------------------------------------------------------------
+ * Cache Configuration
+ */
+#define CFG_DCACHE_SIZE 16384 /* For IBM 405 CPUs, older 405 ppc's */
+ /* have only 8kB, 16kB is save here */
+#define CFG_CACHELINE_SIZE 32 /* ... */
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
+#endif
+
+/*
+ * Init Memory Controller:
+ *
+ * BR0/1 and OR0/1 (FLASH)
+ */
+
+#define FLASH_BASE0_PRELIM 0xFFC00000 /* FLASH bank #0 */
+
+/*-----------------------------------------------------------------------
+ * External Bus Controller (EBC) Setup
+ */
+
+/* Memory Bank 0 (Flash Bank 0, NOR-FLASH) initialization */
+#define CFG_EBC_PB0AP 0x92015480
+#define CFG_EBC_PB0CR 0xFFC5A000 /* BAS=0xFFC,BS=4MB,BU=R/W,BW=16bit */
+
+/* Memory Bank 1 (External SRAM) initialization */
+/* Since this must replace NOR Flash, we use the same settings for CS0 */
+#define CFG_EBC_PB1AP 0x92015480
+#define CFG_EBC_PB1CR 0xFF85A000 /* BAS=0xFF8,BS=4MB,BU=R/W,BW=8bit */
+
+/* Memory Bank 2 (Flash Bank 1, NAND-FLASH) initialization */
+#define CFG_EBC_PB2AP 0x92015480
+#define CFG_EBC_PB2CR 0xFF458000 /* BAS=0xFF4,BS=4MB,BU=R/W,BW=8bit */
+
+/* Memory Bank 3 (Flash Bank 2, NAND-FLASH) initialization */
+#define CFG_EBC_PB3AP 0x92015480
+#define CFG_EBC_PB3CR 0xFF058000 /* BAS=0xFF0,BS=4MB,BU=R/W,BW=8bit */
+
+
+#if 0 /* Roese */
+/* Memory Bank 1 (Flash Bank 1, NAND-FLASH) initialization */
+#define CFG_EBC_PB1AP 0x92015480
+#define CFG_EBC_PB1CR 0xFF858000 /* BAS=0xFF8,BS=4MB,BU=R/W,BW=8bit */
+
+/* Memory Bank 2 (CAN0, 1) initialization */
+#define CFG_EBC_PB2AP 0x010053C0 /* BWT=2,WBN=1,WBF=1,TH=1,RE=1,SOR=1,BEM=1 */
+#define CFG_EBC_PB2CR 0xF0018000 /* BAS=0xF00,BS=1MB,BU=R/W,BW=8bit */
+
+/* Memory Bank 3 (CompactFlash IDE) initialization */
+#define CFG_EBC_PB3AP 0x010053C0 /* BWT=2,WBN=1,WBF=1,TH=1,RE=1,SOR=1,BEM=1 */
+#define CFG_EBC_PB3CR 0xF011A000 /* BAS=0xF01,BS=1MB,BU=R/W,BW=16bit */
+
+/* Memory Bank 4 (NVRAM/RTC) initialization */
+#define CFG_EBC_PB4AP 0x01005280 /* TWT=2,WBN=1,WBF=1,TH=1,SOR=1 */
+#define CFG_EBC_PB4CR 0xF0218000 /* BAS=0xF02,BS=1MB,BU=R/W,BW=8bit */
+#endif
+
+/*-----------------------------------------------------------------------
+ * FPGA stuff
+ */
+/* FPGA internal regs */
+#define CFG_FPGA_MODE 0x00
+#define CFG_FPGA_STATUS 0x02
+#define CFG_FPGA_TS 0x04
+#define CFG_FPGA_TS_LOW 0x06
+#define CFG_FPGA_TS_CAP0 0x10
+#define CFG_FPGA_TS_CAP0_LOW 0x12
+#define CFG_FPGA_TS_CAP1 0x14
+#define CFG_FPGA_TS_CAP1_LOW 0x16
+#define CFG_FPGA_TS_CAP2 0x18
+#define CFG_FPGA_TS_CAP2_LOW 0x1a
+#define CFG_FPGA_TS_CAP3 0x1c
+#define CFG_FPGA_TS_CAP3_LOW 0x1e
+
+/* FPGA Mode Reg */
+#define CFG_FPGA_MODE_CF_RESET 0x0001
+#define CFG_FPGA_MODE_TS_IRQ_ENABLE 0x0100
+#define CFG_FPGA_MODE_TS_IRQ_CLEAR 0x1000
+#define CFG_FPGA_MODE_TS_CLEAR 0x2000
+
+/* FPGA Status Reg */
+#define CFG_FPGA_STATUS_DIP0 0x0001
+#define CFG_FPGA_STATUS_DIP1 0x0002
+#define CFG_FPGA_STATUS_DIP2 0x0004
+#define CFG_FPGA_STATUS_FLASH 0x0008
+#define CFG_FPGA_STATUS_TS_IRQ 0x1000
+
+#define CFG_FPGA_SPARTAN2 1 /* using Xilinx Spartan 2 now */
+#define CFG_FPGA_MAX_SIZE 128*1024 /* 128kByte is enough for XC2S50E*/
+
+/* FPGA program pin configuration */
+#define CFG_FPGA_PRG 0x04000000 /* FPGA program pin (ppc output) */
+#define CFG_FPGA_CLK 0x02000000 /* FPGA clk pin (ppc output) */
+#define CFG_FPGA_DATA 0x01000000 /* FPGA data pin (ppc output) */
+#define CFG_FPGA_INIT 0x00010000 /* FPGA init pin (ppc input) */
+#define CFG_FPGA_DONE 0x00008000 /* FPGA done pin (ppc input) */
+
+/*-----------------------------------------------------------------------
+ * Definitions for initial stack pointer and data area (in data cache)
+ */
+#if 0 /* test-only */
+#define CFG_INIT_DCACHE_CS 4 /* use cs # 4 for data cache memory */
+
+#define CFG_INIT_RAM_ADDR 0x40000000 /* use data cache */
+#define CFG_INIT_RAM_END 0x2000 /* End of used area in RAM */
+#else
+/* use on chip memory ( OCM ) for temperary stack until sdram is tested */
+#define CFG_TEMP_STACK_OCM 1
+
+/* On Chip Memory location */
+#define CFG_OCM_DATA_ADDR 0xF8000000
+#define CFG_OCM_DATA_SIZE 0x1000
+#define CFG_INIT_RAM_ADDR CFG_OCM_DATA_ADDR /* inside of SDRAM */
+#define CFG_INIT_RAM_END CFG_OCM_DATA_SIZE /* End of used area in RAM */
+#endif
+
+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
+#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE)
+#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET
+
+/*-----------------------------------------------------------------------
+ * Definitions for GPIO setup (PPC405EP specific)
+ *
+ * GPIO0[0] - External Bus Controller BLAST output
+ * GPIO0[1-9] - Instruction trace outputs -> GPIO
+ * GPIO0[10-13] - External Bus Controller CS_1 - CS_4 outputs
+ * GPIO0[14-16] - External Bus Controller ABUS3-ABUS5 outputs -> GPIO
+ * GPIO0[17-23] - External Interrupts IRQ0 - IRQ6 inputs
+ * GPIO0[24-27] - UART0 control signal inputs/outputs
+ * GPIO0[28-29] - UART1 data signal input/output
+ * GPIO0[30] - EMAC0 input
+ * GPIO0[31] - EMAC1 reject packet as output
+ */
+#define CFG_GPIO0_OSRH 0x40000550
+#define CFG_GPIO0_OSRL 0x00000110
+#define CFG_GPIO0_ISR1H 0x00000000
+/*#define CFG_GPIO0_ISR1L 0x15555445*/
+#define CFG_GPIO0_ISR1L 0x15555444
+#define CFG_GPIO0_TSRH 0x00000000
+#define CFG_GPIO0_TSRL 0x00000000
+#define CFG_GPIO0_TCR 0xF7FF8014
+
+/*
+ * Internal Definitions
+ *
+ * Boot Flags
+ */
+#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
+#define BOOTFLAG_WARM 0x02 /* Software reboot */
+
+#if 1 /* test-only */
+#define CONFIG_NO_SERIAL_EEPROM
+/*#undef CONFIG_NO_SERIAL_EEPROM*/
+/*----------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------*/
+#ifdef CONFIG_NO_SERIAL_EEPROM
+
+
+/*
+!-------------------------------------------------------------------------------
+! Defines for entry options.
+! Note: Because the 405EP SDRAM controller does not support ECC, ECC DIMMs that
+! are plugged in the board will be utilized as non-ECC DIMMs.
+!-------------------------------------------------------------------------------
+*/
+#undef AUTO_MEMORY_CONFIG
+#define DIMM_READ_ADDR 0xAB
+#define DIMM_WRITE_ADDR 0xAA
+
+
+#define CPC0_PLLMR0 (CNTRL_DCR_BASE+0x0) /* PLL mode 0 register */
+#define CPC0_BOOT (CNTRL_DCR_BASE+0x1) /* Chip Clock Status register */
+#define CPC0_CR1 (CNTRL_DCR_BASE+0x2) /* Chip Control 1 register */
+#define CPC0_EPRCSR (CNTRL_DCR_BASE+0x3) /* EMAC PHY Rcv Clk Src register*/
+#define CPC0_PLLMR1 (CNTRL_DCR_BASE+0x4) /* PLL mode 1 register */
+#define CPC0_UCR (CNTRL_DCR_BASE+0x5) /* UART Control register */
+#define CPC0_SRR (CNTRL_DCR_BASE+0x6) /* Soft Reset register */
+#define CPC0_JTAGID (CNTRL_DCR_BASE+0x7) /* JTAG ID register */
+#define CPC0_SPARE (CNTRL_DCR_BASE+0x8) /* Spare DCR */
+#define CPC0_PCI (CNTRL_DCR_BASE+0x9) /* PCI Control register */
+
+/* Defines for CPC0_PLLMR1 Register fields */
+#define PLL_ACTIVE 0x80000000
+#define CPC0_PLLMR1_SSCS 0x80000000
+#define PLL_RESET 0x40000000
+#define CPC0_PLLMR1_PLLR 0x40000000
+ /* Feedback multiplier */
+#define PLL_FBKDIV 0x00F00000
+#define CPC0_PLLMR1_FBDV 0x00F00000
+#define PLL_FBKDIV_16 0x00000000
+#define PLL_FBKDIV_1 0x00100000
+#define PLL_FBKDIV_2 0x00200000
+#define PLL_FBKDIV_3 0x00300000
+#define PLL_FBKDIV_4 0x00400000
+#define PLL_FBKDIV_5 0x00500000
+#define PLL_FBKDIV_6 0x00600000
+#define PLL_FBKDIV_7 0x00700000
+#define PLL_FBKDIV_8 0x00800000
+#define PLL_FBKDIV_9 0x00900000
+#define PLL_FBKDIV_10 0x00A00000
+#define PLL_FBKDIV_11 0x00B00000
+#define PLL_FBKDIV_12 0x00C00000
+#define PLL_FBKDIV_13 0x00D00000
+#define PLL_FBKDIV_14 0x00E00000
+#define PLL_FBKDIV_15 0x00F00000
+ /* Forward A divisor */
+#define PLL_FWDDIVA 0x00070000
+#define CPC0_PLLMR1_FWDVA 0x00070000
+#define PLL_FWDDIVA_8 0x00000000
+#define PLL_FWDDIVA_7 0x00010000
+#define PLL_FWDDIVA_6 0x00020000
+#define PLL_FWDDIVA_5 0x00030000
+#define PLL_FWDDIVA_4 0x00040000
+#define PLL_FWDDIVA_3 0x00050000
+#define PLL_FWDDIVA_2 0x00060000
+#define PLL_FWDDIVA_1 0x00070000
+ /* Forward B divisor */
+#define PLL_FWDDIVB 0x00007000
+#define CPC0_PLLMR1_FWDVB 0x00007000
+#define PLL_FWDDIVB_8 0x00000000
+#define PLL_FWDDIVB_7 0x00001000
+#define PLL_FWDDIVB_6 0x00002000
+#define PLL_FWDDIVB_5 0x00003000
+#define PLL_FWDDIVB_4 0x00004000
+#define PLL_FWDDIVB_3 0x00005000
+#define PLL_FWDDIVB_2 0x00006000
+#define PLL_FWDDIVB_1 0x00007000
+ /* PLL tune bits */
+#define PLL_TUNE_MASK 0x000003FF
+#define PLL_TUNE_2_M_3 0x00000133 /* 2 <= M <= 3 */
+#define PLL_TUNE_4_M_6 0x00000134 /* 3 < M <= 6 */
+#define PLL_TUNE_7_M_10 0x00000138 /* 6 < M <= 10 */
+#define PLL_TUNE_11_M_14 0x0000013C /* 10 < M <= 14 */
+#define PLL_TUNE_15_M_40 0x0000023E /* 14 < M <= 40 */
+#define PLL_TUNE_VCO_LOW 0x00000000 /* 500MHz <= VCO <= 800MHz */
+#define PLL_TUNE_VCO_HI 0x00000080 /* 800MHz < VCO <= 1000MHz */
+
+/* Defines for CPC0_PLLMR0 Register fields */
+ /* CPU divisor */
+#define PLL_CPUDIV 0x00300000
+#define CPC0_PLLMR0_CCDV 0x00300000
+#define PLL_CPUDIV_1 0x00000000
+#define PLL_CPUDIV_2 0x00100000
+#define PLL_CPUDIV_3 0x00200000
+#define PLL_CPUDIV_4 0x00300000
+ /* PLB divisor */
+#define PLL_PLBDIV 0x00030000
+#define CPC0_PLLMR0_CBDV 0x00030000
+#define PLL_PLBDIV_1 0x00000000
+#define PLL_PLBDIV_2 0x00010000
+#define PLL_PLBDIV_3 0x00020000
+#define PLL_PLBDIV_4 0x00030000
+ /* OPB divisor */
+#define PLL_OPBDIV 0x00003000
+#define CPC0_PLLMR0_OPDV 0x00003000
+#define PLL_OPBDIV_1 0x00000000
+#define PLL_OPBDIV_2 0x00001000
+#define PLL_OPBDIV_3 0x00002000
+#define PLL_OPBDIV_4 0x00003000
+ /* EBC divisor */
+#define PLL_EXTBUSDIV 0x00000300
+#define CPC0_PLLMR0_EPDV 0x00000300
+#define PLL_EXTBUSDIV_2 0x00000000
+#define PLL_EXTBUSDIV_3 0x00000100
+#define PLL_EXTBUSDIV_4 0x00000200
+#define PLL_EXTBUSDIV_5 0x00000300
+ /* MAL divisor */
+#define PLL_MALDIV 0x00000030
+#define CPC0_PLLMR0_MPDV 0x00000030
+#define PLL_MALDIV_1 0x00000000
+#define PLL_MALDIV_2 0x00000010
+#define PLL_MALDIV_3 0x00000020
+#define PLL_MALDIV_4 0x00000030
+ /* PCI divisor */
+#define PLL_PCIDIV 0x00000003
+#define CPC0_PLLMR0_PPFD 0x00000003
+#define PLL_PCIDIV_1 0x00000000
+#define PLL_PCIDIV_2 0x00000001
+#define PLL_PCIDIV_3 0x00000002
+#define PLL_PCIDIV_4 0x00000003
+
+/*
+!-------------------------------------------------------------------------------
+! PLL settings for 266MHz CPU, 133MHz PLB/SDRAM, 66MHz EBC, 33MHz PCI,
+! assuming a 33.3MHz input clock to the 405EP.
+!-------------------------------------------------------------------------------
+*/
+#define PLLMR0_133_66_66_33 (PLL_CPUDIV_1 | PLL_PLBDIV_1 | \
+ PLL_OPBDIV_2 | PLL_EXTBUSDIV_4 | \
+ PLL_MALDIV_1 | PLL_PCIDIV_4)
+#define PLLMR1_133_66_66_33 (PLL_FBKDIV_4 | \
+ PLL_FWDDIVA_6 | PLL_FWDDIVB_6 | \
+ PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
+#define PLLMR0_200_100_50_33 (PLL_CPUDIV_1 | PLL_PLBDIV_2 | \
+ PLL_OPBDIV_2 | PLL_EXTBUSDIV_3 | \
+ PLL_MALDIV_1 | PLL_PCIDIV_4)
+#define PLLMR1_200_100_50_33 (PLL_FBKDIV_6 | \
+ PLL_FWDDIVA_4 | PLL_FWDDIVB_4 | \
+ PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
+#define PLLMR0_266_133_66_33 (PLL_CPUDIV_1 | PLL_PLBDIV_2 | \
+ PLL_OPBDIV_2 | PLL_EXTBUSDIV_4 | \
+ PLL_MALDIV_1 | PLL_PCIDIV_4)
+#define PLLMR1_266_133_66_33 (PLL_FBKDIV_8 | \
+ PLL_FWDDIVA_3 | PLL_FWDDIVB_3 | \
+ PLL_TUNE_15_M_40 | PLL_TUNE_VCO_LOW)
+#if 0 /* test-only */
+#define PLLMR0_DEFAULT PLLMR0_266_133_66_33
+#define PLLMR1_DEFAULT PLLMR1_266_133_66_33
+#endif
+#if 0 /* test-only */
+#define PLLMR0_DEFAULT PLLMR0_200_100_50_33
+#define PLLMR1_DEFAULT PLLMR1_200_100_50_33
+#endif
+#if 1 /* test-only */
+#define PLLMR0_DEFAULT PLLMR0_133_66_66_33
+#define PLLMR1_DEFAULT PLLMR1_133_66_66_33
+#endif
+
+#endif
+#endif
+
+#endif /* __CONFIG_H */
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 8308969c3..5cf74a241 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -722,7 +722,7 @@ void board_init_r (gd_t *id, ulong dest_addr)
load_sernum_ethaddr ();
#endif
-#if defined(CFG_GT_6426x) || defined(CONFIG_PN62)
+#if defined(CFG_GT_6426x) || defined(CONFIG_PN62) || defined(CONFIG_PPCHAMELEONEVB)
/* handle the 2nd ethernet address */
s = getenv ("eth1addr");