summaryrefslogtreecommitdiffstats
path: root/board/sixnet
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2017-08-23 15:54:21 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2017-08-23 15:54:21 -0500
commit0223e595f4033e91e93403a7317bcc9e47676b8f (patch)
tree2ccd7127bc343f82456b76eeb0da2d380f6eaf65 /board/sixnet
downloadast2050-uboot-0223e595f4033e91e93403a7317bcc9e47676b8f.zip
ast2050-uboot-0223e595f4033e91e93403a7317bcc9e47676b8f.tar.gz
Initial import of modified u-boot tree
Original upstream URL: git://git.denx.de/u-boot.git Original upstream GIT hash: 62c175fbb8a0f9a926c88294ea9f7e88eb898f6c
Diffstat (limited to 'board/sixnet')
-rw-r--r--board/sixnet/Makefile44
-rw-r--r--board/sixnet/flash.c790
-rw-r--r--board/sixnet/fpgadata.c1719
-rw-r--r--board/sixnet/sixnet.c592
-rw-r--r--board/sixnet/sixnet.h36
-rw-r--r--board/sixnet/u-boot.lds98
6 files changed, 3279 insertions, 0 deletions
diff --git a/board/sixnet/Makefile b/board/sixnet/Makefile
new file mode 100644
index 0000000..6dc495c
--- /dev/null
+++ b/board/sixnet/Makefile
@@ -0,0 +1,44 @@
+#
+# (C) Copyright 2000-2006
+# 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 = $(obj)lib$(BOARD).o
+
+COBJS = $(BOARD).o flash.o
+
+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+SOBJS := $(addprefix $(obj),$(SOBJS))
+
+$(LIB): $(obj).depend $(OBJS)
+ $(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/sixnet/flash.c b/board/sixnet/flash.c
new file mode 100644
index 0000000..2090802
--- /dev/null
+++ b/board/sixnet/flash.c
@@ -0,0 +1,790 @@
+/*
+ * (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 <common.h>
+#include <mpc8xx.h>
+/* environment.h defines the various CONFIG_ENV_... values in terms
+ * of whichever ones are given in the configuration file.
+ */
+#include <environment.h>
+
+flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; /* info for FLASH chips */
+
+/* NOTE - CONFIG_FLASH_16BIT means the CPU interface is 16-bit, it
+ * has nothing to do with the flash chip being 8-bit or 16-bit.
+ */
+#ifdef CONFIG_FLASH_16BIT
+typedef unsigned short FLASH_PORT_WIDTH;
+typedef volatile unsigned short FLASH_PORT_WIDTHV;
+#define FLASH_ID_MASK 0xFFFF
+#else
+typedef unsigned long FLASH_PORT_WIDTH;
+typedef volatile unsigned long FLASH_PORT_WIDTHV;
+#define FLASH_ID_MASK 0xFFFFFFFF
+#endif
+
+#define FPW FLASH_PORT_WIDTH
+#define FPWV FLASH_PORT_WIDTHV
+
+#define ORMASK(size) ((-size) & OR_AM_MSK)
+
+/*-----------------------------------------------------------------------
+ * Functions
+ */
+static ulong flash_get_size(FPWV *addr, flash_info_t *info);
+static void flash_reset(flash_info_t *info);
+static int write_word_intel(flash_info_t *info, FPWV *dest, FPW data);
+static int write_word_amd(flash_info_t *info, FPWV *dest, FPW data);
+static void flash_get_offsets(ulong base, flash_info_t *info);
+#ifdef CONFIG_SYS_FLASH_PROTECTION
+static void flash_sync_real_protect(flash_info_t *info);
+#endif
+
+/*-----------------------------------------------------------------------
+ * flash_init()
+ *
+ * sets up flash_info and returns size of FLASH (bytes)
+ */
+unsigned long flash_init (void)
+{
+ volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
+ volatile memctl8xx_t *memctl = &immap->im_memctl;
+ unsigned long size_b;
+ int i;
+
+ /* Init: no FLASHes known */
+ for (i=0; i < CONFIG_SYS_MAX_FLASH_BANKS; ++i) {
+ flash_info[i].flash_id = FLASH_UNKNOWN;
+ }
+
+ size_b = flash_get_size((FPW *)CONFIG_SYS_FLASH_BASE, &flash_info[0]);
+
+ flash_info[0].size = size_b;
+
+ if (flash_info[0].flash_id == FLASH_UNKNOWN) {
+ printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx\n",size_b);
+ }
+
+ /* Remap FLASH according to real size, so only at proper address */
+ memctl->memc_or0 = (memctl->memc_or0 & ~OR_AM_MSK) | ORMASK(size_b);
+
+ /* Do this again (was done already in flast_get_size), just
+ * in case we move it when remap the FLASH.
+ */
+ flash_get_offsets (CONFIG_SYS_FLASH_BASE, &flash_info[0]);
+
+#ifdef CONFIG_SYS_FLASH_PROTECTION
+ /* read the hardware protection status (if any) into the
+ * protection array in flash_info.
+ */
+ flash_sync_real_protect(&flash_info[0]);
+#endif
+
+#if CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE
+ /* monitor protection ON by default */
+ flash_protect(FLAG_PROTECT_SET,
+ CONFIG_SYS_MONITOR_BASE,
+ CONFIG_SYS_MONITOR_BASE+monitor_flash_len-1,
+ &flash_info[0]);
+#endif
+
+#ifdef CONFIG_ENV_ADDR
+ flash_protect ( FLAG_PROTECT_SET,
+ CONFIG_ENV_ADDR,
+ CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1, &flash_info[0]);
+#endif
+
+#ifdef CONFIG_ENV_ADDR_REDUND
+ flash_protect ( FLAG_PROTECT_SET,
+ CONFIG_ENV_ADDR_REDUND,
+ CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1,
+ &flash_info[0]);
+#endif
+
+ return (size_b);
+}
+
+/*-----------------------------------------------------------------------
+ */
+static void flash_reset(flash_info_t *info)
+{
+ FPWV *base = (FPWV *)(info->start[0]);
+
+ /* Put FLASH back in read mode */
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL)
+ *base = (FPW)0x00FF00FF; /* Intel Read Mode */
+ else if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_AMD)
+ *base = (FPW)0x00F000F0; /* AMD Read Mode */
+}
+
+/*-----------------------------------------------------------------------
+ */
+static void flash_get_offsets (ulong base, flash_info_t *info)
+{
+ int i;
+
+ /* set up sector start address table */
+ if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL
+ && (info->flash_id & FLASH_BTYPE)) {
+ int bootsect_size; /* number of bytes/boot sector */
+ int sect_size; /* number of bytes/regular sector */
+
+ bootsect_size = 0x00002000 * (sizeof(FPW)/2);
+ sect_size = 0x00010000 * (sizeof(FPW)/2);
+
+ /* set sector offsets for bottom boot block type */
+ for (i = 0; i < 8; ++i) {
+ info->start[i] = base + (i * bootsect_size);
+ }
+ for (i = 8; i < info->sector_count; i++) {
+ info->start[i] = base + ((i - 7) * sect_size);
+ }
+ }
+ else if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_AMD
+ && (info->flash_id & FLASH_TYPEMASK) == FLASH_AM640U) {
+
+ int sect_size; /* number of bytes/sector */
+
+ sect_size = 0x00010000 * (sizeof(FPW)/2);
+
+ /* set up sector start address table (uniform sector type) */
+ for( i = 0; i < info->sector_count; i++ )
+ info->start[i] = base + (i * sect_size);
+ }
+ else if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_AMD
+ && (info->flash_id & FLASH_TYPEMASK) == FLASH_AM800T) {
+
+ int sect_size; /* number of bytes/sector */
+
+ sect_size = 0x00010000 * (sizeof(FPW)/2);
+
+ /* set up sector start address table (top boot sector type) */
+ for (i = 0; i < info->sector_count - 3; i++)
+ info->start[i] = base + (i * sect_size);
+ i = info->sector_count - 1;
+ info->start[i--] = base + (info->size - 0x00004000) * (sizeof(FPW)/2);
+ info->start[i--] = base + (info->size - 0x00006000) * (sizeof(FPW)/2);
+ info->start[i--] = base + (info->size - 0x00008000) * (sizeof(FPW)/2);
+ }
+}
+
+/*-----------------------------------------------------------------------
+ */
+
+void flash_print_info (flash_info_t *info)
+{
+ int i;
+ uchar *boottype;
+ uchar *bootletter;
+ char *fmt;
+ uchar botbootletter[] = "B";
+ uchar topbootletter[] = "T";
+ uchar botboottype[] = "bottom boot sector";
+ uchar topboottype[] = "top boot sector";
+
+ 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_BM: printf ("BRIGHT MICRO "); break;
+ case FLASH_MAN_FUJ: printf ("FUJITSU "); break;
+ case FLASH_MAN_SST: printf ("SST "); break;
+ case FLASH_MAN_STM: printf ("STM "); break;
+ case FLASH_MAN_INTEL: printf ("INTEL "); break;
+ default: printf ("Unknown Vendor "); break;
+ }
+
+ /* check for top or bottom boot, if it applies */
+ if (info->flash_id & FLASH_BTYPE) {
+ boottype = botboottype;
+ bootletter = botbootletter;
+ }
+ else {
+ boottype = topboottype;
+ bootletter = topbootletter;
+ }
+
+ switch (info->flash_id & FLASH_TYPEMASK) {
+ case FLASH_AM800T:
+ fmt = "29LV800B%s (8 Mbit, %s)\n";
+ break;
+ case FLASH_AM640U:
+ fmt = "29LV641D (64 Mbit, uniform sectors)\n";
+ break;
+ case FLASH_28F800C3B:
+ case FLASH_28F800C3T:
+ fmt = "28F800C3%s (8 Mbit, %s)\n";
+ break;
+ case FLASH_INTEL800B:
+ case FLASH_INTEL800T:
+ fmt = "28F800B3%s (8 Mbit, %s)\n";
+ break;
+ case FLASH_28F160C3B:
+ case FLASH_28F160C3T:
+ fmt = "28F160C3%s (16 Mbit, %s)\n";
+ break;
+ case FLASH_INTEL160B:
+ case FLASH_INTEL160T:
+ fmt = "28F160B3%s (16 Mbit, %s)\n";
+ break;
+ case FLASH_28F320C3B:
+ case FLASH_28F320C3T:
+ fmt = "28F320C3%s (32 Mbit, %s)\n";
+ break;
+ case FLASH_INTEL320B:
+ case FLASH_INTEL320T:
+ fmt = "28F320B3%s (32 Mbit, %s)\n";
+ break;
+ case FLASH_28F640C3B:
+ case FLASH_28F640C3T:
+ fmt = "28F640C3%s (64 Mbit, %s)\n";
+ break;
+ case FLASH_INTEL640B:
+ case FLASH_INTEL640T:
+ fmt = "28F640B3%s (64 Mbit, %s)\n";
+ break;
+ default:
+ fmt = "Unknown Chip Type\n";
+ break;
+ }
+
+ printf (fmt, bootletter, boottype);
+
+ 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) {
+ if ((i % 5) == 0) {
+ printf ("\n ");
+ }
+
+ printf (" %08lX%s", info->start[i],
+ info->protect[i] ? " (RO)" : " ");
+ }
+
+ printf ("\n");
+}
+
+/*-----------------------------------------------------------------------
+ */
+
+/*
+ * The following code cannot be run from FLASH!
+ */
+
+ulong flash_get_size (FPWV *addr, flash_info_t *info)
+{
+ /* Write auto select command: read Manufacturer ID */
+
+ /* Write auto select command sequence and test FLASH answer */
+ addr[0x0555] = (FPW)0x00AA00AA; /* for AMD, Intel ignores this */
+ addr[0x02AA] = (FPW)0x00550055; /* for AMD, Intel ignores this */
+ addr[0x0555] = (FPW)0x00900090; /* selects Intel or AMD */
+
+ /* The manufacturer codes are only 1 byte, so just use 1 byte.
+ * This works for any bus width and any FLASH device width.
+ */
+ switch (addr[0] & 0xff) {
+
+ case (uchar)AMD_MANUFACT:
+ info->flash_id = FLASH_MAN_AMD;
+ break;
+
+ case (uchar)INTEL_MANUFACT:
+ info->flash_id = FLASH_MAN_INTEL;
+ break;
+
+ default:
+ info->flash_id = FLASH_UNKNOWN;
+ info->sector_count = 0;
+ info->size = 0;
+ break;
+ }
+
+ /* Check 16 bits or 32 bits of ID so work on 32 or 16 bit bus. */
+ if (info->flash_id != FLASH_UNKNOWN) switch (addr[1]) {
+
+ case (FPW)AMD_ID_LV800T:
+ info->flash_id += FLASH_AM800T;
+ info->sector_count = 19;
+ info->size = 0x00100000 * (sizeof(FPW)/2);
+ break; /* => 1 or 2 MiB */
+
+ case (FPW)AMD_ID_LV640U: /* 29LV640 and 29LV641 have same ID */
+ info->flash_id += FLASH_AM640U;
+ info->sector_count = 128;
+ info->size = 0x00800000 * (sizeof(FPW)/2);
+ break; /* => 8 or 16 MB */
+
+ case (FPW)INTEL_ID_28F800C3B:
+ info->flash_id += FLASH_28F800C3B;
+ info->sector_count = 23;
+ info->size = 0x00100000 * (sizeof(FPW)/2);
+ break; /* => 1 or 2 MB */
+
+ case (FPW)INTEL_ID_28F800B3B:
+ info->flash_id += FLASH_INTEL800B;
+ info->sector_count = 23;
+ info->size = 0x00100000 * (sizeof(FPW)/2);
+ break; /* => 1 or 2 MB */
+
+ case (FPW)INTEL_ID_28F160C3B:
+ info->flash_id += FLASH_28F160C3B;
+ info->sector_count = 39;
+ info->size = 0x00200000 * (sizeof(FPW)/2);
+ break; /* => 2 or 4 MB */
+
+ case (FPW)INTEL_ID_28F160B3B:
+ info->flash_id += FLASH_INTEL160B;
+ info->sector_count = 39;
+ info->size = 0x00200000 * (sizeof(FPW)/2);
+ break; /* => 2 or 4 MB */
+
+ case (FPW)INTEL_ID_28F320C3B:
+ info->flash_id += FLASH_28F320C3B;
+ info->sector_count = 71;
+ info->size = 0x00400000 * (sizeof(FPW)/2);
+ break; /* => 4 or 8 MB */
+
+ case (FPW)INTEL_ID_28F320B3B:
+ info->flash_id += FLASH_INTEL320B;
+ info->sector_count = 71;
+ info->size = 0x00400000 * (sizeof(FPW)/2);
+ break; /* => 4 or 8 MB */
+
+ case (FPW)INTEL_ID_28F640C3B:
+ info->flash_id += FLASH_28F640C3B;
+ info->sector_count = 135;
+ info->size = 0x00800000 * (sizeof(FPW)/2);
+ break; /* => 8 or 16 MB */
+
+ case (FPW)INTEL_ID_28F640B3B:
+ info->flash_id += FLASH_INTEL640B;
+ info->sector_count = 135;
+ info->size = 0x00800000 * (sizeof(FPW)/2);
+ break; /* => 8 or 16 MB */
+
+ default:
+ info->flash_id = FLASH_UNKNOWN;
+ info->sector_count = 0;
+ info->size = 0;
+ return (0); /* => no or unknown flash */
+ }
+
+ flash_get_offsets((ulong)addr, info);
+
+ /* Put FLASH back in read mode */
+ flash_reset(info);
+
+ return (info->size);
+}
+
+#ifdef CONFIG_SYS_FLASH_PROTECTION
+/*-----------------------------------------------------------------------
+ */
+
+static void flash_sync_real_protect(flash_info_t *info)
+{
+ FPWV *addr = (FPWV *)(info->start[0]);
+ FPWV *sect;
+ int i;
+
+ switch (info->flash_id & FLASH_TYPEMASK) {
+ case FLASH_28F800C3B:
+ case FLASH_28F800C3T:
+ case FLASH_28F160C3B:
+ case FLASH_28F160C3T:
+ case FLASH_28F320C3B:
+ case FLASH_28F320C3T:
+ case FLASH_28F640C3B:
+ case FLASH_28F640C3T:
+ /* check for protected sectors */
+ *addr = (FPW)0x00900090;
+ for (i = 0; i < info->sector_count; i++) {
+ /* read sector protection at sector address, (A7 .. A0) = 0x02.
+ * D0 = 1 for each device if protected.
+ * If at least one device is protected the sector is marked
+ * protected, but mixed protected and unprotected devices
+ * within a sector should never happen.
+ */
+ sect = (FPWV *)(info->start[i]);
+ info->protect[i] = (sect[2] & (FPW)(0x00010001)) ? 1 : 0;
+ }
+
+ /* Put FLASH back in read mode */
+ flash_reset(info);
+ break;
+
+ case FLASH_AM640U:
+ case FLASH_AM800T:
+ default:
+ /* no hardware protect that we support */
+ break;
+ }
+}
+#endif
+
+/*-----------------------------------------------------------------------
+ */
+
+int flash_erase (flash_info_t *info, int s_first, int s_last)
+{
+ FPWV *addr;
+ int flag, prot, sect;
+ int intel = (info->flash_id & FLASH_VENDMASK) == FLASH_MAN_INTEL;
+ ulong start, now, last;
+ int rcode = 0;
+
+ 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;
+ }
+
+ switch (info->flash_id & FLASH_TYPEMASK) {
+ case FLASH_INTEL800B:
+ case FLASH_INTEL160B:
+ case FLASH_INTEL320B:
+ case FLASH_INTEL640B:
+ case FLASH_28F800C3B:
+ case FLASH_28F160C3B:
+ case FLASH_28F320C3B:
+ case FLASH_28F640C3B:
+ case FLASH_AM640U:
+ case FLASH_AM800T:
+ break;
+ case FLASH_UNKNOWN:
+ default:
+ printf ("Can't erase unknown flash type %08lx - aborted\n",
+ info->flash_id);
+ 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");
+ }
+
+ start = get_timer(0);
+ last = start;
+
+ /* Start erase on unprotected sectors */
+ for (sect = s_first; sect<=s_last && rcode == 0; sect++) {
+
+ if (info->protect[sect] != 0) /* protected, skip it */
+ continue;
+
+ /* Disable interrupts which might cause a timeout here */
+ flag = disable_interrupts();
+
+ addr = (FPWV *)(info->start[sect]);
+ if (intel) {
+ *addr = (FPW)0x00500050; /* clear status register */
+ *addr = (FPW)0x00200020; /* erase setup */
+ *addr = (FPW)0x00D000D0; /* erase confirm */
+ }
+ else {
+ /* must be AMD style if not Intel */
+ FPWV *base; /* first address in bank */
+
+ base = (FPWV *)(info->start[0]);
+ base[0x0555] = (FPW)0x00AA00AA; /* unlock */
+ base[0x02AA] = (FPW)0x00550055; /* unlock */
+ base[0x0555] = (FPW)0x00800080; /* erase mode */
+ base[0x0555] = (FPW)0x00AA00AA; /* unlock */
+ base[0x02AA] = (FPW)0x00550055; /* unlock */
+ *addr = (FPW)0x00300030; /* erase sector */
+ }
+
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
+
+ /* wait at least 50us for AMD, 80us for Intel.
+ * Let's wait 1 ms.
+ */
+ udelay (1000);
+
+ while ((*addr & (FPW)0x00800080) != (FPW)0x00800080) {
+ if ((now = get_timer(start)) > CONFIG_SYS_FLASH_ERASE_TOUT) {
+ printf ("Timeout\n");
+
+ if (intel) {
+ /* suspend erase */
+ *addr = (FPW)0x00B000B0;
+ }
+
+ flash_reset(info); /* reset to read mode */
+ rcode = 1; /* failed */
+ break;
+ }
+
+ /* show that we're waiting */
+ if ((now - last) > 1000) { /* every second */
+ putc ('.');
+ last = now;
+ }
+ }
+
+ flash_reset(info); /* reset to read mode */
+ }
+
+ printf (" done\n");
+ return rcode;
+}
+
+/*-----------------------------------------------------------------------
+ * 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)
+{
+ FPW data = 0; /* 16 or 32 bit word, matches flash bus width on MPC8XX */
+ int bytes; /* number of bytes to program in current word */
+ int left; /* number of bytes left to program */
+ int i, res;
+
+ for (left = cnt, res = 0;
+ left > 0 && res == 0;
+ addr += sizeof(data), left -= sizeof(data) - bytes) {
+
+ bytes = addr & (sizeof(data) - 1);
+ addr &= ~(sizeof(data) - 1);
+
+ /* combine source and destination data so can program
+ * an entire word of 16 or 32 bits
+ */
+ for (i = 0; i < sizeof(data); i++) {
+ data <<= 8;
+ if (i < bytes || i - bytes >= left )
+ data += *((uchar *)addr + i);
+ else
+ data += *src++;
+ }
+
+ /* write one word to the flash */
+ switch (info->flash_id & FLASH_VENDMASK) {
+ case FLASH_MAN_AMD:
+ res = write_word_amd(info, (FPWV *)addr, data);
+ break;
+ case FLASH_MAN_INTEL:
+ res = write_word_intel(info, (FPWV *)addr, data);
+ break;
+ default:
+ /* unknown flash type, error! */
+ printf ("missing or unknown FLASH type\n");
+ res = 1; /* not really a timeout, but gives error */
+ break;
+ }
+ }
+
+ return (res);
+}
+
+/*-----------------------------------------------------------------------
+ * Write a word to Flash for AMD FLASH
+ * A word is 16 or 32 bits, whichever the bus width of the flash bank
+ * (not an individual chip) is.
+ *
+ * returns:
+ * 0 - OK
+ * 1 - write timeout
+ * 2 - Flash not erased
+ */
+static int write_word_amd (flash_info_t *info, FPWV *dest, FPW data)
+{
+ ulong start;
+ int flag;
+ int res = 0; /* result, assume success */
+ FPWV *base; /* first address in flash bank */
+
+ /* Check if Flash is (sufficiently) erased */
+ if ((*dest & data) != data) {
+ return (2);
+ }
+
+
+ base = (FPWV *)(info->start[0]);
+
+ /* Disable interrupts which might cause a timeout here */
+ flag = disable_interrupts();
+
+ base[0x0555] = (FPW)0x00AA00AA; /* unlock */
+ base[0x02AA] = (FPW)0x00550055; /* unlock */
+ base[0x0555] = (FPW)0x00A000A0; /* selects program mode */
+
+ *dest = data; /* start programming the data */
+
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
+
+ start = get_timer (0);
+
+ /* data polling for D7 */
+ while (res == 0 && (*dest & (FPW)0x00800080) != (data & (FPW)0x00800080)) {
+ if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+ *dest = (FPW)0x00F000F0; /* reset bank */
+ res = 1;
+ }
+ }
+
+ return (res);
+}
+
+/*-----------------------------------------------------------------------
+ * Write a word to Flash for Intel FLASH
+ * A word is 16 or 32 bits, whichever the bus width of the flash bank
+ * (not an individual chip) is.
+ *
+ * returns:
+ * 0 - OK
+ * 1 - write timeout
+ * 2 - Flash not erased
+ */
+static int write_word_intel (flash_info_t *info, FPWV *dest, FPW data)
+{
+ ulong start;
+ int flag;
+ int res = 0; /* result, assume success */
+
+ /* Check if Flash is (sufficiently) erased */
+ if ((*dest & data) != data) {
+ return (2);
+ }
+
+ /* Disable interrupts which might cause a timeout here */
+ flag = disable_interrupts();
+
+ *dest = (FPW)0x00500050; /* clear status register */
+ *dest = (FPW)0x00FF00FF; /* make sure in read mode */
+ *dest = (FPW)0x00400040; /* program setup */
+
+ *dest = data; /* start programming the data */
+
+ /* re-enable interrupts if necessary */
+ if (flag)
+ enable_interrupts();
+
+ start = get_timer (0);
+
+ while (res == 0 && (*dest & (FPW)0x00800080) != (FPW)0x00800080) {
+ if (get_timer(start) > CONFIG_SYS_FLASH_WRITE_TOUT) {
+ *dest = (FPW)0x00B000B0; /* Suspend program */
+ res = 1;
+ }
+ }
+
+ if (res == 0 && (*dest & (FPW)0x00100010))
+ res = 1; /* write failed, time out error is close enough */
+
+ *dest = (FPW)0x00500050; /* clear status register */
+ *dest = (FPW)0x00FF00FF; /* make sure in read mode */
+
+ return (res);
+}
+
+#ifdef CONFIG_SYS_FLASH_PROTECTION
+/*-----------------------------------------------------------------------
+ */
+int flash_real_protect (flash_info_t * info, long sector, int prot)
+{
+ int rcode = 0; /* assume success */
+ FPWV *addr; /* address of sector */
+ FPW value;
+
+ addr = (FPWV *) (info->start[sector]);
+
+ switch (info->flash_id & FLASH_TYPEMASK) {
+ case FLASH_28F800C3B:
+ case FLASH_28F800C3T:
+ case FLASH_28F160C3B:
+ case FLASH_28F160C3T:
+ case FLASH_28F320C3B:
+ case FLASH_28F320C3T:
+ case FLASH_28F640C3B:
+ case FLASH_28F640C3T:
+ flash_reset (info); /* make sure in read mode */
+ *addr = (FPW) 0x00600060L; /* lock command setup */
+ if (prot)
+ *addr = (FPW) 0x00010001L; /* lock sector */
+ else
+ *addr = (FPW) 0x00D000D0L; /* unlock sector */
+ flash_reset (info); /* reset to read mode */
+
+ /* now see if it really is locked/unlocked as requested */
+ *addr = (FPW) 0x00900090;
+ /* read sector protection at sector address, (A7 .. A0) = 0x02.
+ * D0 = 1 for each device if protected.
+ * If at least one device is protected the sector is marked
+ * protected, but return failure. Mixed protected and
+ * unprotected devices within a sector should never happen.
+ */
+ value = addr[2] & (FPW) 0x00010001;
+ if (value == 0)
+ info->protect[sector] = 0;
+ else if (value == (FPW) 0x00010001)
+ info->protect[sector] = 1;
+ else {
+ /* error, mixed protected and unprotected */
+ rcode = 1;
+ info->protect[sector] = 1;
+ }
+ if (info->protect[sector] != prot)
+ rcode = 1; /* failed to protect/unprotect as requested */
+
+ /* reload all protection bits from hardware for now */
+ flash_sync_real_protect (info);
+ break;
+
+ case FLASH_AM640U:
+ case FLASH_AM800T:
+ default:
+ /* no hardware protect that we support */
+ info->protect[sector] = prot;
+ break;
+ }
+
+ return rcode;
+}
+#endif
diff --git a/board/sixnet/fpgadata.c b/board/sixnet/fpgadata.c
new file mode 100644
index 0000000..2d3a7b3
--- /dev/null
+++ b/board/sixnet/fpgadata.c
@@ -0,0 +1,1719 @@
+ 0xff, 0x87, 0xff, 0x88, 0x7f, 0xff, 0xf9, 0xff,
+ 0xff, 0xf5, 0xff, 0x8f, 0xff, 0xf0, 0x8f, 0xf9,
+ 0xff, 0xef, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xf0,
+ 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0xf1, 0xcf,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef,
+ 0x7f, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x77, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x86, 0xf6, 0xf0, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x7f,
+ 0xc1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf8, 0xff, 0xff, 0xf6, 0xf0, 0xff, 0xff,
+ 0x7f, 0x8f, 0x7f, 0xf0, 0xff, 0x0f, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0xf8, 0xf7, 0x8f, 0xcf, 0xf0, 0xf6, 0xff,
+ 0xff, 0xef, 0xff, 0xfb, 0x7f, 0x2f, 0x1f, 0x71,
+ 0xf5, 0xff, 0xff, 0xef, 0x7f,
+ 0xff, 0x7f, 0xff, 0xf7, 0xf6, 0xfe, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf7, 0x7f, 0x77, 0xf7, 0xff, 0xfb,
+ 0x0f, 0xff, 0xf0, 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xfe, 0xff, 0x8f, 0x7f, 0xf1,
+ 0xff, 0xff, 0xfa, 0xce, 0xff, 0xfd, 0xff, 0xff,
+ 0x9f, 0xff, 0x8e, 0xff, 0xf0, 0xbf, 0x7f, 0xf5,
+ 0xff, 0xef, 0x9f, 0xfd, 0x81,
+ 0xff, 0xf9, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
+ 0xff, 0xef, 0x9f, 0xfb, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x7f,
+ 0xff, 0x77, 0xfa, 0xb6, 0xff, 0x78, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xbf, 0xfd, 0x0f, 0x7f, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xf6, 0xf7, 0xf6, 0x7f, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xef, 0xbf, 0xf2, 0x7f, 0xef, 0xff,
+ 0xfe, 0xfb, 0xff, 0xef, 0xff,
+ 0xff, 0xf7, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf,
+ 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xf7, 0xff, 0xf7, 0xcf, 0x8f, 0xff, 0xf0,
+ 0xef, 0xf9, 0xfb, 0xff, 0xff, 0xff, 0x9f, 0x0f,
+ 0x65, 0xe1, 0xfb, 0x7b, 0xf3,
+ 0xff, 0xf7, 0xf6, 0xfe, 0xff, 0x8f, 0xf6, 0xe8,
+ 0xf6, 0xf1, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff,
+ 0x6f, 0x61, 0xf1, 0xfb, 0xff,
+ 0xff, 0xde, 0x8f, 0x8f, 0xf0, 0xf0, 0xff, 0xff,
+ 0xf7, 0xbf, 0xff, 0xd4, 0x8f, 0x0f, 0x71, 0xc1,
+ 0x6f, 0xd1, 0xeb, 0x5f, 0xfd,
+ 0xff, 0x9f, 0xff, 0xfb, 0xff, 0x8f, 0x9f, 0xf7,
+ 0x9f, 0xff, 0xf4, 0xb7, 0xfd, 0xff, 0xfe, 0x8f,
+ 0xbf, 0x71, 0x1f, 0xff, 0x7f,
+ 0xff, 0xfd, 0x87, 0x87, 0xf0, 0x70, 0x1f, 0xf7,
+ 0xbf, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x71, 0x81,
+ 0xbf, 0x3e, 0x7f, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0xff, 0x07, 0xff, 0xf0, 0xff, 0xff, 0xff,
+ 0xfe, 0xff, 0xff, 0xf7, 0x8d, 0x7f, 0xf1, 0xff,
+ 0xff, 0x9f, 0x6f, 0xf1, 0xff,
+ 0xbf, 0x71, 0x87, 0xfe, 0xf0, 0x8f, 0x8f, 0xf0,
+ 0xfb, 0xcb, 0xff, 0xf0, 0x8f, 0x7f, 0xf1, 0x8f,
+ 0x1e, 0xe1, 0x7e, 0x91, 0x7f,
+ 0xbf, 0x1a, 0xff, 0x71, 0xff, 0x9f, 0x8f, 0xf6,
+ 0xf8, 0xdf, 0xf7, 0xf4, 0xff, 0xff, 0xff, 0x8f,
+ 0x1f, 0xf0, 0x7f, 0x97, 0xff,
+ 0xbf, 0x97, 0xff, 0xfb, 0xbf, 0xdf, 0xff, 0xf7,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xdf,
+ 0xf9, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xdf, 0xff, 0xf1, 0xff,
+ 0xff, 0x9f, 0xfc, 0xfb, 0xff, 0xf0, 0xfe, 0xff,
+ 0xff, 0xff, 0x9d, 0xff, 0xf4, 0xcf, 0xff, 0x7f,
+ 0xf7, 0xff, 0xff, 0xff, 0xcf,
+ 0xff, 0x97, 0xff, 0xfa, 0xff, 0x8f, 0xf8, 0xf0,
+ 0xff, 0xff, 0xff, 0xdf, 0xff, 0xfd, 0xff, 0x0f,
+ 0x7f, 0xe1, 0xff, 0xf1, 0xff,
+ 0xff, 0x83, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x6f, 0x7f, 0x77, 0x7d, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x6f, 0xf1,
+ 0xff, 0xd7, 0xff, 0xfe, 0xff, 0xff, 0x9f, 0xfd,
+ 0x78, 0xef, 0xff, 0xbf, 0xff, 0xf5, 0xff, 0xff,
+ 0xbf, 0x0f, 0x79, 0xd1, 0xff,
+ 0xff, 0xd2, 0xff, 0x72, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xfe, 0x70, 0x9d, 0xff, 0xf4, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xbf, 0x7f,
+ 0xff, 0x07, 0xff, 0x78, 0xff, 0x9f, 0xff, 0xfe,
+ 0xff, 0x77, 0x7f, 0x8f, 0x7f, 0xf0, 0xff, 0x8f,
+ 0x7f, 0xe1, 0x0f, 0x71, 0xf1,
+ 0xff, 0xfe, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xfd, 0xff, 0xba, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0xef, 0x7f, 0xa1, 0x7f,
+ 0xff, 0xbd, 0x7f, 0xf7, 0xf9, 0xfd, 0xfb, 0xff,
+ 0xff, 0x8f, 0xbf, 0xb7, 0x8f, 0xaf, 0xdf, 0xff,
+ 0xff, 0xff, 0xff, 0x5f, 0xeb,
+ 0xbf, 0xfd, 0xf8, 0xff, 0xff, 0xfb, 0xff, 0xfb,
+ 0xff, 0xf7, 0xcf, 0xfb, 0xf0, 0xff, 0xff, 0xdf,
+ 0xff, 0xff, 0xef, 0x7f, 0xab,
+ 0xff, 0xfd, 0xfa, 0xbf, 0x8f, 0xbf, 0xca, 0xfe,
+ 0xff, 0xff, 0xdf, 0x6f, 0xd4, 0xf6, 0x0f, 0x3f,
+ 0x11, 0xf9, 0xff, 0x7f, 0x8b,
+ 0xbf, 0xff, 0x8f, 0xff, 0xc0, 0xfb, 0xf5, 0xef,
+ 0xf7, 0x7f, 0xff, 0xff, 0xfb, 0x7f, 0xff, 0x7f,
+ 0xff, 0x6f, 0xff, 0xff, 0xff,
+ 0xbf, 0x87, 0xbb, 0xf8, 0xfb, 0xcf, 0xfe, 0xfe,
+ 0xff, 0xef, 0xff, 0xfb, 0x7f, 0xff, 0xff, 0x8f,
+ 0xff, 0xe1, 0x7f, 0x7b, 0xff,
+ 0xbf, 0x80, 0x89, 0x88, 0xb0, 0xf5, 0xf0, 0xff,
+ 0xf7, 0xdf, 0xfe, 0x7c, 0x8f, 0x0f, 0x71, 0xe1,
+ 0xff, 0xf1, 0xe5, 0x0e, 0x2b,
+ 0xff, 0xff, 0xff, 0xbf, 0xff, 0xcf, 0xf5, 0x9f,
+ 0xff, 0xff, 0xfe, 0xff, 0x8f, 0x7f, 0x71, 0x8f,
+ 0xff, 0x91, 0x7f, 0xfb, 0xff,
+ 0xff, 0x7f, 0x7f, 0xcf, 0x8a, 0xff, 0xf0, 0xff,
+ 0x57, 0xfe, 0xfb, 0x8f, 0xff, 0xf0, 0xff, 0x7e,
+ 0xff, 0xff, 0x9a, 0xff, 0xf1,
+ 0xff, 0xff, 0xcf, 0xb7, 0xce, 0xff, 0xf4, 0xff,
+ 0xff, 0x7f, 0xf7, 0xfb, 0xff, 0xfe, 0xff, 0x7f,
+ 0xff, 0xfd, 0xfe, 0x75, 0xfd,
+ 0xff, 0xef, 0xcf, 0xff, 0xf5, 0xff, 0xf5, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff,
+ 0xcf, 0x7f, 0x31, 0x7f, 0xff,
+ 0x3f, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x0f, 0x0f, 0xf1, 0xf1, 0xdf, 0xff, 0xff,
+ 0xff, 0x9f, 0xff, 0x84, 0x0e,
+ 0xff, 0xf8, 0x7f, 0xf7, 0x7f, 0xff, 0xff, 0x8f,
+ 0x8f, 0x80, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0x9f, 0x8e, 0x05, 0x71,
+ 0xbf, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff,
+ 0xfe, 0xff, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xf7, 0xff, 0xff, 0x8f, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xf0, 0xff, 0xff,
+ 0x7f, 0xf8, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x9f, 0xff, 0x8f, 0x7e,
+ 0xbf, 0xff, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0xff, 0x8f,
+ 0xff, 0x87, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0x8f, 0xff, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x7f, 0xf1,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0x8f,
+ 0xff, 0xf0, 0x0f, 0xff, 0x70, 0xff, 0x8f, 0x7e,
+ 0xf1, 0xdf, 0xff, 0xfb, 0x8e,
+ 0xff, 0x80, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xaf, 0x7f, 0x84, 0xff, 0xf1, 0xff, 0xfe,
+ 0xff, 0xff, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x80, 0xff, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0x7f, 0x8f, 0xff, 0x81, 0x7f, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xf0, 0xdf, 0xdf, 0xff, 0xdf, 0xff,
+ 0xff, 0xff, 0x8f, 0x7f, 0xf1,
+ 0xff, 0xfd, 0xff, 0xff, 0xff, 0x0f, 0xff, 0x80,
+ 0xff, 0xf0, 0xff, 0xff, 0xdf, 0xff, 0xdf, 0x8e,
+ 0x0f, 0x01, 0x71, 0xf1, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xdf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0x8f, 0x8f, 0xd0, 0xf0, 0xdf, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xfe,
+ 0xff, 0xdf, 0xff, 0xfb, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xaf, 0xfe, 0xf5, 0xff, 0xff,
+ 0xff, 0xff, 0x0f, 0x8f, 0xf0, 0x80, 0xff, 0xf0,
+ 0xff, 0xff, 0xff, 0xff, 0x1f, 0xaf, 0x71, 0xa7,
+ 0x6f, 0xf5, 0xfe, 0xff, 0xff,
+ 0xff, 0x77, 0x79, 0x8f, 0xff, 0xf0, 0x8f, 0xff,
+ 0x00, 0xff, 0xd0, 0x4f, 0x3d, 0xf0, 0xf7, 0xfd,
+ 0x8f, 0x7f, 0x81, 0x7f, 0xd1,
+ 0xff, 0xcd, 0xff, 0xff, 0x8f, 0x0f, 0x70, 0xf0,
+ 0xff, 0x7f, 0x7f, 0xff, 0xff, 0xdb, 0x8d, 0x4b,
+ 0x73, 0xf9, 0xff, 0xdf, 0xff,
+ 0x3f, 0xfc, 0xff, 0x8f, 0xff, 0xf2, 0x8f, 0x8f,
+ 0x70, 0x7a, 0x3f, 0xbc, 0xf7, 0xdb, 0xff, 0xf9,
+ 0xff, 0xff, 0xff, 0xff, 0xee,
+ 0xff, 0xe8, 0xf7, 0x8f, 0xfd, 0x80, 0xff, 0xf0,
+ 0x9f, 0xa5, 0x7a, 0xf4, 0x6f, 0x3f, 0xcf, 0x07,
+ 0x6a, 0xe1, 0xff, 0x8f, 0x7f,
+ 0xff, 0xff, 0x77, 0xf1, 0x8f, 0x8f, 0xf0, 0xf0,
+ 0xbf, 0xff, 0xe7, 0x7f, 0x8f, 0x24, 0x03, 0x77,
+ 0xf3, 0xff, 0xfe, 0xff, 0xff,
+ 0xbf, 0x9f, 0x77, 0x8b, 0xff, 0xf0, 0xff, 0xef,
+ 0x7d, 0x7f, 0xff, 0x9f, 0xeb, 0x3d, 0xff, 0xf7,
+ 0xff, 0xfb, 0xfe, 0xff, 0xdf,
+ 0xff, 0xff, 0x77, 0xff, 0x8f, 0x8f, 0xf0, 0xf0,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0x5d,
+ 0xf5, 0xbb, 0xef, 0xff, 0xff,
+ 0xff, 0x7f, 0x8f, 0x8f, 0xf0, 0xf8, 0xff, 0xff,
+ 0xf7, 0x7f, 0xff, 0xff, 0xaf, 0xbf, 0x75, 0xb7,
+ 0xff, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0x87, 0x7f, 0xf8, 0xff, 0xf7, 0xf7,
+ 0x8f, 0xff, 0xf0, 0x7f, 0xf7, 0xff, 0xad, 0xff,
+ 0xf7, 0xee, 0x9f, 0xff, 0xf5,
+ 0xff, 0xf8, 0x07, 0xff, 0x80, 0x8f, 0x80, 0x80,
+ 0xf0, 0x8f, 0x7f, 0x70, 0x4f, 0x0f, 0x79, 0xf1,
+ 0xfd, 0xff, 0xef, 0x8f, 0x7f,
+ 0xbf, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xd0, 0xbf, 0xdb, 0xe5,
+ 0x3b, 0xfe, 0xf7, 0xff, 0x8f,
+ 0xff, 0xff, 0x8f, 0x77, 0x80, 0xff, 0xf0, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xbd, 0xef, 0x07, 0x7f,
+ 0xf1, 0xfe, 0xff, 0xfe, 0xff,
+ 0x7f, 0x7f, 0xff, 0xf7, 0xf7, 0xff, 0xf7, 0x8f,
+ 0xbf, 0x70, 0xf5, 0x7f, 0xff, 0xef, 0x3f, 0x7d,
+ 0xf7, 0xff, 0xff, 0xfe, 0xfe,
+ 0xff, 0x97, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0x7e, 0xff, 0xff, 0x9f, 0xdf, 0xf7, 0x3b, 0xff,
+ 0xf7, 0xff, 0x7f, 0xfe, 0xff,
+ 0x3f, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x1f, 0x1f, 0xf1, 0xf1, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x80, 0x0e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0x8f,
+ 0x9f, 0x80, 0xe1, 0xf1, 0xff, 0xff, 0xef, 0xff,
+ 0xfe, 0x9f, 0x0e, 0x01, 0x71,
+ 0xbf, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xef,
+ 0xfe, 0xef, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x9f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xfe, 0xef,
+ 0xef, 0xff, 0xff, 0xef, 0xff,
+ 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xe0, 0xff, 0xff,
+ 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7e,
+ 0xbf, 0xff, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xef, 0xff, 0xff,
+ 0xff, 0xff, 0xee, 0xef, 0x9f,
+ 0xff, 0x07, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0x8f, 0xff, 0xe0, 0xff, 0xff,
+ 0xff, 0xef, 0x8e, 0x7f, 0xf1,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xef, 0xff, 0xfe, 0x8f, 0x7f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0xdf,
+ 0xff, 0xf0, 0x0f, 0xff, 0x70, 0xff, 0x8f, 0x7e,
+ 0xe1, 0xdf, 0xff, 0xf7, 0x8e,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0x8f, 0x7f, 0x80, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xef, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x80, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x8f, 0xff, 0x81, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0x7f, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0x1f, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x7e, 0xf1,
+ 0xff, 0xff, 0xff, 0xf7, 0xff, 0x0f, 0x8f, 0x80,
+ 0xf7, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9e,
+ 0x6f, 0x91, 0x71, 0xf1, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xef, 0xff, 0xff,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x8f, 0xf0, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xdf, 0x8f,
+ 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xfe,
+ 0xff, 0xef, 0xff, 0xd7, 0xff,
+ 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x8f, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xff, 0xfe, 0xf9, 0xdf, 0xff,
+ 0xff, 0xff, 0x8f, 0xbf, 0xf7, 0x9f, 0xf8, 0xf0,
+ 0xff, 0xff, 0x77, 0xff, 0x0e, 0x1f, 0x61, 0x81,
+ 0x7f, 0xf1, 0xfe, 0xff, 0xff,
+ 0xff, 0x7f, 0xb9, 0xcf, 0xff, 0xff, 0x0f, 0xff,
+ 0x00, 0xff, 0xd0, 0x7f, 0x75, 0x8b, 0x7f, 0xf1,
+ 0x8f, 0x7f, 0x80, 0x7e, 0x91,
+ 0xff, 0xbf, 0xdf, 0xff, 0xa7, 0x47, 0x70, 0xf7,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0x0f,
+ 0x61, 0xf1, 0xef, 0xff, 0xff,
+ 0x7f, 0xfe, 0xef, 0x5f, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xe7, 0xb7, 0xfc, 0xeb, 0x9f, 0x7f, 0xf1,
+ 0x9f, 0x0f, 0x71, 0xf1, 0xee,
+ 0xff, 0xf0, 0xf7, 0x3f, 0xef, 0x97, 0xf8, 0xe8,
+ 0xff, 0x9f, 0x7f, 0xf0, 0x7f, 0x9f, 0x6f, 0x91,
+ 0x7e, 0xf1, 0x9f, 0x8f, 0x57,
+ 0xff, 0xff, 0x26, 0xb9, 0xb8, 0xff, 0xf0, 0xff,
+ 0xff, 0xff, 0xf7, 0x7f, 0x6f, 0xf4, 0x9f, 0x1f,
+ 0x71, 0xe1, 0xfe, 0x7f, 0xff,
+ 0xbf, 0xff, 0x71, 0xbb, 0xe8, 0xff, 0xff, 0xf8,
+ 0xbf, 0xff, 0xaf, 0xff, 0xf8, 0x9d, 0x6f, 0xf1,
+ 0xbf, 0xff, 0xb7, 0xff, 0xbd,
+ 0xbf, 0xff, 0xff, 0xdf, 0x97, 0xc7, 0xf7, 0xf0,
+ 0xff, 0xff, 0x93, 0xff, 0xff, 0xef, 0xcf, 0x5f,
+ 0xf1, 0xf7, 0xdf, 0xf5, 0x9f,
+ 0xff, 0xff, 0x87, 0xbf, 0xe0, 0xbf, 0xf7, 0xff,
+ 0xf7, 0x7f, 0xff, 0xff, 0x8f, 0x5f, 0x21, 0xb1,
+ 0xff, 0x6d, 0xff, 0xef, 0xff,
+ 0xff, 0xff, 0xd7, 0xff, 0xb8, 0xff, 0xff, 0xff,
+ 0x3f, 0xef, 0xf0, 0x7f, 0xd7, 0x7f, 0xf1, 0xff,
+ 0xef, 0xee, 0xbf, 0x7f, 0xf1,
+ 0xff, 0xf8, 0x47, 0x0f, 0xc7, 0xf0, 0x7f, 0xf0,
+ 0xf0, 0x90, 0x7f, 0x70, 0x8f, 0x2f, 0xc1, 0x0f,
+ 0x11, 0x1f, 0xef, 0xaf, 0x7f,
+ 0xbf, 0x7f, 0xf0, 0x9f, 0xe7, 0xf7, 0x38, 0xff,
+ 0xff, 0xff, 0x8f, 0x7f, 0xf0, 0xaf, 0xff, 0xff,
+ 0xbf, 0xfe, 0xfd, 0xdf, 0x8f,
+ 0xff, 0xff, 0xbf, 0xf7, 0x8f, 0xff, 0xf7, 0xff,
+ 0xeb, 0xff, 0xff, 0xff, 0x8d, 0x3f, 0x81, 0x7f,
+ 0xd1, 0xfe, 0xdf, 0xfe, 0xff,
+ 0x7f, 0xff, 0xff, 0xdf, 0xa8, 0xff, 0xf0, 0xff,
+ 0xff, 0xf0, 0xf7, 0xff, 0xff, 0xff, 0xef, 0xef,
+ 0xef, 0x9f, 0x7f, 0x7e, 0xfe,
+ 0xff, 0xff, 0xef, 0xff, 0xa7, 0x77, 0xff, 0xff,
+ 0xef, 0xff, 0xff, 0xdf, 0xff, 0xe7, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0x3f, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xbf,
+ 0xff, 0x0f, 0x0f, 0xf1, 0xe1, 0xff, 0xff, 0xef,
+ 0xef, 0xff, 0xff, 0x8e, 0x0e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0x8f,
+ 0x8f, 0x80, 0xf1, 0xf1, 0xef, 0xaf, 0xaf, 0xff,
+ 0xee, 0xdf, 0x0e, 0x01, 0x71,
+ 0xbf, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0xef, 0x8f, 0x9f, 0xf1, 0xe1, 0xff, 0xaf, 0xef,
+ 0xfe, 0xff, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x9f, 0x9f, 0xf1, 0xf1, 0xef, 0xff, 0xaf, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xef, 0xbf, 0xef, 0xff,
+ 0xef, 0xbf, 0xff, 0xef, 0xff,
+ 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xef, 0xff, 0xef, 0xfe,
+ 0xcf, 0x3f, 0xf0, 0xff, 0xff,
+ 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf,
+ 0xff, 0x88, 0xff, 0xf0, 0xff, 0xff, 0xef, 0xfe,
+ 0xff, 0xff, 0xff, 0x8f, 0x6e,
+ 0xbf, 0xff, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xe0, 0xff, 0xef, 0xff,
+ 0xff, 0xff, 0xee, 0xef, 0x9f,
+ 0xff, 0x8f, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0x8f, 0xff, 0xa0, 0xff, 0xfe,
+ 0xff, 0xbf, 0x8e, 0x6f, 0xf1,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x6f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0xcf,
+ 0xff, 0xb0, 0x0f, 0xaf, 0x70, 0xff, 0x8f, 0x7e,
+ 0xf1, 0xff, 0xff, 0xf1, 0x9e,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xef, 0x8f, 0x7f, 0x90, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xaf, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x80, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x3f, 0xdf, 0xff, 0x81, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x9f, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xbf, 0x7e, 0xf1,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0x0f, 0xaf, 0x80,
+ 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde,
+ 0x0f, 0x91, 0x7f, 0xf1, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xfe,
+ 0xff, 0xff, 0xbf, 0xff, 0xfb,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xdf, 0x8f, 0x8f, 0xf0, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xdf, 0xbf, 0xff, 0xef, 0xff,
+ 0xff, 0xaf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xdf, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xaf, 0xff,
+ 0xf0, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff,
+ 0xdf, 0xfe, 0xfe, 0xff, 0xff,
+ 0xff, 0xff, 0x0f, 0x8f, 0xf0, 0x8f, 0xff, 0xf0,
+ 0xf9, 0xff, 0xf7, 0xff, 0x0f, 0x5f, 0x29, 0x89,
+ 0x77, 0xf1, 0xfa, 0xff, 0xde,
+ 0xff, 0xc3, 0x3f, 0x4b, 0x7f, 0xe9, 0x0f, 0xff,
+ 0x00, 0xff, 0x90, 0x0f, 0xd7, 0xff, 0x7f, 0xf9,
+ 0x8f, 0x7f, 0x81, 0x7f, 0x81,
+ 0xff, 0xff, 0xfb, 0x7d, 0x80, 0x46, 0x76, 0xf0,
+ 0xff, 0xff, 0x6f, 0xff, 0xff, 0xad, 0xcf, 0x3f,
+ 0x71, 0xf9, 0xff, 0xff, 0xff,
+ 0x3f, 0xba, 0xff, 0xc7, 0xf7, 0xb9, 0xcf, 0xde,
+ 0x77, 0xb7, 0x77, 0xfe, 0xff, 0xbf, 0x6f, 0xf9,
+ 0xff, 0x7e, 0x79, 0xb9, 0xfe,
+ 0xff, 0xe4, 0xf7, 0x8f, 0xfe, 0x07, 0xfe, 0xf8,
+ 0xff, 0x89, 0x7f, 0xe8, 0x7f, 0xd7, 0x7f, 0x99,
+ 0x76, 0xf1, 0xff, 0x0f, 0x7b,
+ 0xbf, 0xff, 0xb6, 0xb9, 0x8f, 0xdf, 0xf6, 0xff,
+ 0xff, 0xf7, 0xff, 0xff, 0x8f, 0xdd, 0x87, 0x7f,
+ 0x71, 0xf1, 0xfe, 0xff, 0xff,
+ 0xff, 0x7f, 0xf1, 0x8a, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0xff, 0xcf, 0xfb, 0xe8, 0x9d, 0x77, 0xa9,
+ 0xff, 0x77, 0xda, 0x7f, 0xff,
+ 0xbf, 0xff, 0xf7, 0xf7, 0x86, 0xe5, 0xf0, 0xe0,
+ 0xff, 0xff, 0xbf, 0xff, 0xff, 0xef, 0x8f, 0x7f,
+ 0xbd, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xef, 0x86, 0x8f, 0xf0, 0xff, 0xf6, 0x9f,
+ 0xff, 0x7f, 0xff, 0xff, 0xcf, 0x1f, 0x71, 0xdd,
+ 0x7f, 0xe1, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xc7, 0xf7, 0xb9, 0xff, 0xff, 0xfa,
+ 0x3f, 0xef, 0xf0, 0xff, 0xef, 0x7f, 0xd5, 0xff,
+ 0xfb, 0xff, 0xf7, 0x6e, 0xf1,
+ 0xff, 0xfc, 0xc7, 0xbf, 0xc8, 0xc0, 0x59, 0xff,
+ 0xdf, 0xff, 0x7b, 0xf0, 0xa7, 0x1f, 0xa9, 0x77,
+ 0x79, 0x71, 0x11, 0xff, 0x79,
+ 0xbf, 0xfb, 0x70, 0xbf, 0xff, 0xf9, 0x37, 0xbe,
+ 0xff, 0xff, 0x8f, 0x7f, 0xf4, 0x9f, 0xff, 0xff,
+ 0xd7, 0x7f, 0xff, 0xff, 0xaf,
+ 0xff, 0xff, 0x9e, 0xf7, 0x9f, 0xfe, 0xe4, 0xff,
+ 0xcf, 0xcf, 0xff, 0xff, 0xdf, 0x7f, 0x8d, 0x7f,
+ 0xf9, 0xfa, 0xdf, 0x9f, 0xef,
+ 0x7f, 0xef, 0xff, 0xff, 0xbe, 0xfd, 0xd2, 0xdf,
+ 0xff, 0x7e, 0xf7, 0xff, 0xff, 0xab, 0x97, 0xef,
+ 0xf3, 0xfe, 0x7f, 0x71, 0xfe,
+ 0xff, 0x9f, 0xff, 0xff, 0xb6, 0xfb, 0xf7, 0xff,
+ 0xff, 0xf7, 0xff, 0xbf, 0xff, 0xb7, 0xdb, 0xff,
+ 0xbb, 0xef, 0xff, 0xff, 0xff,
+ 0x3f, 0x68, 0xfe, 0xfd, 0xfb, 0xff, 0xff, 0xef,
+ 0xf1, 0x1e, 0x1b, 0xf1, 0xf5, 0xff, 0xff, 0xff,
+ 0xff, 0x9f, 0xfb, 0x9a, 0x36,
+ 0xff, 0xfc, 0x7d, 0xff, 0x73, 0xf7, 0xff, 0xaf,
+ 0x9f, 0x94, 0xfd, 0xf5, 0xff, 0xf7, 0xff, 0xfb,
+ 0xfe, 0xef, 0x3e, 0x07, 0x4d,
+ 0xbf, 0xe8, 0xf8, 0xff, 0x7f, 0xff, 0xf7, 0xf7,
+ 0xf1, 0x8f, 0xaf, 0xd1, 0xf7, 0xf9, 0xfd, 0xff,
+ 0xf8, 0xdf, 0xfb, 0x8f, 0x2f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xf7, 0xf7, 0xff, 0xff,
+ 0xa7, 0xaf, 0xf7, 0xf3, 0xdf, 0xff, 0xfd, 0xff,
+ 0xfd, 0xff, 0xae, 0x0f, 0x71,
+ 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf3, 0xf3,
+ 0xff, 0xf3, 0xff, 0xf7, 0xfb, 0xf3, 0xff, 0xff,
+ 0xff, 0xeb, 0xff, 0xf3, 0xdb,
+ 0xff, 0xeb, 0x7b, 0xfb, 0xf7, 0xff, 0x8b, 0xf7,
+ 0xfc, 0xf7, 0xfb, 0xff, 0xfb, 0xf3, 0xff, 0xff,
+ 0x8b, 0x7f, 0xd4, 0xfb, 0xff,
+ 0x7f, 0xec, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7,
+ 0xff, 0x8e, 0xff, 0xf8, 0xf7, 0xfb, 0xfd, 0xff,
+ 0xfd, 0x9f, 0xf7, 0x9f, 0x7e,
+ 0xbf, 0xfb, 0x7c, 0xff, 0xf7, 0xff, 0xff, 0xfb,
+ 0xfb, 0xf1, 0x8f, 0xf3, 0xdc, 0xf7, 0xfd, 0xff,
+ 0xe9, 0xeb, 0xef, 0xc3, 0xb7,
+ 0xff, 0x07, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xf7,
+ 0x8f, 0xff, 0xf4, 0x8f, 0xfb, 0xfc, 0xff, 0xef,
+ 0xff, 0xf7, 0x8f, 0x7f, 0xd1,
+ 0xff, 0xfa, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff,
+ 0xf3, 0x89, 0xef, 0xf8, 0xff, 0xf7, 0xff, 0xef,
+ 0xef, 0xf7, 0xf3, 0xab, 0x7f,
+ 0x3f, 0xf9, 0x7e, 0xf9, 0x8f, 0x7f, 0xf0, 0xef,
+ 0xff, 0xfc, 0x1b, 0xff, 0x7c, 0xff, 0x8f, 0x6e,
+ 0xf1, 0xf7, 0x73, 0xff, 0xa6,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xf9, 0x8f, 0x7f, 0x84, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xfa, 0x8f, 0x7f,
+ 0xff, 0x96, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
+ 0x57, 0xaf, 0xfb, 0x85, 0x7f, 0xf4, 0xff, 0xfe,
+ 0xef, 0xff, 0xef, 0xbf, 0x53,
+ 0xff, 0x7d, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff,
+ 0x97, 0x71, 0xf8, 0xff, 0xff, 0xff, 0xdb, 0xef,
+ 0xef, 0xe7, 0x97, 0x72, 0xfd,
+ 0xff, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0xe3, 0x86,
+ 0xf0, 0xf4, 0xfb, 0xff, 0xdf, 0xff, 0xfb, 0x8e,
+ 0x0b, 0xa5, 0x72, 0xf9, 0xff,
+ 0xff, 0xfb, 0xff, 0xff, 0xf7, 0xff, 0xf3, 0xff,
+ 0xf7, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xfb, 0xee,
+ 0xfb, 0xff, 0xef, 0xff, 0xff,
+ 0xbf, 0x82, 0xf8, 0xf8, 0xf7, 0x7f, 0xf7, 0xff,
+ 0xff, 0xef, 0x87, 0x87, 0xf0, 0xf0, 0xfb, 0xff,
+ 0xfb, 0xf7, 0xef, 0xef, 0x87,
+ 0xff, 0xf6, 0xff, 0xfa, 0xf1, 0xef, 0xf3, 0xf7,
+ 0x7f, 0xff, 0xff, 0xef, 0xff, 0xf7, 0xff, 0xff,
+ 0xfb, 0xf7, 0xff, 0xfe, 0xff,
+ 0xff, 0xf7, 0xfb, 0xf2, 0xf3, 0xff, 0xf1, 0xf7,
+ 0xff, 0xef, 0xf7, 0xef, 0xf7, 0xf7, 0xff, 0xfe,
+ 0xff, 0xff, 0xef, 0xff, 0xe7,
+ 0xff, 0xfb, 0xfb, 0xff, 0xf5, 0xef, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0x77, 0xff, 0xff, 0xfe,
+ 0xff, 0xf7, 0xff, 0xef, 0xef,
+ 0xff, 0xff, 0xff, 0xff, 0xf7, 0xef, 0xe5, 0xff,
+ 0xfe, 0x61, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x9f, 0xef, 0xef, 0xf3, 0xf7,
+ 0xff, 0xff, 0x0f, 0x9f, 0xfa, 0x87, 0xff, 0xf6,
+ 0xeb, 0xff, 0xff, 0xef, 0x0f, 0x6f, 0xfd, 0x0d,
+ 0x53, 0xf1, 0xf3, 0xff, 0xff,
+ 0xbf, 0x1b, 0x7f, 0x96, 0xfe, 0xff, 0x8f, 0xfb,
+ 0x00, 0xff, 0xb0, 0x17, 0x7c, 0x8f, 0xff, 0xfd,
+ 0x8f, 0x7f, 0x81, 0x7e, 0xf1,
+ 0xff, 0xfd, 0xed, 0xee, 0x9e, 0x0b, 0x79, 0xff,
+ 0xfb, 0x77, 0x5b, 0xff, 0x9f, 0xff, 0x4f, 0x0f,
+ 0x71, 0xf0, 0xdb, 0xff, 0xf7,
+ 0x7f, 0xe7, 0xef, 0x18, 0xff, 0xff, 0x9d, 0x8e,
+ 0x67, 0xbf, 0x4f, 0xff, 0xff, 0xae, 0xff, 0xf1,
+ 0xeb, 0xef, 0xfd, 0xad, 0xf6,
+ 0xff, 0xfc, 0xf7, 0x1f, 0xff, 0x9f, 0xfb, 0xfc,
+ 0xff, 0x8f, 0x77, 0xec, 0x5f, 0x6f, 0xdf, 0x25,
+ 0x7e, 0xd9, 0xe6, 0x97, 0x3f,
+ 0xff, 0xf7, 0x67, 0xec, 0x92, 0xbe, 0xf1, 0xfb,
+ 0xff, 0x7f, 0xdf, 0x7b, 0x5e, 0x7d, 0xe7, 0x5f,
+ 0xf1, 0xf1, 0xfb, 0xff, 0xf7,
+ 0xbf, 0xf7, 0x71, 0x9a, 0xfd, 0xff, 0xf7, 0xfb,
+ 0x5f, 0x7f, 0xaf, 0xdf, 0xf9, 0xe7, 0x77, 0xdd,
+ 0x6f, 0xf7, 0xbb, 0xff, 0x8b,
+ 0xbf, 0xff, 0x77, 0xff, 0x93, 0xfe, 0xf8, 0xfe,
+ 0xbf, 0xfe, 0xbf, 0xff, 0xff, 0xbf, 0xab, 0x7f,
+ 0xfd, 0xff, 0xcf, 0x67, 0xff,
+ 0xff, 0x7f, 0x07, 0x9f, 0xe4, 0xdb, 0xff, 0xf1,
+ 0xf7, 0x7f, 0xff, 0xff, 0x8f, 0x6f, 0xd1, 0x6d,
+ 0x73, 0xff, 0xff, 0xfb, 0xff,
+ 0xff, 0x6f, 0x9f, 0x7b, 0xfd, 0xff, 0xf6, 0xfd,
+ 0x27, 0xff, 0xfc, 0xff, 0xaf, 0xff, 0xfd, 0xfe,
+ 0x7f, 0xdf, 0xff, 0x7f, 0xef,
+ 0xff, 0xfe, 0x81, 0xe7, 0x93, 0x91, 0x83, 0x85,
+ 0xef, 0x8f, 0x7f, 0x74, 0x8d, 0x1b, 0x2d, 0xe2,
+ 0xcd, 0xe5, 0xb5, 0x9f, 0x77,
+ 0xbf, 0x7f, 0xe4, 0xef, 0xff, 0xf7, 0xdb, 0xfd,
+ 0x7f, 0xfe, 0xab, 0x7f, 0xfc, 0xbf, 0xff, 0xde,
+ 0x77, 0xfb, 0xdf, 0xef, 0xbf,
+ 0xff, 0xff, 0x1e, 0x7f, 0x8f, 0xff, 0x92, 0xf3,
+ 0xdf, 0x7b, 0xff, 0x7b, 0xff, 0xdb, 0x3d, 0x5f,
+ 0xf9, 0xf6, 0xff, 0xf2, 0xf7,
+ 0x7f, 0x7f, 0xff, 0xff, 0xef, 0xd2, 0xf0, 0xb7,
+ 0xfb, 0x7f, 0xfc, 0x77, 0xd7, 0x3f, 0xc7, 0x7f,
+ 0xf3, 0xe7, 0xff, 0xfd, 0xfe,
+ 0xff, 0xff, 0xef, 0x7b, 0xef, 0xf5, 0xda, 0xff,
+ 0x7c, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xeb, 0xfb,
+ 0xef, 0xff, 0xef, 0xff, 0xff,
+ 0x3f, 0x60, 0xfc, 0xfb, 0xf7, 0xff, 0xff, 0xff,
+ 0xfb, 0x00, 0x0f, 0xf1, 0xf5, 0xfb, 0xff, 0xff,
+ 0xff, 0xff, 0xf3, 0x86, 0x3e,
+ 0xff, 0xf8, 0x7f, 0xfb, 0x73, 0xff, 0xff, 0x9f,
+ 0xab, 0x8c, 0xf5, 0xd1, 0xff, 0xfb, 0xff, 0xff,
+ 0xfe, 0xeb, 0x36, 0x0d, 0x49,
+ 0xbf, 0xf0, 0xfc, 0xfb, 0x73, 0xff, 0xf3, 0xff,
+ 0xff, 0xab, 0xa7, 0xf1, 0xf9, 0xff, 0xf7, 0xdf,
+ 0xfa, 0xfb, 0xff, 0xa7, 0x3f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xfb, 0xfb, 0xfb, 0xff,
+ 0xaf, 0x8f, 0xf9, 0xf9, 0xdf, 0xdf, 0xf7, 0xdb,
+ 0xff, 0xff, 0xba, 0x2f, 0x69,
+ 0xff, 0xe7, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xfb,
+ 0xff, 0xfb, 0xd7, 0xff, 0xdf, 0xf7, 0xd7, 0xdf,
+ 0xf3, 0xdb, 0xff, 0xdb, 0xff,
+ 0xff, 0xe3, 0x7b, 0xf9, 0xfb, 0xff, 0x8f, 0xfb,
+ 0xf8, 0xff, 0xff, 0xef, 0xdf, 0xf3, 0xd7, 0xdf,
+ 0xa3, 0x5b, 0xc4, 0xfb, 0xef,
+ 0x7f, 0xe0, 0xfd, 0xfb, 0xfb, 0xff, 0xfb, 0xeb,
+ 0xff, 0x8c, 0xeb, 0xf0, 0xd3, 0xff, 0xd7, 0xff,
+ 0xf7, 0xbb, 0x7f, 0x8f, 0x7e,
+ 0xbf, 0xfb, 0x6c, 0xfb, 0xfb, 0xff, 0xfb, 0xff,
+ 0xfb, 0xf3, 0x8b, 0xf3, 0xf4, 0xf7, 0xd7, 0xff,
+ 0xf3, 0xff, 0xfe, 0xc2, 0xbf,
+ 0xff, 0x87, 0x7f, 0xfa, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0x8f, 0xff, 0xf4, 0xff, 0xdf,
+ 0xff, 0xfb, 0x8f, 0x7f, 0xc5,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
+ 0xf3, 0x87, 0xef, 0xfc, 0xfd, 0xfb, 0xff, 0xff,
+ 0xdf, 0xff, 0xfb, 0xab, 0x7f,
+ 0x3f, 0xf3, 0xfa, 0xf9, 0x8f, 0x7f, 0xf0, 0xeb,
+ 0xfb, 0xec, 0x1f, 0xcf, 0x7e, 0xff, 0x8f, 0x5e,
+ 0xd1, 0xbf, 0xff, 0xfe, 0xaa,
+ 0xff, 0x80, 0x7d, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xf7, 0x8f, 0x5f, 0x8c, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xfa, 0x9f, 0x6f,
+ 0xff, 0x9a, 0xfd, 0xfc, 0xff, 0xff, 0xff, 0xff,
+ 0x6f, 0xbf, 0xd7, 0x89, 0x7f, 0xf4, 0xff, 0xfe,
+ 0xff, 0xff, 0xdf, 0xbf, 0x6f,
+ 0xff, 0xfd, 0xff, 0xff, 0xef, 0xff, 0xfb, 0xff,
+ 0x2b, 0x73, 0xf0, 0xf3, 0xff, 0xff, 0xc3, 0xff,
+ 0xff, 0xff, 0x8b, 0x62, 0xfd,
+ 0xff, 0xef, 0xff, 0xff, 0xfb, 0x0f, 0x8b, 0x8e,
+ 0xf0, 0xdc, 0xf7, 0xff, 0xff, 0xff, 0xfb, 0xae,
+ 0x43, 0xa9, 0x73, 0xf9, 0xfb,
+ 0x7f, 0xf9, 0xff, 0xff, 0xfd, 0xff, 0xf9, 0xff,
+ 0xfb, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf3, 0xfe,
+ 0xf3, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xf9, 0x7f, 0xf9, 0xff,
+ 0xff, 0x7f, 0x8f, 0x8f, 0xf0, 0xf0, 0xf3, 0xff,
+ 0xf3, 0xfb, 0xff, 0xff, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff,
+ 0xfb, 0xef, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xf7, 0xf9, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfe,
+ 0xf3, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf5, 0xff, 0xf1, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe,
+ 0xfb, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xf1, 0xff, 0x85, 0xff,
+ 0xfe, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff,
+ 0xf3, 0xde, 0xff, 0xf3, 0xff,
+ 0xbf, 0xff, 0x0f, 0x9f, 0xfa, 0x9f, 0xeb, 0xf2,
+ 0xe7, 0xff, 0x7b, 0xff, 0x4f, 0x73, 0x31, 0x81,
+ 0x5f, 0xf1, 0xfe, 0xff, 0xbf,
+ 0xff, 0xaf, 0x7f, 0x94, 0xfb, 0xfe, 0x8f, 0xff,
+ 0x00, 0xff, 0xf0, 0xef, 0xef, 0x5f, 0xfb, 0xf5,
+ 0x8f, 0x7f, 0x81, 0x5e, 0xf1,
+ 0xff, 0xf9, 0xff, 0xef, 0x86, 0x0f, 0x71, 0xf6,
+ 0xff, 0x7f, 0x7f, 0x97, 0xcf, 0xfd, 0xbf, 0x5f,
+ 0xf9, 0xf1, 0xf3, 0xff, 0xff,
+ 0x3f, 0xdb, 0xed, 0x1e, 0xff, 0xf6, 0x95, 0x9a,
+ 0x6f, 0x3d, 0xff, 0xf8, 0xfb, 0xdf, 0xf7, 0xfd,
+ 0xfb, 0xf7, 0xfd, 0xed, 0xde,
+ 0x7f, 0xf0, 0xf7, 0x87, 0x7f, 0x9b, 0xff, 0xec,
+ 0x9f, 0xbf, 0x7f, 0xcd, 0x7f, 0xf7, 0x3b, 0xad,
+ 0x7e, 0xf8, 0xff, 0xbb, 0x79,
+ 0xff, 0xff, 0xe3, 0x7c, 0x01, 0x8d, 0xf5, 0xfb,
+ 0xe7, 0xf7, 0xff, 0xff, 0x9e, 0x7d, 0x0f, 0x7f,
+ 0xf1, 0xcd, 0xfe, 0xf7, 0xff,
+ 0x3f, 0xd7, 0xf4, 0x9a, 0xf7, 0xed, 0xff, 0xf3,
+ 0xb7, 0xff, 0xef, 0xff, 0xbd, 0xe7, 0x5f, 0xbd,
+ 0xff, 0xef, 0xfe, 0x7f, 0xf1,
+ 0x3f, 0xff, 0xe7, 0xff, 0xcf, 0xfa, 0xf8, 0xff,
+ 0xff, 0xdf, 0xbf, 0xfe, 0xdf, 0xff, 0xd3, 0x1f,
+ 0xfd, 0xef, 0x7f, 0xff, 0xcf,
+ 0x7f, 0xff, 0x93, 0xdf, 0xf0, 0xef, 0xf3, 0xd4,
+ 0x77, 0x6f, 0xff, 0xff, 0xbf, 0x7f, 0x7d, 0xfd,
+ 0x7f, 0x7d, 0xff, 0xff, 0xf7,
+ 0xff, 0xf7, 0xdf, 0xfb, 0xbc, 0xef, 0xff, 0xfd,
+ 0xff, 0xff, 0xfc, 0x7f, 0xb7, 0xff, 0xfd, 0x5f,
+ 0xcf, 0xff, 0xef, 0x7f, 0xfd,
+ 0xff, 0xee, 0x87, 0xef, 0x92, 0xf0, 0x7e, 0xe5,
+ 0xbf, 0x8f, 0x7f, 0x60, 0xd9, 0xdb, 0x71, 0xb3,
+ 0x2d, 0x49, 0x6c, 0x29, 0x7f,
+ 0xbf, 0xff, 0xe4, 0x6f, 0xf3, 0xfa, 0x57, 0xfd,
+ 0xff, 0xfe, 0xb7, 0x7f, 0xfc, 0xff, 0x73, 0xdf,
+ 0xf3, 0x7f, 0xfd, 0xff, 0xbf,
+ 0xff, 0xef, 0x8b, 0x7f, 0x8f, 0xff, 0xf2, 0xff,
+ 0xff, 0xf7, 0xfb, 0xff, 0xff, 0xdf, 0xed, 0xef,
+ 0xf1, 0xf7, 0xfd, 0xdf, 0xf7,
+ 0xff, 0xff, 0xff, 0xf7, 0xe7, 0xe6, 0xf1, 0xff,
+ 0xdf, 0xfb, 0xe9, 0xfe, 0xbf, 0xff, 0xbf, 0x5f,
+ 0xff, 0xbf, 0x0e, 0x75, 0xfa,
+ 0xff, 0xff, 0xff, 0x6f, 0xfb, 0xf9, 0xff, 0xff,
+ 0xf3, 0xff, 0xfb, 0xbf, 0xef, 0xff, 0xf3, 0x7f,
+ 0xff, 0xff, 0xff, 0xfb, 0xff,
+ 0xff, 0x38, 0xf8, 0xf7, 0xff, 0xff, 0xdf, 0x9f,
+ 0xf7, 0x0b, 0x0f, 0xf5, 0xf5, 0xff, 0xff, 0xff,
+ 0xbf, 0xf7, 0xf3, 0x8e, 0x0e,
+ 0xbf, 0xe8, 0x6f, 0xef, 0x7f, 0xff, 0xdf, 0xdf,
+ 0xef, 0x88, 0xf5, 0x91, 0xfb, 0xff, 0xff, 0xbf,
+ 0xfe, 0xbf, 0xa6, 0x81, 0x71,
+ 0xff, 0xf0, 0xf8, 0xff, 0x67, 0xef, 0xff, 0xb7,
+ 0xf7, 0x8f, 0x2f, 0xd1, 0x41, 0xff, 0xcf, 0x5f,
+ 0xfe, 0xff, 0x7b, 0x8f, 0x9f,
+ 0xff, 0xf8, 0x6f, 0xef, 0xf7, 0xe7, 0xff, 0xff,
+ 0xbf, 0x8f, 0xd1, 0xf1, 0xcf, 0xdf, 0xcf, 0xdf,
+ 0xff, 0xff, 0x9f, 0x8f, 0xe1,
+ 0xff, 0xe7, 0xff, 0xf7, 0xe7, 0x6f, 0xf7, 0xe7,
+ 0xe7, 0x77, 0xef, 0xef, 0x6f, 0xff, 0xff, 0xdf,
+ 0xff, 0xdf, 0xdf, 0xff, 0xff,
+ 0xff, 0xa7, 0x6f, 0xff, 0xf7, 0xef, 0x97, 0xe7,
+ 0xf0, 0xef, 0x7f, 0xaf, 0x4f, 0xff, 0xff, 0xdf,
+ 0xbf, 0x5f, 0xe0, 0x7f, 0xef,
+ 0x7f, 0xa0, 0xef, 0xff, 0xe7, 0xff, 0xf7, 0xf7,
+ 0xff, 0x8b, 0xbf, 0xf8, 0xdf, 0xff, 0xcf, 0x7e,
+ 0xff, 0xdf, 0x7f, 0x8e, 0x5f,
+ 0xff, 0xff, 0x38, 0xff, 0xf7, 0xff, 0xf7, 0xf7,
+ 0xf7, 0xf7, 0x8f, 0xf7, 0xf8, 0xf7, 0xcf, 0xff,
+ 0xff, 0xff, 0xfe, 0xcb, 0x3f,
+ 0x3f, 0x9f, 0x7f, 0xf8, 0xff, 0xef, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0xaf, 0xff, 0xf0, 0xff, 0xdf,
+ 0xff, 0xff, 0xae, 0x7f, 0xc1,
+ 0x7f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xf7, 0xbf, 0xbf, 0xd0, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xff, 0x9b, 0xff,
+ 0x7f, 0xcf, 0xf8, 0xff, 0x8f, 0x6f, 0xe0, 0xd7,
+ 0xf7, 0xf7, 0xff, 0xfe, 0xf0, 0xfe, 0x8f, 0x5e,
+ 0xd1, 0xff, 0xdf, 0xdf, 0xbe,
+ 0xff, 0x84, 0x7f, 0xf8, 0xff, 0x7f, 0xdf, 0xff,
+ 0xff, 0xaf, 0x7f, 0x81, 0x7f, 0xf5, 0xff, 0xff,
+ 0xff, 0xff, 0xfa, 0x9f, 0x3f,
+ 0xff, 0xd8, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x0f, 0xff, 0x85, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xbf, 0xff, 0xdf, 0x6f, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xf7, 0xdf,
+ 0xf7, 0x47, 0xf4, 0xff, 0xef, 0xff, 0xdf, 0x7f,
+ 0xff, 0xbf, 0xcf, 0x5a, 0xf1,
+ 0xff, 0xbf, 0xbf, 0xff, 0xff, 0x3f, 0x8f, 0xc0,
+ 0xf3, 0xd1, 0xff, 0xfb, 0xef, 0xff, 0xdf, 0xbe,
+ 0x0f, 0x25, 0xe9, 0xd1, 0xff,
+ 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xf7, 0xf7,
+ 0x2f, 0xaf, 0xf3, 0xfb, 0xef, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xcf, 0xbf, 0xfb,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xdf, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x8f, 0xe0, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xeb, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xfe,
+ 0xfb, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xdf, 0xf7, 0xff, 0xff, 0xcf, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0xfe,
+ 0xcf, 0xff, 0x7b, 0xfd, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xdf, 0xff, 0xbf, 0xff,
+ 0xfb, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xef, 0xff,
+ 0xfb, 0xbe, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xd4, 0xbf, 0xf0,
+ 0xbf, 0xff, 0xff, 0xff, 0x93, 0x2f, 0xfd, 0xad,
+ 0xf7, 0x75, 0xff, 0xff, 0xfe,
+ 0xbf, 0x7f, 0xff, 0x9a, 0xff, 0xf4, 0x0f, 0xff,
+ 0x00, 0xde, 0xf0, 0xf3, 0xf9, 0xbf, 0x7d, 0xff,
+ 0x8f, 0x7f, 0x81, 0x0f, 0xd1,
+ 0xff, 0xfb, 0xdf, 0xee, 0x8b, 0x0b, 0x78, 0xf0,
+ 0xff, 0xfa, 0x7f, 0xbf, 0xff, 0xd5, 0x8f, 0x8f,
+ 0xe1, 0xf7, 0xfb, 0xfb, 0xff,
+ 0x7f, 0xb7, 0x99, 0xef, 0xdf, 0xf4, 0xff, 0xff,
+ 0xe4, 0xf4, 0x5d, 0xf6, 0xef, 0x9f, 0xef, 0xf7,
+ 0x3b, 0x3f, 0xdf, 0xbf, 0xec,
+ 0xff, 0xec, 0xf7, 0xb9, 0x6b, 0xbc, 0xfb, 0xf7,
+ 0xef, 0xff, 0x7e, 0xfd, 0x7e, 0xbb, 0xdf, 0x85,
+ 0xfe, 0xf7, 0xff, 0x7b, 0x7f,
+ 0xff, 0xff, 0xa7, 0xee, 0xe7, 0x5f, 0xe0, 0xf0,
+ 0xff, 0xff, 0xff, 0x5f, 0xe6, 0x6f, 0x81, 0x8d,
+ 0xd5, 0xf7, 0xbf, 0xef, 0xb6,
+ 0xff, 0xd7, 0xf4, 0xee, 0xb7, 0x7c, 0xff, 0xd7,
+ 0xaf, 0x7f, 0xed, 0x9f, 0xe5, 0xbf, 0xf7, 0x7d,
+ 0xfb, 0xb7, 0xad, 0xd7, 0xfd,
+ 0xbf, 0xff, 0xff, 0xc7, 0x8b, 0xff, 0xf0, 0xf6,
+ 0xff, 0xfd, 0xfb, 0xff, 0xdf, 0xbe, 0x0f, 0x7f,
+ 0xd5, 0xf7, 0xff, 0xf2, 0xfe,
+ 0xff, 0xff, 0xc5, 0xff, 0xf0, 0x7c, 0xff, 0xad,
+ 0x7f, 0x7f, 0xef, 0xff, 0xcf, 0x4f, 0xf1, 0xf5,
+ 0x7b, 0xdd, 0xff, 0xdf, 0xff,
+ 0xff, 0x77, 0xef, 0xff, 0xd8, 0xbf, 0xf7, 0xf3,
+ 0x5f, 0xfb, 0xf9, 0x7f, 0xe7, 0xff, 0xd7, 0x7f,
+ 0xad, 0xff, 0xfb, 0xfb, 0xf3,
+ 0xff, 0xcc, 0x95, 0x8f, 0xd8, 0xf3, 0xfc, 0xbc,
+ 0xdc, 0xdf, 0xbb, 0x44, 0x8b, 0xcb, 0x87, 0xb1,
+ 0xb7, 0xa7, 0x97, 0xee, 0xf3,
+ 0xff, 0x7f, 0xb4, 0xbf, 0xff, 0xc7, 0x7f, 0xcb,
+ 0xfd, 0xbf, 0x7f, 0x7f, 0x74, 0xe7, 0xdf, 0xf5,
+ 0xbb, 0xcf, 0xed, 0xfe, 0xfd,
+ 0xff, 0x3f, 0xfb, 0x77, 0xcc, 0xbb, 0xf0, 0xfb,
+ 0xff, 0xef, 0xbe, 0xff, 0xcf, 0xff, 0x85, 0x3f,
+ 0xb5, 0xff, 0xf7, 0x37, 0x7f,
+ 0x3f, 0xf7, 0xbf, 0xcf, 0x9f, 0xd7, 0xf7, 0xef,
+ 0xff, 0x78, 0xe7, 0xff, 0xff, 0xff, 0x1f, 0x7f,
+ 0x65, 0xbf, 0xbf, 0xff, 0xe7,
+ 0xff, 0xff, 0xff, 0xff, 0xdb, 0xf7, 0xdf, 0xff,
+ 0x77, 0x7f, 0xff, 0xff, 0xbf, 0xbf, 0xde, 0x77,
+ 0xdd, 0xff, 0xff, 0xfe, 0xff,
+ 0xbf, 0x68, 0xf8, 0xff, 0xf7, 0xff, 0xcf, 0xcf,
+ 0xf3, 0x17, 0x3f, 0xd5, 0xdd, 0xf7, 0xff, 0xff,
+ 0xcf, 0xdf, 0x73, 0x95, 0x3f,
+ 0xff, 0xac, 0x6f, 0xef, 0x77, 0xdf, 0xff, 0xf7,
+ 0xbb, 0x85, 0xdd, 0xe1, 0xf7, 0xfb, 0x7b, 0xdf,
+ 0xfe, 0xff, 0xb7, 0x9f, 0x79,
+ 0xff, 0xd8, 0xac, 0xfb, 0x47, 0xaf, 0xeb, 0xf7,
+ 0xff, 0xaf, 0x2e, 0x70, 0xd9, 0xf7, 0xfb, 0xdf,
+ 0xea, 0xfb, 0xfb, 0x1b, 0x5f,
+ 0xff, 0xf8, 0x6f, 0xaf, 0xd7, 0xb7, 0xeb, 0xff,
+ 0xe7, 0xaf, 0x7c, 0x70, 0xfb, 0xdf, 0xff, 0x7b,
+ 0xfb, 0xff, 0xda, 0x9f, 0xf9,
+ 0xff, 0x95, 0xbb, 0xfd, 0xc7, 0xcf, 0xfb, 0x83,
+ 0xef, 0xf3, 0xbf, 0xcf, 0x47, 0xf7, 0xe7, 0x1f,
+ 0xd7, 0x8b, 0x6f, 0x33, 0xbe,
+ 0xff, 0xc7, 0x6f, 0xfd, 0x97, 0x2f, 0xeb, 0xb7,
+ 0xdc, 0x77, 0xd7, 0x1f, 0x67, 0xf7, 0xe7, 0x9e,
+ 0xe7, 0xdb, 0x34, 0xdb, 0xfb,
+ 0x7f, 0xa8, 0xef, 0xff, 0xe7, 0xef, 0xff, 0xf7,
+ 0xff, 0x8b, 0xbf, 0xd8, 0xef, 0xff, 0xe7, 0xdf,
+ 0xf7, 0xfb, 0xf7, 0x9f, 0x66,
+ 0xff, 0xfb, 0x6c, 0xff, 0xb7, 0x9f, 0xcf, 0xcb,
+ 0xbb, 0x93, 0xaf, 0xff, 0xa8, 0xff, 0xc7, 0x3f,
+ 0xa7, 0xcf, 0xfe, 0xe3, 0x3f,
+ 0x3f, 0xdf, 0x7b, 0xfa, 0xff, 0xff, 0xff, 0xf7,
+ 0x8f, 0x3f, 0xd0, 0xd3, 0x7f, 0xfc, 0xff, 0x8e,
+ 0xff, 0xf3, 0x8f, 0x4e, 0xe4,
+ 0x7f, 0xb8, 0xff, 0xff, 0xff, 0xef, 0x8f, 0xdf,
+ 0xf3, 0xbb, 0x3f, 0xe0, 0xf3, 0xff, 0xff, 0xef,
+ 0x8f, 0xd7, 0xf3, 0xab, 0xef,
+ 0x7f, 0x8f, 0xf8, 0xfb, 0x8f, 0x6f, 0xa0, 0xff,
+ 0xff, 0xdc, 0xff, 0x5f, 0xfc, 0xf3, 0x8f, 0x6e,
+ 0xb1, 0xf7, 0xf7, 0xf7, 0x3e,
+ 0xff, 0x90, 0x7b, 0xf8, 0xff, 0x7f, 0xdf, 0xff,
+ 0xfb, 0x9f, 0x7f, 0xa0, 0xf3, 0xf1, 0xff, 0xff,
+ 0xdf, 0xff, 0xdb, 0xbf, 0x3f,
+ 0xff, 0xdc, 0xfb, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x77, 0xaf, 0xff, 0xad, 0xf3, 0xf8, 0xff, 0xfe,
+ 0xef, 0xff, 0xff, 0x6f, 0xbf,
+ 0xff, 0xff, 0xcf, 0xff, 0xa3, 0xff, 0xaf, 0xcf,
+ 0x93, 0xc3, 0x74, 0xef, 0xdf, 0xff, 0xab, 0x2f,
+ 0xe7, 0xc7, 0xf3, 0x73, 0x79,
+ 0xff, 0xff, 0xcf, 0xff, 0xc3, 0x7f, 0x83, 0xe4,
+ 0xd3, 0xbc, 0x7b, 0xdb, 0xdf, 0x7f, 0x8b, 0x8e,
+ 0x83, 0x01, 0x51, 0xd5, 0x7b,
+ 0xff, 0xfb, 0xdf, 0xff, 0xc3, 0xef, 0xb3, 0xff,
+ 0xb7, 0xff, 0xfe, 0xbf, 0xdf, 0xff, 0x8b, 0x6e,
+ 0xf3, 0xfb, 0xb7, 0x1f, 0xfe,
+ 0xbf, 0x82, 0xc8, 0xf8, 0xd3, 0x7f, 0xf3, 0xfb,
+ 0xff, 0xef, 0x87, 0x87, 0xd0, 0x70, 0x8b, 0xff,
+ 0xf3, 0xff, 0xef, 0xef, 0x87,
+ 0xff, 0xff, 0xff, 0xff, 0x47, 0xff, 0xf3, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xdf, 0x7f, 0xcb, 0xef,
+ 0xf2, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xf7, 0xef, 0xf2, 0xf7, 0xff, 0xf7, 0xff,
+ 0xff, 0xff, 0xf7, 0xef, 0xdf, 0xf7, 0xca, 0x7f,
+ 0xf3, 0xf7, 0xef, 0xff, 0xf6,
+ 0xff, 0xfa, 0xfb, 0xff, 0xe7, 0xff, 0xf7, 0xff,
+ 0xff, 0xef, 0xff, 0xf7, 0x57, 0x7f, 0xca, 0xef,
+ 0xf3, 0xff, 0xff, 0xef, 0xef,
+ 0xff, 0xf6, 0xeb, 0xfa, 0xf7, 0xff, 0xf7, 0x8f,
+ 0xff, 0xe3, 0xf7, 0xef, 0xd7, 0xf7, 0xcb, 0x7f,
+ 0xf3, 0x8f, 0x6c, 0xf2, 0xe7,
+ 0xff, 0xff, 0x2f, 0xff, 0xf1, 0x9d, 0x9e, 0xf4,
+ 0xff, 0xff, 0xff, 0xef, 0x0f, 0xff, 0xf1, 0x09,
+ 0x3f, 0xf9, 0xbf, 0xf7, 0xfb,
+ 0xff, 0xef, 0x7f, 0xf6, 0xfb, 0xf5, 0x0f, 0xdf,
+ 0x00, 0xff, 0xd0, 0xbf, 0xc0, 0xbf, 0xf9, 0xff,
+ 0x8f, 0x7f, 0x81, 0x6f, 0xe1,
+ 0xff, 0xff, 0x9e, 0xaf, 0xf7, 0x0f, 0x18, 0xd9,
+ 0xbf, 0x6f, 0x37, 0xef, 0x8f, 0xff, 0x9e, 0x06,
+ 0x75, 0xf7, 0xf6, 0xff, 0xef,
+ 0x7f, 0xf7, 0xcf, 0xbb, 0xfb, 0x6d, 0xfb, 0xef,
+ 0x7d, 0xe9, 0xff, 0xff, 0xbf, 0xc2, 0xf7, 0x6f,
+ 0xff, 0xdc, 0xff, 0xf3, 0xfa,
+ 0x7f, 0x6f, 0xf7, 0xf9, 0xff, 0x6d, 0xfe, 0x9c,
+ 0xbf, 0xbf, 0x7d, 0xe2, 0x7f, 0x77, 0x9f, 0xcd,
+ 0xb7, 0xb5, 0xff, 0xff, 0x7f,
+ 0x7f, 0xff, 0x87, 0xae, 0x86, 0xdf, 0xc0, 0xfd,
+ 0xfb, 0xfa, 0xff, 0xff, 0x8e, 0x6d, 0xd5, 0x3d,
+ 0xf1, 0xff, 0xfe, 0xef, 0xff,
+ 0xff, 0x3f, 0xd2, 0xa4, 0xfe, 0xd9, 0xf7, 0xfe,
+ 0xdf, 0xff, 0xcb, 0xff, 0xdd, 0x7e, 0xbb, 0xdd,
+ 0x5f, 0xf7, 0xbf, 0xff, 0xed,
+ 0xff, 0xfe, 0xf5, 0xff, 0xb7, 0xf6, 0xb4, 0xae,
+ 0xfe, 0xef, 0xf7, 0xff, 0xff, 0x8f, 0x07, 0x7b,
+ 0xfb, 0xff, 0x7f, 0xff, 0xf7,
+ 0xff, 0x7b, 0xa3, 0xbf, 0xe3, 0xff, 0xff, 0xf7,
+ 0xf7, 0xfd, 0xdf, 0xff, 0x8f, 0x7f, 0x9b, 0xdf,
+ 0xfb, 0xef, 0xfe, 0xff, 0x3f,
+ 0xff, 0x6f, 0xff, 0x7f, 0xb3, 0x7f, 0xdf, 0xbd,
+ 0x78, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xef, 0xff,
+ 0xdf, 0xee, 0x9d, 0xfd, 0xef,
+ 0xff, 0xf8, 0x05, 0x8e, 0xb0, 0x58, 0xf7, 0xfc,
+ 0xa4, 0x85, 0xdd, 0xbc, 0x0b, 0x05, 0x61, 0xf8,
+ 0xb7, 0xff, 0xeb, 0xef, 0x7f,
+ 0xbf, 0xff, 0xc7, 0xbb, 0xd8, 0x6f, 0x79, 0xde,
+ 0xff, 0xff, 0xcf, 0xff, 0xba, 0xaf, 0xd9, 0x7b,
+ 0xfd, 0xff, 0xf5, 0xdf, 0xbf,
+ 0xff, 0xff, 0xaf, 0x7f, 0x88, 0x7f, 0xf0, 0xea,
+ 0xfe, 0x7f, 0xf2, 0xff, 0xdf, 0xd7, 0x4f, 0x7f,
+ 0xe3, 0xde, 0xff, 0xff, 0xf7,
+ 0xff, 0x7d, 0x6f, 0x5f, 0xab, 0xff, 0x7a, 0xb6,
+ 0xbf, 0x78, 0xdd, 0x7f, 0xde, 0xef, 0x4b, 0x9b,
+ 0xeb, 0x7f, 0x76, 0x9f, 0xac,
+ 0xff, 0xcf, 0xff, 0xff, 0xb7, 0x7f, 0xae, 0xef,
+ 0xdb, 0xef, 0xff, 0xf7, 0xff, 0xfb, 0xe7, 0xfe,
+ 0xbf, 0x7e, 0xfb, 0xf7, 0xfb,
+ 0xff, 0xff, 0xff, 0xff, 0xcf, 0xbf, 0xff, 0xff,
+ 0xf3, 0xff, 0xff, 0xff, 0xff, 0xef, 0xd7, 0xff,
+ 0xe9, 0xef, 0xf2, 0xfe, 0xff,
+ 0xff, 0xff, 0xff, 0xef, 0xff, 0x8d, 0xaf, 0xf2,
+ 0x71, 0xff, 0xfe, 0xff, 0xff, 0x7f, 0xff, 0xcf,
+ 0x0f, 0x75, 0xf1, 0xff, 0xff,
+ 0x3f, 0x78, 0xbc, 0xfb, 0xfe, 0xff, 0xff, 0xbf,
+ 0xf3, 0x0f, 0x3f, 0xc9, 0xe9, 0x7f, 0xf7, 0xdf,
+ 0xff, 0xff, 0x57, 0x82, 0x2e,
+ 0xff, 0xf8, 0x7f, 0xfb, 0x7a, 0xfb, 0xff, 0xff,
+ 0xeb, 0x87, 0x9b, 0xf1, 0xe5, 0x7f, 0x75, 0x7f,
+ 0xfe, 0xff, 0xbe, 0x39, 0x79,
+ 0xff, 0xcd, 0xbf, 0xfd, 0x7e, 0xff, 0xfb, 0xf4,
+ 0xf7, 0xed, 0x6f, 0xf3, 0x6b, 0xf7, 0xd7, 0xbf,
+ 0xfe, 0xfd, 0xf7, 0x8f, 0xef,
+ 0xff, 0xf8, 0x7a, 0xff, 0xfa, 0xf0, 0xff, 0xff,
+ 0xe6, 0x8f, 0x9b, 0xf1, 0xad, 0xbf, 0xf7, 0xfd,
+ 0xbf, 0xfd, 0xef, 0x8f, 0x3f,
+ 0xbf, 0xff, 0xad, 0xfb, 0xf4, 0xbf, 0xf3, 0x90,
+ 0xdd, 0xf0, 0xfa, 0xcf, 0xe7, 0xf2, 0xf7, 0x7f,
+ 0xff, 0xad, 0xff, 0xf5, 0xdf,
+ 0xff, 0xcb, 0x7b, 0xfa, 0xd2, 0x7f, 0xc7, 0xf3,
+ 0xa9, 0xf7, 0xe7, 0x8b, 0xe7, 0xf1, 0xf7, 0x3f,
+ 0x8f, 0x7f, 0xb0, 0xdf, 0xfd,
+ 0x7f, 0xf8, 0xff, 0xfb, 0xf2, 0xff, 0xd2, 0xe3,
+ 0xdf, 0x87, 0xd3, 0xf0, 0xed, 0xff, 0xf7, 0x7f,
+ 0xff, 0xef, 0x77, 0xaa, 0x7f,
+ 0xbf, 0xea, 0xfc, 0xfb, 0xb3, 0xbf, 0xb3, 0xff,
+ 0xd8, 0x93, 0xab, 0xf1, 0xac, 0xff, 0xf7, 0x3f,
+ 0xaf, 0xef, 0xed, 0xc7, 0xad,
+ 0xff, 0xd6, 0xff, 0xfd, 0xff, 0xdf, 0xff, 0xf4,
+ 0x8f, 0xbf, 0xb1, 0xed, 0xf5, 0xfb, 0xff, 0xef,
+ 0xff, 0xf5, 0x8f, 0xdf, 0xf1,
+ 0xff, 0xf8, 0xfe, 0xfb, 0xff, 0xdf, 0x9f, 0xf8,
+ 0xf0, 0xef, 0xff, 0xd0, 0xfd, 0xf7, 0xff, 0xef,
+ 0xaf, 0xf5, 0xf7, 0xce, 0x7f,
+ 0x7f, 0x83, 0x7d, 0xfa, 0x8f, 0x5f, 0xd0, 0xcb,
+ 0xe9, 0xbb, 0x76, 0x9f, 0x7b, 0xf7, 0x8f, 0x6e,
+ 0xb1, 0xd5, 0xf7, 0x5f, 0xc6,
+ 0xff, 0xa3, 0x7f, 0xfc, 0xff, 0x7f, 0xff, 0xff,
+ 0xdf, 0x9f, 0x7f, 0xa8, 0x77, 0xf5, 0xff, 0xfe,
+ 0xff, 0xff, 0xfe, 0x7f, 0x2d,
+ 0xff, 0x96, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff,
+ 0x37, 0x6f, 0xfd, 0xaf, 0x77, 0xf8, 0xff, 0xff,
+ 0xef, 0xff, 0xff, 0xff, 0x4b,
+ 0xff, 0x72, 0xaf, 0xff, 0xe5, 0xdf, 0x99, 0xfc,
+ 0x10, 0x63, 0xf0, 0xef, 0xef, 0x7f, 0x8b, 0xef,
+ 0xaf, 0xe7, 0xf5, 0xf7, 0x7d,
+ 0xff, 0xef, 0x8f, 0xff, 0xa1, 0x4f, 0x81, 0xe7,
+ 0xb0, 0xfa, 0xfe, 0xd7, 0xcf, 0xff, 0xca, 0xcf,
+ 0x0b, 0x85, 0x71, 0xfa, 0xff,
+ 0xff, 0xdd, 0xef, 0xff, 0xa4, 0xdf, 0xb1, 0xdc,
+ 0xd3, 0xff, 0xf8, 0xff, 0xcf, 0x7f, 0xcb, 0x7f,
+ 0xff, 0xf5, 0xff, 0xbf, 0xfd,
+ 0xbf, 0x82, 0xc8, 0xf8, 0xe1, 0x7f, 0xf0, 0xdf,
+ 0xff, 0xef, 0x87, 0x87, 0xc0, 0xf0, 0xca, 0x2f,
+ 0xfb, 0xff, 0xef, 0xee, 0x97,
+ 0xff, 0xff, 0x8f, 0xfa, 0xa5, 0xdf, 0xd1, 0xf7,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0x77, 0xdb, 0xef,
+ 0xff, 0xf5, 0xfd, 0xff, 0xff,
+ 0xff, 0xf6, 0x8b, 0xf2, 0x94, 0xff, 0xf1, 0xf7,
+ 0xff, 0xff, 0xf7, 0xef, 0xd7, 0xf7, 0xdf, 0xee,
+ 0xfb, 0xff, 0xef, 0xff, 0xf7,
+ 0xff, 0xf3, 0xcb, 0xff, 0xe6, 0xff, 0xf1, 0xef,
+ 0xff, 0xef, 0xff, 0xe7, 0xd7, 0x7f, 0xdb, 0x7e,
+ 0xfd, 0xf7, 0xff, 0xef, 0xef,
+ 0xff, 0xfe, 0xcf, 0xff, 0xc4, 0xff, 0xf2, 0x9f,
+ 0xff, 0xe0, 0xf7, 0xff, 0xdf, 0xff, 0xdf, 0x7f,
+ 0xdb, 0xac, 0xef, 0xf1, 0xf7,
+ 0x7f, 0xef, 0x0f, 0x5f, 0xb4, 0x8f, 0xff, 0xf6,
+ 0xfd, 0xff, 0x6f, 0xff, 0x8f, 0xff, 0xe9, 0x8d,
+ 0x7f, 0xf1, 0xd1, 0xf7, 0xfe,
+ 0xff, 0xe7, 0x7f, 0x87, 0xfd, 0xe7, 0x8f, 0x9b,
+ 0x00, 0xff, 0xb0, 0x7d, 0xfd, 0xcf, 0xfb, 0xfd,
+ 0x8f, 0x7f, 0x81, 0x6d, 0xd1,
+ 0xff, 0xbc, 0xed, 0xff, 0x86, 0x6e, 0x10, 0xf1,
+ 0xf4, 0x5f, 0x7f, 0xfe, 0x9f, 0x37, 0xc3, 0x8f,
+ 0xf7, 0xe5, 0xfb, 0xff, 0xff,
+ 0x7f, 0xfe, 0xff, 0xfd, 0x97, 0xff, 0xfb, 0xff,
+ 0x3f, 0xff, 0xf9, 0xc3, 0x1f, 0xf8, 0xff, 0xb5,
+ 0x5f, 0xef, 0xdc, 0xff, 0xbe,
+ 0xff, 0xcb, 0xe7, 0xfd, 0x69, 0xe7, 0xfc, 0xb6,
+ 0xef, 0x9a, 0x77, 0xb6, 0x67, 0xdf, 0xef, 0xf7,
+ 0xfe, 0xdf, 0xff, 0xf5, 0x7f,
+ 0xff, 0xf7, 0x97, 0xbe, 0xf4, 0xff, 0xf1, 0xba,
+ 0xfe, 0xff, 0x97, 0x7f, 0xbf, 0x77, 0x55, 0xdf,
+ 0xd9, 0xf1, 0xff, 0xdf, 0xff,
+ 0xbf, 0xbf, 0x72, 0xf2, 0xdd, 0xff, 0xe4, 0xff,
+ 0x7f, 0xef, 0xff, 0xf7, 0xfe, 0xfb, 0xb9, 0xff,
+ 0xff, 0xf5, 0xff, 0xfb, 0x96,
+ 0xff, 0x7f, 0xf7, 0xef, 0x83, 0xf7, 0xf7, 0xff,
+ 0xdf, 0xff, 0xf7, 0xfd, 0xd5, 0x9f, 0x0f, 0x7f,
+ 0xf0, 0xfb, 0xae, 0xff, 0xec,
+ 0xff, 0x7b, 0x85, 0xf7, 0xf3, 0xef, 0xff, 0xf7,
+ 0xff, 0xed, 0xff, 0xe7, 0x8f, 0x7f, 0xc7, 0x97,
+ 0x3f, 0xfc, 0xff, 0xf7, 0xde,
+ 0xff, 0xfd, 0x8b, 0xff, 0xf7, 0x1f, 0xfb, 0xff,
+ 0x2f, 0xfb, 0xf7, 0xff, 0xbf, 0xff, 0xff, 0x6f,
+ 0xf7, 0xf9, 0xe7, 0xff, 0x33,
+ 0xff, 0x9e, 0xe7, 0x8b, 0xf0, 0x50, 0xf1, 0xde,
+ 0xff, 0x9f, 0x1b, 0x28, 0x1b, 0x8d, 0xb4, 0xe1,
+ 0xf5, 0xf3, 0xfe, 0xef, 0xfa,
+ 0xff, 0x7f, 0xf6, 0xff, 0xfe, 0x07, 0xec, 0xfb,
+ 0x7f, 0xff, 0xfd, 0xff, 0xd6, 0x8f, 0xff, 0xf9,
+ 0xff, 0x37, 0x7f, 0xfb, 0xdd,
+ 0xff, 0xff, 0xff, 0x63, 0xef, 0xdf, 0xfa, 0xf1,
+ 0xff, 0xfc, 0xfe, 0xdf, 0xfb, 0xff, 0x8f, 0x7f,
+ 0xf9, 0xeb, 0xef, 0xfd, 0xff,
+ 0x7f, 0x7f, 0xfb, 0xe7, 0x9f, 0x9b, 0xe5, 0xcf,
+ 0xfd, 0xf7, 0xcf, 0xff, 0xf3, 0xbf, 0x5f, 0x5d,
+ 0x67, 0x9f, 0xdf, 0x7f, 0xf9,
+ 0xff, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xf5, 0xdf,
+ 0x5f, 0xfb, 0xfb, 0xbf, 0xcf, 0xdf, 0xfb, 0x7f,
+ 0xb7, 0xff, 0xfb, 0xff, 0xf7,
+ 0x3f, 0x78, 0xfc, 0xf3, 0xff, 0xff, 0xdf, 0xbf,
+ 0xf3, 0x05, 0x3f, 0xc1, 0xf1, 0xff, 0xf7, 0xef,
+ 0xef, 0xff, 0xfb, 0x97, 0x1f,
+ 0xff, 0xd8, 0x7f, 0xfb, 0x7b, 0xfb, 0xf7, 0xbf,
+ 0xbb, 0x8e, 0xd3, 0xe1, 0xff, 0xfd, 0xf7, 0xed,
+ 0xfe, 0x8b, 0x5e, 0x0f, 0x69,
+ 0xbf, 0xf8, 0xfc, 0xfb, 0x7b, 0xff, 0xdf, 0xed,
+ 0xf7, 0x8f, 0xbf, 0xce, 0xfe, 0xff, 0xf3, 0xff,
+ 0xf6, 0xff, 0xfe, 0x8f, 0x0f,
+ 0xff, 0xfc, 0x7d, 0xff, 0xff, 0xfd, 0xf3, 0xff,
+ 0xbf, 0x8f, 0xe3, 0xf0, 0xfe, 0xff, 0xfb, 0xff,
+ 0xff, 0xff, 0xae, 0x0f, 0x5d,
+ 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xd1,
+ 0xfd, 0xf1, 0xd3, 0xdd, 0xfd, 0xf1, 0xfb, 0xff,
+ 0xfb, 0xfd, 0xff, 0xfd, 0xf6,
+ 0xff, 0xff, 0x7f, 0xfe, 0xfd, 0xff, 0x87, 0xff,
+ 0xcc, 0xf3, 0xdf, 0xcb, 0xff, 0xfb, 0xfb, 0xff,
+ 0x8b, 0x7f, 0xfa, 0xff, 0xff,
+ 0x7f, 0xf8, 0xfe, 0xff, 0xef, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xe8, 0xff, 0xff, 0xf9, 0xff,
+ 0xfb, 0xaf, 0x7f, 0x8f, 0x7e,
+ 0xbf, 0xfb, 0x78, 0xff, 0xff, 0xff, 0xd7, 0xd3,
+ 0xfd, 0xc3, 0x95, 0xc5, 0xf8, 0xff, 0xfb, 0xff,
+ 0xfb, 0xff, 0xfc, 0xf2, 0x8f,
+ 0xff, 0x8b, 0x7b, 0xff, 0xff, 0xdf, 0xff, 0xfd,
+ 0x8f, 0xef, 0xf4, 0xb7, 0xff, 0xfe, 0xff, 0xfe,
+ 0xff, 0xff, 0x8f, 0x6f, 0xf4,
+ 0xff, 0xfd, 0xff, 0xfe, 0xff, 0xdf, 0xdf, 0xfd,
+ 0xf1, 0xb3, 0xff, 0xd8, 0xff, 0xfd, 0xff, 0xff,
+ 0xff, 0xfd, 0xf5, 0x87, 0x7f,
+ 0x3f, 0xef, 0xff, 0xff, 0x8f, 0x5f, 0xf0, 0xff,
+ 0xf1, 0xef, 0x39, 0xc7, 0x7e, 0xf3, 0x8f, 0x7e,
+ 0xf1, 0xbd, 0xed, 0xfa, 0x9a,
+ 0xff, 0x98, 0x7f, 0xfa, 0xff, 0x7f, 0xff, 0xff,
+ 0xf3, 0x8f, 0x5f, 0x8a, 0xfb, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xf7, 0xaf, 0x5f,
+ 0xff, 0x86, 0xff, 0xfc, 0xff, 0xff, 0xdf, 0xff,
+ 0x7f, 0xbf, 0xcb, 0xbd, 0x77, 0xf2, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xbf, 0x77,
+ 0xff, 0xff, 0xef, 0xff, 0xed, 0xdf, 0xff, 0xdd,
+ 0x11, 0x73, 0xfc, 0xfc, 0xef, 0xff, 0xfb, 0xff,
+ 0xfd, 0xfd, 0x9d, 0xf3, 0xff,
+ 0xff, 0xf9, 0xef, 0xff, 0xf3, 0x0f, 0x83, 0x9e,
+ 0xf0, 0xf0, 0xff, 0xed, 0xef, 0xff, 0xe9, 0x8e,
+ 0x7b, 0x9d, 0x70, 0xe9, 0xf7,
+ 0xff, 0xff, 0xef, 0xff, 0xef, 0xff, 0xf3, 0xf9,
+ 0xf7, 0xff, 0xfb, 0xf3, 0xef, 0xfd, 0xeb, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xf8,
+ 0x3f, 0x87, 0xec, 0xf8, 0xe5, 0x7f, 0xfb, 0xff,
+ 0xff, 0xff, 0x8f, 0x87, 0xe8, 0xf0, 0xeb, 0xff,
+ 0xff, 0xfd, 0xff, 0xff, 0x97,
+ 0xff, 0xff, 0xef, 0xff, 0xed, 0xdf, 0xd3, 0xbf,
+ 0x7f, 0xfe, 0xff, 0xff, 0xef, 0xff, 0xe3, 0xef,
+ 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0xff, 0x77, 0xef, 0xfa, 0xe7, 0xff, 0xfb, 0xff,
+ 0xff, 0xff, 0xef, 0xef, 0xef, 0xf7, 0xea, 0xfe,
+ 0xf3, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xf7, 0xeb, 0xf3, 0xef, 0xff, 0xf3, 0xff,
+ 0xf1, 0x7f, 0xff, 0xe7, 0xe7, 0xf7, 0xea, 0xee,
+ 0xf7, 0xff, 0xf1, 0xff, 0xe7,
+ 0xff, 0xfb, 0x6f, 0xf6, 0xe5, 0xff, 0xeb, 0xdf,
+ 0xef, 0xff, 0xff, 0xf7, 0xef, 0xff, 0xe3, 0xef,
+ 0xff, 0xfe, 0xff, 0xfe, 0xf7,
+ 0x7f, 0xff, 0x4f, 0x5f, 0xe1, 0xc7, 0xef, 0xf1,
+ 0xfe, 0x7f, 0x7b, 0xff, 0x6f, 0xff, 0x93, 0x0b,
+ 0x7f, 0xf1, 0xfa, 0xdf, 0xff,
+ 0xff, 0xfb, 0x7f, 0xdf, 0xf7, 0xef, 0x8f, 0xff,
+ 0x00, 0xef, 0xf0, 0xdf, 0x7f, 0xef, 0xff, 0xfb,
+ 0x8f, 0x7f, 0x81, 0x6f, 0xd1,
+ 0xff, 0xde, 0xff, 0xef, 0xb9, 0x49, 0x74, 0xf3,
+ 0xef, 0x7b, 0x7f, 0xff, 0xeb, 0xf7, 0x85, 0x67,
+ 0xf1, 0xf0, 0xe1, 0xff, 0xf7,
+ 0x3f, 0xab, 0xff, 0xc4, 0xbb, 0xff, 0x8c, 0x9d,
+ 0x7e, 0x3a, 0xb5, 0xbb, 0xe3, 0xfb, 0xf3, 0xcd,
+ 0xe3, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xdc, 0xf7, 0xf8, 0x77, 0x8f, 0xf7, 0xfe,
+ 0x9f, 0x97, 0x7a, 0xf2, 0x7f, 0xfb, 0x8f, 0x1f,
+ 0x7d, 0xfd, 0xef, 0xb1, 0x7d,
+ 0xff, 0xef, 0xa6, 0xef, 0x98, 0x9d, 0xf0, 0xf4,
+ 0xf4, 0xff, 0xff, 0x7f, 0x8f, 0x7f, 0x89, 0x7f,
+ 0xe7, 0xff, 0xff, 0xf7, 0xfb,
+ 0xbf, 0xa7, 0xb7, 0xdf, 0xba, 0xfd, 0xfe, 0xeb,
+ 0xff, 0xff, 0xc4, 0xef, 0x8f, 0x7c, 0xf7, 0x8f,
+ 0x7f, 0xf9, 0xfb, 0xff, 0xfb,
+ 0xff, 0xff, 0xff, 0xeb, 0x87, 0xfd, 0xf4, 0xf7,
+ 0x6f, 0xff, 0xbf, 0xff, 0xff, 0xef, 0xef, 0xdf,
+ 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xf7, 0x85, 0xdb, 0xf2, 0xbf, 0xd7, 0xff,
+ 0xff, 0xfd, 0xff, 0xff, 0x8f, 0x7f, 0xf1, 0xaf,
+ 0x7d, 0xff, 0xf7, 0xeb, 0xff,
+ 0xbf, 0xfd, 0x8f, 0xff, 0xfa, 0x3f, 0xff, 0xf6,
+ 0xb7, 0xff, 0xfe, 0xfb, 0x8f, 0x7f, 0xff, 0xff,
+ 0xf3, 0xee, 0xbf, 0x7f, 0xff,
+ 0xff, 0x67, 0xc6, 0xaf, 0xc3, 0x74, 0xf7, 0xfe,
+ 0xee, 0x8a, 0x37, 0x6e, 0xec, 0x87, 0x71, 0x91,
+ 0x13, 0x7d, 0xec, 0x87, 0xff,
+ 0xbf, 0x7b, 0xf0, 0xef, 0xfb, 0x3f, 0xb7, 0xfc,
+ 0xff, 0xff, 0x97, 0x7d, 0xe8, 0xef, 0x9d, 0x77,
+ 0xfd, 0xfb, 0xff, 0xfb, 0xbf,
+ 0xff, 0xff, 0xde, 0x77, 0xcd, 0xff, 0xf1, 0xfb,
+ 0xff, 0xff, 0xf9, 0xe3, 0xff, 0xff, 0xef, 0xff,
+ 0xff, 0xfc, 0xcf, 0xff, 0xf3,
+ 0x7f, 0xff, 0xfe, 0x77, 0xaf, 0xf7, 0xf8, 0xef,
+ 0xff, 0x76, 0xfa, 0xff, 0x99, 0x6d, 0x9f, 0x6f,
+ 0xf1, 0xbf, 0x7f, 0x7f, 0xfc,
+ 0xff, 0xff, 0xef, 0xbf, 0xeb, 0xfa, 0xdd, 0xef,
+ 0xbc, 0xfd, 0xfd, 0xdf, 0xff, 0xf7, 0xff, 0xff,
+ 0xd1, 0xfe, 0xff, 0xfb, 0xff,
+ 0x3f, 0x70, 0xf8, 0xff, 0xf5, 0xff, 0xff, 0x9f,
+ 0xf3, 0x09, 0x1f, 0xe1, 0xf3, 0xfd, 0xfd, 0xff,
+ 0xef, 0xff, 0xf7, 0x8e, 0x1e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x77, 0xff, 0xff, 0x9b,
+ 0x8f, 0x8e, 0xfb, 0xf1, 0xef, 0xe5, 0xfd, 0xef,
+ 0xfe, 0x9f, 0x16, 0x03, 0x61,
+ 0xbf, 0xf8, 0xfa, 0xfd, 0x73, 0xff, 0xff, 0xf7,
+ 0xf7, 0x8d, 0x9f, 0xe1, 0xf1, 0xff, 0xef, 0xff,
+ 0xfc, 0xff, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xf7, 0xf7, 0xfd, 0xff,
+ 0x9f, 0x8f, 0xe1, 0xf1, 0xef, 0xff, 0xff, 0xff,
+ 0xfd, 0xff, 0x8e, 0x0f, 0x7d,
+ 0xff, 0xf7, 0xf9, 0xfe, 0xf3, 0x7f, 0xff, 0xf7,
+ 0xf7, 0xf3, 0xfd, 0xef, 0xff, 0xf9, 0xed, 0xff,
+ 0xff, 0xef, 0xff, 0xf7, 0xff,
+ 0xff, 0xf7, 0x7e, 0xfe, 0xf7, 0xff, 0x8b, 0xf7,
+ 0xfc, 0xeb, 0xeb, 0xed, 0xeb, 0xf9, 0xfd, 0xff,
+ 0x8f, 0x7f, 0xf2, 0xfe, 0xed,
+ 0x7f, 0xf8, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7,
+ 0xf7, 0x8d, 0xff, 0xe8, 0xff, 0xfd, 0xef, 0xfe,
+ 0xfd, 0xdf, 0xf6, 0x8f, 0x6f,
+ 0xbf, 0xff, 0x78, 0xff, 0xf7, 0xff, 0xfb, 0xff,
+ 0xff, 0xe3, 0x9f, 0xe5, 0xea, 0xf5, 0xfd, 0xff,
+ 0xed, 0xef, 0xff, 0xf7, 0x8f,
+ 0xff, 0x07, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xf7,
+ 0x8f, 0xff, 0xf3, 0x93, 0xff, 0xff, 0xff, 0xef,
+ 0xff, 0xf7, 0x8f, 0x7f, 0xf3,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf7, 0x8b, 0xff, 0xe8, 0xfb, 0xff, 0xff, 0xef,
+ 0xef, 0xf7, 0xf5, 0x8e, 0x7f,
+ 0x3f, 0xec, 0xf9, 0xfc, 0x8f, 0x7f, 0xf0, 0xef,
+ 0xef, 0xff, 0x1d, 0xed, 0x7e, 0xfd, 0x8f, 0x6e,
+ 0xf1, 0xd7, 0xf7, 0xde, 0x8c,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xfb, 0x8f, 0x6f, 0x90, 0xff, 0xf3, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x87, 0xfb, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x9f, 0xff, 0x93, 0x7f, 0xf2, 0xff, 0xfe,
+ 0xef, 0xff, 0xff, 0x9f, 0x69,
+ 0xff, 0xfb, 0xef, 0xff, 0xf6, 0xff, 0xff, 0xff,
+ 0x1f, 0x73, 0xfe, 0xf6, 0xff, 0xff, 0xff, 0xef,
+ 0xef, 0xe7, 0x97, 0x77, 0xf7,
+ 0xff, 0xff, 0xff, 0xff, 0xe7, 0x1f, 0x86, 0x95,
+ 0xf0, 0xf6, 0xf7, 0xff, 0xff, 0xff, 0xfe, 0x8f,
+ 0x6d, 0x93, 0x71, 0xf8, 0xfd,
+ 0xff, 0xfe, 0xef, 0xfd, 0xf2, 0xff, 0xf6, 0xff,
+ 0x6f, 0xef, 0xf7, 0xfd, 0xff, 0xff, 0xfd, 0xff,
+ 0xfd, 0xff, 0xef, 0xff, 0xf5,
+ 0x3f, 0x82, 0xf8, 0xf8, 0xe6, 0x7f, 0xf2, 0xff,
+ 0xff, 0xff, 0x87, 0x87, 0xf0, 0xf0, 0xfc, 0xef,
+ 0xfd, 0xf7, 0xef, 0xee, 0x87,
+ 0xff, 0xff, 0xef, 0xff, 0xe7, 0xff, 0xf6, 0xf7,
+ 0x7f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef,
+ 0xff, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xf7, 0xff, 0xf2, 0xe6, 0xff, 0xf5, 0xf7,
+ 0xff, 0xff, 0xff, 0xe7, 0xff, 0xf7, 0xff, 0xfe,
+ 0xff, 0xf7, 0xef, 0xff, 0xf7,
+ 0xff, 0xfa, 0xeb, 0xff, 0xe3, 0xff, 0xf5, 0xff,
+ 0xff, 0xff, 0xf7, 0xef, 0xf7, 0xff, 0xfd, 0xee,
+ 0xfd, 0xff, 0xff, 0xef, 0xef,
+ 0xff, 0xf6, 0xfb, 0x7a, 0xe7, 0xff, 0x91, 0xef,
+ 0xff, 0xe2, 0xff, 0xf7, 0xf7, 0xf7, 0xfd, 0xff,
+ 0xfd, 0xef, 0xeb, 0xf5, 0xe7,
+ 0xff, 0xff, 0x8f, 0xbe, 0xf1, 0x93, 0xfd, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0x2e, 0x2f, 0x59, 0x8f,
+ 0x6f, 0xf9, 0xf7, 0xff, 0xfa,
+ 0xff, 0x4f, 0xbf, 0xc4, 0xfb, 0xf5, 0x0f, 0xff,
+ 0x00, 0xff, 0xd0, 0x7f, 0x70, 0xaf, 0x7f, 0xff,
+ 0x8f, 0x7f, 0x81, 0x7f, 0xb1,
+ 0xff, 0xff, 0xda, 0xff, 0x2f, 0x4f, 0x7e, 0xf9,
+ 0xfb, 0xff, 0x5f, 0xef, 0xff, 0xff, 0x99, 0x29,
+ 0x71, 0xf1, 0xed, 0xff, 0xff,
+ 0x3f, 0xb7, 0xef, 0xdf, 0xff, 0xf9, 0xfe, 0xfd,
+ 0xff, 0xff, 0xb7, 0x9f, 0xff, 0xab, 0x73, 0xfd,
+ 0xad, 0x3c, 0x6b, 0xff, 0xfa,
+ 0xff, 0xe8, 0xf7, 0xbf, 0x6f, 0x8f, 0xff, 0xfe,
+ 0xff, 0x87, 0x7f, 0xe0, 0x7f, 0xbf, 0x5f, 0x93,
+ 0x7e, 0xe4, 0xf6, 0x97, 0x7b,
+ 0xff, 0xdf, 0x27, 0xaf, 0xa7, 0xff, 0xf4, 0xf6,
+ 0xff, 0xff, 0xff, 0x5f, 0xdf, 0xfb, 0x87, 0x1f,
+ 0x70, 0xf3, 0xfe, 0x7f, 0xfb,
+ 0xbf, 0xb7, 0x61, 0xb5, 0xfc, 0xff, 0xf7, 0xff,
+ 0xbf, 0xff, 0xa2, 0xff, 0xd8, 0xa1, 0x77, 0xdf,
+ 0xe6, 0xff, 0xff, 0x7e, 0xc4,
+ 0xff, 0xff, 0xf6, 0xd7, 0x97, 0xdb, 0xe8, 0xff,
+ 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xb9, 0x3b,
+ 0xf8, 0xff, 0xef, 0xe7, 0xbe,
+ 0xff, 0xff, 0x86, 0xbf, 0xe2, 0xad, 0xff, 0xff,
+ 0xff, 0xff, 0x9f, 0xff, 0x8f, 0x3f, 0x63, 0xcf,
+ 0x7b, 0xfe, 0xff, 0xfd, 0xfe,
+ 0xff, 0xff, 0xdf, 0xff, 0xba, 0x7f, 0xf7, 0xee,
+ 0x17, 0xf7, 0xee, 0xef, 0x97, 0x7f, 0xf7, 0xff,
+ 0xff, 0xfd, 0x9e, 0x77, 0xf3,
+ 0xff, 0xfb, 0xc3, 0x8f, 0xc1, 0x70, 0x71, 0xff,
+ 0xf7, 0x9f, 0x77, 0x7e, 0xb6, 0x4f, 0xb9, 0x01,
+ 0x1f, 0x1b, 0x7a, 0x9a, 0x7e,
+ 0xbf, 0xff, 0xf0, 0x9f, 0xef, 0x79, 0x3f, 0xf6,
+ 0xff, 0xfd, 0x9d, 0x7b, 0xf2, 0xff, 0xc9, 0xf3,
+ 0xff, 0x7d, 0xfb, 0xfd, 0xbf,
+ 0xff, 0xfd, 0xbf, 0x77, 0x8f, 0xff, 0xf1, 0xf7,
+ 0xff, 0xff, 0xff, 0xfd, 0xbb, 0x7f, 0xbf, 0x6f,
+ 0xf3, 0xfe, 0xff, 0xe7, 0xbf,
+ 0x7f, 0xff, 0xff, 0x5f, 0xaf, 0xf1, 0xfc, 0xf7,
+ 0xff, 0x77, 0xfe, 0xff, 0xdf, 0xff, 0xdf, 0xff,
+ 0xe3, 0x9e, 0x7f, 0x7a, 0xe3,
+ 0xff, 0xff, 0x6f, 0xff, 0xaf, 0xfc, 0xff, 0xff,
+ 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xf3, 0xfb,
+ 0xf7, 0xff, 0xf9, 0xfe, 0xff,
+ 0x3f, 0x70, 0xf8, 0xff, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0x0f, 0x0f, 0xf1, 0xf1, 0xff, 0xf7, 0xff,
+ 0xef, 0xff, 0xf7, 0x8c, 0x1e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x7f, 0xf7, 0xff, 0x8f,
+ 0x8f, 0x88, 0xf1, 0xf1, 0xef, 0xff, 0xf7, 0xff,
+ 0xee, 0x97, 0x1e, 0x01, 0x61,
+ 0xbf, 0xf0, 0xfa, 0xfd, 0x75, 0xff, 0xf5, 0xff,
+ 0xff, 0x8f, 0x9f, 0xe1, 0xf1, 0xff, 0xf7, 0xef,
+ 0xfe, 0xff, 0xff, 0x8f, 0x1f,
+ 0xff, 0xfa, 0x7f, 0xff, 0xfd, 0xff, 0xfd, 0xff,
+ 0x9f, 0x9f, 0xf9, 0xf9, 0xff, 0xef, 0xf7, 0xff,
+ 0xff, 0xff, 0x9e, 0x0f, 0x75,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7,
+ 0xff, 0xf7, 0xf7, 0xff, 0xef, 0xf7, 0xe7, 0xef,
+ 0xef, 0xef, 0xff, 0xff, 0xef,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff,
+ 0xf8, 0xf7, 0xff, 0xf7, 0xff, 0xf7, 0xe7, 0xef,
+ 0x9f, 0x6f, 0xf0, 0xff, 0xff,
+ 0x7f, 0xf8, 0xff, 0xff, 0xfd, 0xff, 0xfd, 0x8f,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xf7, 0xef,
+ 0xf7, 0xff, 0xff, 0x9d, 0x7e,
+ 0xbf, 0xff, 0x78, 0xff, 0xfd, 0xff, 0xfd, 0xf7,
+ 0xff, 0xf7, 0x8f, 0xf7, 0xf0, 0xf7, 0xf7, 0xff,
+ 0xf7, 0xef, 0xfe, 0xe7, 0x9f,
+ 0xff, 0x8f, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf8, 0x8f, 0xff, 0xf8, 0xff, 0xef,
+ 0xff, 0xff, 0x8e, 0x6f, 0xe1,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf7, 0x87, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xef, 0xef, 0xff, 0x9f, 0x7f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0x9f,
+ 0xf7, 0xfb, 0x07, 0xe7, 0x78, 0xf7, 0x8f, 0x7e,
+ 0xf1, 0x9f, 0x7f, 0xff, 0x9e,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xf7, 0x8f, 0x6f, 0x80, 0xff, 0xf1, 0xff, 0xff,
+ 0xef, 0xff, 0xfe, 0x9f, 0x7f,
+ 0xff, 0x88, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x9f, 0xef, 0x81, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xff, 0xff, 0xef, 0x9f, 0x7f,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x97, 0x77, 0xf8, 0xff, 0xef, 0xff, 0xf7, 0xff,
+ 0xef, 0xef, 0x8f, 0x76, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0xf7, 0x0f, 0xf7, 0x88,
+ 0xf7, 0xf0, 0xff, 0xff, 0xef, 0xff, 0xef, 0x8e,
+ 0x07, 0x99, 0x61, 0xe1, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xf7,
+ 0xff, 0xff, 0xf7, 0xf7, 0xef, 0xff, 0xe7, 0xee,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0x7f, 0xf7, 0xff,
+ 0xff, 0xff, 0x8f, 0x8f, 0xe0, 0xf0, 0xef, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xe7, 0xff,
+ 0xf6, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xef, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xe7, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xf7, 0xff, 0xff, 0xef, 0xff, 0xef, 0xff,
+ 0x97, 0xee, 0xf9, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x80, 0x88, 0xff, 0xf8,
+ 0xff, 0xff, 0xf7, 0xff, 0x0f, 0x1f, 0x79, 0x9b,
+ 0x7f, 0xf0, 0xfe, 0xff, 0xff,
+ 0xff, 0x4f, 0x7b, 0xf7, 0xf7, 0xf8, 0x0f, 0xff,
+ 0x00, 0xff, 0xd0, 0x4f, 0x75, 0x8c, 0x79, 0xff,
+ 0x8f, 0x7f, 0x81, 0x7e, 0xb1,
+ 0xff, 0xf7, 0xff, 0xfe, 0x8f, 0x7f, 0x70, 0xf0,
+ 0xff, 0xf7, 0x7f, 0xff, 0xf7, 0xff, 0x84, 0x0e,
+ 0x73, 0xff, 0xf7, 0xff, 0xff,
+ 0x3f, 0xbd, 0xfd, 0xfb, 0xf7, 0xe8, 0xff, 0xff,
+ 0x78, 0xf0, 0x3f, 0xbf, 0xe3, 0x9b, 0x6f, 0xff,
+ 0x97, 0x1f, 0x7f, 0xcf, 0xfe,
+ 0xff, 0xf8, 0xf7, 0xff, 0x8f, 0x80, 0xff, 0xf8,
+ 0xff, 0x8f, 0x78, 0xf0, 0x7f, 0x9f, 0x7f, 0x9b,
+ 0x7f, 0xf1, 0xff, 0x97, 0x7f,
+ 0xff, 0xff, 0x07, 0xff, 0x87, 0x7f, 0xf0, 0xf8,
+ 0xff, 0x7f, 0xfb, 0x7f, 0xee, 0xfb, 0x99, 0x19,
+ 0x73, 0xef, 0xf7, 0xef, 0xff,
+ 0xbf, 0x87, 0x04, 0xfc, 0xff, 0x08, 0xf7, 0xff,
+ 0x7b, 0x7f, 0x8e, 0x8f, 0xf9, 0x98, 0x6f, 0xf3,
+ 0xff, 0xef, 0xff, 0xff, 0xdf,
+ 0xff, 0xff, 0x73, 0xff, 0xf7, 0x9f, 0xf8, 0xfb,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x3d,
+ 0x61, 0xff, 0xef, 0xff, 0xff,
+ 0xff, 0x7f, 0x07, 0xff, 0xf8, 0x78, 0xff, 0xee,
+ 0xfb, 0xff, 0xff, 0xff, 0x87, 0x1f, 0x71, 0xe3,
+ 0xff, 0xfb, 0xff, 0xff, 0xff,
+ 0xff, 0x77, 0x8b, 0x7f, 0xf8, 0x7f, 0xff, 0xff,
+ 0x07, 0xe7, 0xfa, 0x77, 0x8f, 0x7f, 0xff, 0xef,
+ 0xf1, 0xef, 0x9f, 0x77, 0xf9,
+ 0xff, 0xf8, 0x73, 0x8f, 0xf8, 0x0f, 0x88, 0x88,
+ 0xf8, 0x98, 0x77, 0x78, 0x8f, 0x6f, 0x87, 0x7b,
+ 0xf7, 0xff, 0xef, 0x87, 0x6f,
+ 0xbf, 0x7f, 0xf0, 0xff, 0x8f, 0x7f, 0xff, 0xff,
+ 0x7e, 0xff, 0x9f, 0x7f, 0xf0, 0xff, 0xff, 0xeb,
+ 0xef, 0xff, 0xfb, 0xff, 0x9f,
+ 0xff, 0xff, 0xff, 0x77, 0xf8, 0x7f, 0xf8, 0xf7,
+ 0xff, 0x7f, 0xf7, 0xff, 0x9f, 0x7f, 0x9b, 0x6f,
+ 0xf1, 0xfe, 0xff, 0xfe, 0xff,
+ 0x7f, 0x7f, 0x8f, 0xff, 0x8f, 0xff, 0x7f, 0x8f,
+ 0xff, 0x70, 0xfb, 0x6f, 0xff, 0xff, 0xff, 0xf5,
+ 0xf9, 0xff, 0xff, 0xff, 0xf4,
+ 0xff, 0x87, 0xff, 0x74, 0xff, 0x7f, 0xff, 0xff,
+ 0x7e, 0xff, 0xff, 0x8f, 0xff, 0xf1, 0xff, 0xff,
+ 0xe9, 0xff, 0xf7, 0xff, 0xff,
+ 0xbf, 0x78, 0xf8, 0x7f, 0xf7, 0xff, 0xff, 0xff,
+ 0xf7, 0x07, 0x1f, 0xe1, 0xf1, 0xff, 0xf7, 0xff,
+ 0xef, 0xef, 0xff, 0x8e, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x87,
+ 0x9f, 0x88, 0xf1, 0xe1, 0xff, 0xef, 0xf7, 0xef,
+ 0xfe, 0x9f, 0x0f, 0x09, 0x71,
+ 0xbf, 0xf0, 0xf8, 0xff, 0x77, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x8f, 0xf0, 0xf0, 0xff, 0xf7, 0xff,
+ 0xfe, 0xf7, 0xff, 0x8e, 0x1f,
+ 0x7f, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x8f, 0xf9, 0xf8, 0xfe, 0xff, 0xe7, 0xf7,
+ 0xff, 0xff, 0x96, 0x0f, 0x61,
+ 0x7f, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf7, 0xef, 0xff, 0xf7, 0xe7, 0xef,
+ 0xff, 0xe7, 0xff, 0xf7, 0xfe,
+ 0xff, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff,
+ 0xf8, 0xef, 0xef, 0xef, 0xff, 0xf7, 0xf7, 0xff,
+ 0x9f, 0x67, 0xf0, 0xff, 0xff,
+ 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0x8f, 0xff, 0xe0, 0xf7, 0xff, 0xf7, 0xfe,
+ 0xf7, 0xf7, 0xff, 0x8f, 0x6e,
+ 0x3f, 0xfb, 0x7c, 0xff, 0xff, 0xff, 0xf7, 0xff,
+ 0xff, 0xe7, 0x9f, 0xef, 0xf0, 0xff, 0xe7, 0xef,
+ 0xf7, 0xef, 0xf6, 0xf6, 0x87,
+ 0xff, 0x07, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf4, 0x9f, 0xff, 0xfc, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x7f, 0xf0,
+ 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf7, 0x87, 0xff, 0xe8, 0xff, 0xf7, 0xff, 0xff,
+ 0xef, 0xe7, 0xf7, 0x8f, 0x6f,
+ 0x3f, 0xff, 0xfc, 0xff, 0x8f, 0x7f, 0xf0, 0xcf,
+ 0xef, 0xe8, 0x1b, 0xef, 0x7c, 0xff, 0x8f, 0x7e,
+ 0xe1, 0x97, 0x77, 0xff, 0x9e,
+ 0xff, 0x80, 0x7f, 0xfc, 0xff, 0x7f, 0xff, 0xff,
+ 0xf7, 0x8f, 0x7f, 0x80, 0xff, 0xf1, 0xff, 0xfe,
+ 0xef, 0xff, 0xff, 0x9f, 0x7f,
+ 0xff, 0x84, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x6f, 0x9f, 0xff, 0x91, 0x7f, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0xfb, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff,
+ 0x1f, 0x77, 0xf8, 0xf7, 0xef, 0xff, 0xf7, 0xff,
+ 0xf7, 0xef, 0x87, 0x67, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x8b, 0x8c,
+ 0xf0, 0xf8, 0xf7, 0xff, 0xef, 0xff, 0xe7, 0x9e,
+ 0x67, 0x89, 0x77, 0xf1, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff,
+ 0xff, 0xef, 0xfb, 0xff, 0xef, 0xff, 0xe7, 0xff,
+ 0xf7, 0xf7, 0xff, 0xff, 0xf7,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xf7, 0x7f, 0xfb, 0xff,
+ 0xff, 0xff, 0x8f, 0x8f, 0xe0, 0xf0, 0xe7, 0xfe,
+ 0xf7, 0xff, 0xff, 0xff, 0x8e,
+ 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xfb, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xfb, 0xff, 0xfb, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0xf7, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x7f, 0xf7, 0xff, 0x8b, 0xff,
+ 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xee, 0xff, 0xf6, 0xff,
+ 0xff, 0xf7, 0x8f, 0xbf, 0xf9, 0x8f, 0xff, 0xf0,
+ 0xff, 0xff, 0x7f, 0xff, 0x1f, 0x1f, 0x71, 0x89,
+ 0x7f, 0xf1, 0xff, 0xff, 0xff,
+ 0xff, 0x4f, 0xb8, 0xc6, 0xfb, 0xfd, 0x0f, 0xff,
+ 0x00, 0xff, 0xd0, 0x7f, 0x79, 0x90, 0x7f, 0xf9,
+ 0x8f, 0x7f, 0x81, 0x7f, 0x81,
+ 0xff, 0xff, 0xcf, 0xff, 0xb0, 0x4f, 0x77, 0xf4,
+ 0xff, 0xff, 0x7f, 0xe7, 0xee, 0xff, 0x97, 0x07,
+ 0x69, 0xf1, 0xf7, 0xff, 0xff,
+ 0x3f, 0xba, 0xff, 0x4d, 0xfe, 0xe5, 0xff, 0xff,
+ 0x7f, 0xef, 0xbf, 0x9f, 0xe7, 0x9f, 0x77, 0xe9,
+ 0x9f, 0x1f, 0x79, 0xc1, 0xfe,
+ 0xff, 0xf8, 0xf7, 0x3f, 0xff, 0x9f, 0xf7, 0xf8,
+ 0xff, 0x87, 0x7f, 0xf0, 0x7f, 0x97, 0x7f, 0x89,
+ 0x7e, 0xf1, 0xff, 0x9f, 0x7f,
+ 0xff, 0xff, 0x37, 0xbf, 0xb3, 0x7f, 0xf2, 0xff,
+ 0xff, 0xf7, 0xff, 0x7f, 0x7b, 0xfe, 0x87, 0x1f,
+ 0x71, 0xf1, 0xff, 0x7f, 0xfb,
+ 0xff, 0xff, 0x70, 0xb7, 0xfe, 0x7b, 0xff, 0xf3,
+ 0xbf, 0xf7, 0xff, 0xff, 0xf9, 0x9f, 0x7f, 0xf1,
+ 0xff, 0xf7, 0xff, 0xff, 0xfb,
+ 0xbf, 0xff, 0xf4, 0xcf, 0x87, 0xd8, 0xf8, 0xf8,
+ 0xff, 0xff, 0x8f, 0xff, 0xe9, 0xff, 0x8f, 0x1f,
+ 0x71, 0xff, 0xef, 0xff, 0x8d,
+ 0xff, 0xff, 0x87, 0xbf, 0xf9, 0x3f, 0xff, 0xf7,
+ 0xff, 0xff, 0xff, 0xff, 0x9f, 0x1f, 0x71, 0xf9,
+ 0xff, 0x7b, 0xff, 0xfe, 0xff,
+ 0xff, 0xff, 0xcb, 0xff, 0xbd, 0x7f, 0xfb, 0xff,
+ 0x8f, 0xff, 0xf8, 0x7f, 0x9f, 0x7f, 0xf1, 0xef,
+ 0xff, 0xf7, 0x8f, 0x7f, 0xf9,
+ 0xff, 0xf8, 0x43, 0x8f, 0xc4, 0x75, 0x7d, 0xff,
+ 0xff, 0x97, 0x7f, 0x78, 0x8f, 0x6f, 0x99, 0x17,
+ 0x19, 0x71, 0xf9, 0x8f, 0x6f,
+ 0xbf, 0x7f, 0xf0, 0x8f, 0xf6, 0x7d, 0x37, 0xff,
+ 0xff, 0xff, 0x9f, 0x7f, 0xe0, 0xff, 0xff, 0xef,
+ 0xff, 0xf7, 0xfb, 0xff, 0x8f,
+ 0xff, 0xff, 0xbf, 0x77, 0x8e, 0xff, 0xf0, 0xff,
+ 0xff, 0xf7, 0xf7, 0x7f, 0x97, 0x7f, 0x99, 0x7f,
+ 0xf9, 0xfe, 0xff, 0xfe, 0xff,
+ 0x7f, 0xff, 0xff, 0xcf, 0xbf, 0xf9, 0xfa, 0xff,
+ 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf7, 0x8f, 0x7f, 0x71, 0xf6,
+ 0xff, 0xff, 0xff, 0x7f, 0xb7, 0xfe, 0xfb, 0xff,
+ 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7,
+ 0xff, 0xff, 0xf7, 0xff, 0xff,
+ 0x3f, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0x08, 0x0f, 0xf1, 0xf1, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8e, 0x0e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0x8f,
+ 0x8f, 0x80, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0x8f, 0x0e, 0x01, 0x71,
+ 0xbf, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff,
+ 0xfe, 0xff, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xf0, 0xff, 0xff,
+ 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0x88, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7e,
+ 0xbf, 0xff, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xf7, 0x8f, 0xf7, 0xf0, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0xff, 0x8f,
+ 0xff, 0x87, 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf8, 0x8f, 0xf7, 0xf8, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x7f, 0xf1,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x87, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0xdf,
+ 0xff, 0xf6, 0x07, 0xff, 0x78, 0xff, 0x8f, 0x7e,
+ 0xf1, 0x9f, 0x7f, 0xfd, 0x8e,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xf7, 0x8f, 0x7f, 0x80, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x80, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x8f, 0xff, 0x81, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x77, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x6e, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x8f, 0x88,
+ 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e,
+ 0x7f, 0x81, 0x7f, 0xf1, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x8f, 0xf0, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xf7, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0x87, 0xff,
+ 0xf8, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0xfe, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x3f, 0x8f, 0xf0, 0x85, 0xff, 0xf0,
+ 0xff, 0xff, 0xff, 0x7f, 0x0d, 0x0f, 0x71, 0x81,
+ 0x7e, 0xf1, 0xfe, 0xff, 0xff,
+ 0xff, 0x5f, 0x3d, 0xf0, 0xf5, 0xfa, 0x0f, 0xff,
+ 0x00, 0xff, 0x80, 0x0f, 0xf1, 0x88, 0x7f, 0xf1,
+ 0x8f, 0x7e, 0x81, 0x7e, 0xc1,
+ 0xff, 0xff, 0xff, 0xff, 0xba, 0x4f, 0x75, 0xfa,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x8f, 0x0f,
+ 0x71, 0xf1, 0xff, 0xff, 0xff,
+ 0x3f, 0xbf, 0xff, 0xcf, 0xff, 0xfa, 0xff, 0xfe,
+ 0x7f, 0xdf, 0x7f, 0xf4, 0xff, 0x8f, 0x7f, 0xf1,
+ 0x8f, 0x0f, 0x71, 0xf1, 0xbe,
+ 0xff, 0xf8, 0xf7, 0xbb, 0x7f, 0x85, 0xff, 0xf0,
+ 0xff, 0x8f, 0x7f, 0xf0, 0x7f, 0x87, 0x7f, 0x81,
+ 0x7e, 0xf1, 0x8f, 0x0f, 0x71,
+ 0xff, 0xff, 0x87, 0x8f, 0x8d, 0xfd, 0xf5, 0xff,
+ 0xfb, 0xff, 0xff, 0xff, 0xf7, 0xfe, 0x8f, 0x0f,
+ 0x71, 0xf1, 0xfe, 0x7f, 0xf7,
+ 0xbf, 0x07, 0xc0, 0xbf, 0xf7, 0xfd, 0xff, 0xff,
+ 0xbf, 0xff, 0x85, 0x8f, 0xf9, 0x8f, 0x7f, 0xf1,
+ 0xff, 0x7f, 0xf6, 0xff, 0x83,
+ 0xff, 0xff, 0xf4, 0xff, 0x8f, 0xda, 0xf0, 0xb6,
+ 0xdf, 0xfd, 0xf6, 0xff, 0xf9, 0xff, 0x8f, 0x1f,
+ 0x71, 0xfd, 0x8f, 0x7b, 0xfd,
+ 0xff, 0xff, 0xb7, 0x8f, 0xf0, 0xbd, 0xff, 0xfd,
+ 0xf7, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x71, 0xf1,
+ 0xff, 0x7b, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xba, 0x7f, 0xf5, 0xf7,
+ 0x0f, 0xf7, 0xf0, 0x7f, 0x87, 0x7f, 0xf1, 0xff,
+ 0xff, 0xfe, 0x8f, 0x7f, 0xf1,
+ 0xff, 0xf8, 0x47, 0x8f, 0xca, 0x70, 0x7a, 0xff,
+ 0xff, 0x8f, 0x7f, 0x70, 0x8f, 0x7f, 0x81, 0x0e,
+ 0x01, 0x01, 0x71, 0x81, 0x7f,
+ 0xbf, 0x7f, 0xf0, 0x8f, 0xff, 0x70, 0x3f, 0xff,
+ 0xfd, 0xfe, 0x8f, 0x7f, 0xf0, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0xfb, 0xff, 0x8f,
+ 0xff, 0xff, 0xbf, 0x7f, 0x85, 0x7f, 0xf0, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0x81, 0x7f,
+ 0x81, 0xfe, 0xf1, 0xff, 0xff,
+ 0x7f, 0xff, 0xff, 0xcf, 0x87, 0xfa, 0x75, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x7f, 0x70, 0xfe,
+ 0xff, 0x87, 0xff, 0x4b, 0xbf, 0x7f, 0xfd, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xfe, 0xff, 0xfe, 0xff,
+ 0x3f, 0x78, 0xf8, 0xf7, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0x0f, 0x71, 0xf1, 0xff, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0x8e, 0x0e,
+ 0xff, 0xf8, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0x8f,
+ 0x8f, 0x00, 0x71, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xfe, 0x8f, 0x0e, 0x01, 0x71,
+ 0xbf, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0x7f, 0xff,
+ 0xff, 0x8f, 0x0f, 0x71, 0xf1, 0xff, 0xff, 0xff,
+ 0xfe, 0xff, 0xff, 0x8f, 0x0f,
+ 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x0f, 0x71, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0x8f, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xf0, 0xff, 0xff,
+ 0x7f, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7e,
+ 0xbf, 0xff, 0x78, 0xff, 0xff, 0xff, 0x7f, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0xff, 0x8f,
+ 0xff, 0x07, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0xff, 0xf0, 0x8f, 0xff, 0xf0, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x7f, 0xf1,
+ 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0x3f, 0xff, 0xf8, 0xff, 0x8f, 0x7f, 0xf0, 0x8f,
+ 0xff, 0xfc, 0x8f, 0xff, 0xf0, 0xff, 0x8f, 0x7e,
+ 0xf1, 0x8f, 0x7f, 0xf3, 0x8e,
+ 0xff, 0x80, 0x7f, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0x8f, 0x7f, 0x80, 0x7f, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x8f, 0x7f,
+ 0xff, 0x80, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
+ 0x7f, 0x8f, 0x7f, 0x81, 0x7f, 0xf0, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8f, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0x7f, 0xf1,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0x80,
+ 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x8e,
+ 0x0f, 0x01, 0x71, 0xf0, 0xff,
+ 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xef, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0xff, 0xff, 0xf7,
+ 0xbf, 0x87, 0xf8, 0xf8, 0xff, 0x7f, 0xff, 0xff,
+ 0x7f, 0x7f, 0x8f, 0x8f, 0xf0, 0xf0, 0xfe, 0xff,
+ 0xff, 0xff, 0xff, 0xfe, 0x8f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7e,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7e,
+ 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f,
+ 0x8f, 0xfe, 0xf0, 0xff, 0xff,
+ 0xbf, 0xff, 0x0e, 0x8f, 0x70, 0x80, 0xff, 0xf0,
+ 0xff, 0xff, 0xff, 0xff, 0x0f, 0x7f, 0xf1, 0x0f,
+ 0x7f, 0xf1, 0xfe, 0xff, 0x9f,
+ 0xbf, 0x1f, 0xfb, 0x0c, 0xff, 0xf0, 0x8f, 0xff,
+ 0x00, 0xff, 0xb0, 0x3f, 0x71, 0x80, 0xff, 0xf1,
+ 0x8f, 0x7f, 0x81, 0x7e, 0xc1,
+ 0xff, 0xff, 0xff, 0x7f, 0x8f, 0x0f, 0x70, 0xf0,
+ 0x8f, 0x7f, 0x70, 0xcf, 0x8f, 0xff, 0x71, 0x0f,
+ 0x7e, 0xf1, 0x8f, 0x7f, 0xf1,
+ 0x7f, 0xff, 0x7f, 0x0f, 0xff, 0x78, 0x8f, 0x8f,
+ 0x70, 0x70, 0x7f, 0xfe, 0xff, 0x8f, 0xff, 0x70,
+ 0xff, 0xfe, 0xff, 0xff, 0xbe,
+ 0xff, 0xf8, 0xf7, 0x0b, 0xf7, 0x88, 0xf7, 0xf0,
+ 0x8f, 0x8f, 0x70, 0xf0, 0x7e, 0x73, 0xff, 0x8f,
+ 0x7e, 0xf0, 0xff, 0x8f, 0x7f,
+ 0xff, 0x78, 0x77, 0xff, 0x8f, 0x8f, 0xf0, 0xf0,
+ 0xff, 0x8f, 0x77, 0x70, 0x77, 0x7f, 0xff, 0x7f,
+ 0xff, 0xff, 0xfe, 0x8f, 0x7f,
+ 0xff, 0xff, 0x77, 0x8f, 0xff, 0xf0, 0xff, 0xff,
+ 0x77, 0x7f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xef, 0x7f, 0xff, 0xbf,
+ 0xbf, 0xff, 0x74, 0xff, 0xff, 0x8f, 0xff, 0xfc,
+ 0x0f, 0xf3, 0x8c, 0xff, 0xfd, 0xff, 0xff, 0x8f,
+ 0x7f, 0xf1, 0x8f, 0x7d, 0x83,
+ 0xff, 0x7f, 0x77, 0xff, 0xff, 0xff, 0xff, 0xfb,
+ 0xf7, 0x7f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x78, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0x0f, 0x8f, 0x70, 0x70, 0xf7, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8e, 0x0f, 0x71,
+ 0xff, 0xf8, 0xf7, 0x7f, 0xff, 0x8f, 0x8f, 0x80,
+ 0x80, 0x81, 0x70, 0x70, 0x7f, 0xff, 0xff, 0xff,
+ 0xff, 0x6f, 0x8f, 0x0f, 0x71,
+ 0xbf, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x7b, 0xff, 0x9f, 0xff, 0x70, 0xff, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xfe, 0x8f,
+ 0xff, 0x87, 0x7f, 0x78, 0xfe, 0xff, 0x9e, 0xff,
+ 0xf2, 0x7f, 0xff, 0x0f, 0xff, 0xf0, 0xff, 0xef,
+ 0xff, 0x7f, 0xff, 0xff, 0xff,
+ 0x7f, 0x7f, 0xff, 0x7f, 0xff, 0xff, 0xfe, 0x8f,
+ 0xff, 0x70, 0xff, 0x7f, 0xff, 0xff, 0xdf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xfe,
+ 0xff, 0xff, 0x7f, 0xf7, 0xff, 0xfe, 0xff, 0xff,
+ 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0x7f, 0x8f, 0x8f, 0xf0, 0xf0,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xaf, 0x0f,
+ 0x70, 0xd1, 0xff, 0xf8, 0xfe,
+ 0xff, 0xff, 0xff, 0xf7, 0xaf, 0x8f, 0xfa, 0xf0,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x8f, 0x0f,
+ 0x79, 0xe1, 0xff, 0xfe, 0xff,
+ 0xbf, 0xff, 0xff, 0x7a, 0x8f, 0xff, 0xf0, 0xef,
+ 0xff, 0xfb, 0xff, 0xaf, 0xff, 0xfb, 0x8f, 0x7f,
+ 0xf1, 0xdf, 0xff, 0xf9, 0xff,
+ 0xbf, 0xff, 0xff, 0xf7, 0xff, 0xaf, 0xff, 0xba,
+ 0xaf, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xef, 0xdf,
+ 0xff, 0xfd, 0xbe, 0xf7, 0xf5,
+ 0xff, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xff,
+ 0xff, 0x8f, 0xf7, 0xf0, 0xff, 0xff, 0x8f, 0x3f,
+ 0x11, 0xeb, 0xdb, 0xcf, 0x7f,
+ 0xbf, 0xf0, 0x8f, 0x87, 0xf0, 0xf0, 0xff, 0xbf,
+ 0xff, 0x8f, 0xff, 0xf1, 0x8f, 0x0f, 0x31, 0xf1,
+ 0x9f, 0xdf, 0xf9, 0x85, 0x7f,
+ 0xbf, 0xff, 0x8f, 0x7f, 0xf0, 0xff, 0xff, 0xff,
+ 0xee, 0xff, 0xfb, 0xf7, 0x8f, 0x7f, 0xb1, 0xff,
+ 0xff, 0xff, 0xff, 0xdf, 0xfd,
+ 0xff, 0xff, 0xff, 0x8f, 0x8f, 0xf0, 0x80, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x2f, 0x71,
+ 0xc1, 0x7f, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xff, 0xbf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f, 0xd1,
+ 0x9f, 0xff, 0x7b, 0xb7, 0xff,
+ 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xfe, 0x8f, 0xff, 0xf1, 0xff, 0xff,
+ 0xff, 0xff, 0xbf, 0xb7, 0xff,
+ 0xff, 0xa4, 0xf7, 0x88, 0xff, 0xf0, 0xaf, 0xbf,
+ 0xfb, 0xef, 0xff, 0xf7, 0xff, 0x8f, 0x7f, 0xf1,
+ 0xff, 0xdd, 0xf7, 0x97, 0x7f,
+ 0xff, 0xff, 0xf7, 0xff, 0x8f, 0xff, 0xf0, 0xff,
+ 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xf7, 0xaf, 0x0f, 0xa0, 0xf0,
+ 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f,
+ 0x71, 0xb1, 0x37, 0xf7, 0xff,
+ 0xff, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf0, 0xfe, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x7f,
+ 0xbf, 0xff, 0xf8, 0xf7, 0xff, 0xa7, 0xff, 0xf0,
+ 0xff, 0xff, 0x8f, 0xfe, 0xf0, 0xff, 0xff, 0x8f,
+ 0x7f, 0xf1, 0xff, 0xff, 0xcf,
+ 0xff, 0xff, 0xf7, 0x9f, 0xf7, 0xf3, 0xff, 0xff,
+ 0xff, 0xff, 0x7f, 0xff, 0xff, 0xbf, 0x7f, 0xf9,
+ 0xff, 0xfe, 0xff, 0xff, 0xdf,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0x7f,
+ 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xbf, 0xbf,
+ 0xff, 0xff, 0xff, 0xaf, 0xff, 0xf0, 0xff, 0xff,
+ 0x9f, 0xfe, 0xf1, 0xff, 0xff, 0xcf, 0x7f, 0xf1,
+ 0xff, 0xff, 0xdf, 0xff, 0xf1,
+ 0xbf, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf0, 0xbf, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x6f,
+ 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0x7f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xbf,
+ 0xff, 0xf8, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xcf, 0xff,
+ 0xff, 0xd8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x8f, 0xef, 0xe0, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0x8f, 0x3f,
+ 0xff, 0xdf, 0xf7, 0xff, 0x0f, 0xfe, 0xf0, 0xff,
+ 0xff, 0xff, 0xff, 0xef, 0xff, 0xdf, 0x8e, 0x7f,
+ 0xf1, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xbf, 0xbf, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xf1, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xef, 0xff, 0xbf, 0x7f, 0xe1, 0xff,
+ 0xdf, 0xff, 0x7f, 0xff, 0xbf,
+ 0xff, 0xa7, 0xff, 0x88, 0xff, 0xf1, 0xfe, 0xff,
+ 0xff, 0xff, 0xff, 0x1f, 0xff, 0xf0, 0xcf, 0xb1,
+ 0xff, 0xef, 0xff, 0x7f, 0xff,
diff --git a/board/sixnet/sixnet.c b/board/sixnet/sixnet.c
new file mode 100644
index 0000000..a13c72d
--- /dev/null
+++ b/board/sixnet/sixnet.c
@@ -0,0 +1,592 @@
+/*
+ * (C) Copyright 2001, 2002
+ * Dave Ellis, SIXNET, dge@sixnetio.com.
+ * Based on code by:
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ * and other contributors to U-Boot. 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 <config.h>
+#include <jffs2/jffs2.h>
+#include <mpc8xx.h>
+#include <net.h> /* for eth_init() */
+#include <rtc.h>
+#include "sixnet.h"
+#ifdef CONFIG_SHOW_BOOT_PROGRESS
+# include <status_led.h>
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define ORMASK(size) ((-size) & OR_AM_MSK)
+
+static long ram_size(ulong *, long);
+
+/* ------------------------------------------------------------------------- */
+
+#ifdef CONFIG_SHOW_BOOT_PROGRESS
+void show_boot_progress (int status)
+{
+#if defined(CONFIG_STATUS_LED)
+# if defined(STATUS_LED_BOOT)
+ if (status == BOOTSTAGE_ID_RUN_OS) {
+ /* ready to transfer to kernel, make sure LED is proper state */
+ status_led_set(STATUS_LED_BOOT, CONFIG_BOOT_LED_STATE);
+ }
+# endif /* STATUS_LED_BOOT */
+#endif /* CONFIG_STATUS_LED */
+}
+#endif
+
+/* ------------------------------------------------------------------------- */
+
+/*
+ * Check Board Identity:
+ * returns 0 if recognized, -1 if unknown
+ */
+
+int checkboard (void)
+{
+ puts ("Board: SIXNET SXNI855T\n");
+ return 0;
+}
+
+/* ------------------------------------------------------------------------- */
+
+#if defined(CONFIG_CMD_PCMCIA)
+#error "SXNI855T has no PCMCIA port"
+#endif
+
+/* ------------------------------------------------------------------------- */
+
+#define _not_used_ 0xffffffff
+
+/* UPMB table for dual UART. */
+
+/* this table is for 50MHz operation, it should work at all lower speeds */
+const uint duart_table[] =
+{
+ /* single read. (offset 0 in upm RAM) */
+ 0xfffffc04, 0x0ffffc04, 0x0ff3fc04, 0x0ff3fc04,
+ 0x0ff3fc00, 0x0ff3fc04, 0xfffffc04, 0xfffffc05,
+
+ /* burst read. (offset 8 in upm RAM) */
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* single write. (offset 18 in upm RAM) */
+ 0xfffffc04, 0x0ffffc04, 0x00fffc04, 0x00fffc04,
+ 0x00fffc04, 0x00fffc00, 0xfffffc04, 0xfffffc05,
+
+ /* burst write. (offset 20 in upm RAM) */
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* refresh. (offset 30 in upm RAM) */
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* exception. (offset 3c in upm RAM) */
+ _not_used_, _not_used_, _not_used_, _not_used_,
+};
+
+/* Load FPGA very early in boot sequence, since it must be
+ * loaded before the 16C2550 serial channels can be used as
+ * console channels.
+ *
+ * Note: Much of the configuration is not complete. The
+ * stack is in DPRAM since SDRAM has not been initialized,
+ * so the stack must be kept small. Global variables
+ * are still in FLASH, so they cannot be written.
+ * Only the FLASH, DPRAM, immap and FPGA can be addressed,
+ * the other chip selects may not have been initialized.
+ * The clocks have been initialized, so udelay() can be
+ * used.
+ */
+#define FPGA_DONE 0x0080 /* PA8, input, high when FPGA load complete */
+#define FPGA_PROGRAM_L 0x0040 /* PA9, output, low to reset, high to start */
+#define FPGA_INIT_L 0x0020 /* PA10, input, low indicates not ready */
+#define fpga (*(volatile unsigned char *)(CONFIG_SYS_FPGA_PROG)) /* FPGA port */
+
+int board_postclk_init (void)
+{
+
+ /* the data to load to the XCSxxXL FPGA */
+ static const unsigned char fpgadata[] = {
+# include "fpgadata.c"
+ };
+
+ volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
+ volatile memctl8xx_t *memctl = &immap->im_memctl;
+#define porta (immap->im_ioport.iop_padat)
+ const unsigned char* pdata;
+
+ /* /INITFPGA and DONEFPGA signals are inputs */
+ immap->im_ioport.iop_padir &= ~(FPGA_INIT_L | FPGA_DONE);
+
+ /* Force output pin to begin at 0, /PROGRAM asserted (0) resets FPGA */
+ porta &= ~FPGA_PROGRAM_L;
+
+ /* Set FPGA as an output */
+ immap->im_ioport.iop_padir |= FPGA_PROGRAM_L;
+
+ /* delay a little to make sure FPGA sees it, really
+ * only need less than a microsecond.
+ */
+ udelay(10);
+
+ /* unassert /PROGRAM */
+ porta |= FPGA_PROGRAM_L;
+
+ /* delay while FPGA does last erase, indicated by
+ * /INITFPGA going high. This should happen within a
+ * few milliseconds.
+ */
+ /* ### FIXME - a timeout check would be good, maybe flash
+ * the status LED to indicate the error?
+ */
+ while ((porta & FPGA_INIT_L) == 0)
+ ; /* waiting */
+
+ /* write program data to FPGA at the programming address
+ * so extra /CS1 strobes at end of configuration don't actually
+ * write to any registers.
+ */
+ fpga = 0xff; /* first write is ignored */
+ fpga = 0xff; /* fill byte */
+ fpga = 0xff; /* fill byte */
+ fpga = 0x4f; /* preamble code */
+ fpga = 0x80; fpga = 0xaf; fpga = 0x9b; /* length (ignored) */
+ fpga = 0x4b; /* field check code */
+
+ pdata = fpgadata;
+ /* while no error write out each of the 28 byte frames */
+ while ((porta & (FPGA_INIT_L | FPGA_DONE)) == FPGA_INIT_L
+ && pdata < fpgadata + sizeof(fpgadata)) {
+
+ fpga = 0x4f; /* preamble code */
+
+ /* 21 bytes of data in a frame */
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++); fpga = *(pdata++);
+ fpga = *(pdata++);
+
+ fpga = 0x4b; /* field check code */
+ fpga = 0xff; /* extended write cycle */
+ fpga = 0x4b; /* extended write cycle
+ * (actually 0x4b from bitgen.exe)
+ */
+ fpga = 0xff; /* extended write cycle */
+ fpga = 0xff; /* extended write cycle */
+ fpga = 0xff; /* extended write cycle */
+ }
+
+ fpga = 0xff; /* startup byte */
+ fpga = 0xff; /* startup byte */
+ fpga = 0xff; /* startup byte */
+ fpga = 0xff; /* startup byte */
+
+#if 0 /* ### FIXME */
+ /* If didn't load all the data or FPGA_DONE is low the load failed.
+ * Maybe someday stop here and flash the status LED? The console
+ * is not configured, so can't print an error message. Can't write
+ * global variables to set a flag (except gd?).
+ * For now it must work.
+ */
+#endif
+
+ /* Now that the FPGA is loaded, set up the Dual UART chip
+ * selects. Must be done here since it may be used as the console.
+ */
+ upmconfig(UPMB, (uint *)duart_table, sizeof(duart_table)/sizeof(uint));
+
+ memctl->memc_mbmr = DUART_MBMR;
+ memctl->memc_or5 = DUART_OR_VALUE;
+ memctl->memc_br5 = DUART_BR5_VALUE;
+ memctl->memc_or6 = DUART_OR_VALUE;
+ memctl->memc_br6 = DUART_BR6_VALUE;
+
+ return (0);
+}
+
+/* ------------------------------------------------------------------------- */
+
+/* base address for SRAM, assume 32-bit port, valid */
+#define NVRAM_BR_VALUE (CONFIG_SYS_SRAM_BASE | BR_PS_32 | BR_V)
+
+/* up to 64MB - will be adjusted for actual size */
+#define NVRAM_OR_PRELIM (ORMASK(CONFIG_SYS_SRAM_SIZE) \
+ | OR_CSNT_SAM | OR_ACS_DIV4 | OR_BI | OR_SCY_5_CLK | OR_EHTR)
+/*
+ * Miscellaneous platform dependent initializations after running in RAM.
+ */
+
+int misc_init_r (void)
+{
+ volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
+ volatile memctl8xx_t *memctl = &immap->im_memctl;
+ bd_t *bd = gd->bd;
+ uchar enetaddr[6];
+
+ memctl->memc_or2 = NVRAM_OR_PRELIM;
+ memctl->memc_br2 = NVRAM_BR_VALUE;
+
+ /* Is there any SRAM? Is it 16 or 32 bits wide? */
+
+ /* First look for 32-bit SRAM */
+ bd->bi_sramsize = ram_size((ulong*)CONFIG_SYS_SRAM_BASE, CONFIG_SYS_SRAM_SIZE);
+
+ if (bd->bi_sramsize == 0) {
+ /* no 32-bit SRAM, but there could be 16-bit SRAM since
+ * it would report size 0 when configured for 32-bit bus.
+ * Try again with a 16-bit bus.
+ */
+ memctl->memc_br2 |= BR_PS_16;
+ bd->bi_sramsize = ram_size((ulong*)CONFIG_SYS_SRAM_BASE, CONFIG_SYS_SRAM_SIZE);
+ }
+
+ if (bd->bi_sramsize == 0) {
+ memctl->memc_br2 = 0; /* disable select since nothing there */
+ }
+ else {
+ /* adjust or2 for actual size of SRAM */
+ memctl->memc_or2 |= ORMASK(bd->bi_sramsize);
+ bd->bi_sramstart = CONFIG_SYS_SRAM_BASE;
+ printf("SRAM: %lu KB\n", bd->bi_sramsize >> 10);
+ }
+
+
+ /* set standard MPC8xx clock so kernel will see the time
+ * even if it doesn't have a DS1306 clock driver.
+ * This helps with experimenting with standard kernels.
+ */
+ {
+ ulong tim;
+ struct rtc_time tmp;
+
+ rtc_get(&tmp); /* get time from DS1306 RTC */
+
+ /* convert to seconds since 1970 */
+ tim = mktime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday,
+ tmp.tm_hour, tmp.tm_min, tmp.tm_sec);
+
+ immap->im_sitk.sitk_rtck = KAPWR_KEY;
+ immap->im_sit.sit_rtc = tim;
+ }
+
+ /* set up ethernet address for SCC ethernet. If eth1addr
+ * is present it gets a unique address, otherwise it
+ * shares the FEC address.
+ */
+ if (!eth_getenv_enetaddr("eth1addr", enetaddr)) {
+ eth_getenv_enetaddr("ethaddr", enetaddr);
+ eth_setenv_enetaddr("eth1addr", enetaddr);
+ }
+
+ return (0);
+}
+
+#if defined(CONFIG_CMD_NAND)
+void nand_init(void)
+{
+ unsigned long totlen = nand_probe(CONFIG_SYS_DFLASH_BASE);
+
+ printf ("%4lu MB\n", totlen >> 20);
+}
+#endif
+
+/* ------------------------------------------------------------------------- */
+
+/*
+ * Check memory range for valid RAM. A simple memory test determines
+ * the actually available RAM size between addresses `base' and
+ * `base + maxsize'.
+ *
+ * The memory size MUST be a power of 2 for this to work.
+ *
+ * The only memory modified is 8 bytes at offset 0. This is important
+ * since for the SRAM this location is reserved for autosizing, so if
+ * it is modified and the board is reset before ram_size() completes
+ * no damage is done. Normally even the memory at 0 is preserved. The
+ * higher SRAM addresses may contain battery backed RAM disk data which
+ * must never be corrupted.
+ */
+
+static long ram_size(ulong *base, long maxsize)
+{
+ volatile long *test_addr;
+ volatile ulong *base_addr = base;
+ ulong ofs; /* byte offset from base_addr */
+ ulong save; /* to make test non-destructive */
+ ulong save2; /* to make test non-destructive */
+ long ramsize = -1; /* size not determined yet */
+
+ save = *base_addr; /* save value at 0 so can restore */
+ save2 = *(base_addr+1); /* save value at 4 so can restore */
+
+ /* is any SRAM present? */
+ *base_addr = 0x5555aaaa;
+
+ /* It is important to drive the data bus with different data so
+ * it doesn't remember the value and look like RAM that isn't there.
+ */
+ *(base_addr + 1) = 0xaaaa5555; /* use write to modify data bus */
+
+ if (*base_addr != 0x5555aaaa)
+ ramsize = 0; /* no RAM present, or defective */
+ else {
+ *base_addr = 0xaaaa5555;
+ *(base_addr + 1) = 0x5555aaaa; /* use write to modify data bus */
+ if (*base_addr != 0xaaaa5555)
+ ramsize = 0; /* no RAM present, or defective */
+ }
+
+ /* now size it if any is present */
+ for (ofs = 4; ofs < maxsize && ramsize < 0; ofs <<= 1) {
+ test_addr = (long*)((long)base_addr + ofs); /* location to test */
+
+ *base_addr = ~*test_addr;
+ if (*base_addr == *test_addr)
+ ramsize = ofs; /* wrapped back to 0, so this is the size */
+ }
+
+ *base_addr = save; /* restore value at 0 */
+ *(base_addr+1) = save2; /* restore value at 4 */
+ return (ramsize);
+}
+
+/* ------------------------------------------------------------------------- */
+/* sdram table based on the FADS manual */
+/* for chip MB811171622A-100 */
+
+/* this table is for 50MHz operation, it should work at all lower speeds */
+
+const uint sdram_table[] =
+{
+ /* single read. (offset 0 in upm RAM) */
+ 0x1f07fc04, 0xeeaefc04, 0x11adfc04, 0xefbbbc00,
+ 0x1ff77c47,
+
+ /* precharge and Mode Register Set initialization (offset 5).
+ * This is also entered at offset 6 to do Mode Register Set
+ * without the precharge.
+ */
+ 0x1ff77c34, 0xefeabc34, 0x1fb57c35,
+
+ /* burst read. (offset 8 in upm RAM) */
+ 0x1f07fc04, 0xeeaefc04, 0x10adfc04, 0xf0affc00,
+ 0xf0affc00, 0xf1affc00, 0xefbbbc00, 0x1ff77c47,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* single write. (offset 18 in upm RAM) */
+ /* FADS had 0x1f27fc04, ...
+ * but most other boards have 0x1f07fc04, which
+ * sets GPL0 from A11MPC to 0 1/4 clock earlier,
+ * like the single read.
+ * This seems better so I am going with the change.
+ */
+ 0x1f07fc04, 0xeeaebc00, 0x01b93c04, 0x1ff77c47,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* burst write. (offset 20 in upm RAM) */
+ 0x1f07fc04, 0xeeaebc00, 0x10ad7c00, 0xf0affc00,
+ 0xf0affc00, 0xe1bbbc04, 0x1ff77c47, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* refresh. (offset 30 in upm RAM) */
+ 0x1ff5fc84, 0xfffffc04, 0xfffffc04, 0xfffffc04,
+ 0xfffffc84, 0xfffffc07, _not_used_, _not_used_,
+ _not_used_, _not_used_, _not_used_, _not_used_,
+
+ /* exception. (offset 3c in upm RAM) */
+ 0x7ffffc07, _not_used_, _not_used_, _not_used_ };
+
+/* ------------------------------------------------------------------------- */
+
+#define SDRAM_MAX_SIZE 0x10000000 /* max 256 MB SDRAM */
+
+/* precharge and set Mode Register */
+#define SDRAM_MCR_PRE (MCR_OP_RUN | MCR_UPM_A | /* select UPM */ \
+ MCR_MB_CS3 | /* chip select */ \
+ MCR_MLCF(1) | MCR_MAD(5)) /* 1 time at 0x05 */
+
+/* set Mode Register, no precharge */
+#define SDRAM_MCR_MRS (MCR_OP_RUN | MCR_UPM_A | /* select UPM */ \
+ MCR_MB_CS3 | /* chip select */ \
+ MCR_MLCF(1) | MCR_MAD(6)) /* 1 time at 0x06 */
+
+/* runs refresh loop twice so get 8 refresh cycles */
+#define SDRAM_MCR_REFR (MCR_OP_RUN | MCR_UPM_A | /* select UPM */ \
+ MCR_MB_CS3 | /* chip select */ \
+ MCR_MLCF(2) | MCR_MAD(0x30)) /* twice at 0x30 */
+
+/* MAMR values work in either mamr or mbmr */
+#define SDRAM_MAMR_BASE /* refresh at 50MHz */ \
+ ((195 << MAMR_PTA_SHIFT) | MAMR_PTAE \
+ | MAMR_DSA_1_CYCL /* 1 cycle disable */ \
+ | MAMR_RLFA_1X /* Read loop 1 time */ \
+ | MAMR_WLFA_1X /* Write loop 1 time */ \
+ | MAMR_TLFA_4X) /* Timer loop 4 times */
+/* 8 column SDRAM */
+#define SDRAM_MAMR_8COL (SDRAM_MAMR_BASE \
+ | MAMR_AMA_TYPE_0 /* Address MUX 0 */ \
+ | MAMR_G0CLA_A11) /* GPL0 A11[MPC] */
+
+/* 9 column SDRAM */
+#define SDRAM_MAMR_9COL (SDRAM_MAMR_BASE \
+ | MAMR_AMA_TYPE_1 /* Address MUX 1 */ \
+ | MAMR_G0CLA_A10) /* GPL0 A10[MPC] */
+
+/* base address 0, 32-bit port, SDRAM UPM, valid */
+#define SDRAM_BR_VALUE (BR_PS_32 | BR_MS_UPMA | BR_V)
+
+/* up to 256MB, SAM, G5LS - will be adjusted for actual size */
+#define SDRAM_OR_PRELIM (ORMASK(SDRAM_MAX_SIZE) | OR_CSNT_SAM | OR_G5LS)
+
+/* This is the Mode Select Register value for the SDRAM.
+ * Burst length: 4
+ * Burst Type: sequential
+ * CAS Latency: 2
+ * Write Burst Length: burst
+ */
+#define SDRAM_MODE 0x22 /* CAS latency 2, burst length 4 */
+
+/* ------------------------------------------------------------------------- */
+
+phys_size_t initdram(int board_type)
+{
+ volatile immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
+ volatile memctl8xx_t *memctl = &immap->im_memctl;
+ uint size_sdram = 0;
+ uint size_sdram9 = 0;
+ uint base = 0; /* SDRAM must start at 0 */
+ int i;
+
+ upmconfig(UPMA, (uint *)sdram_table, sizeof(sdram_table)/sizeof(uint));
+
+ /* Configure the refresh (mostly). This needs to be
+ * based upon processor clock speed and optimized to provide
+ * the highest level of performance.
+ *
+ * Preliminary prescaler for refresh.
+ * This value is selected for four cycles in 31.2 us,
+ * which gives 8192 cycles in 64 milliseconds.
+ * This may be too fast, but works for any memory.
+ * It is adjusted to 4096 cycles in 64 milliseconds if
+ * possible once we know what memory we have.
+ *
+ * We have to be careful changing UPM registers after we
+ * ask it to run these commands.
+ *
+ * PTA - periodic timer period for our design is
+ * 50 MHz x 31.2us
+ * --------------- = 195
+ * 1 x 8 x 1
+ *
+ * 50MHz clock
+ * 31.2us refresh interval
+ * SCCR[DFBRG] 0
+ * PTP divide by 8
+ * 1 chip select
+ */
+ memctl->memc_mptpr = MPTPR_PTP_DIV8; /* 0x0800 */
+ memctl->memc_mamr = SDRAM_MAMR_8COL & (~MAMR_PTAE); /* no refresh yet */
+
+ /* The SDRAM Mode Register value is shifted left 2 bits since
+ * A30 and A31 don't connect to the SDRAM for 32-bit wide memory.
+ */
+ memctl->memc_mar = SDRAM_MODE << 2; /* MRS code */
+ udelay(200); /* SDRAM needs 200uS before set it up */
+
+ /* Now run the precharge/nop/mrs commands. */
+ memctl->memc_mcr = SDRAM_MCR_PRE;
+ udelay(2);
+
+ /* Run 8 refresh cycles (2 sets of 4) */
+ memctl->memc_mcr = SDRAM_MCR_REFR; /* run refresh twice */
+ udelay(2);
+
+ /* some brands want Mode Register set after the refresh
+ * cycles. This shouldn't hurt anything for the brands
+ * that were happy with the first time we set it.
+ */
+ memctl->memc_mcr = SDRAM_MCR_MRS;
+ udelay(2);
+
+ memctl->memc_mamr = SDRAM_MAMR_8COL; /* enable refresh */
+ memctl->memc_or3 = SDRAM_OR_PRELIM;
+ memctl->memc_br3 = SDRAM_BR_VALUE + base;
+
+ /* Some brands need at least 10 DRAM accesses to stabilize.
+ * It wont hurt the brands that don't.
+ */
+ for (i=0; i<10; ++i) {
+ volatile ulong *addr = (volatile ulong *)base;
+ ulong val;
+
+ val = *(addr + i);
+ *(addr + i) = val;
+ }
+
+ /* Check SDRAM memory Size in 8 column mode.
+ * For a 9 column memory we will get half the actual size.
+ */
+ size_sdram = ram_size((ulong *)0, SDRAM_MAX_SIZE);
+
+ /* Check SDRAM memory Size in 9 column mode.
+ * For an 8 column memory we will see at most 4 megabytes.
+ */
+ memctl->memc_mamr = SDRAM_MAMR_9COL;
+ size_sdram9 = ram_size((ulong *)0, SDRAM_MAX_SIZE);
+
+ if (size_sdram < size_sdram9) /* leave configuration at 9 columns */
+ size_sdram = size_sdram9;
+ else /* go back to 8 columns */
+ memctl->memc_mamr = SDRAM_MAMR_8COL;
+
+ /* adjust or3 for actual size of SDRAM
+ */
+ memctl->memc_or3 |= ORMASK(size_sdram);
+
+ /* Adjust refresh rate depending on SDRAM type.
+ * For types > 128 MBit (32 Mbyte for 2 x16 devices) leave
+ * it at the current (fast) rate.
+ * For 16, 64 and 128 MBit half the rate will do.
+ */
+ if (size_sdram <= 32 * 1024 * 1024)
+ memctl->memc_mptpr = MPTPR_PTP_DIV16; /* 0x0400 */
+
+ return (size_sdram);
+}
diff --git a/board/sixnet/sixnet.h b/board/sixnet/sixnet.h
new file mode 100644
index 0000000..e631874
--- /dev/null
+++ b/board/sixnet/sixnet.h
@@ -0,0 +1,36 @@
+/*
+ * (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
+ */
+
+/*
+ * Memory map:
+ *
+ * ff100000 -> ff13ffff : FPGA CS1
+ * ff030000 -> ff03ffff : EXPANSION CS7
+ * ff020000 -> ff02ffff : DATA FLASH CS4
+ * ff018000 -> ff01ffff : UART B CS6/UPMB
+ * ff010000 -> ff017fff : UART A CS5/UPMB
+ * ff000000 -> ff00ffff : IMAP internal to the MPC855T
+ * f8000000 -> fbffffff : FLASH CS0 up to 64MB
+ * f4000000 -> f7ffffff : NVSRAM CS2 up to 64MB
+ * 00000000 -> 0fffffff : SDRAM CS3/UPMA up to 256MB
+ */
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
new file mode 100644
index 0000000..66c5fba
--- /dev/null
+++ b/board/sixnet/u-boot.lds
@@ -0,0 +1,98 @@
+/*
+ * (C) Copyright 2000-2010
+ * 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)
+
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = + SIZEOF_HEADERS;
+ .text :
+ {
+ arch/powerpc/cpu/mpc8xx/start.o (.text*)
+ arch/powerpc/cpu/mpc8xx/traps.o (.text*)
+
+ *(.text*)
+ }
+ _etext = .;
+ PROVIDE (etext = .);
+ .rodata :
+ {
+ *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
+ }
+
+ /* Read-write section, merged into data segment: */
+ . = (. + 0x0FFF) & 0xFFFFF000;
+ _erotext = .;
+ PROVIDE (erotext = .);
+ .reloc :
+ {
+ _GOT2_TABLE_ = .;
+ KEEP(*(.got2))
+ KEEP(*(.got))
+ PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
+ _FIXUP_TABLE_ = .;
+ KEEP(*(.fixup))
+ }
+ __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
+ __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+
+ .data :
+ {
+ *(.data*)
+ *(.sdata*)
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+
+ . = .;
+
+ . = ALIGN(4);
+ .u_boot_list : {
+ KEEP(*(SORT(.u_boot_list*)));
+ }
+
+
+ . = .;
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ . = ALIGN(4096);
+ __init_begin = .;
+ .text.init : { *(.text.init) }
+ .data.init : { *(.data.init) }
+ . = ALIGN(4096);
+ __init_end = .;
+
+ __bss_start = .;
+ .bss (NOLOAD) :
+ {
+ *(.bss*)
+ *(.sbss*)
+ *(COMMON)
+ . = ALIGN(4);
+ }
+ __bss_end = . ;
+ PROVIDE (end = .);
+}
OpenPOWER on IntegriCloud