From eb267733fabe6c773720706539ef37f1ce591f81 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 22:41:15 +0300 Subject: build/fw/coreboot: Fix misuse of raw u-boot.bin as payload The "u-boot.bin" file generated by U-Boot builds is a raw binary. When adding payloads to a CBFS, we need to use ELF files with add-payload or manually pass the entry point and load address of the payload binary with add-flat-binary. We primarily use the "u-boot.elf" which gets build with the REMAKE_ELF option, as it also has the necessary device-tree binary that U-Boot usually needs to work. When the option is not set (e.g. for QEMU), we need to use the "u-boot" file which is an ELF. Signed-off-by: Alper Nebi Yasak --- config/u-boot/build.list | 1 + script/build/fw/coreboot | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/config/u-boot/build.list b/config/u-boot/build.list index 1bb9a446..8d9a5cf0 100644 --- a/config/u-boot/build.list +++ b/config/u-boot/build.list @@ -1,3 +1,4 @@ +u-boot u-boot.bin u-boot.dtb u-boot.img diff --git a/script/build/fw/coreboot b/script/build/fw/coreboot index 934d6ffd..487bfa31 100755 --- a/script/build/fw/coreboot +++ b/script/build/fw/coreboot @@ -3,7 +3,7 @@ # SPDX-FileCopyrightText: 2014-2016,2020,2021,2023 Leah Rowe # SPDX-FileCopyrightText: 2021,2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2022 Caleb La Grange -# SPDX-FileCopyrightText: 2022 Alper Nebi Yasak +# SPDX-FileCopyrightText: 2022-2023 Alper Nebi Yasak # SPDX-FileCopyrightText: 2023 Riku Viitanen [ "x${DEBUG+set}" = 'xset' ] && set -v @@ -187,8 +187,8 @@ build_dependency_uboot() x_ ./update project trees -b u-boot ${board} ubdir="elf/u-boot/${board}/${uboot_config}" ubootelf="${ubdir}/u-boot.elf" - [ ! -f "${ubootelf}" ] && [ -f "${ubdir}/u-boot.bin" ] && \ - ubootelf="${ubdir}/u-boot.bin" + [ ! -f "${ubootelf}" ] && [ -f "${ubdir}/u-boot" ] && \ + ubootelf="${ubdir}/u-boot" [ -f "${ubootelf}" ] && return 0 err "Could not find u-boot build for board, ${board}" } @@ -369,7 +369,7 @@ mkUbootRom() { _ubdir="elf/u-boot/${board}/${uboot_config}" _ubootelf="${_ubdir}/u-boot.elf" - [ -f "${_ubootelf}" ] || _ubootelf="${_ubdir}/u-boot.bin" + [ -f "${_ubootelf}" ] || _ubootelf="${_ubdir}/u-boot" [ -f "${_ubootelf}" ] || err "mkUbootRom: ${board}: cant find u-boot" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) -- cgit v1.2.1 From 8b411963b7e4941cbd96ac874d0582eaa20ea998 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 22:47:48 +0300 Subject: u-boot: qemu_arm64_12mb: Remove misleading rev field The U-Boot build for qemu_arm64_12mb board refers to a code revision whereas it uses the common "default" tree, remove the bad reference. Signed-off-by: Alper Nebi Yasak --- config/u-boot/qemu_arm64_12mb/target.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/config/u-boot/qemu_arm64_12mb/target.cfg b/config/u-boot/qemu_arm64_12mb/target.cfg index 97c8d8e6..6532f257 100644 --- a/config/u-boot/qemu_arm64_12mb/target.cfg +++ b/config/u-boot/qemu_arm64_12mb/target.cfg @@ -1,3 +1,2 @@ tree="default" -rev="4debc57a3da6c3f4d3f89a637e99206f4cea0a96" # v2022.10 arch="AArch64" -- cgit v1.2.1 From b2d84213dae4e199b4e4fa4f70dd6e3fbf5d90c4 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 11:16:41 +0300 Subject: update/project/trees: Add flags for more kconfig actions Add an "-s" flag for "make savedefconfig", "-l" for "make olddefconfig" and "-n" for "make nconfig" to the update script. The first two are mainly useful for U-Boot, to compare our configs to the upstream defconfigs and stay in sync with any upstream changes. The latter is because the ncurses one has a nice "Symbol Search" that can point out the menu entry for a config symbol we know. Signed-off-by: Alper Nebi Yasak --- script/update/project/trees | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/script/update/project/trees b/script/update/project/trees index 6a31d8d0..9e6803cf 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -1,6 +1,6 @@ #!/usr/bin/env sh # SPDX-License-Identifier: GPL-3.0-or-later -# SPDX-FileCopyrightText: 2022 Alper Nebi Yasak +# SPDX-FileCopyrightText: 2022-2023 Alper Nebi Yasak # SPDX-FileCopyrightText: 2022 Ferass El Hafidi # SPDX-FileCopyrightText: 2023 Leah Rowe @@ -21,7 +21,7 @@ tmpclean="$(mktemp -d -t makeclean.XXXXXXXXXX)" main() { - while getopts f:b:m:u:c:x: option + while getopts f:b:m:u:c:x:s:l:n: option do _f="${1}" case "${1}" in @@ -31,11 +31,14 @@ main() -c) mode="distclean" ;; -x) mode="crossgcc-clean" ;; -f) mode="fetch" ;; + -s) mode="savedefconfig" ;; + -l) mode="olddefconfig" ;; + -n) mode="nconfig" ;; *) err "Invalid option" ;; esac shift; project="${OPTARG#src/}"; shift done - [ -z "${_f}" ] && err "flag not specified (-m, -u, -b, -c or -x)" + [ -z "${_f}" ] && err "flag not specified (-m, -u, -b, -c, -x, -f, -s, -l or -n)" [ -z "${project}" ] && err "project name not specified" if [ ! -f "config/${project}/build.list" ]; then @@ -263,8 +266,11 @@ handle_makefile() if [ -e "${codedir}/.git" ] && [ "${project}" = "u-boot" ] && \ [ "${mode}" = "distclean" ]; then x_ git -C "${codedir}" clean -fdx - elif [ "${mode}" = "oldconfig" ] || [ "${mode}" = "menuconfig" ]; then + elif [ "${mode}" = "oldconfig" ] || [ "${mode}" = "olddefconfig" ] || \ + [ "${mode}" = "menuconfig" ] || [ "${mode}" = "nconfig" ]; then x_ cp "${codedir}/.config" "${config}" + elif [ "${mode}" = "savedefconfig" ]; then + x_ cp "${codedir}/defconfig" "${config}" fi } -- cgit v1.2.1 From f459e05ecd40592d80d119d16449d40f0dfbfa78 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 12:44:05 +0300 Subject: u-boot: Update to v2023.10 Set default U-Boot revision to v2023.01 and rebase patches on top of that. Another series about 16x32 fonts was merged upstream, so drop some now-unnecessary patches we had for that. For the video damage tracking series, switch to the version I'm trying to upstream. Upstream kconfig status is a bit unstable, so updating configs with `make oldconfig` would miss important upstream changes, since they rely on carrying defaults via upstream defconfigs. Update the configs as such: - Turn old configs into defconfigs (./update project trees -s u-boot) - Save the diff from old upstream defconfig (diffconfig $theirs $ours) - Update U-Boot revision, rebase patches, and clean old trees - Prepare new U-Boot tree (./update project trees -f u-boot) - Review the diffconfigs to see if any options were renamed upstream - Copy over the new upstream defconfigs and apply earlier diff - Turn new defconfigs into configs (./update project trees -l u-boot) Signed-off-by: Alper Nebi Yasak --- ...p-rk3399-Set-hardcoded-clock-rates-same-a.patch | 10 +- ...video-improve-UEFI-experience-on-DM_VIDEO.patch | 8619 +------------------- .../patches/0003-Add-video-damage-tracking.patch | 1974 ++++- config/u-boot/default/target.cfg | 2 +- config/u-boot/gru_bob/config/default | 219 +- config/u-boot/gru_kevin/config/default | 219 +- config/u-boot/qemu_arm64_12mb/config/default | 171 +- 7 files changed, 2044 insertions(+), 9170 deletions(-) diff --git a/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch b/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch index 044ea768..4a3e8687 100644 --- a/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch +++ b/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch @@ -1,4 +1,4 @@ -From 7e73b7a7550cfdd22a1413c263026e41e56e7617 Mon Sep 17 00:00:00 2001 +From 27d49512277677afb7f71e093b007b3e2022b83e Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 8 Oct 2021 17:33:22 +0300 Subject: [PATCH] clk: rockchip: rk3399: Set hardcoded clock rates same as @@ -13,8 +13,8 @@ Also update VOP ACLK to 400MHz as it divides from CPLL (now 800MHz). All this stops the displayed vendor bitmap from getting disfigured when chainloading U-Boot from coreboot+depthcharge (as RW_LEGACY). -Link: https://github.com/alpernebbi/u-boot/commit/7e73b7a7550cfdd22a1413c263026e41e56e7617 Signed-off-by: Alper Nebi Yasak +Link: https://github.com/alpernebbi/u-boot/commit/7e73b7a7550cfdd22a1413c263026e41e56e7617 --- .../include/asm/arch-rockchip/cru_rk3399.h | 19 ++++++++++--------- drivers/clk/rockchip/clk_rk3399.c | 10 ++++++---- @@ -60,7 +60,7 @@ index d941a129f3e5..54035c0df1f3 100644 #define PWM_CLOCK_HZ PMU_PCLK_HZ diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c -index 7d31a9f22a85..7cb3b0c23b72 100644 +index f748fb5189e0..33f02c2d633c 100644 --- a/drivers/clk/rockchip/clk_rk3399.c +++ b/drivers/clk/rockchip/clk_rk3399.c @@ -54,10 +54,11 @@ struct pll_div { @@ -87,7 +87,7 @@ index 7d31a9f22a85..7cb3b0c23b72 100644 void *aclkreg_addr, *dclkreg_addr; u32 div; -@@ -1316,6 +1317,7 @@ static void rkclk_init(struct rockchip_cru *cru) +@@ -1336,6 +1337,7 @@ static void rkclk_init(struct rockchip_cru *cru) /* configure gpll cpll */ rkclk_set_pll(&cru->gpll_con[0], &gpll_init_cfg); rkclk_set_pll(&cru->cpll_con[0], &cpll_init_cfg); @@ -96,5 +96,5 @@ index 7d31a9f22a85..7cb3b0c23b72 100644 /* configure perihp aclk, hclk, pclk */ aclk_div = GPLL_HZ / PERIHP_ACLK_HZ - 1; -- -2.37.2 +2.42.0 diff --git a/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch b/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch index 21018583..cd5a2751 100644 --- a/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch +++ b/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch @@ -1,9 +1,9 @@ -From 6cbbe8bd43cd672cb8ff26986f8d054b739f4fe5 Mon Sep 17 00:00:00 2001 +From ac31b6bc4bcfc328342ec1677db5b80548d43b35 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 10 Jan 2022 00:56:31 +0000 -Subject: [PATCH 1/8] video: Add cursor support for VIDEO consoles +Subject: [PATCH 1/4] video: Add cursor support for video consoles -So far the VIDEO console is completely lacking any cursor, which makes +So far the video console is completely lacking any cursor, which makes typing and correcting quite irritating. Add a simple cursor display by writing a SPACE glyph in the background @@ -11,35 +11,35 @@ colour to the next character position on the screen. Any typed character will naturally overwrite it, so we need to only explicitly clear it if the next character will appear somewhere else (newline, backspace). -Link: https://lore.kernel.org/u-boot/20220110005638.21599-2-andre.przywara@arm.com/ Signed-off-by: Andre Przywara Reviewed-by: Simon Glass Tested-by: Simon Glass -[Alper: Replace DM_VIDEO with VIDEO in commit message] +Link: https://lore.kernel.org/r/20220110005638.21599-2-andre.przywara@arm.com +[Alper: Rebase for console_set_font(), reword for CONFIG_VIDEO] Signed-off-by: Alper Nebi Yasak --- - drivers/video/console_normal.c | 1 + + drivers/video/console_core.c | 1 + drivers/video/vidconsole-uclass.c | 42 +++++++++++++++++++++++++++++++ include/video_console.h | 1 + 3 files changed, 44 insertions(+) -diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c -index 04f022491e52..bfd3aab8d249 100644 ---- a/drivers/video/console_normal.c -+++ b/drivers/video/console_normal.c -@@ -160,6 +160,7 @@ static int console_normal_probe(struct udevice *dev) - vc_priv->y_charsize = VIDEO_FONT_HEIGHT; - vc_priv->cols = vid_priv->xsize / VIDEO_FONT_WIDTH; - vc_priv->rows = vid_priv->ysize / VIDEO_FONT_HEIGHT; -+ vc_priv->cursor_visible = true; +diff --git a/drivers/video/console_core.c b/drivers/video/console_core.c +index b5d0e3dceca3..60de5fcacb82 100644 +--- a/drivers/video/console_core.c ++++ b/drivers/video/console_core.c +@@ -30,6 +30,7 @@ static int console_set_font(struct udevice *dev, struct video_fontdata *fontdata + debug("height: %d\n", fontdata->height); - return 0; - } + priv->fontdata = fontdata; ++ vc_priv->cursor_visible = true; + vc_priv->x_charsize = fontdata->width; + vc_priv->y_charsize = fontdata->height; + if (vid_priv->rot % 2) { diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c -index 6bdfb6e37dd5..f458e637004f 100644 +index b5b3b6625902..a6d994bd637c 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c -@@ -61,6 +61,26 @@ static int vidconsole_entry_start(struct udevice *dev) +@@ -56,6 +56,26 @@ static int vidconsole_entry_start(struct udevice *dev) return ops->entry_start(dev); } @@ -66,7 +66,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 /* Move backwards one space */ static int vidconsole_back(struct udevice *dev) { -@@ -68,6 +88,8 @@ static int vidconsole_back(struct udevice *dev) +@@ -63,6 +83,8 @@ static int vidconsole_back(struct udevice *dev) struct vidconsole_ops *ops = vidconsole_get_ops(dev); int ret; @@ -75,8 +75,8 @@ index 6bdfb6e37dd5..f458e637004f 100644 if (ops->backspace) { ret = ops->backspace(dev); if (ret != -ENOSYS) -@@ -94,6 +116,8 @@ static void vidconsole_newline(struct udevice *dev) - const int rows = CONFIG_CONSOLE_SCROLL_LINES; +@@ -89,6 +111,8 @@ static void vidconsole_newline(struct udevice *dev) + const int rows = CONFIG_VAL(CONSOLE_SCROLL_LINES); int i, ret; + draw_cursor(dev, false); @@ -84,7 +84,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 priv->xcur_frac = priv->xstart_frac; priv->ycur += priv->y_charsize; -@@ -287,6 +311,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) +@@ -282,6 +306,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) break; } @@ -99,7 +99,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 case 'J': { int mode; -@@ -461,6 +493,11 @@ int vidconsole_put_char(struct udevice *dev, char ch) +@@ -456,6 +488,11 @@ int vidconsole_put_char(struct udevice *dev, char ch) struct vidconsole_priv *priv = dev_get_uclass_priv(dev); int ret; @@ -111,7 +111,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 if (priv->escape) { vidconsole_escape_char(dev, ch); return 0; -@@ -475,6 +512,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) +@@ -470,6 +507,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) /* beep */ break; case '\r': @@ -119,7 +119,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 priv->xcur_frac = priv->xstart_frac; break; case '\n': -@@ -482,6 +520,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) +@@ -477,6 +515,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) vidconsole_entry_start(dev); break; case '\t': /* Tab (8 chars alignment) */ @@ -127,7 +127,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 priv->xcur_frac = ((priv->xcur_frac / priv->tab_width_frac) + 1) * priv->tab_width_frac; -@@ -499,6 +538,8 @@ int vidconsole_put_char(struct udevice *dev, char ch) +@@ -494,6 +533,8 @@ int vidconsole_put_char(struct udevice *dev, char ch) break; } @@ -136,7 +136,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 return 0; } -@@ -565,6 +606,7 @@ static int vidconsole_pre_probe(struct udevice *dev) +@@ -646,6 +687,7 @@ static int vidconsole_pre_probe(struct udevice *dev) struct video_priv *vid_priv = dev_get_uclass_priv(vid); priv->xsize_frac = VID_TO_POS(vid_priv->xsize); @@ -145,7 +145,7 @@ index 6bdfb6e37dd5..f458e637004f 100644 return 0; } diff --git a/include/video_console.h b/include/video_console.h -index d755eb73cf20..e186e1a0492c 100644 +index 2694e44f6ecf..949abb3861e7 100644 --- a/include/video_console.h +++ b/include/video_console.h @@ -59,6 +59,7 @@ struct vidconsole_priv { @@ -157,8522 +157,13 @@ index d755eb73cf20..e186e1a0492c 100644 }; -- -2.39.1 - - -From 61e5d76965cf4d2c3ef7a1b801844268e996adb0 Mon Sep 17 00:00:00 2001 -From: Andre Przywara -Date: Mon, 10 Jan 2022 00:56:32 +0000 -Subject: [PATCH 2/8] video: vidconsole: Support wider bitmap fonts - -Currently the VIDEO console only supports bitmap fonts with up to -8 pixels wide glyphs. Add support for fonts with glyphs up to 32 pixels -wide, as those might prove useful on high resolution screens. - -This is done by expanding the glyph bits buffer to 32bits, and aligning -the font data to the high bits, counting down from there. The compiler -should optimise away any unneeded accesses for narrower fonts. - -Link: https://lore.kernel.org/u-boot/20220110005638.21599-3-andre.przywara@arm.com/ -Signed-off-by: Andre Przywara -Reviewed-by: Simon Glass -[Alper: Replace DM_VIDEO with VIDEO in commit message] -Signed-off-by: Alper Nebi Yasak ---- - drivers/video/console_normal.c | 25 ++++++++++++++++++++----- - 1 file changed, 20 insertions(+), 5 deletions(-) - -diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c -index bfd3aab8d249..9f552d02b308 100644 ---- a/drivers/video/console_normal.c -+++ b/drivers/video/console_normal.c -@@ -13,6 +13,9 @@ - #include - #include /* Get font data, width and height */ - -+#define VIDEO_FONT_STRIDE ((VIDEO_FONT_WIDTH + 7) / 8) -+#define VIDEO_FONT_GLYPH_BYTES (VIDEO_FONT_STRIDE * VIDEO_FONT_HEIGHT) -+ - static int console_normal_set_row(struct udevice *dev, uint row, int clr) - { - struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); -@@ -98,8 +101,20 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - return -EAGAIN; - - for (row = 0; row < VIDEO_FONT_HEIGHT; row++) { -- unsigned int idx = (u8)ch * VIDEO_FONT_HEIGHT + row; -- uchar bits = video_fontdata[idx]; -+ uint32_t bits = video_fontdata[(u8)ch * VIDEO_FONT_GLYPH_BYTES + -+ row * VIDEO_FONT_STRIDE] << 24; -+ -+ if (VIDEO_FONT_WIDTH > 8) -+ bits |= video_fontdata[ch * VIDEO_FONT_GLYPH_BYTES + -+ row * VIDEO_FONT_STRIDE + 1] << 16; -+ -+ if (VIDEO_FONT_WIDTH > 16) -+ bits |= video_fontdata[ch * VIDEO_FONT_GLYPH_BYTES + -+ row * VIDEO_FONT_STRIDE + 2] << 8; -+ -+ if (VIDEO_FONT_WIDTH > 24) -+ bits |= video_fontdata[ch * VIDEO_FONT_GLYPH_BYTES + -+ row * VIDEO_FONT_STRIDE + 3]; - - switch (vid_priv->bpix) { - case VIDEO_BPP8: -@@ -107,7 +122,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - uint8_t *dst = line; - - for (i = 0; i < VIDEO_FONT_WIDTH; i++) { -- *dst++ = (bits & 0x80) ? -+ *dst++ = (bits & BIT(31)) ? - vid_priv->colour_fg : - vid_priv->colour_bg; - bits <<= 1; -@@ -119,7 +134,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - uint16_t *dst = line; - - for (i = 0; i < VIDEO_FONT_WIDTH; i++) { -- *dst++ = (bits & 0x80) ? -+ *dst++ = (bits & BIT(31)) ? - vid_priv->colour_fg : - vid_priv->colour_bg; - bits <<= 1; -@@ -131,7 +146,7 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - uint32_t *dst = line; - - for (i = 0; i < VIDEO_FONT_WIDTH; i++) { -- *dst++ = (bits & 0x80) ? -+ *dst++ = (bits & BIT(31)) ? - vid_priv->colour_fg : - vid_priv->colour_bg; - bits <<= 1; --- -2.39.1 - - -From 3e96384f40c1e7b479b363096dff54a6adf9a0ec Mon Sep 17 00:00:00 2001 -From: Andre Przywara -Date: Mon, 10 Jan 2022 00:56:33 +0000 -Subject: [PATCH 3/8] video: Kconfig: convert CONFIG_VIDEO_FONT_4X6 to Kconfig - -We used to have two boards using a very tiny font, replacing the -standard 8x16 font used on most framebuffers. This was done outside of -Kconfig though, so move this over now. - -As those boards have been removed lately, there are currently no users, -but we will gain more font support in a later patch. - -Fix the build for the 4x6 font on the way. - -Link: https://lore.kernel.org/u-boot/20220110005638.21599-4-andre.przywara@arm.com/ -Signed-off-by: Andre Przywara -Reviewed-by: Simon Glass ---- - drivers/video/fonts/Kconfig | 12 ++++++++++++ - include/video_font_4x6.h | 2 +- - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/drivers/video/fonts/Kconfig b/drivers/video/fonts/Kconfig -index c692fa9602f8..82df137542c2 100644 ---- a/drivers/video/fonts/Kconfig -+++ b/drivers/video/fonts/Kconfig -@@ -2,6 +2,18 @@ - # Video fonts - # - -+choice -+ prompt "Bitmap font for framebuffers" -+ default VIDEO_FONT_8X16 -+ -+config VIDEO_FONT_4X6 -+ bool "Tiny 4x6 font" -+ -+config VIDEO_FONT_8X16 -+ bool "Standard VGA font" -+ -+endchoice -+ - menu "TrueType Fonts" - - config CONSOLE_TRUETYPE_NIMBUS -diff --git a/include/video_font_4x6.h b/include/video_font_4x6.h -index c7e6351b64c0..65dd5e8c1d9f 100644 ---- a/include/video_font_4x6.h -+++ b/include/video_font_4x6.h -@@ -46,7 +46,7 @@ __END__; - #define VIDEO_FONT_HEIGHT 6 - #define VIDEO_FONT_SIZE (VIDEO_FONT_CHARS * VIDEO_FONT_HEIGHT) - --static unsigned char video_fontdata[VIDEO_FONT_SIZE] = { -+static unsigned char __maybe_unused video_fontdata[VIDEO_FONT_SIZE] = { - - /*{*/ - /* Char 0: ' ' */ --- -2.39.1 - - -From adb8e44be1a94fc3a2223228d1fbed24cf23df22 Mon Sep 17 00:00:00 2001 -From: Andre Przywara -Date: Mon, 10 Jan 2022 00:56:34 +0000 -Subject: [PATCH 4/8] video: Add sun12x22 framebuffer front - -Now that the video console can cope with fonts wider than 8 pixels, -let's add the neat 12x22 font mimicing the one used on the boot console of -of older Sun workstations. This should be more readable on high resolution -screens. - -This file has been taken from Linux, only the required U-Boot macros have -been added. - -Link: https://lore.kernel.org/u-boot/20220110005638.21599-5-andre.przywara@arm.com/ -Signed-off-by: Andre Przywara -Reviewed-by: Simon Glass -[Alper: Replace dm_video with video in commit message] -Signed-off-by: Alper Nebi Yasak ---- - drivers/video/fonts/Kconfig | 3 + - include/video_font.h | 2 + - include/video_font_sun12x22.h | 6165 +++++++++++++++++++++++++++++++++ - 3 files changed, 6170 insertions(+) - create mode 100644 include/video_font_sun12x22.h - -diff --git a/drivers/video/fonts/Kconfig b/drivers/video/fonts/Kconfig -index 82df137542c2..76f4fe78417c 100644 ---- a/drivers/video/fonts/Kconfig -+++ b/drivers/video/fonts/Kconfig -@@ -12,6 +12,9 @@ config VIDEO_FONT_4X6 - config VIDEO_FONT_8X16 - bool "Standard VGA font" - -+config VIDEO_FONT_SUN12X22 -+ bool "Sun 12x22 font" -+ - endchoice - - menu "TrueType Fonts" -diff --git a/include/video_font.h b/include/video_font.h -index 5e23f70f859f..2e00d56967e4 100644 ---- a/include/video_font.h -+++ b/include/video_font.h -@@ -9,6 +9,8 @@ - - #ifdef CONFIG_VIDEO_FONT_4X6 - #include -+#elif defined(CONFIG_VIDEO_FONT_SUN12X22) -+#include - #else - #include - #endif -diff --git a/include/video_font_sun12x22.h b/include/video_font_sun12x22.h -new file mode 100644 -index 000000000000..3c4da4d80554 ---- /dev/null -+++ b/include/video_font_sun12x22.h -@@ -0,0 +1,6165 @@ -+/* -+ * Legacy 12x22 font resembling the font used on old Sun workstations. -+ * Copied from Linux' lib/fonts/font_sun12x22.c. -+ * -+ * SPDX-License-Identifier: GPL-2.0 -+ */ -+ -+#ifndef _VIDEO_FONT_DATA_SUN12X22_ -+#define _VIDEO_FONT_DATA_SUN12X22_ -+ -+#define VIDEO_FONT_CHARS 256 -+#define VIDEO_FONT_WIDTH 12 -+#define VIDEO_FONT_HEIGHT 22 -+#define VIDEO_FONT_SIZE (VIDEO_FONT_CHARS * VIDEO_FONT_HEIGHT * 2) -+ -+ -+static unsigned char __maybe_unused video_fontdata[VIDEO_FONT_SIZE] = { -+ -+ /* 0 0x00 '^@' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 1 0x01 '^A' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x65, 0x30, /* 011001010011 */ -+ 0x6d, 0xb0, /* 011011011011 */ -+ 0x60, 0x30, /* 011000000011 */ -+ 0x62, 0x30, /* 011000100011 */ -+ 0x62, 0x30, /* 011000100011 */ -+ 0x60, 0x30, /* 011000000011 */ -+ 0x6f, 0xb0, /* 011011111011 */ -+ 0x67, 0x30, /* 011001110011 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 2 0x02 '^B' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x7a, 0xf0, /* 011110101111 */ -+ 0x72, 0x70, /* 011100100111 */ -+ 0x7f, 0xf0, /* 011111111111 */ -+ 0x7d, 0xf0, /* 011111011111 */ -+ 0x7d, 0xf0, /* 011111011111 */ -+ 0x7f, 0xf0, /* 011111111111 */ -+ 0x70, 0x70, /* 011100000111 */ -+ 0x78, 0xf0, /* 011110001111 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 3 0x03 '^C' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 4 0x04 '^D' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 5 0x05 '^E' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x1a, 0xc0, /* 000110101100 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 6 0x06 '^F' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x36, 0xc0, /* 001101101100 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 7 0x07 '^G' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 8 0x08 '^H' */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xf9, 0xf0, /* 111110011111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xe0, 0x70, /* 111000000111 */ -+ 0xe0, 0x70, /* 111000000111 */ -+ 0xc0, 0x30, /* 110000000011 */ -+ 0xc0, 0x30, /* 110000000011 */ -+ 0xe0, 0x70, /* 111000000111 */ -+ 0xe0, 0x70, /* 111000000111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf9, 0xf0, /* 111110011111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ -+ /* 9 0x09 '^I' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 10 0x0a '^J' */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xf9, 0xf0, /* 111110011111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xe6, 0x70, /* 111001100111 */ -+ 0xe6, 0x70, /* 111001100111 */ -+ 0xcf, 0x30, /* 110011110011 */ -+ 0xcf, 0x30, /* 110011110011 */ -+ 0xe6, 0x70, /* 111001100111 */ -+ 0xe6, 0x70, /* 111001100111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0xf9, 0xf0, /* 111110011111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ -+ /* 11 0x0b '^K' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x01, 0xe0, /* 000000011110 */ -+ 0x03, 0x60, /* 000000110110 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 12 0x0c '^L' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 13 0x0d '^M' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x0c, 0x60, /* 000011000110 */ -+ 0x0c, 0x60, /* 000011000110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x3c, 0x00, /* 001111000000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 14 0x0e '^N' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x19, 0xe0, /* 000110011110 */ -+ 0x1b, 0xe0, /* 000110111110 */ -+ 0x1b, 0xc0, /* 000110111100 */ -+ 0x79, 0x80, /* 011110011000 */ -+ 0xf8, 0x00, /* 111110000000 */ -+ 0xf0, 0x00, /* 111100000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 15 0x0f '^O' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x6d, 0xb0, /* 011011011011 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x6d, 0xb0, /* 011011011011 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 16 0x10 '^P' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x20, /* 000000000010 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x01, 0xe0, /* 000000011110 */ -+ 0x03, 0xe0, /* 000000111110 */ -+ 0x07, 0xe0, /* 000001111110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x07, 0xe0, /* 000001111110 */ -+ 0x03, 0xe0, /* 000000111110 */ -+ 0x01, 0xe0, /* 000000011110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x20, /* 000000000010 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 17 0x11 '^Q' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x40, 0x00, /* 010000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x7e, 0x00, /* 011111100000 */ -+ 0x7f, 0x00, /* 011111110000 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x7f, 0x00, /* 011111110000 */ -+ 0x7e, 0x00, /* 011111100000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x40, 0x00, /* 010000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 18 0x12 '^R' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 19 0x13 '^S' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 20 0x14 '^T' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xf0, /* 000111111111 */ -+ 0x3c, 0xc0, /* 001111001100 */ -+ 0x7c, 0xc0, /* 011111001100 */ -+ 0x7c, 0xc0, /* 011111001100 */ -+ 0x7c, 0xc0, /* 011111001100 */ -+ 0x3c, 0xc0, /* 001111001100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x1c, 0xe0, /* 000111001110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 21 0x15 '^U' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 22 0x16 '^V' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 23 0x17 '^W' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 24 0x18 '^X' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 25 0x19 '^Y' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 26 0x1a '^Z' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x08, 0x00, /* 000010000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0xff, 0xe0, /* 111111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x08, 0x00, /* 000010000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 27 0x1b '^[' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x00, /* 000000010000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xf0, /* 011111111111 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x00, /* 000000010000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 28 0x1c '^\' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 29 0x1d '^]' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x09, 0x00, /* 000010010000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x09, 0x00, /* 000010010000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 30 0x1e '^^' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 31 0x1f '^_' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 32 0x20 ' ' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 33 0x21 '!' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 34 0x22 '"' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 35 0x23 '#' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x30, /* 000000110011 */ -+ 0x03, 0x30, /* 000000110011 */ -+ 0x03, 0x30, /* 000000110011 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x1f, 0xf0, /* 000111111111 */ -+ 0x1f, 0xf0, /* 000111111111 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 36 0x24 '$' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x66, 0xe0, /* 011001101110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x07, 0xc0, /* 000001111100 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 37 0x25 '%' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x38, 0xc0, /* 001110001100 */ -+ 0x4c, 0xc0, /* 010011001100 */ -+ 0x45, 0x80, /* 010001011000 */ -+ 0x65, 0x80, /* 011001011000 */ -+ 0x3b, 0x00, /* 001110110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0d, 0xc0, /* 000011011100 */ -+ 0x1a, 0x60, /* 000110100110 */ -+ 0x1a, 0x20, /* 000110100010 */ -+ 0x33, 0x20, /* 001100110010 */ -+ 0x31, 0xc0, /* 001100011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 38 0x26 '&' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x77, 0x00, /* 011101110000 */ -+ 0x63, 0x60, /* 011000110110 */ -+ 0x61, 0xe0, /* 011000011110 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 39 0x27 ''' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 40 0x28 '(' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 41 0x29 ')' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 42 0x2a '*' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x76, 0xe0, /* 011101101110 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x76, 0xe0, /* 011101101110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 43 0x2b '+' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 44 0x2c ',' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 45 0x2d '-' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 46 0x2e '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 47 0x2f '/' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 48 0x30 '0' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 49 0x31 '1' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x36, 0x00, /* 001101100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 50 0x32 '2' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x40, 0xc0, /* 010000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 51 0x33 '3' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x07, 0xc0, /* 000001111100 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x60, 0x40, /* 011000000100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 52 0x34 '4' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x05, 0x80, /* 000001011000 */ -+ 0x05, 0x80, /* 000001011000 */ -+ 0x09, 0x80, /* 000010011000 */ -+ 0x09, 0x80, /* 000010011000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x21, 0x80, /* 001000011000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 53 0x35 '5' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x31, 0xc0, /* 001100011100 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 54 0x36 '6' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x67, 0x80, /* 011001111000 */ -+ 0x6f, 0xc0, /* 011011111100 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 55 0x37 '7' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x60, 0x40, /* 011000000100 */ -+ 0x00, 0x40, /* 000000000100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0x80, /* 000000001000 */ -+ 0x00, 0x80, /* 000000001000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x00, /* 000000010000 */ -+ 0x01, 0x00, /* 000000010000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 56 0x38 '8' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 57 0x39 '9' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x3f, 0x60, /* 001111110110 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x3c, 0x00, /* 001111000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 58 0x3a ':' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 59 0x3b ';' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 60 0x3c '<' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 61 0x3d '=' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 62 0x3e '>' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 63 0x3f '?' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 64 0x40 '@' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x67, 0x20, /* 011001110010 */ -+ 0x6f, 0xa0, /* 011011111010 */ -+ 0x6c, 0xa0, /* 011011001010 */ -+ 0x6c, 0xa0, /* 011011001010 */ -+ 0x67, 0xe0, /* 011001111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 65 0x41 'A' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x09, 0x00, /* 000010010000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x10, 0x80, /* 000100001000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x20, 0x40, /* 001000000100 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0xf0, /* 111000001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 66 0x42 'B' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x00, /* 111111110000 */ -+ 0x60, 0x80, /* 011000001000 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 67 0x43 'C' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x10, 0x60, /* 000100000110 */ -+ 0x20, 0x20, /* 001000000010 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x18, 0x40, /* 000110000100 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 68 0x44 'D' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x00, /* 111111110000 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x40, /* 011000000100 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 69 0x45 'E' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 70 0x46 'F' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 71 0x47 'G' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x10, 0x60, /* 000100000110 */ -+ 0x20, 0x20, /* 001000000010 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x61, 0xf0, /* 011000011111 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x20, 0x60, /* 001000000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 72 0x48 'H' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 73 0x49 'I' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 74 0x4a 'J' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 75 0x4b 'K' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0xe0, /* 111100001110 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x63, 0x00, /* 011000110000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x6c, 0x00, /* 011011000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x6e, 0x00, /* 011011100000 */ -+ 0x67, 0x00, /* 011001110000 */ -+ 0x63, 0x80, /* 011000111000 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x60, 0xe0, /* 011000001110 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 76 0x4c 'L' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 77 0x4d 'M' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xe0, 0x70, /* 111000000111 */ -+ 0x60, 0xe0, /* 011000001110 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x59, 0x60, /* 010110010110 */ -+ 0x59, 0x60, /* 010110010110 */ -+ 0x59, 0x60, /* 010110010110 */ -+ 0x4d, 0x60, /* 010011010110 */ -+ 0x4e, 0x60, /* 010011100110 */ -+ 0x4e, 0x60, /* 010011100110 */ -+ 0x44, 0x60, /* 010001000110 */ -+ 0x44, 0x60, /* 010001000110 */ -+ 0xe4, 0xf0, /* 111001001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 78 0x4e 'N' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xc0, 0x70, /* 110000000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x70, 0x20, /* 011100000010 */ -+ 0x78, 0x20, /* 011110000010 */ -+ 0x58, 0x20, /* 010110000010 */ -+ 0x4c, 0x20, /* 010011000010 */ -+ 0x46, 0x20, /* 010001100010 */ -+ 0x47, 0x20, /* 010001110010 */ -+ 0x43, 0x20, /* 010000110010 */ -+ 0x41, 0xa0, /* 010000011010 */ -+ 0x40, 0xe0, /* 010000001110 */ -+ 0x40, 0xe0, /* 010000001110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0x30, /* 111000000011 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 79 0x4f 'O' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x20, 0x60, /* 001000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x20, 0x40, /* 001000000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 80 0x50 'P' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x37, 0x80, /* 001101111000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 81 0x51 'Q' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x20, 0x60, /* 001000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x38, 0x40, /* 001110000100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x23, 0x90, /* 001000111001 */ -+ 0x01, 0xe0, /* 000000011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 82 0x52 'R' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x00, /* 111111110000 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0x80, /* 011000001000 */ -+ 0x7f, 0x00, /* 011111110000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x6e, 0x00, /* 011011100000 */ -+ 0x67, 0x00, /* 011001110000 */ -+ 0x63, 0x80, /* 011000111000 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x60, 0xe0, /* 011000001110 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 83 0x53 'S' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x3c, 0x00, /* 001111000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 84 0x54 'T' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x46, 0x20, /* 010001100010 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 85 0x55 'U' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 86 0x56 'V' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xe0, 0xe0, /* 111000001110 */ -+ 0x60, 0x40, /* 011000000100 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x19, 0x00, /* 000110010000 */ -+ 0x19, 0x00, /* 000110010000 */ -+ 0x19, 0x00, /* 000110010000 */ -+ 0x0a, 0x00, /* 000010100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 87 0x57 'W' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xfe, 0xf0, /* 111111101111 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x76, 0x20, /* 011101100010 */ -+ 0x77, 0x40, /* 011101110100 */ -+ 0x33, 0x40, /* 001100110100 */ -+ 0x37, 0x40, /* 001101110100 */ -+ 0x3b, 0xc0, /* 001110111100 */ -+ 0x3b, 0x80, /* 001110111000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 88 0x58 'X' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0xf0, /* 111000001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 89 0x59 'Y' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 90 0x5a 'Z' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x20, /* 000110000010 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 91 0x5b '[' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 92 0x5c '\' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 93 0x5d ']' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 94 0x5e '^' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1b, 0x00, /* 000110110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 95 0x5f '_' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 96 0x60 '`' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x00, /* 000000010000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 97 0x61 'a' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 98 0x62 'b' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0xe0, 0x00, /* 111000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x67, 0x80, /* 011001111000 */ -+ 0x6f, 0xc0, /* 011011111100 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x60, /* 011100000110 */ -+ 0x78, 0xc0, /* 011110001100 */ -+ 0x4f, 0x80, /* 010011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 99 0x63 'c' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x31, 0xc0, /* 001100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 100 0x64 'd' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x0f, 0x60, /* 000011110110 */ -+ 0x31, 0xe0, /* 001100011110 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0xe0, /* 011100001110 */ -+ 0x39, 0x60, /* 001110010110 */ -+ 0x1e, 0x70, /* 000111100111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 101 0x65 'e' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 102 0x66 'f' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x04, 0xc0, /* 000001001100 */ -+ 0x04, 0xc0, /* 000001001100 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 103 0x67 'g' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x20, /* 000111110010 */ -+ 0x31, 0xe0, /* 001100011110 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x3f, 0x00, /* 001111110000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x20, 0x60, /* 001000000110 */ -+ 0x40, 0x20, /* 010000000010 */ -+ 0x40, 0x20, /* 010000000010 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 104 0x68 'h' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x37, 0x80, /* 001101111000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 105 0x69 'i' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 106 0x6a 'j' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 107 0x6b 'k' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0xe0, 0x00, /* 111000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x63, 0x00, /* 011000110000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x7c, 0x00, /* 011111000000 */ -+ 0x6e, 0x00, /* 011011100000 */ -+ 0x67, 0x00, /* 011001110000 */ -+ 0x63, 0x80, /* 011000111000 */ -+ 0xf1, 0xe0, /* 111100011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 108 0x6c 'l' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 109 0x6d 'm' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xdd, 0xc0, /* 110111011100 */ -+ 0x6e, 0xe0, /* 011011101110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0xef, 0x70, /* 111011110111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 110 0x6e 'n' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x27, 0x80, /* 001001111000 */ -+ 0x79, 0xc0, /* 011110011100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 111 0x6f 'o' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 112 0x70 'p' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xef, 0x80, /* 111011111000 */ -+ 0x71, 0xc0, /* 011100011100 */ -+ 0x60, 0xe0, /* 011000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x40, /* 011000000100 */ -+ 0x70, 0x80, /* 011100001000 */ -+ 0x7f, 0x00, /* 011111110000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0xf0, 0x00, /* 111100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 113 0x71 'q' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x20, /* 000011110010 */ -+ 0x11, 0xe0, /* 000100011110 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x60, /* 011100000110 */ -+ 0x38, 0xe0, /* 001110001110 */ -+ 0x1f, 0xe0, /* 000111111110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0xf0, /* 000000001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 114 0x72 'r' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x73, 0x80, /* 011100111000 */ -+ 0x34, 0xc0, /* 001101001100 */ -+ 0x38, 0xc0, /* 001110001100 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 115 0x73 's' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 116 0x74 't' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x20, /* 000011000010 */ -+ 0x0e, 0x40, /* 000011100100 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 117 0x75 'u' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 118 0x76 'v' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0x70, /* 111100000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 119 0x77 'w' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x70, /* 111111110111 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x66, 0x20, /* 011001100010 */ -+ 0x37, 0x40, /* 001101110100 */ -+ 0x3b, 0x40, /* 001110110100 */ -+ 0x3b, 0x40, /* 001110110100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 120 0x78 'x' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf8, 0xf0, /* 111110001111 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1d, 0x00, /* 000111010000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0b, 0x80, /* 000010111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0xf1, 0xf0, /* 111100011111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 121 0x79 'y' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x08, 0x00, /* 000010000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 122 0x7a 'z' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0xe0, /* 011000001110 */ -+ 0x41, 0xc0, /* 010000011100 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x38, 0x20, /* 001110000010 */ -+ 0x70, 0x60, /* 011100000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 123 0x7b '{' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 124 0x7c '|' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 125 0x7d '}' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 126 0x7e '~' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x20, /* 000111000010 */ -+ 0x3e, 0x60, /* 001111100110 */ -+ 0x67, 0xc0, /* 011001111100 */ -+ 0x43, 0x80, /* 010000111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 127 0x7f '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 128 0x80 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xc0, /* 000011111100 */ -+ 0x10, 0x60, /* 000100000110 */ -+ 0x20, 0x20, /* 001000000010 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x20, 0x00, /* 001000000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x18, 0x40, /* 000110000100 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 129 0x81 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 130 0x82 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 131 0x83 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 132 0x84 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 133 0x85 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 134 0x86 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 135 0x87 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x31, 0xc0, /* 001100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 136 0x88 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 137 0x89 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 138 0x8a '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 139 0x8b '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 140 0x8c '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x1b, 0x00, /* 000110110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 141 0x8d '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 142 0x8e '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0xf0, /* 111000001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 143 0x8f '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x11, 0x80, /* 000100011000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0xf0, /* 111000001111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 144 0x90 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x08, 0x00, /* 000010000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x3f, 0x80, /* 001111111000 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x30, 0x20, /* 001100000010 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 145 0x91 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x66, 0x30, /* 011001100011 */ -+ 0x46, 0x30, /* 010001100011 */ -+ 0x06, 0x30, /* 000001100011 */ -+ 0x3f, 0xf0, /* 001111111111 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0xc6, 0x00, /* 110001100000 */ -+ 0xc6, 0x00, /* 110001100000 */ -+ 0xe7, 0x30, /* 111001110011 */ -+ 0x7d, 0xe0, /* 011111011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 146 0x92 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x07, 0x10, /* 000001110001 */ -+ 0x07, 0x10, /* 000001110001 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x0b, 0x00, /* 000010110000 */ -+ 0x0b, 0x20, /* 000010110010 */ -+ 0x13, 0xe0, /* 000100111110 */ -+ 0x13, 0x20, /* 000100110010 */ -+ 0x3f, 0x00, /* 001111110000 */ -+ 0x23, 0x00, /* 001000110000 */ -+ 0x23, 0x00, /* 001000110000 */ -+ 0x43, 0x10, /* 010000110001 */ -+ 0x43, 0x10, /* 010000110001 */ -+ 0xe7, 0xf0, /* 111001111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 147 0x93 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 148 0x94 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 149 0x95 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 150 0x96 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 151 0x97 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 152 0x98 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xf0, 0xf0, /* 111100001111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x0d, 0x00, /* 000011010000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x04, 0x00, /* 000001000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x08, 0x00, /* 000010000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 153 0x99 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x20, 0x60, /* 001000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x20, 0x40, /* 001000000100 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x18, 0x80, /* 000110001000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 154 0x9a '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0xe0, 0x30, /* 111000000011 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 155 0x9b '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x36, 0xc0, /* 001101101100 */ -+ 0x26, 0xc0, /* 001001101100 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x76, 0x40, /* 011101100100 */ -+ 0x36, 0xc0, /* 001101101100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 156 0x9c '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x7e, 0x00, /* 011111100000 */ -+ 0x7e, 0x00, /* 011111100000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x3e, 0x20, /* 001111100010 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x61, 0xc0, /* 011000011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 157 0x9d '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 158 0x9e '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0x80, /* 011111111000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x37, 0x80, /* 001101111000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x37, 0x80, /* 001101111000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x33, 0x30, /* 001100110011 */ -+ 0x31, 0xe0, /* 001100011110 */ -+ 0x78, 0xc0, /* 011110001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 159 0x9f '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0xe0, /* 000000011110 */ -+ 0x03, 0x30, /* 000000110011 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x7f, 0xc0, /* 011111111100 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xcc, 0x00, /* 110011000000 */ -+ 0x78, 0x00, /* 011110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 160 0xa0 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x03, 0xc0, /* 000000111100 */ -+ 0x1c, 0xc0, /* 000111001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0xe0, /* 000111101110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 161 0xa1 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 162 0xa2 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 163 0xa3 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1e, 0x60, /* 000111100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 164 0xa4 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x40, /* 000111000100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x23, 0x80, /* 001000111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x27, 0x80, /* 001001111000 */ -+ 0x79, 0xc0, /* 011110011100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 165 0xa5 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x40, /* 000111000100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x23, 0x80, /* 001000111000 */ -+ 0xc0, 0x70, /* 110000000111 */ -+ 0x60, 0x20, /* 011000000010 */ -+ 0x70, 0x20, /* 011100000010 */ -+ 0x78, 0x20, /* 011110000010 */ -+ 0x5c, 0x20, /* 010111000010 */ -+ 0x4e, 0x20, /* 010011100010 */ -+ 0x47, 0x20, /* 010001110010 */ -+ 0x43, 0xa0, /* 010000111010 */ -+ 0x41, 0xe0, /* 010000011110 */ -+ 0x40, 0xe0, /* 010000001110 */ -+ 0x40, 0x60, /* 010000000110 */ -+ 0xe0, 0x30, /* 111000000011 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 166 0xa6 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x33, 0x80, /* 001100111000 */ -+ 0x1d, 0xc0, /* 000111011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 167 0xa7 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x10, 0xc0, /* 000100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0x80, /* 001100001000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 168 0xa8 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x40, /* 001100000100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 169 0xa9 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 170 0xaa '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 171 0xab '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x10, 0x40, /* 000100000100 */ -+ 0x10, 0x80, /* 000100001000 */ -+ 0x11, 0x00, /* 000100010000 */ -+ 0x3a, 0x00, /* 001110100000 */ -+ 0x05, 0xc0, /* 000001011100 */ -+ 0x0a, 0x20, /* 000010100010 */ -+ 0x10, 0x20, /* 000100000010 */ -+ 0x20, 0xc0, /* 001000001100 */ -+ 0x41, 0x00, /* 010000010000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x03, 0xe0, /* 000000111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 172 0xac '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x10, 0x00, /* 000100000000 */ -+ 0x10, 0x40, /* 000100000100 */ -+ 0x10, 0x80, /* 000100001000 */ -+ 0x11, 0x00, /* 000100010000 */ -+ 0x3a, 0x40, /* 001110100100 */ -+ 0x04, 0xc0, /* 000001001100 */ -+ 0x09, 0x40, /* 000010010100 */ -+ 0x12, 0x40, /* 000100100100 */ -+ 0x24, 0x40, /* 001001000100 */ -+ 0x47, 0xe0, /* 010001111110 */ -+ 0x00, 0x40, /* 000000000100 */ -+ 0x00, 0x40, /* 000000000100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 173 0xad '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 174 0xae '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 175 0xaf '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x06, 0x60, /* 000001100110 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x33, 0x00, /* 001100110000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 176 0xb0 '.' */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x20, 0x80, /* 001000001000 */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x20, 0x80, /* 001000001000 */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x20, 0x80, /* 001000001000 */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x20, 0x80, /* 001000001000 */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ 0x61, 0x80, /* 011000011000 */ -+ 0x20, 0x80, /* 001000001000 */ -+ 0x0c, 0x30, /* 000011000011 */ -+ 0x08, 0x20, /* 000010000010 */ -+ -+ /* 177 0xb1 '.' */ -+ 0x77, 0x70, /* 011101110111 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0xdd, 0xd0, /* 110111011101 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x77, 0x70, /* 011101110111 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0xdd, 0xd0, /* 110111011101 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x77, 0x70, /* 011101110111 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0xdd, 0xd0, /* 110111011101 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x77, 0x70, /* 011101110111 */ -+ 0x22, 0x20, /* 001000100010 */ -+ 0x88, 0x80, /* 100010001000 */ -+ 0xdd, 0xd0, /* 110111011101 */ -+ -+ /* 178 0xb2 '.' */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ 0x9e, 0x70, /* 100111100111 */ -+ 0xdf, 0x70, /* 110111110111 */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ 0x9e, 0x70, /* 100111100111 */ -+ 0xdf, 0x70, /* 110111110111 */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ 0x9e, 0x70, /* 100111100111 */ -+ 0xdf, 0x70, /* 110111110111 */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ 0x9e, 0x70, /* 100111100111 */ -+ 0xdf, 0x70, /* 110111110111 */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ 0x9e, 0x70, /* 100111100111 */ -+ 0xdf, 0x70, /* 110111110111 */ -+ 0xf3, 0xc0, /* 111100111100 */ -+ 0xf7, 0xd0, /* 111101111101 */ -+ -+ /* 179 0xb3 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 180 0xb4 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 181 0xb5 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 182 0xb6 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 183 0xb7 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 184 0xb8 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 185 0xb9 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 186 0xba '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 187 0xbb '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 188 0xbc '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0xfd, 0x80, /* 111111011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 189 0xbd '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0xff, 0x80, /* 111111111000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 190 0xbe '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 191 0xbf '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 192 0xc0 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 193 0xc1 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 194 0xc2 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 195 0xc3 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 196 0xc4 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 197 0xc5 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 198 0xc6 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 199 0xc7 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 200 0xc8 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 201 0xc9 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 202 0xca '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 203 0xcb '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 204 0xcc '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0xf0, /* 000011011111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 205 0xcd '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 206 0xce '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0xfd, 0xf0, /* 111111011111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 207 0xcf '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 208 0xd0 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 209 0xd1 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 210 0xd2 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 211 0xd3 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 212 0xd4 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 213 0xd5 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 214 0xd6 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0f, 0xf0, /* 000011111111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 215 0xd7 '.' */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ 0x0d, 0x80, /* 000011011000 */ -+ -+ /* 216 0xd8 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 217 0xd9 '.' */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0xfe, 0x00, /* 111111100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 218 0xda '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x07, 0xf0, /* 000001111111 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ -+ /* 219 0xdb '.' */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ -+ /* 220 0xdc '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ -+ /* 221 0xdd '.' */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ 0xfc, 0x00, /* 111111000000 */ -+ -+ /* 222 0xde '.' */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ 0x03, 0xf0, /* 000000111111 */ -+ -+ /* 223 0xdf '.' */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0xff, 0xf0, /* 111111111111 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 224 0xe0 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x60, /* 000011110110 */ -+ 0x13, 0xe0, /* 000100111110 */ -+ 0x21, 0xc0, /* 001000011100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x70, 0x80, /* 011100001000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x1f, 0x60, /* 000111110110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 225 0xe1 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x37, 0x80, /* 001101111000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x77, 0x00, /* 011101110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 226 0xe2 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x3f, 0xe0, /* 001111111110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 227 0xe3 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 228 0xe4 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x60, /* 001100000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 229 0xe5 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0xe0, /* 000001111110 */ -+ 0x0f, 0xe0, /* 000011111110 */ -+ 0x13, 0x80, /* 000100111000 */ -+ 0x21, 0xc0, /* 001000011100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x60, 0xc0, /* 011000001100 */ -+ 0x70, 0x80, /* 011100001000 */ -+ 0x39, 0x00, /* 001110010000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 230 0xe6 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x36, 0xe0, /* 001101101110 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 231 0xe7 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 232 0xe8 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 233 0xe9 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 234 0xea '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0xd9, 0xb0, /* 110110011011 */ -+ 0x79, 0xe0, /* 011110011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 235 0xeb '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0x80, /* 000001111000 */ -+ 0x0c, 0xc0, /* 000011001100 */ -+ 0x18, 0x60, /* 000110000110 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x0f, 0x80, /* 000011111000 */ -+ 0x11, 0xc0, /* 000100011100 */ -+ 0x20, 0xe0, /* 001000001110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x60, 0x60, /* 011000000110 */ -+ 0x70, 0x40, /* 011100000100 */ -+ 0x38, 0x80, /* 001110001000 */ -+ 0x1f, 0x00, /* 000111110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 236 0xec '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x6f, 0x60, /* 011011110110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0xc6, 0x30, /* 110001100011 */ -+ 0xc6, 0x30, /* 110001100011 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x6f, 0x60, /* 011011110110 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 237 0xed '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x00, 0xc0, /* 000000001100 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x01, 0x80, /* 000000011000 */ -+ 0x3b, 0xc0, /* 001110111100 */ -+ 0x6f, 0x60, /* 011011110110 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0xc6, 0x30, /* 110001100011 */ -+ 0xc6, 0x30, /* 110001100011 */ -+ 0x66, 0x60, /* 011001100110 */ -+ 0x6f, 0x60, /* 011011110110 */ -+ 0x3d, 0xc0, /* 001111011100 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x30, 0x00, /* 001100000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 238 0xee '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x1f, 0xc0, /* 000111111100 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 239 0xef '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x30, 0xc0, /* 001100001100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 240 0xf0 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 241 0xf1 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 242 0xf2 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x00, 0xe0, /* 000000001110 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x60, 0x00, /* 011000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 243 0xf3 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x70, 0x00, /* 011100000000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x07, 0x00, /* 000001110000 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x00, 0x60, /* 000000000110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 244 0xf4 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x03, 0x80, /* 000000111000 */ -+ 0x07, 0xc0, /* 000001111100 */ -+ 0x0c, 0x60, /* 000011000110 */ -+ 0x0c, 0x60, /* 000011000110 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ -+ /* 245 0xf5 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x63, 0x00, /* 011000110000 */ -+ 0x63, 0x00, /* 011000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ -+ /* 246 0xf6 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x7f, 0xe0, /* 011111111110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 247 0xf7 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x38, 0x00, /* 001110000000 */ -+ 0x6c, 0x00, /* 011011000000 */ -+ 0x06, 0x30, /* 000001100011 */ -+ 0x03, 0x60, /* 000000110110 */ -+ 0x39, 0xc0, /* 001110011100 */ -+ 0x6c, 0x00, /* 011011000000 */ -+ 0x06, 0x30, /* 000001100011 */ -+ 0x03, 0x60, /* 000000110110 */ -+ 0x01, 0xc0, /* 000000011100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 248 0xf8 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x19, 0x80, /* 000110011000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 249 0xf9 '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x3e, 0x00, /* 001111100000 */ -+ 0x1c, 0x00, /* 000111000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 250 0xfa '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x3c, 0x00, /* 001111000000 */ -+ 0x3c, 0x00, /* 001111000000 */ -+ 0x18, 0x00, /* 000110000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 251 0xfb '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x07, 0xe0, /* 000001111110 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0xc6, 0x00, /* 110001100000 */ -+ 0x66, 0x00, /* 011001100000 */ -+ 0x36, 0x00, /* 001101100000 */ -+ 0x1e, 0x00, /* 000111100000 */ -+ 0x0e, 0x00, /* 000011100000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x02, 0x00, /* 000000100000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 252 0xfc '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x13, 0x80, /* 000100111000 */ -+ 0x3d, 0xc0, /* 001111011100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x18, 0xc0, /* 000110001100 */ -+ 0x3d, 0xe0, /* 001111011110 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 253 0xfd '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x0f, 0x00, /* 000011110000 */ -+ 0x1f, 0x80, /* 000111111000 */ -+ 0x31, 0x80, /* 001100011000 */ -+ 0x21, 0x80, /* 001000011000 */ -+ 0x03, 0x00, /* 000000110000 */ -+ 0x06, 0x00, /* 000001100000 */ -+ 0x0c, 0x00, /* 000011000000 */ -+ 0x18, 0x40, /* 000110000100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 254 0xfe '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x3f, 0xc0, /* 001111111100 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+ /* 255 0xff '.' */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ 0x00, 0x00, /* 000000000000 */ -+ -+}; -+ -+#endif --- -2.39.1 - - -From 504665cb560a2945f05f3b790b2d11f48bb7c2d6 Mon Sep 17 00:00:00 2001 -From: Andre Przywara -Date: Mon, 10 Jan 2022 00:56:35 +0000 -Subject: [PATCH 5/8] video: Add Terminus 16x32 font - -The video console can now cope with fonts wider than 8 pixels, so -let's include a rather large 16x32 font, well suited for HiDPI displays -found on modern laptops. - -This file has been taken from Linux, only the required U-Boot macros -have been added. - -Link: https://lore.kernel.org/u-boot/20220110005638.21599-6-andre.przywara@arm.com/ -Signed-off-by: Andre Przywara -Reviewed-by: Simon Glass -[Alper: Replace dm_video with video in commit message] -Signed-off-by: Alper Nebi Yasak ---- - drivers/video/fonts/Kconfig | 3 + - include/video_font.h | 2 + - include/video_font_ter16x32.h | 2069 +++++++++++++++++++++++++++++++++ - 3 files changed, 2074 insertions(+) - create mode 100644 include/video_font_ter16x32.h - -diff --git a/drivers/video/fonts/Kconfig b/drivers/video/fonts/Kconfig -index 76f4fe78417c..55bba9401771 100644 ---- a/drivers/video/fonts/Kconfig -+++ b/drivers/video/fonts/Kconfig -@@ -15,6 +15,9 @@ config VIDEO_FONT_8X16 - config VIDEO_FONT_SUN12X22 - bool "Sun 12x22 font" - -+config VIDEO_FONT_TER16X32 -+ bool "Terminus 16x32 font" -+ - endchoice - - menu "TrueType Fonts" -diff --git a/include/video_font.h b/include/video_font.h -index 2e00d56967e4..f2e59e8d8ee1 100644 ---- a/include/video_font.h -+++ b/include/video_font.h -@@ -11,6 +11,8 @@ - #include - #elif defined(CONFIG_VIDEO_FONT_SUN12X22) - #include -+#elif defined(CONFIG_VIDEO_FONT_TER16X32) -+#include - #else - #include - #endif -diff --git a/include/video_font_ter16x32.h b/include/video_font_ter16x32.h -new file mode 100644 -index 000000000000..22c440c8f968 ---- /dev/null -+++ b/include/video_font_ter16x32.h -@@ -0,0 +1,2069 @@ -+/* -+ * Terminus 16x32 font for use on high-res displays. -+ * Copied from Linux' lib/fonts/font_ter16x32.c. -+ * -+ * SPDX-License-Identifier: GPL-2.0 -+ */ -+ -+#ifndef _VIDEO_FONT_DATA_TER16X32_ -+#define _VIDEO_FONT_DATA_TER16X32_ -+ -+#define VIDEO_FONT_CHARS 256 -+#define VIDEO_FONT_WIDTH 16 -+#define VIDEO_FONT_HEIGHT 32 -+#define VIDEO_FONT_SIZE (VIDEO_FONT_CHARS * VIDEO_FONT_HEIGHT * 2) -+ -+static unsigned char __maybe_unused video_fontdata[VIDEO_FONT_SIZE] = { -+ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x7f, 0xfc, -+ 0xf0, 0x1e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, -+ 0xee, 0xee, 0xee, 0xee, 0xe0, 0x0e, 0xe0, 0x0e, -+ 0xe0, 0x0e, 0xe0, 0x0e, 0xef, 0xee, 0xe7, 0xce, -+ 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xf0, 0x1e, -+ 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x7f, 0xfc, -+ 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, -+ 0xe3, 0x8e, 0xe3, 0x8e, 0xff, 0xfe, 0xff, 0xfe, -+ 0xff, 0xfe, 0xff, 0xfe, 0xe0, 0x0e, 0xf0, 0x1e, -+ 0xf8, 0x3e, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, -+ 0x7f, 0xfc, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 2 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x78, 0x3c, 0xfc, 0x7e, 0xfe, 0xfe, 0xff, 0xfe, -+ 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, -+ 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 3 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, 0x0f, 0xe0, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x7f, 0xfc, 0xff, 0xfe, -+ 0xff, 0xfe, 0x7f, 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, -+ 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 4 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x0f, 0xe0, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x0f, 0xe0, 0x0f, 0xe0, -+ 0x07, 0xc0, 0x03, 0x80, 0x3b, 0xb8, 0x7f, 0xfc, -+ 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, -+ 0x7f, 0xfc, 0x3b, 0xb8, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 5 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x07, 0xc0, 0x0f, 0xe0, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0xff, 0xfe, 0xff, 0xfe, -+ 0xff, 0xfe, 0xff, 0xfe, 0xff, 0xfe, 0x7b, 0xbc, -+ 0x3b, 0xb8, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 6 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x0f, 0xf0, -+ 0x0f, 0xf0, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 7 */ -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xfc, 0x3f, 0xf8, 0x1f, 0xf0, 0x0f, 0xf0, 0x0f, -+ 0xf0, 0x0f, 0xf0, 0x0f, 0xf8, 0x1f, 0xfc, 0x3f, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 8 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0xc0, 0x07, 0xe0, 0x0e, 0x70, 0x0c, 0x30, -+ 0x0c, 0x30, 0x0e, 0x70, 0x07, 0xe0, 0x03, 0xc0, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9 */ -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xfc, 0x3f, 0xf8, 0x1f, 0xf1, 0x8f, 0xf3, 0xcf, -+ 0xf3, 0xcf, 0xf1, 0x8f, 0xf8, 0x1f, 0xfc, 0x3f, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 10 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xfe, 0x03, 0xfe, -+ 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x76, 0x00, 0xe6, -+ 0x01, 0xc6, 0x03, 0x86, 0x3f, 0xe0, 0x7f, 0xf0, -+ 0xf0, 0x78, 0xe0, 0x38, 0xe0, 0x38, 0xe0, 0x38, -+ 0xe0, 0x38, 0xe0, 0x38, 0xe0, 0x38, 0xf0, 0x78, -+ 0x7f, 0xf0, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 11 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, 0x3f, 0xf8, -+ 0x1f, 0xf0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 12 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x3f, 0xfc, -+ 0x38, 0x1c, 0x38, 0x1c, 0x38, 0x1c, 0x38, 0x1c, -+ 0x3f, 0xfc, 0x3f, 0xfc, 0x38, 0x00, 0x38, 0x00, -+ 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, -+ 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, -+ 0xf8, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 13 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x7f, 0xfe, 0x7f, 0xfe, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x3e, -+ 0xf0, 0x3c, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 14 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x73, 0x9c, 0x73, 0x9c, -+ 0x3b, 0xb8, 0x1f, 0xf0, 0x0f, 0xe0, 0x7c, 0x7c, -+ 0x7c, 0x7c, 0x0f, 0xe0, 0x1f, 0xf0, 0x3b, 0xb8, -+ 0x73, 0x9c, 0x73, 0x9c, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 15 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xc0, 0x00, 0xf0, 0x00, 0xfc, 0x00, 0xff, 0x00, -+ 0xff, 0xc0, 0xff, 0xf0, 0xff, 0xfc, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xfc, 0xff, 0xf0, 0xff, 0xc0, -+ 0xff, 0x00, 0xfc, 0x00, 0xf0, 0x00, 0xc0, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 16 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x03, 0x00, 0x0f, 0x00, 0x3f, 0x00, 0xff, -+ 0x03, 0xff, 0x0f, 0xff, 0x3f, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x3f, 0xff, 0x0f, 0xff, 0x03, 0xff, -+ 0x00, 0xff, 0x00, 0x3f, 0x00, 0x0f, 0x00, 0x03, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 17 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0f, 0xe0, 0x1f, 0xf0, 0x3b, 0xb8, 0x73, 0x9c, -+ 0x63, 0x8c, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x63, 0x8c, -+ 0x73, 0x9c, 0x3b, 0xb8, 0x1f, 0xf0, 0x0f, 0xe0, -+ 0x07, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 18 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 19 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x3f, 0xfe, -+ 0x79, 0xce, 0x71, 0xce, 0x71, 0xce, 0x71, 0xce, -+ 0x71, 0xce, 0x71, 0xce, 0x79, 0xce, 0x3f, 0xce, -+ 0x1f, 0xce, 0x01, 0xce, 0x01, 0xce, 0x01, 0xce, -+ 0x01, 0xce, 0x01, 0xce, 0x01, 0xce, 0x01, 0xce, -+ 0x01, 0xce, 0x01, 0xce, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 20 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x07, 0xe0, 0x0f, 0xf0, 0x1e, 0x78, 0x1c, 0x38, -+ 0x1c, 0x00, 0x1e, 0x00, 0x0f, 0xc0, 0x0f, 0xe0, -+ 0x1c, 0xf0, 0x1c, 0x78, 0x1c, 0x38, 0x1c, 0x38, -+ 0x1c, 0x38, 0x1e, 0x38, 0x0f, 0x38, 0x07, 0xf0, -+ 0x03, 0xf0, 0x00, 0x78, 0x00, 0x38, 0x1c, 0x38, -+ 0x1e, 0x78, 0x0f, 0xf0, 0x07, 0xe0, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 21 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x7f, 0xfe, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 22 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0f, 0xe0, 0x1f, 0xf0, 0x3b, 0xb8, 0x73, 0x9c, -+ 0x63, 0x8c, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x63, 0x8c, 0x73, 0x9c, 0x3b, 0xb8, -+ 0x1f, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0x80, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 23 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0f, 0xe0, 0x1f, 0xf0, 0x3b, 0xb8, 0x73, 0x9c, -+ 0x63, 0x8c, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 24 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x63, 0x8c, -+ 0x73, 0x9c, 0x3b, 0xb8, 0x1f, 0xf0, 0x0f, 0xe0, -+ 0x07, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 25 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0xc0, 0x00, 0xe0, 0x00, 0x70, -+ 0x00, 0x38, 0x00, 0x1c, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x7f, 0xfe, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 26 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, -+ 0x1c, 0x00, 0x38, 0x00, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x7f, 0xfe, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 27 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x06, 0x60, 0x0e, 0x70, 0x1c, 0x38, -+ 0x38, 0x1c, 0x70, 0x0e, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x70, 0x0e, 0x38, 0x1c, 0x1c, 0x38, -+ 0x0e, 0x70, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 29 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x01, 0x80, 0x01, 0x80, 0x03, 0xc0, 0x03, 0xc0, -+ 0x07, 0xe0, 0x07, 0xe0, 0x0f, 0xf0, 0x0f, 0xf0, -+ 0x1f, 0xf8, 0x1f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, -+ 0x7f, 0xfe, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 30 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x7f, 0xfe, -+ 0x3f, 0xfc, 0x3f, 0xfc, 0x1f, 0xf8, 0x1f, 0xf8, -+ 0x0f, 0xf0, 0x0f, 0xf0, 0x07, 0xe0, 0x07, 0xe0, -+ 0x03, 0xc0, 0x03, 0xc0, 0x01, 0x80, 0x01, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 31 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 32 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 33 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 34 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 35 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x1f, 0xf0, -+ 0x3f, 0xf8, 0x7b, 0xbc, 0x73, 0x9c, 0x73, 0x80, -+ 0x73, 0x80, 0x73, 0x80, 0x7b, 0x80, 0x3f, 0xf0, -+ 0x1f, 0xf8, 0x03, 0xbc, 0x03, 0x9c, 0x03, 0x9c, -+ 0x03, 0x9c, 0x73, 0x9c, 0x7b, 0xbc, 0x3f, 0xf8, -+ 0x1f, 0xf0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 36 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1c, 0x3f, 0x9c, -+ 0x3b, 0xb8, 0x3b, 0xb8, 0x3f, 0xf0, 0x1f, 0x70, -+ 0x00, 0xe0, 0x00, 0xe0, 0x01, 0xc0, 0x01, 0xc0, -+ 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, -+ 0x0e, 0xf8, 0x0f, 0xfc, 0x1d, 0xdc, 0x1d, 0xdc, -+ 0x39, 0xfc, 0x38, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 37 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0x1f, 0xe0, -+ 0x38, 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, 0x70, -+ 0x38, 0x70, 0x1c, 0xe0, 0x0f, 0xc0, 0x0f, 0x80, -+ 0x1f, 0xce, 0x38, 0xee, 0x70, 0x7c, 0x70, 0x38, -+ 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, 0x78, 0x7c, -+ 0x3f, 0xee, 0x1f, 0xce, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 38 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 39 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xc0, -+ 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, -+ 0x01, 0xc0, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 40 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x00, -+ 0x03, 0x80, 0x01, 0xc0, 0x01, 0xc0, 0x00, 0xe0, -+ 0x00, 0xe0, 0x00, 0xe0, 0x00, 0xe0, 0x00, 0xe0, -+ 0x00, 0xe0, 0x00, 0xe0, 0x00, 0xe0, 0x00, 0xe0, -+ 0x00, 0xe0, 0x01, 0xc0, 0x01, 0xc0, 0x03, 0x80, -+ 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 41 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x1c, 0x70, -+ 0x0e, 0xe0, 0x07, 0xc0, 0x03, 0x80, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x03, 0x80, 0x07, 0xc0, 0x0e, 0xe0, -+ 0x1c, 0x70, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 42 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 43 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 44 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 45 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 46 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, -+ 0x00, 0xe0, 0x00, 0xe0, 0x01, 0xc0, 0x01, 0xc0, -+ 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x07, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x1c, 0x00, -+ 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 47 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x70, 0x7c, 0x70, 0xfc, 0x71, 0xdc, 0x73, 0x9c, -+ 0x77, 0x1c, 0x7e, 0x1c, 0x7c, 0x1c, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 48 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0x80, -+ 0x0f, 0x80, 0x1f, 0x80, 0x1f, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x1f, 0xf0, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 49 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 50 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x3c, 0x0f, 0xf8, -+ 0x0f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 51 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3c, -+ 0x00, 0x7c, 0x00, 0xfc, 0x01, 0xdc, 0x03, 0x9c, -+ 0x07, 0x1c, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 52 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x7f, 0xf0, 0x7f, 0xf8, -+ 0x00, 0x3c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 53 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x3f, 0xf8, -+ 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x7f, 0xf0, 0x7f, 0xf8, -+ 0x70, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 54 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x38, -+ 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, 0x00, 0xe0, -+ 0x00, 0xe0, 0x01, 0xc0, 0x01, 0xc0, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 55 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, 0x3f, 0xf8, -+ 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 56 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x3c, -+ 0x3f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 57 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 58 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 59 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x38, -+ 0x00, 0x70, 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, -+ 0x07, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, -+ 0x38, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x07, 0x00, -+ 0x03, 0x80, 0x01, 0xc0, 0x00, 0xe0, 0x00, 0x70, -+ 0x00, 0x38, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 60 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 61 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1c, 0x00, -+ 0x0e, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xc0, -+ 0x00, 0xe0, 0x00, 0x70, 0x00, 0x38, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, -+ 0x1c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 62 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 63 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x3f, 0xfc, -+ 0x78, 0x0e, 0x70, 0x06, 0x71, 0xfe, 0x73, 0xfe, -+ 0x77, 0x8e, 0x77, 0x0e, 0x77, 0x0e, 0x77, 0x0e, -+ 0x77, 0x0e, 0x77, 0x0e, 0x77, 0x0e, 0x77, 0x9e, -+ 0x73, 0xfe, 0x71, 0xf6, 0x70, 0x00, 0x78, 0x00, -+ 0x3f, 0xfe, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 64 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 65 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x7f, 0xf8, -+ 0x70, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x38, 0x7f, 0xf0, 0x7f, 0xf0, -+ 0x70, 0x38, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 66 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 67 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x7f, 0xf0, -+ 0x70, 0x78, 0x70, 0x38, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x38, 0x70, 0x78, -+ 0x7f, 0xf0, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 68 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x7f, 0xe0, -+ 0x7f, 0xe0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 69 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x7f, 0xe0, -+ 0x7f, 0xe0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 70 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x71, 0xfc, -+ 0x71, 0xfc, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 71 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 72 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x0f, 0xe0, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 73 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0xfe, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, 0x78, 0x78, -+ 0x3f, 0xf0, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 74 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x0c, 0x70, 0x1c, -+ 0x70, 0x38, 0x70, 0x70, 0x70, 0xe0, 0x71, 0xc0, -+ 0x73, 0x80, 0x77, 0x00, 0x7e, 0x00, 0x7c, 0x00, -+ 0x7c, 0x00, 0x7e, 0x00, 0x77, 0x00, 0x73, 0x80, -+ 0x71, 0xc0, 0x70, 0xe0, 0x70, 0x70, 0x70, 0x38, -+ 0x70, 0x1c, 0x70, 0x0c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 75 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 76 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x70, 0x0e, -+ 0x78, 0x1e, 0x7c, 0x3e, 0x7e, 0x7e, 0x7e, 0x7e, -+ 0x77, 0xee, 0x73, 0xce, 0x73, 0xce, 0x71, 0x8e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 77 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x7c, 0x1c, 0x7e, 0x1c, 0x77, 0x1c, 0x73, 0x9c, -+ 0x71, 0xdc, 0x70, 0xfc, 0x70, 0x7c, 0x70, 0x3c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 78 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 79 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x7f, 0xf8, -+ 0x70, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 80 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x73, 0x9c, 0x79, 0xfc, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x38, 0x00, 0x1c, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 81 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x7f, 0xf8, -+ 0x70, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x7e, 0x00, 0x77, 0x00, -+ 0x73, 0x80, 0x71, 0xc0, 0x70, 0xe0, 0x70, 0x70, -+ 0x70, 0x38, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 82 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x78, 0x00, 0x3f, 0xf0, -+ 0x1f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 83 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 84 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 85 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x38, 0x38, -+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, -+ 0x07, 0xc0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 86 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, -+ 0x71, 0x8e, 0x73, 0xce, 0x73, 0xce, 0x77, 0xee, -+ 0x7e, 0x7e, 0x7e, 0x7e, 0x7c, 0x3e, 0x78, 0x1e, -+ 0x70, 0x0e, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 87 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x38, 0x38, 0x38, 0x38, 0x1c, 0x70, 0x1c, 0x70, -+ 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, 0x07, 0xc0, -+ 0x07, 0xc0, 0x07, 0xc0, 0x0e, 0xe0, 0x0e, 0xe0, -+ 0x1c, 0x70, 0x1c, 0x70, 0x38, 0x38, 0x38, 0x38, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 88 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x70, -+ 0x1c, 0x70, 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, -+ 0x07, 0xc0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 89 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x38, -+ 0x00, 0x70, 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, -+ 0x07, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 90 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x0f, 0xf0, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x0f, 0xf0, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 91 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, -+ 0x1c, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x01, 0xc0, 0x01, 0xc0, 0x00, 0xe0, 0x00, 0xe0, -+ 0x00, 0x70, 0x00, 0x70, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 92 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x0f, 0xf0, -+ 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, -+ 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, -+ 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, -+ 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, -+ 0x0f, 0xf0, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 93 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x07, 0xc0, 0x0e, 0xe0, 0x1c, 0x70, -+ 0x38, 0x38, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 94 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 95 */ -+ 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x07, 0x00, -+ 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 96 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 97 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x70, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 98 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 99 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 100 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 101 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0xfe, -+ 0x03, 0xc0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x3f, 0xf8, 0x3f, 0xf8, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 102 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x3c, 0x3f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, /* 103 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x70, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 104 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0x80, 0x0f, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 105 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0xf8, 0x00, 0xf8, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38, 0x38, -+ 0x3c, 0x78, 0x1f, 0xf0, 0x0f, 0xe0, 0x00, 0x00, /* 106 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0x00, -+ 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, -+ 0x38, 0x1c, 0x38, 0x38, 0x38, 0x70, 0x38, 0xe0, -+ 0x39, 0xc0, 0x3b, 0x80, 0x3f, 0x00, 0x3f, 0x00, -+ 0x3b, 0x80, 0x39, 0xc0, 0x38, 0xe0, 0x38, 0x70, -+ 0x38, 0x38, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 107 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x0f, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 108 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x73, 0xbc, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 109 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x70, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 110 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 111 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x70, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, /* 112 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, /* 113 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x73, 0xfc, 0x77, 0xfc, 0x7e, 0x00, 0x7c, 0x00, -+ 0x78, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 114 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x00, -+ 0x70, 0x00, 0x78, 0x00, 0x3f, 0xf0, 0x1f, 0xf8, -+ 0x00, 0x3c, 0x00, 0x1c, 0x00, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 115 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf0, 0x07, 0x00, 0x07, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x80, -+ 0x03, 0xfc, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 116 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 117 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x38, 0x38, -+ 0x38, 0x38, 0x38, 0x38, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, -+ 0x07, 0xc0, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 118 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x7b, 0xbc, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 119 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x38, 0x38, -+ 0x1c, 0x70, 0x0e, 0xe0, 0x07, 0xc0, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x38, 0x38, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 120 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x3c, 0x3f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, /* 121 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 122 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x03, 0xf0, -+ 0x07, 0x80, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x3e, 0x00, -+ 0x3e, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, -+ 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x80, -+ 0x03, 0xf0, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 123 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 124 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x3f, 0x00, -+ 0x07, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x01, 0xf0, -+ 0x01, 0xf0, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x07, 0x80, -+ 0x3f, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 125 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1e, 0x1c, 0x3f, 0x1c, 0x77, 0x9c, 0x73, 0xdc, -+ 0x71, 0xf8, 0x70, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 126 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0f, 0xe0, 0x1e, 0xf0, 0x3c, 0x78, 0x78, 0x3c, -+ 0xf0, 0x1e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, -+ 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, 0xe0, 0x0e, -+ 0xff, 0xfe, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 127 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, /* 128 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 129 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 130 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 131 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 132 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 133 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x0e, 0xe0, -+ 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 134 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, /* 135 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 136 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 137 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 138 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0x80, 0x0f, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 139 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0x80, 0x0f, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 140 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0x80, 0x0f, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 141 */ -+ 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 142 */ -+ 0x00, 0x00, 0x07, 0xc0, 0x0e, 0xe0, 0x0e, 0xe0, -+ 0x0e, 0xe0, 0x07, 0xc0, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 143 */ -+ 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, 0x01, 0xc0, -+ 0x03, 0x80, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x7f, 0xe0, -+ 0x7f, 0xe0, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 144 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xf8, 0x7f, 0xfc, 0x03, 0x9e, 0x03, 0x8e, -+ 0x03, 0x8e, 0x3f, 0x8e, 0x7f, 0xfe, 0xf3, 0xfe, -+ 0xe3, 0x80, 0xe3, 0x80, 0xe3, 0x80, 0xf3, 0xce, -+ 0x7f, 0xfe, 0x3e, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 145 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x7f, 0xfe, -+ 0xf1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, -+ 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, 0xff, 0xfe, -+ 0xff, 0xfe, 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, -+ 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, -+ 0xe1, 0xfe, 0xe1, 0xfe, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 146 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 147 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 148 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 149 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x07, 0xc0, -+ 0x0e, 0xe0, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 150 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 151 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x3c, 0x3f, 0xf8, 0x3f, 0xf0, 0x00, 0x00, /* 152 */ -+ 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 153 */ -+ 0x00, 0x00, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 154 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x7b, 0xbc, 0x73, 0x9c, -+ 0x73, 0x80, 0x73, 0x80, 0x73, 0x80, 0x73, 0x80, -+ 0x73, 0x80, 0x73, 0x80, 0x73, 0x9c, 0x7b, 0xbc, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 155 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x0f, 0xf0, -+ 0x1e, 0x78, 0x1c, 0x38, 0x1c, 0x00, 0x1c, 0x00, -+ 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x7f, 0xe0, -+ 0x7f, 0xe0, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, -+ 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x1c, 0x1c, 0x1c, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 156 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x38, 0x38, 0x38, 0x38, 0x1c, 0x70, 0x1c, 0x70, -+ 0x0e, 0xe0, 0x0e, 0xe0, 0x07, 0xc0, 0x07, 0xc0, -+ 0x03, 0x80, 0x03, 0x80, 0x3f, 0xf8, 0x3f, 0xf8, -+ 0x03, 0x80, 0x03, 0x80, 0x3f, 0xf8, 0x3f, 0xf8, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 157 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x80, -+ 0xe3, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, 0xe1, 0xc0, -+ 0xe1, 0xc0, 0xe1, 0xc0, 0xe3, 0xc0, 0xff, 0xf0, -+ 0xff, 0x70, 0xe0, 0x70, 0xe3, 0xfe, 0xe3, 0xfe, -+ 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, 0xe0, 0x70, -+ 0xe0, 0x7e, 0xe0, 0x3e, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 158 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x03, 0xfc, -+ 0x03, 0x9c, 0x03, 0x9c, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x1f, 0xf0, 0x1f, 0xf0, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x73, 0x80, 0x73, 0x80, -+ 0x7f, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 159 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xf0, 0x3f, 0xf8, 0x00, 0x3c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x1f, 0xfc, 0x3f, 0xfc, 0x78, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 160 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0x80, 0x0f, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x0f, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 161 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x78, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 162 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x3f, 0xfc, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 163 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x38, 0x3b, 0xb8, -+ 0x3b, 0xb8, 0x39, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xf0, 0x7f, 0xf8, 0x70, 0x3c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 164 */ -+ 0x00, 0x00, 0x1f, 0x38, 0x3b, 0xb8, 0x3b, 0xb8, -+ 0x39, 0xf0, 0x00, 0x00, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x1c, -+ 0x7c, 0x1c, 0x7e, 0x1c, 0x77, 0x1c, 0x73, 0x9c, -+ 0x71, 0xdc, 0x70, 0xfc, 0x70, 0x7c, 0x70, 0x3c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 165 */ -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x1f, 0xf0, -+ 0x00, 0x38, 0x00, 0x38, 0x0f, 0xf8, 0x1f, 0xf8, -+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1f, 0xf8, -+ 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, -+ 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 166 */ -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, 0x1f, 0xf0, -+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, -+ 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1f, 0xf0, -+ 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf8, -+ 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 167 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 168 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 169 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 170 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x3c, 0x00, -+ 0x7c, 0x06, 0x1c, 0x0e, 0x1c, 0x1c, 0x1c, 0x38, -+ 0x1c, 0x70, 0x1c, 0xe0, 0x1d, 0xc0, 0x03, 0x80, -+ 0x07, 0x00, 0x0e, 0xfc, 0x1d, 0xfe, 0x39, 0xce, -+ 0x71, 0xce, 0x60, 0x1c, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xfe, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 171 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1e, 0x00, -+ 0x3e, 0x00, 0x0e, 0x00, 0x0e, 0x06, 0x0e, 0x0e, -+ 0x0e, 0x1c, 0x0e, 0x38, 0x0e, 0x70, 0x00, 0xe0, -+ 0x01, 0xce, 0x03, 0x9e, 0x07, 0x3e, 0x0e, 0x7e, -+ 0x1c, 0xee, 0x39, 0xce, 0x73, 0xfe, 0x63, 0xfe, -+ 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 172 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 173 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x01, 0xce, 0x03, 0x9c, 0x07, 0x38, 0x0e, 0x70, -+ 0x1c, 0xe0, 0x39, 0xc0, 0x73, 0x80, 0x73, 0x80, -+ 0x39, 0xc0, 0x1c, 0xe0, 0x0e, 0x70, 0x07, 0x38, -+ 0x03, 0x9c, 0x01, 0xce, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 174 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x73, 0x80, 0x39, 0xc0, 0x1c, 0xe0, 0x0e, 0x70, -+ 0x07, 0x38, 0x03, 0x9c, 0x01, 0xce, 0x01, 0xce, -+ 0x03, 0x9c, 0x07, 0x38, 0x0e, 0x70, 0x1c, 0xe0, -+ 0x39, 0xc0, 0x73, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 175 */ -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, -+ 0xaa, 0xaa, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, /* 176 */ -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, -+ 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, /* 177 */ -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, -+ 0xff, 0xff, 0xaa, 0xaa, 0xff, 0xff, 0xaa, 0xaa, /* 178 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 179 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0xff, 0x80, 0xff, 0x80, -+ 0xff, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 180 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 181 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0xfe, 0x70, 0xfe, 0x70, -+ 0xfe, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 182 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0xff, 0xf0, -+ 0xff, 0xf0, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 183 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 184 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0xfe, 0x70, 0xfe, 0x70, 0xfe, 0x70, 0x00, 0x70, -+ 0x00, 0x70, 0xfe, 0x70, 0xfe, 0x70, 0xfe, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 185 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 186 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0x00, 0x70, -+ 0x00, 0x70, 0xfe, 0x70, 0xfe, 0x70, 0xfe, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 187 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0xfe, 0x70, 0xfe, 0x70, 0xfe, 0x70, 0x00, 0x70, -+ 0x00, 0x70, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 188 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0xff, 0xf0, 0xff, 0xf0, -+ 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 189 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0xff, 0x80, 0xff, 0x80, 0xff, 0x80, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 190 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0x80, 0xff, 0x80, -+ 0xff, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 191 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0xff, 0x03, 0xff, -+ 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 192 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 193 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 194 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0xff, 0x03, 0xff, -+ 0x03, 0xff, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 195 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 196 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 197 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 198 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x7f, 0x0e, 0x7f, -+ 0x0e, 0x7f, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 199 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 200 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x7f, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 201 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 202 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, -+ 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 203 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x00, -+ 0x0e, 0x00, 0x0e, 0x7f, 0x0e, 0x7f, 0x0e, 0x7f, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 204 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 205 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, -+ 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 206 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 207 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 208 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, -+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 209 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 210 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0f, 0xff, 0x0f, 0xff, -+ 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 211 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 212 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0xff, 0x03, 0xff, 0x03, 0xff, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 213 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x0f, 0xff, -+ 0x0f, 0xff, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 214 */ -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, -+ 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, 0x0e, 0x70, /* 215 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x80, -+ 0x03, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 216 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0xff, 0x80, 0xff, 0x80, -+ 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 217 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0x03, 0xff, -+ 0x03, 0xff, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 218 */ -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 219 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 220 */ -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, -+ 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, /* 221 */ -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, -+ 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, /* 222 */ -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 223 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xee, 0x3f, 0xfe, 0x78, 0x3c, 0x70, 0x38, -+ 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, -+ 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, 0x78, 0x3c, -+ 0x3f, 0xfe, 0x1f, 0xee, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 224 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x7f, 0xf0, -+ 0x70, 0x78, 0x70, 0x38, 0x70, 0x38, 0x70, 0x38, -+ 0x70, 0x38, 0x70, 0x70, 0x7f, 0xf0, 0x7f, 0xf0, -+ 0x70, 0x38, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x3c, -+ 0x7f, 0xf8, 0x7f, 0xf0, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, /* 225 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 226 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 227 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, -+ 0x70, 0x00, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x01, 0xc0, 0x00, 0xe0, -+ 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x70, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 228 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xfe, 0x3f, 0xfe, 0x78, 0xf0, 0x70, 0x78, -+ 0x70, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 229 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x3c, 0x70, 0x7c, 0x70, 0xfc, -+ 0x7f, 0xdc, 0x7f, 0x9c, 0x70, 0x00, 0x70, 0x00, -+ 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, /* 230 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0xc0, -+ 0x01, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 231 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x1f, 0xf0, 0x3f, 0xf8, 0x7b, 0xbc, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, -+ 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, 0x73, 0x9c, -+ 0x73, 0x9c, 0x7b, 0xbc, 0x3f, 0xf8, 0x1f, 0xf0, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 232 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x77, 0xdc, -+ 0x77, 0xdc, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 233 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xf8, -+ 0x78, 0x3c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x38, 0x38, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, -+ 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 234 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x1f, 0xf0, -+ 0x0e, 0x00, 0x07, 0x00, 0x03, 0x80, 0x01, 0xc0, -+ 0x0f, 0xe0, 0x1f, 0xf0, 0x38, 0x38, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x78, 0x3c, -+ 0x3f, 0xf8, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 235 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf8, -+ 0x7f, 0xfc, 0xe7, 0xce, 0xe3, 0x8e, 0xe3, 0x8e, -+ 0xe3, 0x8e, 0xe3, 0x8e, 0xe7, 0xce, 0x7f, 0xfc, -+ 0x3e, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 236 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, -+ 0x00, 0x38, 0x00, 0x38, 0x0f, 0xf0, 0x1f, 0xf8, -+ 0x38, 0xfc, 0x38, 0xfc, 0x39, 0xdc, 0x39, 0xdc, -+ 0x3b, 0x9c, 0x3b, 0x9c, 0x3f, 0x1c, 0x3f, 0x1c, -+ 0x1f, 0xf8, 0x0f, 0xf0, 0x1c, 0x00, 0x1c, 0x00, -+ 0x38, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 237 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x07, 0xfc, 0x1f, 0xfc, 0x3c, 0x00, -+ 0x38, 0x00, 0x70, 0x00, 0x70, 0x00, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x70, 0x00, 0x70, 0x00, 0x38, 0x00, -+ 0x3c, 0x00, 0x1f, 0xfc, 0x07, 0xfc, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 238 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x1f, 0xf0, -+ 0x3c, 0x78, 0x38, 0x38, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, 0x70, 0x1c, -+ 0x70, 0x1c, 0x70, 0x1c, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 239 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 240 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x7f, 0xfc, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 241 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x01, 0xc0, 0x00, 0xe0, -+ 0x00, 0x70, 0x00, 0x38, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 242 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x70, -+ 0x00, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, -+ 0x0e, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x0e, 0x00, -+ 0x07, 0x00, 0x03, 0x80, 0x01, 0xc0, 0x00, 0xe0, -+ 0x00, 0x70, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, -+ 0x3f, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 243 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x03, 0xfc, -+ 0x03, 0x9c, 0x03, 0x9c, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, /* 244 */ -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x73, 0x80, 0x73, 0x80, -+ 0x7f, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 245 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfc, -+ 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 246 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x1c, -+ 0x7f, 0xbc, 0x7b, 0xfc, 0x70, 0xf8, 0x00, 0x00, -+ 0x00, 0x00, 0x3e, 0x1c, 0x7f, 0xbc, 0x7b, 0xfc, -+ 0x70, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 247 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x0f, 0xe0, 0x1f, 0xf0, 0x1c, 0x70, 0x1c, 0x70, -+ 0x1c, 0x70, 0x1c, 0x70, 0x1f, 0xf0, 0x0f, 0xe0, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 248 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x03, 0xc0, 0x07, 0xe0, 0x07, 0xe0, -+ 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xc0, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 249 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80, -+ 0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 250 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, -+ 0x00, 0x3e, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, -+ 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x70, 0x38, -+ 0x70, 0x38, 0x70, 0x38, 0x78, 0x38, 0x3c, 0x38, -+ 0x1e, 0x38, 0x0f, 0x38, 0x07, 0xb8, 0x03, 0xf8, -+ 0x01, 0xf8, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 251 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x1f, 0xe0, 0x1f, 0xf0, 0x1c, 0x38, 0x1c, 0x38, -+ 0x1c, 0x38, 0x1c, 0x38, 0x1c, 0x38, 0x1c, 0x38, -+ 0x1c, 0x38, 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 252 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe0, -+ 0x1f, 0xf0, 0x1c, 0x70, 0x1c, 0x70, 0x00, 0xe0, -+ 0x01, 0xc0, 0x03, 0x80, 0x07, 0x00, 0x0e, 0x00, -+ 0x1f, 0xf0, 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 253 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x1f, 0xf8, -+ 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, -+ 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, 0x1f, 0xf8, -+ 0x1f, 0xf8, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 254 */ -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 255 */ -+ -+}; -+ -+#endif --- -2.39.1 +2.42.0 -From beb8cc044dd137fbaba24d407b3e3fb73234a1e5 Mon Sep 17 00:00:00 2001 +From ab8ddf81c1442717f6ffddc3460d4e4adbd5b570 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 10 Jan 2022 00:56:36 +0000 -Subject: [PATCH 6/8] efi-selftest: Add international characters test +Subject: [PATCH 2/4] efi-selftest: Add international characters test UEFI relies entirely on unicode output, which actual fonts displayed on the screen might not be ready for. @@ -8682,8 +173,8 @@ glyphs, especially in our builtin fonts. This would be needed to be manually checked on the screen for correctness. -Link: https://lore.kernel.org/u-boot/20220110005638.21599-7-andre.przywara@arm.com/ Signed-off-by: Andre Przywara +Link: https://lore.kernel.org/r/20220110005638.21599-7-andre.przywara@arm.com --- lib/efi_selftest/efi_selftest_textoutput.c | 5 +++++ 1 file changed, 5 insertions(+) @@ -8705,13 +196,13 @@ index cc44b38bc23a..175731ae96b6 100644 return EFI_ST_SUCCESS; -- -2.39.1 +2.42.0 -From aaeacbd370940635de39cdec8d03ebd9566464db Mon Sep 17 00:00:00 2001 +From 48e918c31a46815325ffd7a77eb7a3ffedf8e59c Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 10 Jan 2022 00:56:37 +0000 -Subject: [PATCH 7/8] efi_selftest: Add box drawing character selftest +Subject: [PATCH 3/4] efi_selftest: Add box drawing character selftest UEFI applications rely on Unicode output capability, and might use that for drawing pseudo-graphical interfaces using Unicode defined box @@ -8722,8 +213,8 @@ need to be checked manually on the screen for correctness. To facilitate this, add a three second delay after the output at this point. -Link: https://lore.kernel.org/u-boot/20220110005638.21599-8-andre.przywara@arm.com/ Signed-off-by: Andre Przywara +Link: https://lore.kernel.org/r/20220110005638.21599-8-andre.przywara@arm.com --- lib/efi_selftest/efi_selftest_textoutput.c | 11 +++++++++++ 1 file changed, 11 insertions(+) @@ -8751,13 +242,13 @@ index 175731ae96b6..3c6870f74241 100644 return EFI_ST_SUCCESS; -- -2.39.1 +2.42.0 -From fbb9e26d8c01cf30b8e33bb590bbc0b8cd0e074a Mon Sep 17 00:00:00 2001 +From 407ca7e821aabf240c2602dd0db56d6398a0c03b Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 10 Jan 2022 00:56:38 +0000 -Subject: [PATCH 8/8] video: Convert UTF-8 input stream to the 437 code page +Subject: [PATCH 4/4] video: Convert UTF-8 input stream to the 437 code page The bitmap fonts (VGA 8x16 and friends) we import from Linux use the 437 code page to map their glyphs. For U-Boot's own purposes this is @@ -8769,9 +260,9 @@ respective CP437 code point, as far as the characters defined in there allow this. This includes quite some international and box drawing characters, which are used by UEFI applications. -Link: https://lore.kernel.org/u-boot/20220110005638.21599-9-andre.przywara@arm.com/ Signed-off-by: Andre Przywara -[Alper: Replace CONFIG_DM_VIDEO with CONFIG_VIDEO] +Link: https://lore.kernel.org/r/20220110005638.21599-9-andre.przywara@arm.com +[Alper: Rebase for makefile changes, use $(SPL_TPL_)VIDEO] Signed-off-by: Alper Nebi Yasak --- drivers/video/Makefile | 1 + @@ -8782,17 +273,17 @@ Signed-off-by: Alper Nebi Yasak create mode 100644 drivers/video/utf8_cp437.c diff --git a/drivers/video/Makefile b/drivers/video/Makefile -index 40a871d638e9..8a09b1be7adb 100644 +index d13af9f3b19b..4b1983990aba 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile -@@ -14,6 +14,7 @@ obj-$(CONFIG_DISPLAY) += display-uclass.o +@@ -20,6 +20,7 @@ obj-$(CONFIG_DISPLAY) += display-uclass.o obj-$(CONFIG_VIDEO_MIPI_DSI) += dsi-host-uclass.o - obj-$(CONFIG_VIDEO) += video-uclass.o vidconsole-uclass.o - obj-$(CONFIG_VIDEO) += video_bmp.o -+obj-$(CONFIG_VIDEO) += utf8_cp437.o - obj-$(CONFIG_PANEL) += panel-uclass.o + obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video-uclass.o vidconsole-uclass.o + obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o ++obj-$(CONFIG_$(SPL_TPL_)VIDEO) += utf8_cp437.o + obj-$(CONFIG_$(SPL_TPL_)PANEL) += panel-uclass.o obj-$(CONFIG_PANEL_HX8238D) += hx8238d.o - obj-$(CONFIG_SIMPLE_PANEL) += simple_panel.o + obj-$(CONFIG_$(SPL_TPL_)SIMPLE_PANEL) += simple_panel.o diff --git a/drivers/video/utf8_cp437.c b/drivers/video/utf8_cp437.c new file mode 100644 index 000000000000..cab68b92b6e3 @@ -8969,10 +460,10 @@ index 000000000000..cab68b92b6e3 + return 0; +} diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c -index f458e637004f..f590ab39d5d6 100644 +index a6d994bd637c..a4029a58660b 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c -@@ -491,6 +491,7 @@ static int vidconsole_output_glyph(struct udevice *dev, char ch) +@@ -486,6 +486,7 @@ static int vidconsole_output_glyph(struct udevice *dev, char ch) int vidconsole_put_char(struct udevice *dev, char ch) { struct vidconsole_priv *priv = dev_get_uclass_priv(dev); @@ -8980,7 +471,7 @@ index f458e637004f..f590ab39d5d6 100644 int ret; /* -@@ -532,7 +533,10 @@ int vidconsole_put_char(struct udevice *dev, char ch) +@@ -527,7 +528,10 @@ int vidconsole_put_char(struct udevice *dev, char ch) priv->last_ch = 0; break; default: @@ -8993,7 +484,7 @@ index f458e637004f..f590ab39d5d6 100644 return ret; break; diff --git a/include/video_console.h b/include/video_console.h -index e186e1a0492c..1ef7b442fcca 100644 +index 949abb3861e7..dbfb389f324f 100644 --- a/include/video_console.h +++ b/include/video_console.h @@ -59,6 +59,7 @@ struct vidconsole_priv { @@ -9004,7 +495,7 @@ index e186e1a0492c..1ef7b442fcca 100644 bool cursor_visible; char escape_buf[32]; }; -@@ -306,4 +307,12 @@ static inline int vidconsole_memmove(struct udevice *dev, void *dst, +@@ -457,4 +458,12 @@ static inline int vidconsole_memmove(struct udevice *dev, void *dst, #endif @@ -9018,5 +509,5 @@ index e186e1a0492c..1ef7b442fcca 100644 + #endif -- -2.39.1 +2.42.0 diff --git a/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch b/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch index ee0e7d98..80195dc0 100644 --- a/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch +++ b/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch @@ -1,7 +1,708 @@ -From b4e57b1905d3d8457b09102c7e61ec1e379bec94 Mon Sep 17 00:00:00 2001 +From 60a24786c1c542b2a5967632df15ae14d1385061 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Fri, 18 Aug 2023 13:31:36 +0300 +Subject: [PATCH 01/13] video: test: Split copy frame buffer check into a + function + +While checking frame buffer contents, the video tests also check if the +copy frame buffer contents match the main frame buffer. To test if only +the modified regions are updated after a sync, we will need to create +situations where the two are mismatched. Split this check into another +function that we can skip calling, since we won't want it to error on +those mismatched cases. + +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-2-alpernebiyasak@gmail.com/ +--- + test/dm/video.c | 69 +++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 58 insertions(+), 11 deletions(-) + +diff --git a/test/dm/video.c b/test/dm/video.c +index d907f681600b..641a6250100a 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -55,9 +55,6 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + * size of the compressed data. This provides a pretty good level of + * certainty and the resulting tests need only check a single value. + * +- * If the copy framebuffer is enabled, this compares it to the main framebuffer +- * too. +- * + * @uts: Test state + * @dev: Video device + * Return: compressed size of the frame buffer, or -ve on error +@@ -66,7 +63,6 @@ static int compress_frame_buffer(struct unit_test_state *uts, + struct udevice *dev) + { + struct video_priv *priv = dev_get_uclass_priv(dev); +- struct video_priv *uc_priv = dev_get_uclass_priv(dev); + uint destlen; + void *dest; + int ret; +@@ -82,16 +78,34 @@ static int compress_frame_buffer(struct unit_test_state *uts, + if (ret) + return ret; + +- /* Check here that the copy frame buffer is working correctly */ +- if (IS_ENABLED(CONFIG_VIDEO_COPY)) { +- ut_assertf(!memcmp(uc_priv->fb, uc_priv->copy_fb, +- uc_priv->fb_size), +- "Copy framebuffer does not match fb"); +- } +- + return destlen; + } + ++/** ++ * check_copy_frame_buffer() - Compare main frame buffer to copy ++ * ++ * If the copy frame buffer is enabled, this compares it to the main ++ * frame buffer. Normally they should have the same contents after a ++ * sync. ++ * ++ * @uts: Test state ++ * @dev: Video device ++ * Return: 0, or -ve on error ++ */ ++static int check_copy_frame_buffer(struct unit_test_state *uts, ++ struct udevice *dev) ++{ ++ struct video_priv *priv = dev_get_uclass_priv(dev); ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ return 0; ++ ++ ut_assertf(!memcmp(priv->fb, priv->copy_fb, priv->fb_size), ++ "Copy framebuffer does not match fb"); ++ ++ return 0; ++} ++ + /* + * Call this function at any point to halt and show the current display. Be + * sure to run the test with the -l flag. +@@ -155,24 +169,30 @@ static int dm_test_video_text(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "8x16", 0)); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); + ut_asserteq(79, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -191,24 +211,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "12x22", 0)); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); + ut_asserteq(89, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -226,6 +252,7 @@ static int dm_test_video_chars(struct unit_test_state *uts) + ut_assertok(vidconsole_select_font(con, "8x16", 0)); + vidconsole_put_string(con, test_string); + ut_asserteq(466, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -247,19 +274,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts) + video_clear(con->parent); + video_sync(con->parent, false); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test clear escape sequence: [2J */ + vidconsole_put_string(con, "A\tB\tC"ANSI_ESC"[2J"); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test set-cursor: [%d;%df */ + vidconsole_put_string(con, "abc"ANSI_ESC"[2;2fab"ANSI_ESC"[4;4fcd"); + ut_asserteq(143, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test colors (30-37 fg color, 40-47 bg color) */ + vidconsole_put_string(con, ANSI_ESC"[30;41mfoo"); /* black on red */ + vidconsole_put_string(con, ANSI_ESC"[33;44mbar"); /* yellow on blue */ + ut_asserteq(272, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -292,11 +323,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot, + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "8x16", 0)); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display wrap */ + for (i = 0; i < 120; i++) + vidconsole_put_char(con, 'A' + i % 50); + ut_asserteq(wrap_size, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display scrolling */ + for (i = 0; i < SCROLL_LINES; i++) { +@@ -304,11 +337,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot, + vidconsole_put_char(con, '\n'); + } + ut_asserteq(scroll_size, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* If we scroll enough, the screen becomes blank again */ + for (i = 0; i < SCROLL_LINES; i++) + vidconsole_put_char(con, '\n'); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -383,6 +418,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -402,6 +438,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -425,6 +462,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); + ut_asserteq(3700, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -448,6 +486,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); + ut_asserteq(3656, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -471,6 +510,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); + ut_asserteq(6827, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -489,6 +529,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -505,6 +546,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -524,6 +566,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -543,6 +586,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts) + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -558,6 +602,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); + ut_asserteq(12174, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -579,6 +624,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); + ut_asserteq(34287, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -600,6 +646,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); + ut_asserteq(29471, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +-- +2.42.0 + + +From e441c509aa784328c735c52e0a27a39601049de7 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Sun, 20 Aug 2023 17:46:46 +0300 +Subject: [PATCH 02/13] video: test: Support checking copy frame buffer + contents + +The video tests have a helper function to generate a pseudo-digest of +frame buffer contents, but it only does so for the main one. There is +another check that the copy frame buffer is the same as that. But +neither is enough to test if only the modified regions are copied to the +copy frame buffer, since we will want the two to be different in very +specific ways. + +Add a boolean argument to the existing helper function to indicate which +frame buffer we want to inspect, and update the existing callers. + +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-3-alpernebiyasak@gmail.com/ +--- + test/dm/video.c | 76 ++++++++++++++++++++++++++----------------------- + 1 file changed, 41 insertions(+), 35 deletions(-) + +diff --git a/test/dm/video.c b/test/dm/video.c +index 641a6250100a..b9ff3da10c18 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -57,22 +57,28 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + * + * @uts: Test state + * @dev: Video device ++ * @use_copy: Use copy frame buffer if available + * Return: compressed size of the frame buffer, or -ve on error + */ + static int compress_frame_buffer(struct unit_test_state *uts, +- struct udevice *dev) ++ struct udevice *dev, ++ bool use_copy) + { + struct video_priv *priv = dev_get_uclass_priv(dev); + uint destlen; + void *dest; + int ret; + ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ use_copy = false; ++ + destlen = priv->fb_size; + dest = malloc(priv->fb_size); + if (!dest) + return -ENOMEM; + ret = BZ2_bzBuffToBuffCompress(dest, &destlen, +- priv->fb, priv->fb_size, ++ use_copy ? priv->copy_fb : priv->fb, ++ priv->fb_size, + 3, 0, 0); + free(dest); + if (ret) +@@ -168,30 +174,30 @@ static int dm_test_video_text(struct unit_test_state *uts) + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "8x16", 0)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); +- ut_asserteq(79, compress_frame_buffer(uts, dev)); ++ ut_asserteq(79, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_asserteq(273, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_asserteq(273, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -210,30 +216,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts) + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "12x22", 0)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); +- ut_asserteq(89, compress_frame_buffer(uts, dev)); ++ ut_asserteq(89, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_asserteq(363, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_asserteq(363, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -251,7 +257,7 @@ static int dm_test_video_chars(struct unit_test_state *uts) + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "8x16", 0)); + vidconsole_put_string(con, test_string); +- ut_asserteq(466, compress_frame_buffer(uts, dev)); ++ ut_asserteq(466, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -273,23 +279,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts) + /* reference clear: */ + video_clear(con->parent); + video_sync(con->parent, false); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test clear escape sequence: [2J */ + vidconsole_put_string(con, "A\tB\tC"ANSI_ESC"[2J"); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test set-cursor: [%d;%df */ + vidconsole_put_string(con, "abc"ANSI_ESC"[2;2fab"ANSI_ESC"[4;4fcd"); +- ut_asserteq(143, compress_frame_buffer(uts, dev)); ++ ut_asserteq(143, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test colors (30-37 fg color, 40-47 bg color) */ + vidconsole_put_string(con, ANSI_ESC"[30;41mfoo"); /* black on red */ + vidconsole_put_string(con, ANSI_ESC"[33;44mbar"); /* yellow on blue */ +- ut_asserteq(272, compress_frame_buffer(uts, dev)); ++ ut_asserteq(272, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -322,13 +328,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot, + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + ut_assertok(vidconsole_select_font(con, "8x16", 0)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display wrap */ + for (i = 0; i < 120; i++) + vidconsole_put_char(con, 'A' + i % 50); +- ut_asserteq(wrap_size, compress_frame_buffer(uts, dev)); ++ ut_asserteq(wrap_size, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display scrolling */ +@@ -336,13 +342,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot, + vidconsole_put_char(con, 'A' + i % 50); + vidconsole_put_char(con, '\n'); + } +- ut_asserteq(scroll_size, compress_frame_buffer(uts, dev)); ++ ut_asserteq(scroll_size, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* If we scroll enough, the screen becomes blank again */ + for (i = 0; i < SCROLL_LINES; i++) + vidconsole_put_char(con, '\n'); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -417,7 +423,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1368, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -437,7 +443,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1247, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -461,7 +467,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts) + &src_len)); + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); +- ut_asserteq(3700, compress_frame_buffer(uts, dev)); ++ ut_asserteq(3700, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -485,7 +491,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts) + &src_len)); + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); +- ut_asserteq(3656, compress_frame_buffer(uts, dev)); ++ ut_asserteq(3656, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -509,7 +515,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts) + &src_len)); + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); +- ut_asserteq(6827, compress_frame_buffer(uts, dev)); ++ ut_asserteq(6827, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -528,7 +534,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_asserteq(2024, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -545,7 +551,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx-comp.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1368, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -565,7 +571,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_asserteq(2024, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -585,7 +591,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts) + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); +- ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1247, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -601,7 +607,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts) + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); +- ut_asserteq(12174, compress_frame_buffer(uts, dev)); ++ ut_asserteq(12174, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -623,7 +629,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts) + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); +- ut_asserteq(34287, compress_frame_buffer(uts, dev)); ++ ut_asserteq(34287, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -645,7 +651,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts) + ut_assertok(video_get_nologo(uts, &dev)); + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_put_string(con, test_string); +- ut_asserteq(29471, compress_frame_buffer(uts, dev)); ++ ut_asserteq(29471, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +-- +2.42.0 + + +From 2b431f45d217e3ab454fc719157cb8b78657a129 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Fri, 18 Aug 2023 17:31:27 +0300 +Subject: [PATCH 03/13] video: test: Test partial updates of hardware frame + buffer + +With VIDEO_COPY enabled, only the modified parts of the frame buffer are +intended to be copied to the hardware. Add a test that checks this, by +overwriting contents we prepared without telling the video uclass and +then checking if the overwritten contents have been redrawn on the next +sync. + +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-4-alpernebiyasak@gmail.com/ +--- + test/dm/video.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 54 insertions(+) + +diff --git a/test/dm/video.c b/test/dm/video.c +index b9ff3da10c18..e4bd27a6b76f 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -657,3 +657,57 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts) + return 0; + } + DM_TEST(dm_test_video_truetype_bs, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); ++ ++/* Test partial rendering onto hardware frame buffer */ ++static int dm_test_video_copy(struct unit_test_state *uts) ++{ ++ struct sandbox_sdl_plat *plat; ++ struct video_uc_plat *uc_plat; ++ struct udevice *dev, *con; ++ struct video_priv *priv; ++ const char *test_string = "\n\tCriticism may not be agreeable, but it is necessary.\t"; ++ ulong addr; ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ return -EAGAIN; ++ ++ ut_assertok(uclass_find_first_device(UCLASS_VIDEO, &dev)); ++ ut_assertnonnull(dev); ++ uc_plat = dev_get_uclass_plat(dev); ++ uc_plat->hide_logo = true; ++ plat = dev_get_plat(dev); ++ plat->font_size = 32; ++ ut_assert(!device_active(dev)); ++ ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev)); ++ ut_assertnonnull(dev); ++ priv = dev_get_uclass_priv(dev); ++ ++ ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); ++ ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); ++ ++ ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); ++ vidconsole_put_string(con, "\n\n\n\n\n"); ++ vidconsole_put_string(con, test_string); ++ vidconsole_put_string(con, test_string); ++ ++ ut_asserteq(6678, compress_frame_buffer(uts, dev, false)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); ++ ++ /* ++ * Secretly clear the hardware frame buffer, but in a different ++ * color (black) to see which parts will be overwritten. ++ */ ++ memset(priv->copy_fb, 0, priv->fb_size); ++ ++ /* ++ * We should have the full content on the main buffer, but only ++ * the new content should have been copied to the copy buffer. ++ */ ++ vidconsole_put_string(con, test_string); ++ vidconsole_put_string(con, test_string); ++ ut_asserteq(7589, compress_frame_buffer(uts, dev, false)); ++ ut_asserteq(5278, compress_frame_buffer(uts, dev, true)); ++ ++ return 0; ++} ++DM_TEST(dm_test_video_copy, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); +-- +2.42.0 + + +From 5aea7d8d14de93dcd33acc2bc19d9de942b6d8cd Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:15 +0200 -Subject: [PATCH 1/7] dm: video: Add damage tracking API +Subject: [PATCH 04/13] dm: video: Add damage tracking API We are going to introduce image damage tracking to fasten up screen refresh on large displays. This patch adds damage tracking for up to @@ -9,35 +710,36 @@ one rectangle of the screen which is typically enough to hold blt or text print updates. Callers into this API and a reduced dcache flush code path will follow in later patches. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-2-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue -[Alper: Remove depends on CONFIG_DM_VIDEO, replaced by if VIDEO] +[Alper: Use xstart/yend, document new fields, return void from + video_damage(), declare priv, drop headers, use IS_ENABLED()] +Co-developed-by: Alper Nebi Yasak Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-5-alpernebiyasak@gmail.com/ --- - drivers/video/Kconfig | 14 ++++++++++++ - drivers/video/video-uclass.c | 41 ++++++++++++++++++++++++++++++++++++ - include/video.h | 29 +++++++++++++++++++++++-- - 3 files changed, 82 insertions(+), 2 deletions(-) + drivers/video/Kconfig | 13 ++++++++++++ + drivers/video/video-uclass.c | 41 +++++++++++++++++++++++++++++++++--- + include/video.h | 32 ++++++++++++++++++++++++++-- + 3 files changed, 81 insertions(+), 5 deletions(-) diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig -index c841b99bb30d..4a27fac2466d 100644 +index 69f4809cf4a6..db531d7caae0 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig -@@ -62,6 +62,20 @@ config VIDEO_COPY +@@ -92,6 +92,19 @@ config VIDEO_COPY To use this, your video driver must set @copy_base in struct video_uc_plat. +config VIDEO_DAMAGE + bool "Enable damage tracking of frame buffer regions" -+ default y if ARM && !SYS_DCACHE_OFF + help + On some machines (most ARM), the display frame buffer resides in + RAM. To make the display controller pick up screen updates, we + have to flush frame buffer contents from CPU caches into RAM which + can be a slow operation. + -+ This patch adds damage tracking to collect information about regions ++ This feature adds damage tracking to collect information about regions + that received updates. When we want to sync, we then only flush + regions of the frame buffer that were modified before, speeding up + screen refreshes significantly. @@ -46,82 +748,110 @@ index c841b99bb30d..4a27fac2466d 100644 bool "Generic PWM based Backlight Driver" depends on BACKLIGHT && DM_PWM diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c -index 0ce376ca3f14..48a053841e42 100644 +index f743ed74c818..9888a580bfd3 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c -@@ -21,6 +21,8 @@ - #include - #include - #include -+#include -+#include - #ifdef CONFIG_SANDBOX - #include - #endif -@@ -254,6 +256,45 @@ void video_set_default_colors(struct udevice *dev, bool invert) +@@ -351,9 +351,39 @@ void video_set_default_colors(struct udevice *dev, bool invert) priv->colour_bg = video_index_to_colour(priv, back); } +/* Notify about changes in the frame buffer */ -+int video_damage(struct udevice *vid, int x, int y, int width, int height) ++void video_damage(struct udevice *vid, int x, int y, int width, int height) +{ + struct video_priv *priv = dev_get_uclass_priv(vid); -+ int endx = x + width; -+ int endy = y + height; ++ int xend = x + width; ++ int yend = y + height; + -+ if (!CONFIG_IS_ENABLED(VIDEO_DAMAGE)) -+ return 0; ++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) ++ return; + + if (x > priv->xsize) -+ return 0; ++ return; + + if (y > priv->ysize) -+ return 0; ++ return; + -+ if (endx > priv->xsize) -+ endx = priv->xsize; -+ -+ if (endy > priv->ysize) -+ endy = priv->ysize; -+ -+ if (priv->damage.endx && priv->damage.endy) { -+ /* Span a rectangle across all old and new damage */ -+ priv->damage.x = min(x, priv->damage.x); -+ priv->damage.y = min(y, priv->damage.y); -+ priv->damage.endx = max(endx, priv->damage.endx); -+ priv->damage.endy = max(endy, priv->damage.endy); -+ } else { -+ /* First damage, setting the rectangle to span it */ -+ priv->damage.x = x; -+ priv->damage.y = y; -+ priv->damage.endx = endx; -+ priv->damage.endy = endy; -+ } ++ if (xend > priv->xsize) ++ xend = priv->xsize; + -+ return 0; ++ if (yend > priv->ysize) ++ yend = priv->ysize; ++ ++ /* Span a rectangle across all old and new damage */ ++ priv->damage.xstart = min(x, priv->damage.xstart); ++ priv->damage.ystart = min(y, priv->damage.ystart); ++ priv->damage.xend = max(xend, priv->damage.xend); ++ priv->damage.yend = max(yend, priv->damage.yend); +} + /* Flush video activity to the caches */ int video_sync(struct udevice *vid, bool force) { ++ struct video_priv *priv = dev_get_uclass_priv(vid); + struct video_ops *ops = video_get_ops(vid); + int ret; + +@@ -369,15 +399,12 @@ int video_sync(struct udevice *vid, bool force) + * out whether it exists? For now, ARM is safe. + */ + #if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) +- struct video_priv *priv = dev_get_uclass_priv(vid); +- + if (priv->flush_dcache) { + flush_dcache_range((ulong)priv->fb, + ALIGN((ulong)priv->fb + priv->fb_size, + CONFIG_SYS_CACHELINE_SIZE)); + } + #elif defined(CONFIG_VIDEO_SANDBOX_SDL) +- struct video_priv *priv = dev_get_uclass_priv(vid); + static ulong last_sync; + + if (force || get_timer(last_sync) > 100) { +@@ -385,6 +412,14 @@ int video_sync(struct udevice *vid, bool force) + last_sync = get_timer(0); + } + #endif ++ ++ if (IS_ENABLED(CONFIG_VIDEO_DAMAGE)) { ++ priv->damage.xstart = priv->xsize; ++ priv->damage.ystart = priv->ysize; ++ priv->damage.xend = 0; ++ priv->damage.yend = 0; ++ } ++ + return 0; + } + diff --git a/include/video.h b/include/video.h -index 43f2e2c02f0f..4b35e97f79ef 100644 +index 16f7a83f8d50..307e954db828 100644 --- a/include/video.h +++ b/include/video.h -@@ -109,6 +109,12 @@ struct video_priv { +@@ -85,6 +85,11 @@ enum video_format { + * @fb_size: Frame buffer size + * @copy_fb: Copy of the frame buffer to keep up to date; see struct + * video_uc_plat ++ * @damage: A bounding box of framebuffer regions updated since last sync ++ * @damage.xstart: X start position in pixels from the left ++ * @damage.ystart: Y start position in pixels from the top ++ * @damage.xend: X end position in pixels from the left ++ * @damage.xend: Y end position in pixels from the top + * @line_length: Length of each frame buffer line, in bytes. This can be + * set by the driver, but if not, the uclass will set it after + * probing +@@ -112,6 +117,12 @@ struct video_priv { void *fb; int fb_size; void *copy_fb; + struct { -+ int x; -+ int y; -+ int endx; -+ int endy; ++ int xstart; ++ int ystart; ++ int xend; ++ int yend; + } damage; int line_length; u32 colour_fg; u32 colour_bg; -@@ -211,8 +217,9 @@ int video_fill(struct udevice *dev, u32 colour); +@@ -254,8 +265,9 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, * @return: 0 on success, error code otherwise * * Some frame buffers are cached or have a secondary frame buffer. This @@ -133,7 +863,7 @@ index 43f2e2c02f0f..4b35e97f79ef 100644 */ int video_sync(struct udevice *vid, bool force); -@@ -332,6 +339,24 @@ static inline int video_sync_copy_all(struct udevice *dev) +@@ -375,6 +387,22 @@ static inline int video_sync_copy_all(struct udevice *dev) #endif @@ -146,42 +876,51 @@ index 43f2e2c02f0f..4b35e97f79ef 100644 + * @width: Width of the damaged rectangle + * @height: Height of the damaged rectangle + * -+ * @return: 0 -+ * + * Some frame buffers are cached or have a secondary frame buffer. This + * function notifies the video subsystem about rectangles that were updated + * within the frame buffer. They may only get written to the screen on the + * next call to video_sync(). + */ -+int video_damage(struct udevice *vid, int x, int y, int width, int height); ++void video_damage(struct udevice *vid, int x, int y, int width, int height); + /** * video_is_active() - Test if one video device it active * -- -2.39.1 +2.42.0 -From 58484b3194d23f8b2f850aa598f007239a0e36bf Mon Sep 17 00:00:00 2001 +From 9d61d286be0e696a719af0c25a60d31482ee152c Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:16 +0200 -Subject: [PATCH 2/7] dm: video: Add damage notification on display clear +Subject: [PATCH 05/13] dm: video: Add damage notification on display fills -Let's report the video damage when we clear the screen. This +Let's report the video damage when we fill parts of the screen. This way we can later lazily flush only relevant regions to hardware. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-3-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue +[Alper: Move from video_clear() to video_fill(), video_fill_part()] +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-6-alpernebiyasak@gmail.com/ --- - drivers/video/video-uclass.c | 2 ++ - 1 file changed, 2 insertions(+) + drivers/video/video-uclass.c | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c -index 48a053841e42..f1fbeaadcbba 100644 +index 9888a580bfd3..09172f1f7f45 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c -@@ -160,6 +160,8 @@ int video_fill(struct udevice *dev, u32 colour) +@@ -203,6 +203,8 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, + if (ret) + return ret; + ++ video_damage(dev, xstart, ystart, xend - xstart, yend - ystart); ++ + return 0; + } + +@@ -249,6 +251,8 @@ int video_fill(struct udevice *dev, u32 colour) if (ret) return ret; @@ -191,193 +930,202 @@ index 48a053841e42..f1fbeaadcbba 100644 } -- -2.39.1 +2.42.0 -From 289e75fc23c203a7aead1a8cdf51c8d710d7242e Mon Sep 17 00:00:00 2001 +From 599159f0d1678a473211a2beda302d12ac64bf5c Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:17 +0200 -Subject: [PATCH 3/7] vidconsole: Add damage notifications to all vidconsole +Subject: [PATCH 06/13] vidconsole: Add damage notifications to all vidconsole drivers Now that we have a damage tracking API, let's populate damage done by vidconsole drivers. We try to declare as little memory as damaged as -possible, with the exception of rotated screens that I couldn't get my -head wrapped around. On those, we revert to the old behavior and mark -the full screen as damaged on every update. +possible. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-4-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue -[Alper: Fix priv->baseline to met->baseline] +[Alper: Rebase for met->baseline, fontdata->height/width, make rotated + console_putc_xy() damages pass tests, edit patch message] +Co-developed-by: Alper Nebi Yasak Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-7-alpernebiyasak@gmail.com/ --- - drivers/video/console_normal.c | 10 ++++++ + drivers/video/console_normal.c | 18 +++++++++++ drivers/video/console_rotate.c | 54 ++++++++++++++++++++++++++++++++ - drivers/video/console_truetype.c | 15 +++++++++ - 3 files changed, 79 insertions(+) + drivers/video/console_truetype.c | 21 +++++++++++++ + drivers/video/video-uclass.c | 1 + + 4 files changed, 94 insertions(+) diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c -index 9f552d02b308..e32fb23e3f9f 100644 +index 413c7abee9e1..a19ce6a2bc11 100644 --- a/drivers/video/console_normal.c +++ b/drivers/video/console_normal.c -@@ -60,6 +60,9 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr) +@@ -39,6 +39,12 @@ static int console_set_row(struct udevice *dev, uint row, int clr) if (ret) return ret; -+ video_damage(dev->parent, 0, VIDEO_FONT_HEIGHT * row, vid_priv->xsize, -+ VIDEO_FONT_HEIGHT); ++ video_damage(dev->parent, ++ 0, ++ fontdata->height * row, ++ vid_priv->xsize, ++ fontdata->height); + return 0; } -@@ -79,6 +82,9 @@ static int console_normal_move_rows(struct udevice *dev, uint rowdst, +@@ -60,6 +66,12 @@ static int console_move_rows(struct udevice *dev, uint rowdst, if (ret) return ret; -+ video_damage(dev->parent, 0, VIDEO_FONT_HEIGHT * rowdst, vid_priv->xsize, -+ VIDEO_FONT_HEIGHT * count); ++ video_damage(dev->parent, ++ 0, ++ fontdata->height * rowdst, ++ vid_priv->xsize, ++ fontdata->height * count); + return 0; } -@@ -158,6 +164,10 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - } - line += vid_priv->line_length; - } -+ -+ video_damage(dev->parent, VID_TO_PIXEL(x_frac), y, VIDEO_FONT_WIDTH, -+ VIDEO_FONT_HEIGHT); +@@ -90,6 +102,12 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, char ch) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ x, ++ y, ++ fontdata->width, ++ fontdata->height); + ret = vidconsole_sync_copy(dev, start, line); if (ret) return ret; diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c -index 36c8d0609d87..56e20bb4f32e 100644 +index 65358a1c6e74..6c3e7c1bb8dc 100644 --- a/drivers/video/console_rotate.c +++ b/drivers/video/console_rotate.c -@@ -57,6 +57,12 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) +@@ -36,6 +36,12 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) if (ret) return ret; + video_damage(dev->parent, -+ vid_priv->xsize - ((row + 1) * VIDEO_FONT_HEIGHT), ++ vid_priv->xsize - ((row + 1) * fontdata->height), + 0, -+ VIDEO_FONT_HEIGHT, ++ fontdata->height, + vid_priv->ysize); + return 0; } -@@ -83,6 +89,12 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, +@@ -64,6 +70,12 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, dst += vid_priv->line_length; } + video_damage(dev->parent, -+ vid_priv->xsize - ((rowdst + count) * VIDEO_FONT_HEIGHT), ++ vid_priv->xsize - ((rowdst + count) * fontdata->height), + 0, -+ count * VIDEO_FONT_HEIGHT, ++ count * fontdata->height, + vid_priv->ysize); + return 0; } -@@ -150,6 +162,12 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch) +@@ -96,6 +108,12 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch) if (ret) return ret; + video_damage(dev->parent, -+ vid_priv->xsize - y - VIDEO_FONT_HEIGHT - 1, ++ vid_priv->xsize - y - fontdata->height, + linenum - 1, -+ VIDEO_FONT_HEIGHT, -+ VIDEO_FONT_WIDTH); ++ fontdata->height, ++ fontdata->width); + - return VID_TO_POS(VIDEO_FONT_WIDTH); + return VID_TO_POS(fontdata->width); } -@@ -199,6 +217,12 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) +@@ -121,6 +139,12 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) if (ret) return ret; + video_damage(dev->parent, + 0, -+ vid_priv->ysize - (row + 1) * VIDEO_FONT_HEIGHT, ++ vid_priv->ysize - (row + 1) * fontdata->height, + vid_priv->xsize, -+ VIDEO_FONT_HEIGHT); ++ fontdata->height); + return 0; } -@@ -218,6 +242,12 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, +@@ -142,6 +166,12 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, vidconsole_memmove(dev, dst, src, - VIDEO_FONT_HEIGHT * vid_priv->line_length * count); + fontdata->height * vid_priv->line_length * count); + video_damage(dev->parent, + 0, -+ vid_priv->ysize - (rowdst + count) * VIDEO_FONT_HEIGHT, ++ vid_priv->ysize - (rowdst + count) * fontdata->height, + vid_priv->xsize, -+ count * VIDEO_FONT_HEIGHT); ++ count * fontdata->height); + return 0; } -@@ -288,6 +318,12 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch) +@@ -174,6 +204,12 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch) if (ret) return ret; + video_damage(dev->parent, -+ x - VIDEO_FONT_WIDTH, -+ linenum - VIDEO_FONT_HEIGHT + 1, -+ VIDEO_FONT_WIDTH, -+ VIDEO_FONT_HEIGHT); ++ x - fontdata->width + 1, ++ linenum - fontdata->height + 1, ++ fontdata->width, ++ fontdata->height); + - return VID_TO_POS(VIDEO_FONT_WIDTH); + return VID_TO_POS(fontdata->width); } -@@ -335,6 +371,12 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) +@@ -198,6 +234,12 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) if (ret) return ret; + video_damage(dev->parent, -+ row * VIDEO_FONT_HEIGHT, ++ row * fontdata->height, + 0, -+ VIDEO_FONT_HEIGHT, ++ fontdata->height, + vid_priv->ysize); + return 0; } -@@ -359,6 +401,12 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc, +@@ -224,6 +266,12 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc, dst += vid_priv->line_length; } + video_damage(dev->parent, -+ rowdst * VIDEO_FONT_HEIGHT, ++ rowdst * fontdata->height, + 0, -+ count * VIDEO_FONT_HEIGHT, ++ count * fontdata->height, + vid_priv->ysize); + return 0; } -@@ -424,6 +472,12 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch) +@@ -255,6 +303,12 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch) if (ret) return ret; + video_damage(dev->parent, + y, -+ x - VIDEO_FONT_WIDTH + 1, -+ VIDEO_FONT_HEIGHT, -+ VIDEO_FONT_WIDTH); ++ linenum - fontdata->width + 1, ++ fontdata->height, ++ fontdata->width); + - return VID_TO_POS(VIDEO_FONT_WIDTH); + return VID_TO_POS(fontdata->width); } diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c -index 6859c9fa1163..5b90a0f91415 100644 +index 0f9bb49e44f7..0adbf9cc3d67 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c -@@ -145,6 +145,7 @@ struct console_tt_priv { +@@ -178,6 +178,7 @@ struct console_tt_priv { static int console_truetype_set_row(struct udevice *dev, uint row, int clr) { struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); @@ -385,17 +1133,20 @@ index 6859c9fa1163..5b90a0f91415 100644 struct console_tt_priv *priv = dev_get_priv(dev); struct console_tt_metrics *met = priv->cur_met; void *end, *line; -@@ -188,6 +189,9 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) +@@ -221,6 +222,12 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) if (ret) return ret; -+ video_damage(dev->parent, 0, vc_priv->y_charsize * row, vid_priv->xsize, ++ video_damage(dev->parent, ++ 0, ++ vc_priv->y_charsize * row, ++ vid_priv->xsize, + vc_priv->y_charsize); + return 0; } -@@ -195,6 +199,7 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, +@@ -228,6 +235,7 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, uint rowsrc, uint count) { struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); @@ -403,61 +1154,167 @@ index 6859c9fa1163..5b90a0f91415 100644 struct console_tt_priv *priv = dev_get_priv(dev); struct console_tt_metrics *met = priv->cur_met; void *dst; -@@ -213,6 +218,9 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, +@@ -246,6 +254,12 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, for (i = 0; i < priv->pos_ptr; i++) priv->pos[i].ypos -= diff; -+ video_damage(dev->parent, 0, vc_priv->y_charsize * rowdst, vid_priv->xsize, ++ video_damage(dev->parent, ++ 0, ++ vc_priv->y_charsize * rowdst, ++ vid_priv->xsize, + vc_priv->y_charsize * count); + return 0; } -@@ -370,6 +378,10 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, +@@ -403,6 +417,13 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, line += vid_priv->line_length; } + -+ video_damage(dev->parent, VID_TO_PIXEL(x) + xoff, -+ y + met->baseline + yoff, width, height); ++ video_damage(dev->parent, ++ VID_TO_PIXEL(x) + xoff, ++ y + met->baseline + yoff, ++ width, ++ height); + ret = vidconsole_sync_copy(dev, start, line); if (ret) return ret; -@@ -437,6 +449,9 @@ static int console_truetype_erase(struct udevice *dev, int xstart, int ystart, +diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c +index 09172f1f7f45..06e344f415ce 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -199,6 +199,7 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, } - line += vid_priv->line_length; + line += priv->line_length; } + -+ video_damage(dev->parent, xstart, ystart, xend - xstart, yend - ystart); -+ - ret = vidconsole_sync_copy(dev, start, line); + ret = video_sync_copy(dev, start, line); if (ret) return ret; -- -2.39.1 +2.42.0 + + +From 4946d75efb4a6b4ff1c2ec306cb7509e98c24c17 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Fri, 18 Aug 2023 17:55:08 +0300 +Subject: [PATCH 07/13] video: test: Test video damage tracking via vidconsole + +With VIDEO_DAMAGE, the video uclass tracks updated regions of the frame +buffer in order to avoid unnecessary work during a video sync. Enable +the config in sandbox and add a test for it, by printing strings at a +few locations and checking the tracked region. + +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-8-alpernebiyasak@gmail.com/ +--- + configs/sandbox_defconfig | 1 + + test/dm/video.c | 56 +++++++++++++++++++++++++++++++++++++++ + 2 files changed, 57 insertions(+) + +diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig +index 62bc182ca161..d26659ff0a0b 100644 +--- a/configs/sandbox_defconfig ++++ b/configs/sandbox_defconfig +@@ -307,6 +307,7 @@ CONFIG_USB_ETH_CDC=y + CONFIG_VIDEO=y + CONFIG_VIDEO_FONT_SUN12X22=y + CONFIG_VIDEO_COPY=y ++CONFIG_VIDEO_DAMAGE=y + CONFIG_CONSOLE_ROTATION=y + CONFIG_CONSOLE_TRUETYPE=y + CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y +diff --git a/test/dm/video.c b/test/dm/video.c +index e4bd27a6b76f..8c7d9800a42e 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -711,3 +711,59 @@ static int dm_test_video_copy(struct unit_test_state *uts) + return 0; + } + DM_TEST(dm_test_video_copy, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); ++ ++/* Test video damage tracking */ ++static int dm_test_video_damage(struct unit_test_state *uts) ++{ ++ struct sandbox_sdl_plat *plat; ++ struct udevice *dev, *con; ++ struct video_priv *priv; ++ const char *test_string_1 = "Criticism may not be agreeable, "; ++ const char *test_string_2 = "but it is necessary."; ++ const char *test_string_3 = "It fulfils the same function as pain in the human body."; ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) ++ return -EAGAIN; ++ ++ ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev)); ++ ut_assert(!device_active(dev)); ++ plat = dev_get_plat(dev); ++ plat->font_size = 32; ++ ++ ut_assertok(video_get_nologo(uts, &dev)); ++ ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); ++ priv = dev_get_uclass_priv(dev); ++ ++ vidconsole_position_cursor(con, 14, 10); ++ vidconsole_put_string(con, test_string_2); ++ ut_asserteq(449, priv->damage.xstart); ++ ut_asserteq(325, priv->damage.ystart); ++ ut_asserteq(661, priv->damage.xend); ++ ut_asserteq(350, priv->damage.yend); ++ ++ vidconsole_position_cursor(con, 7, 5); ++ vidconsole_put_string(con, test_string_1); ++ ut_asserteq(225, priv->damage.xstart); ++ ut_asserteq(164, priv->damage.ystart); ++ ut_asserteq(661, priv->damage.xend); ++ ut_asserteq(350, priv->damage.yend); ++ ++ vidconsole_position_cursor(con, 21, 15); ++ vidconsole_put_string(con, test_string_3); ++ ut_asserteq(225, priv->damage.xstart); ++ ut_asserteq(164, priv->damage.ystart); ++ ut_asserteq(1280, priv->damage.xend); ++ ut_asserteq(510, priv->damage.yend); ++ ++ video_sync(dev, false); ++ ut_asserteq(priv->xsize, priv->damage.xstart); ++ ut_asserteq(priv->ysize, priv->damage.ystart); ++ ut_asserteq(0, priv->damage.xend); ++ ut_asserteq(0, priv->damage.yend); ++ ++ ut_asserteq(7339, compress_frame_buffer(uts, dev, false)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); ++ ++ return 0; ++} ++DM_TEST(dm_test_video_damage, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); +-- +2.42.0 -From 2b0c183bd2440bf110c419cb161ce2d19d75db8a Mon Sep 17 00:00:00 2001 +From a8073a8ba8a35600302ad6430977c766869f1605 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:18 +0200 -Subject: [PATCH 4/7] video: Add damage notification on bmp display +Subject: [PATCH 08/13] video: Add damage notification on bmp display Let's report the video damage when we draw a bitmap on the screen. This way we can later lazily flush only relevant regions to hardware. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-5-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue +Reviewed-by: Simon Glass +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-9-alpernebiyasak@gmail.com/ --- drivers/video/video_bmp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c -index 6188a13e44e4..7dc5b011a8af 100644 +index 45f003c8251a..10943b9ca19f 100644 --- a/drivers/video/video_bmp.c +++ b/drivers/video/video_bmp.c -@@ -424,6 +424,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, +@@ -460,6 +460,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, break; }; @@ -467,31 +1324,40 @@ index 6188a13e44e4..7dc5b011a8af 100644 fb = (uchar *)(priv->fb + y * priv->line_length + x * bpix / 8); ret = video_sync_copy(dev, start, fb); -- -2.39.1 +2.42.0 -From 48fffb757ef690fc5072e1c05226178cfef1b69a Mon Sep 17 00:00:00 2001 +From 210faf6dd92d4d7647cec88aa5affddf74c35fcb Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:19 +0200 -Subject: [PATCH 5/7] efi_loader: GOP: Add damage notification on BLT +Subject: [PATCH 09/13] efi_loader: GOP: Add damage notification on BLT Now that we have a damage tracking API, let's populate damage done by UEFI payloads when they BLT data onto the screen. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-6-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue -[Alper: Remove #ifdef DM_VIDEO context, replace DM_VIDEO with VIDEO] +Reviewed-by: Heinrich Schuchardt +[Alper: Add struct comment for new member] Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-10-alpernebiyasak@gmail.com/ --- - lib/efi_loader/efi_gop.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + lib/efi_loader/efi_gop.c | 7 +++++++ + 1 file changed, 7 insertions(+) diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c -index d1dc2f22d0f7..8e7f13bccfee 100644 +index 778b693f983a..db6535e080c4 100644 --- a/lib/efi_loader/efi_gop.c +++ b/lib/efi_loader/efi_gop.c -@@ -32,6 +32,7 @@ struct efi_gop_obj { +@@ -24,6 +24,7 @@ static const efi_guid_t efi_gop_guid = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID; + * @ops: graphical output protocol interface + * @info: graphical output mode information + * @mode: graphical output mode ++ * @vdev: backing video device + * @bpix: bits per pixel + * @fb: frame buffer + */ +@@ -32,6 +33,7 @@ struct efi_gop_obj { struct efi_gop ops; struct efi_gop_mode_info info; struct efi_gop_mode mode; @@ -499,26 +1365,25 @@ index d1dc2f22d0f7..8e7f13bccfee 100644 /* Fields we only have access to during init */ u32 bpix; void *fb; -@@ -243,6 +244,9 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this, +@@ -120,6 +122,7 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this, + u32 *fb32 = gopobj->fb; + u16 *fb16 = gopobj->fb; + struct efi_gop_pixel *buffer = __builtin_assume_aligned(bufferp, 4); ++ bool blt_to_video = (operation != EFI_BLT_VIDEO_TO_BLT_BUFFER); + + if (delta) { + /* Check for 4 byte alignment */ +@@ -243,6 +246,9 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this, dlineoff += dwidth; } -+ if (IS_ENABLED(CONFIG_VIDEO)) ++ if (blt_to_video) + video_damage(gopobj->vdev, dx, dy, width, height); + return EFI_SUCCESS; } -@@ -468,7 +472,7 @@ efi_status_t efi_gop_register(void) - u64 fb_base, fb_size; - void *fb; - efi_status_t ret; -- struct udevice *vdev; -+ struct udevice *vdev = NULL; - struct video_priv *priv; - - /* We only support a single video output device for now */ -@@ -547,6 +551,7 @@ efi_status_t efi_gop_register(void) +@@ -548,6 +554,7 @@ efi_status_t efi_gop_register(void) gopobj->info.pixels_per_scanline = col; gopobj->bpix = bpix; gopobj->fb = fb; @@ -527,32 +1392,35 @@ index d1dc2f22d0f7..8e7f13bccfee 100644 return EFI_SUCCESS; } -- -2.39.1 +2.42.0 -From 28c2a50ea9f9402de67ce4830814e428f002e66b Mon Sep 17 00:00:00 2001 +From 95c2109f13e9457961745193cae222523366d810 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:20 +0200 -Subject: [PATCH 6/7] video: Only dcache flush damaged lines +Subject: [PATCH 10/13] video: Only dcache flush damaged lines Now that we have a damage area tells us which parts of the frame buffer actually need updating, let's only dcache flush those on video_sync() calls. With this optimization in place, frame buffer updates - especially on large screen such as 4k displays - speed up significantly. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-7-agraf@csgraf.de/ Signed-off-by: Alexander Graf Reported-by: Da Xue +[Alper: Use damage.xstart/yend, IS_ENABLED()] +Co-developed-by: Alper Nebi Yasak +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-11-alpernebiyasak@gmail.com/ --- - drivers/video/video-uclass.c | 51 ++++++++++++++++++++++++++++++------ - 1 file changed, 43 insertions(+), 8 deletions(-) + drivers/video/video-uclass.c | 41 +++++++++++++++++++++++++++++++----- + 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c -index f1fbeaadcbba..bf93f524c7a0 100644 +index 06e344f415ce..ac2141892bf7 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c -@@ -297,9 +297,45 @@ int video_damage(struct udevice *vid, int x, int y, int width, int height) - return 0; +@@ -385,6 +385,41 @@ void video_damage(struct udevice *vid, int x, int y, int width, int height) + priv->damage.yend = max(yend, priv->damage.yend); } +#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) @@ -563,7 +1431,7 @@ index f1fbeaadcbba..bf93f524c7a0 100644 + if (!priv->flush_dcache) + return; + -+ if (!CONFIG_IS_ENABLED(VIDEO_DAMAGE)) { ++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) { + flush_dcache_range((ulong)priv->fb, + ALIGN((ulong)priv->fb + priv->fb_size, + CONFIG_SYS_CACHELINE_SIZE)); @@ -571,12 +1439,12 @@ index f1fbeaadcbba..bf93f524c7a0 100644 + return; + } + -+ if (priv->damage.endx && priv->damage.endy) { -+ int lstart = priv->damage.x * VNBYTES(priv->bpix); -+ int lend = priv->damage.endx * VNBYTES(priv->bpix); ++ if (priv->damage.xend && priv->damage.yend) { ++ int lstart = priv->damage.xstart * VNBYTES(priv->bpix); ++ int lend = priv->damage.xend * VNBYTES(priv->bpix); + int y; + -+ for (y = priv->damage.y; y < priv->damage.endy; y++) { ++ for (y = priv->damage.ystart; y < priv->damage.yend; y++) { + ulong fb = (ulong)priv->fb; + ulong start = fb + (y * priv->line_length) + lstart; + ulong end = start + lend - lstart; @@ -593,16 +1461,10 @@ index f1fbeaadcbba..bf93f524c7a0 100644 /* Flush video activity to the caches */ int video_sync(struct udevice *vid, bool force) { -+ struct video_priv *priv = dev_get_uclass_priv(vid); - struct video_ops *ops = video_get_ops(vid); - int ret; - -@@ -315,15 +351,8 @@ int video_sync(struct udevice *vid, bool force) +@@ -404,11 +439,7 @@ int video_sync(struct udevice *vid, bool force) * out whether it exists? For now, ARM is safe. */ #if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) -- struct video_priv *priv = dev_get_uclass_priv(vid); -- - if (priv->flush_dcache) { - flush_dcache_range((ulong)priv->fb, - ALIGN((ulong)priv->fb + priv->fb_size, @@ -610,33 +1472,18 @@ index f1fbeaadcbba..bf93f524c7a0 100644 - } + video_flush_dcache(vid); #elif defined(CONFIG_VIDEO_SANDBOX_SDL) -- struct video_priv *priv = dev_get_uclass_priv(vid); static ulong last_sync; - if (force || get_timer(last_sync) > 100) { -@@ -331,6 +360,12 @@ int video_sync(struct udevice *vid, bool force) - last_sync = get_timer(0); - } - #endif -+ -+ if (CONFIG_IS_ENABLED(VIDEO_DAMAGE)) { -+ priv->damage.endx = 0; -+ priv->damage.endy = 0; -+ } -+ - return 0; - } - -- -2.39.1 +2.42.0 -From 2b45c07c47f3765e3a04016b4618aa7a986d6ec0 Mon Sep 17 00:00:00 2001 +From d4c117c2455f2df8fa224ec603f2749219c72243 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Fri, 10 Jun 2022 00:59:21 +0200 -Subject: [PATCH 7/7] video: Use VIDEO_DAMAGE for VIDEO_COPY +Subject: [PATCH 11/13] video: Use VIDEO_DAMAGE for VIDEO_COPY -CONFIG_VIDEO_COPY implemented a range based copying mechanism: If we +CONFIG_VIDEO_COPY implemented a range-based copying mechanism: If we print a single character, it will always copy the full range of bytes from the top left corner of the character to the lower right onto the uncached frame buffer. This includes pretty much the full line contents @@ -647,111 +1494,53 @@ the amount of data we need to copy. With this patch applied, we will only copy the tiny rectangle surrounding characters when we print them, speeding up the video console. -As a bonus, we remove a lot of code. +After this, changes to the main frame buffer are not immediately copied +to the copy frame buffer, but postponed until the next video device +sync. So issue an explicit sync before inspecting the copy frame buffer +contents for the video tests. -Link: https://lore.kernel.org/u-boot/20220609225921.62462-8-agraf@csgraf.de/ Signed-off-by: Alexander Graf -[Alper: Fix DM_VIDEO, met->font_size, memmove(dev, video.h conflict] +[Alper: Rebase for fontdata->height/w, fill_part(), fix memmove(dev), + drop from defconfig, use damage.xstart/yend, use IS_ENABLED(), + call video_sync() before copy_fb check, update video_copy test] +Co-developed-by: Alper Nebi Yasak Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-12-alpernebiyasak@gmail.com/ --- - configs/chromebook_coral_defconfig | 1 + - configs/chromebook_link_defconfig | 1 + - configs/chromebook_samus_defconfig | 1 + - configs/minnowmax_defconfig | 1 + - configs/sandbox_defconfig | 1 + - configs/xilinx_zynqmp_virt_defconfig | 1 + - drivers/video/Kconfig | 7 ++- - drivers/video/console_normal.c | 14 +---- - drivers/video/console_rotate.c | 37 ++--------- - drivers/video/console_truetype.c | 22 ++----- - drivers/video/vidconsole-uclass.c | 16 ----- - drivers/video/video-uclass.c | 91 ++++++++-------------------- - drivers/video/video_bmp.c | 7 --- - include/video.h | 37 ----------- - include/video_console.h | 49 --------------- - 15 files changed, 46 insertions(+), 240 deletions(-) - -diff --git a/configs/chromebook_coral_defconfig b/configs/chromebook_coral_defconfig -index 45905c6792b8..6a299196ba47 100644 ---- a/configs/chromebook_coral_defconfig -+++ b/configs/chromebook_coral_defconfig -@@ -117,6 +117,7 @@ CONFIG_USB_XHCI_HCD=y - CONFIG_USB_STORAGE=y - CONFIG_USB_KEYBOARD=y - CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y - CONFIG_FS_CBFS=y - CONFIG_SPL_FS_CBFS=y - CONFIG_FAT_WRITE=y -diff --git a/configs/chromebook_link_defconfig b/configs/chromebook_link_defconfig -index 541b7fadead4..b6b1734566ac 100644 ---- a/configs/chromebook_link_defconfig -+++ b/configs/chromebook_link_defconfig -@@ -74,6 +74,7 @@ CONFIG_TPM_TIS_LPC=y - CONFIG_USB_STORAGE=y - CONFIG_USB_KEYBOARD=y - CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y - CONFIG_FRAMEBUFFER_SET_VESA_MODE=y - CONFIG_FRAMEBUFFER_VESA_MODE_11A=y - CONFIG_VIDEO_IVYBRIDGE_IGD=y -diff --git a/configs/chromebook_samus_defconfig b/configs/chromebook_samus_defconfig -index 27bf046f991a..4a1c6d13decf 100644 ---- a/configs/chromebook_samus_defconfig -+++ b/configs/chromebook_samus_defconfig -@@ -78,6 +78,7 @@ CONFIG_TPM_TIS_LPC=y - CONFIG_USB_STORAGE=y - CONFIG_USB_KEYBOARD=y - CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y - CONFIG_FRAMEBUFFER_SET_VESA_MODE=y - CONFIG_FRAMEBUFFER_VESA_MODE_11A=y - CONFIG_TPM=y -diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig -index e501cc55fb23..75184b512de1 100644 ---- a/configs/minnowmax_defconfig -+++ b/configs/minnowmax_defconfig -@@ -69,6 +69,7 @@ CONFIG_SPI=y - CONFIG_USB_STORAGE=y - CONFIG_USB_KEYBOARD=y - CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y - CONFIG_FRAMEBUFFER_SET_VESA_MODE=y - CONFIG_GENERATE_ACPI_TABLE=y - # CONFIG_GZIP is not set + configs/sandbox_defconfig | 1 - + drivers/video/Kconfig | 5 ++ + drivers/video/console_normal.c | 13 +---- + drivers/video/console_rotate.c | 44 +++----------- + drivers/video/console_truetype.c | 16 +---- + drivers/video/vidconsole-uclass.c | 16 ----- + drivers/video/video-uclass.c | 97 ++++++++----------------------- + drivers/video/video_bmp.c | 7 --- + include/video.h | 37 ------------ + include/video_console.h | 52 ----------------- + test/dm/video.c | 3 +- + 11 files changed, 43 insertions(+), 248 deletions(-) + diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig -index be46cae7aad7..75ece781fa4d 100644 +index d26659ff0a0b..62bc182ca161 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig -@@ -297,6 +297,7 @@ CONFIG_USB_ETHER=y - CONFIG_USB_ETH_CDC=y +@@ -307,7 +307,6 @@ CONFIG_USB_ETH_CDC=y CONFIG_VIDEO=y + CONFIG_VIDEO_FONT_SUN12X22=y CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y +-CONFIG_VIDEO_DAMAGE=y CONFIG_CONSOLE_ROTATION=y CONFIG_CONSOLE_TRUETYPE=y - CONFIG_CONSOLE_TRUETYPE_MAX_METRICS=10 -diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig -index 4732c39bdbe1..f42c545d4628 100644 ---- a/configs/xilinx_zynqmp_virt_defconfig -+++ b/configs/xilinx_zynqmp_virt_defconfig -@@ -220,6 +220,7 @@ CONFIG_USB_ETHER=y - CONFIG_USB_ETH_CDC=y - CONFIG_VIDEO=y - CONFIG_VIDEO_COPY=y -+CONFIG_VIDEO_DAMAGE=y - CONFIG_DISPLAY=y - CONFIG_VIDEO_SEPS525=y - CONFIG_SPLASH_SCREEN=y + CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig -index 4a27fac2466d..faebcbcbffd3 100644 +index db531d7caae0..5f17c6be84ed 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig -@@ -53,11 +53,14 @@ config VIDEO_PCI_DEFAULT_FB_SIZE +@@ -83,11 +83,14 @@ config VIDEO_PCI_DEFAULT_FB_SIZE config VIDEO_COPY bool "Enable copying the frame buffer to a hardware copy" -+ depends on VIDEO_DAMAGE ++ select VIDEO_DAMAGE help On some machines (e.g. x86), reading from the frame buffer is very slow because it is uncached. To improve performance, this feature @@ -762,13 +1551,7 @@ index 4a27fac2466d..faebcbcbffd3 100644 To use this, your video driver must set @copy_base in struct video_uc_plat. -@@ -71,11 +74,13 @@ config VIDEO_DAMAGE - have to flush frame buffer contents from CPU caches into RAM which - can be a slow operation. - -- This patch adds damage tracking to collect information about regions -+ This feature adds damage tracking to collect information about regions - that received updates. When we want to sync, we then only flush +@@ -105,6 +108,8 @@ config VIDEO_DAMAGE regions of the frame buffer that were modified before, speeding up screen refreshes significantly. @@ -778,68 +1561,61 @@ index 4a27fac2466d..faebcbcbffd3 100644 bool "Generic PWM based Backlight Driver" depends on BACKLIGHT && DM_PWM diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c -index e32fb23e3f9f..ebb7fdd69307 100644 +index a19ce6a2bc11..c44aa09473a3 100644 --- a/drivers/video/console_normal.c +++ b/drivers/video/console_normal.c -@@ -21,7 +21,6 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr) - struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); - void *line, *end; - int pixels = VIDEO_FONT_HEIGHT * vid_priv->xsize; -- int ret; - int i; +@@ -35,10 +35,6 @@ static int console_set_row(struct udevice *dev, uint row, int clr) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); + end = dst; - line = vid_priv->fb + row * VIDEO_FONT_HEIGHT * vid_priv->line_length; -@@ -56,9 +55,6 @@ static int console_normal_set_row(struct udevice *dev, uint row, int clr) - default: - return -ENOSYS; - } - ret = vidconsole_sync_copy(dev, line, end); - if (ret) - return ret; - - video_damage(dev->parent, 0, VIDEO_FONT_HEIGHT * row, vid_priv->xsize, - VIDEO_FONT_HEIGHT); -@@ -73,14 +69,11 @@ static int console_normal_move_rows(struct udevice *dev, uint rowdst, +- + video_damage(dev->parent, + 0, + fontdata->height * row, +@@ -57,14 +53,11 @@ static int console_move_rows(struct udevice *dev, uint rowdst, void *dst; void *src; int size; - int ret; - dst = vid_priv->fb + rowdst * VIDEO_FONT_HEIGHT * vid_priv->line_length; - src = vid_priv->fb + rowsrc * VIDEO_FONT_HEIGHT * vid_priv->line_length; - size = VIDEO_FONT_HEIGHT * vid_priv->line_length * count; + dst = vid_priv->fb + rowdst * fontdata->height * vid_priv->line_length; + src = vid_priv->fb + rowsrc * fontdata->height * vid_priv->line_length; + size = fontdata->height * vid_priv->line_length * count; - ret = vidconsole_memmove(dev, dst, src, size); - if (ret) - return ret; + memmove(dst, src, size); - video_damage(dev->parent, 0, VIDEO_FONT_HEIGHT * rowdst, vid_priv->xsize, - VIDEO_FONT_HEIGHT * count); -@@ -97,7 +90,6 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - int i, row; - void *start; - void *line; -- int ret; - - start = vid_priv->fb + y * vid_priv->line_length + - VID_TO_PIXEL(x_frac) * VNBYTES(vid_priv->bpix); -@@ -168,10 +160,6 @@ static int console_normal_putc_xy(struct udevice *dev, uint x_frac, uint y, - video_damage(dev->parent, VID_TO_PIXEL(x_frac), y, VIDEO_FONT_WIDTH, - VIDEO_FONT_HEIGHT); + video_damage(dev->parent, + 0, +@@ -108,10 +101,6 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, char ch) + fontdata->width, + fontdata->height); - ret = vidconsole_sync_copy(dev, start, line); - if (ret) - return ret; - - return VID_TO_POS(VIDEO_FONT_WIDTH); + return VID_TO_POS(fontdata->width); } diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c -index 56e20bb4f32e..ae0cbe41bfe4 100644 +index 6c3e7c1bb8dc..6e9067d1c7fb 100644 --- a/drivers/video/console_rotate.c +++ b/drivers/video/console_rotate.c -@@ -53,9 +53,6 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) - } +@@ -21,7 +21,6 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) + int pbytes = VNBYTES(vid_priv->bpix); + void *start, *dst, *line; + int i, j; +- int ret; + + start = vid_priv->fb + vid_priv->line_length - + (row + 1) * fontdata->height * pbytes; +@@ -32,9 +31,6 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); line += vid_priv->line_length; } - ret = vidconsole_sync_copy(dev, start, line); @@ -847,64 +1623,91 @@ index 56e20bb4f32e..ae0cbe41bfe4 100644 - return ret; video_damage(dev->parent, - vid_priv->xsize - ((row + 1) * VIDEO_FONT_HEIGHT), -@@ -81,10 +78,7 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, - (rowsrc + count) * VIDEO_FONT_HEIGHT * pbytes; + vid_priv->xsize - ((row + 1) * fontdata->height), +@@ -54,7 +50,7 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, + int pbytes = VNBYTES(vid_priv->bpix); + void *dst; + void *src; +- int j, ret; ++ int j; + + dst = vid_priv->fb + vid_priv->line_length - + (rowdst + count) * fontdata->height * pbytes; +@@ -62,10 +58,7 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, + (rowsrc + count) * fontdata->height * pbytes; for (j = 0; j < vid_priv->ysize; j++) { - ret = vidconsole_memmove(dev, dst, src, -- VIDEO_FONT_HEIGHT * pbytes * count); +- fontdata->height * pbytes * count); - if (ret) - return ret; -+ memmove(dst, src, VIDEO_FONT_HEIGHT * pbytes * count); ++ memmove(dst, src, fontdata->height * pbytes * count); src += vid_priv->line_length; dst += vid_priv->line_length; } -@@ -158,10 +152,6 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch) - mask >>= 1; - } +@@ -104,10 +97,6 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch) + return ret; + /* We draw backwards from 'start, so account for the first line */ - ret = vidconsole_sync_copy(dev, start - vid_priv->line_length, line); - if (ret) - return ret; - video_damage(dev->parent, - vid_priv->xsize - y - VIDEO_FONT_HEIGHT - 1, + vid_priv->xsize - y - fontdata->height, linenum - 1, -@@ -213,9 +203,6 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) - default: - return -ENOSYS; - } +@@ -125,7 +114,7 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) + struct video_fontdata *fontdata = priv->fontdata; + void *start, *line, *dst, *end; + int pixels = fontdata->height * vid_priv->xsize; +- int i, ret; ++ int i; + int pbytes = VNBYTES(vid_priv->bpix); + + start = vid_priv->fb + vid_priv->ysize * vid_priv->line_length - +@@ -135,9 +124,6 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) + for (i = 0; i < pixels; i++) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); + end = dst; - ret = vidconsole_sync_copy(dev, start, end); - if (ret) - return ret; video_damage(dev->parent, 0, -@@ -239,8 +226,8 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, +@@ -163,8 +149,7 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, vid_priv->line_length; - src = end - (rowsrc + count) * VIDEO_FONT_HEIGHT * + src = end - (rowsrc + count) * fontdata->height * vid_priv->line_length; - vidconsole_memmove(dev, dst, src, -- VIDEO_FONT_HEIGHT * vid_priv->line_length * count); -+ memmove(dst, src, VIDEO_FONT_HEIGHT * -+ vid_priv->line_length * count); +- fontdata->height * vid_priv->line_length * count); ++ memmove(dst, src, fontdata->height * vid_priv->line_length * count); video_damage(dev->parent, 0, -@@ -313,10 +300,6 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch) - } - line -= vid_priv->line_length; - } +@@ -199,11 +184,6 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch) + if (ret) + return ret; + - /* Add 4 bytes to allow for the first pixel writen */ - ret = vidconsole_sync_copy(dev, start + 4, line); - if (ret) - return ret; - +- video_damage(dev->parent, - x - VIDEO_FONT_WIDTH, -@@ -367,9 +350,6 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) - } + x - fontdata->width + 1, + linenum - fontdata->height + 1, +@@ -220,7 +200,7 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) + struct video_fontdata *fontdata = priv->fontdata; + int pbytes = VNBYTES(vid_priv->bpix); + void *start, *dst, *line; +- int i, j, ret; ++ int i, j; + + start = vid_priv->fb + row * fontdata->height * pbytes; + line = start; +@@ -230,9 +210,6 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); line += vid_priv->line_length; } - ret = vidconsole_sync_copy(dev, start, line); @@ -912,42 +1715,42 @@ index 56e20bb4f32e..ae0cbe41bfe4 100644 - return ret; video_damage(dev->parent, - row * VIDEO_FONT_HEIGHT, -@@ -387,16 +367,13 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc, + row * fontdata->height, +@@ -252,16 +229,13 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc, int pbytes = VNBYTES(vid_priv->bpix); void *dst; void *src; - int j, ret; + int j; - dst = vid_priv->fb + rowdst * VIDEO_FONT_HEIGHT * pbytes; - src = vid_priv->fb + rowsrc * VIDEO_FONT_HEIGHT * pbytes; + dst = vid_priv->fb + rowdst * fontdata->height * pbytes; + src = vid_priv->fb + rowsrc * fontdata->height * pbytes; for (j = 0; j < vid_priv->ysize; j++) { - ret = vidconsole_memmove(dev, dst, src, -- VIDEO_FONT_HEIGHT * pbytes * count); +- fontdata->height * pbytes * count); - if (ret) - return ret; -+ memmove(dst, src, VIDEO_FONT_HEIGHT * pbytes * count); ++ memmove(dst, src, fontdata->height * pbytes * count); src += vid_priv->line_length; dst += vid_priv->line_length; } -@@ -468,10 +445,6 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch) - mask >>= 1; - } - /* Add a line to allow for the first pixels writen */ -- ret = vidconsole_sync_copy(dev, start + vid_priv->line_length, line); +@@ -296,10 +270,6 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch) + line = start; + + ret = fill_char_horizontally(pfont, &line, vid_priv, fontdata, NORMAL_DIRECTION); - if (ret) - return ret; -- - video_damage(dev->parent, - y, - x - VIDEO_FONT_WIDTH + 1, +- /* Add a line to allow for the first pixels writen */ +- ret = vidconsole_sync_copy(dev, start + vid_priv->line_length, line); + if (ret) + return ret; + diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c -index 5b90a0f91415..552d34191b64 100644 +index 0adbf9cc3d67..07bb0af71311 100644 --- a/drivers/video/console_truetype.c +++ b/drivers/video/console_truetype.c -@@ -149,7 +149,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) +@@ -182,7 +182,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) struct console_tt_priv *priv = dev_get_priv(dev); struct console_tt_metrics *met = priv->cur_met; void *end, *line; @@ -955,7 +1758,7 @@ index 5b90a0f91415..552d34191b64 100644 line = vid_priv->fb + row * met->font_size * vid_priv->line_length; end = line + met->font_size * vid_priv->line_length; -@@ -185,9 +184,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) +@@ -218,9 +217,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) default: return -ENOSYS; } @@ -963,9 +1766,9 @@ index 5b90a0f91415..552d34191b64 100644 - if (ret) - return ret; - video_damage(dev->parent, 0, vc_priv->y_charsize * row, vid_priv->xsize, - vc_priv->y_charsize); -@@ -204,14 +200,11 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, + video_damage(dev->parent, + 0, +@@ -240,14 +236,11 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst, struct console_tt_metrics *met = priv->cur_met; void *dst; void *src; @@ -982,7 +1785,7 @@ index 5b90a0f91415..552d34191b64 100644 /* Scroll up our position history */ diff = (rowsrc - rowdst) * met->font_size; -@@ -241,7 +234,7 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, +@@ -280,7 +273,7 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, u8 *bits, *data; int advance; void *start, *end, *line; @@ -991,9 +1794,9 @@ index 5b90a0f91415..552d34191b64 100644 /* First get some basic metrics about this character */ stbtt_GetCodepointHMetrics(font, ch, &advance, &lsb); -@@ -382,9 +375,6 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, - video_damage(dev->parent, VID_TO_PIXEL(x) + xoff, - y + met->baseline + yoff, width, height); +@@ -424,9 +417,6 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, + width, + height); - ret = vidconsole_sync_copy(dev, start, line); - if (ret) @@ -1001,31 +1804,11 @@ index 5b90a0f91415..552d34191b64 100644 free(data); return width_frac; -@@ -410,7 +400,7 @@ static int console_truetype_erase(struct udevice *dev, int xstart, int ystart, - struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); - void *start, *line; - int pixels = xend - xstart; -- int row, i, ret; -+ int row, i; - - start = vid_priv->fb + ystart * vid_priv->line_length; - start += xstart * VNBYTES(vid_priv->bpix); -@@ -452,10 +442,6 @@ static int console_truetype_erase(struct udevice *dev, int xstart, int ystart, - - video_damage(dev->parent, xstart, ystart, xend - xstart, yend - ystart); - -- ret = vidconsole_sync_copy(dev, start, line); -- if (ret) -- return ret; -- - return 0; - } - diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c -index f590ab39d5d6..8792b773b942 100644 +index a4029a58660b..f0db412146a8 100644 --- a/drivers/video/vidconsole-uclass.c +++ b/drivers/video/vidconsole-uclass.c -@@ -647,22 +647,6 @@ UCLASS_DRIVER(vidconsole) = { +@@ -728,22 +728,6 @@ UCLASS_DRIVER(vidconsole) = { .per_device_auto = sizeof(struct vidconsole_priv), }; @@ -1045,14 +1828,34 @@ index f590ab39d5d6..8792b773b942 100644 -} -#endif - - void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row) + int vidconsole_clear_and_reset(struct udevice *dev) { - struct vidconsole_priv *priv = dev_get_uclass_priv(dev); + int ret; diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c -index bf93f524c7a0..73601712ef92 100644 +index ac2141892bf7..afbd4670240b 100644 --- a/drivers/video/video-uclass.c +++ b/drivers/video/video-uclass.c -@@ -131,7 +131,6 @@ int video_reserve(ulong *addrp) +@@ -160,7 +160,7 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, + struct video_priv *priv = dev_get_uclass_priv(dev); + void *start, *line; + int pixels = xend - xstart; +- int row, i, ret; ++ int row, i; + + start = priv->fb + ystart * priv->line_length; + start += xstart * VNBYTES(priv->bpix); +@@ -200,10 +200,6 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, + line += priv->line_length; + } + +- ret = video_sync_copy(dev, start, line); +- if (ret) +- return ret; +- + video_damage(dev, xstart, ystart, xend - xstart, yend - ystart); + + return 0; +@@ -223,7 +219,6 @@ int video_reserve_from_bloblist(struct video_handoff *ho) int video_fill(struct udevice *dev, u32 colour) { struct video_priv *priv = dev_get_uclass_priv(dev); @@ -1060,7 +1863,7 @@ index bf93f524c7a0..73601712ef92 100644 switch (priv->bpix) { case VIDEO_BPP16: -@@ -156,9 +155,6 @@ int video_fill(struct udevice *dev, u32 colour) +@@ -248,9 +243,6 @@ int video_fill(struct udevice *dev, u32 colour) memset(priv->fb, colour, priv->fb_size); break; } @@ -1070,7 +1873,7 @@ index bf93f524c7a0..73601712ef92 100644 video_damage(dev, 0, 0, priv->xsize, priv->ysize); -@@ -332,6 +328,27 @@ static void video_flush_dcache(struct udevice *vid) +@@ -420,6 +412,27 @@ static void video_flush_dcache(struct udevice *vid) } #endif @@ -1081,12 +1884,12 @@ index bf93f524c7a0..73601712ef92 100644 + if (!priv->copy_fb) + return; + -+ if (priv->damage.endx && priv->damage.endy) { -+ int lstart = priv->damage.x * VNBYTES(priv->bpix); -+ int lend = priv->damage.endx * VNBYTES(priv->bpix); ++ if (priv->damage.xend && priv->damage.yend) { ++ int lstart = priv->damage.xstart * VNBYTES(priv->bpix); ++ int lend = priv->damage.xend * VNBYTES(priv->bpix); + int y; + -+ for (y = priv->damage.y; y < priv->damage.endy; y++) { ++ for (y = priv->damage.ystart; y < priv->damage.yend; y++) { + ulong offset = (y * priv->line_length) + lstart; + ulong len = lend - lstart; + @@ -1098,17 +1901,17 @@ index bf93f524c7a0..73601712ef92 100644 /* Flush video activity to the caches */ int video_sync(struct udevice *vid, bool force) { -@@ -339,6 +356,9 @@ int video_sync(struct udevice *vid, bool force) +@@ -427,6 +440,9 @@ int video_sync(struct udevice *vid, bool force) struct video_ops *ops = video_get_ops(vid); int ret; -+ if (CONFIG_IS_ENABLED(VIDEO_COPY)) ++ if (IS_ENABLED(CONFIG_VIDEO_COPY)) + video_flush_copy(vid); + if (ops && ops->video_sync) { ret = ops->video_sync(vid); if (ret) -@@ -413,69 +433,6 @@ int video_get_ysize(struct udevice *dev) +@@ -503,69 +519,6 @@ int video_get_ysize(struct udevice *dev) return priv->ysize; } @@ -1179,10 +1982,10 @@ index bf93f524c7a0..73601712ef92 100644 extern u8 __splash_ ## _name ## _begin[]; \ extern u8 __splash_ ## _name ## _end[] diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c -index 7dc5b011a8af..609dc9fef695 100644 +index 10943b9ca19f..da2bbe864a03 100644 --- a/drivers/video/video_bmp.c +++ b/drivers/video/video_bmp.c -@@ -254,7 +254,6 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, +@@ -268,7 +268,6 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, enum video_format eformat; struct bmp_color_table_entry *palette; int hdr_size; @@ -1190,7 +1993,7 @@ index 7dc5b011a8af..609dc9fef695 100644 if (!bmp || !(bmp->header.signature[0] == 'B' && bmp->header.signature[1] == 'M')) { -@@ -426,11 +425,5 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, +@@ -462,11 +461,5 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, video_damage(dev, x, y, width, height); @@ -1203,10 +2006,10 @@ index 7dc5b011a8af..609dc9fef695 100644 return video_sync(dev, false); } diff --git a/include/video.h b/include/video.h -index 4b35e97f79ef..e1162fc53311 100644 +index 307e954db828..3f072b4d6b89 100644 --- a/include/video.h +++ b/include/video.h -@@ -302,43 +302,6 @@ void video_set_default_colors(struct udevice *dev, bool invert); +@@ -350,43 +350,6 @@ void video_set_default_colors(struct udevice *dev, bool invert); */ int video_default_font_height(struct udevice *dev); @@ -1251,12 +2054,12 @@ index 4b35e97f79ef..e1162fc53311 100644 * video_damage() - Notify the video subsystem about screen updates. * diff --git a/include/video_console.h b/include/video_console.h -index 1ef7b442fcca..d1e44c4530e2 100644 +index dbfb389f324f..4b4d2e621b30 100644 --- a/include/video_console.h +++ b/include/video_console.h -@@ -258,55 +258,6 @@ int vidconsole_select_font(struct udevice *dev, const char *name, uint size); +@@ -406,58 +406,6 @@ void vidconsole_list_fonts(struct udevice *dev); */ - const char *vidconsole_get_font(struct udevice *dev, uint *sizep); + int vidconsole_get_font_size(struct udevice *dev, const char **name, uint *sizep); -#ifdef CONFIG_VIDEO_COPY -/** @@ -1291,6 +2094,9 @@ index 1ef7b442fcca..d1e44c4530e2 100644 -int vidconsole_memmove(struct udevice *dev, void *dst, const void *src, - int size); -#else +- +-#include +- -static inline int vidconsole_sync_copy(struct udevice *dev, void *from, - void *to) -{ @@ -1310,6 +2116,296 @@ index 1ef7b442fcca..d1e44c4530e2 100644 /* * Convert an UTF-8 byte into the corresponding character in the CP437 * code page. Returns 0 if that character is part of a multi-byte sequence. +diff --git a/test/dm/video.c b/test/dm/video.c +index 8c7d9800a42e..4c3bcd26e94f 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -106,6 +106,7 @@ static int check_copy_frame_buffer(struct unit_test_state *uts, + if (!IS_ENABLED(CONFIG_VIDEO_COPY)) + return 0; + ++ video_sync(dev, false); + ut_assertf(!memcmp(priv->fb, priv->copy_fb, priv->fb_size), + "Copy framebuffer does not match fb"); + +@@ -706,7 +707,7 @@ static int dm_test_video_copy(struct unit_test_state *uts) + vidconsole_put_string(con, test_string); + vidconsole_put_string(con, test_string); + ut_asserteq(7589, compress_frame_buffer(uts, dev, false)); +- ut_asserteq(5278, compress_frame_buffer(uts, dev, true)); ++ ut_asserteq(4127, compress_frame_buffer(uts, dev, true)); + + return 0; + } +-- +2.42.0 + + +From cf7e5c9411fbe82487191e162bafcf178eaeaf5e Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Tue, 3 Jan 2023 22:50:03 +0100 +Subject: [PATCH 12/13] video: Always compile cache flushing code + +The dcache flushing code path was conditional on ARM && !DCACHE config +options. However, dcaches exist on other platforms as well and may need +clearing if their driver requires it. + +Simplify the compile logic and always enable the dcache flush logic in +the video core. That way, drivers can always rely on it to call the arch +specific callbacks. + +This will increase code size for non-ARM platforms with CONFIG_VIDEO=y +slightly. + +Reported-by: Heinrich Schuchardt +Signed-off-by: Alexander Graf +Reviewed-by: Simon Glass +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-13-alpernebiyasak@gmail.com/ +--- + drivers/video/video-uclass.c | 14 +++++--------- + 1 file changed, 5 insertions(+), 9 deletions(-) + +diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c +index afbd4670240b..2c7777261ad1 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -377,11 +377,13 @@ void video_damage(struct udevice *vid, int x, int y, int width, int height) + priv->damage.yend = max(yend, priv->damage.yend); + } + +-#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) + static void video_flush_dcache(struct udevice *vid) + { + struct video_priv *priv = dev_get_uclass_priv(vid); + ++ if (CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) ++ return; ++ + if (!priv->flush_dcache) + return; + +@@ -410,7 +412,6 @@ static void video_flush_dcache(struct udevice *vid) + } + } + } +-#endif + + static void video_flush_copy(struct udevice *vid) + { +@@ -449,14 +450,9 @@ int video_sync(struct udevice *vid, bool force) + return ret; + } + +- /* +- * flush_dcache_range() is declared in common.h but it seems that some +- * architectures do not actually implement it. Is there a way to find +- * out whether it exists? For now, ARM is safe. +- */ +-#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) + video_flush_dcache(vid); +-#elif defined(CONFIG_VIDEO_SANDBOX_SDL) ++ ++#if defined(CONFIG_VIDEO_SANDBOX_SDL) + static ulong last_sync; + + if (force || get_timer(last_sync) > 100) { +-- +2.42.0 + + +From 2ada48e20ae7fb1ce66d63c6f549887c38b058d4 Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Tue, 3 Jan 2023 22:50:04 +0100 +Subject: [PATCH 13/13] video: Enable VIDEO_DAMAGE for drivers that need it + +Some drivers call video_set_flush_dcache() to indicate that they want to +have the dcache flushed for the frame buffer. These drivers benefit from +our new video damage control, because we can reduce the amount of memory +that gets flushed significantly. + +This patch enables video damage control for all device drivers that call +video_set_flush_dcache() to make sure they benefit from it. + +Signed-off-by: Alexander Graf +[Alper: Add to VIDEO_TIDSS, imply instead of select] +Co-developed-by: Alper Nebi Yasak +Signed-off-by: Alper Nebi Yasak +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-14-alpernebiyasak@gmail.com/ +--- + arch/arm/mach-sunxi/Kconfig | 1 + + drivers/video/Kconfig | 8 ++++++++ + drivers/video/exynos/Kconfig | 1 + + drivers/video/imx/Kconfig | 1 + + drivers/video/meson/Kconfig | 1 + + drivers/video/rockchip/Kconfig | 1 + + drivers/video/stm32/Kconfig | 1 + + drivers/video/tegra20/Kconfig | 1 + + drivers/video/tidss/Kconfig | 1 + + 9 files changed, 16 insertions(+) + +diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig +index e20c3a3ee926..6bd813b68c9c 100644 +--- a/arch/arm/mach-sunxi/Kconfig ++++ b/arch/arm/mach-sunxi/Kconfig +@@ -813,6 +813,7 @@ config VIDEO_SUNXI + depends on !SUN50I_GEN_H6 + select VIDEO + select DISPLAY ++ imply VIDEO_DAMAGE + imply VIDEO_DT_SIMPLEFB + default y + ---help--- +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 5f17c6be84ed..546df93f51a9 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -499,6 +499,7 @@ config VIDEO_LCD_ANX9804 + + config ATMEL_LCD + bool "Atmel LCD panel support" ++ imply VIDEO_DAMAGE + depends on ARCH_AT91 + + config ATMEL_LCD_BGR555 +@@ -508,6 +509,7 @@ config ATMEL_LCD_BGR555 + + config VIDEO_BCM2835 + bool "Display support for BCM2835" ++ imply VIDEO_DAMAGE + help + The graphics processor already sets up the display so this driver + simply checks the resolution and then sets up the frame buffer with +@@ -654,6 +656,7 @@ source "drivers/video/meson/Kconfig" + + config VIDEO_MVEBU + bool "Armada XP LCD controller" ++ imply VIDEO_DAMAGE + ---help--- + Support for the LCD controller integrated in the Marvell + Armada XP SoC. +@@ -688,6 +691,7 @@ config NXP_TDA19988 + + config ATMEL_HLCD + bool "Enable ATMEL video support using HLCDC" ++ imply VIDEO_DAMAGE + help + HLCDC supports video output to an attached LCD panel. + +@@ -764,6 +768,7 @@ source "drivers/video/tidss/Kconfig" + + config VIDEO_TEGRA124 + bool "Enable video support on Tegra124" ++ imply VIDEO_DAMAGE + help + Tegra124 supports many video output options including eDP and + HDMI. At present only eDP is supported by U-Boot. This option +@@ -778,6 +783,7 @@ source "drivers/video/imx/Kconfig" + + config VIDEO_MXS + bool "Enable video support on i.MX28/i.MX6UL/i.MX7 SoCs" ++ imply VIDEO_DAMAGE + help + Enable framebuffer driver for i.MX28/i.MX6UL/i.MX7 processors + +@@ -840,6 +846,7 @@ config VIDEO_DW_MIPI_DSI + + config VIDEO_SIMPLE + bool "Simple display driver for preconfigured display" ++ imply VIDEO_DAMAGE + help + Enables a simple generic display driver which utilizes the + simple-framebuffer devicetree bindings. +@@ -858,6 +865,7 @@ config VIDEO_DT_SIMPLEFB + + config VIDEO_MCDE_SIMPLE + bool "Simple driver for ST-Ericsson MCDE with preconfigured display" ++ imply VIDEO_DAMAGE + help + Enables a simple display driver for ST-Ericsson MCDE + (Multichannel Display Engine), which reads the configuration from +diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig +index 599d19d5ecc2..a2cf752aac03 100644 +--- a/drivers/video/exynos/Kconfig ++++ b/drivers/video/exynos/Kconfig +@@ -12,6 +12,7 @@ config EXYNOS_DP + + config EXYNOS_FB + bool "Exynos FIMD support" ++ imply VIDEO_DAMAGE + + config EXYNOS_MIPI_DSIM + bool "Exynos MIPI DSI support" +diff --git a/drivers/video/imx/Kconfig b/drivers/video/imx/Kconfig +index 34e8b640595b..5db3e5c0499e 100644 +--- a/drivers/video/imx/Kconfig ++++ b/drivers/video/imx/Kconfig +@@ -2,6 +2,7 @@ + config VIDEO_IPUV3 + bool "i.MX IPUv3 Core video support" + depends on VIDEO && (MX5 || MX6) ++ imply VIDEO_DAMAGE + help + This enables framebuffer driver for i.MX processors working + on the IPUv3(Image Processing Unit) internal graphic processor. +diff --git a/drivers/video/meson/Kconfig b/drivers/video/meson/Kconfig +index 3c2d72d019b8..fcf486ca0a3a 100644 +--- a/drivers/video/meson/Kconfig ++++ b/drivers/video/meson/Kconfig +@@ -8,5 +8,6 @@ config VIDEO_MESON + bool "Enable Amlogic Meson video support" + depends on VIDEO + select DISPLAY ++ imply VIDEO_DAMAGE + help + Enable Amlogic Meson Video Processing Unit video support. +diff --git a/drivers/video/rockchip/Kconfig b/drivers/video/rockchip/Kconfig +index 01804dcb1cc8..0f4550a29e38 100644 +--- a/drivers/video/rockchip/Kconfig ++++ b/drivers/video/rockchip/Kconfig +@@ -11,6 +11,7 @@ + menuconfig VIDEO_ROCKCHIP + bool "Enable Rockchip Video Support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + Rockchip SoCs provide video output capabilities for High-Definition + Multimedia Interface (HDMI), Low-voltage Differential Signalling +diff --git a/drivers/video/stm32/Kconfig b/drivers/video/stm32/Kconfig +index 48066063e4c5..c354c402c288 100644 +--- a/drivers/video/stm32/Kconfig ++++ b/drivers/video/stm32/Kconfig +@@ -8,6 +8,7 @@ + menuconfig VIDEO_STM32 + bool "Enable STM32 video support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + STM32 supports many video output options including RGB and + DSI. This option enables these supports which can be used on +diff --git a/drivers/video/tegra20/Kconfig b/drivers/video/tegra20/Kconfig +index f5c4843e1191..2232b0b3ff53 100644 +--- a/drivers/video/tegra20/Kconfig ++++ b/drivers/video/tegra20/Kconfig +@@ -1,6 +1,7 @@ + config VIDEO_TEGRA20 + bool "Enable Display Controller support on Tegra20 and Tegra 30" + depends on OF_CONTROL ++ imply VIDEO_DAMAGE + help + T20/T30 support video output to an attached LCD panel as well as + other options such as HDMI. Only the LCD is supported in U-Boot. +diff --git a/drivers/video/tidss/Kconfig b/drivers/video/tidss/Kconfig +index 95086f3a5d66..3291b3ceb8d5 100644 +--- a/drivers/video/tidss/Kconfig ++++ b/drivers/video/tidss/Kconfig +@@ -11,6 +11,7 @@ + menuconfig VIDEO_TIDSS + bool "Enable TIDSS video support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + TIDSS supports video output options LVDS and + DPI . This option enables these supports which can be used on -- -2.39.1 +2.42.0 diff --git a/config/u-boot/default/target.cfg b/config/u-boot/default/target.cfg index bfcb86d7..1eda306f 100644 --- a/config/u-boot/default/target.cfg +++ b/config/u-boot/default/target.cfg @@ -1,3 +1,3 @@ tree="default" -rev="62e2ad1ceafbfdf2c44d3dc1b6efc81e768a96b9" # v2023.01 +rev="4459ed60cb1e0562bc5b40405e2b4b9bbf766d57" # v2023.10 arch="AArch64" diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index cffadddc..7035ffe6 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# U-Boot 2023.01 Configuration +# U-Boot 2023.10 Configuration # # -# Compiler: gcc (Debian 12.2.0-14) 12.2.0 +# Compiler: gcc (Debian 13.2.0-5) 13.2.0 # CONFIG_CREATE_ARCH_SYMLINK=y CONFIG_SYS_CACHE_SHIFT_6=y @@ -28,6 +28,10 @@ CONFIG_SYS_SOC="rk3399" CONFIG_SYS_VENDOR="google" CONFIG_SYS_BOARD="gru" CONFIG_SYS_CONFIG_NAME="gru" + +# +# Skipping low level initialization functions +# CONFIG_SKIP_LOWLEVEL_INIT=y # CONFIG_SPL_SKIP_LOWLEVEL_INIT is not set # CONFIG_TPL_SKIP_LOWLEVEL_INIT is not set @@ -73,6 +77,7 @@ CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_HISTB is not set # CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_ORION5X is not set @@ -81,7 +86,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_BCMSTB is not set # CONFIG_ARCH_BCMBCA is not set # CONFIG_TARGET_VEXPRESS_CA9X4 is not set -# CONFIG_TARGET_BCMCYGNUS is not set +# CONFIG_TARGET_BCMNS is not set # CONFIG_TARGET_BCMNS2 is not set # CONFIG_TARGET_BCMNS3 is not set # CONFIG_ARCH_EXYNOS is not set @@ -183,14 +188,19 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_NR_DRAM_BANKS=1 CONFIG_SPL_LDSCRIPT="arch/arm/cpu/armv8/u-boot-spl.lds" +CONFIG_ENV_SOURCE_FILE="" +CONFIG_SF_DEFAULT_SPEED=20000000 +CONFIG_SF_DEFAULT_MODE=0x0 CONFIG_ENV_SIZE=0x8000 CONFIG_DM_GPIO=y CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-bob" CONFIG_SPL_TEXT_BASE=0xff8c2000 CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_SYS_PROMPT="=> " +# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 +CONFIG_DM_RESET=y +CONFIG_SYS_MONITOR_LEN=0 # CONFIG_ROCKCHIP_PX30 is not set # CONFIG_ROCKCHIP_RK3036 is not set # CONFIG_ROCKCHIP_RK3066 is not set @@ -203,11 +213,14 @@ CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 # CONFIG_ROCKCHIP_RK3368 is not set CONFIG_ROCKCHIP_RK3399=y # CONFIG_ROCKCHIP_RK3568 is not set +# CONFIG_ROCKCHIP_RK3588 is not set # CONFIG_ROCKCHIP_RV1108 is not set +# CONFIG_ROCKCHIP_RV1126 is not set # CONFIG_ROCKCHIP_USB_UART is not set # CONFIG_SPL_ROCKCHIP_BACK_TO_BROM is not set CONFIG_ROCKCHIP_COMMON_BOARD=y CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y +# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set CONFIG_ROCKCHIP_BOOT_MODE_REG=0 # CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set CONFIG_ROCKCHIP_STIMER=y @@ -226,10 +239,12 @@ CONFIG_TARGET_CHROMEBOOK_BOB=y # CONFIG_TARGET_CHROMEBOOK_KEVIN is not set # CONFIG_TARGET_EVB_RK3399 is not set # CONFIG_TARGET_PINEBOOK_PRO_RK3399 is not set +# CONFIG_TARGET_PINEPHONE_PRO_RK3399 is not set # CONFIG_TARGET_PUMA_RK3399 is not set # CONFIG_TARGET_ROCK960_RK3399 is not set # CONFIG_TARGET_ROCKPRO64_RK3399 is not set # CONFIG_TARGET_ROC_PC_RK3399 is not set +CONFIG_SPL_STACK=0xff8effff CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000 CONFIG_ERR_PTR_OFFSET=0x0 CONFIG_SPL_SIZE_LIMIT=0x0 @@ -247,6 +262,7 @@ CONFIG_SYS_CLK_FREQ=0 # CONFIG_SPL_LIBDISK_SUPPORT is not set CONFIG_SPL_SPI_FLASH_SUPPORT=y CONFIG_SPL_SPI=y +# CONFIG_CMO_BY_VA_ONLY is not set # CONFIG_ARMV8_SPL_EXCEPTION_VECTORS is not set # CONFIG_ARMV8_MULTIENTRY is not set # CONFIG_ARMV8_SET_SMPEN is not set @@ -266,6 +282,7 @@ CONFIG_PSCI_RESET=y # CONFIG_IMX_CAAM_DEK_ENCAP is not set # CONFIG_IMX_OPTEE_DEK_ENCAP is not set # CONFIG_IMX_SECO_DEK_ENCAP is not set +# CONFIG_IMX_ELE_DEK_ENCAP is not set # CONFIG_CMD_HDMIDETECT is not set CONFIG_IMX_DCD_ADDR=0x00910000 # CONFIG_SPL_LOAD_IMX_CONTAINER is not set @@ -278,16 +295,17 @@ CONFIG_SYS_LOAD_ADDR=0x800800 # CONFIG_SPL_PAYLOAD="u-boot.bin" CONFIG_BUILD_TARGET="" +# CONFIG_PCI is not set CONFIG_FWU_NUM_BANKS=2 CONFIG_FWU_NUM_IMAGES_PER_BANK=2 CONFIG_DEBUG_UART=y # CONFIG_AHCI is not set # CONFIG_OF_BOARD_FIXUP is not set -# CONFIG_NXP_ESBC is not set # -# Other functionality shared between NXP SoCs +# Functionality shared between NXP SoCs # +# CONFIG_NXP_ESBC is not set # # General setup @@ -295,7 +313,7 @@ CONFIG_DEBUG_UART=y CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120200 +CONFIG_GCC_VERSION=130200 CONFIG_CLANG_VERSION=0 CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set @@ -306,7 +324,6 @@ CONFIG_ARCH_SUPPORTS_LTO=y # CONFIG_LTO is not set CONFIG_CC_HAS_ASM_INLINE=y # CONFIG_XEN is not set -CONFIG_DISTRO_DEFAULTS=y CONFIG_ENV_VARS_UBOOT_CONFIG=y # CONFIG_SYS_BOOT_GET_CMDLINE is not set # CONFIG_SYS_BOOT_GET_KBD is not set @@ -314,9 +331,11 @@ CONFIG_SYS_MALLOC_F=y # CONFIG_VALGRIND is not set CONFIG_EXPERT=y CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y +CONFIG_SPL_SYS_MALLOC_CLEAR_ON_INIT=y # CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set # CONFIG_TOOLS_DEBUG is not set CONFIG_PHYS_64BIT=y +CONFIG_FDT_64BIT=y CONFIG_HAS_ROM=y CONFIG_SPL_IMAGE="spl/u-boot-spl.bin" CONFIG_REMAKE_ELF=y @@ -326,13 +345,7 @@ CONFIG_PLATFORM_ELFENTRY="_start" CONFIG_STACK_SIZE=0x1000000 CONFIG_SYS_SRAM_BASE=0x0 CONFIG_SYS_SRAM_SIZE=0x0 -CONFIG_SYS_MONITOR_LEN=0 # CONFIG_MP is not set -# CONFIG_EXAMPLES is not set - -# -# API -# # CONFIG_API is not set # @@ -362,23 +375,28 @@ CONFIG_SPL_LOAD_FIT_ADDRESS=0x0 # CONFIG_SPL_LOAD_FIT_FULL is not set # CONFIG_SPL_FIT_IMAGE_POST_PROCESS is not set CONFIG_SPL_FIT_SOURCE="" -CONFIG_USE_SPL_FIT_GENERATOR=y -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +# CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_PXE_UTILS=y +CONFIG_BOOT_DEFAULTS=y CONFIG_BOOTSTD=y -# CONFIG_BOOTSTD_FULL is not set # CONFIG_SPL_BOOTSTD is not set -# CONFIG_BOOTSTD_BOOTCOMMAND is not set +# CONFIG_BOOTSTD_FULL is not set +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_BOOTMETH_GLOBAL=y -CONFIG_BOOTMETH_DISTRO=y -CONFIG_BOOTMETH_DISTRO_PXE=y +CONFIG_BOOTMETH_EXTLINUX=y +CONFIG_BOOTMETH_EXTLINUX_PXE=y CONFIG_BOOTMETH_EFILOADER=y CONFIG_BOOTMETH_VBE=y +CONFIG_BOOTMETH_DISTRO=y # CONFIG_SPL_BOOTMETH_VBE is not set +CONFIG_BOOTMETH_VBE_REQUEST=y +# CONFIG_SPL_BOOTMETH_VBE_REQUEST is not set CONFIG_BOOTMETH_VBE_SIMPLE=y CONFIG_BOOTMETH_VBE_SIMPLE_OS=y # CONFIG_SPL_BOOTMETH_VBE_SIMPLE is not set -# CONFIG_BOOTMETH_SCRIPT is not set +CONFIG_EXPO=y +CONFIG_BOOTMETH_SCRIPT=y CONFIG_LEGACY_IMAGE_FORMAT=y CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_OF_BOARD_SETUP is not set @@ -391,6 +409,7 @@ CONFIG_ARCH_FIXUP_FDT_MEMORY=y # CONFIG_CHROMEOS_VBOOT is not set # CONFIG_RAMBOOT_PBL is not set CONFIG_SYS_BOOT_RAMDISK_HIGH=y +# CONFIG_DISTRO_DEFAULTS is not set # # Boot timing @@ -427,12 +446,17 @@ CONFIG_BOOTDELAY=2 # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="run distro_bootcmd" +CONFIG_BOOTCOMMAND="bootflow scan" # CONFIG_USE_PREBOOT is not set CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set # CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set +# +# Configuration editor +# +# CONFIG_CEDIT is not set + # # Console # @@ -485,13 +509,13 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_EVENT=y CONFIG_EVENT_DYNAMIC=y # CONFIG_EVENT_DEBUG is not set -# CONFIG_ARCH_EARLY_INIT_R is not set # CONFIG_ARCH_MISC_INIT is not set # CONFIG_BOARD_EARLY_INIT_F is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_POSTCLK_INIT is not set CONFIG_BOARD_LATE_INIT=y # CONFIG_CLOCKS is not set +# CONFIG_HWCONFIG is not set # CONFIG_LAST_STAGE_INIT is not set CONFIG_MISC_INIT_R=y # CONFIG_SYS_MALLOC_BOOTPARAMS is not set @@ -553,7 +577,6 @@ CONFIG_SPL_BOARD_INIT=y # CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set CONFIG_SPL_SYS_MALLOC_SIMPLE=y # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set -CONFIG_SPL_STACK=0xff8effff CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 CONFIG_SPL_SEPARATE_BSS=y @@ -564,8 +587,6 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0 # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set -CONFIG_SPL_CRC32=y -# CONFIG_SPL_MD5 is not set # CONFIG_SPL_FIT_IMAGE_TINY is not set # CONFIG_SPL_CACHE is not set # CONFIG_SPL_CPU is not set @@ -579,7 +600,6 @@ CONFIG_SPL_CRC32=y # CONFIG_SPL_I2C is not set # CONFIG_SPL_DM_MAILBOX is not set # CONFIG_SPL_MEMORY is not set -CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=1 # CONFIG_SPL_MPC8XXX_INIT_DDR is not set # CONFIG_SPL_MTD_SUPPORT is not set # CONFIG_SPL_MUSB_NEW is not set @@ -604,13 +624,12 @@ CONFIG_SPL_DM_SPI_FLASH=y # CONFIG_SPL_REMOTEPROC is not set # CONFIG_SPL_RTC is not set # CONFIG_SPL_SATA is not set +# CONFIG_SPL_NVME is not set CONFIG_SPL_SPI_FLASH_TINY=y # CONFIG_SPL_SPI_FLASH_MTD is not set CONFIG_SPL_SPI_LOAD=y CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000 # CONFIG_SPL_THERMAL is not set -# CONFIG_SPL_USB_HOST is not set -# CONFIG_SPL_USB_GADGET is not set # CONFIG_SPL_WATCHDOG is not set # CONFIG_SPL_YMODEM_SUPPORT is not set CONFIG_SPL_ATF=y @@ -621,6 +640,7 @@ CONFIG_SPL_TARGET="" # CONFIG_TPL is not set # CONFIG_VPL is not set # CONFIG_FDT_SIMPLEFB is not set +# CONFIG_BMP is not set # # Command line interface @@ -631,6 +651,7 @@ CONFIG_CMDLINE_EDITING=y # CONFIG_CMDLINE_PS_SUPPORT is not set CONFIG_AUTO_COMPLETE=y CONFIG_SYS_LONGHELP=y +CONFIG_SYS_PROMPT="=> " CONFIG_SYS_PROMPT_HUSH_PS2="> " CONFIG_SYS_MAXARGS=16 CONFIG_SYS_CBSIZE=1024 @@ -645,6 +666,7 @@ CONFIG_SYS_XTRACE=y # Info commands # CONFIG_CMD_BDI=y +# CONFIG_CMD_BDINFO_EXTRA is not set # CONFIG_CMD_CONFIG is not set CONFIG_CMD_CONSOLE=y # CONFIG_CMD_LICENSE is not set @@ -779,7 +801,6 @@ CONFIG_CMD_PINMUX=y # CONFIG_CMD_POWEROFF is not set # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set -# CONFIG_CMD_SCSI is not set # CONFIG_CMD_SDRAM is not set CONFIG_CMD_SF=y CONFIG_CMD_SF_TEST=y @@ -790,6 +811,7 @@ CONFIG_DEFAULT_SPI_MODE=0 # CONFIG_CMD_UNIVERSE is not set CONFIG_CMD_USB=y # CONFIG_CMD_USB_SDP is not set +# CONFIG_CMD_WRITE is not set # # Shell scripting commands @@ -827,8 +849,7 @@ CONFIG_CMD_TFTPBOOT=y # CONFIG_CMD_TFTPSRV is not set CONFIG_NET_TFTP_VARS=y # CONFIG_CMD_RARP is not set -CONFIG_CMD_NFS=y -CONFIG_NFS_TIMEOUT=2000 +# CONFIG_CMD_NFS is not set # CONFIG_SYS_DISABLE_AUTOLOAD is not set # CONFIG_CMD_WGET is not set CONFIG_CMD_MII=y @@ -845,6 +866,7 @@ CONFIG_CMD_PXE=y # # Misc commands # +# CONFIG_CMD_2048 is not set # CONFIG_CMD_BMP is not set # CONFIG_CMD_BSP is not set CONFIG_CMD_BLOCK_CACHE=y @@ -852,8 +874,9 @@ CONFIG_CMD_BLOCK_CACHE=y # CONFIG_CMD_CONITRACE is not set CONFIG_CMD_CLS=y # CONFIG_CMD_EFIDEBUG is not set -# CONFIG_CMD_EFICONFIG is not set +CONFIG_CMD_EFICONFIG=y # CONFIG_CMD_EXCEPTION is not set +# CONFIG_CMD_INI is not set # CONFIG_CMD_DATE is not set CONFIG_CMD_TIME=y # CONFIG_CMD_GETTIME is not set @@ -862,12 +885,13 @@ CONFIG_CMD_TIME=y # CONFIG_CMD_KASLRSEED is not set CONFIG_CMD_SLEEP=y # CONFIG_CMD_TIMER is not set -CONFIG_CMD_SYSBOOT=y +# CONFIG_CMD_SYSBOOT is not set # CONFIG_CMD_QFW is not set # CONFIG_CMD_PSTORE is not set # CONFIG_CMD_TERMINAL is not set # CONFIG_CMD_UUID is not set CONFIG_CMD_VIDCONSOLE=y +# CONFIG_CMD_SELECT_FONT is not set # # TI specific command line interface @@ -941,6 +965,7 @@ CONFIG_SPL_EFI_PARTITION=y CONFIG_PARTITION_UUIDS=y CONFIG_SPL_PARTITION_UUIDS=y CONFIG_PARTITION_TYPE_GUID=y +# CONFIG_SPL_PARTITION_TYPE_GUID is not set CONFIG_SUPPORT_OF_CONTROL=y CONFIG_PYLIBFDT=y CONFIG_DTOC=y @@ -962,6 +987,7 @@ CONFIG_OF_LIST="rk3399-gru-bob" # CONFIG_MULTI_DTB_FIT is not set # CONFIG_SPL_MULTI_DTB_FIT is not set CONFIG_SPL_OF_LIST="rk3399-gru-bob" +CONFIG_OF_TAG_MIGRATE=y CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" # CONFIG_OF_DTB_PROPS_REMOVE is not set # CONFIG_SPL_OF_PLATDATA is not set @@ -971,11 +997,12 @@ CONFIG_SPL_OF_REAL=y # Environment # CONFIG_ENV_SUPPORT=y -CONFIG_ENV_SOURCE_FILE="" CONFIG_SAVEENV=y # CONFIG_ENV_OVERWRITE is not set +# CONFIG_OVERWRITE_ETHADDR_ONCE is not set CONFIG_ENV_MIN_ENTRIES=64 CONFIG_ENV_MAX_ENTRIES=512 +CONFIG_ENV_IS_DEFAULT=y CONFIG_ENV_IS_NOWHERE=y # CONFIG_ENV_IS_IN_EEPROM is not set # CONFIG_ENV_IS_IN_FAT is not set @@ -997,6 +1024,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y # CONFIG_ENV_ACCESS_IGNORE_FORCE is not set # CONFIG_USE_BOOTFILE is not set # CONFIG_USE_ETHPRIME is not set +# CONFIG_USE_HOSTNAME is not set # CONFIG_VERSION_VARIABLE is not set CONFIG_NET=y CONFIG_ARP_TIMEOUT=5000 @@ -1018,6 +1046,11 @@ CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 # CONFIG_UDP_CHECKSUM is not set # CONFIG_BOOTP_SERVERIP is not set CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 +# CONFIG_USE_GATEWAYIP is not set +# CONFIG_USE_IPADDR is not set +# CONFIG_USE_NETMASK is not set +# CONFIG_USE_ROOTPATH is not set +# CONFIG_USE_SERVERIP is not set # CONFIG_PROT_TCP is not set # CONFIG_IPV6 is not set CONFIG_SYS_RX_ETH_BUFFER=4 @@ -1056,13 +1089,13 @@ CONFIG_OF_TRANSLATE=y # CONFIG_TRANSLATION_OFFSET is not set CONFIG_DM_DEV_READ_INLINE=y # CONFIG_OFNODE_MULTI_TREE is not set -# CONFIG_ACPIGEN is not set CONFIG_BOUNCE_BUFFER=y CONFIG_ADC=y # CONFIG_ADC_EXYNOS is not set # CONFIG_ADC_SANDBOX is not set # CONFIG_SARADC_MESON is not set CONFIG_SARADC_ROCKCHIP=y +# CONFIG_ADC_IMX93 is not set # CONFIG_SATA is not set # CONFIG_SCSI_AHCI is not set @@ -1077,8 +1110,10 @@ CONFIG_SARADC_ROCKCHIP=y CONFIG_BLK=y CONFIG_SPL_BLK=y CONFIG_BLOCK_CACHE=y +# CONFIG_BLKMAP is not set # CONFIG_SPL_BLOCK_CACHE is not set # CONFIG_EFI_MEDIA is not set +# CONFIG_SPL_BLK_FS is not set # CONFIG_IDE is not set # CONFIG_LBA48 is not set # CONFIG_SYS_64BIT_LBA is not set @@ -1094,6 +1129,7 @@ CONFIG_BLOCK_CACHE=y # # CONFIG_CACHE is not set # CONFIG_L2X0_CACHE is not set +# CONFIG_V5L2_CACHE is not set # CONFIG_NCORE_CACHE is not set # CONFIG_SIFIVE_CCACHE is not set @@ -1110,6 +1146,8 @@ CONFIG_SPL_CLK=y # CONFIG_CLK_MPC83XX is not set # CONFIG_CLK_XLNX_CLKWZRD is not set # CONFIG_CLK_AT91 is not set +# CONFIG_CLK_RCAR is not set +# CONFIG_CLK_RCAR_CPG_LIB is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_TI_AM3_DPLL is not set # CONFIG_CLK_TI_CTRL is not set @@ -1126,6 +1164,7 @@ CONFIG_SPL_CLK=y CONFIG_CAAM_64BIT=y # CONFIG_SYS_FSL_SEC_BE is not set # CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG is not set # CONFIG_NPCM_AES is not set # CONFIG_NPCM_SHA is not set # CONFIG_DDR_SPD is not set @@ -1148,15 +1187,22 @@ CONFIG_CAAM_64BIT=y # CONFIG_TI_EDMA3 is not set # CONFIG_DMA_LEGACY is not set +# +# Extcon Support +# +# CONFIG_EXTCON is not set + # # Fastboot support # # CONFIG_UDP_FUNCTION_FASTBOOT is not set +# CONFIG_TCP_FUNCTION_FASTBOOT is not set CONFIG_FIRMWARE=y # CONFIG_SPL_FIRMWARE is not set CONFIG_ARM_PSCI_FW=y # CONFIG_ZYNQMP_FIRMWARE is not set # CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_SCMI_FIRMWARE is not set # CONFIG_DM_FUZZING_ENGINE is not set @@ -1165,6 +1211,7 @@ CONFIG_ARM_PSCI_FW=y # # CONFIG_FPGA_ALTERA is not set # CONFIG_FPGA_SOCFPGA is not set +# CONFIG_FPGA_LATTICE is not set # CONFIG_FPGA_XILINX is not set # CONFIG_DM_FPGA is not set # CONFIG_FWU_MDATA is not set @@ -1182,6 +1229,7 @@ CONFIG_SPL_DM_GPIO=y # CONFIG_ASPEED_GPIO is not set # CONFIG_DA8XX_GPIO is not set # CONFIG_FXL6408_GPIO is not set +# CONFIG_HIKEY_GPIO is not set # CONFIG_INTEL_BROADWELL_GPIO is not set # CONFIG_INTEL_GPIO is not set # CONFIG_INTEL_ICH6_GPIO is not set @@ -1200,7 +1248,7 @@ CONFIG_SPL_DM_GPIO=y # CONFIG_PCF8575_GPIO is not set CONFIG_ROCKCHIP_GPIO=y # CONFIG_XILINX_GPIO is not set -# CONFIG_CMD_TCA642X is not set +# CONFIG_TCA642X is not set # CONFIG_TEGRA_GPIO is not set # CONFIG_TEGRA186_GPIO is not set # CONFIG_VYBRID_GPIO is not set @@ -1209,7 +1257,9 @@ CONFIG_ROCKCHIP_GPIO=y # CONFIG_DM_74X164 is not set # CONFIG_DM_PCA953X is not set # CONFIG_SPL_DM_PCA953X is not set +# CONFIG_PCA953X is not set # CONFIG_MPC8XXX_GPIO is not set +# CONFIG_MPC8XX_GPIO is not set # CONFIG_NX_GPIO is not set # CONFIG_NOMADIK_GPIO is not set # CONFIG_ZYNQMP_GPIO_MODEPIN is not set @@ -1257,6 +1307,7 @@ CONFIG_INPUT=y CONFIG_DM_KEYBOARD=y # CONFIG_SPL_DM_KEYBOARD is not set # CONFIG_APPLE_SPI_KEYB is not set +# CONFIG_BUTTON_KEYBOARD is not set CONFIG_CROS_EC_KEYB=y # CONFIG_I8042_KEYB is not set # CONFIG_TEGRA_KEYBOARD is not set @@ -1283,6 +1334,8 @@ CONFIG_CROS_EC_KEYB=y # Memory Controller drivers # # CONFIG_MEMORY is not set +# CONFIG_ATMEL_EBI is not set +# CONFIG_MFD_ATMEL_SMC is not set # # Multifunction device drivers @@ -1297,6 +1350,8 @@ CONFIG_SPL_MISC=y CONFIG_ROCKCHIP_EFUSE=y # CONFIG_ROCKCHIP_OTP is not set # CONFIG_SIFIVE_OTP is not set +# CONFIG_SMSC_LPC47M is not set +# CONFIG_SMSC_SIO1007 is not set # CONFIG_VEXPRESS_CONFIG is not set CONFIG_CROS_EC=y # CONFIG_SPL_CROS_EC is not set @@ -1372,7 +1427,6 @@ CONFIG_MMC_SDHCI_SDMA=y # CONFIG_MMC_SDHCI_NPCM is not set CONFIG_MMC_SDHCI_ROCKCHIP=y # CONFIG_MMC_SDHCI_S5P is not set -# CONFIG_MMC_SDHCI_SPEAR is not set # CONFIG_MMC_SDHCI_STI is not set # CONFIG_MMC_SDHCI_XENON is not set # CONFIG_MMC_SDHCI_TANGIER is not set @@ -1402,8 +1456,7 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SF_DEFAULT_BUS=1 CONFIG_SF_DEFAULT_CS=0 -CONFIG_SF_DEFAULT_MODE=0x0 -CONFIG_SF_DEFAULT_SPEED=20000000 +# CONFIG_BOOTDEV_SPI_FLASH is not set # CONFIG_SPI_FLASH_SFDP_SUPPORT is not set CONFIG_SPI_FLASH_SMART_HWCAPS=y # CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set @@ -1429,6 +1482,8 @@ CONFIG_SPI_FLASH_USE_4K_SECTORS=y # # CONFIG_UBI_SILENCE_MSG is not set # CONFIG_MTD_UBI is not set +# CONFIG_NVMXIP is not set +# CONFIG_NVMXIP_QSPI is not set # # Multiplexer drivers @@ -1444,14 +1499,17 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ADIN is not set # CONFIG_PHY_AQUANTIA is not set # CONFIG_PHY_ATHEROS is not set +# CONFIG_SPL_PHY_ATHEROS is not set # CONFIG_PHY_BROADCOM is not set # CONFIG_PHY_CORTINA is not set # CONFIG_PHY_DAVICOM is not set # CONFIG_PHY_ET1011C is not set # CONFIG_PHY_LXT is not set # CONFIG_PHY_MARVELL is not set +# CONFIG_PHY_MARVELL_10G is not set # CONFIG_PHY_MESON_GXL is not set # CONFIG_PHY_MICREL is not set +# CONFIG_PHY_MOTORCOMM is not set # CONFIG_PHY_MSCC is not set # CONFIG_PHY_NATSEMI is not set # CONFIG_PHY_NXP_C45_TJA11XX is not set @@ -1473,7 +1531,6 @@ CONFIG_PHYLIB=y # CONFIG_FSL_MEMAC is not set CONFIG_PHY_RESET_DELAY=0 # CONFIG_FSL_PFE is not set -# CONFIG_BNXT_ETH is not set CONFIG_ETH=y CONFIG_DM_ETH=y # CONFIG_DM_MDIO is not set @@ -1483,6 +1540,7 @@ CONFIG_NETDEVICES=y # CONFIG_ALTERA_TSE is not set # CONFIG_BCM_SF2_ETH is not set # CONFIG_BCMGENET is not set +# CONFIG_BNXT_ETH is not set # CONFIG_CALXEDA_XGMAC is not set # CONFIG_DRIVER_DM9000 is not set # CONFIG_DWC_ETH_QOS is not set @@ -1509,7 +1567,6 @@ CONFIG_ETH_DESIGNWARE=y # CONFIG_PCNET is not set # CONFIG_QE_UEC is not set # CONFIG_RTL8139 is not set -# CONFIG_RTL8169 is not set # CONFIG_SMC911X is not set # CONFIG_SUN7I_GMAC is not set # CONFIG_SUN4I_EMAC is not set @@ -1520,6 +1577,7 @@ CONFIG_ETH_DESIGNWARE=y # CONFIG_DRIVER_TI_KEYSTONE_NET is not set # CONFIG_TULIP is not set # CONFIG_XILINX_AXIEMAC is not set +# CONFIG_VSC7385_ENET is not set # CONFIG_XILINX_EMACLITE is not set # CONFIG_ZYNQ_GEM is not set CONFIG_GMAC_ROCKCHIP=y @@ -1529,7 +1587,6 @@ CONFIG_GMAC_ROCKCHIP=y # CONFIG_HIGMACV300_ETH is not set # CONFIG_NVME is not set # CONFIG_NVME_APPLE is not set -# CONFIG_PCI is not set # # PCI Endpoint @@ -1551,9 +1608,12 @@ CONFIG_PHY=y # # Rockchip PHY driver # +# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set CONFIG_PHY_ROCKCHIP_INNO_USB2=y +# CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY is not set # CONFIG_PHY_ROCKCHIP_PCIE is not set # CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set +# CONFIG_PHY_ROCKCHIP_USBDP is not set CONFIG_PHY_ROCKCHIP_TYPEC=y # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_TORRENT is not set @@ -1640,6 +1700,10 @@ CONFIG_PMIC_RK8XX=y # CONFIG_PMIC_TPS65941 is not set # CONFIG_PMIC_TPS65219 is not set # CONFIG_PMIC_TPS65217 is not set +# CONFIG_POWER_TPS65218 is not set +# CONFIG_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS65910 is not set CONFIG_DM_REGULATOR=y CONFIG_REGULATOR_PWM=y # CONFIG_SPL_REGULATOR_PWM is not set @@ -1653,6 +1717,7 @@ CONFIG_REGULATOR_RK8XX=y # CONFIG_DM_REGULATOR_TPS62360 is not set # CONFIG_DM_REGULATOR_ANATOP is not set # CONFIG_DM_REGULATOR_SCMI is not set +# CONFIG_TPS6586X_POWER is not set # CONFIG_POWER_MT6323 is not set CONFIG_DM_PWM=y # CONFIG_PWM_ASPEED is not set @@ -1674,10 +1739,14 @@ CONFIG_SPL_RAM=y # CONFIG_MPC83XX_SDRAM is not set # CONFIG_K3_DDRSS is not set # CONFIG_IMXRT_SDRAM is not set +# CONFIG_CADENCE_DDR_CTRL is not set CONFIG_RAM_ROCKCHIP=y CONFIG_ROCKCHIP_SDRAM_COMMON=y CONFIG_RAM_ROCKCHIP_DEBUG=y -# CONFIG_RAM_RK3399_LPDDR4 is not set +# CONFIG_RAM_ROCKCHIP_DDR4 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR2 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR3 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR4 is not set # # Reboot Mode Support @@ -1691,7 +1760,6 @@ CONFIG_RAM_ROCKCHIP_DEBUG=y # # Reset Controller Support # -CONFIG_DM_RESET=y # CONFIG_RESET_AST2500 is not set # CONFIG_RESET_AST2600 is not set CONFIG_RESET_ROCKCHIP=y @@ -1712,9 +1780,15 @@ CONFIG_RNG_ROCKCHIP=y # CONFIG_DM_RTC is not set # CONFIG_SPL_DM_RTC is not set # CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set +# CONFIG_RTC_DS1337 is not set +# CONFIG_RTC_DS1338 is not set +# CONFIG_RTC_DS1374 is not set +# CONFIG_RTC_DS3231 is not set # CONFIG_RTC_PCF8563 is not set +# CONFIG_RTC_PT7C4338 is not set # CONFIG_RTC_PL031 is not set # CONFIG_RTC_S35392A is not set +# CONFIG_RTC_MC13XXX is not set # CONFIG_RTC_MC146818 is not set # CONFIG_RTC_M41T62 is not set # CONFIG_SCSI is not set @@ -1753,11 +1827,14 @@ CONFIG_DEBUG_UART_SHIFT=2 # CONFIG_NULLDEV_SERIAL is not set CONFIG_SYS_NS16550=y # CONFIG_NS16550_DYNAMIC is not set +CONFIG_SYS_NS16550_MEM32=y +# CONFIG_SYS_NS16550_PORT_MAPPED is not set # CONFIG_PL01X_SERIAL is not set # CONFIG_ROCKCHIP_SERIAL is not set # CONFIG_XILINX_UARTLITE is not set # CONFIG_MSM_SERIAL is not set # CONFIG_MSM_GENI_SERIAL is not set +# CONFIG_MXS_AUART_SERIAL is not set # CONFIG_OMAP_SERIAL is not set # CONFIG_SIFIVE_SERIAL is not set # CONFIG_ZYNQ_SERIAL is not set @@ -1814,6 +1891,7 @@ CONFIG_ROCKCHIP_SPI=y # CONFIG_SPI_ASPEED_SMC is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SOFT_SPI is not set +# CONFIG_SPI_SN_F_OSPI is not set # CONFIG_SPI_SUNXI is not set # CONFIG_TEGRA114_SPI is not set # CONFIG_TEGRA20_SFLASH is not set @@ -1824,7 +1902,6 @@ CONFIG_ROCKCHIP_SPI=y # CONFIG_ZYNQ_SPI is not set # CONFIG_ZYNQ_QSPI is not set # CONFIG_ZYNQMP_GQSPI is not set -# CONFIG_FSL_ESPI is not set # CONFIG_SH_QSPI is not set # CONFIG_MXC_SPI is not set @@ -1868,6 +1945,7 @@ CONFIG_SPL_DM_USB=y # USB Host Controller Drivers # CONFIG_USB_HOST=y +# CONFIG_SPL_USB_HOST is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y @@ -1933,6 +2011,8 @@ CONFIG_USB_DWC3=y # CONFIG_USB_STORAGE=y CONFIG_USB_KEYBOARD=y +# CONFIG_USB_ONBOARD_HUB is not set +CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000 CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_SYS_USB_EVENT_POLL=y # CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE is not set @@ -1946,6 +2026,7 @@ CONFIG_USB_ETHER_MCS7830=y CONFIG_USB_ETHER_RTL8152=y CONFIG_USB_ETHER_SMSC95XX=y # CONFIG_USB_GADGET is not set +# CONFIG_SPL_USB_GADGET is not set # # UFS Host Controller Support @@ -1956,6 +2037,10 @@ CONFIG_USB_ETHER_SMSC95XX=y # Graphics support # CONFIG_VIDEO=y +# CONFIG_VIDEO_FONT_4X6 is not set +CONFIG_VIDEO_FONT_8X16=y +# CONFIG_VIDEO_FONT_SUN12X22 is not set +# CONFIG_VIDEO_FONT_16X32 is not set CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT=y CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0 @@ -1976,21 +2061,22 @@ CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_PANEL=y CONFIG_SIMPLE_PANEL=y # CONFIG_PANEL_HX8238D is not set -# CONFIG_VIDEO_FONT_4X6 is not set -CONFIG_VIDEO_FONT_8X16=y -# CONFIG_VIDEO_FONT_SUN12X22 is not set -# CONFIG_VIDEO_FONT_TER16X32 is not set # # TrueType Fonts # # CONFIG_VIDCONSOLE_AS_LCD is not set +# CONFIG_VIDEO_BOCHS is not set # CONFIG_VIDEO_VESA is not set # CONFIG_VIDEO_LCD_ANX9804 is not set # CONFIG_ATMEL_LCD_BGR555 is not set # CONFIG_VIDEO_BCM2835 is not set +# CONFIG_VIDEO_LCD_ENDEAVORU is not set +# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set # CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set # CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set +# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set +# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set # CONFIG_VIDEO_LCD_SSD2828 is not set # CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set # CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set @@ -2000,6 +2086,8 @@ CONFIG_I2C_EDID=y CONFIG_DISPLAY=y # CONFIG_NXP_TDA19988 is not set # CONFIG_ATMEL_HLCD is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_AM335X_LCD is not set # CONFIG_VIDEO_EXYNOS is not set # CONFIG_LOGICORE_DP_TX is not set CONFIG_VIDEO_ROCKCHIP=y @@ -2009,11 +2097,16 @@ CONFIG_DISPLAY_ROCKCHIP_EDP=y # CONFIG_DISPLAY_ROCKCHIP_LVDS is not set # CONFIG_DISPLAY_ROCKCHIP_HDMI is not set # CONFIG_DISPLAY_ROCKCHIP_MIPI is not set +# CONFIG_DISPLAY_ROCKCHIP_DW_MIPI is not set # CONFIG_VIDEO_ARM_MALIDP is not set # CONFIG_VIDEO_STM32 is not set -# CONFIG_VIDEO_TEGRA20 is not set +# CONFIG_VIDEO_TIDSS is not set # CONFIG_VIDEO_TEGRA124 is not set # CONFIG_VIDEO_BRIDGE is not set +# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set +# CONFIG_VIDEO_TEGRA20 is not set +# CONFIG_VIDEO_DSI_TEGRA30 is not set +# CONFIG_TEGRA_BACKLIGHT_PWM is not set # CONFIG_VIDEO_MXS is not set # CONFIG_VIDEO_SEPS525 is not set CONFIG_CONSOLE_SCROLL_LINES=1 @@ -2021,12 +2114,14 @@ CONFIG_CONSOLE_SCROLL_LINES=1 # CONFIG_VIDEO_DT_SIMPLEFB is not set # CONFIG_VIDEO_MCDE_SIMPLE is not set # CONFIG_OSD is not set +# CONFIG_VIDEO_REMOVE is not set # CONFIG_SPLASH_SCREEN is not set CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000 CONFIG_VIDEO_BMP_RLE8=y # CONFIG_BMP_16BPP is not set # CONFIG_BMP_24BPP is not set # CONFIG_BMP_32BPP is not set +# CONFIG_SPL_VIDEO is not set # # VirtIO Drivers @@ -2052,7 +2147,6 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 # CONFIG_ULP_WATCHDOG is not set # CONFIG_WDT is not set # CONFIG_SPL_WDT is not set -# CONFIG_PVBLOCK is not set # CONFIG_PHYS_TO_BUS is not set # @@ -2078,6 +2172,7 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 # Library routines # # CONFIG_ADDR_MAP is not set +# CONFIG_SYS_TIMER_COUNTS_DOWN is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set CONFIG_BINMAN_FDT=y @@ -2085,6 +2180,7 @@ CONFIG_BINMAN_FDT=y CONFIG_CHARSET=y # CONFIG_DYNAMIC_CRC_TABLE is not set CONFIG_LIB_UUID=y +CONFIG_SPL_LIB_UUID=y # CONFIG_SEMIHOSTING is not set # CONFIG_SPL_SEMIHOSTING is not set CONFIG_PRINTF=y @@ -2100,7 +2196,7 @@ CONFIG_REGEX=y CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set CONFIG_SUPPORT_ACPI=y -# CONFIG_GENERATE_ACPI_TABLE is not set +# CONFIG_ACPI is not set # CONFIG_SPL_TINY_MEMSET is not set # CONFIG_BITREVERSE is not set # CONFIG_TRACE is not set @@ -2129,12 +2225,16 @@ CONFIG_SHA256=y # CONFIG_SHA512 is not set # CONFIG_SHA384 is not set # CONFIG_SHA_HW_ACCEL is not set +CONFIG_SPL_CRC32=y CONFIG_SPL_SHA1=y CONFIG_SPL_SHA256=y # CONFIG_SPL_SHA512 is not set # CONFIG_SPL_SHA384 is not set # CONFIG_SPL_SHA_HW_ACCEL is not set CONFIG_MD5=y +# CONFIG_SPL_MD5 is not set +CONFIG_CRC8=y +# CONFIG_SPL_CRC8 is not set CONFIG_CRC32=y # @@ -2148,6 +2248,7 @@ CONFIG_GZIP=y # CONFIG_BZIP2 is not set CONFIG_ZLIB=y # CONFIG_ZSTD is not set +# CONFIG_SPL_BZIP2 is not set # CONFIG_SPL_LZ4 is not set # CONFIG_SPL_LZMA is not set CONFIG_VPL_LZMA=y @@ -2159,7 +2260,6 @@ CONFIG_ERRNO_STR=y CONFIG_GETOPT=y CONFIG_OF_LIBFDT=y CONFIG_OF_LIBFDT_ASSUME_MASK=0 -# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_SYS_FDT_PAD=0x3000 CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff @@ -2177,8 +2277,10 @@ CONFIG_EFI_VARIABLE_FILE_STORE=y # CONFIG_EFI_VARIABLE_NO_STORE is not set # CONFIG_EFI_VARIABLES_PRESEED is not set CONFIG_EFI_VAR_BUF_SIZE=32768 +# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set # CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set # CONFIG_EFI_CAPSULE_ON_DISK is not set +CONFIG_EFI_CAPSULE_MAX=15 CONFIG_EFI_DEVICE_PATH_TO_TEXT=y CONFIG_EFI_DEVICE_PATH_UTIL=y CONFIG_EFI_DT_FIXUP=y @@ -2199,11 +2301,17 @@ CONFIG_EFI_EBBR_2_1_CONFORMANCE=y CONFIG_LIB_ELF=y CONFIG_LMB=y CONFIG_LMB_USE_MAX_REGIONS=y -CONFIG_LMB_MAX_REGIONS=8 +CONFIG_LMB_MAX_REGIONS=16 +# CONFIG_PHANDLE_CHECK_SEQ is not set # # FWU Multi Bank Updates # +# CONFIG_POST is not set + +# +# Unit tests +# # CONFIG_UNIT_TEST is not set # CONFIG_SPL_UNIT_TEST is not set @@ -2228,3 +2336,4 @@ CONFIG_TOOLS_SHA384=y CONFIG_TOOLS_SHA512=y # CONFIG_TOOLS_MKEFICAPSULE is not set # CONFIG_FSPI_CONF_HEADER is not set +# CONFIG_TOOLS_MKFWUMDATA is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 6c72c468..a76b6b9c 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# U-Boot 2023.01 Configuration +# U-Boot 2023.10 Configuration # # -# Compiler: gcc (Debian 12.2.0-14) 12.2.0 +# Compiler: gcc (Debian 13.2.0-5) 13.2.0 # CONFIG_CREATE_ARCH_SYMLINK=y CONFIG_SYS_CACHE_SHIFT_6=y @@ -28,6 +28,10 @@ CONFIG_SYS_SOC="rk3399" CONFIG_SYS_VENDOR="google" CONFIG_SYS_BOARD="gru" CONFIG_SYS_CONFIG_NAME="gru" + +# +# Skipping low level initialization functions +# CONFIG_SKIP_LOWLEVEL_INIT=y # CONFIG_SPL_SKIP_LOWLEVEL_INIT is not set # CONFIG_TPL_SKIP_LOWLEVEL_INIT is not set @@ -73,6 +77,7 @@ CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_HISTB is not set # CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_ORION5X is not set @@ -81,7 +86,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_BCMSTB is not set # CONFIG_ARCH_BCMBCA is not set # CONFIG_TARGET_VEXPRESS_CA9X4 is not set -# CONFIG_TARGET_BCMCYGNUS is not set +# CONFIG_TARGET_BCMNS is not set # CONFIG_TARGET_BCMNS2 is not set # CONFIG_TARGET_BCMNS3 is not set # CONFIG_ARCH_EXYNOS is not set @@ -183,14 +188,19 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_NR_DRAM_BANKS=1 CONFIG_SPL_LDSCRIPT="arch/arm/cpu/armv8/u-boot-spl.lds" +CONFIG_ENV_SOURCE_FILE="" +CONFIG_SF_DEFAULT_SPEED=20000000 +CONFIG_SF_DEFAULT_MODE=0x0 CONFIG_ENV_SIZE=0x8000 CONFIG_DM_GPIO=y CONFIG_SPL_DM_SPI=y CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-kevin" CONFIG_SPL_TEXT_BASE=0xff8c2000 CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_SYS_PROMPT="=> " +# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 +CONFIG_DM_RESET=y +CONFIG_SYS_MONITOR_LEN=0 # CONFIG_ROCKCHIP_PX30 is not set # CONFIG_ROCKCHIP_RK3036 is not set # CONFIG_ROCKCHIP_RK3066 is not set @@ -203,11 +213,14 @@ CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 # CONFIG_ROCKCHIP_RK3368 is not set CONFIG_ROCKCHIP_RK3399=y # CONFIG_ROCKCHIP_RK3568 is not set +# CONFIG_ROCKCHIP_RK3588 is not set # CONFIG_ROCKCHIP_RV1108 is not set +# CONFIG_ROCKCHIP_RV1126 is not set # CONFIG_ROCKCHIP_USB_UART is not set # CONFIG_SPL_ROCKCHIP_BACK_TO_BROM is not set CONFIG_ROCKCHIP_COMMON_BOARD=y CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y +# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set CONFIG_ROCKCHIP_BOOT_MODE_REG=0 # CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set CONFIG_ROCKCHIP_STIMER=y @@ -226,10 +239,12 @@ CONFIG_SPL_STACK_R_ADDR=0x04000000 CONFIG_TARGET_CHROMEBOOK_KEVIN=y # CONFIG_TARGET_EVB_RK3399 is not set # CONFIG_TARGET_PINEBOOK_PRO_RK3399 is not set +# CONFIG_TARGET_PINEPHONE_PRO_RK3399 is not set # CONFIG_TARGET_PUMA_RK3399 is not set # CONFIG_TARGET_ROCK960_RK3399 is not set # CONFIG_TARGET_ROCKPRO64_RK3399 is not set # CONFIG_TARGET_ROC_PC_RK3399 is not set +CONFIG_SPL_STACK=0xff8effff CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000 CONFIG_ERR_PTR_OFFSET=0x0 CONFIG_SPL_SIZE_LIMIT=0x0 @@ -247,6 +262,7 @@ CONFIG_SYS_CLK_FREQ=0 # CONFIG_SPL_LIBDISK_SUPPORT is not set CONFIG_SPL_SPI_FLASH_SUPPORT=y CONFIG_SPL_SPI=y +# CONFIG_CMO_BY_VA_ONLY is not set # CONFIG_ARMV8_SPL_EXCEPTION_VECTORS is not set # CONFIG_ARMV8_MULTIENTRY is not set # CONFIG_ARMV8_SET_SMPEN is not set @@ -266,6 +282,7 @@ CONFIG_PSCI_RESET=y # CONFIG_IMX_CAAM_DEK_ENCAP is not set # CONFIG_IMX_OPTEE_DEK_ENCAP is not set # CONFIG_IMX_SECO_DEK_ENCAP is not set +# CONFIG_IMX_ELE_DEK_ENCAP is not set # CONFIG_CMD_HDMIDETECT is not set CONFIG_IMX_DCD_ADDR=0x00910000 # CONFIG_SPL_LOAD_IMX_CONTAINER is not set @@ -278,16 +295,17 @@ CONFIG_SYS_LOAD_ADDR=0x800800 # CONFIG_SPL_PAYLOAD="u-boot.bin" CONFIG_BUILD_TARGET="" +# CONFIG_PCI is not set CONFIG_FWU_NUM_BANKS=2 CONFIG_FWU_NUM_IMAGES_PER_BANK=2 CONFIG_DEBUG_UART=y # CONFIG_AHCI is not set # CONFIG_OF_BOARD_FIXUP is not set -# CONFIG_NXP_ESBC is not set # -# Other functionality shared between NXP SoCs +# Functionality shared between NXP SoCs # +# CONFIG_NXP_ESBC is not set # # General setup @@ -295,7 +313,7 @@ CONFIG_DEBUG_UART=y CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120200 +CONFIG_GCC_VERSION=130200 CONFIG_CLANG_VERSION=0 CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set @@ -306,7 +324,6 @@ CONFIG_ARCH_SUPPORTS_LTO=y # CONFIG_LTO is not set CONFIG_CC_HAS_ASM_INLINE=y # CONFIG_XEN is not set -CONFIG_DISTRO_DEFAULTS=y CONFIG_ENV_VARS_UBOOT_CONFIG=y # CONFIG_SYS_BOOT_GET_CMDLINE is not set # CONFIG_SYS_BOOT_GET_KBD is not set @@ -314,9 +331,11 @@ CONFIG_SYS_MALLOC_F=y # CONFIG_VALGRIND is not set CONFIG_EXPERT=y CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y +CONFIG_SPL_SYS_MALLOC_CLEAR_ON_INIT=y # CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set # CONFIG_TOOLS_DEBUG is not set CONFIG_PHYS_64BIT=y +CONFIG_FDT_64BIT=y CONFIG_HAS_ROM=y CONFIG_SPL_IMAGE="spl/u-boot-spl.bin" CONFIG_REMAKE_ELF=y @@ -326,13 +345,7 @@ CONFIG_PLATFORM_ELFENTRY="_start" CONFIG_STACK_SIZE=0x1000000 CONFIG_SYS_SRAM_BASE=0x0 CONFIG_SYS_SRAM_SIZE=0x0 -CONFIG_SYS_MONITOR_LEN=0 # CONFIG_MP is not set -# CONFIG_EXAMPLES is not set - -# -# API -# # CONFIG_API is not set # @@ -362,23 +375,28 @@ CONFIG_SPL_LOAD_FIT_ADDRESS=0x0 # CONFIG_SPL_LOAD_FIT_FULL is not set # CONFIG_SPL_FIT_IMAGE_POST_PROCESS is not set CONFIG_SPL_FIT_SOURCE="" -CONFIG_USE_SPL_FIT_GENERATOR=y -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py" +# CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_PXE_UTILS=y +CONFIG_BOOT_DEFAULTS=y CONFIG_BOOTSTD=y -# CONFIG_BOOTSTD_FULL is not set # CONFIG_SPL_BOOTSTD is not set -# CONFIG_BOOTSTD_BOOTCOMMAND is not set +# CONFIG_BOOTSTD_FULL is not set +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_BOOTMETH_GLOBAL=y -CONFIG_BOOTMETH_DISTRO=y -CONFIG_BOOTMETH_DISTRO_PXE=y +CONFIG_BOOTMETH_EXTLINUX=y +CONFIG_BOOTMETH_EXTLINUX_PXE=y CONFIG_BOOTMETH_EFILOADER=y CONFIG_BOOTMETH_VBE=y +CONFIG_BOOTMETH_DISTRO=y # CONFIG_SPL_BOOTMETH_VBE is not set +CONFIG_BOOTMETH_VBE_REQUEST=y +# CONFIG_SPL_BOOTMETH_VBE_REQUEST is not set CONFIG_BOOTMETH_VBE_SIMPLE=y CONFIG_BOOTMETH_VBE_SIMPLE_OS=y # CONFIG_SPL_BOOTMETH_VBE_SIMPLE is not set -# CONFIG_BOOTMETH_SCRIPT is not set +CONFIG_EXPO=y +CONFIG_BOOTMETH_SCRIPT=y CONFIG_LEGACY_IMAGE_FORMAT=y CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_OF_BOARD_SETUP is not set @@ -391,6 +409,7 @@ CONFIG_ARCH_FIXUP_FDT_MEMORY=y # CONFIG_CHROMEOS_VBOOT is not set # CONFIG_RAMBOOT_PBL is not set CONFIG_SYS_BOOT_RAMDISK_HIGH=y +# CONFIG_DISTRO_DEFAULTS is not set # # Boot timing @@ -427,12 +446,17 @@ CONFIG_BOOTDELAY=2 # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="run distro_bootcmd" +CONFIG_BOOTCOMMAND="bootflow scan" # CONFIG_USE_PREBOOT is not set CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-kevin.dtb" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set # CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set +# +# Configuration editor +# +# CONFIG_CEDIT is not set + # # Console # @@ -485,13 +509,13 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_EVENT=y CONFIG_EVENT_DYNAMIC=y # CONFIG_EVENT_DEBUG is not set -# CONFIG_ARCH_EARLY_INIT_R is not set # CONFIG_ARCH_MISC_INIT is not set # CONFIG_BOARD_EARLY_INIT_F is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_POSTCLK_INIT is not set CONFIG_BOARD_LATE_INIT=y # CONFIG_CLOCKS is not set +# CONFIG_HWCONFIG is not set # CONFIG_LAST_STAGE_INIT is not set CONFIG_MISC_INIT_R=y # CONFIG_SYS_MALLOC_BOOTPARAMS is not set @@ -553,7 +577,6 @@ CONFIG_SPL_BOARD_INIT=y # CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set CONFIG_SPL_SYS_MALLOC_SIMPLE=y # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set -CONFIG_SPL_STACK=0xff8effff CONFIG_SPL_STACK_R=y CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 CONFIG_SPL_SEPARATE_BSS=y @@ -564,8 +587,6 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0 # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set -CONFIG_SPL_CRC32=y -# CONFIG_SPL_MD5 is not set # CONFIG_SPL_FIT_IMAGE_TINY is not set # CONFIG_SPL_CACHE is not set # CONFIG_SPL_CPU is not set @@ -579,7 +600,6 @@ CONFIG_SPL_CRC32=y # CONFIG_SPL_I2C is not set # CONFIG_SPL_DM_MAILBOX is not set # CONFIG_SPL_MEMORY is not set -CONFIG_SYS_MMCSD_FS_BOOT_PARTITION=1 # CONFIG_SPL_MPC8XXX_INIT_DDR is not set # CONFIG_SPL_MTD_SUPPORT is not set # CONFIG_SPL_MUSB_NEW is not set @@ -604,13 +624,12 @@ CONFIG_SPL_DM_SPI_FLASH=y # CONFIG_SPL_REMOTEPROC is not set # CONFIG_SPL_RTC is not set # CONFIG_SPL_SATA is not set +# CONFIG_SPL_NVME is not set CONFIG_SPL_SPI_FLASH_TINY=y # CONFIG_SPL_SPI_FLASH_MTD is not set CONFIG_SPL_SPI_LOAD=y CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000 # CONFIG_SPL_THERMAL is not set -# CONFIG_SPL_USB_HOST is not set -# CONFIG_SPL_USB_GADGET is not set # CONFIG_SPL_WATCHDOG is not set # CONFIG_SPL_YMODEM_SUPPORT is not set CONFIG_SPL_ATF=y @@ -621,6 +640,7 @@ CONFIG_SPL_TARGET="" # CONFIG_TPL is not set # CONFIG_VPL is not set # CONFIG_FDT_SIMPLEFB is not set +# CONFIG_BMP is not set # # Command line interface @@ -631,6 +651,7 @@ CONFIG_CMDLINE_EDITING=y # CONFIG_CMDLINE_PS_SUPPORT is not set CONFIG_AUTO_COMPLETE=y CONFIG_SYS_LONGHELP=y +CONFIG_SYS_PROMPT="=> " CONFIG_SYS_PROMPT_HUSH_PS2="> " CONFIG_SYS_MAXARGS=16 CONFIG_SYS_CBSIZE=1024 @@ -645,6 +666,7 @@ CONFIG_SYS_XTRACE=y # Info commands # CONFIG_CMD_BDI=y +# CONFIG_CMD_BDINFO_EXTRA is not set # CONFIG_CMD_CONFIG is not set CONFIG_CMD_CONSOLE=y # CONFIG_CMD_LICENSE is not set @@ -779,7 +801,6 @@ CONFIG_CMD_PINMUX=y # CONFIG_CMD_POWEROFF is not set # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set -# CONFIG_CMD_SCSI is not set # CONFIG_CMD_SDRAM is not set CONFIG_CMD_SF=y CONFIG_CMD_SF_TEST=y @@ -790,6 +811,7 @@ CONFIG_DEFAULT_SPI_MODE=0 # CONFIG_CMD_UNIVERSE is not set CONFIG_CMD_USB=y # CONFIG_CMD_USB_SDP is not set +# CONFIG_CMD_WRITE is not set # # Shell scripting commands @@ -827,8 +849,7 @@ CONFIG_CMD_TFTPBOOT=y # CONFIG_CMD_TFTPSRV is not set CONFIG_NET_TFTP_VARS=y # CONFIG_CMD_RARP is not set -CONFIG_CMD_NFS=y -CONFIG_NFS_TIMEOUT=2000 +# CONFIG_CMD_NFS is not set # CONFIG_SYS_DISABLE_AUTOLOAD is not set # CONFIG_CMD_WGET is not set CONFIG_CMD_MII=y @@ -845,6 +866,7 @@ CONFIG_CMD_PXE=y # # Misc commands # +# CONFIG_CMD_2048 is not set # CONFIG_CMD_BMP is not set # CONFIG_CMD_BSP is not set CONFIG_CMD_BLOCK_CACHE=y @@ -852,8 +874,9 @@ CONFIG_CMD_BLOCK_CACHE=y # CONFIG_CMD_CONITRACE is not set CONFIG_CMD_CLS=y # CONFIG_CMD_EFIDEBUG is not set -# CONFIG_CMD_EFICONFIG is not set +CONFIG_CMD_EFICONFIG=y # CONFIG_CMD_EXCEPTION is not set +# CONFIG_CMD_INI is not set # CONFIG_CMD_DATE is not set CONFIG_CMD_TIME=y # CONFIG_CMD_GETTIME is not set @@ -862,12 +885,13 @@ CONFIG_CMD_TIME=y # CONFIG_CMD_KASLRSEED is not set CONFIG_CMD_SLEEP=y # CONFIG_CMD_TIMER is not set -CONFIG_CMD_SYSBOOT=y +# CONFIG_CMD_SYSBOOT is not set # CONFIG_CMD_QFW is not set # CONFIG_CMD_PSTORE is not set # CONFIG_CMD_TERMINAL is not set # CONFIG_CMD_UUID is not set CONFIG_CMD_VIDCONSOLE=y +# CONFIG_CMD_SELECT_FONT is not set # # TI specific command line interface @@ -941,6 +965,7 @@ CONFIG_SPL_EFI_PARTITION=y CONFIG_PARTITION_UUIDS=y CONFIG_SPL_PARTITION_UUIDS=y CONFIG_PARTITION_TYPE_GUID=y +# CONFIG_SPL_PARTITION_TYPE_GUID is not set CONFIG_SUPPORT_OF_CONTROL=y CONFIG_PYLIBFDT=y CONFIG_DTOC=y @@ -962,6 +987,7 @@ CONFIG_OF_LIST="rk3399-gru-kevin" # CONFIG_MULTI_DTB_FIT is not set # CONFIG_SPL_MULTI_DTB_FIT is not set CONFIG_SPL_OF_LIST="rk3399-gru-kevin" +CONFIG_OF_TAG_MIGRATE=y CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" # CONFIG_OF_DTB_PROPS_REMOVE is not set # CONFIG_SPL_OF_PLATDATA is not set @@ -971,11 +997,12 @@ CONFIG_SPL_OF_REAL=y # Environment # CONFIG_ENV_SUPPORT=y -CONFIG_ENV_SOURCE_FILE="" CONFIG_SAVEENV=y # CONFIG_ENV_OVERWRITE is not set +# CONFIG_OVERWRITE_ETHADDR_ONCE is not set CONFIG_ENV_MIN_ENTRIES=64 CONFIG_ENV_MAX_ENTRIES=512 +CONFIG_ENV_IS_DEFAULT=y CONFIG_ENV_IS_NOWHERE=y # CONFIG_ENV_IS_IN_EEPROM is not set # CONFIG_ENV_IS_IN_FAT is not set @@ -997,6 +1024,7 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y # CONFIG_ENV_ACCESS_IGNORE_FORCE is not set # CONFIG_USE_BOOTFILE is not set # CONFIG_USE_ETHPRIME is not set +# CONFIG_USE_HOSTNAME is not set # CONFIG_VERSION_VARIABLE is not set CONFIG_NET=y CONFIG_ARP_TIMEOUT=5000 @@ -1018,6 +1046,11 @@ CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 # CONFIG_UDP_CHECKSUM is not set # CONFIG_BOOTP_SERVERIP is not set CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 +# CONFIG_USE_GATEWAYIP is not set +# CONFIG_USE_IPADDR is not set +# CONFIG_USE_NETMASK is not set +# CONFIG_USE_ROOTPATH is not set +# CONFIG_USE_SERVERIP is not set # CONFIG_PROT_TCP is not set # CONFIG_IPV6 is not set CONFIG_SYS_RX_ETH_BUFFER=4 @@ -1056,13 +1089,13 @@ CONFIG_OF_TRANSLATE=y # CONFIG_TRANSLATION_OFFSET is not set CONFIG_DM_DEV_READ_INLINE=y # CONFIG_OFNODE_MULTI_TREE is not set -# CONFIG_ACPIGEN is not set CONFIG_BOUNCE_BUFFER=y CONFIG_ADC=y # CONFIG_ADC_EXYNOS is not set # CONFIG_ADC_SANDBOX is not set # CONFIG_SARADC_MESON is not set CONFIG_SARADC_ROCKCHIP=y +# CONFIG_ADC_IMX93 is not set # CONFIG_SATA is not set # CONFIG_SCSI_AHCI is not set @@ -1077,8 +1110,10 @@ CONFIG_SARADC_ROCKCHIP=y CONFIG_BLK=y CONFIG_SPL_BLK=y CONFIG_BLOCK_CACHE=y +# CONFIG_BLKMAP is not set # CONFIG_SPL_BLOCK_CACHE is not set # CONFIG_EFI_MEDIA is not set +# CONFIG_SPL_BLK_FS is not set # CONFIG_IDE is not set # CONFIG_LBA48 is not set # CONFIG_SYS_64BIT_LBA is not set @@ -1094,6 +1129,7 @@ CONFIG_BLOCK_CACHE=y # # CONFIG_CACHE is not set # CONFIG_L2X0_CACHE is not set +# CONFIG_V5L2_CACHE is not set # CONFIG_NCORE_CACHE is not set # CONFIG_SIFIVE_CCACHE is not set @@ -1110,6 +1146,8 @@ CONFIG_SPL_CLK=y # CONFIG_CLK_MPC83XX is not set # CONFIG_CLK_XLNX_CLKWZRD is not set # CONFIG_CLK_AT91 is not set +# CONFIG_CLK_RCAR is not set +# CONFIG_CLK_RCAR_CPG_LIB is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_TI_AM3_DPLL is not set # CONFIG_CLK_TI_CTRL is not set @@ -1126,6 +1164,7 @@ CONFIG_SPL_CLK=y CONFIG_CAAM_64BIT=y # CONFIG_SYS_FSL_SEC_BE is not set # CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG is not set # CONFIG_NPCM_AES is not set # CONFIG_NPCM_SHA is not set # CONFIG_DDR_SPD is not set @@ -1148,15 +1187,22 @@ CONFIG_CAAM_64BIT=y # CONFIG_TI_EDMA3 is not set # CONFIG_DMA_LEGACY is not set +# +# Extcon Support +# +# CONFIG_EXTCON is not set + # # Fastboot support # # CONFIG_UDP_FUNCTION_FASTBOOT is not set +# CONFIG_TCP_FUNCTION_FASTBOOT is not set CONFIG_FIRMWARE=y # CONFIG_SPL_FIRMWARE is not set CONFIG_ARM_PSCI_FW=y # CONFIG_ZYNQMP_FIRMWARE is not set # CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_SCMI_FIRMWARE is not set # CONFIG_DM_FUZZING_ENGINE is not set @@ -1165,6 +1211,7 @@ CONFIG_ARM_PSCI_FW=y # # CONFIG_FPGA_ALTERA is not set # CONFIG_FPGA_SOCFPGA is not set +# CONFIG_FPGA_LATTICE is not set # CONFIG_FPGA_XILINX is not set # CONFIG_DM_FPGA is not set # CONFIG_FWU_MDATA is not set @@ -1182,6 +1229,7 @@ CONFIG_SPL_DM_GPIO=y # CONFIG_ASPEED_GPIO is not set # CONFIG_DA8XX_GPIO is not set # CONFIG_FXL6408_GPIO is not set +# CONFIG_HIKEY_GPIO is not set # CONFIG_INTEL_BROADWELL_GPIO is not set # CONFIG_INTEL_GPIO is not set # CONFIG_INTEL_ICH6_GPIO is not set @@ -1200,7 +1248,7 @@ CONFIG_SPL_DM_GPIO=y # CONFIG_PCF8575_GPIO is not set CONFIG_ROCKCHIP_GPIO=y # CONFIG_XILINX_GPIO is not set -# CONFIG_CMD_TCA642X is not set +# CONFIG_TCA642X is not set # CONFIG_TEGRA_GPIO is not set # CONFIG_TEGRA186_GPIO is not set # CONFIG_VYBRID_GPIO is not set @@ -1209,7 +1257,9 @@ CONFIG_ROCKCHIP_GPIO=y # CONFIG_DM_74X164 is not set # CONFIG_DM_PCA953X is not set # CONFIG_SPL_DM_PCA953X is not set +# CONFIG_PCA953X is not set # CONFIG_MPC8XXX_GPIO is not set +# CONFIG_MPC8XX_GPIO is not set # CONFIG_NX_GPIO is not set # CONFIG_NOMADIK_GPIO is not set # CONFIG_ZYNQMP_GPIO_MODEPIN is not set @@ -1257,6 +1307,7 @@ CONFIG_INPUT=y CONFIG_DM_KEYBOARD=y # CONFIG_SPL_DM_KEYBOARD is not set # CONFIG_APPLE_SPI_KEYB is not set +# CONFIG_BUTTON_KEYBOARD is not set CONFIG_CROS_EC_KEYB=y # CONFIG_I8042_KEYB is not set # CONFIG_TEGRA_KEYBOARD is not set @@ -1283,6 +1334,8 @@ CONFIG_CROS_EC_KEYB=y # Memory Controller drivers # # CONFIG_MEMORY is not set +# CONFIG_ATMEL_EBI is not set +# CONFIG_MFD_ATMEL_SMC is not set # # Multifunction device drivers @@ -1297,6 +1350,8 @@ CONFIG_SPL_MISC=y CONFIG_ROCKCHIP_EFUSE=y # CONFIG_ROCKCHIP_OTP is not set # CONFIG_SIFIVE_OTP is not set +# CONFIG_SMSC_LPC47M is not set +# CONFIG_SMSC_SIO1007 is not set # CONFIG_VEXPRESS_CONFIG is not set CONFIG_CROS_EC=y # CONFIG_SPL_CROS_EC is not set @@ -1372,7 +1427,6 @@ CONFIG_MMC_SDHCI_SDMA=y # CONFIG_MMC_SDHCI_NPCM is not set CONFIG_MMC_SDHCI_ROCKCHIP=y # CONFIG_MMC_SDHCI_S5P is not set -# CONFIG_MMC_SDHCI_SPEAR is not set # CONFIG_MMC_SDHCI_STI is not set # CONFIG_MMC_SDHCI_XENON is not set # CONFIG_MMC_SDHCI_TANGIER is not set @@ -1402,8 +1456,7 @@ CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SF_DEFAULT_BUS=1 CONFIG_SF_DEFAULT_CS=0 -CONFIG_SF_DEFAULT_MODE=0x0 -CONFIG_SF_DEFAULT_SPEED=20000000 +# CONFIG_BOOTDEV_SPI_FLASH is not set # CONFIG_SPI_FLASH_SFDP_SUPPORT is not set CONFIG_SPI_FLASH_SMART_HWCAPS=y # CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set @@ -1429,6 +1482,8 @@ CONFIG_SPI_FLASH_USE_4K_SECTORS=y # # CONFIG_UBI_SILENCE_MSG is not set # CONFIG_MTD_UBI is not set +# CONFIG_NVMXIP is not set +# CONFIG_NVMXIP_QSPI is not set # # Multiplexer drivers @@ -1444,14 +1499,17 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ADIN is not set # CONFIG_PHY_AQUANTIA is not set # CONFIG_PHY_ATHEROS is not set +# CONFIG_SPL_PHY_ATHEROS is not set # CONFIG_PHY_BROADCOM is not set # CONFIG_PHY_CORTINA is not set # CONFIG_PHY_DAVICOM is not set # CONFIG_PHY_ET1011C is not set # CONFIG_PHY_LXT is not set # CONFIG_PHY_MARVELL is not set +# CONFIG_PHY_MARVELL_10G is not set # CONFIG_PHY_MESON_GXL is not set # CONFIG_PHY_MICREL is not set +# CONFIG_PHY_MOTORCOMM is not set # CONFIG_PHY_MSCC is not set # CONFIG_PHY_NATSEMI is not set # CONFIG_PHY_NXP_C45_TJA11XX is not set @@ -1473,7 +1531,6 @@ CONFIG_PHYLIB=y # CONFIG_FSL_MEMAC is not set CONFIG_PHY_RESET_DELAY=0 # CONFIG_FSL_PFE is not set -# CONFIG_BNXT_ETH is not set CONFIG_ETH=y CONFIG_DM_ETH=y # CONFIG_DM_MDIO is not set @@ -1483,6 +1540,7 @@ CONFIG_NETDEVICES=y # CONFIG_ALTERA_TSE is not set # CONFIG_BCM_SF2_ETH is not set # CONFIG_BCMGENET is not set +# CONFIG_BNXT_ETH is not set # CONFIG_CALXEDA_XGMAC is not set # CONFIG_DRIVER_DM9000 is not set # CONFIG_DWC_ETH_QOS is not set @@ -1509,7 +1567,6 @@ CONFIG_ETH_DESIGNWARE=y # CONFIG_PCNET is not set # CONFIG_QE_UEC is not set # CONFIG_RTL8139 is not set -# CONFIG_RTL8169 is not set # CONFIG_SMC911X is not set # CONFIG_SUN7I_GMAC is not set # CONFIG_SUN4I_EMAC is not set @@ -1520,6 +1577,7 @@ CONFIG_ETH_DESIGNWARE=y # CONFIG_DRIVER_TI_KEYSTONE_NET is not set # CONFIG_TULIP is not set # CONFIG_XILINX_AXIEMAC is not set +# CONFIG_VSC7385_ENET is not set # CONFIG_XILINX_EMACLITE is not set # CONFIG_ZYNQ_GEM is not set CONFIG_GMAC_ROCKCHIP=y @@ -1529,7 +1587,6 @@ CONFIG_GMAC_ROCKCHIP=y # CONFIG_HIGMACV300_ETH is not set # CONFIG_NVME is not set # CONFIG_NVME_APPLE is not set -# CONFIG_PCI is not set # # PCI Endpoint @@ -1551,9 +1608,12 @@ CONFIG_PHY=y # # Rockchip PHY driver # +# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set CONFIG_PHY_ROCKCHIP_INNO_USB2=y +# CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY is not set # CONFIG_PHY_ROCKCHIP_PCIE is not set # CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set +# CONFIG_PHY_ROCKCHIP_USBDP is not set CONFIG_PHY_ROCKCHIP_TYPEC=y # CONFIG_PHY_CADENCE_SIERRA is not set # CONFIG_PHY_CADENCE_TORRENT is not set @@ -1640,6 +1700,10 @@ CONFIG_PMIC_RK8XX=y # CONFIG_PMIC_TPS65941 is not set # CONFIG_PMIC_TPS65219 is not set # CONFIG_PMIC_TPS65217 is not set +# CONFIG_POWER_TPS65218 is not set +# CONFIG_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS65910 is not set CONFIG_DM_REGULATOR=y CONFIG_REGULATOR_PWM=y # CONFIG_SPL_REGULATOR_PWM is not set @@ -1653,6 +1717,7 @@ CONFIG_REGULATOR_RK8XX=y # CONFIG_DM_REGULATOR_TPS62360 is not set # CONFIG_DM_REGULATOR_ANATOP is not set # CONFIG_DM_REGULATOR_SCMI is not set +# CONFIG_TPS6586X_POWER is not set # CONFIG_POWER_MT6323 is not set CONFIG_DM_PWM=y # CONFIG_PWM_ASPEED is not set @@ -1674,10 +1739,14 @@ CONFIG_SPL_RAM=y # CONFIG_MPC83XX_SDRAM is not set # CONFIG_K3_DDRSS is not set # CONFIG_IMXRT_SDRAM is not set +# CONFIG_CADENCE_DDR_CTRL is not set CONFIG_RAM_ROCKCHIP=y CONFIG_ROCKCHIP_SDRAM_COMMON=y CONFIG_RAM_ROCKCHIP_DEBUG=y -# CONFIG_RAM_RK3399_LPDDR4 is not set +# CONFIG_RAM_ROCKCHIP_DDR4 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR2 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR3 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR4 is not set # # Reboot Mode Support @@ -1691,7 +1760,6 @@ CONFIG_RAM_ROCKCHIP_DEBUG=y # # Reset Controller Support # -CONFIG_DM_RESET=y # CONFIG_RESET_AST2500 is not set # CONFIG_RESET_AST2600 is not set CONFIG_RESET_ROCKCHIP=y @@ -1712,9 +1780,15 @@ CONFIG_RNG_ROCKCHIP=y # CONFIG_DM_RTC is not set # CONFIG_SPL_DM_RTC is not set # CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set +# CONFIG_RTC_DS1337 is not set +# CONFIG_RTC_DS1338 is not set +# CONFIG_RTC_DS1374 is not set +# CONFIG_RTC_DS3231 is not set # CONFIG_RTC_PCF8563 is not set +# CONFIG_RTC_PT7C4338 is not set # CONFIG_RTC_PL031 is not set # CONFIG_RTC_S35392A is not set +# CONFIG_RTC_MC13XXX is not set # CONFIG_RTC_MC146818 is not set # CONFIG_RTC_M41T62 is not set # CONFIG_SCSI is not set @@ -1753,11 +1827,14 @@ CONFIG_DEBUG_UART_SHIFT=2 # CONFIG_NULLDEV_SERIAL is not set CONFIG_SYS_NS16550=y # CONFIG_NS16550_DYNAMIC is not set +CONFIG_SYS_NS16550_MEM32=y +# CONFIG_SYS_NS16550_PORT_MAPPED is not set # CONFIG_PL01X_SERIAL is not set # CONFIG_ROCKCHIP_SERIAL is not set # CONFIG_XILINX_UARTLITE is not set # CONFIG_MSM_SERIAL is not set # CONFIG_MSM_GENI_SERIAL is not set +# CONFIG_MXS_AUART_SERIAL is not set # CONFIG_OMAP_SERIAL is not set # CONFIG_SIFIVE_SERIAL is not set # CONFIG_ZYNQ_SERIAL is not set @@ -1814,6 +1891,7 @@ CONFIG_ROCKCHIP_SPI=y # CONFIG_SPI_ASPEED_SMC is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SOFT_SPI is not set +# CONFIG_SPI_SN_F_OSPI is not set # CONFIG_SPI_SUNXI is not set # CONFIG_TEGRA114_SPI is not set # CONFIG_TEGRA20_SFLASH is not set @@ -1824,7 +1902,6 @@ CONFIG_ROCKCHIP_SPI=y # CONFIG_ZYNQ_SPI is not set # CONFIG_ZYNQ_QSPI is not set # CONFIG_ZYNQMP_GQSPI is not set -# CONFIG_FSL_ESPI is not set # CONFIG_SH_QSPI is not set # CONFIG_MXC_SPI is not set @@ -1868,6 +1945,7 @@ CONFIG_SPL_DM_USB=y # USB Host Controller Drivers # CONFIG_USB_HOST=y +# CONFIG_SPL_USB_HOST is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y @@ -1933,6 +2011,8 @@ CONFIG_USB_DWC3=y # CONFIG_USB_STORAGE=y CONFIG_USB_KEYBOARD=y +# CONFIG_USB_ONBOARD_HUB is not set +CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000 CONFIG_USB_KEYBOARD_FN_KEYS=y CONFIG_SYS_USB_EVENT_POLL=y # CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE is not set @@ -1946,6 +2026,7 @@ CONFIG_USB_ETHER_MCS7830=y CONFIG_USB_ETHER_RTL8152=y CONFIG_USB_ETHER_SMSC95XX=y # CONFIG_USB_GADGET is not set +# CONFIG_SPL_USB_GADGET is not set # # UFS Host Controller Support @@ -1956,6 +2037,10 @@ CONFIG_USB_ETHER_SMSC95XX=y # Graphics support # CONFIG_VIDEO=y +# CONFIG_VIDEO_FONT_4X6 is not set +# CONFIG_VIDEO_FONT_8X16 is not set +# CONFIG_VIDEO_FONT_SUN12X22 is not set +CONFIG_VIDEO_FONT_16X32=y CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT=y CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0 @@ -1976,21 +2061,22 @@ CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_PANEL=y CONFIG_SIMPLE_PANEL=y # CONFIG_PANEL_HX8238D is not set -# CONFIG_VIDEO_FONT_4X6 is not set -# CONFIG_VIDEO_FONT_8X16 is not set -# CONFIG_VIDEO_FONT_SUN12X22 is not set -CONFIG_VIDEO_FONT_TER16X32=y # # TrueType Fonts # # CONFIG_VIDCONSOLE_AS_LCD is not set +# CONFIG_VIDEO_BOCHS is not set # CONFIG_VIDEO_VESA is not set # CONFIG_VIDEO_LCD_ANX9804 is not set # CONFIG_ATMEL_LCD_BGR555 is not set # CONFIG_VIDEO_BCM2835 is not set +# CONFIG_VIDEO_LCD_ENDEAVORU is not set +# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set # CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set # CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set +# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set +# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set # CONFIG_VIDEO_LCD_SSD2828 is not set # CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set # CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set @@ -2000,6 +2086,8 @@ CONFIG_I2C_EDID=y CONFIG_DISPLAY=y # CONFIG_NXP_TDA19988 is not set # CONFIG_ATMEL_HLCD is not set +# CONFIG_BACKLIGHT_LM3533 is not set +# CONFIG_AM335X_LCD is not set # CONFIG_VIDEO_EXYNOS is not set # CONFIG_LOGICORE_DP_TX is not set CONFIG_VIDEO_ROCKCHIP=y @@ -2009,11 +2097,16 @@ CONFIG_DISPLAY_ROCKCHIP_EDP=y # CONFIG_DISPLAY_ROCKCHIP_LVDS is not set # CONFIG_DISPLAY_ROCKCHIP_HDMI is not set # CONFIG_DISPLAY_ROCKCHIP_MIPI is not set +# CONFIG_DISPLAY_ROCKCHIP_DW_MIPI is not set # CONFIG_VIDEO_ARM_MALIDP is not set # CONFIG_VIDEO_STM32 is not set -# CONFIG_VIDEO_TEGRA20 is not set +# CONFIG_VIDEO_TIDSS is not set # CONFIG_VIDEO_TEGRA124 is not set # CONFIG_VIDEO_BRIDGE is not set +# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set +# CONFIG_VIDEO_TEGRA20 is not set +# CONFIG_VIDEO_DSI_TEGRA30 is not set +# CONFIG_TEGRA_BACKLIGHT_PWM is not set # CONFIG_VIDEO_MXS is not set # CONFIG_VIDEO_SEPS525 is not set CONFIG_CONSOLE_SCROLL_LINES=1 @@ -2021,12 +2114,14 @@ CONFIG_CONSOLE_SCROLL_LINES=1 # CONFIG_VIDEO_DT_SIMPLEFB is not set # CONFIG_VIDEO_MCDE_SIMPLE is not set # CONFIG_OSD is not set +# CONFIG_VIDEO_REMOVE is not set # CONFIG_SPLASH_SCREEN is not set CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000 CONFIG_VIDEO_BMP_RLE8=y # CONFIG_BMP_16BPP is not set # CONFIG_BMP_24BPP is not set # CONFIG_BMP_32BPP is not set +# CONFIG_SPL_VIDEO is not set # # VirtIO Drivers @@ -2052,7 +2147,6 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 # CONFIG_ULP_WATCHDOG is not set # CONFIG_WDT is not set # CONFIG_SPL_WDT is not set -# CONFIG_PVBLOCK is not set # CONFIG_PHYS_TO_BUS is not set # @@ -2078,6 +2172,7 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 # Library routines # # CONFIG_ADDR_MAP is not set +# CONFIG_SYS_TIMER_COUNTS_DOWN is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set CONFIG_BINMAN_FDT=y @@ -2085,6 +2180,7 @@ CONFIG_BINMAN_FDT=y CONFIG_CHARSET=y # CONFIG_DYNAMIC_CRC_TABLE is not set CONFIG_LIB_UUID=y +CONFIG_SPL_LIB_UUID=y # CONFIG_SEMIHOSTING is not set # CONFIG_SPL_SEMIHOSTING is not set CONFIG_PRINTF=y @@ -2100,7 +2196,7 @@ CONFIG_REGEX=y CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set CONFIG_SUPPORT_ACPI=y -# CONFIG_GENERATE_ACPI_TABLE is not set +# CONFIG_ACPI is not set # CONFIG_SPL_TINY_MEMSET is not set # CONFIG_BITREVERSE is not set # CONFIG_TRACE is not set @@ -2129,12 +2225,16 @@ CONFIG_SHA256=y # CONFIG_SHA512 is not set # CONFIG_SHA384 is not set # CONFIG_SHA_HW_ACCEL is not set +CONFIG_SPL_CRC32=y CONFIG_SPL_SHA1=y CONFIG_SPL_SHA256=y # CONFIG_SPL_SHA512 is not set # CONFIG_SPL_SHA384 is not set # CONFIG_SPL_SHA_HW_ACCEL is not set CONFIG_MD5=y +# CONFIG_SPL_MD5 is not set +CONFIG_CRC8=y +# CONFIG_SPL_CRC8 is not set CONFIG_CRC32=y # @@ -2148,6 +2248,7 @@ CONFIG_GZIP=y # CONFIG_BZIP2 is not set CONFIG_ZLIB=y # CONFIG_ZSTD is not set +# CONFIG_SPL_BZIP2 is not set # CONFIG_SPL_LZ4 is not set # CONFIG_SPL_LZMA is not set CONFIG_VPL_LZMA=y @@ -2159,7 +2260,6 @@ CONFIG_ERRNO_STR=y CONFIG_GETOPT=y CONFIG_OF_LIBFDT=y CONFIG_OF_LIBFDT_ASSUME_MASK=0 -# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_SYS_FDT_PAD=0x3000 CONFIG_SPL_OF_LIBFDT=y CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff @@ -2177,8 +2277,10 @@ CONFIG_EFI_VARIABLE_FILE_STORE=y # CONFIG_EFI_VARIABLE_NO_STORE is not set # CONFIG_EFI_VARIABLES_PRESEED is not set CONFIG_EFI_VAR_BUF_SIZE=32768 +# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set # CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set # CONFIG_EFI_CAPSULE_ON_DISK is not set +CONFIG_EFI_CAPSULE_MAX=15 CONFIG_EFI_DEVICE_PATH_TO_TEXT=y CONFIG_EFI_DEVICE_PATH_UTIL=y CONFIG_EFI_DT_FIXUP=y @@ -2199,11 +2301,17 @@ CONFIG_EFI_EBBR_2_1_CONFORMANCE=y CONFIG_LIB_ELF=y CONFIG_LMB=y CONFIG_LMB_USE_MAX_REGIONS=y -CONFIG_LMB_MAX_REGIONS=8 +CONFIG_LMB_MAX_REGIONS=16 +# CONFIG_PHANDLE_CHECK_SEQ is not set # # FWU Multi Bank Updates # +# CONFIG_POST is not set + +# +# Unit tests +# # CONFIG_UNIT_TEST is not set # CONFIG_SPL_UNIT_TEST is not set @@ -2228,3 +2336,4 @@ CONFIG_TOOLS_SHA384=y CONFIG_TOOLS_SHA512=y # CONFIG_TOOLS_MKEFICAPSULE is not set # CONFIG_FSPI_CONF_HEADER is not set +# CONFIG_TOOLS_MKFWUMDATA is not set diff --git a/config/u-boot/qemu_arm64_12mb/config/default b/config/u-boot/qemu_arm64_12mb/config/default index 18cbb4f0..11adcc7a 100644 --- a/config/u-boot/qemu_arm64_12mb/config/default +++ b/config/u-boot/qemu_arm64_12mb/config/default @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# U-Boot 2023.01 Configuration +# U-Boot 2023.10 Configuration # # -# Compiler: gcc (Debian 12.2.0-14) 12.2.0 +# Compiler: gcc (Debian 13.2.0-5) 13.2.0 # CONFIG_CREATE_ARCH_SYMLINK=y CONFIG_SYS_CACHE_SHIFT_6=y @@ -27,6 +27,10 @@ CONFIG_SYS_CPU="armv8" CONFIG_SYS_VENDOR="emulation" CONFIG_SYS_BOARD="qemu-arm" CONFIG_SYS_CONFIG_NAME="qemu-arm" + +# +# Skipping low level initialization functions +# # CONFIG_SKIP_LOWLEVEL_INIT is not set # CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set # CONFIG_SYS_ICACHE_OFF is not set @@ -63,6 +67,7 @@ CONFIG_ARM_SMCCC=y CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_HISTB is not set # CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_ORION5X is not set @@ -71,7 +76,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y # CONFIG_ARCH_BCMSTB is not set # CONFIG_ARCH_BCMBCA is not set # CONFIG_TARGET_VEXPRESS_CA9X4 is not set -# CONFIG_TARGET_BCMCYGNUS is not set +# CONFIG_TARGET_BCMNS is not set # CONFIG_TARGET_BCMNS2 is not set # CONFIG_TARGET_BCMNS3 is not set # CONFIG_ARCH_EXYNOS is not set @@ -169,12 +174,17 @@ CONFIG_TEXT_BASE=0x50000000 CONFIG_SYS_MALLOC_LEN=0x1000000 CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_NR_DRAM_BANKS=1 +CONFIG_ENV_SOURCE_FILE="" +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x40200000 CONFIG_ENV_SIZE=0x40000 # CONFIG_DM_GPIO is not set CONFIG_DEFAULT_DEVICE_TREE="qemu-arm64" CONFIG_BOARD_SPECIFIC_OPTIONS=y -CONFIG_SYS_PROMPT="=> " +# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 +# CONFIG_DM_RESET is not set +CONFIG_SYS_MONITOR_LEN=0 # CONFIG_TARGET_QEMU_ARM_32BIT is not set CONFIG_TARGET_QEMU_ARM_64BIT=y CONFIG_ERR_PTR_OFFSET=0x0 @@ -185,6 +195,7 @@ CONFIG_DEBUG_UART_CLOCK=0 CONFIG_IDENT_STRING="" CONFIG_SYS_CLK_FREQ=0 # CONFIG_CHIP_DIP_SCAN is not set +# CONFIG_CMO_BY_VA_ONLY is not set # CONFIG_ARMV8_MULTIENTRY is not set # CONFIG_ARMV8_SET_SMPEN is not set # CONFIG_ARMV8_SWITCH_TO_EL1 is not set @@ -203,6 +214,7 @@ CONFIG_ARMV8_CE_SHA256=y # CONFIG_IMX_CAAM_DEK_ENCAP is not set # CONFIG_IMX_OPTEE_DEK_ENCAP is not set # CONFIG_IMX_SECO_DEK_ENCAP is not set +# CONFIG_IMX_ELE_DEK_ENCAP is not set # CONFIG_CMD_HDMIDETECT is not set CONFIG_IMX_DCD_ADDR=0x00910000 CONFIG_SYS_MEM_TOP_HIDE=0x0 @@ -215,16 +227,17 @@ CONFIG_MTDPARTS_NOR1="64m(u-boot-env)" # CONFIG_BUILD_TARGET="" # CONFIG_SYS_PCI_64BIT is not set +CONFIG_PCI=y CONFIG_FWU_NUM_BANKS=2 CONFIG_FWU_NUM_IMAGES_PER_BANK=2 CONFIG_DEBUG_UART=y CONFIG_AHCI=y # CONFIG_OF_BOARD_FIXUP is not set -# CONFIG_NXP_ESBC is not set # -# Other functionality shared between NXP SoCs +# Functionality shared between NXP SoCs # +# CONFIG_NXP_ESBC is not set # # General setup @@ -232,7 +245,7 @@ CONFIG_AHCI=y CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120200 +CONFIG_GCC_VERSION=130200 CONFIG_CLANG_VERSION=0 CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set @@ -242,12 +255,9 @@ CONFIG_ARCH_SUPPORTS_LTO=y # CONFIG_LTO is not set CONFIG_CC_HAS_ASM_INLINE=y # CONFIG_XEN is not set -CONFIG_DISTRO_DEFAULTS=y CONFIG_ENV_VARS_UBOOT_CONFIG=y # CONFIG_SYS_BOOT_GET_CMDLINE is not set # CONFIG_SYS_BOOT_GET_KBD is not set -CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y -CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x40200000 CONFIG_SYS_MALLOC_F=y # CONFIG_VALGRIND is not set CONFIG_EXPERT=y @@ -255,6 +265,7 @@ CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y # CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set # CONFIG_TOOLS_DEBUG is not set CONFIG_PHYS_64BIT=y +CONFIG_FDT_64BIT=y # CONFIG_REMAKE_ELF is not set # CONFIG_HAS_BOARD_SIZE_LIMIT is not set # CONFIG_SYS_CUSTOM_LDSCRIPT is not set @@ -262,13 +273,7 @@ CONFIG_PLATFORM_ELFENTRY="_start" CONFIG_STACK_SIZE=0x1000000 CONFIG_SYS_SRAM_BASE=0x0 CONFIG_SYS_SRAM_SIZE=0x0 -CONFIG_SYS_MONITOR_LEN=0 # CONFIG_MP is not set -CONFIG_EXAMPLES=y - -# -# API -# # CONFIG_API is not set # @@ -290,18 +295,23 @@ CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000 CONFIG_FIT_VERBOSE=y CONFIG_FIT_BEST_MATCH=y CONFIG_FIT_PRINT=y +# CONFIG_SPL_LOAD_FIT_FULL is not set CONFIG_PXE_UTILS=y +CONFIG_BOOT_DEFAULTS=y CONFIG_BOOTSTD=y -# CONFIG_BOOTSTD_FULL is not set -# CONFIG_BOOTSTD_BOOTCOMMAND is not set +CONFIG_BOOTSTD_FULL=y +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_BOOTMETH_GLOBAL=y -CONFIG_BOOTMETH_DISTRO=y -CONFIG_BOOTMETH_DISTRO_PXE=y +CONFIG_BOOTMETH_EXTLINUX=y +CONFIG_BOOTMETH_EXTLINUX_PXE=y CONFIG_BOOTMETH_EFILOADER=y CONFIG_BOOTMETH_VBE=y +CONFIG_BOOTMETH_DISTRO=y +CONFIG_BOOTMETH_VBE_REQUEST=y CONFIG_BOOTMETH_VBE_SIMPLE=y CONFIG_BOOTMETH_VBE_SIMPLE_OS=y -# CONFIG_BOOTMETH_SCRIPT is not set +CONFIG_BOOTMETH_SCRIPT=y CONFIG_LEGACY_IMAGE_FORMAT=y CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_OF_BOARD_SETUP is not set @@ -316,6 +326,7 @@ CONFIG_ARCH_FIXUP_FDT_MEMORY=y # CONFIG_CHROMEOS_VBOOT is not set # CONFIG_RAMBOOT_PBL is not set CONFIG_SYS_BOOT_RAMDISK_HIGH=y +# CONFIG_DISTRO_DEFAULTS is not set # # Boot timing @@ -351,13 +362,18 @@ CONFIG_BOOTDELAY=2 # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="run distro_bootcmd" +CONFIG_BOOTCOMMAND="bootflow scan -lb" CONFIG_USE_PREBOOT=y CONFIG_PREBOOT="" CONFIG_DEFAULT_FDT_FILE="" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set # CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set +# +# Configuration editor +# +# CONFIG_CEDIT is not set + # # Console # @@ -373,7 +389,6 @@ CONFIG_CONSOLE_FLUSH_SUPPORT=y # CONFIG_CONSOLE_MUX is not set # CONFIG_SYS_CONSOLE_IS_IN_ENV is not set # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set -# CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set # CONFIG_SYS_CONSOLE_INFO_QUIET is not set # CONFIG_SYS_STDIO_DEREGISTER is not set # CONFIG_SPL_SYS_STDIO_DEREGISTER is not set @@ -399,13 +414,13 @@ CONFIG_CONSOLE_FLUSH_SUPPORT=y CONFIG_EVENT=y CONFIG_EVENT_DYNAMIC=y # CONFIG_EVENT_DEBUG is not set -# CONFIG_ARCH_EARLY_INIT_R is not set # CONFIG_ARCH_MISC_INIT is not set # CONFIG_BOARD_EARLY_INIT_F is not set # CONFIG_BOARD_EARLY_INIT_R is not set # CONFIG_BOARD_POSTCLK_INIT is not set CONFIG_BOARD_LATE_INIT=y # CONFIG_CLOCKS is not set +# CONFIG_HWCONFIG is not set # CONFIG_LAST_STAGE_INIT is not set # CONFIG_MISC_INIT_R is not set # CONFIG_SYS_MALLOC_BOOTPARAMS is not set @@ -424,7 +439,9 @@ CONFIG_HASH=y # Update support # CONFIG_UPDATE_COMMON=y -# CONFIG_UPDATE_TFTP is not set +CONFIG_UPDATE_TFTP_CNT_MAX=0 +CONFIG_UPDATE_TFTP_MSEC_MAX=100 +CONFIG_UPDATE_LOAD_ADDR=0x100000 # CONFIG_UPDATE_FIT is not set # CONFIG_ANDROID_AB is not set @@ -434,6 +451,7 @@ CONFIG_UPDATE_COMMON=y # CONFIG_BLOBLIST is not set CONFIG_IMAGE_SIGN_INFO=y # CONFIG_FDT_SIMPLEFB is not set +# CONFIG_BMP is not set # # Command line interface @@ -444,6 +462,7 @@ CONFIG_CMDLINE_EDITING=y # CONFIG_CMDLINE_PS_SUPPORT is not set CONFIG_AUTO_COMPLETE=y CONFIG_SYS_LONGHELP=y +CONFIG_SYS_PROMPT="=> " CONFIG_SYS_PROMPT_HUSH_PS2="> " CONFIG_SYS_MAXARGS=16 CONFIG_SYS_CBSIZE=512 @@ -458,6 +477,7 @@ CONFIG_SYS_XTRACE=y # Info commands # CONFIG_CMD_BDI=y +# CONFIG_CMD_BDINFO_EXTRA is not set # CONFIG_CMD_CONFIG is not set CONFIG_CMD_CONSOLE=y # CONFIG_CMD_LICENSE is not set @@ -468,11 +488,12 @@ CONFIG_CMD_CONSOLE=y # CONFIG_CMD_BOOTD=y CONFIG_CMD_BOOTM=y -# CONFIG_CMD_BOOTDEV is not set +CONFIG_CMD_BOOTDEV=y CONFIG_CMD_BOOTFLOW=y -# CONFIG_CMD_BOOTMETH is not set +CONFIG_CMD_BOOTFLOW_FULL=y +CONFIG_CMD_BOOTMETH=y CONFIG_BOOTM_EFI=y -# CONFIG_CMD_BOOTZ is not set +CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTI=y CONFIG_BOOTM_LINUX=y CONFIG_BOOTM_NETBSD=y @@ -480,7 +501,7 @@ CONFIG_BOOTM_NETBSD=y # CONFIG_BOOTM_OSE is not set CONFIG_BOOTM_PLAN9=y CONFIG_BOOTM_RTEMS=y -# CONFIG_CMD_VBE is not set +CONFIG_CMD_VBE=y CONFIG_BOOTM_VXWORKS=y CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTEFI=y @@ -581,6 +602,7 @@ CONFIG_CMD_NVME=y # CONFIG_CMD_OSD is not set CONFIG_CMD_PART=y CONFIG_CMD_PCI=y +# CONFIG_CMD_PCI_MPS is not set CONFIG_CMD_POWEROFF=y # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set @@ -591,6 +613,7 @@ CONFIG_CMD_SCSI=y CONFIG_CMD_USB=y # CONFIG_CMD_USB_SDP is not set CONFIG_CMD_VIRTIO=y +# CONFIG_CMD_WRITE is not set # # Shell scripting commands @@ -629,8 +652,7 @@ CONFIG_CMD_TFTPBOOT=y # CONFIG_CMD_TFTPSRV is not set CONFIG_NET_TFTP_VARS=y # CONFIG_CMD_RARP is not set -CONFIG_CMD_NFS=y -CONFIG_NFS_TIMEOUT=2000 +# CONFIG_CMD_NFS is not set # CONFIG_SYS_DISABLE_AUTOLOAD is not set # CONFIG_CMD_WGET is not set CONFIG_CMD_MII=y @@ -646,14 +668,16 @@ CONFIG_CMD_PXE=y # # Misc commands # +# CONFIG_CMD_2048 is not set # CONFIG_CMD_BSP is not set CONFIG_CMD_BLOCK_CACHE=y # CONFIG_CMD_CACHE is not set # CONFIG_CMD_CONITRACE is not set # CONFIG_CMD_CLS is not set # CONFIG_CMD_EFIDEBUG is not set -# CONFIG_CMD_EFICONFIG is not set +CONFIG_CMD_EFICONFIG=y # CONFIG_CMD_EXCEPTION is not set +# CONFIG_CMD_INI is not set CONFIG_CMD_DATE=y # CONFIG_CMD_RTC is not set # CONFIG_CMD_TIME is not set @@ -663,7 +687,7 @@ CONFIG_CMD_DATE=y # CONFIG_CMD_KASLRSEED is not set CONFIG_CMD_SLEEP=y # CONFIG_CMD_TIMER is not set -CONFIG_CMD_SYSBOOT=y +# CONFIG_CMD_SYSBOOT is not set CONFIG_CMD_QFW=y # CONFIG_CMD_PSTORE is not set # CONFIG_CMD_TERMINAL is not set @@ -711,8 +735,6 @@ CONFIG_CMD_FS_GENERIC=y CONFIG_CMD_MTDPARTS=y # CONFIG_CMD_MTDPARTS_SPREAD is not set # CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES is not set -CONFIG_MTDIDS_DEFAULT="" -CONFIG_MTDPARTS_DEFAULT="" # CONFIG_CMD_REISER is not set # CONFIG_CMD_ZFS is not set @@ -753,17 +775,19 @@ CONFIG_OF_OMIT_DTB=y CONFIG_DEVICE_TREE_INCLUDES="" CONFIG_OF_LIST="qemu-arm64" # CONFIG_MULTI_DTB_FIT is not set +CONFIG_OF_TAG_MIGRATE=y # CONFIG_OF_DTB_PROPS_REMOVE is not set # # Environment # CONFIG_ENV_SUPPORT=y -CONFIG_ENV_SOURCE_FILE="" CONFIG_SAVEENV=y # CONFIG_ENV_OVERWRITE is not set +# CONFIG_OVERWRITE_ETHADDR_ONCE is not set CONFIG_ENV_MIN_ENTRIES=64 CONFIG_ENV_MAX_ENTRIES=512 +CONFIG_ENV_IS_DEFAULT=y CONFIG_ENV_IS_NOWHERE=y # CONFIG_ENV_IS_IN_EEPROM is not set # CONFIG_ENV_IS_IN_FAT is not set @@ -783,6 +807,7 @@ CONFIG_ENV_IS_NOWHERE=y # CONFIG_ENV_ACCESS_IGNORE_FORCE is not set # CONFIG_USE_BOOTFILE is not set # CONFIG_USE_ETHPRIME is not set +# CONFIG_USE_HOSTNAME is not set # CONFIG_VERSION_VARIABLE is not set CONFIG_NET=y CONFIG_ARP_TIMEOUT=5000 @@ -804,6 +829,11 @@ CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 # CONFIG_UDP_CHECKSUM is not set # CONFIG_BOOTP_SERVERIP is not set CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 +# CONFIG_USE_GATEWAYIP is not set +# CONFIG_USE_IPADDR is not set +# CONFIG_USE_NETMASK is not set +# CONFIG_USE_ROOTPATH is not set +# CONFIG_USE_SERVERIP is not set # CONFIG_PROT_TCP is not set # CONFIG_IPV6 is not set CONFIG_SYS_RX_ETH_BUFFER=4 @@ -832,13 +862,13 @@ CONFIG_OF_TRANSLATE=y # CONFIG_TRANSLATION_OFFSET is not set CONFIG_DM_DEV_READ_INLINE=y # CONFIG_OFNODE_MULTI_TREE is not set -# CONFIG_ACPIGEN is not set # CONFIG_BOUNCE_BUFFER is not set # CONFIG_ADC is not set # CONFIG_ADC_EXYNOS is not set # CONFIG_ADC_SANDBOX is not set # CONFIG_SARADC_MESON is not set # CONFIG_SARADC_ROCKCHIP is not set +# CONFIG_ADC_IMX93 is not set # CONFIG_SATA is not set CONFIG_LIBATA=y CONFIG_SCSI_AHCI=y @@ -858,6 +888,7 @@ CONFIG_AHCI_PCI=y # CONFIG_BLK=y CONFIG_BLOCK_CACHE=y +# CONFIG_BLKMAP is not set # CONFIG_EFI_MEDIA is not set # CONFIG_IDE is not set # CONFIG_LBA48 is not set @@ -874,6 +905,7 @@ CONFIG_BLOCK_CACHE=y # # CONFIG_CACHE is not set # CONFIG_L2X0_CACHE is not set +# CONFIG_V5L2_CACHE is not set # CONFIG_NCORE_CACHE is not set # CONFIG_SIFIVE_CCACHE is not set @@ -882,6 +914,8 @@ CONFIG_BLOCK_CACHE=y # # CONFIG_CLK is not set # CONFIG_CLK_CCF is not set +# CONFIG_CLK_RCAR is not set +# CONFIG_CLK_RCAR_CPG_LIB is not set # CONFIG_CPU is not set # @@ -892,6 +926,7 @@ CONFIG_BLOCK_CACHE=y CONFIG_CAAM_64BIT=y # CONFIG_SYS_FSL_SEC_BE is not set # CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG is not set # CONFIG_NPCM_AES is not set # CONFIG_NPCM_SHA is not set # CONFIG_DDR_SPD is not set @@ -910,7 +945,6 @@ CONFIG_DFU_OVER_TFTP=y CONFIG_DFU_WRITE_ALT=y CONFIG_DFU_TFTP=y # CONFIG_DFU_TIMEOUT is not set -# CONFIG_DFU_MMC is not set CONFIG_DFU_MTD=y CONFIG_DFU_RAM=y # CONFIG_DFU_SF is not set @@ -927,14 +961,21 @@ CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000 # CONFIG_TI_EDMA3 is not set # CONFIG_DMA_LEGACY is not set +# +# Extcon Support +# +# CONFIG_EXTCON is not set + # # Fastboot support # # CONFIG_UDP_FUNCTION_FASTBOOT is not set +# CONFIG_TCP_FUNCTION_FASTBOOT is not set CONFIG_FIRMWARE=y CONFIG_ARM_PSCI_FW=y # CONFIG_ZYNQMP_FIRMWARE is not set # CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set # CONFIG_SCMI_FIRMWARE is not set # CONFIG_DM_FUZZING_ENGINE is not set @@ -943,6 +984,7 @@ CONFIG_ARM_PSCI_FW=y # # CONFIG_FPGA_ALTERA is not set # CONFIG_FPGA_SOCFPGA is not set +# CONFIG_FPGA_LATTICE is not set # CONFIG_FPGA_XILINX is not set # CONFIG_DM_FPGA is not set # CONFIG_FWU_MDATA is not set @@ -959,8 +1001,9 @@ CONFIG_GPIO=y # CONFIG_MXC_GPIO is not set # CONFIG_MXS_GPIO is not set # CONFIG_CMD_PCA953X is not set -# CONFIG_CMD_TCA642X is not set +# CONFIG_TCA642X is not set # CONFIG_VYBRID_GPIO is not set +# CONFIG_PCA953X is not set # # Hardware Spinlock Support @@ -1005,6 +1048,8 @@ CONFIG_INPUT=y # Memory Controller drivers # # CONFIG_MEMORY is not set +# CONFIG_ATMEL_EBI is not set +# CONFIG_MFD_ATMEL_SMC is not set # # Multifunction device drivers @@ -1012,6 +1057,8 @@ CONFIG_INPUT=y # CONFIG_MISC is not set # CONFIG_NVMEM is not set # CONFIG_SPL_NVMEM is not set +# CONFIG_SMSC_LPC47M is not set +# CONFIG_SMSC_SIO1007 is not set # CONFIG_CROS_EC is not set # CONFIG_DS4510 is not set # CONFIG_FSL_SEC_MON is not set @@ -1051,16 +1098,19 @@ CONFIG_SYS_FLASH_CFI_WIDTH_8BIT=y # CONFIG_SYS_FLASH_CFI_WIDTH_32BIT is not set # CONFIG_SYS_FLASH_CFI_WIDTH_64BIT is not set CONFIG_SYS_FLASH_CFI_WIDTH=0x1 +CONFIG_FLASH_SHOW_PROGRESS=0 CONFIG_CFI_FLASH=y CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS=y # CONFIG_SYS_CFI_FLASH_STATUS_POLL is not set CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y # CONFIG_SYS_FLASH_EMPTY_INFO is not set +# CONFIG_FLASH_SPANSION_S29WS_N is not set CONFIG_FLASH_CFI_MTD=y # CONFIG_SYS_FLASH_PROTECTION is not set CONFIG_SYS_FLASH_CFI=y # CONFIG_SYS_FLASH_QUIET_TEST is not set # CONFIG_SYS_FLASH_CHECKSUM is not set +# CONFIG_FLASH_VERIFY is not set # CONFIG_ALTERA_QSPI is not set CONFIG_SYS_MAX_FLASH_SECT=256 # CONFIG_SAMSUNG_ONENAND is not set @@ -1079,6 +1129,8 @@ CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y # # CONFIG_UBI_SILENCE_MSG is not set # CONFIG_MTD_UBI is not set +# CONFIG_NVMXIP is not set +# CONFIG_NVMXIP_QSPI is not set # # Multiplexer drivers @@ -1090,7 +1142,6 @@ CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y # CONFIG_FSL_MEMAC is not set CONFIG_PHY_RESET_DELAY=0 # CONFIG_FSL_PFE is not set -# CONFIG_BNXT_ETH is not set CONFIG_ETH=y CONFIG_DM_ETH=y # CONFIG_DM_ETH_PHY is not set @@ -1099,6 +1150,7 @@ CONFIG_NETDEVICES=y # CONFIG_ALTERA_TSE is not set # CONFIG_BCM_SF2_ETH is not set # CONFIG_BCMGENET is not set +# CONFIG_BNXT_ETH is not set # CONFIG_CALXEDA_XGMAC is not set # CONFIG_DRIVER_DM9000 is not set # CONFIG_DWC_ETH_QOS is not set @@ -1138,6 +1190,7 @@ CONFIG_E1000=y # CONFIG_DRIVER_TI_KEYSTONE_NET is not set # CONFIG_TULIP is not set # CONFIG_XILINX_AXIEMAC is not set +# CONFIG_VSC7385_ENET is not set # CONFIG_XILINX_EMACLITE is not set # CONFIG_ZYNQ_GEM is not set # CONFIG_SYS_DPAA_QBMAN is not set @@ -1147,7 +1200,6 @@ CONFIG_E1000=y CONFIG_NVME=y # CONFIG_NVME_APPLE is not set CONFIG_NVME_PCI=y -CONFIG_PCI=y # CONFIG_DM_PCI_COMPAT is not set CONFIG_PCI_PNP=y # CONFIG_PCI_REGION_MULTI_ENTRY is not set @@ -1167,6 +1219,7 @@ CONFIG_PCIE_ECAM_GENERIC=y # CONFIG_PCIE_INTEL_FPGA is not set # CONFIG_PCIE_IPROC is not set # CONFIG_PCI_KEYSTONE is not set +# CONFIG_PCIE_STARFIVE_JH7110 is not set # # PCI Endpoint @@ -1200,8 +1253,10 @@ CONFIG_POWER=y # CONFIG_POWER_DOMAIN is not set # CONFIG_DM_PMIC is not set # CONFIG_PMIC_TPS65217 is not set -# CONFIG_POWER_MC34VR500 is not set +# CONFIG_POWER_TPS65218 is not set +# CONFIG_POWER_TPS62362 is not set # CONFIG_DM_REGULATOR is not set +# CONFIG_TPS6586X_POWER is not set # CONFIG_POWER_MT6323 is not set # CONFIG_DM_PWM is not set # CONFIG_PWM_IMX is not set @@ -1221,7 +1276,6 @@ CONFIG_POWER=y # # Reset Controller Support # -# CONFIG_DM_RESET is not set # CONFIG_RESET_SCMI is not set CONFIG_DM_RNG=y # CONFIG_RNG_MSM is not set @@ -1237,9 +1291,13 @@ CONFIG_DM_RTC=y # CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set # CONFIG_RTC_PCF2127 is not set # CONFIG_RTC_DS1307 is not set +# CONFIG_RTC_DS1337 is not set +# CONFIG_RTC_DS1338 is not set +# CONFIG_RTC_DS3231 is not set # CONFIG_RTC_EMULATION is not set # CONFIG_RTC_ISL1208 is not set # CONFIG_RTC_PCF8563 is not set +# CONFIG_RTC_PT7C4338 is not set # CONFIG_RTC_RV3028 is not set # CONFIG_RTC_RV3029 is not set # CONFIG_RTC_RV8803 is not set @@ -1284,12 +1342,12 @@ CONFIG_DEBUG_UART_SHIFT=2 # CONFIG_MCFUART is not set # CONFIG_NULLDEV_SERIAL is not set # CONFIG_SYS_NS16550 is not set -# CONFIG_NS16550_DYNAMIC is not set CONFIG_PL01X_SERIAL=y # CONFIG_ROCKCHIP_SERIAL is not set # CONFIG_XILINX_UARTLITE is not set # CONFIG_MSM_SERIAL is not set # CONFIG_MSM_GENI_SERIAL is not set +# CONFIG_MXS_AUART_SERIAL is not set # CONFIG_OMAP_SERIAL is not set # CONFIG_SIFIVE_SERIAL is not set # CONFIG_ZYNQ_SERIAL is not set @@ -1322,9 +1380,7 @@ CONFIG_PL01X_SERIAL=y # CONFIG_SYSRESET=y CONFIG_SYSRESET_CMD_RESET=y -# CONFIG_SYSRESET_CMD_POWEROFF is not set -# CONFIG_POWEROFF_GPIO is not set -# CONFIG_SYSRESET_GPIO is not set +CONFIG_SYSRESET_CMD_POWEROFF=y CONFIG_SYSRESET_PSCI=y # CONFIG_SYSRESET_SYSCON is not set # CONFIG_SYSRESET_WATCHDOG is not set @@ -1397,8 +1453,11 @@ CONFIG_USB_EHCI_PCI=y # CONFIG_USB_STORAGE=y # CONFIG_USB_KEYBOARD is not set +# CONFIG_USB_ONBOARD_HUB is not set +CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000 # CONFIG_USB_HOST_ETHER is not set # CONFIG_USB_GADGET is not set +# CONFIG_SPL_USB_GADGET is not set # # UFS Host Controller Support @@ -1440,7 +1499,6 @@ CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 # CONFIG_IMX_WATCHDOG is not set # CONFIG_ULP_WATCHDOG is not set # CONFIG_WDT is not set -# CONFIG_PVBLOCK is not set # CONFIG_PHYS_TO_BUS is not set # @@ -1465,6 +1523,7 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 # Library routines # # CONFIG_ADDR_MAP is not set +# CONFIG_SYS_TIMER_COUNTS_DOWN is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set @@ -1481,7 +1540,7 @@ CONFIG_REGEX=y CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set CONFIG_SUPPORT_ACPI=y -# CONFIG_GENERATE_ACPI_TABLE is not set +# CONFIG_ACPI is not set # CONFIG_BITREVERSE is not set # CONFIG_TRACE is not set # CONFIG_CIRCBUF is not set @@ -1513,6 +1572,7 @@ CONFIG_SHA512=y CONFIG_SHA384=y # CONFIG_SHA_HW_ACCEL is not set CONFIG_MD5=y +CONFIG_CRC8=y CONFIG_CRC32=y # @@ -1533,7 +1593,6 @@ CONFIG_HEXDUMP=y # CONFIG_GETOPT is not set CONFIG_OF_LIBFDT=y CONFIG_OF_LIBFDT_ASSUME_MASK=0 -# CONFIG_OF_LIBFDT_OVERLAY is not set CONFIG_SYS_FDT_PAD=0x3000 # CONFIG_FDT_FIXUP_PARTITIONS is not set @@ -1551,8 +1610,10 @@ CONFIG_EFI_VARIABLE_FILE_STORE=y CONFIG_EFI_VAR_BUF_SIZE=32768 CONFIG_EFI_GET_TIME=y CONFIG_EFI_SET_TIME=y +# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set # CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set # CONFIG_EFI_CAPSULE_ON_DISK is not set +CONFIG_EFI_CAPSULE_MAX=15 CONFIG_EFI_DEVICE_PATH_TO_TEXT=y CONFIG_EFI_DEVICE_PATH_UTIL=y CONFIG_EFI_DT_FIXUP=y @@ -1565,6 +1626,7 @@ CONFIG_EFI_HAVE_RUNTIME_RESET=y CONFIG_EFI_RNG_PROTOCOL=y CONFIG_EFI_TCG2_PROTOCOL=y CONFIG_EFI_TCG2_PROTOCOL_EVENTLOG_SIZE=65536 +# CONFIG_EFI_TCG2_PROTOCOL_MEASURE_DTB is not set CONFIG_EFI_LOAD_FILE2_INITRD=y # CONFIG_EFI_SECURE_BOOT is not set CONFIG_EFI_ECPT=y @@ -1577,11 +1639,17 @@ CONFIG_LIB_DATE=y CONFIG_LIB_ELF=y CONFIG_LMB=y CONFIG_LMB_USE_MAX_REGIONS=y -CONFIG_LMB_MAX_REGIONS=8 +CONFIG_LMB_MAX_REGIONS=16 +# CONFIG_PHANDLE_CHECK_SEQ is not set # # FWU Multi Bank Updates # +# CONFIG_POST is not set + +# +# Unit tests +# # CONFIG_UNIT_TEST is not set # @@ -1605,3 +1673,4 @@ CONFIG_TOOLS_SHA384=y CONFIG_TOOLS_SHA512=y # CONFIG_TOOLS_MKEFICAPSULE is not set # CONFIG_FSPI_CONF_HEADER is not set +# CONFIG_TOOLS_MKFWUMDATA is not set -- cgit v1.2.1 From 5b4ced3329f5fd8cb1fa166c8ac424e0bb618d67 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 23:27:35 +0300 Subject: u-boot: Add patch to avoid regulator errors U-Boot upstream has added a reference counting for regulator enable actions which somehow makes gru-kevin unbootable. Add a workaround that makes it work again. Signed-off-by: Alper Nebi Yasak --- ...tor-Don-t-error-on-reentrant-regulator-ac.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch diff --git a/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch b/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch new file mode 100644 index 00000000..3a66b99a --- /dev/null +++ b/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch @@ -0,0 +1,42 @@ +From 2ab104621dc97a89bc8f75e3b5903b83e793baf8 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Sat, 19 Aug 2023 16:43:58 +0300 +Subject: [PATCH] HACK: regulator: Don't error on reentrant regulator actions + +Commit 4fcba5d556b42 ("regulator: implement basic reference counter") +implements reference counting for regulator enable/disable actions, but +does not update its callers to handle the error cases it adds. This +breaks gru-kevin, report enabling the regulator as a success as a +workaround. It would be better to fix the callers but that needs more +debugging. + +Signed-off-by: Alper Nebi Yasak +--- + drivers/power/regulator/regulator_common.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c +index e26f5ebec347..1c2dfdf9b19d 100644 +--- a/drivers/power/regulator/regulator_common.c ++++ b/drivers/power/regulator/regulator_common.c +@@ -75,7 +75,7 @@ int regulator_common_set_enable(const struct udevice *dev, + /* If previously enabled, increase count */ + if (enable && plat->enable_count > 0) { + plat->enable_count++; +- return -EALREADY; ++ return 0; + } + + if (!enable) { +@@ -85,7 +85,7 @@ int regulator_common_set_enable(const struct udevice *dev, + return -EBUSY; + } else if (!plat->enable_count) { + /* If already disabled, do nothing */ +- return -EALREADY; ++ return 0; + } + } + +-- +2.42.0 + -- cgit v1.2.1 From 46e01c0e1dade74f5ce777bf8593fe2722318af2 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 14:12:02 +0300 Subject: u-boot: Avoid building U-Boot-only binman images For Rockchip boards U-Boot tries to build SPI and MMC images that require an externally built BL31 file to be provided, and the build fails otherwise. This is not really as configurable as it should be. In Libreboot, we only care about the build outputs for U-Boot proper. There is a BL31 built during our coreboot builds, but using that in U-Boot builds is a chicken-and-egg problem. Building BL31 outside the coreboot build and passing it to both projects is possible, but needs work. For now, stop trying to build these U-Boot-only images as a workaround, by removing the binman image descriptions from the device-tree sources. Additionally, disable in our configs the BINMAN_FDT functionality that allows using these at runtime as it requires them to be present. Signed-off-by: Alper Nebi Yasak --- ...rockchip-Remove-binman-image-descriptions.patch | 307 +++++++++++++++++++++ config/u-boot/gru_bob/config/default | 2 +- config/u-boot/gru_kevin/config/default | 2 +- 3 files changed, 309 insertions(+), 2 deletions(-) create mode 100644 config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch diff --git a/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch b/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch new file mode 100644 index 00000000..ac3ada3b --- /dev/null +++ b/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch @@ -0,0 +1,307 @@ +From b14bc4a5d8dc31294dde4ee9ce8008d763c695de Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Fri, 13 Oct 2023 14:06:26 +0300 +Subject: [PATCH] HACK: rockchip: Remove binman image descriptions + +For Rockchip boards binman tries to build SPI and MMC images that +require an externally built BL31 file to be provided, and the build +fails otherwise. This is not really as configurable as it should be. + +Some downstreams only care about build outputs for U-Boot proper. As a +hack to make sure they can do so without building BL31, remove the +binman image descriptions from the device-tree sources. However, +BINMAN_FDT expects these to be present and has to be disabled as well. + +Signed-off-by: Alper Nebi Yasak +--- + arch/arm/dts/rk3288-u-boot.dtsi | 24 ---- + arch/arm/dts/rk3399-gru-u-boot.dtsi | 6 - + arch/arm/dts/rk3399-u-boot.dtsi | 25 ---- + arch/arm/dts/rockchip-u-boot.dtsi | 186 ---------------------------- + 4 files changed, 241 deletions(-) + +diff --git a/arch/arm/dts/rk3288-u-boot.dtsi b/arch/arm/dts/rk3288-u-boot.dtsi +index c4c5a2d225c4..432ab92d97c9 100644 +--- a/arch/arm/dts/rk3288-u-boot.dtsi ++++ b/arch/arm/dts/rk3288-u-boot.dtsi +@@ -55,30 +55,6 @@ noc: syscon@ffac0000 { + }; + }; + +-#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM) +-&binman { +- rom { +- filename = "u-boot.rom"; +- size = <0x400000>; +- pad-byte = <0xff>; +- +- mkimage { +- args = "-n rk3288 -T rkspi"; +- u-boot-spl { +- }; +- }; +- u-boot-img { +- offset = <0x20000>; +- }; +- u-boot { +- offset = <0x300000>; +- }; +- fdtmap { +- }; +- }; +-}; +-#endif +- + &bus_intmem { + ddr_sram: ddr-sram@1000 { + compatible = "rockchip,rk3288-ddr-sram"; +diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi b/arch/arm/dts/rk3399-gru-u-boot.dtsi +index b1604a6872c0..54296b4d7a1c 100644 +--- a/arch/arm/dts/rk3399-gru-u-boot.dtsi ++++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi +@@ -15,12 +15,6 @@ config { + }; + }; + +-&binman { +- rom { +- size = <0x800000>; +- }; +-}; +- + &cros_ec { + ec-interrupt = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>; + }; +diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi +index 3423b882c437..0bf4c481b39a 100644 +--- a/arch/arm/dts/rk3399-u-boot.dtsi ++++ b/arch/arm/dts/rk3399-u-boot.dtsi +@@ -60,31 +60,6 @@ pmusgrf: syscon@ff330000 { + + }; + +-#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM) +-&binman { +- multiple-images; +- rom { +- filename = "u-boot.rom"; +- size = <0x400000>; +- pad-byte = <0xff>; +- +- mkimage { +- args = "-n rk3399 -T rkspi"; +- u-boot-spl { +- }; +- }; +- u-boot-img { +- offset = <0x40000>; +- }; +- u-boot { +- offset = <0x300000>; +- }; +- fdtmap { +- }; +- }; +-}; +-#endif /* CONFIG_ROCKCHIP_SPI_IMAGE && CONFIG_HAS_ROM */ +- + &cru { + bootph-all; + }; +diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi +index be2658e8ef18..3d55553e4401 100644 +--- a/arch/arm/dts/rockchip-u-boot.dtsi ++++ b/arch/arm/dts/rockchip-u-boot.dtsi +@@ -10,189 +10,3 @@ binman: binman { + multiple-images; + }; + }; +- +-#ifdef CONFIG_SPL +-&binman { +- simple-bin { +- filename = "u-boot-rockchip.bin"; +- pad-byte = <0xff>; +- +- mkimage { +- filename = "idbloader.img"; +- args = "-n", CONFIG_SYS_SOC, "-T", "rksd"; +- multiple-data-files; +- +-#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL +- rockchip-tpl { +- }; +-#elif defined(CONFIG_TPL) +- u-boot-tpl { +- }; +-#endif +- u-boot-spl { +- }; +- }; +- +-#if defined(CONFIG_SPL_FIT) && (defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE)) +- fit: fit { +-#ifdef CONFIG_ARM64 +- description = "FIT image for U-Boot with bl31 (TF-A)"; +-#else +- description = "FIT image with OP-TEE"; +-#endif +- #address-cells = <1>; +- fit,fdt-list = "of-list"; +- filename = "u-boot.itb"; +- fit,external-offset = ; +- fit,align = <512>; +- offset = ; +- images { +- u-boot { +- description = "U-Boot"; +- type = "standalone"; +- os = "U-Boot"; +-#ifdef CONFIG_ARM64 +- arch = "arm64"; +-#else +- arch = "arm"; +-#endif +- compression = "none"; +- load = ; +- entry = ; +- u-boot-nodtb { +- }; +-#ifdef CONFIG_SPL_FIT_SIGNATURE +- hash { +- algo = "sha256"; +- }; +-#endif +- }; +- +-#ifdef CONFIG_ARM64 +- @atf-SEQ { +- fit,operation = "split-elf"; +- description = "ARM Trusted Firmware"; +- type = "firmware"; +- arch = "arm64"; +- os = "arm-trusted-firmware"; +- compression = "none"; +- fit,load; +- fit,entry; +- fit,data; +- +- atf-bl31 { +- }; +-#ifdef CONFIG_SPL_FIT_SIGNATURE +- hash { +- algo = "sha256"; +- }; +-#endif +- }; +- @tee-SEQ { +- fit,operation = "split-elf"; +- description = "TEE"; +- type = "tee"; +- arch = "arm64"; +- os = "tee"; +- compression = "none"; +- fit,load; +- fit,entry; +- fit,data; +- +- tee-os { +- optional; +- }; +-#ifdef CONFIG_SPL_FIT_SIGNATURE +- hash { +- algo = "sha256"; +- }; +-#endif +- }; +-#else +- op-tee { +- description = "OP-TEE"; +- type = "tee"; +- arch = "arm"; +- os = "tee"; +- compression = "none"; +- load = <(CFG_SYS_SDRAM_BASE + 0x8400000)>; +- entry = <(CFG_SYS_SDRAM_BASE + 0x8400000)>; +- +- tee-os { +- }; +-#ifdef CONFIG_SPL_FIT_SIGNATURE +- hash { +- algo = "sha256"; +- }; +-#endif +- }; +-#endif +- +- @fdt-SEQ { +- description = "fdt-NAME"; +- compression = "none"; +- type = "flat_dt"; +-#ifdef CONFIG_SPL_FIT_SIGNATURE +- hash { +- algo = "sha256"; +- }; +-#endif +- }; +- }; +- +- configurations { +- default = "@config-DEFAULT-SEQ"; +- @config-SEQ { +- description = "NAME.dtb"; +- fdt = "fdt-SEQ"; +-#ifdef CONFIG_ARM64 +- fit,firmware = "atf-1", "u-boot"; +-#else +- fit,firmware = "op-tee", "u-boot"; +-#endif +- fit,loadables; +- }; +- }; +- }; +-#else +- u-boot-img { +- offset = ; +- }; +-#endif +- }; +- +-#ifdef CONFIG_ROCKCHIP_SPI_IMAGE +- simple-bin-spi { +- filename = "u-boot-rockchip-spi.bin"; +- pad-byte = <0xff>; +- +- mkimage { +- filename = "idbloader-spi.img"; +- args = "-n", CONFIG_SYS_SOC, "-T", "rkspi"; +- multiple-data-files; +- +-#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL +- rockchip-tpl { +- }; +-#elif defined(CONFIG_TPL) +- u-boot-tpl { +- }; +-#endif +- u-boot-spl { +- }; +- }; +- +-#if defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE) +- fit { +- type = "blob"; +- filename = "u-boot.itb"; +-#else +- u-boot-img { +-#endif +- /* Sync with u-boot,spl-payload-offset if present */ +- offset = ; +- }; +- }; +-#endif /* CONFIG_ROCKCHIP_SPI_IMAGE */ +-}; +-#endif /* CONFIG_SPL */ +-- +2.42.0 + diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index 7035ffe6..d91093bd 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -2175,7 +2175,7 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 # CONFIG_SYS_TIMER_COUNTS_DOWN is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set -CONFIG_BINMAN_FDT=y +# CONFIG_BINMAN_FDT is not set # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set CONFIG_CHARSET=y # CONFIG_DYNAMIC_CRC_TABLE is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index a76b6b9c..42386785 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -2175,7 +2175,7 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 # CONFIG_SYS_TIMER_COUNTS_DOWN is not set # CONFIG_PHYSMEM is not set # CONFIG_BCH is not set -CONFIG_BINMAN_FDT=y +# CONFIG_BINMAN_FDT is not set # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set CONFIG_CHARSET=y # CONFIG_DYNAMIC_CRC_TABLE is not set -- cgit v1.2.1 From 7afe2f39189fa196547c3dd9f9f617cfab91d835 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Fri, 13 Oct 2023 15:16:47 +0300 Subject: u-boot: Set EFI variable buffer size to upstream value U-Boot upstream used to have 16KB for EFI variables, and this was causing problems with shim. Commit f0236acbc663 ("u-boot: Increase EFI variable buffer size") fixed this by raising it to 32KB in our builds. It has now been raised to 64K upstream, so raise it here as well. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 2 +- config/u-boot/gru_kevin/config/default | 2 +- config/u-boot/qemu_arm64_12mb/config/default | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index d91093bd..9486e9df 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -2276,7 +2276,7 @@ CONFIG_CMD_BOOTEFI_BOOTMGR=y CONFIG_EFI_VARIABLE_FILE_STORE=y # CONFIG_EFI_VARIABLE_NO_STORE is not set # CONFIG_EFI_VARIABLES_PRESEED is not set -CONFIG_EFI_VAR_BUF_SIZE=32768 +CONFIG_EFI_VAR_BUF_SIZE=65536 # CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set # CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set # CONFIG_EFI_CAPSULE_ON_DISK is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 42386785..3cc74337 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -2276,7 +2276,7 @@ CONFIG_CMD_BOOTEFI_BOOTMGR=y CONFIG_EFI_VARIABLE_FILE_STORE=y # CONFIG_EFI_VARIABLE_NO_STORE is not set # CONFIG_EFI_VARIABLES_PRESEED is not set -CONFIG_EFI_VAR_BUF_SIZE=32768 +CONFIG_EFI_VAR_BUF_SIZE=65536 # CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set # CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set # CONFIG_EFI_CAPSULE_ON_DISK is not set diff --git a/config/u-boot/qemu_arm64_12mb/config/default b/config/u-boot/qemu_arm64_12mb/config/default index 11adcc7a..982b6889 100644 --- a/config/u-boot/qemu_arm64_12mb/config/default +++ b/config/u-boot/qemu_arm64_12mb/config/default @@ -1607,7 +1607,7 @@ CONFIG_CMD_BOOTEFI_BOOTMGR=y CONFIG_EFI_VARIABLE_FILE_STORE=y # CONFIG_EFI_VARIABLE_NO_STORE is not set # CONFIG_EFI_VARIABLES_PRESEED is not set -CONFIG_EFI_VAR_BUF_SIZE=32768 +CONFIG_EFI_VAR_BUF_SIZE=65536 CONFIG_EFI_GET_TIME=y CONFIG_EFI_SET_TIME=y # CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set -- cgit v1.2.1 From f7db91c848f1fbf6bea93b62dfa4313ff550eeec Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:28:09 +0300 Subject: u-boot: gru: Disable VIDEO_COPY U-Boot can keep a "copy" framebuffer to read from, for devices where reading from hardware framebuffer is expensive. This needs the video driver to support it. The Rockchip video driver doesn't need or support it, so this option does nothing on gru boards. Disable it. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 2 +- config/u-boot/gru_kevin/config/default | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index 9486e9df..9150a519 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -2044,7 +2044,7 @@ CONFIG_VIDEO_FONT_8X16=y CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT=y CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0 -CONFIG_VIDEO_COPY=y +# CONFIG_VIDEO_COPY is not set CONFIG_VIDEO_DAMAGE=y CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_GPIO is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 3cc74337..d715151d 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -2044,7 +2044,7 @@ CONFIG_VIDEO_FONT_16X32=y CONFIG_VIDEO_LOGO=y CONFIG_BACKLIGHT=y CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0 -CONFIG_VIDEO_COPY=y +# CONFIG_VIDEO_COPY is not set CONFIG_VIDEO_DAMAGE=y CONFIG_BACKLIGHT_PWM=y # CONFIG_BACKLIGHT_GPIO is not set -- cgit v1.2.1 From f9bad4449aa97aa2eb21f2254c0ad1515119888a Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:31:34 +0300 Subject: u-boot: gru: Enable poweroff command We should be able to power the board off from U-Boot command line. Enable the "poweroff" command for gru boards so we can. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 3 ++- config/u-boot/gru_kevin/config/default | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index 9150a519..b92fdd0b 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -798,7 +798,7 @@ CONFIG_CMD_MMC=y CONFIG_CMD_PART=y # CONFIG_CMD_PCI is not set CONFIG_CMD_PINMUX=y -# CONFIG_CMD_POWEROFF is not set +CONFIG_CMD_POWEROFF=y # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set # CONFIG_CMD_SDRAM is not set @@ -1917,6 +1917,7 @@ CONFIG_ROCKCHIP_SPI=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_CMD_RESET=y +# CONFIG_SYSRESET_CMD_POWEROFF is not set # CONFIG_POWEROFF_GPIO is not set # CONFIG_SYSRESET_GPIO is not set # CONFIG_SYSRESET_PSCI is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index d715151d..22d11a8f 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -798,7 +798,7 @@ CONFIG_CMD_MMC=y CONFIG_CMD_PART=y # CONFIG_CMD_PCI is not set CONFIG_CMD_PINMUX=y -# CONFIG_CMD_POWEROFF is not set +CONFIG_CMD_POWEROFF=y # CONFIG_CMD_READ is not set # CONFIG_CMD_SATA is not set # CONFIG_CMD_SDRAM is not set @@ -1917,6 +1917,7 @@ CONFIG_ROCKCHIP_SPI=y CONFIG_SYSRESET=y CONFIG_SPL_SYSRESET=y CONFIG_SYSRESET_CMD_RESET=y +# CONFIG_SYSRESET_CMD_POWEROFF is not set # CONFIG_POWEROFF_GPIO is not set # CONFIG_SYSRESET_GPIO is not set # CONFIG_SYSRESET_PSCI is not set -- cgit v1.2.1 From fea0cec24a1f2b03cf3c8b928259222f0bcf2357 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:34:05 +0300 Subject: u-boot: gru: Do not reset on panic Normally U-Boot immediately resets the board on a panic. I had run into "Synchronous Abort"s from shim and rEFInd, and having a traceback in those cases can be useful. Hang instead of resetting, so the panic reason stays on the screen. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 2 +- config/u-boot/gru_kevin/config/default | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index b92fdd0b..ca9b3de8 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -2192,7 +2192,7 @@ CONFIG_STRTO=y CONFIG_SPL_STRTO=y CONFIG_SYS_HZ=1000 CONFIG_SPL_USE_TINY_PRINTF=y -# CONFIG_PANIC_HANG is not set +CONFIG_PANIC_HANG=y CONFIG_REGEX=y CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 22d11a8f..a99adf63 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -2192,7 +2192,7 @@ CONFIG_STRTO=y CONFIG_SPL_STRTO=y CONFIG_SYS_HZ=1000 CONFIG_SPL_USE_TINY_PRINTF=y -# CONFIG_PANIC_HANG is not set +CONFIG_PANIC_HANG=y CONFIG_REGEX=y CONFIG_LIB_RAND=y # CONFIG_LIB_HW_RAND is not set -- cgit v1.2.1 From f08102a22731182e8ad2f678ab39b19508fd455a Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:38:13 +0300 Subject: u-boot: gru: Enable more bootstd features U-Boot upstream is switching to a new code framework for discovering and booting OSes ("Standard Boot", or "bootstd"). Enable more features for it, including commands we can use for introspection and debugging. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 14 ++++++++------ config/u-boot/gru_kevin/config/default | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index ca9b3de8..6e9e997c 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -380,7 +380,7 @@ CONFIG_PXE_UTILS=y CONFIG_BOOT_DEFAULTS=y CONFIG_BOOTSTD=y # CONFIG_SPL_BOOTSTD is not set -# CONFIG_BOOTSTD_FULL is not set +CONFIG_BOOTSTD_FULL=y CONFIG_BOOTSTD_DEFAULTS=y CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_BOOTMETH_GLOBAL=y @@ -437,6 +437,7 @@ CONFIG_AUTOBOOT=y CONFIG_BOOTDELAY=2 # CONFIG_AUTOBOOT_KEYED is not set # CONFIG_AUTOBOOT_USE_MENUKEY is not set +# CONFIG_AUTOBOOT_MENU_SHOW is not set # CONFIG_BOOT_RETRY is not set # @@ -446,7 +447,7 @@ CONFIG_BOOTDELAY=2 # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="bootflow scan" +CONFIG_BOOTCOMMAND="bootflow scan -lb" # CONFIG_USE_PREBOOT is not set CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set @@ -677,9 +678,10 @@ CONFIG_CMD_CONSOLE=y # CONFIG_CMD_BOOTD=y CONFIG_CMD_BOOTM=y -# CONFIG_CMD_BOOTDEV is not set +CONFIG_CMD_BOOTDEV=y CONFIG_CMD_BOOTFLOW=y -# CONFIG_CMD_BOOTMETH is not set +CONFIG_CMD_BOOTFLOW_FULL=y +CONFIG_CMD_BOOTMETH=y CONFIG_BOOTM_EFI=y CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTI=y @@ -689,14 +691,14 @@ CONFIG_BOOTM_NETBSD=y # CONFIG_BOOTM_OSE is not set CONFIG_BOOTM_PLAN9=y CONFIG_BOOTM_RTEMS=y -# CONFIG_CMD_VBE is not set +CONFIG_CMD_VBE=y CONFIG_BOOTM_VXWORKS=y CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTEFI=y CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y # CONFIG_CMD_BOOTEFI_HELLO is not set # CONFIG_CMD_BOOTEFI_SELFTEST is not set -# CONFIG_CMD_BOOTMENU is not set +CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ADTIMG is not set CONFIG_CMD_ELF=y CONFIG_CMD_FDT=y diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index a99adf63..0aa084e8 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -380,7 +380,7 @@ CONFIG_PXE_UTILS=y CONFIG_BOOT_DEFAULTS=y CONFIG_BOOTSTD=y # CONFIG_SPL_BOOTSTD is not set -# CONFIG_BOOTSTD_FULL is not set +CONFIG_BOOTSTD_FULL=y CONFIG_BOOTSTD_DEFAULTS=y CONFIG_BOOTSTD_BOOTCOMMAND=y CONFIG_BOOTMETH_GLOBAL=y @@ -437,6 +437,7 @@ CONFIG_AUTOBOOT=y CONFIG_BOOTDELAY=2 # CONFIG_AUTOBOOT_KEYED is not set # CONFIG_AUTOBOOT_USE_MENUKEY is not set +# CONFIG_AUTOBOOT_MENU_SHOW is not set # CONFIG_BOOT_RETRY is not set # @@ -446,7 +447,7 @@ CONFIG_BOOTDELAY=2 # CONFIG_USE_BOOTARGS is not set # CONFIG_BOOTARGS_SUBST is not set CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="bootflow scan" +CONFIG_BOOTCOMMAND="bootflow scan -lb" # CONFIG_USE_PREBOOT is not set CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-kevin.dtb" # CONFIG_SAVE_PREV_BL_FDT_ADDR is not set @@ -677,9 +678,10 @@ CONFIG_CMD_CONSOLE=y # CONFIG_CMD_BOOTD=y CONFIG_CMD_BOOTM=y -# CONFIG_CMD_BOOTDEV is not set +CONFIG_CMD_BOOTDEV=y CONFIG_CMD_BOOTFLOW=y -# CONFIG_CMD_BOOTMETH is not set +CONFIG_CMD_BOOTFLOW_FULL=y +CONFIG_CMD_BOOTMETH=y CONFIG_BOOTM_EFI=y CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTI=y @@ -689,14 +691,14 @@ CONFIG_BOOTM_NETBSD=y # CONFIG_BOOTM_OSE is not set CONFIG_BOOTM_PLAN9=y CONFIG_BOOTM_RTEMS=y -# CONFIG_CMD_VBE is not set +CONFIG_CMD_VBE=y CONFIG_BOOTM_VXWORKS=y CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTEFI=y CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y # CONFIG_CMD_BOOTEFI_HELLO is not set # CONFIG_CMD_BOOTEFI_SELFTEST is not set -# CONFIG_CMD_BOOTMENU is not set +CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ADTIMG is not set CONFIG_CMD_ELF=y CONFIG_CMD_FDT=y -- cgit v1.2.1 From 4e7e4761918d2cb04f3bf664c8c0ea8426a0e3bc Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:43:16 +0300 Subject: u-boot: gru: Enable more EFI commands Enable U-Boot commands to manipulate EFI environment storage, to self-test EFI implementation, and to run a basic EFI test application. These are so that we can test and debug EFI functionality easier. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 8 ++++---- config/u-boot/gru_kevin/config/default | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index 6e9e997c..ffb35e60 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -696,8 +696,8 @@ CONFIG_BOOTM_VXWORKS=y CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTEFI=y CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y -# CONFIG_CMD_BOOTEFI_HELLO is not set -# CONFIG_CMD_BOOTEFI_SELFTEST is not set +CONFIG_CMD_BOOTEFI_HELLO=y +CONFIG_CMD_BOOTEFI_SELFTEST=y CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ADTIMG is not set CONFIG_CMD_ELF=y @@ -725,7 +725,7 @@ CONFIG_CMD_SAVEENV=y CONFIG_CMD_ENV_EXISTS=y # CONFIG_CMD_ENV_CALLBACK is not set # CONFIG_CMD_ENV_FLAGS is not set -# CONFIG_CMD_NVEDIT_EFI is not set +CONFIG_CMD_NVEDIT_EFI=y # CONFIG_CMD_NVEDIT_INDIRECT is not set # CONFIG_CMD_NVEDIT_INFO is not set # CONFIG_CMD_NVEDIT_LOAD is not set @@ -875,7 +875,7 @@ CONFIG_CMD_BLOCK_CACHE=y # CONFIG_CMD_CACHE is not set # CONFIG_CMD_CONITRACE is not set CONFIG_CMD_CLS=y -# CONFIG_CMD_EFIDEBUG is not set +CONFIG_CMD_EFIDEBUG=y CONFIG_CMD_EFICONFIG=y # CONFIG_CMD_EXCEPTION is not set # CONFIG_CMD_INI is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 0aa084e8..08375841 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -696,8 +696,8 @@ CONFIG_BOOTM_VXWORKS=y CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTEFI=y CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y -# CONFIG_CMD_BOOTEFI_HELLO is not set -# CONFIG_CMD_BOOTEFI_SELFTEST is not set +CONFIG_CMD_BOOTEFI_HELLO=y +CONFIG_CMD_BOOTEFI_SELFTEST=y CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ADTIMG is not set CONFIG_CMD_ELF=y @@ -725,7 +725,7 @@ CONFIG_CMD_SAVEENV=y CONFIG_CMD_ENV_EXISTS=y # CONFIG_CMD_ENV_CALLBACK is not set # CONFIG_CMD_ENV_FLAGS is not set -# CONFIG_CMD_NVEDIT_EFI is not set +CONFIG_CMD_NVEDIT_EFI=y # CONFIG_CMD_NVEDIT_INDIRECT is not set # CONFIG_CMD_NVEDIT_INFO is not set # CONFIG_CMD_NVEDIT_LOAD is not set @@ -875,7 +875,7 @@ CONFIG_CMD_BLOCK_CACHE=y # CONFIG_CMD_CACHE is not set # CONFIG_CMD_CONITRACE is not set CONFIG_CMD_CLS=y -# CONFIG_CMD_EFIDEBUG is not set +CONFIG_CMD_EFIDEBUG=y CONFIG_CMD_EFICONFIG=y # CONFIG_CMD_EXCEPTION is not set # CONFIG_CMD_INI is not set -- cgit v1.2.1 From 6e65595da5301b9b8c435a9ab55e6f0d9b01a86d Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 11:48:29 +0300 Subject: u-boot: gru: Do not persist EFI variables By default U-Boot stores EFI variables in a ubootefi.var file in whatever EFI System Partition it finds, which would be a FAT filesystem. I'm occasionally finding out while testing that my ESPs somehow end up with a corrupted filesystem, and I'm suspecting it's this. For now, disable storing EFI environment variables on disk so that U-Boot doesn't try to manipulate the filesystem. Signed-off-by: Alper Nebi Yasak --- config/u-boot/gru_bob/config/default | 4 ++-- config/u-boot/gru_kevin/config/default | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default index ffb35e60..2bcbe3d8 100644 --- a/config/u-boot/gru_bob/config/default +++ b/config/u-boot/gru_bob/config/default @@ -2276,8 +2276,8 @@ CONFIG_GENERATE_SMBIOS_TABLE=y # CONFIG_SMBIOS_PARSER is not set CONFIG_EFI_LOADER=y CONFIG_CMD_BOOTEFI_BOOTMGR=y -CONFIG_EFI_VARIABLE_FILE_STORE=y -# CONFIG_EFI_VARIABLE_NO_STORE is not set +# CONFIG_EFI_VARIABLE_FILE_STORE is not set +CONFIG_EFI_VARIABLE_NO_STORE=y # CONFIG_EFI_VARIABLES_PRESEED is not set CONFIG_EFI_VAR_BUF_SIZE=65536 # CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default index 08375841..466bc96d 100644 --- a/config/u-boot/gru_kevin/config/default +++ b/config/u-boot/gru_kevin/config/default @@ -2276,8 +2276,8 @@ CONFIG_GENERATE_SMBIOS_TABLE=y # CONFIG_SMBIOS_PARSER is not set CONFIG_EFI_LOADER=y CONFIG_CMD_BOOTEFI_BOOTMGR=y -CONFIG_EFI_VARIABLE_FILE_STORE=y -# CONFIG_EFI_VARIABLE_NO_STORE is not set +# CONFIG_EFI_VARIABLE_FILE_STORE is not set +CONFIG_EFI_VARIABLE_NO_STORE=y # CONFIG_EFI_VARIABLES_PRESEED is not set CONFIG_EFI_VAR_BUF_SIZE=65536 # CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set -- cgit v1.2.1 From 4d9567a7561df6eeb0dd81f2faf522c8526163b0 Mon Sep 17 00:00:00 2001 From: Alper Nebi Yasak Date: Sat, 14 Oct 2023 17:08:59 +0300 Subject: coreboot: gru: Use default coreboot tree We don't really need a custom coreboot tree for Chromebooks. I had added one, because at a cursory glance to the available config/coreboot/board subdirectories I had the impression that I should. But upstreams have one tree for every board and I think we should move towards that too. Move the one important BL31 makefile patch into the default coreboot patches, update the gru boards' configs by running savedefconfig in the cros tree and then running olddefconfig in the default tree. Signed-off-by: Alper Nebi Yasak --- .../patches/0001-fix-crossgcc-build-error.patch | 55 ------ ...ing-for-coreboot-images-built-without-a-p.patch | 38 ---- ...CK-Disable-coreboot-related-BL31-features.patch | 28 --- ...ssgcc-cros-also-fix-acpica-downloads-here.patch | 31 ---- config/coreboot/cros/target.cfg | 4 - ...CK-Disable-coreboot-related-BL31-features.patch | 28 +++ .../coreboot/gru_bob/config/libgfxinit_corebootfb | 205 ++++++++++++++------- config/coreboot/gru_bob/target.cfg | 2 +- .../gru_kevin/config/libgfxinit_corebootfb | 201 +++++++++++++------- config/coreboot/gru_kevin/target.cfg | 2 +- script/update/project/trees | 4 +- 11 files changed, 308 insertions(+), 290 deletions(-) delete mode 100644 config/coreboot/cros/patches/0001-fix-crossgcc-build-error.patch delete mode 100644 config/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch delete mode 100644 config/coreboot/cros/patches/0003-HACK-Disable-coreboot-related-BL31-features.patch delete mode 100644 config/coreboot/cros/patches/0004-crossgcc-cros-also-fix-acpica-downloads-here.patch delete mode 100644 config/coreboot/cros/target.cfg create mode 100644 config/coreboot/default/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch diff --git a/config/coreboot/cros/patches/0001-fix-crossgcc-build-error.patch b/config/coreboot/cros/patches/0001-fix-crossgcc-build-error.patch deleted file mode 100644 index 34a60be0..00000000 --- a/config/coreboot/cros/patches/0001-fix-crossgcc-build-error.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 0d5a5f3ee1ee5d6f757d5877b7adbe9839487ccf Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sat, 19 Nov 2022 14:55:01 +0000 -Subject: [PATCH 1/1] fix crossgcc build error - ---- - util/crossgcc/patches/gcc-11.2.0_gnat.patch | 32 ++++++++++++++++++++- - 1 file changed, 31 insertions(+), 1 deletion(-) - -diff --git a/util/crossgcc/patches/gcc-11.2.0_gnat.patch b/util/crossgcc/patches/gcc-11.2.0_gnat.patch -index 2d7cecee24..c22cec45d0 100644 ---- a/util/crossgcc/patches/gcc-11.2.0_gnat.patch -+++ b/util/crossgcc/patches/gcc-11.2.0_gnat.patch -@@ -5,7 +5,37 @@ - - # Extra flags to pass to recursive makes. - -COMMON_ADAFLAGS= -gnatpg --+COMMON_ADAFLAGS= -gnatpg -gnatwGUR -++COMMON_ADAFLAGS= -gnatpg -gnatwn - ifeq ($(TREECHECKING),) - CHECKING_ADAFLAGS= - else -+diff -Nurp gcc-11.2.0/gcc/ada/gcc-interface/Make-lang.in gcc-11.2.0.new/gcc/ada/gcc-interface/Make-lang.in -+--- gcc-11.2.0/gcc/ada/gcc-interface/Make-lang.in 2022-06-03 00:31:57.993273717 +0200 -++++ gcc-11.2.0.new/gcc/ada/gcc-interface/Make-lang.in 2022-06-03 00:30:50.214166847 +0200 -+@@ -334,6 +334,7 @@ GNAT_ADA_OBJS = \ -+ ada/hostparm.o \ -+ ada/impunit.o \ -+ ada/inline.o \ -++ ada/libgnat/i-c.o \ -+ ada/libgnat/interfac.o \ -+ ada/itypes.o \ -+ ada/krunch.o \ -+@@ -364,7 +365,10 @@ GNAT_ADA_OBJS = \ -+ ada/rtsfind.o \ -+ ada/libgnat/s-addope.o \ -+ ada/libgnat/s-addima.o \ -++ ada/libgnat/s-aotase.o \ -+ ada/libgnat/s-assert.o \ -++ ada/libgnat/s-atoope.o \ -++ ada/libgnat/s-atopri.o \ -+ ada/libgnat/s-bitops.o \ -+ ada/libgnat/s-carun8.o \ -+ ada/libgnat/s-casuti.o \ -+@@ -548,6 +552,7 @@ GNATBIND_OBJS = \ -+ ada/hostparm.o \ -+ ada/init.o \ -+ ada/initialize.o \ -++ ada/libgnat/i-c.o \ -+ ada/libgnat/interfac.o \ -+ ada/krunch.o \ -+ ada/lib.o \ --- -2.25.1 - diff --git a/config/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch b/config/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch deleted file mode 100644 index 547c6392..00000000 --- a/config/coreboot/cros/patches/0002-Remove-warning-for-coreboot-images-built-without-a-p.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1ce4f118b024a6367382b46016781f30fe622e3e Mon Sep 17 00:00:00 2001 -From: Nicholas Chin -Date: Fri, 12 May 2023 19:55:15 -0600 -Subject: [PATCH] Remove warning for coreboot images built without a payload - -I added this in upstream to prevent people from accidentally flashing -roms without a payload resulting in a no boot situation, but in -libreboot lbmk handles the payload and thus this warning always comes -up. This has caused confusion and concern so just patch it out. ---- - payloads/Makefile.inc | 13 +------------ - 1 file changed, 1 insertion(+), 12 deletions(-) - -diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc -index e735443a76..4f1692a873 100644 ---- a/payloads/Makefile.inc -+++ b/payloads/Makefile.inc -@@ -49,16 +49,5 @@ distclean-payloads: - print-repo-info-payloads: - -$(foreach payload, $(PAYLOADS_LIST), $(MAKE) -C $(payload) print-repo-info 2>/dev/null; ) - --ifeq ($(CONFIG_PAYLOAD_NONE),y) --files_added:: warn_no_payload --endif -- --warn_no_payload: -- printf "\n\t** WARNING **\n" -- printf "coreboot has been built without a payload. Writing\n" -- printf "a coreboot image without a payload to your board's\n" -- printf "flash chip will result in a non-booting system. You\n" -- printf "can use cbfstool to add a payload to the image.\n\n" -- - .PHONY: force-payload coreinfo nvramcui --.PHONY: clean-payloads distclean-payloads print-repo-info-payloads warn_no_payload -+.PHONY: clean-payloads distclean-payloads print-repo-info-payloads --- -2.40.1 - diff --git a/config/coreboot/cros/patches/0003-HACK-Disable-coreboot-related-BL31-features.patch b/config/coreboot/cros/patches/0003-HACK-Disable-coreboot-related-BL31-features.patch deleted file mode 100644 index d179a05a..00000000 --- a/config/coreboot/cros/patches/0003-HACK-Disable-coreboot-related-BL31-features.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 9f52555eac217623ad2edc72492f9ded6a5b538d Mon Sep 17 00:00:00 2001 -From: Alper Nebi Yasak -Date: Thu, 22 Jun 2023 16:44:27 +0300 -Subject: [PATCH] HACK: Disable coreboot related BL31 features - -I don't know why, but removing this BL31 make argument lets gru-kevin -power off properly when shut down from Linux. Needs investigation. ---- - src/arch/arm64/Makefile.inc | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc -index 6b49743633c3..e1982d92cc5c 100644 ---- a/src/arch/arm64/Makefile.inc -+++ b/src/arch/arm64/Makefile.inc -@@ -158,9 +158,6 @@ BL31_MAKEARGS += LOG_LEVEL=40 - # Always enable crash reporting, even on a release build - BL31_MAKEARGS += CRASH_REPORTING=1 - --# Enable coreboot-specific features like CBMEM console support --BL31_MAKEARGS += COREBOOT=1 -- - # Avoid build/release|build/debug distinction by overriding BUILD_PLAT directly - BL31_MAKEARGS += BUILD_PLAT="$(BL31_BUILD)" - --- -2.40.1 - diff --git a/config/coreboot/cros/patches/0004-crossgcc-cros-also-fix-acpica-downloads-here.patch b/config/coreboot/cros/patches/0004-crossgcc-cros-also-fix-acpica-downloads-here.patch deleted file mode 100644 index 9f78f31f..00000000 --- a/config/coreboot/cros/patches/0004-crossgcc-cros-also-fix-acpica-downloads-here.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a7fb02b80bc4ddae00ce7578054eb35d5c06b57b Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Sun, 16 Jul 2023 02:25:23 +0100 -Subject: [PATCH 1/1] crossgcc/cros: also fix acpica downloads here - -my last revision said in libreboot/gnuboot it was -only broken in fam15h boards, but the fix is needed -here too. i've already put the correct tarball on -libreboot rsync, for this purpose - -Signed-off-by: Leah Rowe ---- - util/crossgcc/buildgcc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc -index b25b260807..327297cea3 100755 ---- a/util/crossgcc/buildgcc -+++ b/util/crossgcc/buildgcc -@@ -52,7 +52,7 @@ MPFR_ARCHIVE="https://ftpmirror.gnu.org/mpfr/mpfr-${MPFR_VERSION}.tar.xz" - MPC_ARCHIVE="https://ftpmirror.gnu.org/mpc/mpc-${MPC_VERSION}.tar.gz" - GCC_ARCHIVE="https://ftpmirror.gnu.org/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.xz" - BINUTILS_ARCHIVE="https://ftpmirror.gnu.org/binutils/binutils-${BINUTILS_VERSION}.tar.xz" --IASL_ARCHIVE="https://acpica.org/sites/acpica/files/acpica-unix2-${IASL_VERSION}.tar.gz" -+IASL_ARCHIVE="https://mirror.math.princeton.edu/pub/libreboot/misc/acpica/acpica-unix2-${IASL_VERSION}.tar.gz" - # CLANG toolchain archive locations - LLVM_ARCHIVE="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/llvm-${CLANG_VERSION}.src.tar.xz" - CLANG_ARCHIVE="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}/clang-${CLANG_VERSION}.src.tar.xz" --- -2.40.1 - diff --git a/config/coreboot/cros/target.cfg b/config/coreboot/cros/target.cfg deleted file mode 100644 index a595ce7e..00000000 --- a/config/coreboot/cros/target.cfg +++ /dev/null @@ -1,4 +0,0 @@ -tree="cros" -arch="spaghettimonster" -rev="8da4bfe5b573f395057fbfb5a9d99b376e25c2a4" # 4.17 -romtype="normal" diff --git a/config/coreboot/default/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch b/config/coreboot/default/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch new file mode 100644 index 00000000..d179a05a --- /dev/null +++ b/config/coreboot/default/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch @@ -0,0 +1,28 @@ +From 9f52555eac217623ad2edc72492f9ded6a5b538d Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak +Date: Thu, 22 Jun 2023 16:44:27 +0300 +Subject: [PATCH] HACK: Disable coreboot related BL31 features + +I don't know why, but removing this BL31 make argument lets gru-kevin +power off properly when shut down from Linux. Needs investigation. +--- + src/arch/arm64/Makefile.inc | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc +index 6b49743633c3..e1982d92cc5c 100644 +--- a/src/arch/arm64/Makefile.inc ++++ b/src/arch/arm64/Makefile.inc +@@ -158,9 +158,6 @@ BL31_MAKEARGS += LOG_LEVEL=40 + # Always enable crash reporting, even on a release build + BL31_MAKEARGS += CRASH_REPORTING=1 + +-# Enable coreboot-specific features like CBMEM console support +-BL31_MAKEARGS += COREBOOT=1 +- + # Avoid build/release|build/debug distinction by overriding BUILD_PLAT directly + BL31_MAKEARGS += BUILD_PLAT="$(BL31_BUILD)" + +-- +2.40.1 + diff --git a/config/coreboot/gru_bob/config/libgfxinit_corebootfb b/config/coreboot/gru_bob/config/libgfxinit_corebootfb index d6198c27..7990fb0c 100644 --- a/config/coreboot/gru_bob/config/libgfxinit_corebootfb +++ b/config/coreboot/gru_bob/config/libgfxinit_corebootfb @@ -13,10 +13,12 @@ CONFIG_COMPILER_GCC=y # CONFIG_ALLOW_EXPERIMENTAL_CLANG is not set # CONFIG_ANY_TOOLCHAIN is not set # CONFIG_CCACHE is not set +# CONFIG_IWYU is not set # CONFIG_FMD_GENPARSER is not set # CONFIG_UTIL_GENPARSER is not set CONFIG_OPTION_BACKEND_NONE=y -CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set CONFIG_COMPRESS_PRERAM_STAGES=y CONFIG_COMPRESS_BOOTBLOCK=y CONFIG_INCLUDE_CONFIG_FILE=y @@ -30,6 +32,12 @@ CONFIG_NO_STAGE_CACHE=y # CONFIG_UPDATE_IMAGE is not set # CONFIG_BOOTSPLASH_IMAGE is not set # CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) # end of General setup # @@ -47,30 +55,28 @@ CONFIG_NO_STAGE_CACHE=y # CONFIG_VENDOR_APPLE is not set # CONFIG_VENDOR_ASROCK is not set # CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BAP is not set # CONFIG_VENDOR_BIOSTAR is not set # CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_BYTEDANCE is not set # CONFIG_VENDOR_CAVIUM is not set # CONFIG_VENDOR_CLEVO is not set # CONFIG_VENDOR_COMPULAB is not set # CONFIG_VENDOR_DELL is not set -# CONFIG_VENDOR_ELMEX is not set # CONFIG_VENDOR_EMULATION is not set # CONFIG_VENDOR_EXAMPLE is not set # CONFIG_VENDOR_FACEBOOK is not set # CONFIG_VENDOR_FOXCONN is not set # CONFIG_VENDOR_GETAC is not set # CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GIZMOSPHERE is not set CONFIG_VENDOR_GOOGLE=y # CONFIG_VENDOR_HP is not set # CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IBM is not set # CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_INVENTEC is not set # CONFIG_VENDOR_KONTRON is not set # CONFIG_VENDOR_LENOVO is not set # CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_LIPPERT is not set # CONFIG_VENDOR_MSI is not set # CONFIG_VENDOR_OCP is not set # CONFIG_VENDOR_OPENCELLULAR is not set @@ -85,7 +91,6 @@ CONFIG_VENDOR_GOOGLE=y # CONFIG_VENDOR_RODA is not set # CONFIG_VENDOR_SAMSUNG is not set # CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SCALEWAY is not set # CONFIG_VENDOR_SIEMENS is not set # CONFIG_VENDOR_SIFIVE is not set # CONFIG_VENDOR_STARLABS is not set @@ -106,14 +111,15 @@ CONFIG_CONSOLE_SERIAL=y CONFIG_MAX_CPUS=1 CONFIG_POST_DEVICE=y CONFIG_UART_FOR_CONSOLE=0 +CONFIG_DEVICETREE="devicetree.cb" # CONFIG_VBOOT is not set # CONFIG_CHROMEOS is not set -CONFIG_DEVICETREE="devicetree.cb" CONFIG_OVERRIDE_DEVICETREE="" CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=1 CONFIG_CONSOLE_SERIAL_UART_ADDRESS=0xFF1A0000 # CONFIG_CONSOLE_POST is not set CONFIG_MEMLAYOUT_LD_FILE="src/soc/rockchip/rk3399/memlayout.ld" +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 CONFIG_SPI_FLASH_WINBOND=y # @@ -148,33 +154,54 @@ CONFIG_SPI_FLASH_WINBOND=y # CONFIG_BOARD_GOOGLE_AGAH is not set # CONFIG_BOARD_GOOGLE_ANAHERA is not set # CONFIG_BOARD_GOOGLE_ANAHERA4ES is not set +# CONFIG_BOARD_GOOGLE_AURASH is not set +# CONFIG_BOARD_GOOGLE_BANSHEE is not set # CONFIG_BOARD_GOOGLE_BRASK is not set # CONFIG_BOARD_GOOGLE_BRYA0 is not set -# CONFIG_BOARD_GOOGLE_BRYA4ES is not set +# CONFIG_BOARD_GOOGLE_CRAASK is not set +# CONFIG_BOARD_GOOGLE_CRAASKOV is not set +# CONFIG_BOARD_GOOGLE_CONSTITUTION is not set +# CONFIG_BOARD_GOOGLE_CROTA is not set # CONFIG_BOARD_GOOGLE_FELWINTER is not set +# CONFIG_BOARD_GOOGLE_GAELIN is not set # CONFIG_BOARD_GOOGLE_GIMBLE is not set # CONFIG_BOARD_GOOGLE_GIMBLE4ES is not set +# CONFIG_BOARD_GOOGLE_GLADIOS is not set +# CONFIG_BOARD_GOOGLE_GOTHRAX is not set +# CONFIG_BOARD_GOOGLE_HADES is not set # CONFIG_BOARD_GOOGLE_KANO is not set +# CONFIG_BOARD_GOOGLE_KINOX is not set +# CONFIG_BOARD_GOOGLE_KULDAX is not set +# CONFIG_BOARD_GOOGLE_JOXER is not set +# CONFIG_BOARD_GOOGLE_LISBON is not set +# CONFIG_BOARD_GOOGLE_MARASOV is not set +# CONFIG_BOARD_GOOGLE_MITHRAX is not set +# CONFIG_BOARD_GOOGLE_MOLI is not set # CONFIG_BOARD_GOOGLE_NIVVIKS is not set # CONFIG_BOARD_GOOGLE_NEREID is not set +# CONFIG_BOARD_GOOGLE_OMNIGUL is not set +# CONFIG_BOARD_GOOGLE_OSIRIS is not set +# CONFIG_BOARD_GOOGLE_PIRRHA is not set # CONFIG_BOARD_GOOGLE_PRIMUS is not set # CONFIG_BOARD_GOOGLE_PRIMUS4ES is not set +# CONFIG_BOARD_GOOGLE_PUJJO is not set +# CONFIG_BOARD_GOOGLE_QUANDISO is not set # CONFIG_BOARD_GOOGLE_REDRIX is not set # CONFIG_BOARD_GOOGLE_REDRIX4ES is not set +# CONFIG_BOARD_GOOGLE_SKOLAS is not set # CONFIG_BOARD_GOOGLE_SKOLAS4ES is not set # CONFIG_BOARD_GOOGLE_TAEKO is not set # CONFIG_BOARD_GOOGLE_TAEKO4ES is not set # CONFIG_BOARD_GOOGLE_TANIKS is not set +# CONFIG_BOARD_GOOGLE_ULDREN is not set # CONFIG_BOARD_GOOGLE_VELL is not set # CONFIG_BOARD_GOOGLE_VOLMAR is not set -# CONFIG_BOARD_GOOGLE_BANSHEE is not set -# CONFIG_BOARD_GOOGLE_CROTA is not set -# CONFIG_BOARD_GOOGLE_MOLI is not set -# CONFIG_BOARD_GOOGLE_KINOX is not set -# CONFIG_BOARD_GOOGLE_CRAASK is not set -# CONFIG_BOARD_GOOGLE_OSIRIS is not set -# CONFIG_BOARD_GOOGLE_MITHRAX is not set -# CONFIG_BOARD_GOOGLE_KULDAX is not set +# CONFIG_BOARD_GOOGLE_XIVU is not set +# CONFIG_BOARD_GOOGLE_YAVIKS is not set +# CONFIG_BOARD_GOOGLE_YAVILLA is not set +# CONFIG_BOARD_GOOGLE_ZYDRON is not set +# CONFIG_BOARD_GOOGLE_NOKRIS is not set +# CONFIG_BOARD_GOOGLE_DOCHI is not set # # Butterfly @@ -193,11 +220,20 @@ CONFIG_SPI_FLASH_WINBOND=y # # CONFIG_BOARD_GOOGLE_KINGLER is not set # CONFIG_BOARD_GOOGLE_STEELIX is not set +# CONFIG_BOARD_GOOGLE_VOLTORB is not set +# CONFIG_BOARD_GOOGLE_PONYTA is not set # # Krabby # # CONFIG_BOARD_GOOGLE_KRABBY is not set +# CONFIG_BOARD_GOOGLE_TENTACRUEL is not set +# CONFIG_BOARD_GOOGLE_MAGIKARP is not set + +# +# Staryu +# +# CONFIG_BOARD_GOOGLE_STARMIE is not set # # Cyan @@ -223,6 +259,7 @@ CONFIG_SPI_FLASH_WINBOND=y # Dedede # # CONFIG_BOARD_GOOGLE_BOTEN is not set +# CONFIG_BOARD_GOOGLE_DIBBI is not set # CONFIG_BOARD_GOOGLE_DEDEDE is not set # CONFIG_BOARD_GOOGLE_DRAWCIA is not set # CONFIG_BOARD_GOOGLE_HABOKI is not set @@ -247,6 +284,10 @@ CONFIG_SPI_FLASH_WINBOND=y # CONFIG_BOARD_GOOGLE_DRIBLEE is not set # CONFIG_BOARD_GOOGLE_GOOEY is not set # CONFIG_BOARD_GOOGLE_BEADRIX is not set +# CONFIG_BOARD_GOOGLE_SHOTZO is not set +# CONFIG_BOARD_GOOGLE_TARANZA is not set +# CONFIG_BOARD_GOOGLE_BOXY is not set +# CONFIG_BOARD_GOOGLE_DEXI is not set # # Drallion @@ -275,6 +316,11 @@ CONFIG_SPI_FLASH_WINBOND=y # # CONFIG_BOARD_GOOGLE_GALE is not set +# +# Geralt +# +# CONFIG_BOARD_GOOGLE_GERALT is not set + # # Glados # @@ -307,29 +353,16 @@ CONFIG_BOARD_GOOGLE_BOB=y # Hatch # # CONFIG_BOARD_GOOGLE_AKEMI is not set -# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set -# CONFIG_BOARD_GOOGLE_DOOLY is not set # CONFIG_BOARD_GOOGLE_DRATINI is not set -# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set -# CONFIG_BOARD_GOOGLE_DUFFY is not set -# CONFIG_BOARD_GOOGLE_FAFFY is not set -# CONFIG_BOARD_GOOGLE_GENESIS is not set # CONFIG_BOARD_GOOGLE_HATCH is not set # CONFIG_BOARD_GOOGLE_HELIOS is not set # CONFIG_BOARD_GOOGLE_HELIOS_DISKSWAP is not set # CONFIG_BOARD_GOOGLE_JINLON is not set -# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set -# CONFIG_BOARD_GOOGLE_KAISA is not set # CONFIG_BOARD_GOOGLE_KINDRED is not set # CONFIG_BOARD_GOOGLE_KOHAKU is not set -# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set # CONFIG_BOARD_GOOGLE_MUSHU is not set # CONFIG_BOARD_GOOGLE_NIGHTFURY is not set -# CONFIG_BOARD_GOOGLE_NOIBAT is not set # CONFIG_BOARD_GOOGLE_PALKIA is not set -# CONFIG_BOARD_GOOGLE_PUFF is not set -# CONFIG_BOARD_GOOGLE_SCOUT is not set -# CONFIG_BOARD_GOOGLE_WYVERN is not set # # Herobrine @@ -395,6 +428,11 @@ CONFIG_BOARD_GOOGLE_BOB=y # # CONFIG_BOARD_GOOGLE_MISTRAL is not set +# +# Myst +# +# CONFIG_BOARD_GOOGLE_MYST is not set + # # Nyan # @@ -455,6 +493,23 @@ CONFIG_BOARD_GOOGLE_BOB=y # CONFIG_BOARD_GOOGLE_RAMMUS is not set # CONFIG_BOARD_GOOGLE_SORAKA is not set +# +# Puff +# +# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set +# CONFIG_BOARD_GOOGLE_DOOLY is not set +# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set +# CONFIG_BOARD_GOOGLE_DUFFY is not set +# CONFIG_BOARD_GOOGLE_FAFFY is not set +# CONFIG_BOARD_GOOGLE_GENESIS is not set +# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set +# CONFIG_BOARD_GOOGLE_KAISA is not set +# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set +# CONFIG_BOARD_GOOGLE_NOIBAT is not set +# CONFIG_BOARD_GOOGLE_PUFF is not set +# CONFIG_BOARD_GOOGLE_SCOUT is not set +# CONFIG_BOARD_GOOGLE_WYVERN is not set + # # Rambi # @@ -462,6 +517,7 @@ CONFIG_BOARD_GOOGLE_BOB=y # CONFIG_BOARD_GOOGLE_CANDY is not set # CONFIG_BOARD_GOOGLE_CLAPPER is not set # CONFIG_BOARD_GOOGLE_ENGUARDE is not set +# CONFIG_BOARD_GOOGLE_EXPRESSO is not set # CONFIG_BOARD_GOOGLE_GLIMMER is not set # CONFIG_BOARD_GOOGLE_GNAWTY is not set # CONFIG_BOARD_GOOGLE_HELI is not set @@ -484,6 +540,20 @@ CONFIG_BOARD_GOOGLE_BOB=y # CONFIG_BOARD_GOOGLE_SNAPPY is not set # CONFIG_BOARD_GOOGLE_CORAL is not set +# +# Rex +# +# CONFIG_BOARD_GOOGLE_REX0 is not set +# CONFIG_BOARD_GOOGLE_SCREEBO is not set +# CONFIG_BOARD_GOOGLE_SCREEBO4ES is not set +# CONFIG_BOARD_GOOGLE_KARIS is not set +# CONFIG_BOARD_GOOGLE_KARIS4ES is not set +# CONFIG_BOARD_GOOGLE_REX_EC_ISH is not set +# CONFIG_BOARD_GOOGLE_OVIS is not set +# CONFIG_BOARD_GOOGLE_OVIS4ES is not set +# CONFIG_BOARD_GOOGLE_REX4ES is not set +# CONFIG_BOARD_GOOGLE_REX4ES_EC_ISH is not set + # # Sarien # @@ -494,6 +564,10 @@ CONFIG_BOARD_GOOGLE_BOB=y # Skyrim # # CONFIG_BOARD_GOOGLE_SKYRIM is not set +# CONFIG_BOARD_GOOGLE_WINTERHOLD is not set +# CONFIG_BOARD_GOOGLE_FROSTFLOW is not set +# CONFIG_BOARD_GOOGLE_CRYSTALDRIFT is not set +# CONFIG_BOARD_GOOGLE_MARKARTH is not set # # Slippy @@ -548,25 +622,25 @@ CONFIG_BOARD_GOOGLE_BOB=y # # Volteer # +# CONFIG_BOARD_GOOGLE_CHRONICLER is not set +# CONFIG_BOARD_GOOGLE_COLLIS is not set +# CONFIG_BOARD_GOOGLE_COPANO is not set # CONFIG_BOARD_GOOGLE_DELBIN is not set +# CONFIG_BOARD_GOOGLE_DROBIT is not set # CONFIG_BOARD_GOOGLE_ELDRID is not set +# CONFIG_BOARD_GOOGLE_ELEMI is not set # CONFIG_BOARD_GOOGLE_HALVOR is not set # CONFIG_BOARD_GOOGLE_LINDAR is not set # CONFIG_BOARD_GOOGLE_MALEFOR is not set # CONFIG_BOARD_GOOGLE_TERRADOR is not set # CONFIG_BOARD_GOOGLE_TODOR is not set # CONFIG_BOARD_GOOGLE_TRONDO is not set +# CONFIG_BOARD_GOOGLE_VOEMA is not set +# CONFIG_BOARD_GOOGLE_VOLET is not set # CONFIG_BOARD_GOOGLE_VOLTEER is not set # CONFIG_BOARD_GOOGLE_VOLTEER2 is not set # CONFIG_BOARD_GOOGLE_VOLTEER2_TI50 is not set # CONFIG_BOARD_GOOGLE_VOXEL is not set -# CONFIG_BOARD_GOOGLE_ELEMI is not set -# CONFIG_BOARD_GOOGLE_VOEMA is not set -# CONFIG_BOARD_GOOGLE_DROBIT is not set -# CONFIG_BOARD_GOOGLE_COPANO is not set -# CONFIG_BOARD_GOOGLE_COLLIS is not set -# CONFIG_BOARD_GOOGLE_VOLET is not set -# CONFIG_BOARD_GOOGLE_CHRONICLER is not set # # Zork @@ -586,18 +660,24 @@ CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS=0x5 CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 CONFIG_DRIVER_TPM_I2C_BUS=0x0 CONFIG_DRIVER_TPM_I2C_ADDR=0x20 +CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_PMIC_BUS=-1 CONFIG_BOARD_GOOGLE_GRU_COMMON=y CONFIG_GRU_HAS_TPM2=y CONFIG_GRU_HAS_CENTERLOG_PWM=y CONFIG_GRU_HAS_WLAN_RESET=y CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME="" +CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US=0 CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_HEAP_SIZE=0x100000 -CONFIG_DRIVER_TPM_SPI_CHIP=0 +CONFIG_TTYS0_BAUD=115200 +CONFIG_D3COLD_SUPPORT=y +CONFIG_PC_CMOS_BASE_PORT_BANK1=0x72 CONFIG_EC_GPE_SCI=0x50 +CONFIG_DRIVER_TPM_SPI_CHIP=0 +# CONFIG_TPM_MEASURED_BOOT is not set CONFIG_BOARD_ROMSIZE_KB_8192=y # CONFIG_COREBOOT_ROMSIZE_KB_256 is not set # CONFIG_COREBOOT_ROMSIZE_KB_512 is not set @@ -624,21 +704,17 @@ CONFIG_ROM_SIZE=0x00800000 # SoC # CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_CACHE_ALIGN=8 CONFIG_ARM64_BL31_EXTERNAL_FILE="" CONFIG_ARCH_ARMV8_EXTENSION=0 CONFIG_STACK_SIZE=0x0 -CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254 CONFIG_INTEL_GMA_BCLV_WIDTH=16 CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_TTYS0_BASE=0x3f8 -CONFIG_TTYS0_LCS=3 -CONFIG_UART_PCI_ADDR=0x0 CONFIG_GENERIC_UDELAY=y CONFIG_SOC_ROCKCHIP_RK3399=y CONFIG_RK3399_SPREAD_SPECTRUM_DDR=y +CONFIG_CBFS_CACHE_ALIGN=8 # # CPU @@ -695,6 +771,7 @@ CONFIG_HAVE_LINEAR_FRAMEBUFFER=y CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT=y CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_NO_EARLY_GFX_INIT=y # # Display @@ -704,9 +781,11 @@ CONFIG_LINEAR_FRAMEBUFFER=y # CONFIG_BOOTSPLASH is not set # end of Display +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set # CONFIG_SOFTWARE_I2C is not set CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -CONFIG_RESOURCE_ALLOCATOR_V4=y +CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=y # end of Devices # @@ -716,9 +795,7 @@ CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 # CONFIG_ELOG is not set CONFIG_COMMON_CBFS_SPI_WRAPPER=y CONFIG_SPI_FLASH=y -CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y # CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_TPM_INIT_RAMSTAGE=y CONFIG_DRIVERS_UART=y CONFIG_UART_OVERRIDE_REFCLK=y @@ -726,10 +803,12 @@ CONFIG_DRIVERS_UART_8250MEM=y CONFIG_DRIVERS_UART_8250MEM_32=y # CONFIG_VPD is not set # CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set -CONFIG_INTEL_GMA_OPREGION_2_0=y +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +CONFIG_PC_CMOS_BASE_PORT_BANK0=0x70 CONFIG_SPI_TPM=y # end of Generic Drivers @@ -751,6 +830,8 @@ CONFIG_SPI_TPM=y CONFIG_TPM_GOOGLE=y CONFIG_TPM_GOOGLE_CR50=y CONFIG_TPM_GOOGLE_IMMEDIATELY_COMMIT_FW_SECDATA=y +CONFIG_GOOGLE_TPM_IRQ_TIMEOUT_MS=10 +CONFIG_CR50_RESET_CLEAR_EC_AP_IDLE_FLAG=y # # Trusted Platform Module @@ -760,9 +841,14 @@ CONFIG_TPM2=y CONFIG_TPM=y CONFIG_MAINBOARD_HAS_TPM2=y # CONFIG_DEBUG_TPM is not set -# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module +CONFIG_TPM_SETUP_HIBERNATE_ON_ERR=y + # # Memory initialization # @@ -774,9 +860,11 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y # end of Security CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_CUSTOM_MADT=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y CONFIG_RTC=y +CONFIG_HEAP_SIZE=0x100000 # # Console @@ -786,6 +874,7 @@ CONFIG_BOOTBLOCK_CONSOLE=y # # memory mapped, 8250-compatible # +CONFIG_TTYS0_BASE=0x3f8 # CONFIG_CONSOLE_SERIAL_921600 is not set # CONFIG_CONSOLE_SERIAL_460800 is not set # CONFIG_CONSOLE_SERIAL_230400 is not set @@ -794,7 +883,7 @@ CONFIG_CONSOLE_SERIAL_115200=y # CONFIG_CONSOLE_SERIAL_38400 is not set # CONFIG_CONSOLE_SERIAL_19200 is not set # CONFIG_CONSOLE_SERIAL_9600 is not set -CONFIG_TTYS0_BAUD=115200 +CONFIG_TTYS0_LCS=3 CONFIG_CONSOLE_CBMEM=y # CONFIG_CONSOLE_SPI_FLASH is not set # CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set @@ -824,20 +913,6 @@ CONFIG_HAVE_MONOTONIC_TIMER=y # Payload # CONFIG_PAYLOAD_NONE=y -# CONFIG_PAYLOAD_ELF is not set -# CONFIG_PAYLOAD_FIT is not set -# CONFIG_PAYLOAD_BOOTBOOT is not set -# CONFIG_PAYLOAD_LINUXBOOT is not set -# CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_OPTIONS="" -CONFIG_PAYLOAD_FIT_SUPPORT=y -CONFIG_COMPRESS_SECONDARY_PAYLOAD=y - -# -# Secondary Payloads -# -# CONFIG_GRUB2_SECONDARY_PAYLOAD is not set -# end of Secondary Payloads # end of Payload # @@ -865,7 +940,7 @@ CONFIG_COMPRESS_SECONDARY_PAYLOAD=y # CONFIG_DEBUG_ADA_CODE is not set # end of Debugging -CONFIG_FLATTENED_DEVICE_TREE=y +CONFIG_DECOMPRESS_OFAST=y CONFIG_WARNINGS_ARE_ERRORS=y CONFIG_MAX_REBOOT_CNT=3 CONFIG_NO_XIP_EARLY_STAGES=y diff --git a/config/coreboot/gru_bob/target.cfg b/config/coreboot/gru_bob/target.cfg index 94e71d96..928029cb 100644 --- a/config/coreboot/gru_bob/target.cfg +++ b/config/coreboot/gru_bob/target.cfg @@ -1,4 +1,4 @@ -tree="cros" +tree="default" romtype="normal" arch="AArch64" payload_uboot="y" diff --git a/config/coreboot/gru_kevin/config/libgfxinit_corebootfb b/config/coreboot/gru_kevin/config/libgfxinit_corebootfb index ef0022d5..61835e76 100644 --- a/config/coreboot/gru_kevin/config/libgfxinit_corebootfb +++ b/config/coreboot/gru_kevin/config/libgfxinit_corebootfb @@ -13,10 +13,12 @@ CONFIG_COMPILER_GCC=y # CONFIG_ALLOW_EXPERIMENTAL_CLANG is not set # CONFIG_ANY_TOOLCHAIN is not set # CONFIG_CCACHE is not set +# CONFIG_IWYU is not set # CONFIG_FMD_GENPARSER is not set # CONFIG_UTIL_GENPARSER is not set CONFIG_OPTION_BACKEND_NONE=y -CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_COMPRESS_RAMSTAGE_LZMA=y +# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set CONFIG_COMPRESS_PRERAM_STAGES=y CONFIG_COMPRESS_BOOTBLOCK=y CONFIG_INCLUDE_CONFIG_FILE=y @@ -30,6 +32,12 @@ CONFIG_NO_STAGE_CACHE=y # CONFIG_UPDATE_IMAGE is not set # CONFIG_BOOTSPLASH_IMAGE is not set # CONFIG_FW_CONFIG is not set + +# +# Software Bill Of Materials (SBOM) +# +# CONFIG_SBOM is not set +# end of Software Bill Of Materials (SBOM) # end of General setup # @@ -47,30 +55,28 @@ CONFIG_NO_STAGE_CACHE=y # CONFIG_VENDOR_APPLE is not set # CONFIG_VENDOR_ASROCK is not set # CONFIG_VENDOR_ASUS is not set -# CONFIG_VENDOR_BAP is not set # CONFIG_VENDOR_BIOSTAR is not set # CONFIG_VENDOR_BOSTENTECH is not set +# CONFIG_VENDOR_BYTEDANCE is not set # CONFIG_VENDOR_CAVIUM is not set # CONFIG_VENDOR_CLEVO is not set # CONFIG_VENDOR_COMPULAB is not set # CONFIG_VENDOR_DELL is not set -# CONFIG_VENDOR_ELMEX is not set # CONFIG_VENDOR_EMULATION is not set # CONFIG_VENDOR_EXAMPLE is not set # CONFIG_VENDOR_FACEBOOK is not set # CONFIG_VENDOR_FOXCONN is not set # CONFIG_VENDOR_GETAC is not set # CONFIG_VENDOR_GIGABYTE is not set -# CONFIG_VENDOR_GIZMOSPHERE is not set CONFIG_VENDOR_GOOGLE=y # CONFIG_VENDOR_HP is not set # CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IBM is not set # CONFIG_VENDOR_INTEL is not set -# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_INVENTEC is not set # CONFIG_VENDOR_KONTRON is not set # CONFIG_VENDOR_LENOVO is not set # CONFIG_VENDOR_LIBRETREND is not set -# CONFIG_VENDOR_LIPPERT is not set # CONFIG_VENDOR_MSI is not set # CONFIG_VENDOR_OCP is not set # CONFIG_VENDOR_OPENCELLULAR is not set @@ -85,7 +91,6 @@ CONFIG_VENDOR_GOOGLE=y # CONFIG_VENDOR_RODA is not set # CONFIG_VENDOR_SAMSUNG is not set # CONFIG_VENDOR_SAPPHIRE is not set -# CONFIG_VENDOR_SCALEWAY is not set # CONFIG_VENDOR_SIEMENS is not set # CONFIG_VENDOR_SIFIVE is not set # CONFIG_VENDOR_STARLABS is not set @@ -106,14 +111,15 @@ CONFIG_CONSOLE_SERIAL=y CONFIG_MAX_CPUS=1 CONFIG_POST_DEVICE=y CONFIG_UART_FOR_CONSOLE=0 +CONFIG_DEVICETREE="devicetree.cb" # CONFIG_VBOOT is not set # CONFIG_CHROMEOS is not set -CONFIG_DEVICETREE="devicetree.cb" CONFIG_OVERRIDE_DEVICETREE="" CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=1 CONFIG_CONSOLE_SERIAL_UART_ADDRESS=0xFF1A0000 # CONFIG_CONSOLE_POST is not set CONFIG_MEMLAYOUT_LD_FILE="src/soc/rockchip/rk3399/memlayout.ld" +CONFIG_MAX_ACPI_TABLE_SIZE_KB=144 CONFIG_SPI_FLASH_WINBOND=y # @@ -148,33 +154,54 @@ CONFIG_SPI_FLASH_WINBOND=y # CONFIG_BOARD_GOOGLE_AGAH is not set # CONFIG_BOARD_GOOGLE_ANAHERA is not set # CONFIG_BOARD_GOOGLE_ANAHERA4ES is not set +# CONFIG_BOARD_GOOGLE_AURASH is not set +# CONFIG_BOARD_GOOGLE_BANSHEE is not set # CONFIG_BOARD_GOOGLE_BRASK is not set # CONFIG_BOARD_GOOGLE_BRYA0 is not set -# CONFIG_BOARD_GOOGLE_BRYA4ES is not set +# CONFIG_BOARD_GOOGLE_CRAASK is not set +# CONFIG_BOARD_GOOGLE_CRAASKOV is not set +# CONFIG_BOARD_GOOGLE_CONSTITUTION is not set +# CONFIG_BOARD_GOOGLE_CROTA is not set # CONFIG_BOARD_GOOGLE_FELWINTER is not set +# CONFIG_BOARD_GOOGLE_GAELIN is not set # CONFIG_BOARD_GOOGLE_GIMBLE is not set # CONFIG_BOARD_GOOGLE_GIMBLE4ES is not set +# CONFIG_BOARD_GOOGLE_GLADIOS is not set +# CONFIG_BOARD_GOOGLE_GOTHRAX is not set +# CONFIG_BOARD_GOOGLE_HADES is not set # CONFIG_BOARD_GOOGLE_KANO is not set +# CONFIG_BOARD_GOOGLE_KINOX is not set +# CONFIG_BOARD_GOOGLE_KULDAX is not set +# CONFIG_BOARD_GOOGLE_JOXER is not set +# CONFIG_BOARD_GOOGLE_LISBON is not set +# CONFIG_BOARD_GOOGLE_MARASOV is not set +# CONFIG_BOARD_GOOGLE_MITHRAX is not set +# CONFIG_BOARD_GOOGLE_MOLI is not set # CONFIG_BOARD_GOOGLE_NIVVIKS is not set # CONFIG_BOARD_GOOGLE_NEREID is not set +# CONFIG_BOARD_GOOGLE_OMNIGUL is not set +# CONFIG_BOARD_GOOGLE_OSIRIS is not set +# CONFIG_BOARD_GOOGLE_PIRRHA is not set # CONFIG_BOARD_GOOGLE_PRIMUS is not set # CONFIG_BOARD_GOOGLE_PRIMUS4ES is not set +# CONFIG_BOARD_GOOGLE_PUJJO is not set +# CONFIG_BOARD_GOOGLE_QUANDISO is not set # CONFIG_BOARD_GOOGLE_REDRIX is not set # CONFIG_BOARD_GOOGLE_REDRIX4ES is not set +# CONFIG_BOARD_GOOGLE_SKOLAS is not set # CONFIG_BOARD_GOOGLE_SKOLAS4ES is not set # CONFIG_BOARD_GOOGLE_TAEKO is not set # CONFIG_BOARD_GOOGLE_TAEKO4ES is not set # CONFIG_BOARD_GOOGLE_TANIKS is not set +# CONFIG_BOARD_GOOGLE_ULDREN is not set # CONFIG_BOARD_GOOGLE_VELL is not set # CONFIG_BOARD_GOOGLE_VOLMAR is not set -# CONFIG_BOARD_GOOGLE_BANSHEE is not set -# CONFIG_BOARD_GOOGLE_CROTA is not set -# CONFIG_BOARD_GOOGLE_MOLI is not set -# CONFIG_BOARD_GOOGLE_KINOX is not set -# CONFIG_BOARD_GOOGLE_CRAASK is not set -# CONFIG_BOARD_GOOGLE_OSIRIS is not set -# CONFIG_BOARD_GOOGLE_MITHRAX is not set -# CONFIG_BOARD_GOOGLE_KULDAX is not set +# CONFIG_BOARD_GOOGLE_XIVU is not set +# CONFIG_BOARD_GOOGLE_YAVIKS is not set +# CONFIG_BOARD_GOOGLE_YAVILLA is not set +# CONFIG_BOARD_GOOGLE_ZYDRON is not set +# CONFIG_BOARD_GOOGLE_NOKRIS is not set +# CONFIG_BOARD_GOOGLE_DOCHI is not set # # Butterfly @@ -193,11 +220,20 @@ CONFIG_SPI_FLASH_WINBOND=y # # CONFIG_BOARD_GOOGLE_KINGLER is not set # CONFIG_BOARD_GOOGLE_STEELIX is not set +# CONFIG_BOARD_GOOGLE_VOLTORB is not set +# CONFIG_BOARD_GOOGLE_PONYTA is not set # # Krabby # # CONFIG_BOARD_GOOGLE_KRABBY is not set +# CONFIG_BOARD_GOOGLE_TENTACRUEL is not set +# CONFIG_BOARD_GOOGLE_MAGIKARP is not set + +# +# Staryu +# +# CONFIG_BOARD_GOOGLE_STARMIE is not set # # Cyan @@ -223,6 +259,7 @@ CONFIG_SPI_FLASH_WINBOND=y # Dedede # # CONFIG_BOARD_GOOGLE_BOTEN is not set +# CONFIG_BOARD_GOOGLE_DIBBI is not set # CONFIG_BOARD_GOOGLE_DEDEDE is not set # CONFIG_BOARD_GOOGLE_DRAWCIA is not set # CONFIG_BOARD_GOOGLE_HABOKI is not set @@ -247,6 +284,10 @@ CONFIG_SPI_FLASH_WINBOND=y # CONFIG_BOARD_GOOGLE_DRIBLEE is not set # CONFIG_BOARD_GOOGLE_GOOEY is not set # CONFIG_BOARD_GOOGLE_BEADRIX is not set +# CONFIG_BOARD_GOOGLE_SHOTZO is not set +# CONFIG_BOARD_GOOGLE_TARANZA is not set +# CONFIG_BOARD_GOOGLE_BOXY is not set +# CONFIG_BOARD_GOOGLE_DEXI is not set # # Drallion @@ -275,6 +316,11 @@ CONFIG_SPI_FLASH_WINBOND=y # # CONFIG_BOARD_GOOGLE_GALE is not set +# +# Geralt +# +# CONFIG_BOARD_GOOGLE_GERALT is not set + # # Glados # @@ -307,29 +353,16 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # Hatch # # CONFIG_BOARD_GOOGLE_AKEMI is not set -# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set -# CONFIG_BOARD_GOOGLE_DOOLY is not set # CONFIG_BOARD_GOOGLE_DRATINI is not set -# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set -# CONFIG_BOARD_GOOGLE_DUFFY is not set -# CONFIG_BOARD_GOOGLE_FAFFY is not set -# CONFIG_BOARD_GOOGLE_GENESIS is not set # CONFIG_BOARD_GOOGLE_HATCH is not set # CONFIG_BOARD_GOOGLE_HELIOS is not set # CONFIG_BOARD_GOOGLE_HELIOS_DISKSWAP is not set # CONFIG_BOARD_GOOGLE_JINLON is not set -# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set -# CONFIG_BOARD_GOOGLE_KAISA is not set # CONFIG_BOARD_GOOGLE_KINDRED is not set # CONFIG_BOARD_GOOGLE_KOHAKU is not set -# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set # CONFIG_BOARD_GOOGLE_MUSHU is not set # CONFIG_BOARD_GOOGLE_NIGHTFURY is not set -# CONFIG_BOARD_GOOGLE_NOIBAT is not set # CONFIG_BOARD_GOOGLE_PALKIA is not set -# CONFIG_BOARD_GOOGLE_PUFF is not set -# CONFIG_BOARD_GOOGLE_SCOUT is not set -# CONFIG_BOARD_GOOGLE_WYVERN is not set # # Herobrine @@ -395,6 +428,11 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # # CONFIG_BOARD_GOOGLE_MISTRAL is not set +# +# Myst +# +# CONFIG_BOARD_GOOGLE_MYST is not set + # # Nyan # @@ -455,6 +493,23 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # CONFIG_BOARD_GOOGLE_RAMMUS is not set # CONFIG_BOARD_GOOGLE_SORAKA is not set +# +# Puff +# +# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set +# CONFIG_BOARD_GOOGLE_DOOLY is not set +# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set +# CONFIG_BOARD_GOOGLE_DUFFY is not set +# CONFIG_BOARD_GOOGLE_FAFFY is not set +# CONFIG_BOARD_GOOGLE_GENESIS is not set +# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set +# CONFIG_BOARD_GOOGLE_KAISA is not set +# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set +# CONFIG_BOARD_GOOGLE_NOIBAT is not set +# CONFIG_BOARD_GOOGLE_PUFF is not set +# CONFIG_BOARD_GOOGLE_SCOUT is not set +# CONFIG_BOARD_GOOGLE_WYVERN is not set + # # Rambi # @@ -462,6 +517,7 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # CONFIG_BOARD_GOOGLE_CANDY is not set # CONFIG_BOARD_GOOGLE_CLAPPER is not set # CONFIG_BOARD_GOOGLE_ENGUARDE is not set +# CONFIG_BOARD_GOOGLE_EXPRESSO is not set # CONFIG_BOARD_GOOGLE_GLIMMER is not set # CONFIG_BOARD_GOOGLE_GNAWTY is not set # CONFIG_BOARD_GOOGLE_HELI is not set @@ -484,6 +540,20 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # CONFIG_BOARD_GOOGLE_SNAPPY is not set # CONFIG_BOARD_GOOGLE_CORAL is not set +# +# Rex +# +# CONFIG_BOARD_GOOGLE_REX0 is not set +# CONFIG_BOARD_GOOGLE_SCREEBO is not set +# CONFIG_BOARD_GOOGLE_SCREEBO4ES is not set +# CONFIG_BOARD_GOOGLE_KARIS is not set +# CONFIG_BOARD_GOOGLE_KARIS4ES is not set +# CONFIG_BOARD_GOOGLE_REX_EC_ISH is not set +# CONFIG_BOARD_GOOGLE_OVIS is not set +# CONFIG_BOARD_GOOGLE_OVIS4ES is not set +# CONFIG_BOARD_GOOGLE_REX4ES is not set +# CONFIG_BOARD_GOOGLE_REX4ES_EC_ISH is not set + # # Sarien # @@ -494,6 +564,10 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # Skyrim # # CONFIG_BOARD_GOOGLE_SKYRIM is not set +# CONFIG_BOARD_GOOGLE_WINTERHOLD is not set +# CONFIG_BOARD_GOOGLE_FROSTFLOW is not set +# CONFIG_BOARD_GOOGLE_CRYSTALDRIFT is not set +# CONFIG_BOARD_GOOGLE_MARKARTH is not set # # Slippy @@ -548,25 +622,25 @@ CONFIG_BOARD_GOOGLE_KEVIN=y # # Volteer # +# CONFIG_BOARD_GOOGLE_CHRONICLER is not set +# CONFIG_BOARD_GOOGLE_COLLIS is not set +# CONFIG_BOARD_GOOGLE_COPANO is not set # CONFIG_BOARD_GOOGLE_DELBIN is not set +# CONFIG_BOARD_GOOGLE_DROBIT is not set # CONFIG_BOARD_GOOGLE_ELDRID is not set +# CONFIG_BOARD_GOOGLE_ELEMI is not set # CONFIG_BOARD_GOOGLE_HALVOR is not set # CONFIG_BOARD_GOOGLE_LINDAR is not set # CONFIG_BOARD_GOOGLE_MALEFOR is not set # CONFIG_BOARD_GOOGLE_TERRADOR is not set # CONFIG_BOARD_GOOGLE_TODOR is not set # CONFIG_BOARD_GOOGLE_TRONDO is not set +# CONFIG_BOARD_GOOGLE_VOEMA is not set +# CONFIG_BOARD_GOOGLE_VOLET is not set # CONFIG_BOARD_GOOGLE_VOLTEER is not set # CONFIG_BOARD_GOOGLE_VOLTEER2 is not set # CONFIG_BOARD_GOOGLE_VOLTEER2_TI50 is not set # CONFIG_BOARD_GOOGLE_VOXEL is not set -# CONFIG_BOARD_GOOGLE_ELEMI is not set -# CONFIG_BOARD_GOOGLE_VOEMA is not set -# CONFIG_BOARD_GOOGLE_DROBIT is not set -# CONFIG_BOARD_GOOGLE_COPANO is not set -# CONFIG_BOARD_GOOGLE_COLLIS is not set -# CONFIG_BOARD_GOOGLE_VOLET is not set -# CONFIG_BOARD_GOOGLE_CHRONICLER is not set # # Zork @@ -586,17 +660,23 @@ CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS=0x5 CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 CONFIG_DRIVER_TPM_I2C_BUS=0x0 CONFIG_DRIVER_TPM_I2C_ADDR=0x20 +CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_PMIC_BUS=-1 CONFIG_BOARD_GOOGLE_GRU_COMMON=y # CONFIG_GRU_HAS_TPM2 is not set CONFIG_GRU_HAS_CENTERLOG_PWM=y CONFIG_GRU_HAS_WLAN_RESET=y CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME="" +CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y +CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US=0 CONFIG_PS2K_EISAID="PNP0303" CONFIG_PS2M_EISAID="PNP0F13" -CONFIG_HEAP_SIZE=0x100000 +CONFIG_TTYS0_BAUD=115200 +CONFIG_D3COLD_SUPPORT=y +CONFIG_PC_CMOS_BASE_PORT_BANK1=0x72 CONFIG_EC_GPE_SCI=0x50 +# CONFIG_TPM_MEASURED_BOOT is not set CONFIG_BOARD_ROMSIZE_KB_8192=y # CONFIG_COREBOOT_ROMSIZE_KB_256 is not set # CONFIG_COREBOOT_ROMSIZE_KB_512 is not set @@ -623,21 +703,17 @@ CONFIG_ROM_SIZE=0x00800000 # SoC # CONFIG_CHIPSET_DEVICETREE="" -CONFIG_CBFS_CACHE_ALIGN=8 CONFIG_ARM64_BL31_EXTERNAL_FILE="" CONFIG_ARCH_ARMV8_EXTENSION=0 CONFIG_STACK_SIZE=0x0 -CONFIG_VBT_DATA_SIZE_KB=8 CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254 CONFIG_INTEL_GMA_BCLV_WIDTH=16 CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256 CONFIG_INTEL_GMA_BCLM_WIDTH=16 -CONFIG_TTYS0_BASE=0x3f8 -CONFIG_TTYS0_LCS=3 -CONFIG_UART_PCI_ADDR=0x0 CONFIG_GENERIC_UDELAY=y CONFIG_SOC_ROCKCHIP_RK3399=y # CONFIG_RK3399_SPREAD_SPECTRUM_DDR is not set +CONFIG_CBFS_CACHE_ALIGN=8 # # CPU @@ -694,6 +770,7 @@ CONFIG_HAVE_LINEAR_FRAMEBUFFER=y CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT=y CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_NO_EARLY_GFX_INIT=y # # Display @@ -703,9 +780,11 @@ CONFIG_LINEAR_FRAMEBUFFER=y # CONFIG_BOOTSPLASH is not set # end of Display +CONFIG_FIRMWARE_CONNECTION_MANAGER=y +# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set # CONFIG_SOFTWARE_I2C is not set CONFIG_I2C_TRANSFER_TIMEOUT_US=500000 -CONFIG_RESOURCE_ALLOCATOR_V4=y +CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=y # end of Devices # @@ -715,9 +794,7 @@ CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000 # CONFIG_ELOG is not set CONFIG_COMMON_CBFS_SPI_WRAPPER=y CONFIG_SPI_FLASH=y -CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y # CONFIG_SPI_FLASH_NO_FAST_READ is not set -CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_TPM_INIT_RAMSTAGE=y CONFIG_DRIVERS_UART=y CONFIG_UART_OVERRIDE_REFCLK=y @@ -725,6 +802,7 @@ CONFIG_DRIVERS_UART_8250MEM=y CONFIG_DRIVERS_UART_8250MEM_32=y # CONFIG_VPD is not set # CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set +# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set # CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set @@ -732,7 +810,8 @@ CONFIG_I2C_TPM=y CONFIG_DRIVER_TIS_DEFAULT=y # CONFIG_DRIVER_I2C_TPM_ACPI is not set # CONFIG_DRIVER_TPM_DISPLAY_TIS_BYTES is not set -CONFIG_INTEL_GMA_OPREGION_2_0=y +# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set +CONFIG_PC_CMOS_BASE_PORT_BANK0=0x70 # end of Generic Drivers # @@ -759,9 +838,14 @@ CONFIG_TPM=y CONFIG_MAINBOARD_HAS_TPM1=y # CONFIG_TPM_DEACTIVATE is not set # CONFIG_DEBUG_TPM is not set -# CONFIG_TPM_MEASURED_BOOT is not set +CONFIG_PCR_BOOT_MODE=1 +CONFIG_PCR_HWID=1 +CONFIG_PCR_SRTM=2 +CONFIG_PCR_RUNTIME_DATA=3 # end of Trusted Platform Module +CONFIG_TPM_SETUP_HIBERNATE_ON_ERR=y + # # Memory initialization # @@ -773,9 +857,11 @@ CONFIG_BOOTMEDIA_LOCK_NONE=y # end of Security CONFIG_ACPI_HAVE_PCAT_8259=y +CONFIG_ACPI_CUSTOM_MADT=y CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y CONFIG_RTC=y +CONFIG_HEAP_SIZE=0x100000 # # Console @@ -785,6 +871,7 @@ CONFIG_BOOTBLOCK_CONSOLE=y # # memory mapped, 8250-compatible # +CONFIG_TTYS0_BASE=0x3f8 # CONFIG_CONSOLE_SERIAL_921600 is not set # CONFIG_CONSOLE_SERIAL_460800 is not set # CONFIG_CONSOLE_SERIAL_230400 is not set @@ -793,7 +880,7 @@ CONFIG_CONSOLE_SERIAL_115200=y # CONFIG_CONSOLE_SERIAL_38400 is not set # CONFIG_CONSOLE_SERIAL_19200 is not set # CONFIG_CONSOLE_SERIAL_9600 is not set -CONFIG_TTYS0_BAUD=115200 +CONFIG_TTYS0_LCS=3 CONFIG_CONSOLE_CBMEM=y # CONFIG_CONSOLE_SPI_FLASH is not set # CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set @@ -823,20 +910,6 @@ CONFIG_HAVE_MONOTONIC_TIMER=y # Payload # CONFIG_PAYLOAD_NONE=y -# CONFIG_PAYLOAD_ELF is not set -# CONFIG_PAYLOAD_FIT is not set -# CONFIG_PAYLOAD_BOOTBOOT is not set -# CONFIG_PAYLOAD_LINUXBOOT is not set -# CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_OPTIONS="" -CONFIG_PAYLOAD_FIT_SUPPORT=y -CONFIG_COMPRESS_SECONDARY_PAYLOAD=y - -# -# Secondary Payloads -# -# CONFIG_GRUB2_SECONDARY_PAYLOAD is not set -# end of Secondary Payloads # end of Payload # @@ -864,7 +937,7 @@ CONFIG_COMPRESS_SECONDARY_PAYLOAD=y # CONFIG_DEBUG_ADA_CODE is not set # end of Debugging -CONFIG_FLATTENED_DEVICE_TREE=y +CONFIG_DECOMPRESS_OFAST=y CONFIG_WARNINGS_ARE_ERRORS=y CONFIG_MAX_REBOOT_CNT=3 CONFIG_NO_XIP_EARLY_STAGES=y diff --git a/config/coreboot/gru_kevin/target.cfg b/config/coreboot/gru_kevin/target.cfg index 94e71d96..928029cb 100644 --- a/config/coreboot/gru_kevin/target.cfg +++ b/config/coreboot/gru_kevin/target.cfg @@ -1,4 +1,4 @@ -tree="cros" +tree="default" romtype="normal" arch="AArch64" payload_uboot="y" diff --git a/script/update/project/trees b/script/update/project/trees index 9e6803cf..bb0899f0 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -196,9 +196,7 @@ check_cross_compiler() cbdir="src/coreboot/${tree}" [ "${project}" != "coreboot" ] && \ - cbdir="src/coreboot/default" # not u-boot (e.g. linux) - [ "${project}" = "u-boot" ] && \ - cbdir="src/coreboot/cros" # u-boot only used on coreboot/cros + cbdir="src/coreboot/default" # only true if not building coreboot: ctarget="${cbdir#src/coreboot/}" -- cgit v1.2.1