aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2013-07-28 17:08:45 +1000
committerinmarket <andrewh@inmarket.com.au>2013-07-28 17:08:45 +1000
commit3977ee687ffff23e49dcac0ea9a7c3e8652248f0 (patch)
treec5be0359998987d29b6be213413c896fe4d6b07f
parentf84bc2a3f6b82b0f05319fd7c609f8b30929d788 (diff)
downloaduGFX-3977ee687ffff23e49dcac0ea9a7c3e8652248f0.tar.gz
uGFX-3977ee687ffff23e49dcac0ea9a7c3e8652248f0.tar.bz2
uGFX-3977ee687ffff23e49dcac0ea9a7c3e8652248f0.zip
First cut - beautiful new font handling by PetteriAimonen
-rw-r--r--.gitignore1
-rw-r--r--demos/applications/notepad/gfxconf.h7
-rw-r--r--demos/applications/notepad/main.c16
-rw-r--r--gfxconf.example.h21
-rw-r--r--include/gdisp/fonts.h67
-rw-r--r--include/gdisp/gdisp.h35
-rw-r--r--include/gdisp/lld/emulation.c258
-rw-r--r--include/gdisp/lld/gdisp_lld.h4
-rw-r--r--include/gdisp/lld/gdisp_lld_msgs.h4
-rw-r--r--include/gdisp/options.h55
-rw-r--r--src/gdisp/fonts.c708
-rw-r--r--src/gdisp/fonts/DejaVuSans-Bold.ttfbin0 -> 673144 bytes
-rw-r--r--src/gdisp/fonts/DejaVuSans.license58
-rw-r--r--src/gdisp/fonts/DejaVuSans.ttfbin0 -> 720856 bytes
-rw-r--r--src/gdisp/fonts/DejaVuSans10.c166
-rw-r--r--src/gdisp/fonts/DejaVuSans12.c175
-rw-r--r--src/gdisp/fonts/DejaVuSans12_aa.c246
-rw-r--r--src/gdisp/fonts/DejaVuSans16.c179
-rw-r--r--src/gdisp/fonts/DejaVuSans16_aa.c303
-rw-r--r--src/gdisp/fonts/DejaVuSans24.c237
-rw-r--r--src/gdisp/fonts/DejaVuSans24_aa.c439
-rw-r--r--src/gdisp/fonts/DejaVuSans32.c291
-rw-r--r--src/gdisp/fonts/DejaVuSans32_aa.c569
-rw-r--r--src/gdisp/fonts/DejaVuSansBold12.c186
-rw-r--r--src/gdisp/fonts/DejaVuSansBold12_aa.c257
-rw-r--r--src/gdisp/fonts/DejaVuSerif.license58
-rw-r--r--src/gdisp/fonts/DejaVuSerif.ttfbin0 -> 363200 bytes
-rw-r--r--src/gdisp/fonts/LargeNumbers.c127
-rw-r--r--src/gdisp/fonts/build_fonts.sh77
-rw-r--r--src/gdisp/fonts/fixed_10x20.bdf6279
-rw-r--r--src/gdisp/fonts/fixed_10x20.c227
-rw-r--r--src/gdisp/fonts/fixed_5x8.bdf3602
-rw-r--r--src/gdisp/fonts/fixed_5x8.c95
-rw-r--r--src/gdisp/fonts/fixed_7x14.bdf4940
-rw-r--r--src/gdisp/fonts/fixed_7x14.c149
-rw-r--r--src/gdisp/fonts/fonts.h62
-rw-r--r--src/gdisp/gdisp.c512
-rw-r--r--src/gdisp/gdisp.mk6
-rw-r--r--src/gdisp/mcufont/mcufont.h14
-rw-r--r--src/gdisp/mcufont/mcufont.mk19
-rw-r--r--src/gdisp/mcufont/mf_bwfont.c134
-rw-r--r--src/gdisp/mcufont/mf_bwfont.h77
-rw-r--r--src/gdisp/mcufont/mf_config.h148
-rw-r--r--src/gdisp/mcufont/mf_encoding.c69
-rw-r--r--src/gdisp/mcufont/mf_encoding.h53
-rw-r--r--src/gdisp/mcufont/mf_font.c77
-rw-r--r--src/gdisp/mcufont/mf_font.h118
-rw-r--r--src/gdisp/mcufont/mf_justify.c321
-rw-r--r--src/gdisp/mcufont/mf_justify.h74
-rw-r--r--src/gdisp/mcufont/mf_kerning.c118
-rw-r--r--src/gdisp/mcufont/mf_kerning.h29
-rw-r--r--src/gdisp/mcufont/mf_rlefont.c282
-rw-r--r--src/gdisp/mcufont/mf_rlefont.h74
-rw-r--r--src/gdisp/mcufont/mf_scaledfont.c83
-rw-r--r--src/gdisp/mcufont/mf_scaledfont.h23
-rw-r--r--src/gdisp/mcufont/mf_wordwrap.c290
-rw-r--r--src/gdisp/mcufont/mf_wordwrap.h32
57 files changed, 21188 insertions, 1263 deletions
diff --git a/.gitignore b/.gitignore
index bad3bc1f..14b00eca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ build
*.lst
*.o
*.map
+src/gdisp/fonts/*.dat
diff --git a/demos/applications/notepad/gfxconf.h b/demos/applications/notepad/gfxconf.h
index 6755d30d..f3f50009 100644
--- a/demos/applications/notepad/gfxconf.h
+++ b/demos/applications/notepad/gfxconf.h
@@ -57,11 +57,8 @@
#define GDISP_NEED_MSGAPI FALSE
/* Builtin Fonts */
-#define GDISP_INCLUDE_FONT_SMALL FALSE
-#define GDISP_INCLUDE_FONT_LARGER FALSE
-#define GDISP_INCLUDE_FONT_UI1 FALSE
-#define GDISP_INCLUDE_FONT_UI2 TRUE
-#define GDISP_INCLUDE_FONT_LARGENUMBERS TRUE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS12 TRUE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS24 TRUE
/* Features for the GINPUT sub-system. */
#define GINPUT_NEED_MOUSE TRUE
diff --git a/demos/applications/notepad/main.c b/demos/applications/notepad/main.c
index 261b09d4..020a2b60 100644
--- a/demos/applications/notepad/main.c
+++ b/demos/applications/notepad/main.c
@@ -46,8 +46,8 @@ void drawScreen(void) {
char *msg = "ChibiOS/GFX";
font_t font1, font2;
- font1 = gdispOpenFont("UI2 Double");
- font2 = gdispOpenFont("LargeNumbers");
+ font1 = gdispOpenFont("DejaVuSans24");
+ font2 = gdispOpenFont("DejaVuSans12");
gdispClear(White);
gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, font1)-3, 3, msg, font1, Black);
@@ -61,12 +61,12 @@ void drawScreen(void) {
gdispDrawBox (5 * COLOR_SIZE + 3, 3, COLOR_SIZE, COLOR_SIZE, Black); /* White */
/* pens */
- gdispDrawString(OFFSET * 2, DRAW_PEN(1), "1", font2, Black);
- gdispDrawString(OFFSET * 2, DRAW_PEN(2), "2", font2, Black);
- gdispDrawString(OFFSET * 2, DRAW_PEN(3), "3", font2, Black);
- gdispDrawString(OFFSET * 2, DRAW_PEN(4), "4", font2, Black);
- gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", font2, Black);
-
+ gdispFillStringBox(OFFSET * 2, DRAW_PEN(1), PEN_SIZE, PEN_SIZE, "1", font2, White, Black, justifyCenter);
+ gdispFillStringBox(OFFSET * 2, DRAW_PEN(2), PEN_SIZE, PEN_SIZE, "2", font2, White, Black, justifyCenter);
+ gdispFillStringBox(OFFSET * 2, DRAW_PEN(3), PEN_SIZE, PEN_SIZE, "3", font2, White, Black, justifyCenter);
+ gdispFillStringBox(OFFSET * 2, DRAW_PEN(4), PEN_SIZE, PEN_SIZE, "4", font2, White, Black, justifyCenter);
+ gdispFillStringBox(OFFSET * 2, DRAW_PEN(5), PEN_SIZE, PEN_SIZE, "5", font2, White, Black, justifyCenter);
+
gdispCloseFont(font1);
gdispCloseFont(font2);
}
diff --git a/gfxconf.example.h b/gfxconf.example.h
index e20f324f..ca4ba65e 100644
--- a/gfxconf.example.h
+++ b/gfxconf.example.h
@@ -50,12 +50,17 @@
#define GDISP_NEED_ASYNC FALSE
#define GDISP_NEED_MSGAPI FALSE
-/* GDISP - builtin fonts */
-#define GDISP_INCLUDE_FONT_SMALL FALSE
-#define GDISP_INCLUDE_FONT_LARGER FALSE
-#define GDISP_INCLUDE_FONT_UI1 FALSE
-#define GDISP_INCLUDE_FONT_UI2 TRUE
-#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE
+/* GDISP - fonts to include */
+#define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS12 TRUE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE
+#define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE
+#define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 FALSE
+#define GDISP_INCLUDE_FONT_FIXED_10x20 FALSE
+#define GDISP_INCLUDE_FONT_FIXED_7x14 FALSE
+#define GDISP_INCLUDE_FONT_FIXED_5x8 FALSE
+#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE
/* GDISP image decoders */
#define GDISP_NEED_IMAGE_NATIVE FALSE
@@ -124,7 +129,9 @@
/* Optional Parameters for various subsystems */
/*
- #define GDISP_MAX_FONT_HEIGHT 16
+ #define GDISP_NEED_UTF8 FALSE
+ #define GDISP_NEED_TEXT_KERNING FALSE
+ #define GDISP_NEED_ANTIALIAS FALSE
#define GEVENT_MAXIMUM_SIZE 32
#define GEVENT_MAX_SOURCE_LISTENERS 32
#define GTIMER_THREAD_WORKAREA_SIZE 512
diff --git a/include/gdisp/fonts.h b/include/gdisp/fonts.h
deleted file mode 100644
index 76bd0926..00000000
--- a/include/gdisp/fonts.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * This file is subject to the terms of the GFX License. If a copy of
- * the license was not distributed with this file, you can obtain one at:
- *
- * http://ugfx.org/license.html
- */
-
-/**
- * @file include/gdisp/fonts.h
- * @brief GDISP internal font definitions.
- * @details This is not generally needed by an application. It is used
- * by the low level drivers that need to understand a font.
- *
- * @addtogroup GDISP
- * @{
- */
-
-#ifndef _GDISP_FONTS_H
-#define _GDISP_FONTS_H
-
-/* Don't test against GFX_USE_GDISP as we may want to use this in other non-GDISP utilities. */
-
-/**
- * @brief The type of a font column.
- * @note Set by defining @p GDISP_MAX_FNT_HEIGHT appropriately.
- */
-#if GDISP_MAX_FONT_HEIGHT == 16
- typedef uint16_t fontcolumn_t;
-#elif GDISP_MAX_FONT_HEIGHT == 32
- typedef uint32_t fontcolumn_t;
-#else
- #error "GDISP: GDISP_MAX_FONT_HEIGHT must be either 16 or 32"
-#endif
-
-/**
- * @brief Internal font structure.
- * @note This structure is followed by:
- * 1. An array of character widths (uint8_t)
- * 2. An array of column data offsets (relative to the font structure)
- * 3. Each characters array of column data (fontcolumn_t)
- * Each sub-structure must be padded to a multiple of 8 bytes
- * to allow the tables to work across many different compilers.
- */
-struct font {
- const char * name;
- uint8_t height;
- uint8_t charPadding;
- uint8_t lineSpacing;
- uint8_t descenderHeight;
- uint8_t minWidth;
- uint8_t maxWidth;
- char minChar;
- char maxChar;
- uint8_t xscale;
- uint8_t yscale;
- const uint8_t *widthTable;
- const uint16_t *offsetTable;
- const fontcolumn_t *dataTable;
-};
-
-#define _getCharWidth(f,c) (((c) < (f)->minChar || (c) > (f)->maxChar) ? 0 : (f)->widthTable[(c) - (f)->minChar])
-#define _getCharOffset(f,c) ((f)->offsetTable[(c) - (f)->minChar])
-#define _getCharData(f,c) (&(f)->dataTable[_getCharOffset(f, c)])
-
-#endif /* _GDISP_FONTS_H */
-/** @} */
-
diff --git a/include/gdisp/gdisp.h b/include/gdisp/gdisp.h
index ac741d3b..25194c4f 100644
--- a/include/gdisp/gdisp.h
+++ b/include/gdisp/gdisp.h
@@ -55,7 +55,11 @@ typedef struct point_t {
/**
* @brief Type for the text justification.
*/
-typedef enum justify {justifyLeft, justifyCenter, justifyRight} justify_t;
+typedef enum justify {
+ justifyLeft = 0,
+ justifyCenter = 1,
+ justifyRight = 2
+} justify_t;
/**
* @brief Type for the font metric.
*/
@@ -63,7 +67,7 @@ typedef enum fontmetric {fontHeight, fontDescendersHeight, fontLineSpacing, font
/**
* @brief The type of a font.
*/
-typedef const struct font *font_t;
+typedef const struct mf_font_s* font_t;
/**
* @brief Type for the screen orientation.
*/
@@ -489,7 +493,7 @@ extern "C" {
*
* @api
*/
- void gdispDrawChar(coord_t x, coord_t y, char c, font_t font, color_t color);
+ void gdispDrawChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color);
/**
* @brief Draw a text character with a filled background.
@@ -502,7 +506,7 @@ extern "C" {
*
* @api
*/
- void gdispFillChar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor);
+ void gdispFillChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color, color_t bgcolor);
#endif
/* Read a pixel Function */
@@ -762,6 +766,17 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
void gdispCloseFont(font_t font);
/**
+ * @brief Make a scaled copy of an existing font.
+ * @details Allocates memory for new font metadata using gfxAlloc, remember to close font after use!
+ * @return A new font or NULL if out of memory.
+ *
+ * @param[in] font The base font to use.
+ * @param[in] scale_x The scale factor in horizontal direction.
+ * @param[in] scale_y The scale factor in vertical direction.
+ */
+ font_t gdispScaleFont(font_t font, uint8_t scale_x, uint8_t scale_y);
+
+ /**
* @brief Get the name of the specified font.
* @returns The name of the font.
*
@@ -772,6 +787,18 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
const char *gdispGetFontName(font_t font);
#endif
+/**
+ * @brief Blend two colors together according to opacity/alpha.
+ * @return The blended color.
+ *
+ * @param[in] fg Foreground color
+ * @param[in] bg Background color
+ * @param[in] alpha Opacity of the foreground color (0-255)
+ *
+ * @api
+ */
+color_t gdispBlendColor(color_t fg, color_t bg, uint8_t alpha);
+
/* Extra Arc Functions */
#if GDISP_NEED_ARC || defined(__DOXYGEN__)
diff --git a/include/gdisp/lld/emulation.c b/include/gdisp/lld/emulation.c
index c897a92d..716a3988 100644
--- a/include/gdisp/lld/emulation.c
+++ b/include/gdisp/lld/emulation.c
@@ -462,180 +462,130 @@ GDISPDriver GDISP;
#endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT
- #include "gdisp/fonts.h"
+ #include "mcufont.h"
#endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT
- void gdisp_lld_draw_char(coord_t x, coord_t y, char c, font_t font, color_t color) {
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t width, height, xscale, yscale;
- coord_t i, j, xs, ys;
-
- /* Check we actually have something to print */
- width = _getCharWidth(font, c);
- if (!width) return;
-
- xscale = font->xscale;
- yscale = font->yscale;
- height = font->height * yscale;
- width *= xscale;
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i=0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j=0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdisp_lld_draw_pixel(x+i+xs, y+j+ys, color);
- }
+ static void gdisp_lld_draw_char_callback(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
+ color_t color = *(color_t*)state;
+ if (alpha == 255)
+ {
+ if (count == 1)
+ gdisp_lld_draw_pixel(x, y, color);
+ else
+ gdisp_lld_fill_area(x, y, count, 1, color);
+ }
+#if GDISP_NEED_ANTIALIAS
+ else
+ {
+ while (count--)
+ {
+ color_t oldColor;
+
+ oldColor = gdisp_lld_get_pixel_color(x, y);
+ oldColor = gdispBlendColor(color, oldColor, alpha);
+ gdisp_lld_draw_pixel(x, y, oldColor);
+
+ x++;
}
}
+#endif
+ }
+
+ void gdisp_lld_draw_char(coord_t x, coord_t y, uint16_t c, font_t font, color_t color) {
+ mf_render_character(font, x, y, c, gdisp_lld_draw_char_callback, &color);
}
#endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXTFILLS
- void gdisp_lld_fill_char(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor) {
- coord_t width, height;
- coord_t xscale, yscale;
+ typedef struct {
+ int16_t x0;
+ int16_t y0;
+ int16_t x1;
+ int16_t y1;
+ int16_t x;
+ int16_t y;
+ color_t fg;
+ color_t bg;
+ } gdisp_lld_fill_char_state_t;
+
+ static void gdisp_lld_fill_char_callback(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
+ gdisp_lld_fill_char_state_t *s = state;
- /* Check we actually have something to print */
- width = _getCharWidth(font, c);
- if (!width) return;
-
- xscale = font->xscale;
- yscale = font->yscale;
- height = font->height * yscale;
- width *= xscale;
-
- /* Method 1: Use background fill and then draw the text */
- #if GDISP_HARDWARE_TEXT || GDISP_SOFTWARE_TEXTFILLDRAW
-
- /* Fill the area */
- gdisp_lld_fill_area(x, y, width, height, bgcolor);
-
- /* Draw the text */
- gdisp_lld_draw_char(x, y, c, font, color);
-
- /* Method 2: Create a single column bitmap and then blit it */
- #elif GDISP_HARDWARE_BITFILLS && GDISP_SOFTWARE_TEXTBLITCOLUMN
+ if (y > s->y && s->x != s->x0)
{
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
-
- /* Working buffer for fast non-transparent text rendering [patch by Badger]
- This needs to be larger than the largest character we can print.
- Assume the max is double sized by one column.
- */
- static pixel_t buf[sizeof(fontcolumn_t)*8*2];
-
- #if GDISP_NEED_VALIDATION
- /* Check our buffer is big enough */
- if ((unsigned)height > sizeof(buf)/sizeof(buf[0])) return;
- #endif
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, 1, j+ys, 0, color);
- } else {
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, 1, j+ys, 0, bgcolor);
- }
- }
-
- for(xs=0; xs < xscale; xs++)
- gdisp_lld_blit_area_ex(x+i+xs, y, 1, height, 0, 0, 1, buf);
- }
+ /* Fill background to the end of current line */
+ gdisp_lld_fill_area(s->x, s->y, s->x1 - s->x, 1, s->bg);
+ s->y++;
+ s->x = s->x0;
}
-
- /* Method 3: Create a character bitmap and then blit it */
- #elif GDISP_HARDWARE_BITFILLS
+
+ if (y > s->y)
+ {
+ /* Fill background for given number of full lines */
+ gdisp_lld_fill_area(s->x0, s->y, s->x1 - s->x0, y - s->y, s->bg);
+ s->y = y;
+ }
+
+ if (x > s->x)
+ {
+ /* Fill background from previous X position */
+ gdisp_lld_fill_area(s->x, s->y, x - s->x, 1, s->bg);
+ s->x = x;
+ }
+
+ if (!count)
+ return;
+
+ if (y == s->y)
{
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
+ s->x += count;
- /* Working buffer for fast non-transparent text rendering [patch by Badger]
- This needs to be larger than the largest character we can print.
- Assume the max is double sized.
- */
- static pixel_t buf[20*(sizeof(fontcolumn_t)*8)*2];
-
- #if GDISP_NEED_VALIDATION
- /* Check our buffer is big enough */
- if ((unsigned)(width * height) > sizeof(buf)/sizeof(buf[0])) return;
- #endif
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, width, i+xs, j+ys, color);
- } else {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, width, i+xs, j+ys, bgcolor);
- }
- }
+ if (s->x == s->x1)
+ {
+ s->x = s->x0;
+ s->y++;
}
-
- /* [Patch by Badger] Write all in one stroke */
- gdisp_lld_blit_area_ex(x, y, width, height, 0, 0, width, buf);
}
-
- /* Method 4: Draw pixel by pixel */
- #else
+
+ /* Draw the foreground */
+ if (alpha == 255 || alpha == 0)
{
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
+ if (count == 1)
+ gdisp_lld_draw_pixel(x, y, alpha ? s->fg : s->bg);
+ else
+ gdisp_lld_fill_area(x, y, count, 1, alpha ? s->fg : s->bg);
+ }
+#if GDISP_NEED_ANTIALIAS
+ else
+ {
+ while (count--)
+ {
+ color_t color;
+ color = gdispBlendColor(s->fg, s->bg, alpha);
+ gdisp_lld_draw_pixel(x, y, color);
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdisp_lld_draw_pixel(x+i+xs, y+j+ys, color);
- } else {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdisp_lld_draw_pixel(x+i+xs, y+j+ys, bgcolor);
- }
- }
+ x++;
}
}
- #endif
+#endif
+ }
+
+ void gdisp_lld_fill_char(coord_t x, coord_t y, uint16_t c, font_t font, color_t color, color_t bgcolor) {
+ gdisp_lld_fill_char_state_t state;
+
+ state.x0 = x;
+ state.y0 = y;
+ state.x1 = x + mf_character_width(font, c) + font->baseline_x;
+ state.y1 = y + font->height;
+ state.x = x;
+ state.y = y;
+ state.fg = color;
+ state.bg = bgcolor;
+
+ mf_render_character(font, x, y, c, gdisp_lld_fill_char_callback, &state);
+
+ gdisp_lld_fill_char_callback(state.x0, state.y1, 0, 0, &state);
}
#endif
diff --git a/include/gdisp/lld/gdisp_lld.h b/include/gdisp/lld/gdisp_lld.h
index afd166ae..9c4b3947 100644
--- a/include/gdisp/lld/gdisp_lld.h
+++ b/include/gdisp/lld/gdisp_lld.h
@@ -281,8 +281,8 @@ extern "C" {
/* Text Rendering Functions */
#if GDISP_NEED_TEXT
- extern void gdisp_lld_draw_char(coord_t x, coord_t y, char c, font_t font, color_t color);
- extern void gdisp_lld_fill_char(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor);
+ extern void gdisp_lld_draw_char(coord_t x, coord_t y, uint16_t c, font_t font, color_t color);
+ extern void gdisp_lld_fill_char(coord_t x, coord_t y, uint16_t c, font_t font, color_t color, color_t bgcolor);
#endif
/* Pixel readback */
diff --git a/include/gdisp/lld/gdisp_lld_msgs.h b/include/gdisp/lld/gdisp_lld_msgs.h
index f2e0e66e..5f4bed9a 100644
--- a/include/gdisp/lld/gdisp_lld_msgs.h
+++ b/include/gdisp/lld/gdisp_lld_msgs.h
@@ -155,7 +155,7 @@ typedef union gdisp_lld_msg {
gfxQueueItem qi;
gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWCHAR
coord_t x, y;
- char c;
+ uint16_t c;
font_t font;
color_t color;
} drawchar;
@@ -163,7 +163,7 @@ typedef union gdisp_lld_msg {
gfxQueueItem qi;
gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLCHAR
coord_t x, y;
- char c;
+ uint16_t c;
font_t font;
color_t color;
color_t bgcolor;
diff --git a/include/gdisp/options.h b/include/gdisp/options.h
index 30587530..918c7aea 100644
--- a/include/gdisp/options.h
+++ b/include/gdisp/options.h
@@ -182,6 +182,36 @@
#endif
/**
* @}
+ *
+ * @name GDISP Text Rendering Options
+ * @{
+ */
+ /**
+ * @brief Enable UTF-8 support for text rendering.
+ * @details Defaults to FALSE
+ */
+ #ifndef GDISP_NEED_UTF8
+ #define GDISP_NEED_UTF8 FALSE
+ #endif
+
+ /**
+ * @brief Enable kerning for font rendering (improves character placement).
+ * @details Defaults to FALSE
+ */
+ #ifndef GDISP_NEED_TEXT_KERNING
+ #define GDISP_NEED_TEXT_KERNING FALSE
+ #endif
+
+ /**
+ * @brief Enable antialiased font support
+ * @details Defaults to FALSE
+ */
+ #ifndef GDISP_NEED_ANTIALIAS
+ #define GDISP_NEED_ANTIALIAS FALSE
+ #endif
+
+/**
+ * @}
*
* @name GDISP Multi-Threading Options
* @{
@@ -220,21 +250,6 @@
* @brief Predefined built in fonts
* @note Turning off the ones you are not using can save program size.
*/
- #ifndef GDISP_INCLUDE_FONT_SMALL
- #define GDISP_INCLUDE_FONT_SMALL TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_LARGER
- #define GDISP_INCLUDE_FONT_LARGER TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_UI1
- #define GDISP_INCLUDE_FONT_UI1 TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_UI2
- #define GDISP_INCLUDE_FONT_UI2 TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_LARGENUMBERS
- #define GDISP_INCLUDE_FONT_LARGENUMBERS TRUE
- #endif
/**
* @}
@@ -242,16 +257,6 @@
* @name GDISP Optional Sizing Parameters
* @{
*/
- /**
- * @brief The maximum height of a font.
- * @details Either 16 or 32. Defaults to 16
- * @note Setting this to 32 causes the font tables to take
- * twice the internal program memory. Don't do it unless
- * you realy must define an unscaled font larger than 16 bits high.
- */
- #ifndef GDISP_MAX_FONT_HEIGHT
- #define GDISP_MAX_FONT_HEIGHT 16
- #endif
/**
* @}
*
diff --git a/src/gdisp/fonts.c b/src/gdisp/fonts.c
index f7804126..8486e1e5 100644
--- a/src/gdisp/fonts.c
+++ b/src/gdisp/fonts.c
@@ -17,673 +17,10 @@
#if GFX_USE_GDISP && GDISP_NEED_TEXT
-#include "gdisp/fonts.h"
+#include "mcufont.h"
-/* fontSmall - for side buttons */
-#if GDISP_INCLUDE_FONT_SMALL
- /* Forward Declarations of internal arrays */
- static const uint8_t fontSmall_Widths[];
- static const uint16_t fontSmall_Offsets[];
- static const fontcolumn_t fontSmall_Data[];
-
- static const struct font fontSmall = {
- "Small",
- 11, 0, 14, 2, 2, 12, ' ', '~', 1, 1,
- fontSmall_Widths,
- fontSmall_Offsets,
- fontSmall_Data};
- static const struct font fontSmallDouble = {
- "Small Double",
- 11, 0, 14, 2, 2, 12, ' ', '~', 2, 2,
- fontSmall_Widths,
- fontSmall_Offsets,
- fontSmall_Data};
- static const struct font fontSmallNarrow = {
- "Small Narrow",
- 11, 0, 14, 2, 2, 12, ' ', '~', 1, 2,
- fontSmall_Widths,
- fontSmall_Offsets,
- fontSmall_Data};
-
- static const uint8_t fontSmall_Widths[] = {
- 2, 3, 6, 8, 7, 9, 7, 3, 4, 4, 5, 7, 4, 4, 3, 6,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 4, 6, 7, 6, 7,
- 12, 8, 7, 8, 8, 7, 7, 8, 8, 3, 5, 8, 7, 9, 8, 8,
- 8, 8, 8, 7, 7, 8, 8, 12, 8, 8, 8, 4, 6, 4, 7, 7,
- 4, 7, 7, 7, 7, 7, 4, 7, 7, 3, 3, 7, 3, 9, 7, 7,
- 7, 7, 4, 6, 4, 7, 7, 9, 6, 6, 6, 5, 3, 5, 8, 0
- };
- static const uint16_t fontSmall_Offsets[] = {
- 0, 2, 5, 11, 19, 26, 35, 42,
- 45, 49, 53, 58, 65, 69, 73, 76,
- 82, 89, 96, 103, 110, 117, 124, 131,
- 138, 145, 152, 155, 159, 165, 172, 178,
- 185, 197, 205, 212, 220, 228, 235, 242,
- 250, 258, 261, 266, 274, 281, 290, 298,
- 306, 314, 322, 330, 337, 344, 352, 360,
- 372, 380, 388, 396, 400, 406, 410, 417,
- 424, 428, 435, 442, 449, 456, 463, 467,
- 474, 481, 484, 487, 494, 497, 506, 513,
- 520, 527, 534, 538, 544, 548, 555, 562,
- 571, 577, 583, 589, 594, 597, 602, 0
- };
- static const fontcolumn_t fontSmall_Data[] = {
- /* */ 0x0000, 0x0000,
- /* ! */ 0x0000, 0x017F, 0x017F,
- /* " */ 0x0000, 0x0007, 0x0007, 0x0000, 0x0007, 0x0007,
- /* # */ 0x0000, 0x0044, 0x01FF, 0x01FF, 0x0044, 0x01FF, 0x01FF, 0x0044,
- /* $ */ 0x0000, 0x008C, 0x019E, 0x03FF, 0x03FF, 0x01E6, 0x00C4,
- /* % */ 0x0000, 0x0082, 0x00C7, 0x0065, 0x00B7, 0x01DA, 0x014C, 0x01C6, 0x0082,
- /* & */ 0x0000, 0x00E6, 0x01FF, 0x013F, 0x01E6, 0x01E0, 0x0120,
- /* ' */ 0x0000, 0x0007, 0x0007,
- /* ( */ 0x0000, 0x03FE, 0x07FF, 0x0401,
- /* ) */ 0x0000, 0x0401, 0x07FF, 0x03FE,
- /* * */ 0x0000, 0x000A, 0x000E, 0x000E, 0x000A,
- /* + */ 0x0000, 0x0020, 0x0020, 0x00F8, 0x00F8, 0x0020, 0x0020,
- /* , */ 0x0000, 0x0200, 0x0300, 0x0100,
- /* - */ 0x0000, 0x0020, 0x0020, 0x0020,
- /* . */ 0x0000, 0x0100, 0x0100,
- /* / */ 0x0000, 0x0180, 0x01E0, 0x0078, 0x001F, 0x0007,
- /* 0 */ 0x0000, 0x00FE, 0x01FF, 0x0101, 0x0101, 0x01FF, 0x00FE,
- /* 1 */ 0x0000, 0x0002, 0x0002, 0x01FF, 0x01FF, 0x0000, 0x0000,
- /* 2 */ 0x0000, 0x0182, 0x01C3, 0x0161, 0x0131, 0x011F, 0x010E,
- /* 3 */ 0x0000, 0x0082, 0x0183, 0x0111, 0x0111, 0x01FF, 0x00EE,
- /* 4 */ 0x0000, 0x0060, 0x0078, 0x005E, 0x01FF, 0x01FF, 0x0040,
- /* 5 */ 0x0000, 0x009F, 0x019F, 0x0109, 0x0109, 0x01F9, 0x00F1,
- /* 6 */ 0x0000, 0x00FE, 0x01FF, 0x0111, 0x0111, 0x01F3, 0x00E2,
- /* 7 */ 0x0000, 0x0001, 0x01C1, 0x01F1, 0x003D, 0x000F, 0x0003,
- /* 8 */ 0x0000, 0x00EE, 0x01FF, 0x0111, 0x0111, 0x01FF, 0x00EE,
- /* 9 */ 0x0000, 0x008E, 0x019F, 0x0111, 0x0111, 0x01FF, 0x00FE,
- /* : */ 0x0000, 0x0108, 0x0108,
- /* ; */ 0x0000, 0x0200, 0x0308, 0x0108,
- /* < */ 0x0000, 0x0020, 0x0070, 0x00D8, 0x018C, 0x0104,
- /* = */ 0x0000, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050,
- /* > */ 0x0000, 0x0104, 0x018C, 0x00D8, 0x0070, 0x0020,
- /* ? */ 0x0000, 0x0002, 0x0003, 0x0161, 0x0171, 0x001F, 0x000E,
- /* @ */ 0x0000, 0x0078, 0x01FE, 0x0186, 0x0333, 0x0279, 0x0249, 0x0279, 0x027B, 0x0246, 0x007E, 0x0078,
- /* A */ 0x0180, 0x01F0, 0x007C, 0x004F, 0x004F, 0x007C, 0x01F0, 0x0180,
- /* B */ 0x0000, 0x01FF, 0x01FF, 0x0111, 0x0111, 0x01FF, 0x00EE,
- /* C */ 0x0000, 0x00FE, 0x01FF, 0x0101, 0x0101, 0x0101, 0x0183, 0x0082,
- /* D */ 0x0000, 0x01FF, 0x01FF, 0x0101, 0x0101, 0x0183, 0x00FE, 0x007C,
- /* E */ 0x0000, 0x01FF, 0x01FF, 0x0111, 0x0111, 0x0111, 0x0101,
- /* F */ 0x0000, 0x01FF, 0x01FF, 0x0011, 0x0011, 0x0011, 0x0001,
- /* G */ 0x0000, 0x00FE, 0x01FF, 0x0101, 0x0111, 0x0191, 0x01F3, 0x01F2,
- /* H */ 0x0000, 0x01FF, 0x01FF, 0x0010, 0x0010, 0x0010, 0x01FF, 0x01FF,
- /* I */ 0x0000, 0x01FF, 0x01FF,
- /* J */ 0x00C0, 0x01C0, 0x0100, 0x01FF, 0x00FF,
- /* K */ 0x0000, 0x01FF, 0x01FF, 0x003C, 0x0066, 0x00C3, 0x0181, 0x0100,
- /* L */ 0x0000, 0x01FF, 0x01FF, 0x0100, 0x0100, 0x0100, 0x0100,
- /* M */ 0x0000, 0x01FF, 0x01FF, 0x003C, 0x00F0, 0x00F0, 0x003C, 0x01FF, 0x01FF,
- /* N */ 0x0000, 0x01FF, 0x01FF, 0x001E, 0x0038, 0x00E0, 0x01FF, 0x01FF,
- /* O */ 0x0000, 0x00FE, 0x01FF, 0x0101, 0x0101, 0x0101, 0x01FF, 0x00FE,
- /* P */ 0x0000, 0x01FF, 0x01FF, 0x0011, 0x0011, 0x0011, 0x001F, 0x000E,
- /* Q */ 0x0000, 0x00FE, 0x01FF, 0x0101, 0x0141, 0x01C1, 0x03FF, 0x02FE,
- /* R */ 0x0000, 0x01FF, 0x01FF, 0x0011, 0x0011, 0x0011, 0x01FF, 0x01EE,
- /* S */ 0x0000, 0x008E, 0x019F, 0x0111, 0x0111, 0x01F3, 0x00E2,
- /* T */ 0x0000, 0x0001, 0x0001, 0x01FF, 0x01FF, 0x0001, 0x0001,
- /* U */ 0x0000, 0x00FF, 0x01FF, 0x0100, 0x0100, 0x0100, 0x01FF, 0x00FF,
- /* V */ 0x0003, 0x001F, 0x007C, 0x01E0, 0x01E0, 0x007C, 0x001F, 0x0003,
- /* W */ 0x0003, 0x001F, 0x007C, 0x01E0, 0x01E0, 0x007C, 0x007C, 0x01E0, 0x01E0, 0x007C, 0x001F, 0x0003,
- /* X */ 0x0183, 0x01C7, 0x006C, 0x0038, 0x0038, 0x006C, 0x01C7, 0x0183,
- /* Y */ 0x0003, 0x0007, 0x000C, 0x01F8, 0x01F8, 0x000C, 0x0007, 0x0003,
- /* Z */ 0x0181, 0x01C1, 0x0161, 0x0131, 0x0119, 0x010D, 0x0107, 0x0103,
- /* [ */ 0x0000, 0x07FF, 0x07FF, 0x0401,
- /* \ */ 0x0000, 0x0007, 0x001F, 0x0078, 0x01E0, 0x0180,
- /* ] */ 0x0000, 0x0401, 0x07FF, 0x07FF,
- /* ^ */ 0x0000, 0x0002, 0x0003, 0x0001, 0x0001, 0x0003, 0x0002,
- /* _ */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- /* ` */ 0x0000, 0x0001, 0x0003, 0x0002,
- /* a */ 0x0000, 0x00C0, 0x01E8, 0x0128, 0x0128, 0x01F8, 0x01F0,
- /* b */ 0x0000, 0x01FF, 0x01FF, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* c */ 0x0000, 0x00F0, 0x01F8, 0x0108, 0x0108, 0x0198, 0x0090,
- /* d */ 0x0000, 0x00F0, 0x01F8, 0x0108, 0x0108, 0x01FF, 0x01FF,
- /* e */ 0x0000, 0x00F0, 0x01F8, 0x0128, 0x0128, 0x01B8, 0x00B0,
- /* f */ 0x0000, 0x01FE, 0x01FF, 0x0009,
- /* g */ 0x0000, 0x04F0, 0x05F8, 0x0508, 0x0508, 0x07F8, 0x03F8,
- /* h */ 0x0000, 0x01FF, 0x01FF, 0x0018, 0x0008, 0x01F8, 0x01F0,
- /* i */ 0x0000, 0x01F9, 0x01F9,
- /* j */ 0x0000, 0x07F9, 0x07F9,
- /* k */ 0x0000, 0x01FF, 0x01FF, 0x0070, 0x00D8, 0x0188, 0x0100,
- /* l */ 0x0000, 0x01FF, 0x01FF,
- /* m */ 0x0000, 0x01F8, 0x01F8, 0x0008, 0x01F8, 0x01F8, 0x0008, 0x01F8, 0x01F0,
- /* n */ 0x0000, 0x01F8, 0x01F8, 0x0018, 0x0008, 0x01F8, 0x01F0,
- /* o */ 0x0000, 0x00F0, 0x01F8, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* p */ 0x0000, 0x07F8, 0x07F8, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* q */ 0x0000, 0x00F0, 0x01F8, 0x0108, 0x0108, 0x07F8, 0x07F8,
- /* r */ 0x0000, 0x01F8, 0x01F8, 0x0008,
- /* s */ 0x0000, 0x0090, 0x01B8, 0x0168, 0x01D8, 0x0090,
- /* t */ 0x0000, 0x00FE, 0x01FE, 0x0108,
- /* u */ 0x0000, 0x00F8, 0x01F8, 0x0100, 0x0180, 0x01F8, 0x01F8,
- /* v */ 0x0000, 0x0018, 0x0078, 0x01E0, 0x01E0, 0x0078, 0x0018,
- /* w */ 0x0000, 0x0078, 0x01F8, 0x01E0, 0x0078, 0x0078, 0x01E0, 0x01F8, 0x0078,
- /* x */ 0x0000, 0x0198, 0x01F8, 0x0060, 0x01F8, 0x0198,
- /* y */ 0x0400, 0x0478, 0x07F8, 0x0380, 0x00F8, 0x0078,
- /* z */ 0x0000, 0x0188, 0x01C8, 0x0168, 0x0138, 0x0118,
- /* { */ 0x0000, 0x0010, 0x01FF, 0x03EF, 0x0200,
- /* | */ 0x0000, 0x03FF, 0x03FF,
- /* } */ 0x0000, 0x0200, 0x03EF, 0x01FF, 0x0010,
- /* ~ */ 0x0000, 0x0004, 0x0006, 0x0002, 0x0006, 0x0004, 0x0006, 0x0002
- };
-#endif
-
-/* fontLarger - Tahoma, 11, Bold */
-#if GDISP_INCLUDE_FONT_LARGER
- /* Forward Declarations of internal arrays */
- static const uint8_t fontLarger_Widths[];
- static const uint16_t fontLarger_Offsets[];
- static const fontcolumn_t fontLarger_Data[];
-
- static const struct font fontLarger = {
- "Larger",
- 12, 1, 13, 2, 2, 13, ' ', '~', 1, 1,
- fontLarger_Widths,
- fontLarger_Offsets,
- fontLarger_Data};
- static const struct font fontLargerDouble = {
- "Larger Double",
- 12, 1, 13, 2, 2, 13, ' ', '~', 2, 2,
- fontLarger_Widths,
- fontLarger_Offsets,
- fontLarger_Data};
- static const struct font fontLargerNarrow = {
- "Larger Narrow",
- 12, 1, 13, 2, 2, 13, ' ', '~', 1, 2,
- fontLarger_Widths,
- fontLarger_Offsets,
- fontLarger_Data};
- static const uint8_t fontLarger_Widths[] = {
- 2, 3, 5, 8, 7, 13, 8, 2, 4, 4, 7, 8, 3, 4, 3, 5,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 9, 8, 9, 6,
- 9, 8, 7, 7, 8, 6, 5, 7, 8, 4, 5, 7, 6, 10, 7, 8,
- 7, 8, 8, 7, 6, 7, 7, 11, 7, 6, 6, 4, 5, 4, 9, 8,
- 5, 6, 7, 5, 7, 6, 5, 7, 7, 2, 3, 6, 2, 10, 7, 7,
- 7, 7, 4, 5, 5, 7, 6, 10, 6, 6, 5, 6, 4, 6, 9, 0
- };
- static const uint16_t fontLarger_Offsets[] = {
- 0, 2, 5, 10, 18, 25, 38, 46,
- 48, 52, 56, 63, 71, 74, 78, 81,
- 86, 93, 100, 107, 114, 121, 128, 135,
- 142, 149, 156, 159, 162, 171, 179, 188,
- 194, 203, 211, 218, 225, 233, 239, 244,
- 251, 259, 263, 268, 275, 281, 291, 298,
- 306, 313, 321, 329, 336, 342, 349, 356,
- 367, 374, 380, 386, 390, 395, 399, 408,
- 416, 421, 427, 434, 439, 446, 452, 457,
- 464, 471, 473, 476, 482, 484, 494, 501,
- 508, 515, 522, 526, 531, 536, 543, 549,
- 559, 565, 571, 576, 582, 586, 592, 0
- };
- static const fontcolumn_t fontLarger_Data[] = {
- /* */ 0x0000, 0x0000,
- /* ! */ 0x0000, 0x037E, 0x037E,
- /* " */ 0x0007, 0x0007, 0x0000, 0x0007, 0x0007,
- /* # */ 0x00C0, 0x03D8, 0x00F8, 0x00DE, 0x03D8, 0x00F8, 0x00DE, 0x0018,
- /* $ */ 0x0118, 0x023C, 0x0264, 0x0FFF, 0x0264, 0x03C4, 0x0188,
- /* % */ 0x001C, 0x003E, 0x0022, 0x023E, 0x011C, 0x00C0, 0x0020, 0x0018, 0x01C4, 0x03E2, 0x0220, 0x03E0,
- 0x01C0,
- /* & */ 0x01CC, 0x03FE, 0x0232, 0x0272, 0x03DE, 0x018C, 0x03E0, 0x0260,
- /* ' */ 0x0007, 0x0007,
- /* ( */ 0x01F8, 0x07FE, 0x0E07, 0x0801,
- /* ) */ 0x0801, 0x0E07, 0x07FE, 0x01F8,
- /* * */ 0x0000, 0x000A, 0x0004, 0x001F, 0x001F, 0x0004, 0x000A,
- /* + */ 0x0000, 0x0020, 0x0020, 0x0020, 0x01FC, 0x0020, 0x0020, 0x0020,
- /* , */ 0x0000, 0x0F00, 0x0700,
- /* - */ 0x0020, 0x0020, 0x0020, 0x0020,
- /* . */ 0x0000, 0x0300, 0x0300,
- /* / */ 0x0C00, 0x0380, 0x0060, 0x001C, 0x0003,
- /* 0 */ 0x01FC, 0x03FE, 0x0202, 0x0202, 0x0202, 0x03FE, 0x01FC,
- /* 1 */ 0x0000, 0x0204, 0x0204, 0x03FE, 0x03FE, 0x0200, 0x0200,
- /* 2 */ 0x0204, 0x0302, 0x0382, 0x02C2, 0x0262, 0x023E, 0x021C,
- /* 3 */ 0x0104, 0x0202, 0x0222, 0x0222, 0x0222, 0x03FE, 0x01DC,
- /* 4 */ 0x0060, 0x0050, 0x0048, 0x0044, 0x03FE, 0x03FE, 0x0040,
- /* 5 */ 0x0100, 0x021E, 0x021E, 0x0212, 0x0212, 0x03F2, 0x01E2,
- /* 6 */ 0x01F8, 0x03FC, 0x0216, 0x0212, 0x0212, 0x03F2, 0x01E0,
- /* 7 */ 0x0002, 0x0002, 0x0382, 0x03E2, 0x007A, 0x001E, 0x0006,
- /* 8 */ 0x01DC, 0x03FE, 0x0222, 0x0222, 0x0222, 0x03FE, 0x01DC,
- /* 9 */ 0x003C, 0x027E, 0x0242, 0x0242, 0x0342, 0x01FE, 0x00FC,
- /* : */ 0x0000, 0x0318, 0x0318,
- /* ; */ 0x0000, 0x0F18, 0x0718,
- /* < */ 0x0000, 0x0060, 0x0060, 0x0090, 0x0090, 0x0108, 0x0108, 0x0204, 0x0204,
- /* = */ 0x0000, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090,
- /* > */ 0x0000, 0x0204, 0x0204, 0x0108, 0x0108, 0x0090, 0x0090, 0x0060, 0x0060,
- /* ? */ 0x0004, 0x0002, 0x0362, 0x0372, 0x001E, 0x000C,
- /* @ */ 0x01F8, 0x0204, 0x04F2, 0x05FA, 0x050A, 0x04FA, 0x05FA, 0x0104, 0x00F8,
- /* A */ 0x0380, 0x03F0, 0x00FC, 0x008E, 0x008E, 0x00FC, 0x03F0, 0x0380,
- /* B */ 0x03FE, 0x03FE, 0x0222, 0x0222, 0x0222, 0x03FE, 0x01DC,
- /* C */ 0x01FC, 0x03FE, 0x0202, 0x0202, 0x0202, 0x0202, 0x018C,
- /* D */ 0x03FE, 0x03FE, 0x0202, 0x0202, 0x0202, 0x0306, 0x01FC, 0x00F8,
- /* E */ 0x03FE, 0x03FE, 0x0222, 0x0222, 0x0222, 0x0222,
- /* F */ 0x03FE, 0x03FE, 0x0022, 0x0022, 0x0022,
- /* G */ 0x01FC, 0x03FE, 0x0202, 0x0202, 0x0222, 0x03E2, 0x03EC,
- /* H */ 0x03FE, 0x03FE, 0x0020, 0x0020, 0x0020, 0x0020, 0x03FE, 0x03FE,
- /* I */ 0x0202, 0x03FE, 0x03FE, 0x0202,
- /* J */ 0x0200, 0x0202, 0x0202, 0x03FE, 0x01FE,
- /* K */ 0x03FE, 0x03FE, 0x0070, 0x00D8, 0x018C, 0x0306, 0x0202,
- /* L */ 0x03FE, 0x03FE, 0x0200, 0x0200, 0x0200, 0x0200,
- /* M */ 0x03FE, 0x000E, 0x001C, 0x0038, 0x0070, 0x0030, 0x0018, 0x000C, 0x03FE, 0x03FE,
- /* N */ 0x03FE, 0x000E, 0x001C, 0x0070, 0x01E0, 0x0380, 0x03FE,
- /* O */ 0x01FC, 0x03FE, 0x0202, 0x0202, 0x0202, 0x0202, 0x03FE, 0x01FC,
- /* P */ 0x03FE, 0x03FE, 0x0042, 0x0042, 0x0042, 0x007E, 0x003C,
- /* Q */ 0x01FC, 0x03FE, 0x0202, 0x0202, 0x0602, 0x0E02, 0x0BFE, 0x09FC,
- /* R */ 0x03FE, 0x03FE, 0x0022, 0x0062, 0x00E2, 0x01BE, 0x031C, 0x0200,
- /* S */ 0x019C, 0x023E, 0x0222, 0x0222, 0x0222, 0x03E2, 0x01CC,
- /* T */ 0x0002, 0x0002, 0x03FE, 0x03FE, 0x0002, 0x0002,
- /* U */ 0x01FE, 0x03FE, 0x0200, 0x0200, 0x0200, 0x03FE, 0x01FE,
- /* V */ 0x000E, 0x007E, 0x03F0, 0x0380, 0x03F0, 0x007E, 0x000E,
- /* W */ 0x001E, 0x00FE, 0x03E0, 0x03E0, 0x00FC, 0x000E, 0x00FC, 0x03E0, 0x03E0, 0x00FE, 0x001E,
- /* X */ 0x0306, 0x038E, 0x00F8, 0x0070, 0x00F8, 0x038E, 0x0306,
- /* Y */ 0x000E, 0x003E, 0x03F0, 0x03F0, 0x003E, 0x000E,
- /* Z */ 0x0382, 0x03C2, 0x0262, 0x0232, 0x021E, 0x020E,
- /* [ */ 0x0FFF, 0x0FFF, 0x0801, 0x0801,
- /* \ */ 0x0003, 0x001C, 0x0060, 0x0380, 0x0C00,
- /* ] */ 0x0801, 0x0801, 0x0FFF, 0x0FFF,
- /* ^ */ 0x0000, 0x0010, 0x0008, 0x0004, 0x0002, 0x0002, 0x0004, 0x0008, 0x0010,
- /* _ */ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- /* ` */ 0x0000, 0x0000, 0x0001, 0x0003, 0x0002,
- /* a */ 0x0180, 0x03D0, 0x0248, 0x0248, 0x03F8, 0x03F0,
- /* b */ 0x03FF, 0x03FF, 0x0210, 0x0208, 0x0208, 0x03F8, 0x01F0,
- /* c */ 0x01F0, 0x03F8, 0x0208, 0x0208, 0x0208,
- /* d */ 0x01F0, 0x03F8, 0x0208, 0x0208, 0x0108, 0x03FF, 0x03FF,
- /* e */ 0x01F0, 0x03F8, 0x0248, 0x0248, 0x0278, 0x0170,
- /* f */ 0x0008, 0x03FE, 0x03FF, 0x0009, 0x0001,
- /* g */ 0x01F0, 0x0BF8, 0x0A08, 0x0A08, 0x0908, 0x0FF8, 0x07F8,
- /* h */ 0x03FF, 0x03FF, 0x0010, 0x0008, 0x0008, 0x03F8, 0x03F0,
- /* i */ 0x03FA, 0x03FA,
- /* j */ 0x0808, 0x0FFA, 0x07FA,
- /* k */ 0x03FF, 0x03FF, 0x00E0, 0x01B0, 0x0318, 0x0208,
- /* l */ 0x03FF, 0x03FF,
- /* m */ 0x03F8, 0x03F8, 0x0008, 0x0008, 0x03F8, 0x03F0, 0x0008, 0x0008, 0x03F8, 0x03F0,
- /* n */ 0x03F8, 0x03F8, 0x0010, 0x0008, 0x0008, 0x03F8, 0x03F0,
- /* o */ 0x01F0, 0x03F8, 0x0208, 0x0208, 0x0208, 0x03F8, 0x01F0,
- /* p */ 0x0FF8, 0x0FF8, 0x0210, 0x0208, 0x0208, 0x03F8, 0x01F0,
- /* q */ 0x01F0, 0x03F8, 0x0208, 0x0208, 0x0108, 0x0FF8, 0x0FF8,
- /* r */ 0x03F8, 0x03F8, 0x0010, 0x0018,
- /* s */ 0x0130, 0x0278, 0x0248, 0x03C8, 0x0190,
- /* t */ 0x0008, 0x01FE, 0x03FE, 0x0208, 0x0208,
- /* u */ 0x01F8, 0x03F8, 0x0200, 0x0200, 0x0100, 0x03F8, 0x03F8,
- /* v */ 0x0038, 0x00F8, 0x03C0, 0x03C0, 0x00F8, 0x0038,
- /* w */ 0x0018, 0x00F8, 0x03E0, 0x0380, 0x00F8, 0x00F8, 0x0380, 0x03E0, 0x00F8, 0x0018,
- /* x */ 0x0318, 0x03B8, 0x00E0, 0x00E0, 0x03B8, 0x0318,
- /* y */ 0x0038, 0x0CF8, 0x0FC0, 0x03C0, 0x00F8, 0x0038,
- /* z */ 0x0388, 0x03C8, 0x0268, 0x0238, 0x0218,
- /* { */ 0x0020, 0x0020, 0x07FE, 0x0FDF, 0x0801, 0x0801,
- /* | */ 0x0000, 0x0000, 0x0FFF, 0x0FFF,
- /* } */ 0x0801, 0x0801, 0x0FDF, 0x07FE, 0x0020, 0x0020,
- /* ~ */ 0x00E0, 0x0030, 0x0030, 0x0030, 0x0060, 0x00C0, 0x00C0, 0x00C0, 0x0070
- };
-#endif
-
-/* fontUI1 - UI Font 1 Medium Bold */
-#if GDISP_INCLUDE_FONT_UI1
- /* Forward Declarations of internal arrays */
- static const uint8_t fontUI1_Widths[];
- static const uint16_t fontUI1_Offsets[];
- static const fontcolumn_t fontUI1_Data[];
-
- static const struct font fontUI1 = {
- "UI1",
- 13, 0, 15, 2, 3, 13, ' ', '~', 1, 1,
- fontUI1_Widths,
- fontUI1_Offsets,
- fontUI1_Data};
- static const struct font fontUI1Double = {
- "UI1 Double",
- 13, 0, 15, 2, 3, 13, ' ', '~', 2, 2,
- fontUI1_Widths,
- fontUI1_Offsets,
- fontUI1_Data};
- static const struct font fontUI1Narrow = {
- "UI1 Narrow",
- 13, 0, 15, 2, 3, 13, ' ', '~', 1, 2,
- fontUI1_Widths,
- fontUI1_Offsets,
- fontUI1_Data};
-
- static const uint8_t fontUI1_Widths[] = {
- 3, 3, 6, 8, 7, 13, 9, 3, 5, 5, 6, 8, 3, 5, 3, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 3, 8, 8, 8, 6,
- 10, 8, 7, 7, 8, 7, 7, 8, 8, 5, 5, 7, 7, 9, 8, 8,
- 7, 8, 8, 7, 8, 8, 7, 11, 7, 7, 7, 5, 7, 5, 9, 8,
- 5, 7, 7, 6, 7, 7, 5, 7, 7, 3, 4, 7, 3, 11, 7, 7,
- 7, 7, 6, 6, 5, 7, 7, 9, 7, 7, 6, 7, 4, 7, 8, 0
- };
- static const uint16_t fontUI1_Offsets[] = {
- 0, 3, 6, 12, 20, 27, 40, 49,
- 52, 57, 62, 68, 76, 79, 84, 87,
- 94, 101, 108, 115, 122, 129, 136, 143,
- 150, 157, 164, 167, 170, 178, 186, 194,
- 200, 210, 218, 225, 232, 240, 247, 254,
- 262, 270, 275, 280, 287, 294, 303, 311,
- 319, 326, 334, 342, 349, 357, 365, 372,
- 383, 390, 397, 404, 409, 416, 421, 430,
- 438, 443, 450, 457, 463, 470, 477, 482,
- 489, 496, 499, 503, 510, 513, 524, 531,
- 538, 545, 552, 558, 564, 569, 576, 583,
- 592, 599, 606, 612, 619, 623, 630, 0
- };
- static const fontcolumn_t fontUI1_Data[] = {
- /* */ 0x0000, 0x0000, 0x0000,
- /* ! */ 0x0000, 0x02FC, 0x02FC,
- /* " */ 0x0000, 0x000E, 0x000E, 0x0000, 0x000E, 0x000E,
- /* # */ 0x0000, 0x0080, 0x0390, 0x00F0, 0x039C, 0x00F0, 0x009C, 0x0010,
- /* $ */ 0x0000, 0x0130, 0x0278, 0x0FC8, 0x027E, 0x03C8, 0x0190,
- /* % */ 0x0000, 0x0038, 0x007C, 0x0044, 0x007C, 0x0338, 0x00C0, 0x0030, 0x01CC, 0x03E0, 0x0220, 0x03E0,
- 0x01C0,
- /* & */ 0x0000, 0x01D8, 0x03FC, 0x0224, 0x027C, 0x02D8, 0x0180, 0x0360, 0x0220,
- /* ' */ 0x0000, 0x000E, 0x000E,
- /* ( */ 0x0000, 0x01F0, 0x07FC, 0x0E0E, 0x0802,
- /* ) */ 0x0000, 0x0802, 0x0E0E, 0x07FC, 0x01F0,
- /* * */ 0x0000, 0x0014, 0x0008, 0x003E, 0x0008, 0x0014,
- /* + */ 0x0000, 0x0040, 0x0040, 0x0040, 0x03F8, 0x0040, 0x0040, 0x0040,
- /* , */ 0x0000, 0x0F00, 0x0700,
- /* - */ 0x0000, 0x0040, 0x0040, 0x0040, 0x0040,
- /* . */ 0x0000, 0x0300, 0x0300,
- /* / */ 0x0000, 0x0C00, 0x0F00, 0x03E0, 0x00F8, 0x001E, 0x0006,
- /* 0 */ 0x0000, 0x01F8, 0x03FC, 0x0204, 0x0204, 0x03FC, 0x01F8,
- /* 1 */ 0x0000, 0x0000, 0x0208, 0x03FC, 0x03FC, 0x0200, 0x0000,
- /* 2 */ 0x0000, 0x0308, 0x038C, 0x02C4, 0x0264, 0x023C, 0x0218,
- /* 3 */ 0x0000, 0x0108, 0x030C, 0x0224, 0x0224, 0x03FC, 0x01D8,
- /* 4 */ 0x0000, 0x00C0, 0x00A0, 0x0090, 0x03F8, 0x03FC, 0x0080,
- /* 5 */ 0x0000, 0x0100, 0x033C, 0x023C, 0x0224, 0x03E4, 0x01C4,
- /* 6 */ 0x0000, 0x01F0, 0x03F8, 0x022C, 0x0224, 0x03E4, 0x01C0,
- /* 7 */ 0x0000, 0x0004, 0x0304, 0x03C4, 0x00F4, 0x003C, 0x000C,
- /* 8 */ 0x0000, 0x01D8, 0x03FC, 0x0224, 0x0224, 0x03FC, 0x01D8,
- /* 9 */ 0x0000, 0x0038, 0x027C, 0x0244, 0x0344, 0x01FC, 0x00F8,
- /* : */ 0x0000, 0x0330, 0x0330,
- /* ; */ 0x0000, 0x0F30, 0x0730,
- /* < */ 0x0000, 0x0040, 0x00A0, 0x00A0, 0x0110, 0x0110, 0x0208, 0x0208,
- /* = */ 0x0000, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090, 0x0090,
- /* > */ 0x0000, 0x0208, 0x0208, 0x0110, 0x0110, 0x00A0, 0x00A0, 0x0040,
- /* ? */ 0x0000, 0x0008, 0x02C4, 0x02E4, 0x003C, 0x0018,
- /* @ */ 0x0000, 0x01F0, 0x0208, 0x04E4, 0x05F4, 0x0514, 0x05F4, 0x05F4, 0x0104, 0x00F8,
- /* A */ 0x0000, 0x0380, 0x03F0, 0x00FC, 0x008C, 0x00FC, 0x03F0, 0x0380,
- /* B */ 0x0000, 0x03FC, 0x03FC, 0x0224, 0x0224, 0x03FC, 0x01D8,
- /* C */ 0x0000, 0x01F8, 0x03FC, 0x0204, 0x0204, 0x0204, 0x0108,
- /* D */ 0x0000, 0x03FC, 0x03FC, 0x0204, 0x0204, 0x030C, 0x01F8, 0x00F0,
- /* E */ 0x0000, 0x03FC, 0x03FC, 0x0224, 0x0224, 0x0224, 0x0224,
- /* F */ 0x0000, 0x03FC, 0x03FC, 0x0024, 0x0024, 0x0024, 0x0024,
- /* G */ 0x0000, 0x01F8, 0x03FC, 0x0204, 0x0204, 0x0244, 0x03C4, 0x03C8,
- /* H */ 0x0000, 0x03FC, 0x03FC, 0x0020, 0x0020, 0x0020, 0x03FC, 0x03FC,
- /* I */ 0x0000, 0x0204, 0x03FC, 0x03FC, 0x0204,
- /* J */ 0x0200, 0x0204, 0x0204, 0x03FC, 0x01FC,
- /* K */ 0x0000, 0x03FC, 0x03FC, 0x00F0, 0x0198, 0x030C, 0x0204,
- /* L */ 0x0000, 0x03FC, 0x03FC, 0x0200, 0x0200, 0x0200, 0x0200,
- /* M */ 0x0000, 0x03FC, 0x001C, 0x0038, 0x0070, 0x0020, 0x0010, 0x03F8, 0x03FC,
- /* N */ 0x0000, 0x03FC, 0x0018, 0x0030, 0x0060, 0x00C0, 0x0180, 0x03FC,
- /* O */ 0x0000, 0x01F8, 0x03FC, 0x0204, 0x0204, 0x0204, 0x03FC, 0x01F8,
- /* P */ 0x0000, 0x03FC, 0x03FC, 0x0044, 0x0044, 0x007C, 0x0038,
- /* Q */ 0x0000, 0x01F8, 0x03FC, 0x0204, 0x0604, 0x0E04, 0x0BFC, 0x09F8,
- /* R */ 0x0000, 0x03FC, 0x03FC, 0x0044, 0x00C4, 0x01FC, 0x0338, 0x0200,
- /* S */ 0x0000, 0x0138, 0x027C, 0x0264, 0x0264, 0x03E4, 0x01C8,
- /* T */ 0x0004, 0x0004, 0x0004, 0x03FC, 0x03FC, 0x0004, 0x0004, 0x0004,
- /* U */ 0x0000, 0x01FC, 0x03FC, 0x0200, 0x0200, 0x0200, 0x03FC, 0x01FC,
- /* V */ 0x0000, 0x001C, 0x00FC, 0x03E0, 0x03E0, 0x00FC, 0x001C,
- /* W */ 0x0000, 0x001C, 0x00FC, 0x03E0, 0x03C0, 0x007C, 0x007C, 0x03C0, 0x03E0, 0x00FC, 0x001C,
- /* X */ 0x0000, 0x030C, 0x039C, 0x00F0, 0x00F0, 0x039C, 0x030C,
- /* Y */ 0x0000, 0x000C, 0x003C, 0x03F0, 0x03F0, 0x003C, 0x000C,
- /* Z */ 0x0000, 0x0384, 0x03C4, 0x02E4, 0x0274, 0x023C, 0x021C,
- /* [ */ 0x0000, 0x0FFE, 0x0FFE, 0x0802, 0x0802,
- /* \ */ 0x0000, 0x0006, 0x001E, 0x00F8, 0x03E0, 0x0F00, 0x0C00,
- /* ] */ 0x0000, 0x0802, 0x0802, 0x0FFE, 0x0FFE,
- /* ^ */ 0x0000, 0x0020, 0x0030, 0x0018, 0x000C, 0x000C, 0x0018, 0x0030, 0x0020,
- /* _ */ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800,
- /* ` */ 0x0000, 0x0000, 0x0002, 0x0006, 0x0004,
- /* a */ 0x0000, 0x0180, 0x03D0, 0x0250, 0x0250, 0x03F0, 0x03E0,
- /* b */ 0x0000, 0x03FE, 0x03FE, 0x0210, 0x0210, 0x03F0, 0x01E0,
- /* c */ 0x0000, 0x01E0, 0x03F0, 0x0210, 0x0210, 0x0210,
- /* d */ 0x0000, 0x01E0, 0x03F0, 0x0210, 0x0210, 0x03FE, 0x03FE,
- /* e */ 0x0000, 0x01E0, 0x03F0, 0x0250, 0x0250, 0x0270, 0x0160,
- /* f */ 0x0010, 0x03FC, 0x03FE, 0x0012, 0x0012,
- /* g */ 0x0000, 0x01E0, 0x0BF0, 0x0A10, 0x0A10, 0x0FF0, 0x07F0,
- /* h */ 0x0000, 0x03FE, 0x03FE, 0x0010, 0x0010, 0x03F0, 0x03E0,
- /* i */ 0x0000, 0x03F4, 0x03F4,
- /* j */ 0x0800, 0x0810, 0x0FF4, 0x07F4,
- /* k */ 0x0000, 0x03FE, 0x03FE, 0x00C0, 0x01E0, 0x0330, 0x0210,
- /* l */ 0x0000, 0x03FE, 0x03FE,
- /* m */ 0x0000, 0x03F0, 0x03F0, 0x0010, 0x0010, 0x03F0, 0x03E0, 0x0010, 0x0010, 0x03F0, 0x03E0,
- /* n */ 0x0000, 0x03F0, 0x03F0, 0x0010, 0x0010, 0x03F0, 0x03E0,
- /* o */ 0x0000, 0x01E0, 0x03F0, 0x0210, 0x0210, 0x03F0, 0x01E0,
- /* p */ 0x0000, 0x0FF0, 0x0FF0, 0x0210, 0x0210, 0x03F0, 0x01E0,
- /* q */ 0x0000, 0x01E0, 0x03F0, 0x0210, 0x0210, 0x0FF0, 0x0FF0,
- /* r */ 0x0000, 0x03F0, 0x03F0, 0x0020, 0x0030, 0x0030,
- /* s */ 0x0000, 0x0260, 0x02F0, 0x02D0, 0x03D0, 0x0190,
- /* t */ 0x0010, 0x01FC, 0x03FC, 0x0210, 0x0210,
- /* u */ 0x0000, 0x01F0, 0x03F0, 0x0200, 0x0200, 0x03F0, 0x03F0,
- /* v */ 0x0000, 0x0070, 0x01F0, 0x0380, 0x0380, 0x01F0, 0x0070,
- /* w */ 0x0000, 0x00F0, 0x03F0, 0x0300, 0x00F0, 0x00F0, 0x0300, 0x03F0, 0x00F0,
- /* x */ 0x0000, 0x0330, 0x03F0, 0x00C0, 0x00C0, 0x03F0, 0x0330,
- /* y */ 0x0000, 0x0030, 0x0CF0, 0x0FC0, 0x03C0, 0x00F0, 0x0030,
- /* z */ 0x0000, 0x0310, 0x0390, 0x02D0, 0x0270, 0x0230,
- /* { */ 0x0000, 0x0040, 0x0040, 0x07FC, 0x0FBE, 0x0802, 0x0802,
- /* | */ 0x0000, 0x0000, 0x0FFE, 0x0FFE,
- /* } */ 0x0000, 0x0802, 0x0802, 0x0FBE, 0x07FC, 0x0040, 0x0040,
- /* ~ */ 0x0000, 0x01C0, 0x0020, 0x0020, 0x00C0, 0x0100, 0x0100, 0x00E0
- };
-#endif
-
-/* fontUI1 - UI Font 2 Medium Bold */
-#if GDISP_INCLUDE_FONT_UI2
- /* Forward Declarations of internal arrays */
- static const uint8_t fontUI2_Widths[];
- static const uint16_t fontUI2_Offsets[];
- static const fontcolumn_t fontUI2_Data[];
-
- static const struct font fontUI2 = {
- "UI2",
- 11, 1, 13, 2, 2, 12, ' ', '~', 1, 1,
- fontUI2_Widths,
- fontUI2_Offsets,
- fontUI2_Data};
- static const struct font fontUI2Double = {
- "UI2 Double",
- 11, 1, 13, 2, 2, 12, ' ', '~', 2, 2,
- fontUI2_Widths,
- fontUI2_Offsets,
- fontUI2_Data};
- static const struct font fontUI2Narrow = {
- "UI2 Narrow",
- 11, 1, 13, 2, 2, 12, ' ', '~', 1, 2,
- fontUI2_Widths,
- fontUI2_Offsets,
- fontUI2_Data};
-
- static const uint8_t fontUI2_Widths[] = {
- 2, 2, 5, 8, 6, 12, 8, 2, 4, 4, 6, 8, 2, 4, 2, 5,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 2, 8, 8, 8, 5,
- 9, 7, 6, 6, 7, 5, 5, 7, 7, 4, 5, 6, 5, 9, 6, 7,
- 6, 7, 7, 6, 6, 7, 6, 10, 6, 6, 6, 4, 5, 4, 7, 7,
- 4, 6, 6, 5, 6, 6, 4, 6, 6, 2, 3, 6, 2, 10, 6, 6,
- 6, 6, 4, 5, 4, 6, 6, 8, 6, 6, 5, 6, 4, 6, 8, 0
- };
- static const uint16_t fontUI2_Offsets[] = {
- 0, 2, 4, 9, 17, 23, 35, 43,
- 45, 49, 53, 59, 67, 69, 73, 75,
- 80, 86, 92, 98, 104, 110, 116, 122,
- 128, 134, 140, 142, 144, 152, 160, 168,
- 173, 182, 189, 195, 201, 208, 213, 218,
- 225, 232, 236, 241, 247, 252, 261, 267,
- 274, 280, 287, 294, 300, 306, 313, 319,
- 329, 335, 341, 347, 351, 356, 360, 367,
- 374, 378, 384, 390, 395, 401, 407, 411,
- 417, 423, 425, 428, 434, 436, 446, 452,
- 458, 464, 470, 474, 479, 483, 489, 495,
- 503, 509, 515, 520, 526, 530, 536, 0
- };
- static const fontcolumn_t fontUI2_Data[] = {
- /* */ 0x0000, 0x0000,
- /* ! */ 0x017E, 0x017E,
- /* " */ 0x0007, 0x0007, 0x0000, 0x0007, 0x0007,
- /* # */ 0x00C0, 0x03D8, 0x00F8, 0x00DE, 0x03D8, 0x00F8, 0x00DE, 0x0018,
- /* $ */ 0x0098, 0x013C, 0x07E4, 0x013F, 0x01E4, 0x00C8,
- /* % */ 0x001C, 0x003E, 0x0022, 0x003E, 0x019C, 0x0060, 0x0018, 0x00E6, 0x01F0, 0x0110, 0x01F0, 0x00E0,
- /* & */ 0x00EC, 0x01FE, 0x0112, 0x013E, 0x016C, 0x00C0, 0x01B0, 0x0110,
- /* ' */ 0x0007, 0x0007,
- /* ( */ 0x00F8, 0x03FE, 0x0707, 0x0401,
- /* ) */ 0x0401, 0x0707, 0x03FE, 0x00F8,
- /* * */ 0x000A, 0x0004, 0x001F, 0x001F, 0x0004, 0x000A,
- /* + */ 0x0000, 0x0020, 0x0020, 0x0020, 0x01FC, 0x0020, 0x0020, 0x0020,
- /* , */ 0x0780, 0x0380,
- /* - */ 0x0020, 0x0020, 0x0020, 0x0020,
- /* . */ 0x0180, 0x0180,
- /* / */ 0x0600, 0x0180, 0x0070, 0x000C, 0x0003,
- /* 0 */ 0x00FC, 0x01FE, 0x0102, 0x0102, 0x01FE, 0x00FC,
- /* 1 */ 0x0000, 0x0104, 0x01FE, 0x01FE, 0x0100, 0x0000,
- /* 2 */ 0x0184, 0x01C6, 0x0162, 0x0132, 0x011E, 0x010C,
- /* 3 */ 0x0084, 0x0186, 0x0112, 0x0112, 0x01FE, 0x00EC,
- /* 4 */ 0x0060, 0x0050, 0x0048, 0x01FC, 0x01FE, 0x0040,
- /* 5 */ 0x0080, 0x019E, 0x011E, 0x0112, 0x01F2, 0x00E2,
- /* 6 */ 0x00FC, 0x01FE, 0x0112, 0x0112, 0x01F2, 0x00E0,
- /* 7 */ 0x0002, 0x0002, 0x01C2, 0x01FA, 0x003E, 0x0006,
- /* 8 */ 0x00EC, 0x01FE, 0x0112, 0x0112, 0x01FE, 0x00EC,
- /* 9 */ 0x001C, 0x013E, 0x0122, 0x0122, 0x01FE, 0x00FC,
- /* : */ 0x0198, 0x0198,
- /* ; */ 0x0798, 0x0398,
- /* < */ 0x0000, 0x0020, 0x0050, 0x0050, 0x0088, 0x0088, 0x0104, 0x0104,
- /* = */ 0x0000, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
- /* > */ 0x0000, 0x0104, 0x0104, 0x0088, 0x0088, 0x0050, 0x0050, 0x0020,
- /* ? */ 0x0004, 0x0162, 0x0172, 0x001E, 0x000C,
- /* @ */ 0x00F8, 0x0104, 0x0272, 0x02FA, 0x028A, 0x027A, 0x02FA, 0x0084, 0x0078,
- /* A */ 0x01C0, 0x01F8, 0x007E, 0x0046, 0x007E, 0x01F8, 0x01C0,
- /* B */ 0x01FE, 0x01FE, 0x0112, 0x0112, 0x01FE, 0x00EC,
- /* C */ 0x00FC, 0x01FE, 0x0102, 0x0102, 0x0102, 0x0102,
- /* D */ 0x01FE, 0x01FE, 0x0102, 0x0102, 0x0186, 0x00FC, 0x0078,
- /* E */ 0x01FE, 0x01FE, 0x0112, 0x0112, 0x0112,
- /* F */ 0x01FE, 0x01FE, 0x0012, 0x0012, 0x0012,
- /* G */ 0x00FC, 0x01FE, 0x0102, 0x0102, 0x0122, 0x01E2, 0x01E2,
- /* H */ 0x01FE, 0x01FE, 0x0010, 0x0010, 0x0010, 0x01FE, 0x01FE,
- /* I */ 0x0102, 0x01FE, 0x01FE, 0x0102,
- /* J */ 0x0100, 0x0102, 0x0102, 0x01FE, 0x00FE,
- /* K */ 0x01FE, 0x01FE, 0x0078, 0x00CC, 0x0186, 0x0102,
- /* L */ 0x01FE, 0x01FE, 0x0100, 0x0100, 0x0100,
- /* M */ 0x01FE, 0x000E, 0x001C, 0x0038, 0x0030, 0x0018, 0x000C, 0x01FE, 0x01FE,
- /* N */ 0x01FE, 0x000E, 0x001C, 0x0038, 0x0070, 0x01FE,
- /* O */ 0x00FC, 0x01FE, 0x0102, 0x0102, 0x0102, 0x01FE, 0x00FC,
- /* P */ 0x01FE, 0x01FE, 0x0022, 0x0022, 0x003E, 0x001C,
- /* Q */ 0x00FC, 0x01FE, 0x0102, 0x0302, 0x0702, 0x05FE, 0x04FC,
- /* R */ 0x01FE, 0x01FE, 0x0022, 0x0062, 0x00FE, 0x019C, 0x0100,
- /* S */ 0x011C, 0x013E, 0x0132, 0x0132, 0x01F2, 0x00E2,
- /* T */ 0x0002, 0x0002, 0x01FE, 0x01FE, 0x0002, 0x0002,
- /* U */ 0x00FE, 0x01FE, 0x0100, 0x0100, 0x0100, 0x01FE, 0x00FE,
- /* V */ 0x000E, 0x007E, 0x01F0, 0x01F0, 0x007E, 0x000E,
- /* W */ 0x000E, 0x007E, 0x01F0, 0x01E0, 0x003E, 0x003E, 0x01E0, 0x01F0, 0x007E, 0x000E,
- /* X */ 0x0186, 0x01CE, 0x0078, 0x0078, 0x01CE, 0x0186,
- /* Y */ 0x0006, 0x001E, 0x01F8, 0x01F8, 0x001E, 0x0006,
- /* Z */ 0x01C2, 0x01E2, 0x0172, 0x013A, 0x011E, 0x010E,
- /* [ */ 0x07FF, 0x07FF, 0x0401, 0x0401,
- /* \ */ 0x0003, 0x000C, 0x0070, 0x0180, 0x0600,
- /* ] */ 0x0401, 0x0401, 0x07FF, 0x07FF,
- /* ^ */ 0x0010, 0x0008, 0x0004, 0x0002, 0x0004, 0x0008, 0x0010,
- /* _ */ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400,
- /* ` */ 0x0000, 0x0001, 0x0003, 0x0002,
- /* a */ 0x00C0, 0x01E8, 0x0128, 0x0128, 0x01F8, 0x01F0,
- /* b */ 0x01FF, 0x01FF, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* c */ 0x00F0, 0x01F8, 0x0108, 0x0108, 0x0108,
- /* d */ 0x00F0, 0x01F8, 0x0108, 0x0108, 0x01FF, 0x01FF,
- /* e */ 0x00F0, 0x01F8, 0x0128, 0x0128, 0x0138, 0x0130,
- /* f */ 0x01FE, 0x01FF, 0x0009, 0x0001,
- /* g */ 0x00F0, 0x05F8, 0x0508, 0x0508, 0x07F8, 0x03F8,
- /* h */ 0x01FF, 0x01FF, 0x0008, 0x0008, 0x01F8, 0x01F0,
- /* i */ 0x01FA, 0x01FA,
- /* j */ 0x0408, 0x07FA, 0x03FA,
- /* k */ 0x01FF, 0x01FF, 0x0060, 0x00F0, 0x0198, 0x0108,
- /* l */ 0x01FF, 0x01FF,
- /* m */ 0x01F8, 0x01F8, 0x0008, 0x0008, 0x01F8, 0x01F0, 0x0008, 0x0008, 0x01F8, 0x01F0,
- /* n */ 0x01F8, 0x01F8, 0x0008, 0x0008, 0x01F8, 0x01F0,
- /* o */ 0x00F0, 0x01F8, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* p */ 0x07F8, 0x07F8, 0x0108, 0x0108, 0x01F8, 0x00F0,
- /* q */ 0x00F0, 0x01F8, 0x0108, 0x0108, 0x07F8, 0x07F8,
- /* r */ 0x01F8, 0x01F8, 0x0010, 0x0018,
- /* s */ 0x0130, 0x0178, 0x0168, 0x01E8, 0x00C8,
- /* t */ 0x00FE, 0x01FE, 0x0108, 0x0108,
- /* u */ 0x00F8, 0x01F8, 0x0100, 0x0100, 0x01F8, 0x01F8,
- /* v */ 0x0018, 0x0078, 0x01E0, 0x01E0, 0x0078, 0x0018,
- /* w */ 0x0078, 0x01F8, 0x01C0, 0x0078, 0x0078, 0x01C0, 0x01F8, 0x0078,
- /* x */ 0x0198, 0x01F8, 0x0060, 0x0060, 0x01F8, 0x0198,
- /* y */ 0x0018, 0x0678, 0x07E0, 0x01E0, 0x0078, 0x0018,
- /* z */ 0x0188, 0x01C8, 0x0168, 0x0138, 0x0118,
- /* { */ 0x0020, 0x0020, 0x03FE, 0x07DF, 0x0401, 0x0401,
- /* | */ 0x0000, 0x0000, 0x07FF, 0x07FF,
- /* } */ 0x0401, 0x0401, 0x07DF, 0x03FE, 0x0020, 0x0020,
- /* ~ */ 0x0060, 0x0010, 0x0010, 0x0030, 0x0060, 0x0040, 0x0040, 0x0030
- };
-#endif
-
-/*
- fontLargeNumbers:
- Large numbers font, height = 16 (including the decenders)
- Characters include: 0 - 9, -, +, ., %, :, Space, Comma
-*/
-#if GDISP_INCLUDE_FONT_LARGENUMBERS
- /* Forward Declarations of internal arrays */
- static const uint8_t fontLargeNumbers_Widths[];
- static const uint16_t fontLargeNumbers_Offsets[];
- static const fontcolumn_t fontLargeNumbers_Data[];
-
- static const struct font fontLargeNumbers = {
- "LargeNumbers",
- 16, 2, 21, 1, 3, 15, '%', ':', 1, 1,
- fontLargeNumbers_Widths,
- fontLargeNumbers_Offsets,
- fontLargeNumbers_Data};
- static const struct font fontLargeNumbersDouble = {
- "LargeNumbers Double",
- 16, 2, 21, 1, 3, 15, '%', ':', 2, 2,
- fontLargeNumbers_Widths,
- fontLargeNumbers_Offsets,
- fontLargeNumbers_Data};
- static const struct font fontLargeNumbersNarrow = {
- "LargeNumbers Narrow", 16, 2, 21, 1, 3, 15, '%', ':', 1, 2,
- fontLargeNumbers_Widths,
- fontLargeNumbers_Offsets,
- fontLargeNumbers_Data};
-
- static const uint8_t fontLargeNumbers_Widths[] = {
- 15, 0, 0, 0, 0, 0, 11, 3, 6, 3, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 4, 0, 0
- };
- static const uint16_t fontLargeNumbers_Offsets[] = {
- 0, 0, 0, 0, 0, 0, 15, 26,
- 29, 35, 0, 38, 48, 58, 68, 78,
- 88, 98, 108, 118, 128, 138, 0, 0
- };
- static const fontcolumn_t fontLargeNumbers_Data[] = {
- /* % */ 0x007E, 0x00FF, 0x00C3, 0x80C3, 0xE0FF, 0x7C7E, 0x1F00, 0x07C0, 0x00F0, 0x7E3E, 0xFF0F, 0xC303,
- 0xC300, 0xFF00, 0x7E00,
- /* + */ 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x1FFC, 0x1FFC, 0x1FFC, 0x01C0, 0x01C0, 0x01C0, 0x01C0,
- /* , */ 0x7000, 0x7000, 0xF000,
- /* - */ 0x0700, 0x0700, 0x0700, 0x0700, 0x0700, 0x0700,
- /* . */ 0x7000, 0x7000, 0x7000,
- /* 0 */ 0x0FF8, 0x3FFE, 0x3FFE, 0x7007, 0x6003, 0x6003, 0x7007, 0x3FFE, 0x3FFE, 0x0FF8,
- /* 1 */ 0x0000, 0x0070, 0x0038, 0x0038, 0x001C, 0x7FFF, 0x7FFF, 0x7FFF, 0x0000, 0x0000,
- /* 2 */ 0x600C, 0x700E, 0x7C0F, 0x7E07, 0x6F03, 0x6783, 0x63C7, 0x61FF, 0x60FE, 0x603C,
- /* 3 */ 0x180C, 0x380E, 0x780F, 0x70C3, 0x60C3, 0x60E3, 0x71FF, 0x3FFE, 0x3F3C, 0x0E00,
- /* 4 */ 0x0F00, 0x0DC0, 0x0CE0, 0x0C38, 0x0C1E, 0x7FFF, 0x7FFF, 0x7FFF, 0x0C00, 0x0C00,
- /* 5 */ 0x18C0, 0x38FC, 0x78FF, 0x707F, 0x6063, 0x6063, 0x70E3, 0x3FE3, 0x3FC3, 0x0F80,
- /* 6 */ 0x0FF8, 0x3FFE, 0x3FFE, 0x70C7, 0x6063, 0x6063, 0x70E7, 0x3FEF, 0x3FC6, 0x0F04,
- /* 7 */ 0x0003, 0x0003, 0x7803, 0x7F03, 0x7FC3, 0x07F3, 0x00FB, 0x003F, 0x000F, 0x0007,
- /* 8 */ 0x1E1C, 0x3F3E, 0x7FFF, 0x71E7, 0x60C3, 0x60C3, 0x71E7, 0x7FFF, 0x3F3E, 0x1E1C,
- /* 9 */ 0x1078, 0x39FE, 0x7BFE, 0x7387, 0x6303, 0x6303, 0x7187, 0x3FFE, 0x3FFE, 0x0FF8,
- /* : */ 0x0000, 0x0E38, 0x0E38, 0x0E38
- };
-#endif
-
-static const struct font *BuiltinFontTable[] = {
- #if GDISP_INCLUDE_FONT_SMALL
- &fontSmall, &fontSmallDouble, &fontSmallNarrow,
- #endif
- #if GDISP_INCLUDE_FONT_LARGER
- &fontLarger, &fontLargerDouble, &fontLargerNarrow,
- #endif
- #if GDISP_INCLUDE_FONT_UI1
- &fontUI1, &fontUI1Double, &fontUI1Narrow,
- #endif
- #if GDISP_INCLUDE_FONT_UI2
- &fontUI2, &fontUI2Double, &fontUI2Narrow,
- #endif
- #if GDISP_INCLUDE_FONT_LARGENUMBERS
- &fontLargeNumbers, &fontLargeNumbersDouble, &fontLargeNumbersNarrow,
- #endif
- };
+/* Custom flag to indicate dynamically allocated font */
+#define FONT_FLAG_DYNAMIC 0x80
/**
* Match a pattern against the font name.
@@ -712,21 +49,44 @@ static bool_t matchfont(const char *pattern, const char *name) {
}
font_t gdispOpenFont(const char *name) {
- const struct font **p;
-
- for(p = BuiltinFontTable; p < BuiltinFontTable+sizeof(BuiltinFontTable)/sizeof(BuiltinFontTable[0]); p++) {
- if (matchfont(name, p[0]->name))
- return p[0];
+ const struct mf_font_list_s *fp;
+ int i;
+
+ fp = mf_get_font_list();
+
+ while (fp)
+ {
+ if (matchfont(name, fp->font->short_name))
+ return fp->font;
+ fp = fp->next;
}
- return 0;
+
+ /* Return default font.. better than nothing. */
+ return mf_get_font_list()->font;
}
void gdispCloseFont(font_t font) {
- (void) font;
+ if (font->flags & FONT_FLAG_DYNAMIC)
+ {
+ struct mf_font_s *dfont = (struct mf_font_s *)font;
+
+ /* Make sure that no-one can successfully use font after closing */
+ dfont->render_character = NULL;
+
+ /* Release the allocated memory */
+ gfxFree(dfont);
+ }
+}
+
+font_t gdispScaleFont(font_t font, uint8_t scale_x, uint8_t scale_y)
+{
+ struct mf_scaledfont_s *newfont = gfxAlloc(sizeof(struct mf_scaledfont_s));
+ mf_scale_font(newfont, font, scale_x, scale_y);
+ return (font_t)newfont;
}
const char *gdispGetFontName(font_t font) {
- return font->name;
+ return font->short_name;
}
#endif /* GFX_USE_GDISP && GDISP_NEED_TEXT */
diff --git a/src/gdisp/fonts/DejaVuSans-Bold.ttf b/src/gdisp/fonts/DejaVuSans-Bold.ttf
new file mode 100644
index 00000000..9b74ef85
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans-Bold.ttf
Binary files differ
diff --git a/src/gdisp/fonts/DejaVuSans.license b/src/gdisp/fonts/DejaVuSans.license
new file mode 100644
index 00000000..710b32c6
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans.license
@@ -0,0 +1,58 @@
+This package was debianized by Peter Cernak <pce@users.sourceforge.net> on
+Sun, 5 Sep 2004 17:10:26 +0200.
+
+It was downloaded from http://dejavu.sourceforge.net/
+
+Upstream Authors: Stepan Roh <src@users.sourceforge.net> (original author),
+ see /usr/share/doc/ttf-dejavu/AUTHORS for full list
+
+Copyright:
+
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
diff --git a/src/gdisp/fonts/DejaVuSans.ttf b/src/gdisp/fonts/DejaVuSans.ttf
new file mode 100644
index 00000000..19ed0b46
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans.ttf
Binary files differ
diff --git a/src/gdisp/fonts/DejaVuSans10.c b/src/gdisp/fonts/DejaVuSans10.c
new file mode 100644
index 00000000..604fcd02
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans10.c
@@ -0,0 +1,166 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans10. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_DejaVuSans10_glyph_data_0[1222] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+ 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe8, 0x00, 0x3e, 0x00, 0x28, 0x00, 0xf8, 0x00,
+ 0x2e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x94, 0x00, 0xfe, 0x01, 0xa4, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x12, 0x00, 0xde, 0x00, 0x30, 0x00, 0x18, 0x00,
+ 0xf6, 0x00, 0x90, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xcc, 0x00, 0x92, 0x00,
+ 0x92, 0x00, 0x64, 0x00, 0x40, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x7c, 0x00, 0x00, 0x00,
+ 0x12, 0x00, 0x0c, 0x00, 0x1e, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x80, 0x01, 0x78, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
+ 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00,
+ 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0xc2, 0x00, 0xa2, 0x00,
+ 0x92, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00,
+ 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x28, 0x00, 0x24, 0x00, 0xfe, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x8a, 0x00, 0x70, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7c, 0x00, 0x96, 0x00, 0x92, 0x00, 0x92, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x82, 0x00, 0x62, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00,
+ 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x92, 0x00,
+ 0x92, 0x00, 0xd2, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x88, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00,
+ 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xb2, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf8, 0x00, 0x8c, 0x01, 0x06, 0x03, 0x72, 0x02, 0x52, 0x02, 0x72, 0x02, 0x42, 0x01,
+ 0x64, 0x00, 0x38, 0x00, 0x00, 0x00, 0x80, 0x00, 0x70, 0x00, 0x2c, 0x00, 0x22, 0x00, 0x2c, 0x00,
+ 0x70, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00,
+ 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00,
+ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x82, 0x00, 0x82, 0x00, 0x82, 0x00, 0xc6, 0x00,
+ 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x7c, 0x00, 0xc6, 0x00, 0x82, 0x00, 0x92, 0x00, 0x92, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x00, 0x00, 0x02, 0x00, 0x02, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x10, 0x00,
+ 0x28, 0x00, 0x44, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x00, 0x80, 0x00,
+ 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x40, 0x00,
+ 0x30, 0x00, 0x0c, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x04, 0x00, 0x18, 0x00,
+ 0x20, 0x00, 0x40, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xc6, 0x00, 0x82, 0x00,
+ 0x82, 0x00, 0xc6, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00,
+ 0x12, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xc6, 0x00, 0x82, 0x00, 0x82, 0x00,
+ 0x46, 0x01, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x12, 0x00, 0x12, 0x00, 0x32, 0x00,
+ 0x4c, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00,
+ 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x7e, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7e, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x00, 0x60, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x38, 0x00, 0xc0, 0x00, 0x38, 0x00, 0x06, 0x00, 0x38, 0x00, 0xc0, 0x00, 0x38, 0x00,
+ 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0xc6, 0x00, 0x38, 0x00, 0x38, 0x00, 0xc6, 0x00, 0x82, 0x00,
+ 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x82, 0x00, 0xc2, 0x00, 0xb2, 0x00, 0x9a, 0x00, 0x86, 0x00, 0x82, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x01, 0x01, 0x01, 0x00, 0x00, 0x06, 0x00, 0x78, 0x00, 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00,
+ 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00,
+ 0xa8, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x88, 0x00,
+ 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00,
+ 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xff, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0xb0, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0xff, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
+ 0x88, 0x02, 0x88, 0x02, 0x88, 0x02, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x08, 0x00,
+ 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0xf9, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,
+ 0xf0, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00,
+ 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00,
+ 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x88, 0x00, 0x88, 0x00,
+ 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00,
+ 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x98, 0x00, 0xa8, 0x00, 0xa8, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x88, 0x00,
+ 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x80, 0x00, 0x60, 0x00, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x38, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x08, 0x00, 0x30, 0x00, 0xc0, 0x00, 0x38, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x50, 0x00, 0x20, 0x00, 0x50, 0x00, 0x88, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x18, 0x02, 0x60, 0x02, 0x80, 0x01, 0x60, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x88, 0x00, 0xc8, 0x00, 0xa8, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00,
+ 0xef, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0xef, 0x01, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00,
+ 0x20, 0x00, 0x20, 0x00, 0x10, 0x00,
+};
+
+static const uint16_t mf_bwfont_DejaVuSans10_glyph_offsets_0[96] = {
+ 0x0000, 0x0000, 0x0004, 0x0009, 0x0012, 0x0019, 0x0023, 0x002c,
+ 0x002f, 0x0033, 0x0037, 0x003d, 0x0046, 0x0049, 0x004e, 0x0051,
+ 0x0055, 0x005c, 0x0063, 0x006a, 0x0071, 0x0078, 0x007f, 0x0086,
+ 0x008d, 0x0094, 0x009b, 0x009e, 0x00a1, 0x00a9, 0x00b1, 0x00b9,
+ 0x00bf, 0x00ca, 0x00d2, 0x00d9, 0x00e1, 0x00e9, 0x00f0, 0x00f6,
+ 0x00fe, 0x0106, 0x0109, 0x010c, 0x0113, 0x011a, 0x0123, 0x012b,
+ 0x0133, 0x013a, 0x0142, 0x014a, 0x0151, 0x0157, 0x015f, 0x0167,
+ 0x0171, 0x0178, 0x0180, 0x0187, 0x018b, 0x018f, 0x0193, 0x019b,
+ 0x01a1, 0x01a5, 0x01ac, 0x01b3, 0x01b9, 0x01c0, 0x01c7, 0x01cd,
+ 0x01d4, 0x01db, 0x01de, 0x01e1, 0x01e7, 0x01ea, 0x01f5, 0x01fc,
+ 0x0203, 0x020a, 0x0211, 0x0216, 0x021c, 0x0221, 0x0228, 0x022f,
+ 0x0238, 0x023f, 0x0246, 0x024c, 0x0252, 0x0255, 0x025b, 0x0263,
+};
+
+static const uint8_t mf_bwfont_DejaVuSans10_glyph_widths_0[95] = {
+ 0x03, 0x04, 0x05, 0x08, 0x06, 0x0a, 0x09, 0x03, 0x04, 0x04, 0x05, 0x08, 0x03, 0x04, 0x03, 0x03,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x08, 0x08, 0x08, 0x05,
+ 0x0b, 0x07, 0x07, 0x08, 0x08, 0x07, 0x06, 0x08, 0x08, 0x03, 0x03, 0x07, 0x06, 0x09, 0x08, 0x08,
+ 0x07, 0x08, 0x07, 0x07, 0x05, 0x08, 0x07, 0x09, 0x06, 0x07, 0x06, 0x04, 0x03, 0x04, 0x08, 0x05,
+ 0x05, 0x06, 0x06, 0x05, 0x06, 0x06, 0x04, 0x06, 0x06, 0x02, 0x02, 0x05, 0x02, 0x0a, 0x06, 0x06,
+ 0x06, 0x06, 0x04, 0x05, 0x04, 0x06, 0x06, 0x08, 0x06, 0x06, 0x05, 0x06, 0x03, 0x06, 0x08,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_DejaVuSans10_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 2, /* height in bytes */
+ 10, /* height in pixels */
+ 0, /* width */
+ mf_bwfont_DejaVuSans10_glyph_widths_0, /* glyph widths */
+ mf_bwfont_DejaVuSans10_glyph_offsets_0, /* glyph offsets */
+ mf_bwfont_DejaVuSans10_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_DejaVuSans10 = {
+ {
+ "DejaVu Sans Book 10",
+ "DejaVuSans10",
+ 11, /* width */
+ 10, /* height */
+ 2, /* min x advance */
+ 11, /* max x advance */
+ 1, /* baseline x */
+ 8, /* baseline y */
+ 12, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_DejaVuSans10_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_DejaVuSans10_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_DejaVuSans10
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_DejaVuSans10_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans10. */
+
diff --git a/src/gdisp/fonts/DejaVuSans12.c b/src/gdisp/fonts/DejaVuSans12.c
new file mode 100644
index 00000000..e9e16118
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans12.c
@@ -0,0 +1,175 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans12. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_DejaVuSans12_glyph_data_0[1372] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
+ 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x90, 0x02, 0xf0, 0x01, 0x9c, 0x00, 0x90, 0x03,
+ 0xf8, 0x00, 0x94, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x01, 0x24, 0x02,
+ 0xfe, 0x0f, 0x44, 0x02, 0xc8, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x22, 0x00, 0x22, 0x02, 0x9c, 0x01,
+ 0x60, 0x00, 0x30, 0x00, 0xcc, 0x01, 0x22, 0x02, 0x20, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0x01, 0x3c, 0x03, 0x12, 0x02, 0x22, 0x02, 0x44, 0x02, 0x80, 0x01, 0x80, 0x02, 0x60, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x07, 0x07, 0x01, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x07, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00,
+ 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+ 0x40, 0x00, 0xf8, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x06, 0xc0, 0x01, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00,
+ 0x06, 0x03, 0x02, 0x02, 0x02, 0x02, 0x06, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02,
+ 0x02, 0x02, 0xfe, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x02, 0x03,
+ 0x82, 0x02, 0x42, 0x02, 0x26, 0x02, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x02, 0x02,
+ 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xb0, 0x00,
+ 0x88, 0x00, 0x86, 0x00, 0xfe, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x12, 0x02,
+ 0x12, 0x02, 0x12, 0x02, 0x32, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x24, 0x03,
+ 0x12, 0x02, 0x12, 0x02, 0x32, 0x03, 0xe4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02,
+ 0x82, 0x01, 0x62, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x22, 0x02,
+ 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x66, 0x02,
+ 0x42, 0x02, 0x42, 0x02, 0x26, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x30, 0x07, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x90, 0x00,
+ 0x90, 0x00, 0x90, 0x00, 0x98, 0x01, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0xa0, 0x00,
+ 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x01, 0x98, 0x01, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x62, 0x03, 0x12, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf0, 0x01, 0x08, 0x02, 0x04, 0x04, 0xe2, 0x08, 0x12, 0x09, 0x12, 0x09, 0x12, 0x09, 0xf2, 0x09,
+ 0x04, 0x05, 0x8c, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x01, 0xb8, 0x00, 0x86, 0x00,
+ 0x86, 0x00, 0xb8, 0x00, 0xc0, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x22, 0x02,
+ 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x01,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03,
+ 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03,
+ 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x04, 0x01,
+ 0x02, 0x02, 0x02, 0x02, 0x22, 0x02, 0x22, 0x02, 0xe4, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03,
+ 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x03, 0x00, 0x08, 0x00, 0x08, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x20, 0x00,
+ 0x50, 0x00, 0x88, 0x00, 0x04, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x0c, 0x00, 0x30, 0x00,
+ 0xc0, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x0c, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03,
+ 0x06, 0x00, 0x18, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x03, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0xf8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x01, 0xf8, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf8, 0x00, 0x04, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x06, 0x04, 0x09, 0xf8, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x62, 0x00, 0x9c, 0x01,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02,
+ 0xc4, 0x01, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x03, 0x02, 0x00, 0x02, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02,
+ 0x00, 0x03, 0xfe, 0x01, 0x00, 0x00, 0x06, 0x00, 0x38, 0x00, 0xc0, 0x00, 0x00, 0x03, 0x00, 0x03,
+ 0xc0, 0x00, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x03,
+ 0xf0, 0x00, 0x0e, 0x00, 0xf0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x06, 0x01, 0xd8, 0x00, 0x20, 0x00, 0xd8, 0x00, 0x06, 0x01, 0x02, 0x02, 0x00, 0x00,
+ 0x02, 0x00, 0x0c, 0x00, 0x30, 0x00, 0xc0, 0x03, 0x30, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x03, 0x82, 0x02, 0x42, 0x02, 0x22, 0x02, 0x12, 0x02, 0x0a, 0x02, 0x06, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x02, 0x08, 0x00, 0x00, 0x06, 0x00, 0x38, 0x00,
+ 0xc0, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x48, 0x02, 0x48, 0x02,
+ 0x48, 0x02, 0x48, 0x01, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x18, 0x03, 0x08, 0x02,
+ 0x08, 0x02, 0x18, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x18, 0x03, 0x08, 0x02,
+ 0x08, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x18, 0x03, 0x08, 0x02, 0x08, 0x02,
+ 0x18, 0x03, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x58, 0x03, 0x48, 0x02, 0x48, 0x02,
+ 0x58, 0x02, 0x70, 0x01, 0x00, 0x00, 0x08, 0x00, 0xfe, 0x03, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf0, 0x01, 0x18, 0x0b, 0x08, 0x12, 0x08, 0x12, 0x18, 0x1b, 0xf8, 0x0f, 0x00, 0x00,
+ 0x00, 0x00, 0xff, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x10, 0xfa, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
+ 0x40, 0x00, 0xa0, 0x00, 0x10, 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0xf8, 0x03, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, 0x03, 0x08, 0x00, 0x08, 0x00,
+ 0x08, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00,
+ 0x08, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x18, 0x03, 0x08, 0x02, 0x08, 0x02,
+ 0x18, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x18, 0x03, 0x08, 0x02, 0x08, 0x02,
+ 0x18, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x18, 0x03, 0x08, 0x02, 0x08, 0x02,
+ 0x18, 0x03, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02, 0x90, 0x01, 0x00, 0x00,
+ 0x08, 0x00, 0xfe, 0x03, 0x08, 0x02, 0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x02,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0xf8, 0x03, 0x00, 0x00, 0x18, 0x00, 0xe0, 0x00, 0x00, 0x03,
+ 0x00, 0x03, 0xe0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00,
+ 0x18, 0x00, 0xe0, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x02, 0xb0, 0x01,
+ 0x40, 0x00, 0x40, 0x00, 0xb0, 0x01, 0x08, 0x02, 0x00, 0x00, 0x18, 0x10, 0x60, 0x10, 0x80, 0x09,
+ 0x00, 0x07, 0xe0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x08, 0x03, 0x88, 0x02, 0x48, 0x02, 0x28, 0x02,
+ 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xbe, 0x0f, 0x02, 0x08,
+ 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08,
+ 0x02, 0x08, 0xbe, 0x0f, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00,
+ 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00,
+};
+
+static const uint16_t mf_bwfont_DejaVuSans12_glyph_offsets_0[96] = {
+ 0x0000, 0x0000, 0x0004, 0x0009, 0x0013, 0x001b, 0x0026, 0x0030,
+ 0x0033, 0x0038, 0x003d, 0x0044, 0x004d, 0x0050, 0x0055, 0x0058,
+ 0x005d, 0x0065, 0x006c, 0x0074, 0x007c, 0x0084, 0x008c, 0x0094,
+ 0x009c, 0x00a4, 0x00ac, 0x00af, 0x00b2, 0x00bc, 0x00c6, 0x00d0,
+ 0x00d6, 0x00e3, 0x00ec, 0x00f4, 0x00fc, 0x0105, 0x010d, 0x0114,
+ 0x011d, 0x0126, 0x0129, 0x012c, 0x0134, 0x013b, 0x0145, 0x014e,
+ 0x0157, 0x015f, 0x0168, 0x0171, 0x0179, 0x0181, 0x018a, 0x0193,
+ 0x019f, 0x01a7, 0x01af, 0x01b8, 0x01bd, 0x01c2, 0x01c6, 0x01cf,
+ 0x01d6, 0x01db, 0x01e3, 0x01eb, 0x01f2, 0x01fa, 0x0202, 0x0207,
+ 0x020f, 0x0217, 0x021a, 0x021d, 0x0224, 0x0227, 0x0232, 0x023a,
+ 0x0242, 0x024a, 0x0252, 0x0258, 0x025f, 0x0264, 0x026c, 0x0273,
+ 0x027d, 0x0284, 0x028b, 0x0291, 0x0299, 0x029d, 0x02a4, 0x02ae,
+};
+
+static const uint8_t mf_bwfont_DejaVuSans12_glyph_widths_0[95] = {
+ 0x04, 0x05, 0x05, 0x0a, 0x08, 0x0b, 0x0a, 0x03, 0x05, 0x05, 0x06, 0x0a, 0x04, 0x04, 0x04, 0x04,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x0a, 0x0a, 0x0a, 0x06,
+ 0x0d, 0x08, 0x08, 0x08, 0x09, 0x08, 0x07, 0x09, 0x09, 0x03, 0x03, 0x07, 0x06, 0x0a, 0x09, 0x09,
+ 0x08, 0x09, 0x08, 0x08, 0x07, 0x09, 0x08, 0x0b, 0x07, 0x07, 0x09, 0x05, 0x04, 0x05, 0x0a, 0x06,
+ 0x06, 0x08, 0x08, 0x07, 0x08, 0x08, 0x04, 0x08, 0x08, 0x03, 0x03, 0x07, 0x03, 0x0b, 0x08, 0x08,
+ 0x08, 0x08, 0x05, 0x07, 0x05, 0x08, 0x06, 0x09, 0x06, 0x06, 0x05, 0x08, 0x04, 0x08, 0x0a,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_DejaVuSans12_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 2, /* height in bytes */
+ 13, /* height in pixels */
+ 0, /* width */
+ mf_bwfont_DejaVuSans12_glyph_widths_0, /* glyph widths */
+ mf_bwfont_DejaVuSans12_glyph_offsets_0, /* glyph offsets */
+ mf_bwfont_DejaVuSans12_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_DejaVuSans12 = {
+ {
+ "DejaVu Sans Book 12",
+ "DejaVuSans12",
+ 13, /* width */
+ 13, /* height */
+ 3, /* min x advance */
+ 13, /* max x advance */
+ 1, /* baseline x */
+ 10, /* baseline y */
+ 14, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_DejaVuSans12_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_DejaVuSans12_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_DejaVuSans12
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_DejaVuSans12_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans12. */
+
diff --git a/src/gdisp/fonts/DejaVuSans12_aa.c b/src/gdisp/fonts/DejaVuSans12_aa.c
new file mode 100644
index 00000000..3384b4e3
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans12_aa.c
@@ -0,0 +1,246 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans12_aa. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans12_aa_dictionary_data[329] = {
+ 0x27, 0x02, 0x0b, 0x80, 0x01, 0x80, 0x07, 0x80, 0x04, 0x80, 0x02, 0x80, 0x06, 0x04, 0x80, 0x02,
+ 0x0e, 0xc9, 0xde, 0xc7, 0x0a, 0x06, 0x2a, 0x10, 0x84, 0x07, 0x80, 0x02, 0x80, 0x0c, 0x80, 0x0c,
+ 0x0f, 0x80, 0x08, 0xcd, 0xc3, 0x86, 0x0d, 0x0c, 0xc2, 0xca, 0x29, 0xc8, 0xcb, 0xc4, 0xcc, 0xce,
+ 0xc7, 0xcc, 0xc6, 0xcd, 0xc8, 0xcd, 0xc2, 0x01, 0xde, 0xc4, 0xce, 0xcd, 0xc4, 0xc3, 0xce, 0xc7,
+ 0xcb, 0xc5, 0xcb, 0x06, 0x80, 0x02, 0xc5, 0xcd, 0x07, 0xc6, 0xcd, 0xc5, 0xcc, 0x82, 0xc7, 0xcc,
+ 0xc3, 0xcd, 0x09, 0xc6, 0x0b, 0xc6, 0xca, 0xd1, 0xc1, 0xcd, 0xc8, 0xcd, 0xca, 0xc6, 0xce, 0xc2,
+ 0x01, 0xc3, 0x40, 0x03, 0xcc, 0xc3, 0x03, 0x80, 0xc1, 0x02, 0xc7, 0xce, 0x08, 0xca, 0xc4, 0x01,
+ 0xc2, 0xc7, 0xc9, 0xc2, 0xce, 0xce, 0xc9, 0x01, 0x80, 0xc9, 0xc7, 0x01, 0x80, 0xce, 0xd2, 0xcb,
+ 0xc4, 0xca, 0xc5, 0xc1, 0x05, 0xc9, 0xc1, 0xcc, 0xc4, 0xcc, 0xc2, 0xc7, 0xc8, 0xca, 0xc2, 0xce,
+ 0xc1, 0x81, 0x80, 0xc2, 0xcb, 0xc4, 0xcb, 0xc5, 0xca, 0xc7, 0x80, 0x07, 0xc4, 0xcb, 0xc2, 0xc1,
+ 0xc2, 0xcd, 0xce, 0xcb, 0xcb, 0xce, 0xc3, 0xcc, 0xc4, 0xcd, 0x80, 0xcc, 0xc1, 0xce, 0xcd, 0xc6,
+ 0x28, 0x28, 0x28, 0x28, 0x0f, 0x2e, 0x28, 0x02, 0x45, 0x2e, 0xbc, 0x6f, 0x02, 0x27, 0x01, 0x19,
+ 0x07, 0x0a, 0x23, 0x03, 0x45, 0x1f, 0xc6, 0xc5, 0x95, 0xc8, 0x00, 0x01, 0x19, 0x32, 0x3f, 0x0f,
+ 0x52, 0x58, 0x50, 0xa4, 0x0b, 0x5c, 0x07, 0x3f, 0x67, 0x19, 0x44, 0x3f, 0xc5, 0x6b, 0x67, 0x19,
+ 0x6e, 0x19, 0xa4, 0x0b, 0x5c, 0x08, 0x19, 0xa4, 0x23, 0xc6, 0x74, 0x27, 0x01, 0x08, 0x0c, 0x21,
+ 0x6b, 0x31, 0x5c, 0x6b, 0x36, 0x4d, 0x1c, 0x5f, 0x36, 0x4d, 0x6b, 0x31, 0x5c, 0x2a, 0x40, 0x0f,
+ 0x4f, 0x19, 0xa4, 0x0a, 0x6d, 0x43, 0x3f, 0x51, 0x74, 0x3f, 0xc5, 0x1c, 0x23, 0xa4, 0x2e, 0x3a,
+ 0x5e, 0x38, 0x03, 0x23, 0x4b, 0x50, 0x47, 0x23, 0x36, 0x19, 0x6e, 0x3d, 0x50, 0x1d, 0xcc, 0xa4,
+ 0x5f, 0x1d, 0x4b, 0x50, 0x47, 0x23, 0x3a, 0x04, 0x01, 0x38, 0x03, 0x3f, 0x0f, 0x1a, 0x72, 0x39,
+ 0x0f, 0x22, 0x19, 0x1c, 0x5f, 0x28, 0x28, 0x37, 0x08, 0x53, 0x2e, 0x24, 0x28, 0x22, 0x25, 0x0a,
+ 0x45, 0x0f, 0x45, 0x0c, 0x08, 0x48, 0x08, 0x0c, 0x3f,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans12_aa_dictionary_offsets[122] = {
+ 0x0000, 0x0001, 0x0002, 0x0003, 0x0005, 0x000b, 0x000d, 0x000e,
+ 0x0010, 0x0011, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019,
+ 0x001c, 0x0020, 0x0021, 0x0023, 0x0025, 0x0026, 0x0027, 0x0028,
+ 0x002a, 0x002b, 0x002d, 0x002f, 0x0031, 0x0033, 0x0035, 0x0038,
+ 0x0039, 0x003b, 0x003d, 0x003f, 0x0041, 0x0043, 0x0046, 0x0048,
+ 0x0049, 0x004b, 0x004d, 0x004e, 0x0050, 0x0052, 0x0053, 0x0055,
+ 0x0057, 0x0058, 0x005a, 0x005c, 0x005e, 0x0060, 0x0062, 0x0064,
+ 0x0066, 0x0067, 0x006a, 0x006c, 0x006d, 0x006f, 0x0071, 0x0073,
+ 0x0075, 0x0077, 0x0079, 0x007c, 0x007e, 0x0080, 0x0082, 0x0084,
+ 0x0085, 0x0087, 0x0089, 0x008b, 0x008d, 0x008f, 0x0091, 0x0092,
+ 0x0094, 0x0096, 0x0098, 0x009a, 0x009c, 0x009e, 0x00a0, 0x00a2,
+ 0x00a4, 0x00a6, 0x00a8, 0x00aa, 0x00ac, 0x00ae, 0x00b0, 0x00b4,
+ 0x00b7, 0x00b9, 0x00bf, 0x00c3, 0x00c5, 0x00ca, 0x00cc, 0x00cf,
+ 0x00e8, 0x00ef, 0x00fe, 0x010c, 0x010f, 0x011e, 0x0122, 0x012c,
+ 0x012e, 0x0130, 0x0132, 0x0135, 0x0137, 0x013a, 0x013f, 0x0141,
+ 0x0143, 0x0149,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans12_aa_glyph_data_0[2069] = {
+ 0x04, 0x00, 0x10, 0x05, 0x25, 0x8b, 0x0e, 0x2e, 0x0d, 0x20, 0x83, 0x0f, 0x10, 0x05, 0x1a, 0x94,
+ 0x1d, 0x94, 0x6b, 0xac, 0x10, 0x0a, 0x29, 0x25, 0x0d, 0x01, 0x5d, 0x3f, 0x55, 0x0c, 0x00, 0x08,
+ 0x06, 0x23, 0x05, 0xc3, 0x6b, 0x0a, 0x05, 0x49, 0x45, 0x0d, 0x01, 0x5d, 0x3f, 0x2c, 0x05, 0x23,
+ 0x05, 0x09, 0x00, 0x0b, 0x02, 0x53, 0x54, 0x49, 0x10, 0x08, 0x19, 0x25, 0x89, 0x72, 0x0f, 0x0d,
+ 0x05, 0x53, 0x39, 0x0f, 0x2f, 0x53, 0x65, 0x89, 0x09, 0x0c, 0x0f, 0x05, 0x22, 0x04, 0x0f, 0x0b,
+ 0x8e, 0x59, 0x74, 0x53, 0x60, 0x0f, 0x72, 0x53, 0x40, 0x0f, 0x39, 0x22, 0x28, 0x10, 0x0b, 0x20,
+ 0x88, 0x19, 0x72, 0x5f, 0x61, 0x41, 0x19, 0x0d, 0x05, 0x1e, 0x96, 0x06, 0x0b, 0x23, 0x39, 0x32,
+ 0x74, 0x03, 0x23, 0x88, 0x09, 0x09, 0x88, 0x5f, 0x4d, 0x65, 0x39, 0x32, 0x23, 0x0b, 0x06, 0xd6,
+ 0x5f, 0x41, 0x19, 0x39, 0x32, 0x5f, 0x39, 0x19, 0x88, 0x10, 0x0a, 0x25, 0x72, 0x33, 0x45, 0x0d,
+ 0x5e, 0x09, 0x45, 0x4c, 0x1a, 0x0b, 0x0b, 0x01, 0x45, 0x3b, 0x6c, 0x01, 0x00, 0x6e, 0x5f, 0x2b,
+ 0x00, 0x32, 0x01, 0x56, 0x5f, 0x4c, 0x19, 0x41, 0x36, 0x1e, 0x09, 0x0b, 0x6d, 0x06, 0x35, 0x5f,
+ 0x7d, 0x09, 0x37, 0x0a, 0x71, 0x08, 0x10, 0x03, 0x29, 0x77, 0x10, 0x05, 0x50, 0x08, 0x8e, 0x7d,
+ 0x4c, 0x22, 0x56, 0x1a, 0x68, 0x1a, 0x65, 0x83, 0x65, 0x1a, 0x68, 0x1a, 0x56, 0x1a, 0x74, 0x78,
+ 0x7a, 0x10, 0x05, 0x19, 0x6a, 0x22, 0x55, 0x65, 0x1a, 0x09, 0x46, 0x6c, 0x1a, 0x74, 0x2e, 0x87,
+ 0x74, 0x1a, 0x6c, 0x1a, 0x09, 0x06, 0x45, 0x55, 0x65, 0x22, 0x6a, 0x10, 0x06, 0x00, 0x25, 0x89,
+ 0x09, 0x02, 0x67, 0x09, 0x53, 0x2f, 0x0f, 0x64, 0x53, 0x2f, 0x0f, 0x64, 0x53, 0x09, 0x02, 0x67,
+ 0x09, 0x5f, 0xa4, 0x10, 0x0a, 0x19, 0x24, 0x28, 0x8f, 0xc3, 0x8f, 0x77, 0x10, 0x04, 0x18, 0x4e,
+ 0x77, 0x10, 0x04, 0x22, 0x4e, 0xbc, 0x10, 0x04, 0x18, 0x4e, 0x28, 0x10, 0x04, 0x25, 0x44, 0x1a,
+ 0x63, 0x1a, 0x61, 0x22, 0x74, 0x1a, 0x47, 0x1a, 0x0a, 0x46, 0x65, 0x22, 0x32, 0x1a, 0x08, 0x07,
+ 0x1a, 0x2b, 0x10, 0x08, 0x25, 0x08, 0x8c, 0x06, 0x62, 0x02, 0x34, 0x3f, 0x61, 0x7e, 0x65, 0x19,
+ 0x74, 0x3f, 0xc5, 0x6b, 0x65, 0x19, 0x74, 0x3f, 0x61, 0x7e, 0x06, 0x62, 0x02, 0x34, 0x53, 0x08,
+ 0x8c, 0x10, 0x08, 0x1a, 0xb4, 0x77, 0x8b, 0x8f, 0xc2, 0x10, 0x08, 0x29, 0x6c, 0x5b, 0x60, 0x3f,
+ 0x68, 0x48, 0x09, 0x0b, 0x1a, 0x74, 0x1a, 0x3c, 0x22, 0x44, 0x78, 0x72, 0x7b, 0x3e, 0x7b, 0x07,
+ 0x36, 0x45, 0xc3, 0x01, 0x10, 0x08, 0x29, 0x6c, 0x5b, 0x60, 0x3f, 0x69, 0x48, 0x3b, 0x1a, 0x74,
+ 0x45, 0x7d, 0x3b, 0x1e, 0xa4, 0x5b, 0x78, 0x7d, 0x31, 0x1a, 0x74, 0x3f, 0x64, 0x55, 0x09, 0x0b,
+ 0x3f, 0x41, 0x0f, 0x0d, 0x60, 0x10, 0x08, 0x19, 0x25, 0x0b, 0x89, 0x06, 0x0c, 0x8f, 0x49, 0x02,
+ 0x8f, 0x5a, 0x2a, 0x71, 0x19, 0x2a, 0x62, 0x19, 0x2a, 0xc3, 0x83, 0x0f, 0x10, 0x08, 0x2d, 0xc0,
+ 0x2a, 0x28, 0x0f, 0x37, 0x0c, 0x46, 0x71, 0x08, 0x1a, 0x57, 0x1a, 0x57, 0x3f, 0x0a, 0x03, 0x55,
+ 0x0b, 0x09, 0x3f, 0x41, 0x0f, 0x35, 0x10, 0x08, 0x29, 0x4d, 0x70, 0x75, 0x3f, 0x6e, 0x5e, 0x2f,
+ 0x3f, 0x0a, 0x46, 0x0e, 0x08, 0x37, 0x60, 0x19, 0xa4, 0x0a, 0x48, 0x0a, 0x09, 0x3f, 0x65, 0x19,
+ 0x74, 0x3f, 0x0b, 0x01, 0x19, 0x74, 0x3f, 0x47, 0x48, 0x0a, 0x09, 0x53, 0x08, 0x37, 0x0a, 0x01,
+ 0x10, 0x08, 0x2d, 0xc0, 0x5b, 0x1a, 0x05, 0x08, 0x1a, 0x62, 0x22, 0x05, 0x09, 0x1a, 0x62, 0x22,
+ 0x5d, 0x1a, 0x4f, 0x22, 0x32, 0x1a, 0x69, 0x10, 0x08, 0x20, 0x55, 0x70, 0x6f, 0x02, 0x3f, 0x90,
+ 0x65, 0x19, 0x74, 0x3f, 0x0a, 0x08, 0x48, 0x08, 0x0a, 0x3f, 0x6e, 0x66, 0x36, 0x23, 0x0b, 0x08,
+ 0x48, 0x31, 0x3f, 0x65, 0x19, 0x74, 0x3f, 0x90, 0x02, 0x70, 0x6f, 0x02, 0x10, 0x08, 0x20, 0x7d,
+ 0x09, 0x8c, 0x09, 0x0a, 0x48, 0x4b, 0x3f, 0x65, 0x00, 0x7d, 0x0b, 0x3f, 0x65, 0x19, 0x74, 0x3f,
+ 0x0a, 0x0a, 0x48, 0x0a, 0x1d, 0x7d, 0x0a, 0x37, 0x52, 0x1a, 0x47, 0x3f, 0x0a, 0x6d, 0x3e, 0x02,
+ 0x3f, 0x40, 0x6f, 0x03, 0x10, 0x04, 0x8d, 0x28, 0x10, 0x04, 0x8d, 0x77, 0x10, 0x0a, 0x50, 0x24,
+ 0x4d, 0x4a, 0x3f, 0x04, 0x09, 0x0d, 0x35, 0x03, 0x5f, 0x09, 0x0e, 0x0c, 0x07, 0x02, 0x53, 0x09,
+ 0x0e, 0x0c, 0x07, 0x02, 0x22, 0x04, 0x09, 0x0d, 0x35, 0x7b, 0x4d, 0x4a, 0x10, 0x0a, 0x4e, 0x0f,
+ 0x2c, 0x2d, 0xa4, 0x2c, 0x10, 0x0a, 0x30, 0x35, 0x7b, 0x4d, 0x4a, 0x35, 0x04, 0x45, 0x4d, 0x43,
+ 0x58, 0x3f, 0x55, 0x43, 0x58, 0x1e, 0x4d, 0x4a, 0x0d, 0x09, 0x04, 0x3f, 0x35, 0x03, 0x10, 0x06,
+ 0x20, 0x3e, 0x0f, 0x4f, 0x53, 0x0b, 0x03, 0x00, 0x3e, 0x1a, 0x6e, 0x22, 0x6e, 0x05, 0x22, 0x0c,
+ 0x05, 0x83, 0x2d, 0x28, 0x10, 0x0d, 0x25, 0x55, 0x4a, 0x5b, 0x54, 0x5f, 0x38, 0x08, 0x03, 0x48,
+ 0x05, 0x35, 0x50, 0x57, 0x04, 0x1e, 0x7d, 0x0c, 0x05, 0x19, 0x5a, 0x44, 0x33, 0x1b, 0x32, 0x19,
+ 0x36, 0x34, 0x01, 0x06, 0x0f, 0x7d, 0x0f, 0xc8, 0x65, 0x7d, 0x1b, 0x44, 0x19, 0x36, 0x34, 0x01,
+ 0x06, 0x67, 0x34, 0x19, 0x5a, 0x44, 0x0e, 0x52, 0x69, 0x50, 0x57, 0x03, 0x1a, 0x05, 0x33, 0x02,
+ 0x55, 0x07, 0x0a, 0x5f, 0x55, 0x09, 0x0d, 0x5b, 0x54, 0x10, 0x08, 0x00, 0x25, 0x0d, 0x0d, 0x22,
+ 0x44, 0x0d, 0x7b, 0x09, 0x07, 0x56, 0x45, 0x4c, 0x57, 0x53, 0x3c, 0x19, 0x69, 0x3f, 0x69, 0x19,
+ 0x3c, 0x5f, 0x7d, 0xc3, 0x01, 0x5f, 0x56, 0x1e, 0x5a, 0x1e, 0x61, 0x1e, 0x32, 0x10, 0x08, 0x79,
+ 0x43, 0x27, 0x7d, 0xe5, 0x94, 0x7d, 0x3b, 0x1e, 0xbc, 0x5b, 0x03, 0x27, 0x01, 0x3b, 0x23, 0xc6,
+ 0x74, 0x27, 0x01, 0x43, 0x50, 0xb4, 0x5b, 0x4f, 0x10, 0x08, 0x25, 0x32, 0x0f, 0x75, 0x3f, 0x3a,
+ 0x5e, 0x02, 0x09, 0x3f, 0x0a, 0x46, 0x0d, 0x02, 0x83, 0x36, 0x22, 0x0a, 0x46, 0x3a, 0x5e, 0x02,
+ 0x09, 0x53, 0x32, 0x0f, 0x75, 0x10, 0x09, 0x2e, 0xbc, 0x0d, 0x0a, 0x03, 0x27, 0x02, 0x52, 0x03,
+ 0x3d, 0x7a, 0xc5, 0x57, 0x5f, 0xc6, 0x7d, 0x1d, 0xc5, 0x57, 0x3d, 0x7a, 0x1b, 0x55, 0x52, 0x03,
+ 0x19, 0xb4, 0x5b, 0x0a, 0x03, 0x10, 0x08, 0x20, 0xc2, 0x6b, 0x77, 0x26, 0x6b, 0x77, 0xc3, 0x10,
+ 0x07, 0x2d, 0xc0, 0x2a, 0x77, 0xf3, 0x2a, 0x8b, 0x10, 0x09, 0x29, 0x4d, 0x70, 0x73, 0x05, 0x23,
+ 0x3a, 0x06, 0x02, 0x4d, 0x0a, 0x23, 0x6a, 0x1a, 0x4c, 0x1a, 0xb5, 0x1d, 0x4c, 0x1e, 0x1d, 0x6a,
+ 0x1e, 0x1d, 0x3a, 0x06, 0x48, 0x04, 0x1d, 0x4d, 0x0b, 0x37, 0x68, 0x10, 0x09, 0x53, 0x27, 0x85,
+ 0x1f, 0x85, 0x2c, 0x3d, 0x85, 0x1f, 0x85, 0x10, 0x03, 0x29, 0x76, 0x0f, 0x10, 0x03, 0x29, 0x77,
+ 0x8b, 0x87, 0x74, 0x1a, 0x06, 0x0b, 0x5f, 0xa4, 0x4f, 0x10, 0x07, 0x53, 0x27, 0x55, 0x39, 0x3d,
+ 0x03, 0x2b, 0x50, 0x94, 0x05, 0x2b, 0x50, 0xa4, 0x40, 0x78, 0x66, 0x04, 0x5f, 0xa4, 0x40, 0x78,
+ 0x1b, 0x06, 0x0e, 0x03, 0x00, 0x27, 0x05, 0x0e, 0x03, 0x23, 0xc6, 0x05, 0x0e, 0x04, 0x10, 0x06,
+ 0x29, 0x76, 0x26, 0x10, 0x0a, 0x22, 0xa4, 0x06, 0x1e, 0x04, 0x0f, 0x5f, 0x73, 0x1e, 0x0b, 0x0f,
+ 0xa4, 0x08, 0x05, 0x19, 0x04, 0x09, 0x0f, 0x5f, 0x67, 0x0c, 0x19, 0x62, 0x1b, 0x94, 0x0a, 0x05,
+ 0x3c, 0xf6, 0x94, 0x32, 0x61, 0xc6, 0xc8, 0x0d, 0x0d, 0xc8, 0x85, 0x0f, 0x10, 0x09, 0x29, 0x73,
+ 0x94, 0xa4, 0x69, 0xcc, 0xa4, 0x44, 0x00, 0xc8, 0x94, 0x5a, 0xe6, 0x94, 0x49, 0x01, 0x59, 0x3d,
+ 0x63, 0x59, 0x3d, 0x49, 0x02, 0x1d, 0xe5, 0x05, 0x0a, 0x1d, 0xc5, 0x0c, 0x0f, 0x10, 0x09, 0x25,
+ 0x32, 0x0f, 0x61, 0x3f, 0x84, 0x36, 0x19, 0x6e, 0x23, 0x86, 0x3e, 0x0f, 0x0d, 0x05, 0x10, 0x08,
+ 0x1a, 0xb4, 0x5b, 0x64, 0x27, 0x01, 0x31, 0x80, 0x1e, 0xbc, 0x6f, 0x02, 0x3f, 0x8b, 0x10, 0x09,
+ 0x25, 0x32, 0x73, 0x05, 0x3f, 0x84, 0x36, 0x19, 0x57, 0x23, 0x86, 0x3e, 0x66, 0x05, 0x1a, 0x6a,
+ 0x22, 0x55, 0x65, 0x10, 0x08, 0x79, 0x08, 0x0c, 0x80, 0x5f, 0xc0, 0x4c, 0x27, 0x02, 0x69, 0x27,
+ 0x55, 0x65, 0x23, 0xc5, 0x4b, 0x3d, 0x7e, 0x10, 0x08, 0x20, 0x7d, 0x0a, 0x0e, 0x0f, 0x68, 0x3f,
+ 0x0b, 0x08, 0x01, 0x00, 0x6c, 0x3f, 0x65, 0x1a, 0x0b, 0x09, 0x78, 0x7d, 0x09, 0x0d, 0x0e, 0x0a,
+ 0x78, 0x7d, 0x31, 0x1a, 0x74, 0x3f, 0x68, 0x7d, 0x31, 0x3f, 0x6c, 0x5b, 0x64, 0x10, 0x07, 0x20,
+ 0xc3, 0x8f, 0x76, 0x10, 0x09, 0x53, 0x27, 0x85, 0x1f, 0x85, 0x1f, 0x85, 0x2b, 0x50, 0x44, 0x23,
+ 0x3b, 0x03, 0x4d, 0x0b, 0x07, 0x3f, 0x07, 0x0d, 0x0f, 0x0d, 0x07, 0x10, 0x08, 0x2d, 0x47, 0x23,
+ 0x4b, 0x1e, 0x4c, 0x1e, 0x57, 0x5f, 0x63, 0x1e, 0x08, 0x07, 0x1e, 0x7d, 0x65, 0x00, 0x7d, 0x65,
+ 0x23, 0x5a, 0x00, 0x56, 0x3f, 0x6e, 0x19, 0x36, 0x3f, 0x0a, 0x05, 0x05, 0x8e, 0x71, 0x4f, 0x22,
+ 0x0c, 0x0c, 0x10, 0x0b, 0x20, 0x4f, 0x50, 0x0e, 0x50, 0x71, 0x19, 0x56, 0x00, 0x4d, 0x0f, 0x03,
+ 0x19, 0x5a, 0x00, 0x57, 0x19, 0x07, 0x0f, 0x07, 0x19, 0x4c, 0x50, 0x61, 0x00, 0x0a, 0x09, 0x0a,
+ 0x00, 0x6c, 0x1e, 0x47, 0x00, 0x0d, 0x6e, 0x00, 0x4b, 0x1e, 0x74, 0x71, 0x00, 0x4f, 0x65, 0x5f,
+ 0x0b, 0x0b, 0x08, 0x00, 0x31, 0x0a, 0x23, 0x05, 0x0f, 0x04, 0x00, 0x04, 0x0f, 0x05, 0x5f, 0x7d,
+ 0x65, 0x7d, 0x65, 0x10, 0x07, 0x20, 0x0a, 0x08, 0x50, 0x08, 0x0a, 0x23, 0x74, 0x03, 0x4d, 0x65,
+ 0x3f, 0x06, 0x0c, 0x00, 0x34, 0x45, 0x0b, 0x0c, 0x0b, 0x22, 0x04, 0x0f, 0x04, 0x22, 0x0b, 0x0b,
+ 0x0b, 0x45, 0x06, 0x0c, 0x00, 0x34, 0x23, 0x7d, 0x4c, 0x55, 0x65, 0x23, 0x6a, 0x00, 0x7a, 0x10,
+ 0x07, 0x20, 0x69, 0x50, 0x3c, 0x23, 0x71, 0x50, 0x4f, 0x3f, 0x54, 0x00, 0x5d, 0x3f, 0x4d, 0x0b,
+ 0x00, 0x0b, 0x7b, 0x0a, 0x08, 0x8e, 0x55, 0x67, 0x1a, 0x77, 0x10, 0x09, 0x29, 0xc3, 0x87, 0x63,
+ 0x22, 0x05, 0x8e, 0x4d, 0x0b, 0x45, 0x55, 0x0c, 0x01, 0x53, 0x7d, 0x62, 0x22, 0x68, 0x22, 0x09,
+ 0x46, 0x2c, 0x10, 0x05, 0x2e, 0xb4, 0x83, 0x76, 0x66, 0x10, 0x04, 0x20, 0x2b, 0x1a, 0x08, 0x07,
+ 0x1a, 0x32, 0x2e, 0x65, 0x1a, 0x0a, 0x46, 0x47, 0x1a, 0x74, 0x2e, 0x61, 0x1a, 0x63, 0x1a, 0x44,
+ 0x10, 0x05, 0x1a, 0xb4, 0x2e, 0x76, 0x6b, 0xb4, 0x10, 0x0a, 0x00, 0x25, 0x04, 0x37, 0x04, 0x53,
+ 0x05, 0x39, 0x72, 0x05, 0x23, 0x07, 0x62, 0x00, 0x55, 0x0c, 0x07, 0x10, 0x06, 0x3f, 0x25, 0x4e,
+ 0x4e, 0xc3, 0x10, 0x06, 0x7a, 0x23, 0x63, 0x10, 0x08, 0x30, 0x2f, 0x37, 0x0a, 0x01, 0x3f, 0x61,
+ 0x48, 0x09, 0x09, 0x1a, 0x49, 0x23, 0x4d, 0x70, 0x66, 0x6b, 0x75, 0x01, 0x7d, 0x6b, 0x0e, 0x05,
+ 0x00, 0x2f, 0x6b, 0x72, 0x0f, 0x75, 0x0f, 0x10, 0x08, 0x19, 0x77, 0x7f, 0x52, 0x58, 0x10, 0x07,
+ 0x24, 0x4a, 0x33, 0x53, 0x3b, 0x6d, 0x08, 0x53, 0x2b, 0x83, 0x2b, 0x1a, 0x3b, 0x6d, 0x08, 0x45,
+ 0x4a, 0x33, 0x10, 0x08, 0x3f, 0x28, 0x2a, 0x81, 0x21, 0x0f, 0x10, 0x08, 0x24, 0x07, 0x0d, 0x0e,
+ 0x60, 0x3f, 0x3b, 0x6d, 0x0a, 0x08, 0x3f, 0x36, 0x00, 0x49, 0x3f, 0x0e, 0xf3, 0x6b, 0x36, 0x22,
+ 0x3b, 0x02, 0x4d, 0x0a, 0x53, 0x40, 0x73, 0x05, 0x10, 0x04, 0x19, 0x3e, 0x89, 0x2b, 0x1a, 0x2a,
+ 0xbc, 0x89, 0x28, 0x8b, 0x10, 0x08, 0x24, 0x21, 0x6b, 0x31, 0x5c, 0x6b, 0x36, 0x55, 0x1c, 0x5f,
+ 0x36, 0x55, 0x6b, 0x31, 0x5c, 0x2a, 0x21, 0x87, 0x44, 0x53, 0x08, 0x01, 0x02, 0x0b, 0x08, 0x53,
+ 0x07, 0x0d, 0x0e, 0x60, 0x10, 0x08, 0x19, 0x77, 0x0f, 0x82, 0x5f, 0xc5, 0x1c, 0x10, 0x03, 0x29,
+ 0x8f, 0x25, 0x77, 0x8b, 0x10, 0x03, 0x29, 0x8f, 0x25, 0x77, 0x8b, 0x87, 0x44, 0x1a, 0x0e, 0x06,
+ 0x10, 0x07, 0x19, 0x77, 0x1f, 0x44, 0x07, 0x50, 0x94, 0x38, 0x05, 0x50, 0xa4, 0x40, 0x7b, 0x0f,
+ 0x35, 0x5f, 0xa4, 0x6e, 0x07, 0x5f, 0x94, 0x6e, 0x07, 0x00, 0x27, 0x49, 0x07, 0x10, 0x03, 0x19,
+ 0x28, 0x76, 0x10, 0x0b, 0x18, 0xf8, 0x07, 0x37, 0x05, 0x52, 0x39, 0xd4, 0x60, 0x06, 0x0e, 0x60,
+ 0x06, 0x0c, 0x1e, 0x51, 0x51, 0xc5, 0x7c, 0x19, 0x7c, 0x10, 0x08, 0x18, 0xf8, 0x82, 0x5f, 0xc5,
+ 0x1c, 0x10, 0x08, 0x24, 0x08, 0x8c, 0x31, 0x5c, 0x08, 0x3f, 0x36, 0x00, 0x44, 0x3f, 0xc5, 0x6b,
+ 0x36, 0x00, 0x44, 0x3f, 0x31, 0x5c, 0x08, 0x53, 0x09, 0x0e, 0x58, 0x10, 0x08, 0x30, 0x7f, 0x52,
+ 0x58, 0x53, 0x28, 0x89, 0x08, 0x24, 0x81, 0x21, 0x77, 0x0f, 0x10, 0x05, 0x18, 0xf8, 0x07, 0x0d,
+ 0xc5, 0xa4, 0x64, 0x22, 0x67, 0x1a, 0x8b, 0x10, 0x07, 0x30, 0x32, 0x0f, 0x75, 0x53, 0x0e, 0x05,
+ 0x55, 0x09, 0x53, 0x75, 0x78, 0x4d, 0x0a, 0x0e, 0x39, 0x1a, 0x38, 0x53, 0x64, 0x00, 0x72, 0x53,
+ 0x3e, 0x0f, 0x61, 0x10, 0x05, 0x1e, 0x83, 0x2a, 0xbc, 0x89, 0x8b, 0x4c, 0x1a, 0x52, 0x0f, 0x10,
+ 0x08, 0x18, 0xc8, 0x8a, 0x1f, 0x8a, 0x51, 0x01, 0x6b, 0x0c, 0x07, 0x01, 0x2f, 0x6b, 0x71, 0x0f,
+ 0x75, 0x0f, 0x10, 0x06, 0x18, 0x44, 0x1e, 0x2b, 0x23, 0x61, 0x7e, 0x47, 0x19, 0x4b, 0x3f, 0x74,
+ 0x48, 0x65, 0x53, 0x6a, 0x07, 0x8e, 0x88, 0x22, 0x0d, 0x0d, 0x10, 0x09, 0x00, 0x18, 0x36, 0x02,
+ 0x67, 0x00, 0x6e, 0x1e, 0x09, 0x06, 0x00, 0x06, 0x0f, 0x06, 0x00, 0x06, 0x09, 0x1e, 0x5d, 0x00,
+ 0x0b, 0x31, 0x00, 0x54, 0x1e, 0x49, 0x74, 0x74, 0x49, 0x23, 0x0b, 0x3b, 0x00, 0x0b, 0x3b, 0x23,
+ 0x06, 0x33, 0x00, 0x52, 0x06, 0x5f, 0x55, 0x0f, 0x03, 0x4d, 0x67, 0x10, 0x06, 0x00, 0x18, 0x68,
+ 0x19, 0x6c, 0x3f, 0x44, 0x19, 0x62, 0x53, 0x6a, 0x63, 0x45, 0x3e, 0x0d, 0x78, 0x0b, 0x06, 0x06,
+ 0x09, 0x53, 0x72, 0x19, 0x4f, 0x3f, 0x69, 0x19, 0x6c, 0x10, 0x06, 0x18, 0x01, 0x65, 0x50, 0x65,
+ 0x23, 0x5a, 0x00, 0x6c, 0x3f, 0x6e, 0x19, 0x09, 0x05, 0x53, 0x0a, 0x05, 0x00, 0x0d, 0x01, 0x3f,
+ 0x4d, 0x4f, 0x09, 0x22, 0x0b, 0x68, 0x22, 0x3e, 0x1a, 0x06, 0x08, 0x22, 0x49, 0x78, 0x66, 0x06,
+ 0x10, 0x05, 0x18, 0xe2, 0x87, 0x06, 0x09, 0x45, 0x4d, 0x0b, 0x45, 0x55, 0x62, 0x22, 0x0b, 0x03,
+ 0x22, 0x09, 0x46, 0x26, 0x10, 0x08, 0x19, 0x25, 0x40, 0x89, 0x0e, 0x04, 0x83, 0x87, 0x3e, 0x23,
+ 0xb4, 0x46, 0x3e, 0x2e, 0x28, 0x0e, 0x03, 0x1a, 0x40, 0x0f, 0x10, 0x04, 0x25, 0x77, 0x76, 0x8f,
+ 0x08, 0x29, 0x5b, 0x46, 0x38, 0x2e, 0x28, 0x0d, 0x05, 0x1a, 0x06, 0x0f, 0x89, 0x0d, 0x05, 0x83,
+ 0x87, 0x38, 0x22, 0x5b, 0x06, 0x10, 0x0a, 0x4e, 0x41, 0x6f, 0x5e, 0x02, 0x0b, 0x5f, 0x09, 0x6d,
+ 0x05, 0x70, 0x0c, 0x05, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans12_aa_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000d, 0x0015, 0x0039, 0x005e, 0x008a, 0x00b7,
+ 0x00bb, 0x00d2, 0x00ec, 0x0104, 0x010d, 0x0112, 0x0117, 0x011c,
+ 0x0133, 0x0152, 0x015a, 0x0175, 0x0196, 0x01ad, 0x01c7, 0x01f1,
+ 0x0208, 0x022d, 0x0255, 0x0259, 0x025d, 0x027d, 0x0285, 0x029f,
+ 0x02b5, 0x02fa, 0x031e, 0x0339, 0x0356, 0x0376, 0x0380, 0x0389,
+ 0x03ac, 0x03b8, 0x03bd, 0x03ca, 0x03ef, 0x03f4, 0x041d, 0x043e,
+ 0x044f, 0x045f, 0x0474, 0x0488, 0x04ae, 0x04b4, 0x04cc, 0x04f3,
+ 0x0534, 0x0560, 0x057b, 0x0593, 0x059a, 0x05b1, 0x05b9, 0x05cc,
+ 0x05d3, 0x05d8, 0x05f8, 0x05ff, 0x0613, 0x061b, 0x0639, 0x0645,
+ 0x0665, 0x066e, 0x0675, 0x0681, 0x069e, 0x06a3, 0x06ba, 0x06c2,
+ 0x06dc, 0x06e4, 0x06eb, 0x06f8, 0x0714, 0x0720, 0x0733, 0x074b,
+ 0x077c, 0x079a, 0x07c1, 0x07d5, 0x07eb, 0x07f0, 0x0806,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans12_aa_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans12_aa_glyph_offsets_0, mf_rlefont_DejaVuSans12_aa_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans12_aa = {
+ {
+ "DejaVu Sans Book 12",
+ "DejaVuSans12_aa",
+ 13, /* width */
+ 13, /* height */
+ 3, /* min x advance */
+ 13, /* max x advance */
+ 1, /* baseline x */
+ 10, /* baseline y */
+ 14, /* line height */
+ 0, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans12_aa_dictionary_data,
+ mf_rlefont_DejaVuSans12_aa_dictionary_offsets,
+ 94, /* rle dict count */
+ 121, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans12_aa_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans12_aa_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans12_aa
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans12_aa_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans12_aa. */
+
diff --git a/src/gdisp/fonts/DejaVuSans16.c b/src/gdisp/fonts/DejaVuSans16.c
new file mode 100644
index 00000000..375ec048
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans16.c
@@ -0,0 +1,179 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans16. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans16_dictionary_data[247] = {
+ 0x0f, 0x15, 0x83, 0x0a, 0x41, 0x2f, 0x06, 0x0a, 0x80, 0x01, 0x0b, 0x83, 0x01, 0x3d, 0x05, 0x80,
+ 0x09, 0x80, 0x06, 0x80, 0x09, 0x80, 0x06, 0x80, 0x09, 0x80, 0x01, 0x05, 0x80, 0x03, 0x0a, 0x81,
+ 0x0e, 0x80, 0x0d, 0x03, 0x80, 0x01, 0x0f, 0x80, 0x10, 0x80, 0x10, 0x80, 0x01, 0x09, 0x80, 0x01,
+ 0x04, 0x07, 0x80, 0x07, 0x80, 0x08, 0x80, 0x0b, 0x08, 0x80, 0x01, 0x0f, 0x80, 0x10, 0x80, 0x01,
+ 0x0d, 0x80, 0x01, 0x80, 0x03, 0x80, 0x07, 0x80, 0x01, 0x13, 0x02, 0x80, 0x06, 0x80, 0x01, 0x03,
+ 0x81, 0x01, 0x03, 0x84, 0x13, 0x87, 0x07, 0x81, 0x01, 0x80, 0x0c, 0x04, 0x80, 0x0a, 0x10, 0x14,
+ 0x04, 0x80, 0x01, 0x80, 0x01, 0x81, 0x01, 0x80, 0x01, 0x84, 0x82, 0x85, 0xa4, 0xb4, 0x26, 0xa4,
+ 0x26, 0x20, 0x21, 0x27, 0xf4, 0x2c, 0x1d, 0xc8, 0x1d, 0x00, 0x25, 0xb4, 0x22, 0x3f, 0xd4, 0x1d,
+ 0xf5, 0xac, 0x30, 0x31, 0x2d, 0x32, 0x22, 0xcf, 0x2b, 0x25, 0x00, 0x1d, 0xd4, 0x1d, 0x37, 0x29,
+ 0xd0, 0x2e, 0x28, 0x2e, 0x28, 0xf2, 0x29, 0x2f, 0x83, 0x1d, 0x3b, 0xa4, 0x26, 0x20, 0x21, 0x3c,
+ 0x1c, 0x22, 0x0f, 0x26, 0x21, 0x1c, 0x2c, 0x36, 0xfa, 0xc6, 0x1d, 0x36, 0xd4, 0xa4, 0x3a, 0x2a,
+ 0xf4, 0x8c, 0x20, 0x20, 0x31, 0x31, 0x2a, 0x29, 0x2a, 0x1f, 0x26, 0x3b, 0x25, 0xfe, 0x3a, 0xf4,
+ 0x29, 0x36, 0x0f, 0xa3, 0x1d, 0xc4, 0x74, 0x83, 0x1c, 0x32, 0x36, 0x95, 0x24, 0x23, 0x00, 0x29,
+ 0x31, 0xd0, 0xd8, 0x2a, 0xd5, 0x86, 0xa4, 0xa4, 0x1d, 0x37, 0x2d, 0x29, 0x2d, 0xd3, 0x22, 0x37,
+ 0x37, 0x31, 0x19, 0x1a, 0xc2, 0x29, 0x30, 0x2e, 0xb4, 0x26, 0xd4, 0x1c, 0x2d, 0xa4, 0x26, 0xc4,
+ 0xc0, 0xc4, 0x2d, 0x2d, 0x23, 0xfc, 0x36,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans16_dictionary_offsets[88] = {
+ 0x0000, 0x0001, 0x0002, 0x0004, 0x0006, 0x0007, 0x000a, 0x000d,
+ 0x000e, 0x001b, 0x001e, 0x0020, 0x0023, 0x0026, 0x002d, 0x0030,
+ 0x0031, 0x0037, 0x0038, 0x003b, 0x0040, 0x0042, 0x0046, 0x0049,
+ 0x004a, 0x004c, 0x004f, 0x0052, 0x0054, 0x0056, 0x0058, 0x005b,
+ 0x005e, 0x005f, 0x0060, 0x0063, 0x0065, 0x0066, 0x0069, 0x006a,
+ 0x006b, 0x0074, 0x0076, 0x0079, 0x007b, 0x007e, 0x0080, 0x0082,
+ 0x0085, 0x0088, 0x008a, 0x008c, 0x008f, 0x0091, 0x0095, 0x0097,
+ 0x009a, 0x009f, 0x00a2, 0x00a6, 0x00a8, 0x00a9, 0x00ac, 0x00af,
+ 0x00b7, 0x00b9, 0x00bb, 0x00bd, 0x00bf, 0x00c2, 0x00c5, 0x00cc,
+ 0x00cf, 0x00d1, 0x00d2, 0x00da, 0x00dd, 0x00e0, 0x00e2, 0x00e4,
+ 0x00e6, 0x00e8, 0x00ea, 0x00ed, 0x00f0, 0x00f1, 0x00f4, 0x00f7,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans16_glyph_data_0[1166] = {
+ 0x05, 0x00, 0x10, 0x06, 0x27, 0x43, 0x49, 0x18, 0x2f, 0x2b, 0x10, 0x06, 0x58, 0x55, 0x3d, 0x55,
+ 0x10, 0x0d, 0xf4, 0x19, 0x41, 0x8d, 0x42, 0xfa, 0x5e, 0x29, 0xdd, 0x5e, 0x29, 0xdd, 0x10, 0x0a,
+ 0x2f, 0x65, 0x2c, 0x1a, 0xfe, 0xa9, 0x1d, 0x55, 0xe0, 0x38, 0x8b, 0x4a, 0x36, 0xd6, 0x1d, 0xde,
+ 0x29, 0x3e, 0x6e, 0x10, 0x0f, 0x2f, 0xd2, 0x6a, 0x6a, 0xf4, 0x85, 0x8c, 0xb6, 0x2a, 0xa8, 0x22,
+ 0xed, 0x18, 0x76, 0x1d, 0xc6, 0x85, 0x32, 0x2d, 0x2a, 0xe8, 0x68, 0x24, 0x68, 0x74, 0x10, 0x0c,
+ 0x66, 0xfc, 0xa7, 0x4a, 0x5c, 0xfc, 0x8c, 0x53, 0xc6, 0xa5, 0x1c, 0x5b, 0x68, 0x3a, 0x86, 0x8c,
+ 0x69, 0x44, 0x30, 0x10, 0x03, 0x2f, 0x5a, 0x10, 0x06, 0x2f, 0xd0, 0x4c, 0x6e, 0x24, 0x49, 0x41,
+ 0x41, 0x38, 0x51, 0x10, 0x06, 0x2f, 0x51, 0x41, 0x41, 0x60, 0x49, 0x6e, 0x32, 0x4c, 0x10, 0x08,
+ 0xfc, 0x1c, 0x6e, 0x96, 0x86, 0x1c, 0x67, 0xa0, 0x29, 0x6f, 0x2c, 0x41, 0x10, 0x0d, 0x1f, 0x23,
+ 0x8c, 0x6e, 0xf3, 0xa3, 0x29, 0x5a, 0x10, 0x05, 0x1b, 0x25, 0x23, 0x10, 0x06, 0x18, 0x1f, 0x1f,
+ 0xe2, 0x10, 0x05, 0x1b, 0x2b, 0x10, 0x05, 0x1c, 0x41, 0x41, 0x25, 0x6e, 0xd4, 0x25, 0x27, 0x22,
+ 0x5c, 0x10, 0x0a, 0x66, 0x30, 0x37, 0xfe, 0x45, 0x20, 0x6b, 0x52, 0xfe, 0x37, 0x5b, 0x1e, 0x10,
+ 0x0a, 0x2f, 0xe0, 0x4c, 0x5a, 0x49, 0x00, 0x23, 0x83, 0x10, 0x0a, 0x2f, 0xa2, 0x29, 0xa7, 0x4a,
+ 0x65, 0x5c, 0x5f, 0x36, 0x5f, 0xfe, 0x38, 0x83, 0x10, 0x0a, 0x2f, 0x67, 0xe5, 0x90, 0x6e, 0xdc,
+ 0x1e, 0x41, 0x5a, 0x2a, 0x37, 0xc2, 0x10, 0x0a, 0x29, 0x4c, 0x53, 0x30, 0x55, 0xd5, 0x29, 0xa5,
+ 0x1c, 0xa4, 0x4b, 0x3c, 0x83, 0x6e, 0xd4, 0x10, 0x0a, 0x39, 0x5d, 0x5c, 0xd4, 0x18, 0x67, 0x5b,
+ 0x38, 0x5a, 0x2a, 0x37, 0xc2, 0x10, 0x0a, 0x39, 0xa0, 0x29, 0xa7, 0x1c, 0xa4, 0x2b, 0x64, 0x3b,
+ 0x20, 0x21, 0x1c, 0x5b, 0x1e, 0x10, 0x0a, 0x34, 0x41, 0x2b, 0x23, 0xec, 0x25, 0x6e, 0xec, 0x10,
+ 0x0a, 0x66, 0xfa, 0x69, 0x6b, 0xf5, 0x35, 0xb4, 0x1e, 0x22, 0x69, 0x6b, 0x52, 0x5b, 0x1e, 0x10,
+ 0x0a, 0x66, 0x30, 0x45, 0x45, 0x6b, 0x52, 0x3d, 0x48, 0x5c, 0xec, 0x4a, 0x90, 0x1c, 0x74, 0x10,
+ 0x05, 0x29, 0x1f, 0x41, 0x41, 0x2f, 0x1f, 0x65, 0x10, 0x05, 0x00, 0x29, 0x1f, 0x2b, 0x1c, 0x1f,
+ 0x43, 0x23, 0x10, 0x0d, 0x27, 0x1f, 0x5c, 0x4e, 0x3f, 0x29, 0x92, 0x4a, 0x41, 0x51, 0x0f, 0x18,
+ 0xa0, 0x41, 0x10, 0x0d, 0x39, 0x19, 0x1f, 0x33, 0xa3, 0x19, 0x34, 0x3c, 0x10, 0x0d, 0x00, 0x59,
+ 0x18, 0xd2, 0x41, 0x51, 0xf5, 0x5c, 0x4e, 0x4e, 0x3f, 0x2c, 0x10, 0x09, 0x2f, 0xa2, 0x4a, 0x8c,
+ 0x6e, 0x32, 0x4c, 0x4c, 0x6e, 0x1c, 0x2b, 0x10, 0x10, 0x38, 0x35, 0x1a, 0xf7, 0xb4, 0x2e, 0x35,
+ 0x21, 0xb3, 0x86, 0x97, 0x32, 0x2d, 0x47, 0x47, 0x47, 0x47, 0x8d, 0xb0, 0x21, 0x73, 0x1c, 0x86,
+ 0x4c, 0x44, 0x0f, 0x10, 0x0b, 0x39, 0x8c, 0x23, 0x98, 0x53, 0x63, 0x4a, 0x4b, 0x3f, 0x93, 0x28,
+ 0xc4, 0x68, 0x2a, 0x10, 0x0b, 0x4f, 0xfc, 0x32, 0x28, 0xfc, 0x21, 0x21, 0x32, 0x1c, 0x82, 0x87,
+ 0x21, 0x32, 0x28, 0x2e, 0x28, 0x00, 0x21, 0x1c, 0x83, 0x10, 0x0b, 0x19, 0x67, 0x0f, 0x69, 0xf4,
+ 0x4a, 0x49, 0x41, 0x60, 0xdc, 0x29, 0x3e, 0x10, 0x0c, 0x4f, 0x69, 0x31, 0x2e, 0x28, 0x4d, 0x28,
+ 0x27, 0x8a, 0x1c, 0x83, 0x10, 0x0a, 0x34, 0x26, 0x25, 0x18, 0x83, 0x85, 0x65, 0x25, 0xfc, 0x2c,
+ 0x83, 0x10, 0x09, 0x4f, 0x25, 0x18, 0x5d, 0x49, 0x10, 0x0c, 0x19, 0x82, 0x1d, 0xb4, 0x1c, 0x68,
+ 0x1c, 0x5a, 0x00, 0x7c, 0x2e, 0x28, 0x2a, 0x1c, 0x52, 0x82, 0x10, 0x0c, 0x2f, 0xe5, 0xa4, 0x4d,
+ 0xf4, 0x74, 0x83, 0x2e, 0x28, 0x4d, 0x10, 0x05, 0xc4, 0x2b, 0x49, 0x49, 0x10, 0x05, 0x39, 0x5a,
+ 0x49, 0x49, 0x4c, 0x10, 0x0a, 0x58, 0xa4, 0x26, 0x45, 0x24, 0x42, 0x36, 0xd2, 0x53, 0x30, 0x88,
+ 0x42, 0xec, 0x4a, 0x45, 0xa4, 0x10, 0x09, 0x58, 0x49, 0x49, 0x18, 0x83, 0x10, 0x0d, 0xf4, 0x41,
+ 0x85, 0x90, 0xb4, 0x35, 0x31, 0x46, 0x31, 0x46, 0x31, 0x46, 0x31, 0x2d, 0x47, 0x30, 0x6d, 0x6d,
+ 0x00, 0x21, 0x5b, 0x6b, 0xc5, 0xa4, 0x10, 0x0c, 0x2f, 0x87, 0x8c, 0xa4, 0x86, 0x68, 0xc5, 0x68,
+ 0x3d, 0x6a, 0x6a, 0xd4, 0x1c, 0x5b, 0x68, 0xd4, 0x68, 0xd4, 0x68, 0xf4, 0x98, 0x1c, 0x85, 0x8e,
+ 0xa4, 0x35, 0x10, 0x0d, 0x2f, 0x33, 0x4a, 0x3a, 0x57, 0x37, 0xc2, 0x10, 0x0a, 0x2f, 0x5d, 0x45,
+ 0x20, 0x37, 0x5d, 0x18, 0x5a, 0x10, 0x0d, 0x2f, 0x33, 0x4a, 0x3a, 0x57, 0x44, 0x60, 0x41, 0x10,
+ 0x0b, 0x2f, 0x5d, 0x45, 0x20, 0x37, 0x83, 0x1d, 0x45, 0x6b, 0xf5, 0x28, 0x2e, 0x10, 0x0a, 0x66,
+ 0xfe, 0xb5, 0x1d, 0x2b, 0x41, 0x51, 0x51, 0x38, 0x52, 0x3c, 0x44, 0x10, 0x09, 0x18, 0x7c, 0xa3,
+ 0x4a, 0x49, 0x49, 0x10, 0x0c, 0x58, 0x28, 0x4d, 0x4d, 0x2a, 0x21, 0x1c, 0x82, 0x10, 0x0b, 0xfc,
+ 0x38, 0x52, 0x0f, 0x28, 0x2e, 0x2a, 0x4b, 0x2d, 0x29, 0x63, 0x53, 0xd8, 0x5c, 0x10, 0x11, 0x58,
+ 0xc4, 0x85, 0x96, 0xa4, 0x31, 0x88, 0x8e, 0x88, 0x86, 0x89, 0x86, 0xa5, 0x5b, 0x3a, 0x98, 0x47,
+ 0x47, 0x68, 0x3b, 0x62, 0x10, 0x0b, 0x1c, 0x4c, 0x69, 0x37, 0x63, 0x29, 0x98, 0x23, 0x8c, 0x53,
+ 0x63, 0x1c, 0xa4, 0x6b, 0xfe, 0x10, 0x09, 0x38, 0x68, 0x2a, 0x37, 0x63, 0x29, 0xd8, 0x2b, 0x49,
+ 0x10, 0x0c, 0x34, 0xf7, 0x5c, 0x5f, 0x36, 0x5f, 0x36, 0x5f, 0x36, 0x74, 0x83, 0x10, 0x06, 0x2f,
+ 0x8b, 0x4a, 0x49, 0x49, 0x5c, 0x74, 0x10, 0x05, 0xfc, 0x41, 0x41, 0x5a, 0x43, 0x43, 0x41, 0x41,
+ 0x10, 0x06, 0x2f, 0xd2, 0x49, 0x49, 0x5c, 0x37, 0x74, 0x10, 0x0d, 0xfc, 0x19, 0x8a, 0x1e, 0x1c,
+ 0xa4, 0x45, 0xa4, 0x10, 0x08, 0xfc, 0x38, 0x1f, 0x1b, 0x34, 0x10, 0x08, 0xf0, 0x38, 0x51, 0x10,
+ 0x09, 0x1f, 0x1e, 0x4a, 0xd0, 0x29, 0x37, 0x82, 0x22, 0x45, 0x4b, 0x3c, 0x48, 0x10, 0x0a, 0x2f,
+ 0x5a, 0x64, 0x50, 0xfc, 0xb4, 0x37, 0xc1, 0x10, 0x09, 0x1f, 0x1e, 0x1c, 0xa4, 0x45, 0x18, 0x5a,
+ 0x41, 0x37, 0xc0, 0x10, 0x0a, 0x29, 0x25, 0x22, 0xf7, 0x40, 0x24, 0x48, 0x10, 0x09, 0x29, 0x1f,
+ 0xeb, 0x29, 0x2d, 0x4a, 0x4b, 0x83, 0x1c, 0x65, 0x41, 0x37, 0xc0, 0x10, 0x06, 0x39, 0x92, 0x4a,
+ 0x5c, 0x7c, 0x6e, 0x3a, 0x49, 0x10, 0x0a, 0x1f, 0x1e, 0x40, 0x24, 0x48, 0x29, 0x45, 0x24, 0x1e,
+ 0x10, 0x0a, 0x2f, 0x5a, 0x64, 0x3b, 0x20, 0x20, 0xa4, 0x10, 0x03, 0xc4, 0x6e, 0x19, 0x5a, 0x49,
+ 0x10, 0x03, 0xc4, 0x6e, 0x1c, 0x49, 0x49, 0x5c, 0xf0, 0x10, 0x09, 0x2f, 0x5a, 0x45, 0x24, 0x42,
+ 0x36, 0xd2, 0x2c, 0x88, 0x42, 0xec, 0x4a, 0xd4, 0x10, 0x03, 0x27, 0x2b, 0x49, 0x49, 0x10, 0x0f,
+ 0x59, 0x3f, 0x7d, 0xa4, 0xb5, 0xb5, 0x3a, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0xd4, 0xa4, 0x10,
+ 0x0a, 0x59, 0x64, 0x3b, 0x20, 0x20, 0xa4, 0x10, 0x0a, 0x1f, 0x1e, 0x1c, 0xa4, 0x37, 0x50, 0x1c,
+ 0x5b, 0x1e, 0x10, 0x0a, 0x59, 0x64, 0x50, 0xfc, 0xb4, 0x37, 0xc1, 0x4a, 0x2b, 0x10, 0x0a, 0x1f,
+ 0x1e, 0x40, 0x24, 0x48, 0x25, 0x10, 0x07, 0x59, 0xcb, 0x22, 0x2b, 0x49, 0x10, 0x09, 0x1f, 0x22,
+ 0x3f, 0x4a, 0x45, 0x18, 0x51, 0x87, 0x4c, 0x29, 0x4b, 0xc2, 0x10, 0x06, 0x00, 0x19, 0x6e, 0x33,
+ 0x2c, 0x43, 0x25, 0x18, 0xf2, 0x10, 0x0a, 0x59, 0x20, 0x20, 0x00, 0x45, 0x48, 0x10, 0x09, 0x00,
+ 0x1f, 0x28, 0x2e, 0x2a, 0x4b, 0x63, 0x53, 0xe0, 0x5c, 0x10, 0x0d, 0x1f, 0x2a, 0x56, 0xf4, 0x86,
+ 0x86, 0x2d, 0x2d, 0x31, 0x98, 0x47, 0x68, 0x3b, 0x62, 0x10, 0x0a, 0xfc, 0x1f, 0x35, 0xb4, 0x1d,
+ 0x24, 0x4a, 0x55, 0x00, 0x8a, 0x4a, 0x55, 0xa5, 0x22, 0xb4, 0x10, 0x09, 0x1c, 0x1f, 0x68, 0x2a,
+ 0x4b, 0xfe, 0x37, 0x63, 0x53, 0x00, 0x8e, 0x4c, 0x6e, 0xf2, 0x10, 0x09, 0xfc, 0x1f, 0x35, 0xa3,
+ 0x5c, 0x5f, 0x36, 0x5f, 0xfe, 0x38, 0x83, 0x10, 0x0a, 0x00, 0x19, 0x8a, 0x4a, 0x49, 0x4c, 0x43,
+ 0x25, 0x1c, 0x22, 0x10, 0x05, 0x00, 0x58, 0x49, 0x49, 0x49, 0x10, 0x0a, 0x38, 0xb4, 0x60, 0x49,
+ 0x18, 0x8a, 0x4a, 0x49, 0x4c, 0x10, 0x0d, 0x00, 0x1f, 0x1f, 0x93, 0x68, 0x7c, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans16_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000b, 0x0011, 0x001f, 0x0034, 0x004f, 0x0064,
+ 0x0068, 0x0074, 0x007f, 0x008d, 0x0097, 0x009c, 0x00a2, 0x00a6,
+ 0x00b2, 0x00c0, 0x00ca, 0x00d9, 0x00e7, 0x00f8, 0x0106, 0x0116,
+ 0x0120, 0x0130, 0x0140, 0x0149, 0x0153, 0x0163, 0x016d, 0x017b,
+ 0x0188, 0x01a4, 0x01b4, 0x01ca, 0x01d8, 0x01e5, 0x01f2, 0x01f9,
+ 0x020b, 0x0217, 0x021d, 0x0224, 0x0236, 0x023d, 0x0257, 0x0273,
+ 0x027c, 0x0286, 0x0290, 0x029e, 0x02ac, 0x02b4, 0x02be, 0x02ce,
+ 0x02e5, 0x02f6, 0x0301, 0x030e, 0x0317, 0x0321, 0x032a, 0x0334,
+ 0x033b, 0x0340, 0x034e, 0x0358, 0x0364, 0x036d, 0x037c, 0x0386,
+ 0x0391, 0x039a, 0x03a1, 0x03aa, 0x03b9, 0x03bf, 0x03d0, 0x03d8,
+ 0x03e3, 0x03ee, 0x03f6, 0x03fd, 0x040b, 0x0416, 0x041e, 0x042a,
+ 0x043a, 0x044b, 0x045b, 0x0468, 0x0474, 0x047b, 0x0486,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans16_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans16_glyph_offsets_0, mf_rlefont_DejaVuSans16_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans16 = {
+ {
+ "DejaVu Sans Book 16",
+ "DejaVuSans16",
+ 17, /* width */
+ 17, /* height */
+ 3, /* min x advance */
+ 17, /* max x advance */
+ 1, /* baseline x */
+ 13, /* baseline y */
+ 19, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans16_dictionary_data,
+ mf_rlefont_DejaVuSans16_dictionary_offsets,
+ 40, /* rle dict count */
+ 87, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans16_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans16_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans16
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans16_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans16. */
+
diff --git a/src/gdisp/fonts/DejaVuSans16_aa.c b/src/gdisp/fonts/DejaVuSans16_aa.c
new file mode 100644
index 00000000..adcf9a37
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans16_aa.c
@@ -0,0 +1,303 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans16_aa. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans16_aa_dictionary_data[425] = {
+ 0x02, 0x07, 0x05, 0x16, 0x0a, 0x80, 0x02, 0x09, 0x04, 0x11, 0x10, 0x0a, 0x08, 0x01, 0x80, 0x04,
+ 0x80, 0x08, 0x80, 0x40, 0x08, 0x86, 0x14, 0x80, 0x01, 0x80, 0x11, 0x80, 0x11, 0x80, 0xc1, 0x80,
+ 0xc3, 0xcb, 0xde, 0x88, 0x85, 0x80, 0x0e, 0x01, 0xc1, 0x07, 0xc7, 0xc9, 0x07, 0x80, 0x03, 0xca,
+ 0xc7, 0xcc, 0xc4, 0x01, 0xc7, 0xc8, 0xcb, 0xc4, 0xcd, 0xc8, 0xce, 0xc2, 0xcd, 0xc2, 0xca, 0xc6,
+ 0xc3, 0xca, 0xc5, 0xcc, 0xc7, 0xca, 0xcc, 0xc1, 0xca, 0xc2, 0xce, 0xc5, 0x81, 0xc7, 0xcd, 0xc9,
+ 0xc5, 0x02, 0x80, 0xd1, 0xc6, 0xc8, 0xca, 0xc5, 0xcd, 0x0c, 0x80, 0xcd, 0xc2, 0x80, 0xce, 0x80,
+ 0xc6, 0xcd, 0xc9, 0xcd, 0x80, 0xc2, 0x82, 0xcb, 0xc6, 0xc3, 0xcd, 0xc4, 0xca, 0xce, 0x0f, 0xce,
+ 0xc3, 0xcc, 0xc5, 0x01, 0xc6, 0xca, 0x80, 0x02, 0xc1, 0xcd, 0x0e, 0xc4, 0xcc, 0xcc, 0xc3, 0x01,
+ 0xc7, 0x80, 0x80, 0xc1, 0xc8, 0xc9, 0x80, 0xce, 0xc6, 0xcc, 0x80, 0x11, 0x80, 0xca, 0xc4, 0x80,
+ 0xc7, 0xc2, 0xce, 0x01, 0xc2, 0xce, 0xc6, 0xc2, 0xcd, 0xc4, 0xcb, 0x28, 0x15, 0xd1, 0xc9, 0xc7,
+ 0xcc, 0xc7, 0x14, 0x80, 0xd8, 0xc9, 0xca, 0xcd, 0xc3, 0xcd, 0xc4, 0xc6, 0x80, 0xc6, 0xc1, 0xc2,
+ 0xcc, 0xc6, 0xc7, 0x01, 0xc7, 0xc6, 0xc9, 0x03, 0xc8, 0xcd, 0xce, 0xc1, 0xc5, 0xcb, 0xde, 0xca,
+ 0xc8, 0xcb, 0xc5, 0x0b, 0xc6, 0xcb, 0xce, 0xcb, 0x0d, 0xc3, 0xcc, 0xc7, 0xcc, 0xc4, 0xcd, 0x05,
+ 0x80, 0xc1, 0xce, 0x80, 0x0a, 0x2a, 0x1f, 0x2a, 0x1e, 0x87, 0x1d, 0x26, 0x44, 0x38, 0x19, 0x6c,
+ 0x31, 0x71, 0x19, 0x51, 0x18, 0x86, 0x22, 0x87, 0x18, 0x86, 0x22, 0x87, 0x19, 0x71, 0x19, 0x51,
+ 0x19, 0x6c, 0x25, 0x25, 0x25, 0x25, 0x23, 0x1c, 0x1e, 0x88, 0x1b, 0x3b, 0x0e, 0x5f, 0x0a, 0x03,
+ 0x21, 0x05, 0x0e, 0x07, 0x02, 0x65, 0x06, 0x40, 0x19, 0x65, 0x54, 0x1a, 0x7f, 0x09, 0x1d, 0x25,
+ 0x1f, 0x2a, 0x01, 0x7a, 0x00, 0x09, 0x01, 0x88, 0x64, 0x07, 0x6b, 0x3d, 0x88, 0x33, 0x1e, 0x08,
+ 0x88, 0x38, 0x78, 0x65, 0x88, 0xc5, 0x30, 0x88, 0x38, 0x78, 0x65, 0x88, 0x33, 0x1e, 0x5c, 0x1d,
+ 0x65, 0x66, 0x6b, 0x56, 0x0f, 0x7f, 0x2c, 0x09, 0x01, 0x57, 0x00, 0xc8, 0x05, 0x18, 0x25, 0x08,
+ 0x1e, 0x5a, 0x21, 0x4e, 0x1e, 0x87, 0x1c, 0x24, 0x1c, 0x24, 0x1c, 0x24, 0x1c, 0x24, 0x1c, 0x24,
+ 0x26, 0x6e, 0x1f, 0x2a, 0x86, 0x86, 0x86, 0x00, 0x42, 0x49, 0x06, 0x78, 0x25, 0x09, 0x08, 0x02,
+ 0x01, 0x85, 0x1f, 0x61, 0x78, 0x09, 0x0e, 0x81, 0x03, 0x78, 0x25, 0x33, 0x6b, 0x07, 0x38, 0x21,
+ 0x63, 0x1e, 0x3d, 0x21, 0x4e, 0x1e, 0x64, 0x21, 0xc5, 0x30, 0x88, 0x4e, 0x1e, 0x64, 0x21, 0x63,
+ 0x1e, 0x3d, 0x18, 0x25, 0x3a, 0x45, 0x38, 0x21, 0x5d, 0x09, 0x0e, 0x81, 0x03, 0x7f, 0x87, 0x20,
+ 0x1d, 0x25, 0x20, 0x1c, 0x78, 0x85, 0x59, 0x30, 0x19, 0xc8, 0x1f, 0xbc, 0x5f, 0x75, 0x00, 0x1c,
+ 0x30, 0x47, 0x05, 0x66, 0x02, 0x65, 0x06, 0x02, 0x00,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans16_aa_dictionary_offsets[140] = {
+ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0007, 0x0008, 0x0009,
+ 0x000a, 0x000b, 0x000c, 0x000d, 0x000f, 0x0011, 0x0013, 0x0015,
+ 0x0016, 0x0017, 0x0019, 0x001e, 0x0020, 0x0023, 0x0024, 0x0025,
+ 0x0027, 0x0029, 0x002d, 0x002f, 0x0031, 0x0034, 0x0036, 0x0038,
+ 0x003a, 0x003c, 0x003e, 0x0040, 0x0042, 0x0044, 0x0046, 0x0048,
+ 0x004a, 0x004c, 0x004d, 0x004f, 0x0051, 0x0053, 0x0055, 0x0057,
+ 0x0059, 0x005a, 0x005c, 0x005e, 0x0060, 0x0062, 0x0064, 0x0066,
+ 0x0067, 0x0069, 0x006b, 0x006e, 0x006f, 0x0071, 0x0074, 0x0076,
+ 0x0078, 0x007a, 0x007b, 0x007d, 0x0080, 0x0082, 0x0084, 0x0086,
+ 0x0088, 0x008a, 0x008d, 0x008f, 0x0091, 0x0093, 0x0095, 0x0097,
+ 0x0099, 0x009b, 0x009c, 0x009d, 0x009e, 0x00a0, 0x00a2, 0x00a4,
+ 0x00a5, 0x00a7, 0x00a9, 0x00ab, 0x00ae, 0x00b0, 0x00b2, 0x00b5,
+ 0x00b7, 0x00b8, 0x00ba, 0x00bc, 0x00be, 0x00bf, 0x00c1, 0x00c3,
+ 0x00c4, 0x00c6, 0x00c8, 0x00c9, 0x00cb, 0x00cd, 0x00cf, 0x00d1,
+ 0x00d3, 0x00d5, 0x00d8, 0x00db, 0x00dd, 0x00f2, 0x00f6, 0x00fa,
+ 0x010c, 0x010e, 0x0112, 0x0115, 0x013a, 0x013c, 0x0151, 0x0154,
+ 0x0157, 0x0162, 0x0165, 0x018e, 0x0190, 0x0193, 0x0196, 0x0198,
+ 0x019a, 0x01a2, 0x01a7, 0x01a9,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans16_aa_glyph_data_0[2853] = {
+ 0x05, 0x00, 0x10, 0x06, 0x6a, 0x89, 0x1f, 0x0e, 0x1f, 0x0d, 0x82, 0x69, 0x61, 0x10, 0x06, 0x28,
+ 0xed, 0x48, 0xa8, 0x48, 0xa8, 0x48, 0xa8, 0x10, 0x0d, 0x18, 0x69, 0x70, 0x00, 0x2b, 0x03, 0x48,
+ 0x0d, 0x06, 0x00, 0x05, 0x0e, 0x48, 0x4a, 0xa2, 0x70, 0x22, 0x65, 0x2d, 0x88, 0x0a, 0x09, 0x65,
+ 0x4e, 0x48, 0x40, 0x00, 0x05, 0x0e, 0x48, 0x4a, 0xa2, 0x08, 0x0b, 0x21, 0x2d, 0x5d, 0x1d, 0x0a,
+ 0x09, 0x65, 0x4e, 0x48, 0x40, 0x00, 0x4c, 0x48, 0x03, 0x5d, 0x00, 0x0a, 0x09, 0x10, 0x0a, 0x19,
+ 0x99, 0x21, 0x30, 0x4d, 0x5f, 0x62, 0x7f, 0x0a, 0x3f, 0x5d, 0x7b, 0x7f, 0x7a, 0x00, 0x2f, 0x71,
+ 0x00, 0x2f, 0x05, 0x0e, 0x08, 0x4e, 0x82, 0x65, 0x07, 0x49, 0x5b, 0x21, 0xcc, 0x60, 0x7f, 0xcc,
+ 0x87, 0x7f, 0x36, 0x01, 0x4e, 0x70, 0x7f, 0x52, 0x49, 0x09, 0x01, 0x59, 0x61, 0x10, 0x0f, 0x28,
+ 0x02, 0x0b, 0x81, 0x02, 0x1e, 0x0b, 0x07, 0x19, 0x7d, 0x01, 0x46, 0x78, 0x3c, 0x22, 0x7a, 0x00,
+ 0x87, 0x00, 0x30, 0x72, 0x22, 0x7a, 0x00, 0x87, 0x18, 0x5e, 0x1d, 0x7d, 0x01, 0x46, 0x00, 0x03,
+ 0x7a, 0x22, 0x65, 0x0b, 0x81, 0xa2, 0x75, 0x53, 0x60, 0x65, 0x0b, 0x81, 0x02, 0x22, 0x30, 0x54,
+ 0x00, 0x7d, 0x01, 0x46, 0x1d, 0x09, 0x08, 0x18, 0x7a, 0x00, 0x87, 0x22, 0x51, 0x01, 0x18, 0x7a,
+ 0x00, 0x87, 0x22, 0x55, 0x18, 0x7d, 0x01, 0x46, 0x19, 0x07, 0x0b, 0x78, 0x65, 0x0b, 0x81, 0x02,
+ 0x10, 0x0c, 0x1b, 0x79, 0x0f, 0x55, 0x90, 0x3f, 0x01, 0x68, 0x48, 0x7a, 0x20, 0x71, 0x20, 0x06,
+ 0x3e, 0x53, 0x7d, 0x0b, 0x01, 0x82, 0x6f, 0x00, 0x83, 0x02, 0x18, 0x87, 0x22, 0x39, 0x18, 0x03,
+ 0x72, 0x00, 0x67, 0x22, 0x5d, 0x78, 0x03, 0x40, 0x3d, 0x22, 0x55, 0x78, 0x03, 0x0e, 0x38, 0x22,
+ 0x04, 0x66, 0x01, 0x18, 0x3c, 0x63, 0x1d, 0x2c, 0x0d, 0x0a, 0x05, 0x67, 0x07, 0x10, 0x03, 0x96,
+ 0x10, 0x06, 0x6a, 0x4a, 0x09, 0x53, 0x4d, 0x01, 0x59, 0x2b, 0x04, 0x53, 0x07, 0x0b, 0x20, 0x3a,
+ 0x20, 0x39, 0x20, 0x7a, 0x20, 0x7a, 0x20, 0x39, 0x20, 0x3a, 0x20, 0x80, 0x20, 0x2b, 0x04, 0x1a,
+ 0x90, 0x3e, 0x53, 0x4a, 0x09, 0x10, 0x06, 0x1d, 0x90, 0x4e, 0x53, 0x58, 0x09, 0x20, 0x04, 0x5d,
+ 0x20, 0x75, 0x20, 0x56, 0x20, 0x67, 0x20, 0x9b, 0x9b, 0x67, 0x20, 0x56, 0x20, 0x75, 0x53, 0x04,
+ 0x5d, 0x59, 0x58, 0x09, 0x1e, 0x90, 0x4e, 0x10, 0x08, 0x78, 0x6e, 0x1f, 0x2f, 0x3a, 0xf6, 0x56,
+ 0x48, 0x80, 0x0f, 0x50, 0x82, 0x80, 0x0f, 0x50, 0x48, 0x3a, 0xf6, 0x56, 0x59, 0x61, 0x10, 0x0d,
+ 0x1b, 0x69, 0x91, 0x82, 0x2d, 0x82, 0x61, 0x99, 0x10, 0x05, 0x69, 0x26, 0x26, 0x9c, 0x9b, 0x77,
+ 0x20, 0x5b, 0x10, 0x06, 0x26, 0x26, 0xc0, 0x10, 0x05, 0x69, 0x26, 0x26, 0x99, 0x10, 0x05, 0x1b,
+ 0x51, 0x20, 0x35, 0x20, 0x34, 0x59, 0x64, 0x20, 0x77, 0x20, 0x7e, 0x9e, 0x7a, 0x53, 0x7b, 0x1a,
+ 0x90, 0x06, 0x20, 0x38, 0x53, 0x5a, 0x20, 0x6f, 0x20, 0x71, 0x10, 0x0a, 0x28, 0x65, 0x0a, 0x7c,
+ 0x3f, 0x7f, 0x58, 0x07, 0x6b, 0x42, 0x01, 0x21, 0x3d, 0x1e, 0x3a, 0x21, 0x36, 0x1e, 0x68, 0x21,
+ 0x7a, 0x8a, 0x23, 0x1a, 0x8e, 0x7a, 0x8a, 0x00, 0x36, 0x1e, 0x68, 0x21, 0x3d, 0x1e, 0x33, 0x21,
+ 0x58, 0x07, 0x6b, 0x42, 0x01, 0x21, 0x65, 0x0a, 0x7c, 0x3f, 0x10, 0x0a, 0x6a, 0x03, 0x09, 0x0e,
+ 0x2f, 0x37, 0x03, 0x89, 0x91, 0x59, 0x27, 0x10, 0x0a, 0x28, 0x52, 0x0e, 0x55, 0x78, 0x25, 0x0b,
+ 0x03, 0x01, 0x03, 0x75, 0x7f, 0x08, 0x1e, 0x51, 0x20, 0x2b, 0x20, 0x3c, 0x9e, 0x72, 0x82, 0x30,
+ 0x36, 0x82, 0x65, 0x34, 0x48, 0x65, 0x34, 0x48, 0x30, 0x34, 0x59, 0x55, 0x53, 0x2e, 0x5d, 0x10,
+ 0x0a, 0x28, 0x03, 0x4d, 0x5f, 0x7e, 0x7f, 0x75, 0x02, 0x30, 0x5a, 0x08, 0x20, 0x64, 0x20, 0x64,
+ 0x82, 0x30, 0x5a, 0x08, 0x21, 0xc0, 0x0b, 0x9e, 0x47, 0x07, 0x20, 0x85, 0x20, 0x2b, 0x20, 0x5a,
+ 0x21, 0x7e, 0x01, 0x65, 0x06, 0x72, 0x21, 0x52, 0x5f, 0x0a, 0x03, 0x10, 0x0a, 0x18, 0x1b, 0x58,
+ 0x0f, 0x53, 0x7e, 0x2f, 0x3d, 0x23, 0x82, 0x51, 0x01, 0x23, 0x7f, 0x30, 0x5b, 0x23, 0x48, 0x6c,
+ 0xec, 0x7f, 0x7b, 0x24, 0x7f, 0x39, 0x24, 0x7f, 0x2d, 0x53, 0x2a, 0x10, 0x0a, 0x6a, 0x2e, 0x48,
+ 0x2a, 0x1f, 0x5f, 0x5f, 0x3f, 0x48, 0x62, 0x65, 0x07, 0x54, 0x20, 0x80, 0x20, 0x9b, 0x9b, 0x80,
+ 0x21, 0x7e, 0x01, 0x65, 0x07, 0x54, 0x21, 0x52, 0x49, 0x3f, 0x10, 0x0a, 0x1b, 0x4c, 0x0f, 0x55,
+ 0x90, 0x09, 0xa2, 0x03, 0x0b, 0x7f, 0x68, 0x20, 0x62, 0x20, 0x0d, 0x7b, 0x0e, 0x81, 0x03, 0x78,
+ 0x25, 0x66, 0x45, 0x0e, 0x04, 0x18, 0x25, 0x06, 0x1e, 0x80, 0x21, 0x7a, 0x8a, 0x00, 0x0b, 0x01,
+ 0x8a, 0x00, 0x06, 0x06, 0x1e, 0x80, 0x7f, 0x75, 0x45, 0x0e, 0x04, 0x21, 0x30, 0x0a, 0x4b, 0x34,
+ 0x10, 0x0a, 0x6e, 0x27, 0x20, 0x3d, 0x20, 0x71, 0x53, 0x3c, 0x20, 0x7e, 0x53, 0x51, 0x20, 0x6c,
+ 0x9e, 0x7a, 0x22, 0x31, 0x1d, 0x39, 0x53, 0x7b, 0x20, 0x34, 0x10, 0x0a, 0x6a, 0x60, 0x7c, 0x75,
+ 0x90, 0x0c, 0x04, 0x6b, 0x5a, 0x09, 0x21, 0x38, 0x1e, 0x64, 0x21, 0x38, 0x1e, 0x64, 0x21, 0x84,
+ 0x04, 0x6b, 0x04, 0x6d, 0x7f, 0x0a, 0xf3, 0x0a, 0x7f, 0x42, 0x05, 0x6b, 0x47, 0x07, 0x21, 0x72,
+ 0x1e, 0x85, 0x21, 0x5d, 0x78, 0x30, 0x88, 0x72, 0x1e, 0x85, 0x21, 0x4c, 0x05, 0x6b, 0x47, 0x06,
+ 0x7f, 0x3c, 0x7c, 0x55, 0x10, 0x0a, 0x6a, 0x5a, 0x5f, 0x0a, 0x01, 0x7f, 0x04, 0x66, 0x6b, 0x60,
+ 0x7f, 0x50, 0x1e, 0x06, 0x06, 0x21, 0x7a, 0x78, 0x30, 0x0b, 0x21, 0x7a, 0x8a, 0x00, 0x50, 0x1e,
+ 0x06, 0x88, 0x04, 0x66, 0x45, 0x4b, 0x7f, 0x68, 0x7c, 0x0c, 0x47, 0x20, 0x04, 0x0a, 0x20, 0x62,
+ 0x7f, 0x0b, 0x03, 0x65, 0x09, 0x09, 0x48, 0x47, 0x49, 0x07, 0x10, 0x05, 0x6a, 0x26, 0x61, 0x26,
+ 0x99, 0x10, 0x05, 0x6a, 0x26, 0x61, 0x26, 0x9c, 0x9b, 0x77, 0x20, 0x5b, 0x10, 0x0d, 0x1d, 0x26,
+ 0x30, 0x60, 0x82, 0x52, 0x62, 0x1d, 0x65, 0x79, 0x75, 0x01, 0x21, 0x80, 0x0e, 0x08, 0x02, 0x1a,
+ 0x25, 0x09, 0x01, 0x53, 0x80, 0x0e, 0x08, 0x02, 0x59, 0x65, 0x79, 0x75, 0x01, 0x53, 0x52, 0x62,
+ 0x9e, 0x60, 0x10, 0x0d, 0x53, 0x1b, 0x8b, 0x2d, 0x69, 0x24, 0x2d, 0x10, 0x0d, 0x78, 0x26, 0x75,
+ 0x01, 0x53, 0x52, 0x62, 0x9e, 0x60, 0x37, 0x02, 0x59, 0x65, 0x08, 0x0e, 0x50, 0x9e, 0x09, 0x0f,
+ 0x48, 0x65, 0x08, 0x0e, 0x50, 0x1d, 0x30, 0x60, 0x37, 0x02, 0x21, 0x52, 0x62, 0x82, 0x75, 0x01,
+ 0x10, 0x09, 0x28, 0x7b, 0x7c, 0x09, 0x01, 0x48, 0x0c, 0x05, 0x6b, 0x70, 0x20, 0x9b, 0x42, 0x53,
+ 0x07, 0x63, 0x59, 0x06, 0x0f, 0x09, 0x53, 0x37, 0x20, 0x61, 0x82, 0x1b, 0x61, 0x10, 0x10, 0x22,
+ 0x9e, 0x84, 0x0e, 0x49, 0x09, 0x03, 0x1d, 0x04, 0x0e, 0x09, 0x04, 0x01, 0x65, 0x07, 0x37, 0x19,
+ 0x05, 0x54, 0x1a, 0x30, 0x0b, 0x09, 0x1e, 0x30, 0x54, 0x00, 0x5a, 0x5f, 0x36, 0x5d, 0x72, 0x1e,
+ 0x5e, 0x00, 0x04, 0x66, 0x45, 0x0e, 0x29, 0x56, 0x1e, 0x5b, 0x50, 0x1e, 0x06, 0x29, 0x87, 0x1e,
+ 0x7a, 0x00, 0x7a, 0x78, 0x30, 0x57, 0xc5, 0x7a, 0x00, 0x7a, 0x78, 0x30, 0x29, 0x67, 0x1e, 0x5b,
+ 0x50, 0x1e, 0x06, 0x29, 0x77, 0x1e, 0x5e, 0x00, 0x04, 0x66, 0x45, 0x4b, 0x03, 0x39, 0x78, 0x30,
+ 0x54, 0x00, 0x5a, 0x5f, 0x36, 0x0e, 0x0a, 0xa2, 0x1a, 0x05, 0x54, 0x20, 0x04, 0x0e, 0x09, 0x04,
+ 0x01, 0x30, 0x04, 0x09, 0x0b, 0x22, 0x30, 0x84, 0x0e, 0x5f, 0x0c, 0x08, 0x03, 0x10, 0x0b, 0x22,
+ 0x9e, 0x0c, 0x20, 0x07, 0x40, 0x53, 0x0d, 0x5a, 0x59, 0x05, 0x0a, 0x00, 0x0b, 0x03, 0x82, 0x36,
+ 0x00, 0x05, 0x0a, 0x48, 0x83, 0x78, 0x39, 0x90, 0x06, 0x78, 0x35, 0x21, 0x58, 0x1e, 0x92, 0x22,
+ 0x07, 0x2e, 0x63, 0x1d, 0x39, 0x1a, 0x67, 0x22, 0x05, 0x0a, 0x19, 0x7e, 0x19, 0x0c, 0x04, 0x19,
+ 0x5a, 0x10, 0x0b, 0x28, 0xf3, 0x5f, 0x75, 0x1d, 0xc6, 0x30, 0x5a, 0x09, 0x9f, 0x1e, 0x64, 0x9f,
+ 0x1e, 0x64, 0x22, 0xc6, 0x30, 0x5a, 0x09, 0x1d, 0x27, 0x3e, 0x22, 0xc6, 0x30, 0x04, 0x37, 0x9f,
+ 0x1e, 0x51, 0x9f, 0x1e, 0x2b, 0x9f, 0x1e, 0x51, 0x22, 0xc6, 0x30, 0x85, 0x07, 0x19, 0xc0, 0x5f,
+ 0x55, 0x10, 0x0b, 0x1b, 0x3b, 0x0e, 0x5f, 0x62, 0x21, 0x4c, 0x05, 0x6b, 0x3b, 0x0f, 0x1d, 0x51,
+ 0x01, 0x1a, 0x07, 0x1d, 0x09, 0x06, 0x20, 0x39, 0x20, 0x61, 0x1f, 0x39, 0x1a, 0x90, 0x06, 0x20,
+ 0x51, 0x01, 0x1a, 0x07, 0x21, 0x4c, 0x05, 0x6b, 0x3b, 0x0f, 0x7f, 0x3b, 0x0e, 0x5f, 0x62, 0x10,
+ 0x0c, 0x28, 0xf3, 0x81, 0x07, 0x02, 0x1c, 0x30, 0x03, 0x08, 0x40, 0x9f, 0x1e, 0x03, 0x54, 0x25,
+ 0x31, 0x23, 0x19, 0x67, 0x25, 0x22, 0x0e, 0x25, 0x19, 0x87, 0x25, 0x19, 0x67, 0x25, 0x31, 0xf6,
+ 0x1a, 0x03, 0x38, 0x1a, 0x94, 0x30, 0x03, 0x08, 0x40, 0x19, 0xc0, 0x81, 0x07, 0x02, 0x10, 0x0a,
+ 0x28, 0xe3, 0xcb, 0x25, 0x91, 0x2e, 0x88, 0x89, 0x27, 0x10, 0x09, 0x28, 0xe3, 0xc7, 0x25, 0x91,
+ 0xe3, 0x48, 0x89, 0x10, 0x0c, 0x6a, 0x65, 0x4d, 0x0f, 0x49, 0x09, 0x04, 0x1d, 0x47, 0x06, 0x02,
+ 0x30, 0x3c, 0x0f, 0x22, 0x67, 0xa2, 0x1a, 0x08, 0x22, 0x09, 0x06, 0x20, 0x39, 0x20, 0x61, 0x78,
+ 0xc0, 0x22, 0x39, 0x18, 0x86, 0x22, 0x6c, 0x18, 0x86, 0x22, 0x64, 0xa2, 0x86, 0x1d, 0x06, 0x0e,
+ 0x07, 0xa2, 0x74, 0x07, 0x88, 0x3b, 0x0d, 0x5f, 0x37, 0x03, 0x10, 0x0c, 0x6e, 0x25, 0x25, 0x8d,
+ 0x8d, 0x2d, 0x8d, 0x8d, 0x8d, 0x10, 0x05, 0x6a, 0x89, 0x1f, 0x89, 0x10, 0x05, 0x6a, 0x2a, 0x91,
+ 0x91, 0x9c, 0x64, 0x9e, 0x46, 0x19, 0x25, 0x0b, 0x02, 0x10, 0x0a, 0x6e, 0x1a, 0x51, 0x07, 0x1d,
+ 0xc5, 0x03, 0x40, 0x1d, 0xc6, 0x04, 0x71, 0x00, 0x1c, 0x05, 0x39, 0x1d, 0xcc, 0x07, 0x3e, 0x1a,
+ 0x25, 0x05, 0x3e, 0x59, 0x5d, 0x55, 0x1a, 0x25, 0x30, 0x55, 0x1d, 0xcc, 0x30, 0x75, 0x18, 0x1c,
+ 0x30, 0x75, 0x21, 0xc6, 0x30, 0x6d, 0x21, 0xc5, 0x30, 0x6d, 0x10, 0x09, 0x96, 0x91, 0x91, 0x2e,
+ 0x10, 0x0d, 0x6e, 0x0a, 0x19, 0x0a, 0x57, 0x86, 0x39, 0x1e, 0x65, 0x0c, 0x57, 0x86, 0x35, 0x1a,
+ 0x09, 0x06, 0x57, 0x86, 0x92, 0x18, 0x58, 0x00, 0xc5, 0xcc, 0x6c, 0x78, 0x35, 0x00, 0xc5, 0xcc,
+ 0x67, 0x78, 0x0d, 0xa2, 0xc5, 0x94, 0x7e, 0x00, 0x56, 0x18, 0xc5, 0x94, 0x5a, 0x00, 0x34, 0xf6,
+ 0x1a, 0xc6, 0x37, 0x0c, 0xcc, 0x1a, 0xc6, 0x73, 0x94, 0x86, 0x9f, 0x86, 0x9f, 0x10, 0x0c, 0x28,
+ 0x5f, 0xa2, 0x86, 0x25, 0x80, 0x00, 0x86, 0x1a, 0xcc, 0x50, 0x86, 0x1a, 0xcc, 0x67, 0x01, 0x24,
+ 0x1a, 0x94, 0x3d, 0x24, 0x19, 0xc6, 0x34, 0x44, 0x19, 0xc6, 0x51, 0x01, 0x44, 0x22, 0xc5, 0x6f,
+ 0x44, 0x25, 0x1a, 0x5b, 0x0f, 0x25, 0x1a, 0x83, 0x23, 0x1a, 0xcc, 0x1a, 0x08, 0x06, 0x0f, 0x25,
+ 0x1a, 0x30, 0x0c, 0x0f, 0x10, 0x0d, 0x8f, 0x03, 0x8c, 0x31, 0x02, 0x54, 0x1a, 0x03, 0x38, 0x22,
+ 0xa1, 0x40, 0x21, 0x3b, 0x0e, 0x5f, 0x0a, 0x03, 0x10, 0x0a, 0xa0, 0x06, 0x9d, 0x1c, 0x78, 0x2b,
+ 0x9d, 0x1c, 0x30, 0x47, 0x07, 0x19, 0xbc, 0x5f, 0x75, 0x78, 0x25, 0x91, 0x10, 0x0d, 0x8f, 0x03,
+ 0x8c, 0x31, 0x02, 0x54, 0x1a, 0x03, 0x0e, 0x04, 0x22, 0xa1, 0x0e, 0x08, 0x21, 0x3b, 0x0d, 0x4f,
+ 0x08, 0x20, 0x4c, 0x01, 0x20, 0x07, 0x3e, 0x10, 0x0b, 0xa0, 0x07, 0x1c, 0x78, 0x51, 0x1c, 0x78,
+ 0x2b, 0x9d, 0x1c, 0x30, 0x47, 0x06, 0x21, 0x2e, 0x0c, 0x00, 0x1c, 0x30, 0x05, 0x40, 0x1c, 0x78,
+ 0x47, 0x1c, 0x1e, 0x55, 0x1a, 0xcc, 0x1a, 0x47, 0x9f, 0x1a, 0x75, 0x10, 0x0a, 0x6a, 0x60, 0x7c,
+ 0x62, 0x7f, 0x84, 0x03, 0x01, 0x3b, 0x0f, 0x7f, 0x39, 0x1e, 0x08, 0x7f, 0x7a, 0x20, 0x0b, 0x07,
+ 0x20, 0x67, 0x0c, 0x08, 0x05, 0x02, 0x59, 0x04, 0x46, 0x81, 0x01, 0x20, 0x70, 0x20, 0x87, 0x21,
+ 0x09, 0x1a, 0x51, 0x18, 0x25, 0x0c, 0x05, 0x6b, 0x04, 0x6d, 0x21, 0x03, 0x4d, 0x5f, 0x75, 0x10,
+ 0x09, 0x18, 0x1f, 0x2d, 0x82, 0x2a, 0x91, 0x91, 0x10, 0x0c, 0x48, 0x8d, 0x8d, 0x8d, 0x8d, 0x22,
+ 0x0e, 0xa2, 0x1a, 0x64, 0x22, 0x33, 0x00, 0x1a, 0x3d, 0x19, 0x65, 0x37, 0xa2, 0x65, 0x08, 0x39,
+ 0x22, 0x65, 0x4d, 0x0f, 0x49, 0x09, 0x02, 0x10, 0x0b, 0x78, 0x9e, 0x7a, 0x19, 0x92, 0x1a, 0x6c,
+ 0x31, 0x51, 0x19, 0x71, 0x22, 0x7e, 0x1a, 0x7b, 0x1d, 0x68, 0x1a, 0x36, 0x21, 0x71, 0x78, 0x51,
+ 0x7f, 0x77, 0x78, 0x09, 0x06, 0x7f, 0x92, 0x92, 0x7f, 0x08, 0x76, 0x08, 0x82, 0x67, 0x01, 0x39,
+ 0x59, 0x0a, 0x0a, 0x0a, 0x53, 0x04, 0x0f, 0x04, 0x10, 0x11, 0x28, 0x0d, 0x1e, 0x65, 0x4e, 0x1a,
+ 0x7a, 0x18, 0x43, 0x1e, 0x06, 0x66, 0x1e, 0x7b, 0x78, 0x04, 0x0a, 0x1e, 0x09, 0x46, 0x1e, 0x0a,
+ 0x05, 0x1e, 0x0d, 0x01, 0x78, 0x0d, 0x67, 0x78, 0x92, 0x78, 0x08, 0x06, 0x00, 0x30, 0x0c, 0x00,
+ 0x0c, 0x02, 0x18, 0x77, 0x1a, 0x03, 0x0b, 0x18, 0x05, 0x08, 0x00, 0x08, 0x05, 0x18, 0x34, 0x1a,
+ 0x0c, 0xa2, 0x43, 0x00, 0x05, 0x09, 0x00, 0x67, 0x19, 0x07, 0x07, 0x00, 0x3e, 0x00, 0x58, 0x00,
+ 0x35, 0x19, 0x02, 0x3e, 0x0c, 0x78, 0x3e, 0x71, 0x22, 0x6d, 0x09, 0x78, 0x09, 0x08, 0x0c, 0x1d,
+ 0x07, 0x40, 0x78, 0x05, 0x63, 0x22, 0x30, 0x4e, 0x18, 0x65, 0x5d, 0x10, 0x0b, 0x28, 0x7d, 0x1a,
+ 0x46, 0x22, 0x30, 0x54, 0x78, 0x03, 0x7a, 0x21, 0x60, 0x78, 0x55, 0x7f, 0x0b, 0x76, 0x0b, 0x82,
+ 0x64, 0x04, 0x38, 0x59, 0x73, 0x53, 0x73, 0x59, 0x64, 0x04, 0x38, 0x82, 0x0b, 0x76, 0x0b, 0x48,
+ 0x60, 0x78, 0x75, 0x1d, 0x30, 0x38, 0x78, 0x03, 0x7a, 0x1d, 0x33, 0x1a, 0x3d, 0x10, 0x09, 0x18,
+ 0x1f, 0x33, 0x1a, 0x56, 0x22, 0x65, 0x38, 0x18, 0x65, 0x39, 0x21, 0x80, 0x78, 0x50, 0x48, 0x75,
+ 0x00, 0x80, 0x48, 0x65, 0x54, 0x38, 0x59, 0x07, 0x63, 0x20, 0x89, 0x10, 0x0c, 0x6e, 0x2d, 0x20,
+ 0x80, 0x53, 0x05, 0x3e, 0x59, 0x85, 0x01, 0x59, 0x04, 0x39, 0x59, 0x03, 0x39, 0x82, 0x65, 0x71,
+ 0x82, 0x65, 0x72, 0x82, 0x30, 0x55, 0x48, 0x30, 0x75, 0x53, 0x0b, 0x07, 0x22, 0x25, 0x2d, 0x10,
+ 0x06, 0x1f, 0xbc, 0x53, 0x89, 0x1f, 0x89, 0x59, 0xbc, 0x10, 0x05, 0x18, 0x1f, 0x71, 0x20, 0x6f,
+ 0x20, 0x5a, 0x1f, 0x38, 0x1a, 0x90, 0x06, 0x20, 0x7b, 0x20, 0x92, 0x53, 0x7e, 0x20, 0x77, 0x20,
+ 0x64, 0x1f, 0x34, 0x53, 0x35, 0x20, 0x51, 0x10, 0x06, 0x28, 0xf2, 0x91, 0x91, 0x91, 0x48, 0xbc,
+ 0x10, 0x0d, 0x18, 0x1b, 0x05, 0x41, 0x05, 0x82, 0x06, 0x0f, 0x09, 0x09, 0x0f, 0x06, 0x7f, 0x73,
+ 0x18, 0x73, 0x1d, 0x07, 0x0e, 0x04, 0x1e, 0x04, 0x0e, 0x07, 0x10, 0x08, 0x26, 0x26, 0x26, 0x26,
+ 0x23, 0x27, 0x10, 0x08, 0x18, 0x08, 0x38, 0x20, 0x0a, 0x0c, 0x1f, 0x0b, 0x09, 0x10, 0x09, 0x18,
+ 0x26, 0x65, 0x09, 0x0e, 0x37, 0x82, 0x0d, 0x06, 0x74, 0x7d, 0x20, 0x58, 0x48, 0x42, 0x0e, 0x4f,
+ 0x7f, 0x08, 0x0b, 0x03, 0x01, 0x44, 0x7f, 0x39, 0x78, 0x4a, 0x7f, 0x7a, 0x78, 0x08, 0x0f, 0x7f,
+ 0x0a, 0x0a, 0x6b, 0x3d, 0x88, 0x30, 0x0a, 0x7c, 0x09, 0x2b, 0x10, 0x0a, 0x96, 0x01, 0x9a, 0x10,
+ 0x09, 0x18, 0x26, 0x65, 0x09, 0x4b, 0x55, 0x21, 0x67, 0x07, 0xa2, 0x3b, 0x90, 0x08, 0x20, 0x38,
+ 0x20, 0x5d, 0x20, 0x38, 0x1a, 0x90, 0x08, 0x20, 0x67, 0x07, 0xa2, 0x3b, 0x7f, 0x65, 0x0a, 0x4b,
+ 0x55, 0x10, 0x0a, 0x1a, 0x1b, 0x2a, 0x7f, 0x2c, 0x93, 0x10, 0x09, 0x78, 0x26, 0x5a, 0x49, 0x06,
+ 0x7f, 0x65, 0x40, 0x01, 0x03, 0x72, 0x7f, 0x33, 0x78, 0x7b, 0x7f, 0x39, 0x78, 0x58, 0x7f, 0x27,
+ 0x7f, 0x7a, 0x20, 0x3a, 0x20, 0x03, 0x66, 0x6b, 0x68, 0x48, 0x2c, 0x36, 0x10, 0x06, 0x6a, 0x47,
+ 0x0f, 0x2f, 0x71, 0x20, 0x2f, 0xc0, 0x53, 0x89, 0x99, 0x10, 0x0a, 0x78, 0x26, 0x2c, 0x09, 0x2b,
+ 0x1d, 0x65, 0x66, 0x6b, 0x56, 0x88, 0x33, 0x1e, 0x07, 0x88, 0x38, 0x78, 0x65, 0x88, 0xc5, 0x30,
+ 0x88, 0x38, 0x78, 0x65, 0x88, 0x33, 0x1e, 0x5c, 0x1d, 0x65, 0x66, 0x6b, 0x56, 0x0f, 0x7f, 0x2c,
+ 0x09, 0x2b, 0x20, 0x5a, 0x7f, 0x62, 0x6b, 0x47, 0x06, 0x7f, 0x3c, 0x7c, 0x55, 0x10, 0x0a, 0x96,
+ 0x98, 0x95, 0x10, 0x03, 0x28, 0x61, 0x53, 0x6e, 0x91, 0x91, 0x10, 0x03, 0x28, 0x61, 0x53, 0x6e,
+ 0x91, 0x91, 0x1f, 0x0e, 0x20, 0x5a, 0x19, 0x25, 0x5b, 0x10, 0x09, 0x96, 0x1e, 0x03, 0x66, 0x1d,
+ 0xc6, 0x04, 0x72, 0x00, 0x1c, 0x60, 0x02, 0x1d, 0xcc, 0x3d, 0x01, 0x21, 0xcc, 0x7a, 0x7f, 0xcc,
+ 0x06, 0x39, 0x78, 0x1c, 0x04, 0x72, 0x7f, 0xc6, 0x51, 0x05, 0x7f, 0xc5, 0x67, 0x07, 0x10, 0x03,
+ 0x96, 0x91, 0x91, 0x10, 0x0f, 0x8b, 0x01, 0x09, 0x7c, 0x08, 0x30, 0x09, 0x7c, 0x09, 0x00, 0x86,
+ 0x09, 0x06, 0x74, 0x6d, 0x09, 0x06, 0x74, 0x75, 0x86, 0x06, 0x78, 0x03, 0x66, 0x78, 0x83, 0x1a,
+ 0x4e, 0x18, 0x30, 0x4e, 0x78, 0x87, 0x97, 0x97, 0x97, 0x97, 0x97, 0x10, 0x0a, 0x8b, 0x98, 0x95,
+ 0x10, 0x0a, 0x78, 0x26, 0x3c, 0x7c, 0x34, 0x21, 0x03, 0x40, 0x6b, 0x05, 0x54, 0x21, 0x3a, 0x1e,
+ 0x56, 0x21, 0x39, 0x1e, 0x67, 0x1c, 0x1e, 0x88, 0x39, 0x1e, 0x67, 0x21, 0x3a, 0x1e, 0x56, 0x21,
+ 0x03, 0x40, 0x6b, 0x05, 0x54, 0x7f, 0x3c, 0x7c, 0x55, 0x10, 0x0a, 0x8b, 0x01, 0x9a, 0x2a, 0x10,
+ 0x0a, 0x78, 0x26, 0x2c, 0x93, 0x53, 0x2a, 0x10, 0x07, 0x8b, 0x01, 0x09, 0x4b, 0x1a, 0x25, 0x43,
+ 0x01, 0x59, 0x63, 0x20, 0x4e, 0x22, 0x25, 0x91, 0x10, 0x09, 0x00, 0x26, 0x30, 0x79, 0x7c, 0x36,
+ 0x7f, 0x7d, 0x02, 0x30, 0x68, 0x7f, 0x7a, 0x20, 0x0c, 0x09, 0x02, 0x59, 0x65, 0x0a, 0x49, 0x43,
+ 0x53, 0x03, 0x60, 0x09, 0x20, 0x87, 0x7f, 0x7e, 0x02, 0x30, 0x08, 0x0b, 0x7f, 0x52, 0x0f, 0x37,
+ 0x01, 0x10, 0x06, 0x6a, 0x99, 0x7f, 0xc0, 0x2f, 0x89, 0x1f, 0x55, 0x53, 0x85, 0x41, 0x10, 0x0a,
+ 0x8b, 0x1a, 0x8e, 0x32, 0x94, 0x25, 0x1a, 0x8e, 0x7a, 0x78, 0x65, 0x88, 0x34, 0x78, 0x08, 0x88,
+ 0x05, 0x72, 0x74, 0x5e, 0x0f, 0x7f, 0x4c, 0x49, 0x07, 0x23, 0x10, 0x09, 0x26, 0x02, 0x0c, 0x19,
+ 0x34, 0x19, 0x3a, 0x1a, 0x60, 0x1d, 0x51, 0x1a, 0x72, 0x21, 0x0b, 0x07, 0x78, 0x84, 0x7f, 0x04,
+ 0x7a, 0x30, 0x40, 0x48, 0x6d, 0x00, 0x79, 0x82, 0x05, 0x38, 0x40, 0x59, 0x0d, 0x0e, 0x0d, 0x53,
+ 0x73, 0x10, 0x0d, 0x26, 0x51, 0x1e, 0x58, 0x1a, 0x71, 0x1e, 0x34, 0x18, 0x06, 0x40, 0x78, 0x5a,
+ 0x1a, 0x56, 0x78, 0x0c, 0x80, 0x78, 0x3a, 0x1a, 0x92, 0x83, 0x00, 0x0c, 0xa2, 0x92, 0x1a, 0x33,
+ 0x00, 0x08, 0x76, 0x76, 0x09, 0x19, 0x5a, 0x00, 0x0e, 0xa2, 0x67, 0x00, 0x5b, 0x19, 0x37, 0x0b,
+ 0x78, 0x0b, 0x08, 0x0c, 0x1d, 0x5c, 0x06, 0x78, 0x73, 0x22, 0x65, 0x7a, 0x78, 0x92, 0x10, 0x0a,
+ 0x18, 0x26, 0x7d, 0x1e, 0x46, 0x1d, 0x30, 0x71, 0x18, 0x03, 0x7a, 0x7f, 0x3c, 0x18, 0x55, 0x48,
+ 0x6c, 0x07, 0x0b, 0x82, 0x30, 0x0c, 0x39, 0x59, 0x43, 0x77, 0x82, 0x68, 0x18, 0x36, 0x21, 0x30,
+ 0x39, 0x18, 0x67, 0x01, 0x21, 0x7d, 0x1e, 0x46, 0x10, 0x09, 0x00, 0x26, 0x34, 0x1e, 0x51, 0x1d,
+ 0x7b, 0x1a, 0x6c, 0x21, 0x71, 0x78, 0x92, 0x1d, 0x07, 0x09, 0x78, 0x3d, 0x7f, 0x92, 0x00, 0x71,
+ 0x48, 0x6c, 0x00, 0x3c, 0x82, 0x51, 0x00, 0x7e, 0x59, 0x0b, 0x08, 0x0e, 0x53, 0x05, 0x0f, 0x08,
+ 0x9e, 0x4e, 0x82, 0x30, 0x5e, 0x59, 0x5f, 0x0a, 0x01, 0x10, 0x09, 0x8b, 0x2e, 0x20, 0x84, 0x53,
+ 0x05, 0x39, 0x59, 0x04, 0x38, 0x59, 0x03, 0x54, 0x59, 0x64, 0x04, 0x59, 0x67, 0x05, 0x53, 0x6d,
+ 0x20, 0x27, 0x10, 0x0a, 0x00, 0x1b, 0x47, 0x0f, 0x53, 0x0d, 0x05, 0x20, 0x61, 0x9c, 0x2b, 0x20,
+ 0x84, 0x7f, 0xb4, 0x04, 0x20, 0x60, 0x20, 0x87, 0x1f, 0x2a, 0x1f, 0x0d, 0x05, 0x20, 0x47, 0x0f,
+ 0x10, 0x05, 0x6a, 0x89, 0x91, 0x1f, 0x89, 0x10, 0x0a, 0x6a, 0x49, 0x05, 0x20, 0x47, 0x91, 0x01,
+ 0x20, 0x6d, 0x20, 0x04, 0x41, 0x53, 0x75, 0x20, 0x5d, 0x20, 0x61, 0x9c, 0x47, 0x53, 0x49, 0x05,
+ 0x10, 0x0d, 0x1f, 0x69, 0x26, 0x68, 0x7c, 0x50, 0x02, 0x01, 0x5a, 0x22, 0x0d, 0x05, 0x74, 0x80,
+ 0x7c, 0x36, 0x19, 0x30, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans16_aa_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000e, 0x0018, 0x004e, 0x007e, 0x00d1, 0x010e,
+ 0x0111, 0x0136, 0x0158, 0x016f, 0x0179, 0x0183, 0x0188, 0x018e,
+ 0x01ab, 0x01db, 0x01e8, 0x0210, 0x023c, 0x025c, 0x027b, 0x02b1,
+ 0x02cb, 0x0305, 0x033b, 0x0342, 0x034d, 0x0373, 0x037c, 0x03a1,
+ 0x03be, 0x042e, 0x0462, 0x0492, 0x04c0, 0x04ef, 0x04fa, 0x0504,
+ 0x053b, 0x0546, 0x054c, 0x055a, 0x058b, 0x0591, 0x05ce, 0x0605,
+ 0x0619, 0x062d, 0x0648, 0x066c, 0x06a0, 0x06a9, 0x06c8, 0x06f9,
+ 0x075c, 0x078e, 0x07ac, 0x07d0, 0x07da, 0x07f8, 0x0801, 0x081b,
+ 0x0823, 0x082e, 0x085b, 0x0860, 0x0882, 0x088a, 0x08ad, 0x08ba,
+ 0x08ee, 0x08f3, 0x08fb, 0x090a, 0x092f, 0x0934, 0x095c, 0x0961,
+ 0x098a, 0x0990, 0x0998, 0x09a9, 0x09d2, 0x09df, 0x09fb, 0x0a22,
+ 0x0a5f, 0x0a89, 0x0aba, 0x0ad3, 0x0af1, 0x0af8, 0x0b11,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans16_aa_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans16_aa_glyph_offsets_0, mf_rlefont_DejaVuSans16_aa_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans16_aa = {
+ {
+ "DejaVu Sans Book 16",
+ "DejaVuSans16_aa",
+ 18, /* width */
+ 17, /* height */
+ 3, /* min x advance */
+ 17, /* max x advance */
+ 1, /* baseline x */
+ 13, /* baseline y */
+ 19, /* line height */
+ 0, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans16_aa_dictionary_data,
+ mf_rlefont_DejaVuSans16_aa_dictionary_offsets,
+ 113, /* rle dict count */
+ 139, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans16_aa_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans16_aa_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans16_aa
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans16_aa_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans16_aa. */
+
diff --git a/src/gdisp/fonts/DejaVuSans24.c b/src/gdisp/fonts/DejaVuSans24.c
new file mode 100644
index 00000000..caabb080
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans24.c
@@ -0,0 +1,237 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans24. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans24_dictionary_data[395] = {
+ 0x80, 0x0a, 0x80, 0x3d, 0x81, 0x02, 0x81, 0x81, 0x09, 0x81, 0x0c, 0x81, 0x09, 0x81, 0x0c, 0x81,
+ 0x09, 0x81, 0x08, 0x16, 0x81, 0x01, 0x82, 0x0e, 0x84, 0x01, 0x07, 0x87, 0x01, 0x86, 0x0d, 0x85,
+ 0x80, 0x0c, 0x83, 0x0f, 0x89, 0x0f, 0x82, 0x07, 0x0b, 0x81, 0x09, 0x81, 0x0c, 0x13, 0x81, 0x16,
+ 0x80, 0x15, 0x04, 0x82, 0x0e, 0x0a, 0x80, 0x81, 0x0a, 0x80, 0x05, 0x82, 0x0a, 0x81, 0x0e, 0x81,
+ 0x07, 0x81, 0x0d, 0x02, 0x82, 0x01, 0x0b, 0x81, 0x08, 0x81, 0x0d, 0x04, 0x85, 0x09, 0x80, 0x05,
+ 0x81, 0x45, 0x15, 0x83, 0x01, 0x81, 0x01, 0x82, 0x12, 0x10, 0x81, 0x83, 0x0c, 0x0d, 0x85, 0x02,
+ 0x81, 0x07, 0x06, 0x82, 0x82, 0x10, 0x85, 0x02, 0x80, 0x15, 0x82, 0x0e, 0x81, 0x0c, 0x81, 0x26,
+ 0x0c, 0x07, 0x82, 0x0e, 0x82, 0x15, 0x81, 0x01, 0x16, 0x81, 0x17, 0x81, 0x01, 0x80, 0x0b, 0x84,
+ 0x12, 0x87, 0x10, 0x82, 0x08, 0x8b, 0x1d, 0x11, 0x1e, 0x80, 0x02, 0x0f, 0x04, 0x06, 0x81, 0x01,
+ 0x12, 0x17, 0x0d, 0x82, 0x01, 0x80, 0x01, 0x17, 0x81, 0x15, 0x03, 0x41, 0x0e, 0x00, 0xbc, 0x56,
+ 0x31, 0x31, 0x31, 0x31, 0x31, 0x37, 0x3d, 0x45, 0x47, 0x47, 0x47, 0x47, 0x47, 0x1d, 0x36, 0x2d,
+ 0x2f, 0x44, 0x30, 0x2c, 0x18, 0x2c, 0x1b, 0x51, 0x1b, 0xd4, 0xc5, 0x2d, 0x25, 0x9c, 0x4a, 0x4a,
+ 0x3b, 0x29, 0x36, 0xc7, 0x27, 0x47, 0x47, 0x47, 0x5a, 0x27, 0x47, 0x37, 0x1f, 0x2e, 0x31, 0xeb,
+ 0xa4, 0x23, 0xc0, 0x2a, 0x36, 0x22, 0x50, 0x1a, 0x1d, 0x27, 0xd0, 0x54, 0x1a, 0x4d, 0x31, 0x00,
+ 0xc7, 0x9c, 0x43, 0x3c, 0x2e, 0x37, 0x1f, 0x2e, 0x00, 0xc7, 0x9c, 0x45, 0x47, 0x29, 0xca, 0x54,
+ 0x00, 0x9c, 0x4a, 0x41, 0x33, 0x48, 0x53, 0x47, 0x47, 0x47, 0x2c, 0x48, 0x2c, 0x48, 0xb4, 0xc4,
+ 0x90, 0x34, 0x34, 0xc4, 0x3c, 0xc7, 0x90, 0x5a, 0x3b, 0x3a, 0xdc, 0x53, 0x47, 0x46, 0x40, 0x44,
+ 0x1c, 0x4a, 0xc7, 0xa2, 0x9c, 0x9c, 0x52, 0x3a, 0x51, 0x1b, 0x56, 0x31, 0x31, 0x31, 0x31, 0x37,
+ 0x00, 0x1c, 0x47, 0xea, 0x2b, 0xc7, 0x2d, 0x2f, 0x2d, 0xb4, 0x20, 0x39, 0x51, 0x24, 0xf2, 0x1a,
+ 0x55, 0x00, 0x9c, 0x5a, 0x9c, 0x56, 0x31, 0x31, 0x31, 0x31, 0xfe, 0xc5, 0x9c, 0x2a, 0xc0, 0x93,
+ 0x39, 0xb4, 0x90, 0x27, 0x25, 0x1d, 0x3c, 0x39, 0xd3, 0x39, 0x3a, 0xe3, 0x45, 0x20, 0x2a, 0xfc,
+ 0xc7, 0x1d, 0x9c, 0x38, 0xbf, 0x27, 0x5a, 0x3a, 0x43, 0x9c, 0xbc, 0x25, 0x2b, 0x22, 0x1c, 0x47,
+ 0xc2, 0x39, 0xe3, 0x1d, 0xa2, 0xbc, 0x45, 0x1f, 0x45, 0x1c, 0xfd, 0x55, 0x0f, 0xb5, 0x27, 0xca,
+ 0x54, 0x9f, 0x90, 0x00, 0x27, 0x22, 0x4d, 0x20, 0x43, 0x5b, 0x1a, 0x3e, 0x36, 0x50, 0x56, 0x5b,
+ 0xc2, 0x90, 0x3b, 0x3a, 0x2a, 0xf0, 0x2d, 0x34, 0x3d, 0xf0, 0x54,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans24_dictionary_offsets[119] = {
+ 0x0000, 0x0003, 0x0004, 0x0007, 0x0013, 0x0016, 0x0018, 0x001a,
+ 0x001b, 0x001d, 0x001f, 0x0020, 0x0022, 0x0026, 0x0028, 0x002d,
+ 0x002f, 0x0031, 0x0032, 0x0035, 0x0037, 0x003a, 0x003d, 0x0043,
+ 0x0046, 0x0047, 0x004b, 0x004d, 0x004f, 0x0051, 0x0053, 0x0054,
+ 0x0056, 0x0059, 0x005b, 0x005d, 0x005f, 0x0062, 0x0064, 0x0067,
+ 0x0069, 0x006c, 0x006f, 0x0070, 0x0071, 0x0073, 0x0075, 0x0078,
+ 0x007d, 0x007f, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089,
+ 0x008b, 0x008c, 0x008d, 0x008e, 0x0090, 0x0091, 0x0092, 0x0093,
+ 0x0094, 0x0097, 0x009a, 0x009b, 0x009d, 0x00a8, 0x00ad, 0x00bf,
+ 0x00c5, 0x00c8, 0x00cb, 0x00ce, 0x00d9, 0x00de, 0x00e2, 0x00ec,
+ 0x00f0, 0x00f6, 0x00fa, 0x00fe, 0x0107, 0x010b, 0x010d, 0x0111,
+ 0x0115, 0x0116, 0x0118, 0x011a, 0x0120, 0x0123, 0x012c, 0x0131,
+ 0x0133, 0x013a, 0x013d, 0x0141, 0x0143, 0x0145, 0x0148, 0x014b,
+ 0x014e, 0x0156, 0x0158, 0x015a, 0x015e, 0x0167, 0x016a, 0x016c,
+ 0x0172, 0x0173, 0x0178, 0x017e, 0x0184, 0x0189, 0x018b,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans24_glyph_data_0[1873] = {
+ 0x08, 0x00, 0x10, 0x0a, 0x00, 0x4a, 0x47, 0x5d, 0x56, 0x19, 0x74, 0x10, 0x0b, 0x4c, 0x1a, 0x64,
+ 0xfc, 0x1a, 0x64, 0xfc, 0x1a, 0x10, 0x14, 0xc4, 0x4e, 0xc7, 0xc6, 0x82, 0x8d, 0xc7, 0xc7, 0x82,
+ 0x8d, 0xc5, 0xc7, 0x2b, 0x4b, 0x2c, 0x4b, 0xe7, 0x4a, 0x77, 0x8d, 0x4f, 0x3c, 0x2b, 0xa5, 0x4a,
+ 0x2b, 0xb5, 0x45, 0x4b, 0xc4, 0x34, 0x22, 0x21, 0xc7, 0xc6, 0x82, 0x8d, 0xc7, 0xc7, 0x82, 0x8d,
+ 0x0f, 0xb4, 0x10, 0x0f, 0x4e, 0x94, 0x29, 0xc8, 0x28, 0x28, 0x1e, 0x39, 0x21, 0x2f, 0xa6, 0x82,
+ 0xe8, 0x54, 0xa7, 0x27, 0xcd, 0x7c, 0x45, 0x93, 0x7c, 0x56, 0xbd, 0x50, 0x94, 0x8d, 0xfe, 0x9c,
+ 0x56, 0xa5, 0x2f, 0x3b, 0x7e, 0x2b, 0x29, 0xcc, 0x29, 0xc8, 0x28, 0x10, 0x17, 0x4c, 0xe2, 0x4a,
+ 0x2c, 0xdd, 0x3d, 0x33, 0xc5, 0xc7, 0x3c, 0xdc, 0xb4, 0xb4, 0x52, 0x34, 0x77, 0x2f, 0x2b, 0xc5,
+ 0xa7, 0x23, 0xc7, 0xaa, 0x41, 0x7b, 0x30, 0xaa, 0x9d, 0xc0, 0x4a, 0xa2, 0x90, 0x1a, 0x56, 0xaa,
+ 0xa5, 0x23, 0xab, 0xc5, 0x41, 0xdc, 0x77, 0x2b, 0xa7, 0xa5, 0x48, 0xe7, 0x90, 0x3c, 0xdc, 0x34,
+ 0xb4, 0x4a, 0x92, 0x7b, 0x52, 0x3c, 0xe2, 0x10, 0x13, 0x55, 0x33, 0x49, 0xa4, 0x39, 0x59, 0x8d,
+ 0x2d, 0x43, 0x92, 0x7c, 0x30, 0xb2, 0xc7, 0x3c, 0xbc, 0xbc, 0xb4, 0x4a, 0x90, 0xbc, 0x3c, 0xb4,
+ 0x52, 0xbb, 0x1f, 0x77, 0x71, 0x25, 0x25, 0x3d, 0x32, 0x3b, 0xe7, 0x1d, 0x1e, 0xbc, 0x10, 0x07,
+ 0x4c, 0x69, 0x10, 0x09, 0x56, 0x27, 0x1c, 0x61, 0x61, 0x1c, 0x60, 0x74, 0x59, 0x90, 0x1c, 0x10,
+ 0x09, 0x4c, 0xe7, 0x47, 0x74, 0x55, 0x86, 0x69, 0x61, 0x61, 0x46, 0x10, 0x0c, 0x4e, 0xc8, 0x28,
+ 0x27, 0xec, 0x9c, 0x56, 0xb2, 0x38, 0x1e, 0x7c, 0x30, 0x9b, 0x1d, 0xfe, 0x95, 0x8d, 0xe6, 0x28,
+ 0x10, 0x14, 0x5a, 0x55, 0x19, 0x69, 0x50, 0x4b, 0x93, 0x44, 0xe3, 0x20, 0x50, 0x69, 0x10, 0x08,
+ 0x35, 0x6d, 0x61, 0x10, 0x09, 0x00, 0x19, 0x19, 0x5b, 0x3b, 0x52, 0x3b, 0x10, 0x08, 0x35, 0x6d,
+ 0x10, 0x08, 0x30, 0x1c, 0x85, 0x47, 0x29, 0x6d, 0x85, 0x1c, 0x85, 0x47, 0x29, 0x6d, 0x85, 0x10,
+ 0x0f, 0x4e, 0x81, 0x52, 0xc2, 0x1d, 0x2f, 0xbc, 0x82, 0xa4, 0x48, 0xb4, 0x78, 0x31, 0x31, 0x31,
+ 0x65, 0x43, 0x90, 0x77, 0x45, 0x2a, 0x3f, 0x21, 0x71, 0x10, 0x0f, 0x4e, 0xc0, 0x27, 0xd3, 0x54,
+ 0x1a, 0x74, 0x5d, 0xfc, 0x6c, 0x20, 0x10, 0x0f, 0xc4, 0x55, 0x83, 0xff, 0x39, 0x2d, 0x52, 0x44,
+ 0x74, 0x46, 0x85, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x4a, 0x3b, 0x7f, 0x10, 0x0f, 0x54, 0x3b,
+ 0x4a, 0x2b, 0x20, 0x50, 0xc5, 0x92, 0x1c, 0x67, 0x8d, 0x22, 0x27, 0xe3, 0x29, 0x2f, 0x74, 0x28,
+ 0x48, 0xc8, 0x2d, 0x32, 0x7e, 0x10, 0x0f, 0x29, 0x45, 0x29, 0x93, 0x54, 0x9e, 0x54, 0xba, 0x64,
+ 0x00, 0xc7, 0xc7, 0x45, 0x9c, 0x39, 0xb4, 0x39, 0x34, 0x39, 0x34, 0x82, 0x34, 0x50, 0x4b, 0x48,
+ 0xc2, 0x20, 0x27, 0x74, 0x10, 0x0f, 0x4d, 0x3b, 0x3e, 0x7d, 0x59, 0xf0, 0x55, 0x21, 0xa4, 0x21,
+ 0x94, 0x2a, 0x33, 0x6d, 0x47, 0x40, 0x4f, 0x2a, 0xc2, 0x7e, 0x10, 0x0f, 0x51, 0x4e, 0x49, 0x00,
+ 0x94, 0x45, 0x61, 0x00, 0x1e, 0x82, 0x21, 0xc0, 0xb5, 0x23, 0xc0, 0x34, 0x23, 0x92, 0xa4, 0x23,
+ 0x92, 0x34, 0x56, 0x25, 0x2e, 0xd2, 0x2a, 0x36, 0xbc, 0x39, 0x22, 0x7c, 0x10, 0x0f, 0x4c, 0x22,
+ 0x7f, 0x46, 0x1c, 0x85, 0x61, 0x85, 0x61, 0x85, 0x1c, 0x46, 0x10, 0x0f, 0x4c, 0x83, 0x1d, 0x92,
+ 0x2f, 0x73, 0x2d, 0x52, 0x20, 0x39, 0x22, 0x50, 0x92, 0x2f, 0x73, 0xe5, 0x92, 0x3b, 0x7e, 0x10,
+ 0x0f, 0x56, 0x7c, 0x30, 0xc2, 0x1d, 0x2f, 0xc0, 0x45, 0xa4, 0x2e, 0xca, 0x2d, 0xdc, 0x44, 0x30,
+ 0x90, 0x34, 0x23, 0x92, 0x81, 0x3f, 0xa7, 0x93, 0x3b, 0x91, 0x45, 0x1a, 0x59, 0xea, 0x40, 0x58,
+ 0x7a, 0x57, 0x10, 0x08, 0x50, 0x5b, 0x74, 0x1f, 0x5b, 0x74, 0x10, 0x08, 0x50, 0x5b, 0x74, 0x1f,
+ 0x5b, 0x74, 0x61, 0x10, 0x14, 0x5b, 0x3f, 0x50, 0x71, 0x3d, 0x3e, 0x5a, 0x45, 0x3e, 0xc4, 0x45,
+ 0x28, 0x1e, 0x5f, 0xd3, 0x29, 0x93, 0x28, 0x10, 0x14, 0x19, 0x5b, 0x3f, 0x4b, 0x2c, 0x4b, 0xe7,
+ 0x19, 0x28, 0x4b, 0xc7, 0x44, 0x4b, 0x10, 0x14, 0x4a, 0x19, 0x19, 0x86, 0x36, 0x28, 0x1e, 0x5f,
+ 0xd3, 0x40, 0x00, 0x32, 0x39, 0x7e, 0xb4, 0x3a, 0x71, 0x33, 0x10, 0x0d, 0x4e, 0xc2, 0x27, 0x1e,
+ 0x39, 0x2a, 0x3f, 0x52, 0x6d, 0x46, 0x40, 0x44, 0x85, 0x47, 0x30, 0x42, 0x74, 0x10, 0x18, 0x19,
+ 0xf2, 0x3e, 0x0f, 0x3a, 0xa2, 0x34, 0x2c, 0x2c, 0xc7, 0x2d, 0x2f, 0x34, 0xa5, 0xab, 0x9d, 0x34,
+ 0xbc, 0x22, 0xbd, 0xb4, 0xb5, 0xb5, 0xa7, 0xc5, 0xa7, 0xc7, 0x2f, 0x90, 0x90, 0x79, 0x90, 0x90,
+ 0x79, 0x90, 0x90, 0x79, 0xf0, 0xb4, 0x9c, 0xa4, 0x1a, 0x34, 0xb5, 0xb4, 0xbf, 0x52, 0xa7, 0x4b,
+ 0x52, 0x92, 0xc0, 0x2f, 0x4a, 0x38, 0x2d, 0x48, 0xe2, 0x3d, 0x3b, 0xe3, 0x39, 0xe3, 0x10, 0x10,
+ 0x4e, 0x81, 0x5a, 0x71, 0x33, 0x25, 0x3b, 0x64, 0x37, 0x77, 0x39, 0x77, 0x39, 0x77, 0x82, 0x34,
+ 0x82, 0x34, 0x45, 0x3d, 0x56, 0x4b, 0x3b, 0xff, 0x3a, 0x6a, 0x2c, 0x4f, 0x4a, 0x41, 0x10, 0x10,
+ 0x4c, 0x20, 0x6c, 0x3d, 0x66, 0x22, 0x6c, 0x00, 0x78, 0xc7, 0x77, 0x3b, 0xe3, 0x45, 0x22, 0x10,
+ 0x11, 0x4e, 0x83, 0x1d, 0x36, 0x2d, 0xe0, 0x33, 0x4a, 0x77, 0x85, 0x47, 0x67, 0xbc, 0x59, 0x2f,
+ 0x4a, 0x48, 0xc0, 0x2d, 0x32, 0x7e, 0x10, 0x12, 0x4c, 0x22, 0x3e, 0xe3, 0x48, 0xd0, 0x71, 0xe7,
+ 0x44, 0x30, 0x2c, 0x48, 0x2c, 0x6a, 0x6a, 0x6a, 0x2c, 0x18, 0x2c, 0x18, 0x48, 0x53, 0x4a, 0x25,
+ 0x77, 0x71, 0x4b, 0x3b, 0x57, 0x10, 0x0f, 0x4c, 0x22, 0x7f, 0x56, 0x6d, 0x67, 0x5a, 0x22, 0x24,
+ 0x6d, 0x67, 0x5a, 0x22, 0x7f, 0x10, 0x0e, 0x4c, 0x22, 0x24, 0x6d, 0x67, 0x5a, 0x22, 0x3e, 0x7d,
+ 0x00, 0x60, 0x10, 0x13, 0x4e, 0x83, 0x1d, 0xeb, 0x2d, 0xe0, 0x33, 0x4a, 0x77, 0x85, 0x47, 0x3d,
+ 0x25, 0xdc, 0xc4, 0xc0, 0x6a, 0x2c, 0x6a, 0x25, 0x90, 0x4a, 0xc0, 0x3d, 0x3b, 0xe3, 0x39, 0xe3,
+ 0x10, 0x12, 0x4c, 0x1b, 0x72, 0x68, 0xf2, 0x22, 0x3a, 0x4b, 0x23, 0x1b, 0x72, 0x68, 0x10, 0x07,
+ 0x1f, 0x47, 0x60, 0x5d, 0x10, 0x07, 0x1f, 0x5d, 0x5d, 0x46, 0x7c, 0x30, 0xc0, 0x10, 0x10, 0x4c,
+ 0xe7, 0x2d, 0x9c, 0x2d, 0xb4, 0x2d, 0x34, 0x80, 0x1d, 0x71, 0x33, 0xd1, 0x54, 0xaa, 0xc7, 0x82,
+ 0x2f, 0x39, 0x8c, 0x30, 0xdc, 0x44, 0x56, 0xc7, 0x2d, 0x90, 0x44, 0x10, 0x0d, 0x1f, 0x60, 0x5d,
+ 0x54, 0x32, 0x7f, 0x10, 0x15, 0x4c, 0x25, 0xbc, 0x33, 0x25, 0xe2, 0x33, 0x25, 0xe2, 0x4a, 0xc2,
+ 0xc4, 0xc2, 0x4a, 0xba, 0xc4, 0xba, 0x4a, 0xba, 0x52, 0x9f, 0x4a, 0x1a, 0x7b, 0x1f, 0x1a, 0x7b,
+ 0x1f, 0x1a, 0x7b, 0x1f, 0xa7, 0x9d, 0x3c, 0x90, 0xaa, 0xb5, 0x33, 0xe5, 0x22, 0x9c, 0x6f, 0x6f,
+ 0x51, 0x77, 0x77, 0x72, 0xb4, 0x10, 0x12, 0x4c, 0x25, 0xca, 0x2b, 0x25, 0x41, 0xe7, 0xa4, 0x23,
+ 0x1e, 0xa4, 0x23, 0x9f, 0xa4, 0x23, 0x1a, 0xa4, 0x23, 0x1a, 0xa4, 0x23, 0xa7, 0xa5, 0x23, 0xa7,
+ 0xc5, 0x41, 0x77, 0x90, 0x2b, 0xc5, 0xc7, 0x41, 0xc4, 0x1a, 0x4a, 0x77, 0x7b, 0x2b, 0xc5, 0xb0,
+ 0x48, 0xca, 0x77, 0x41, 0x44, 0x48, 0xea, 0x71, 0x53, 0x44, 0x10, 0x13, 0x4e, 0x83, 0x5e, 0x75,
+ 0x36, 0x10, 0x0e, 0x4c, 0x20, 0x6c, 0xfc, 0x77, 0x66, 0x21, 0xfc, 0x20, 0x39, 0x55, 0x69, 0x10,
+ 0x13, 0x4e, 0x83, 0x5e, 0x75, 0x1e, 0x4a, 0x45, 0x59, 0xdc, 0x10, 0x11, 0x4c, 0x20, 0x6c, 0xfc,
+ 0x77, 0x66, 0x21, 0x3f, 0x20, 0x82, 0x2a, 0xca, 0x77, 0x56, 0x62, 0x37, 0x44, 0x56, 0x31, 0x31,
+ 0x0f, 0xc5, 0x34, 0x10, 0x0f, 0x4c, 0x83, 0xeb, 0x45, 0xa4, 0x48, 0x9c, 0x67, 0x2a, 0x4a, 0x21,
+ 0x44, 0x36, 0x29, 0xa2, 0x28, 0x6d, 0x28, 0x48, 0x90, 0x2a, 0x36, 0x21, 0xec, 0x22, 0x10, 0x0f,
+ 0x55, 0x32, 0xe3, 0x25, 0x32, 0x20, 0x39, 0x74, 0x47, 0x5d, 0x10, 0x12, 0x4c, 0x1b, 0x72, 0x72,
+ 0x72, 0x68, 0x90, 0x34, 0x45, 0x2d, 0x34, 0x21, 0x51, 0xc2, 0x10, 0x10, 0xc4, 0x28, 0x48, 0xca,
+ 0x4a, 0x6a, 0x2c, 0x23, 0x31, 0x31, 0xeb, 0x2d, 0x77, 0x34, 0x82, 0x34, 0x39, 0x77, 0x39, 0xb4,
+ 0x50, 0x90, 0x8d, 0x1a, 0x27, 0x8d, 0xf2, 0x1d, 0x71, 0x4a, 0xa2, 0x54, 0xc0, 0x10, 0x18, 0x43,
+ 0x39, 0x44, 0xe5, 0x77, 0x3c, 0x93, 0x34, 0xb4, 0xc4, 0xa2, 0x34, 0x34, 0xc4, 0xa2, 0x34, 0x34,
+ 0xa4, 0x9f, 0x77, 0x77, 0x7b, 0x9c, 0x34, 0x7b, 0x3c, 0xe7, 0x90, 0xc7, 0x79, 0x2f, 0x92, 0x79,
+ 0xf0, 0x77, 0x3c, 0xaa, 0xa5, 0x9d, 0x4a, 0x1a, 0x7b, 0x1f, 0x1a, 0x7b, 0x52, 0xba, 0xc4, 0xba,
+ 0x4a, 0xc0, 0x3d, 0x48, 0x36, 0x3d, 0x48, 0x36, 0x3d, 0x48, 0xeb, 0x44, 0x10, 0x11, 0x4c, 0x25,
+ 0x37, 0x23, 0x65, 0x45, 0x2a, 0x90, 0x38, 0x1a, 0x7c, 0x43, 0xc0, 0x40, 0x4a, 0x93, 0x54, 0x1e,
+ 0x27, 0x38, 0xc7, 0xc7, 0x45, 0x77, 0x45, 0xa4, 0x2e, 0xff, 0x33, 0x48, 0xcb, 0x44, 0x10, 0x0f,
+ 0xc4, 0x28, 0xc7, 0x34, 0x23, 0x65, 0x45, 0x2a, 0x90, 0x3c, 0x2b, 0x1a, 0xc5, 0x45, 0x1d, 0x71,
+ 0x1f, 0xc0, 0x60, 0x67, 0x10, 0x10, 0x50, 0x3b, 0xe3, 0x25, 0x32, 0x20, 0x6e, 0x46, 0x6e, 0x46,
+ 0x6e, 0xfc, 0x27, 0x4b, 0x52, 0x34, 0x4b, 0x10, 0x09, 0x4c, 0x1e, 0x7c, 0x56, 0x69, 0x5d, 0x28,
+ 0xd3, 0x7c, 0x10, 0x08, 0x51, 0x59, 0xe0, 0x74, 0x74, 0x74, 0x1c, 0x74, 0x74, 0x29, 0x38, 0x34,
+ 0x10, 0x09, 0x4c, 0x1e, 0x7c, 0x39, 0x74, 0x5d, 0x67, 0x1e, 0x7c, 0x10, 0x14, 0x50, 0x40, 0x52,
+ 0xc2, 0x27, 0xe1, 0x50, 0x2f, 0x2f, 0x45, 0x34, 0x23, 0x92, 0x2d, 0x92, 0x44, 0x10, 0x0c, 0x4c,
+ 0x5b, 0x35, 0xc2, 0x21, 0x4b, 0x10, 0x0c, 0x5a, 0x92, 0x1c, 0x59, 0xdc, 0x10, 0x0e, 0x5b, 0x3b,
+ 0xc4, 0x3b, 0x1d, 0xc8, 0x77, 0x59, 0x3c, 0x2b, 0x21, 0xc0, 0x22, 0x45, 0x52, 0x2e, 0x37, 0x3d,
+ 0x45, 0x76, 0x10, 0x0f, 0x52, 0x74, 0x84, 0x78, 0x63, 0x10, 0x0d, 0x50, 0x5b, 0x49, 0xa4, 0x39,
+ 0x1c, 0x47, 0x47, 0x59, 0x2f, 0x94, 0x39, 0x22, 0xc4, 0x3b, 0x10, 0x0f, 0x50, 0x74, 0x47, 0x50,
+ 0xe3, 0x90, 0x3b, 0x3a, 0x2f, 0x81, 0x90, 0x5c, 0x76, 0x10, 0x0e, 0x50, 0x5b, 0x49, 0x2a, 0x79,
+ 0x43, 0x31, 0x4b, 0x3b, 0xe3, 0x48, 0xd0, 0x1c, 0x59, 0xe0, 0xc4, 0xc6, 0x3b, 0x1d, 0x32, 0x10,
+ 0x08, 0x4c, 0x81, 0x4a, 0x1e, 0x54, 0x6d, 0x89, 0x5a, 0x82, 0x5d, 0x10, 0x0f, 0x8b, 0x2f, 0x81,
+ 0x92, 0x5c, 0x76, 0x53, 0x40, 0x58, 0x7a, 0x36, 0x10, 0x0f, 0x52, 0x74, 0x84, 0x52, 0x2e, 0x62,
+ 0x62, 0x62, 0x62, 0x10, 0x07, 0x1f, 0x67, 0x4e, 0x74, 0x5d, 0x10, 0x07, 0x1f, 0x67, 0x4e, 0x74,
+ 0x5d, 0x67, 0x36, 0x40, 0x10, 0x0e, 0x1f, 0x60, 0x2a, 0x37, 0x80, 0xcb, 0x54, 0x1e, 0x27, 0x38,
+ 0xaa, 0xc7, 0x82, 0x2f, 0x39, 0x8c, 0x10, 0x06, 0x1f, 0x47, 0x60, 0x5d, 0x10, 0x18, 0x1f, 0x5b,
+ 0x34, 0xc0, 0xa5, 0x93, 0x34, 0x20, 0x20, 0x51, 0xa2, 0xbc, 0xc7, 0x92, 0xbc, 0xc4, 0x92, 0x77,
+ 0x6b, 0x51, 0x79, 0x6b, 0x51, 0x79, 0x6b, 0x51, 0x79, 0x10, 0x0f, 0x8a, 0xd3, 0xbc, 0x45, 0x52,
+ 0x2e, 0x62, 0x62, 0x62, 0x62, 0x10, 0x0e, 0x51, 0x5b, 0x2b, 0x49, 0x2a, 0x57, 0x78, 0x31, 0xcb,
+ 0x77, 0x45, 0x7a, 0x36, 0x10, 0x0f, 0x8a, 0xd3, 0xbc, 0x45, 0x78, 0x63, 0xd0, 0x67, 0xdc, 0x10,
+ 0x0f, 0x8b, 0x2f, 0x81, 0x90, 0x5c, 0x76, 0x6d, 0x47, 0x10, 0x0a, 0x4a, 0x5b, 0x77, 0xa2, 0x39,
+ 0x22, 0x50, 0xc0, 0x85, 0x47, 0x60, 0x10, 0x0c, 0x5a, 0x5b, 0x2b, 0x49, 0xa4, 0x39, 0x29, 0x90,
+ 0x5f, 0x0f, 0x6d, 0x43, 0xc8, 0x2a, 0xc2, 0x3a, 0xa4, 0x22, 0x10, 0x09, 0x42, 0x39, 0x74, 0x89,
+ 0x54, 0x6d, 0x60, 0x28, 0x1e, 0x7c, 0x10, 0x0f, 0x30, 0x5b, 0x62, 0x62, 0x62, 0x62, 0x79, 0x4a,
+ 0x34, 0x3d, 0x45, 0x76, 0x10, 0x0f, 0x5b, 0x26, 0x62, 0xea, 0x2d, 0x34, 0x34, 0x39, 0x34, 0x50,
+ 0x90, 0x92, 0x82, 0x8d, 0x87, 0x7c, 0x45, 0x10, 0x14, 0x52, 0x5b, 0x34, 0x34, 0xc7, 0x3c, 0xc7,
+ 0xc0, 0x34, 0x6f, 0x6f, 0x4a, 0xa7, 0x9d, 0x3c, 0x2f, 0xaa, 0xbd, 0x4a, 0x90, 0x1a, 0x3c, 0x7b,
+ 0xd7, 0x48, 0xdf, 0x77, 0x41, 0x53, 0x81, 0xa2, 0x81, 0xa2, 0x81, 0xf2, 0x3d, 0x10, 0x0f, 0x30,
+ 0x5b, 0x25, 0x25, 0x3d, 0x2d, 0x5a, 0x2f, 0x2f, 0x39, 0x9c, 0x54, 0x9f, 0x7c, 0x45, 0x29, 0xe3,
+ 0x54, 0xb2, 0xc7, 0x82, 0x90, 0x82, 0x77, 0x45, 0x2d, 0xbc, 0x44, 0x10, 0x0f, 0x5b, 0x26, 0x62,
+ 0xf2, 0x2d, 0x34, 0x34, 0x39, 0x2a, 0x9c, 0x8d, 0x87, 0x7c, 0x45, 0x4a, 0x45, 0x47, 0x46, 0x7c,
+ 0x30, 0xc0, 0x10, 0x0d, 0x1f, 0x5b, 0x32, 0x7f, 0x46, 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x85,
+ 0x4a, 0x3b, 0x7f, 0x10, 0x0f, 0x51, 0x4e, 0xa2, 0x7c, 0x56, 0x69, 0x40, 0xc4, 0x1e, 0x7c, 0xfc,
+ 0x45, 0x55, 0x69, 0x28, 0xd3, 0x54, 0xc0, 0x10, 0x08, 0x4a, 0x5d, 0x5d, 0x67, 0xdc, 0x10, 0x0f,
+ 0x4e, 0x93, 0x7c, 0x39, 0x74, 0x67, 0xbc, 0x55, 0x1e, 0x7c, 0x30, 0xd2, 0x29, 0x69, 0x7c, 0x30,
+ 0xc0, 0x10, 0x14, 0xc4, 0x4e, 0x19, 0x5b, 0x7c, 0x48, 0x20, 0x5a, 0x2c, 0xc5, 0x20, 0x4d, 0xc2,
+ 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans24_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000c, 0x0016, 0x0043, 0x006c, 0x00a8, 0x00cf,
+ 0x00d3, 0x00e0, 0x00ec, 0x0101, 0x010f, 0x0114, 0x011d, 0x0121,
+ 0x0130, 0x014a, 0x0157, 0x016d, 0x0186, 0x01a5, 0x01bb, 0x01dd,
+ 0x01eb, 0x0200, 0x0223, 0x022b, 0x0234, 0x0248, 0x0257, 0x026b,
+ 0x027e, 0x02bf, 0x02df, 0x02f0, 0x0307, 0x0326, 0x0336, 0x0343,
+ 0x0361, 0x036f, 0x0375, 0x037e, 0x039c, 0x03a4, 0x03d6, 0x040b,
+ 0x0412, 0x0420, 0x042b, 0x0444, 0x045f, 0x046b, 0x047b, 0x049e,
+ 0x04dd, 0x04ff, 0x0515, 0x0528, 0x0533, 0x0541, 0x054c, 0x055e,
+ 0x0566, 0x056d, 0x0583, 0x058a, 0x059b, 0x05aa, 0x05c0, 0x05cc,
+ 0x05d9, 0x05e4, 0x05eb, 0x05f5, 0x0607, 0x060d, 0x062a, 0x0636,
+ 0x0645, 0x0650, 0x065a, 0x0667, 0x067b, 0x0687, 0x0695, 0x06a8,
+ 0x06ce, 0x06ec, 0x0703, 0x0714, 0x0728, 0x072f, 0x0742,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans24_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans24_glyph_offsets_0, mf_rlefont_DejaVuSans24_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans24 = {
+ {
+ "DejaVu Sans Book 24",
+ "DejaVuSans24",
+ 25, /* width */
+ 25, /* height */
+ 6, /* min x advance */
+ 24, /* max x advance */
+ 2, /* baseline x */
+ 19, /* baseline y */
+ 28, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans24_dictionary_data,
+ mf_rlefont_DejaVuSans24_dictionary_offsets,
+ 68, /* rle dict count */
+ 118, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans24_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans24_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans24
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans24_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans24. */
+
diff --git a/src/gdisp/fonts/DejaVuSans24_aa.c b/src/gdisp/fonts/DejaVuSans24_aa.c
new file mode 100644
index 00000000..9afd72c9
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans24_aa.c
@@ -0,0 +1,439 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans24_aa. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans24_aa_dictionary_data[596] = {
+ 0x20, 0x0f, 0x04, 0x81, 0x05, 0x1e, 0x11, 0x0c, 0x81, 0x01, 0x81, 0x0e, 0x81, 0x07, 0x81, 0x0e,
+ 0x10, 0xc8, 0x80, 0xce, 0xc5, 0xd1, 0x04, 0x0b, 0x84, 0x09, 0x17, 0x81, 0x17, 0x81, 0x06, 0x88,
+ 0x0e, 0x15, 0x12, 0x0a, 0x17, 0x81, 0x02, 0x09, 0x81, 0xce, 0x85, 0x0c, 0x83, 0x85, 0x06, 0xc2,
+ 0xc7, 0x03, 0x81, 0x01, 0xc2, 0xcb, 0x80, 0xc8, 0x02, 0x09, 0x81, 0x0c, 0x81, 0x09, 0x81, 0x80,
+ 0xcc, 0x03, 0x80, 0xca, 0x14, 0x0d, 0x80, 0x18, 0x05, 0x81, 0x07, 0x81, 0x86, 0x0d, 0x81, 0x01,
+ 0xcd, 0x80, 0x45, 0x07, 0xc1, 0x01, 0xce, 0xc8, 0x80, 0xc6, 0xc1, 0x80, 0xce, 0xc9, 0x80, 0x80,
+ 0xc2, 0x80, 0xcd, 0x1f, 0x1d, 0x81, 0xc3, 0xc1, 0xc6, 0xc1, 0xc1, 0xce, 0x02, 0x81, 0x89, 0xc8,
+ 0x80, 0x80, 0xc7, 0xc5, 0x02, 0xc5, 0x80, 0xc4, 0xc1, 0x06, 0xc1, 0x81, 0xc4, 0x01, 0xce, 0x80,
+ 0x80, 0xc5, 0x01, 0x80, 0xc8, 0x8c, 0x80, 0xce, 0x1b, 0xcd, 0xca, 0xc9, 0xc4, 0xc1, 0xc4, 0xcb,
+ 0xc5, 0x08, 0xc1, 0xcd, 0x0d, 0x81, 0x08, 0x81, 0x0d, 0xce, 0x80, 0xc3, 0xce, 0xcc, 0xc8, 0xcd,
+ 0xc8, 0xc4, 0xc1, 0x0e, 0x81, 0xc9, 0x41, 0x17, 0xcc, 0x80, 0xc2, 0xc9, 0x01, 0x81, 0xcc, 0xc1,
+ 0xc7, 0x80, 0xcd, 0xc9, 0xc2, 0xcd, 0x16, 0xcc, 0xc7, 0xc1, 0xcc, 0x80, 0x01, 0xc4, 0xc5, 0x81,
+ 0xc2, 0x01, 0xcd, 0xc1, 0x82, 0xc2, 0xc1, 0xcc, 0x81, 0x80, 0xcb, 0x17, 0x13, 0xc1, 0xc3, 0x32,
+ 0xcd, 0xc2, 0xc2, 0xce, 0x80, 0xc6, 0xcc, 0x80, 0xc9, 0x81, 0x0e, 0x81, 0xc4, 0x81, 0xc1, 0x81,
+ 0xde, 0xc3, 0x81, 0xc1, 0xc5, 0xc9, 0xc2, 0xc2, 0xc8, 0xcd, 0xc1, 0xc7, 0xc4, 0xc9, 0x6b, 0x34,
+ 0x27, 0x1f, 0x86, 0x27, 0x1f, 0x86, 0x27, 0x1f, 0x86, 0x27, 0x1f, 0x58, 0x01, 0x22, 0x35, 0x86,
+ 0x69, 0x6c, 0x05, 0x1b, 0x0a, 0x86, 0x69, 0x21, 0x04, 0x0b, 0x7a, 0x69, 0x63, 0x24, 0x73, 0x47,
+ 0x73, 0x0f, 0xdd, 0x19, 0xd4, 0xdd, 0x7f, 0x4a, 0x73, 0x63, 0x39, 0x68, 0x60, 0x0c, 0x7a, 0x3d,
+ 0x70, 0x6f, 0x22, 0x63, 0x86, 0x3d, 0x36, 0x05, 0x27, 0x77, 0x3d, 0x58, 0x56, 0x64, 0x0f, 0x56,
+ 0x3d, 0x36, 0x05, 0x27, 0x77, 0x3d, 0x07, 0x39, 0x1b, 0x01, 0x7c, 0x3d, 0x63, 0x39, 0x68, 0x60,
+ 0x0c, 0x7a, 0x86, 0x05, 0x27, 0x05, 0x7d, 0x25, 0xd4, 0x39, 0x1b, 0x75, 0x07, 0x00, 0x1e, 0x39,
+ 0x68, 0x60, 0x6c, 0x79, 0x25, 0xd4, 0x5a, 0x24, 0x5c, 0x0f, 0x6f, 0x3c, 0x07, 0x5c, 0x02, 0x3c,
+ 0x88, 0x04, 0x3c, 0x83, 0x07, 0x1d, 0x4c, 0x26, 0x3b, 0x73, 0x09, 0x46, 0x73, 0x0d, 0x49, 0x0e,
+ 0x61, 0x6e, 0x69, 0x03, 0x2f, 0x08, 0x86, 0x44, 0x87, 0x08, 0xc3, 0x79, 0x87, 0x7d, 0x68, 0x8c,
+ 0x0e, 0x5a, 0x87, 0x0a, 0x1b, 0x06, 0x39, 0x69, 0x87, 0x27, 0x47, 0x87, 0x27, 0x7d, 0x73, 0x0f,
+ 0x51, 0x2c, 0x26, 0x05, 0x2b, 0x05, 0x7d, 0x25, 0x0d, 0x49, 0x87, 0x27, 0x07, 0x39, 0x87, 0x27,
+ 0x44, 0x87, 0x08, 0x24, 0x5c, 0x03, 0x87, 0x39, 0x68, 0x60, 0x0c, 0x4a, 0x44, 0x1e, 0x6f, 0x22,
+ 0x63, 0x53, 0x00, 0x1e, 0x05, 0x27, 0x05, 0x7d, 0x00, 0x1e, 0x01, 0x27, 0x47, 0x41, 0x1b, 0xd0,
+ 0x1e, 0x44, 0x1b, 0x47, 0x86, 0x26, 0x26, 0x26, 0x01, 0x09, 0x42, 0x69, 0x03, 0x2f, 0x08, 0x86,
+ 0x19, 0x6d, 0x0d, 0x5c, 0x08, 0x01, 0x29, 0x58, 0x01, 0x62, 0x87, 0x73, 0x36, 0x06, 0x39, 0x0a,
+ 0x86, 0x5c, 0x5f, 0x7f, 0x01, 0x84, 0x7a, 0x67, 0x02, 0x7f, 0x8e, 0x86, 0x39, 0x4e, 0x7f, 0x90,
+ 0x0e, 0x7a, 0x70, 0x79, 0x07, 0x3b, 0x2b, 0x0a, 0x0b, 0x58, 0x71, 0x2c, 0x26, 0x26, 0x26, 0x2d,
+ 0x06, 0x3a, 0xd4, 0xc5, 0xca, 0x3f, 0x3f, 0x45, 0x4d, 0x80, 0x08, 0x0e, 0x39, 0x30, 0x48, 0x0e,
+ 0x74, 0x19, 0x03, 0x86, 0x39, 0x4e, 0x3d, 0x01, 0x84, 0x7a, 0x67, 0x78, 0x26, 0x26, 0x18, 0x90,
+ 0x0d, 0x8a, 0x0d, 0x5f, 0x19, 0x01, 0x0a, 0x40, 0x3b, 0x62, 0x35, 0x0f, 0x65, 0x62, 0x8b, 0x02,
+ 0x2b, 0x02, 0x1b, 0x47, 0x87, 0x27, 0x1f, 0x86, 0x27, 0x1f, 0x86, 0x27, 0x1f, 0x86, 0x27, 0x29,
+ 0x42, 0x00, 0x27, 0x0e, 0x49, 0x09, 0x73, 0x0c, 0x58, 0x5c, 0x01, 0x2d, 0x2e, 0x1e, 0x38, 0x1e,
+ 0x38, 0x30, 0x0d, 0x65,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans24_aa_dictionary_offsets[170] = {
+ 0x0000, 0x0001, 0x0002, 0x0004, 0x0005, 0x0006, 0x0007, 0x0009,
+ 0x0010, 0x0011, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001e,
+ 0x001f, 0x0021, 0x0022, 0x0023, 0x0024, 0x0026, 0x0027, 0x0029,
+ 0x002b, 0x002c, 0x002d, 0x002f, 0x0031, 0x0033, 0x0035, 0x0037,
+ 0x0039, 0x003f, 0x0041, 0x0042, 0x0044, 0x0045, 0x0046, 0x0048,
+ 0x004c, 0x004d, 0x0050, 0x0052, 0x0054, 0x0056, 0x0058, 0x005a,
+ 0x005d, 0x005f, 0x0061, 0x0063, 0x0064, 0x0066, 0x0068, 0x006a,
+ 0x006c, 0x006e, 0x006f, 0x0071, 0x0073, 0x0076, 0x0078, 0x007c,
+ 0x007e, 0x0080, 0x0083, 0x0085, 0x0086, 0x0088, 0x0089, 0x008b,
+ 0x008d, 0x008f, 0x0091, 0x0092, 0x0094, 0x009a, 0x009c, 0x009f,
+ 0x00a1, 0x00a3, 0x00a4, 0x00a6, 0x00a8, 0x00aa, 0x00ac, 0x00ae,
+ 0x00b0, 0x00b2, 0x00b4, 0x00b6, 0x00b7, 0x00b9, 0x00bc, 0x00be,
+ 0x00c0, 0x00c2, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00cb, 0x00cc,
+ 0x00cd, 0x00cf, 0x00d0, 0x00d2, 0x00d5, 0x00d7, 0x00d9, 0x00da,
+ 0x00dc, 0x00de, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00ea,
+ 0x00ec, 0x00ee, 0x010e, 0x0111, 0x0117, 0x0119, 0x0142, 0x0159,
+ 0x0166, 0x0168, 0x016f, 0x0177, 0x0188, 0x018d, 0x018f, 0x0191,
+ 0x0193, 0x019a, 0x01a0, 0x01c2, 0x01c4, 0x01c8, 0x01cb, 0x01d4,
+ 0x01db, 0x01dd, 0x01df, 0x01f2, 0x01f4, 0x01f8, 0x01fb, 0x01ff,
+ 0x0201, 0x0207, 0x020f, 0x0211, 0x0213, 0x021c, 0x021e, 0x0229,
+ 0x0231, 0x023f, 0x0241, 0x0243, 0x0245, 0x0247, 0x0249, 0x024c,
+ 0x0252, 0x0254,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans24_aa_glyph_data_0[4800] = {
+ 0x08, 0x00, 0x10, 0x0a, 0x2d, 0x4c, 0xae, 0x7e, 0x5c, 0x7e, 0x8a, 0x7e, 0x0d, 0x0d, 0x7e, 0x0c,
+ 0x0c, 0x7f, 0x81, 0x98, 0x10, 0x0b, 0x4c, 0x50, 0x7f, 0x93, 0x93, 0x93, 0x10, 0x14, 0x3a, 0x18,
+ 0x52, 0x54, 0x53, 0x1d, 0x36, 0x01, 0x2d, 0x09, 0x55, 0x1d, 0x4a, 0x3a, 0x6c, 0x44, 0xb3, 0x85,
+ 0x2d, 0x01, 0x39, 0x1d, 0x07, 0x46, 0x00, 0x76, 0x5a, 0x3d, 0x36, 0x5b, 0x2b, 0x36, 0x5b, 0x30,
+ 0x35, 0x7d, 0x3a, 0x0e, 0x0d, 0x19, 0xaf, 0x53, 0x2d, 0x03, 0x3b, 0x1d, 0x09, 0x65, 0xaf, 0x46,
+ 0x1d, 0x0d, 0xe5, 0x0a, 0x65, 0x3d, 0x5b, 0x3b, 0x2b, 0x5b, 0x3b, 0x3d, 0x52, 0x54, 0x53, 0x1d,
+ 0x36, 0x01, 0x2d, 0x09, 0x55, 0x1d, 0x4a, 0x3a, 0x6c, 0x01, 0x19, 0x76, 0x85, 0x2d, 0x01, 0x39,
+ 0x1d, 0x07, 0x46, 0x00, 0x76, 0x5a, 0x10, 0x0f, 0x2d, 0x18, 0x3e, 0x3e, 0x0f, 0x3c, 0x8f, 0xbd,
+ 0x66, 0x03, 0x19, 0x01, 0x42, 0x40, 0x19, 0x09, 0x4a, 0x05, 0x01, 0x0f, 0x80, 0x07, 0x0c, 0x19,
+ 0x0e, 0x65, 0xf8, 0x1b, 0x87, 0x01, 0xf8, 0x7f, 0x0c, 0x85, 0x01, 0xfe, 0x7f, 0x88, 0x0e, 0x36,
+ 0x05, 0x01, 0x3a, 0xb3, 0x0b, 0x31, 0x7d, 0x03, 0x2a, 0x8c, 0x7d, 0x58, 0x55, 0x20, 0xcc, 0x01,
+ 0x0a, 0x39, 0x1d, 0xc8, 0x89, 0x1d, 0xc8, 0x03, 0x5c, 0x69, 0x67, 0x03, 0x44, 0x49, 0x06, 0x0d,
+ 0x85, 0x30, 0xe0, 0x5c, 0x31, 0x79, 0x69, 0x33, 0x0b, 0x0d, 0x0e, 0x5c, 0x0b, 0x4e, 0x3c, 0x3e,
+ 0x3e, 0x3e, 0x0f, 0x10, 0x17, 0x00, 0x5d, 0x35, 0x0a, 0x8a, 0x0a, 0x02, 0x1b, 0x76, 0x5c, 0x02,
+ 0x62, 0x4f, 0x82, 0x72, 0x0e, 0x01, 0x1b, 0x0c, 0x53, 0x25, 0x08, 0x46, 0xaf, 0x0f, 0x37, 0xaf,
+ 0x4a, 0x2b, 0x42, 0x78, 0x35, 0x4a, 0x3a, 0x4f, 0x59, 0x2e, 0x01, 0x2d, 0x01, 0xc7, 0x08, 0x7d,
+ 0x2d, 0x2e, 0x01, 0x2d, 0x01, 0xf7, 0x35, 0x0f, 0x65, 0x23, 0x42, 0x78, 0x35, 0x4a, 0x2d, 0x0b,
+ 0x85, 0x30, 0x09, 0x46, 0xaf, 0x5a, 0x76, 0xbe, 0x2b, 0x4f, 0x82, 0x72, 0x0e, 0x44, 0x0d, 0x53,
+ 0x35, 0x0a, 0x8a, 0x0a, 0x02, 0x27, 0x35, 0x0b, 0x8a, 0x0a, 0x78, 0x07, 0x4a, 0x00, 0x4f, 0x82,
+ 0x72, 0x0e, 0x01, 0x30, 0x01, 0x58, 0x57, 0x08, 0x46, 0xaf, 0x5a, 0x30, 0x09, 0x7d, 0x2d, 0x42,
+ 0x78, 0x35, 0x4a, 0x23, 0x8b, 0x02, 0x50, 0x01, 0x2d, 0x89, 0x23, 0x0b, 0x85, 0x34, 0x01, 0x2d,
+ 0x89, 0x2b, 0x05, 0xbe, 0x00, 0x42, 0x78, 0x35, 0x4a, 0x2b, 0x0d, 0x46, 0x22, 0x08, 0x46, 0xaf,
+ 0x5a, 0x25, 0x07, 0x39, 0x1b, 0x4f, 0x82, 0x72, 0x0e, 0x01, 0x62, 0x83, 0x04, 0x1b, 0x35, 0x0a,
+ 0x8a, 0x0a, 0x02, 0x10, 0x13, 0x4b, 0x8f, 0x7c, 0x71, 0x03, 0x20, 0x75, 0xc3, 0x20, 0x21, 0x03,
+ 0x07, 0x0c, 0x20, 0x0d, 0x55, 0x62, 0x87, 0x44, 0xb9, 0x04, 0x73, 0xab, 0x29, 0x89, 0x6f, 0x22,
+ 0xb3, 0x0d, 0x7a, 0x6f, 0x1d, 0x63, 0x39, 0x04, 0x42, 0x82, 0x2d, 0x35, 0x5c, 0x2b, 0x52, 0x79,
+ 0x35, 0x42, 0x82, 0xaf, 0x7d, 0x2b, 0x42, 0x05, 0x3a, 0x83, 0x0e, 0x03, 0x00, 0x0c, 0x46, 0x00,
+ 0x2e, 0x01, 0x22, 0x83, 0x45, 0xbe, 0x62, 0x0e, 0x65, 0x1b, 0x03, 0x0e, 0x86, 0x46, 0x23, 0x48,
+ 0x6f, 0x1b, 0x52, 0xbe, 0x25, 0x83, 0x0d, 0x06, 0x78, 0x03, 0x09, 0x7a, 0x7d, 0x30, 0x03, 0x0d,
+ 0xc3, 0x53, 0x88, 0x0a, 0x30, 0x8f, 0xbd, 0x71, 0x03, 0x2d, 0x88, 0x08, 0x10, 0x07, 0x27, 0xae,
+ 0x10, 0x09, 0x1c, 0x35, 0x9d, 0x09, 0x55, 0x3c, 0x35, 0x9d, 0x52, 0x05, 0x73, 0x0d, 0x0e, 0x01,
+ 0x3c, 0x76, 0x3b, 0x73, 0x07, 0x53, 0xa8, 0x57, 0xb9, 0x02, 0x73, 0x58, 0x01, 0x62, 0x87, 0x7e,
+ 0x58, 0x44, 0xb9, 0x02, 0xa8, 0x04, 0x73, 0x07, 0x53, 0x29, 0x76, 0x3b, 0x7e, 0x0d, 0x0e, 0x01,
+ 0x73, 0x52, 0x05, 0x29, 0x35, 0x7d, 0x7e, 0x09, 0x55, 0x29, 0x35, 0x7d, 0x10, 0x09, 0xba, 0xa8,
+ 0x02, 0x29, 0x76, 0x85, 0x7e, 0x0b, 0x49, 0x3c, 0xaf, 0x5a, 0x73, 0x4f, 0x0d, 0x7e, 0x0a, 0x65,
+ 0x73, 0x07, 0x53, 0x29, 0x76, 0x9d, 0x02, 0x94, 0x47, 0x2c, 0x92, 0x02, 0x94, 0x04, 0x9d, 0x07,
+ 0x53, 0xa8, 0x04, 0x29, 0x4f, 0x0d, 0x3c, 0xaf, 0x5a, 0xa8, 0x02, 0x3c, 0x76, 0x85, 0xa8, 0x02,
+ 0x10, 0x0c, 0x18, 0x3e, 0x0f, 0x7f, 0x09, 0x8d, 0xc8, 0x6d, 0x09, 0x69, 0x03, 0x0a, 0x3b, 0x03,
+ 0x65, 0x0a, 0x3b, 0x03, 0x19, 0x35, 0x08, 0x58, 0x45, 0x02, 0x1d, 0x35, 0x08, 0x58, 0x45, 0x78,
+ 0xb3, 0x0a, 0x3b, 0x03, 0x65, 0x0a, 0x3b, 0x03, 0x69, 0x09, 0x8d, 0xc8, 0x6d, 0x09, 0x7f, 0x3e,
+ 0x0f, 0x10, 0x14, 0x69, 0x81, 0xae, 0x69, 0xe0, 0x5b, 0xba, 0xe0, 0x5b, 0x20, 0xa4, 0x10, 0x08,
+ 0x43, 0x87, 0x2c, 0x29, 0x35, 0x94, 0x05, 0x99, 0x10, 0x09, 0x5d, 0x81, 0x81, 0x6b, 0xc3, 0x7f,
+ 0xc3, 0x10, 0x08, 0x43, 0x87, 0x26, 0x10, 0x08, 0x1d, 0xb3, 0x94, 0x08, 0x5a, 0x73, 0x0c, 0x55,
+ 0x3c, 0x35, 0x5c, 0x3c, 0xaf, 0x3b, 0xa8, 0x06, 0x29, 0x01, 0x58, 0x01, 0x29, 0x05, 0x39, 0x73,
+ 0x09, 0x53, 0x73, 0xc0, 0x27, 0xb3, 0x94, 0x70, 0xbc, 0x0c, 0x55, 0x20, 0xa3, 0x01, 0x7f, 0xaf,
+ 0x9d, 0x0a, 0x46, 0x73, 0xbb, 0x3c, 0x76, 0x39, 0x73, 0x08, 0x5a, 0x73, 0xc0, 0x10, 0x0f, 0x18,
+ 0x84, 0x8a, 0x0c, 0x06, 0x2a, 0x0b, 0x24, 0x7d, 0x20, 0x21, 0x05, 0x0e, 0x5a, 0x3d, 0x35, 0x0f,
+ 0x65, 0x22, 0x8b, 0x01, 0x23, 0xaf, 0x3b, 0x27, 0x0a, 0x46, 0x3d, 0x0a, 0x59, 0x1b, 0x05, 0x3b,
+ 0x3d, 0xc0, 0x27, 0x03, 0x39, 0x3d, 0x58, 0x44, 0xa3, 0x41, 0x3a, 0x1a, 0x64, 0x0f, 0x44, 0xa3,
+ 0x3d, 0xc0, 0x27, 0x03, 0x39, 0x3d, 0x0a, 0x59, 0x1b, 0x05, 0x3b, 0x23, 0xaf, 0x3b, 0x27, 0x0a,
+ 0x46, 0x30, 0x35, 0x0f, 0x65, 0x22, 0x8b, 0x01, 0x69, 0x21, 0x05, 0x0e, 0x5a, 0x20, 0x0b, 0x24,
+ 0x7d, 0x2a, 0x84, 0x8a, 0x0c, 0x06, 0x10, 0x0f, 0x1c, 0x02, 0x06, 0x0a, 0x0e, 0x86, 0x7f, 0xc3,
+ 0x7f, 0x71, 0x06, 0x02, 0xa4, 0xae, 0x7f, 0x51, 0x19, 0x51, 0x10, 0x0f, 0x2d, 0x5d, 0x33, 0x0b,
+ 0x0d, 0x5c, 0x71, 0x03, 0x30, 0xd4, 0x40, 0x53, 0x19, 0x67, 0x05, 0x7b, 0x80, 0x48, 0x55, 0x73,
+ 0x08, 0x9d, 0x47, 0x92, 0x04, 0x39, 0x73, 0x0c, 0x53, 0x29, 0x48, 0x79, 0x3c, 0x07, 0x5c, 0x03,
+ 0x3c, 0x70, 0x55, 0x3c, 0x70, 0x55, 0x3c, 0x70, 0x59, 0x7f, 0x70, 0x59, 0x7f, 0x70, 0x59, 0x7f,
+ 0x70, 0x59, 0x3c, 0x9e, 0x01, 0x3d, 0x9e, 0x01, 0x10, 0x0f, 0x19, 0xb3, 0x08, 0x0b, 0x0e, 0x5c,
+ 0x61, 0x1d, 0x40, 0x3b, 0x20, 0x74, 0x4d, 0x80, 0x52, 0x46, 0x73, 0x07, 0x39, 0x29, 0x35, 0x86,
+ 0x92, 0x06, 0x3b, 0x3c, 0x33, 0x5c, 0x03, 0x20, 0xe2, 0x7d, 0x03, 0x1d, 0xe2, 0x5c, 0x09, 0x01,
+ 0x3c, 0x60, 0x0a, 0x5c, 0x02, 0x73, 0x08, 0x9d, 0x47, 0x92, 0x08, 0x7d, 0x3d, 0x74, 0x4d, 0x2d,
+ 0x60, 0x0a, 0x86, 0x57, 0x1e, 0xc3, 0x5c, 0x05, 0x69, 0x03, 0x07, 0x0b, 0x58, 0x5c, 0x0b, 0x07,
+ 0x01, 0x10, 0x0f, 0x7f, 0xb3, 0x7a, 0x29, 0xbd, 0x0f, 0x3c, 0x07, 0x53, 0x86, 0x7f, 0x4f, 0x0d,
+ 0x6e, 0x7f, 0x0a, 0x55, 0x6e, 0x1d, 0x76, 0x7d, 0x50, 0x2a, 0x0d, 0x49, 0x50, 0x1d, 0x07, 0x5a,
+ 0x34, 0x19, 0x35, 0x0f, 0x79, 0x34, 0x20, 0x36, 0x05, 0x1a, 0x19, 0x05, 0x7d, 0x00, 0x1a, 0x19,
+ 0xc0, 0x00, 0x1a, 0x19, 0x5b, 0x30, 0x40, 0x32, 0x87, 0x9f, 0x10, 0x0f, 0x1c, 0x28, 0x2d, 0x28,
+ 0x50, 0xb5, 0x0c, 0x8a, 0x67, 0x02, 0x1d, 0xc3, 0x5c, 0x04, 0x20, 0x0b, 0x06, 0x78, 0x8c, 0x0c,
+ 0x5c, 0x02, 0x73, 0x0c, 0x5a, 0x29, 0x76, 0x94, 0x47, 0x92, 0x04, 0x4a, 0x29, 0x75, 0x08, 0x69,
+ 0x74, 0x03, 0x44, 0x8c, 0x0c, 0xbe, 0x30, 0x40, 0x5c, 0x03, 0xb3, 0x08, 0xbd, 0xb2, 0x01, 0x10,
+ 0x0f, 0x00, 0x18, 0x07, 0xbd, 0x71, 0x03, 0x20, 0x72, 0x40, 0x19, 0x83, 0x0b, 0x68, 0x35, 0x84,
+ 0x19, 0x0b, 0x85, 0x27, 0xb3, 0x94, 0x08, 0x53, 0xa8, 0x03, 0x03, 0x0a, 0x0e, 0x4a, 0x8d, 0x19,
+ 0x0e, 0x53, 0x24, 0x5c, 0x04, 0x87, 0x6a, 0x78, 0x6d, 0x5c, 0x78, 0x1e, 0x7d, 0x1b, 0x0b, 0x85,
+ 0x3d, 0x58, 0x55, 0x22, 0x76, 0x4a, 0x3d, 0x7c, 0x01, 0xa3, 0x3d, 0x0a, 0x86, 0x01, 0xa3, 0x23,
+ 0xaf, 0x0f, 0x55, 0x22, 0x76, 0x4a, 0x3d, 0x4f, 0x7d, 0x1b, 0x0b, 0x5a, 0x69, 0x08, 0x6a, 0x78,
+ 0x6d, 0x5c, 0x02, 0x19, 0x0a, 0x24, 0x5c, 0x04, 0x1d, 0x05, 0xad, 0x02, 0x10, 0x0f, 0x4c, 0x28,
+ 0x51, 0x0c, 0xa8, 0x06, 0x3c, 0x35, 0xbe, 0x7f, 0x52, 0xbc, 0x0e, 0x65, 0x29, 0x05, 0x39, 0x73,
+ 0x0c, 0x46, 0x27, 0xb3, 0xbe, 0x7f, 0x09, 0x85, 0x29, 0x4f, 0x65, 0x29, 0xa9, 0x73, 0x6c, 0x05,
+ 0x27, 0xb3, 0x5c, 0x73, 0x09, 0x5a, 0x29, 0x01, 0xbb, 0x7f, 0xaf, 0x9d, 0x6c, 0x05, 0x10, 0x0f,
+ 0x1c, 0x76, 0x0a, 0x0d, 0x86, 0x5e, 0x04, 0x20, 0x09, 0xc3, 0x6a, 0x30, 0xaf, 0x6a, 0x4d, 0x80,
+ 0x48, 0x46, 0x3d, 0x0c, 0x53, 0x27, 0x07, 0x39, 0x00, 0x1e, 0x56, 0x3d, 0x58, 0x01, 0x27, 0x01,
+ 0x4a, 0x3d, 0x0a, 0x46, 0x27, 0x07, 0x3b, 0x3d, 0x83, 0x09, 0x4d, 0x80, 0x09, 0x5c, 0x02, 0x3d,
+ 0x35, 0x0a, 0x24, 0x3b, 0x02, 0x69, 0x76, 0x0c, 0x24, 0x39, 0x04, 0x69, 0x03, 0x6a, 0x4d, 0x80,
+ 0x48, 0x65, 0x3d, 0x0b, 0x53, 0x27, 0x07, 0x7d, 0x3d, 0x58, 0x44, 0xa3, 0x3d, 0x58, 0x44, 0xa3,
+ 0x3d, 0x0c, 0x53, 0x27, 0x07, 0x39, 0x23, 0xaf, 0x6a, 0x4d, 0x80, 0x48, 0x46, 0x69, 0x09, 0xc3,
+ 0x6a, 0x19, 0x76, 0x0a, 0x0d, 0x86, 0x5e, 0x04, 0x10, 0x0f, 0x4b, 0x6d, 0x0d, 0x5c, 0x61, 0x20,
+ 0x76, 0x2f, 0x0a, 0x19, 0x83, 0x8d, 0x35, 0x48, 0x53, 0x69, 0x08, 0x7d, 0x1b, 0x0b, 0xbe, 0x23,
+ 0x0d, 0x55, 0x1b, 0x88, 0x06, 0x3d, 0x58, 0x01, 0x1b, 0x89, 0x0a, 0x00, 0x1e, 0x01, 0x1b, 0x89,
+ 0x0c, 0x3d, 0xc0, 0x1b, 0x88, 0x0e, 0x3d, 0x09, 0x3b, 0x1b, 0x0b, 0x7a, 0x3d, 0x83, 0x09, 0x78,
+ 0x6d, 0x31, 0x69, 0x05, 0xc3, 0x53, 0x5c, 0x19, 0x6d, 0x0d, 0x5c, 0x0a, 0x03, 0x03, 0x9d, 0x07,
+ 0x5a, 0x73, 0xc0, 0x29, 0x09, 0x7d, 0x19, 0x0c, 0x06, 0x78, 0x60, 0x0b, 0x5c, 0x02, 0x19, 0xc3,
+ 0x4a, 0x78, 0xb3, 0x09, 0x42, 0xb2, 0x01, 0x10, 0x08, 0x6b, 0x98, 0x81, 0x81, 0x81, 0x9f, 0x10,
+ 0x08, 0x6b, 0x98, 0x81, 0x81, 0x81, 0x26, 0x29, 0x35, 0x94, 0x05, 0x99, 0x10, 0x14, 0x2b, 0x18,
+ 0x81, 0x81, 0x8f, 0x0c, 0x7f, 0x8c, 0x0b, 0x7a, 0x1d, 0x90, 0x0e, 0x86, 0x3b, 0x05, 0x69, 0x8e,
+ 0xb4, 0x69, 0x0a, 0x86, 0x5c, 0x5f, 0x22, 0x87, 0x7d, 0x01, 0x3c, 0xaa, 0x0a, 0x05, 0x7f, 0x8c,
+ 0x0b, 0x7a, 0x73, 0x8f, 0x0c, 0x10, 0x14, 0x4b, 0x6b, 0x2c, 0x5b, 0x2b, 0x5b, 0xc7, 0x18, 0x81,
+ 0x9e, 0xd3, 0x2e, 0x5b, 0x10, 0x14, 0x1c, 0x81, 0x81, 0x74, 0x01, 0x3c, 0xe0, 0x61, 0x3c, 0x05,
+ 0xaa, 0x0a, 0x3c, 0x01, 0x0b, 0x7a, 0x2a, 0x90, 0x0e, 0x86, 0x3b, 0x19, 0x8e, 0xb4, 0x3d, 0x05,
+ 0x0a, 0x86, 0x5c, 0x5f, 0x19, 0xe0, 0x61, 0x01, 0x7f, 0x74, 0x01, 0x10, 0x0d, 0x1c, 0x6d, 0x42,
+ 0x71, 0x01, 0x19, 0xaf, 0xc3, 0x82, 0x20, 0x4a, 0x4e, 0x60, 0x0d, 0x3b, 0x20, 0x09, 0x01, 0x3a,
+ 0x76, 0x5c, 0x73, 0x89, 0x73, 0x05, 0x39, 0x27, 0xb3, 0x58, 0x05, 0x1b, 0xb3, 0x0e, 0x3b, 0x3c,
+ 0x83, 0x0a, 0x29, 0x0a, 0x3b, 0x73, 0x58, 0x01, 0x62, 0x87, 0x2c, 0x81, 0x9f, 0x10, 0x18, 0x2b,
+ 0x81, 0x33, 0x0b, 0x0d, 0x58, 0x5e, 0x4e, 0x30, 0x35, 0x48, 0x40, 0x5c, 0x06, 0x2b, 0x76, 0x58,
+ 0x3b, 0x05, 0x78, 0x01, 0x02, 0x06, 0x36, 0x7d, 0x25, 0x88, 0x0b, 0x02, 0xba, 0x76, 0x0d, 0x7d,
+ 0xba, 0x83, 0x08, 0x23, 0x72, 0x5a, 0x27, 0x0a, 0x7d, 0x3a, 0x05, 0x0c, 0x8a, 0x61, 0x6e, 0x35,
+ 0x0f, 0x49, 0x22, 0x03, 0xbe, 0x08, 0x24, 0x53, 0xe7, 0x09, 0x5a, 0x22, 0x52, 0x37, 0x88, 0x8d,
+ 0x80, 0x09, 0xeb, 0x76, 0x39, 0x22, 0x0c, 0x55, 0x2d, 0x0b, 0x85, 0x1b, 0x09, 0xe7, 0x47, 0x22,
+ 0x58, 0x01, 0x2d, 0xbb, 0x22, 0x35, 0x86, 0x34, 0x1a, 0x34, 0x01, 0x1b, 0x01, 0xf7, 0x35, 0x4a,
+ 0x22, 0x58, 0x01, 0x2d, 0xbb, 0x22, 0x35, 0x86, 0xaf, 0x3b, 0x22, 0x0c, 0x55, 0x2d, 0x0b, 0x85,
+ 0x1b, 0x09, 0xf7, 0x75, 0x04, 0x22, 0x08, 0x85, 0x00, 0x76, 0x6a, 0x7b, 0x6d, 0x86, 0x65, 0x0b,
+ 0x3b, 0x1b, 0x03, 0xbe, 0x08, 0x24, 0x53, 0x86, 0x6a, 0x01, 0x27, 0x0b, 0x3b, 0x3a, 0x05, 0x0c,
+ 0x8a, 0x61, 0x00, 0x0e, 0x71, 0x03, 0x62, 0x03, 0x58, 0xbc, 0x77, 0x0b, 0x02, 0xba, 0x76, 0x0c,
+ 0x03, 0x2b, 0x05, 0x58, 0x3b, 0x05, 0x7b, 0x01, 0x02, 0x06, 0x0b, 0x39, 0x02, 0x2b, 0x35, 0x0a,
+ 0x0f, 0x40, 0x5a, 0x01, 0x69, 0x03, 0x07, 0x0b, 0x42, 0xb2, 0x02, 0x10, 0x10, 0x00, 0x18, 0x52,
+ 0x5a, 0xb9, 0x4a, 0x7f, 0x76, 0x4a, 0x0d, 0x55, 0x7f, 0x09, 0x5a, 0x08, 0x3b, 0x2a, 0x01, 0xbb,
+ 0x02, 0xbe, 0x3d, 0xaf, 0x7d, 0x2d, 0x0b, 0x46, 0x1d, 0x0b, 0x46, 0xaf, 0x7d, 0x19, 0x35, 0xbe,
+ 0x01, 0xbb, 0x19, 0x07, 0x3b, 0x22, 0x0a, 0x53, 0x19, 0x0d, 0x55, 0x3a, 0x76, 0x4a, 0x69, 0x03,
+ 0x5c, 0x27, 0xc0, 0x3d, 0x09, 0x5a, 0x27, 0x08, 0x85, 0x3d, 0x2f, 0x7a, 0x5c, 0x30, 0x77, 0x51,
+ 0x05, 0x23, 0x0b, 0x46, 0x27, 0xaf, 0x7d, 0x2b, 0x89, 0x01, 0x62, 0x89, 0x01, 0x25, 0xac, 0x53,
+ 0x25, 0x6c, 0x05, 0x2b, 0x05, 0x39, 0x10, 0x10, 0x4c, 0x31, 0xb2, 0x2d, 0x87, 0x40, 0x6f, 0x69,
+ 0xc7, 0x35, 0x06, 0x0e, 0x5a, 0x87, 0x22, 0xaf, 0x4a, 0x87, 0x27, 0x89, 0x9c, 0x05, 0x7d, 0x69,
+ 0xc7, 0x35, 0x06, 0x58, 0x05, 0x69, 0x40, 0x4a, 0x06, 0x23, 0xd4, 0x40, 0x7d, 0x02, 0x87, 0x22,
+ 0x01, 0x33, 0x5c, 0x78, 0x1e, 0x1b, 0xaf, 0x3b, 0x41, 0x27, 0x01, 0x4a, 0x41, 0x27, 0x89, 0x41,
+ 0x22, 0xaf, 0x4a, 0x41, 0x3a, 0x35, 0x70, 0x53, 0x3d, 0x51, 0x0a, 0x69, 0x40, 0x5e, 0x05, 0x10,
+ 0x11, 0x1d, 0xb3, 0x08, 0xbd, 0x0e, 0x0b, 0x07, 0x01, 0x19, 0x09, 0x40, 0x5c, 0x05, 0x3d, 0x36,
+ 0x45, 0x03, 0x44, 0x01, 0x90, 0x58, 0x30, 0x52, 0x82, 0xba, 0x01, 0x0a, 0x2b, 0x35, 0x0f, 0x65,
+ 0x29, 0x07, 0x85, 0xa8, 0x57, 0xb9, 0x02, 0x62, 0x87, 0x2c, 0x7e, 0x0d, 0x49, 0xa8, 0x04, 0x73,
+ 0x70, 0xbc, 0x02, 0x0f, 0x65, 0x73, 0x52, 0x82, 0xba, 0x01, 0x0a, 0x3d, 0x36, 0x45, 0x03, 0x44,
+ 0x01, 0x90, 0x58, 0x69, 0x09, 0x40, 0x5c, 0x05, 0xb3, 0x08, 0xbd, 0x0e, 0x0b, 0x07, 0x01, 0x10,
+ 0x12, 0x4c, 0x7a, 0x8a, 0x0c, 0x09, 0x4e, 0x69, 0x51, 0x45, 0x41, 0x3a, 0x80, 0x06, 0x36, 0x7d,
+ 0x1e, 0xba, 0x76, 0x0e, 0x85, 0x2d, 0x2e, 0x25, 0x8b, 0x78, 0x2e, 0x2b, 0x0a, 0x5a, 0x00, 0x2e,
+ 0x2b, 0x05, 0x7d, 0x00, 0x2e, 0x25, 0x35, 0x4a, 0x00, 0x2e, 0x1b, 0xa3, 0x00, 0x2e, 0x1b, 0xa3,
+ 0x00, 0x2e, 0x25, 0x35, 0x4a, 0x00, 0x2e, 0x2b, 0x05, 0x7d, 0x00, 0x2e, 0x2b, 0x0a, 0x5a, 0x00,
+ 0x2e, 0x25, 0x8b, 0x78, 0x2e, 0xba, 0x76, 0x0e, 0x85, 0xba, 0xd4, 0xc5, 0x80, 0x06, 0x36, 0x7d,
+ 0x30, 0x51, 0x45, 0x30, 0xc2, 0x5c, 0x0c, 0x09, 0x4e, 0x10, 0x0f, 0x4c, 0x28, 0x86, 0x28, 0xa4,
+ 0x0f, 0x40, 0x19, 0x51, 0x19, 0xa4, 0x28, 0x9e, 0x10, 0x0e, 0x2d, 0x5d, 0x51, 0x19, 0x51, 0x19,
+ 0xa4, 0x40, 0x20, 0x28, 0x50, 0xae, 0x10, 0x13, 0x18, 0x90, 0x0d, 0x58, 0x5e, 0x4e, 0x69, 0x01,
+ 0x0a, 0x40, 0x5c, 0x05, 0x30, 0x75, 0x0e, 0x07, 0x4d, 0x35, 0x05, 0x09, 0x86, 0x30, 0x48, 0x6f,
+ 0xba, 0x01, 0x0a, 0x2b, 0x35, 0x5c, 0x02, 0x29, 0x52, 0xbc, 0x0b, 0x55, 0x73, 0x58, 0x01, 0x1d,
+ 0x3f, 0xd3, 0x2e, 0xba, 0xc3, 0x2b, 0x58, 0x78, 0x2e, 0x2b, 0x36, 0x57, 0x2e, 0x2b, 0x07, 0x85,
+ 0x00, 0x2e, 0x25, 0x35, 0x0f, 0x49, 0x2e, 0x23, 0x48, 0x82, 0x22, 0x1a, 0x30, 0x0c, 0x5c, 0x5f,
+ 0x44, 0x35, 0x05, 0x0b, 0x86, 0x3d, 0x48, 0x40, 0x4a, 0x04, 0x69, 0x03, 0x08, 0xbd, 0x0e, 0x0c,
+ 0x5f, 0x10, 0x12, 0x4c, 0x2e, 0x1e, 0x38, 0x1e, 0xbf, 0x5b, 0x30, 0x5b, 0x1e, 0xbf, 0x86, 0x2e,
+ 0x1e, 0x38, 0x10, 0x07, 0x27, 0xb5, 0xae, 0xae, 0x10, 0x07, 0x27, 0xb5, 0xae, 0xae, 0x29, 0x35,
+ 0x94, 0x06, 0x7d, 0x3c, 0x8c, 0x0e, 0x46, 0x1d, 0xe0, 0x39, 0x27, 0x87, 0x67, 0x01, 0x10, 0x10,
+ 0x4c, 0xba, 0x52, 0x53, 0x1e, 0x27, 0x52, 0x53, 0x41, 0x22, 0x48, 0x46, 0x87, 0x22, 0x48, 0x46,
+ 0x19, 0xc7, 0x48, 0x46, 0x19, 0xca, 0x0a, 0x86, 0x05, 0x22, 0x41, 0x0a, 0x86, 0x05, 0x22, 0x87,
+ 0x36, 0x59, 0x22, 0x87, 0x6a, 0x27, 0x87, 0x70, 0x53, 0x27, 0x41, 0x70, 0x5a, 0x1d, 0xca, 0x70,
+ 0x5a, 0x1d, 0xc7, 0x07, 0x6a, 0x19, 0xca, 0xaf, 0x6a, 0x19, 0xc7, 0xaf, 0x6a, 0x87, 0x22, 0xaf,
+ 0x0f, 0x3b, 0x41, 0x22, 0xaf, 0x0f, 0x3b, 0x1e, 0x62, 0x77, 0x0b, 0x10, 0x0d, 0x98, 0xae, 0xae,
+ 0x28, 0x9e, 0x10, 0x15, 0x4c, 0x53, 0x62, 0x07, 0x7a, 0x2e, 0x4a, 0x62, 0x0d, 0x7a, 0x2e, 0x0e,
+ 0x65, 0x27, 0x03, 0x4a, 0x86, 0x2e, 0x08, 0x85, 0x27, 0x09, 0x5a, 0x86, 0x2e, 0x03, 0x5c, 0x27,
+ 0xbb, 0x86, 0xba, 0xd0, 0x6c, 0x05, 0x22, 0x05, 0x39, 0x6e, 0xba, 0xd0, 0x06, 0x7d, 0x22, 0x0b,
+ 0x46, 0x6e, 0xba, 0xd0, 0x89, 0x01, 0x2d, 0x89, 0x01, 0x6e, 0x62, 0xca, 0x0a, 0x53, 0x2d, 0x07,
+ 0x3b, 0x50, 0x62, 0xca, 0x05, 0x39, 0x2d, 0x0c, 0x55, 0x50, 0x25, 0xc7, 0x0e, 0x65, 0x03, 0x5c,
+ 0x34, 0x25, 0xc7, 0x08, 0x85, 0x09, 0x5a, 0x34, 0x25, 0xc7, 0x03, 0x0f, 0x8a, 0x65, 0x34, 0x2e,
+ 0x22, 0x6c, 0x39, 0x1a, 0x2e, 0x22, 0x70, 0x53, 0x1a, 0x2e, 0x1e, 0x38, 0x1e, 0x10, 0x12, 0x4c,
+ 0x65, 0x3a, 0x1a, 0x1e, 0x7d, 0x3a, 0x1a, 0x1e, 0x0e, 0x65, 0x2d, 0x1a, 0x1e, 0x08, 0x7d, 0x2d,
+ 0x1a, 0x1e, 0x01, 0x58, 0x57, 0x1a, 0x2b, 0xd0, 0x07, 0x39, 0x00, 0x1a, 0x2b, 0xd0, 0x4f, 0x59,
+ 0x34, 0x23, 0xca, 0xa9, 0x1a, 0x30, 0xc7, 0x42, 0x05, 0x34, 0x2b, 0xd0, 0xaf, 0x4a, 0x34, 0x1e,
+ 0x22, 0x0d, 0x46, 0x50, 0x1e, 0x22, 0x05, 0x4a, 0x50, 0x1e, 0x1b, 0x0c, 0x53, 0x6e, 0x1e, 0x22,
+ 0x76, 0x5c, 0x89, 0x1e, 0x27, 0x0b, 0x53, 0x86, 0x1e, 0x27, 0x03, 0x5c, 0x86, 0x1e, 0xba, 0x0b,
+ 0x7a, 0x1e, 0xba, 0x03, 0x7a, 0x10, 0x13, 0xb6, 0x01, 0x3d, 0x6c, 0xb1, 0x82, 0x27, 0x72, 0x5a,
+ 0x25, 0x35, 0x0f, 0x65, 0x62, 0x8b, 0x02, 0x25, 0xac, 0x53, 0x25, 0x36, 0xa0, 0x25, 0x35, 0x4a,
+ 0x38, 0x1e, 0x25, 0xbb, 0x25, 0x35, 0x4a, 0x25, 0x36, 0x05, 0x2b, 0x05, 0x7d, 0x25, 0xac, 0x53,
+ 0xb7, 0x48, 0x82, 0x27, 0x72, 0x85, 0x23, 0x75, 0x45, 0x4d, 0x80, 0x08, 0x0e, 0x39, 0x3d, 0x01,
+ 0x0a, 0x40, 0x3b, 0x01, 0x19, 0x90, 0x0d, 0x8a, 0x0d, 0x5f, 0x10, 0x0e, 0x4c, 0x7a, 0x5c, 0x61,
+ 0x30, 0xd4, 0x40, 0x3b, 0x19, 0xc7, 0x01, 0x02, 0x52, 0x53, 0xa1, 0x47, 0x9c, 0x07, 0x39, 0x69,
+ 0xc7, 0x01, 0x02, 0x52, 0x53, 0x87, 0xc3, 0x7d, 0x69, 0xc2, 0x5c, 0x61, 0x2d, 0x87, 0xae, 0x10,
+ 0x13, 0xb6, 0x01, 0x3d, 0x6c, 0xb1, 0x82, 0x27, 0x72, 0x85, 0x25, 0x35, 0x0f, 0x65, 0x62, 0x8b,
+ 0x02, 0x25, 0xac, 0x53, 0x25, 0x36, 0xa0, 0x25, 0x35, 0x4a, 0x38, 0x1e, 0x25, 0x0d, 0x49, 0x25,
+ 0x35, 0x5c, 0x25, 0x36, 0x05, 0x2b, 0x05, 0x7d, 0x25, 0xac, 0x5a, 0xb7, 0x52, 0x82, 0x27, 0x72,
+ 0x3b, 0x30, 0x6c, 0x45, 0x4d, 0x80, 0x08, 0x58, 0x79, 0x30, 0x01, 0x0a, 0x40, 0x7d, 0x01, 0x19,
+ 0x90, 0x0d, 0x0e, 0x86, 0x39, 0x73, 0x83, 0x08, 0x73, 0x8b, 0x06, 0x73, 0x77, 0x04, 0x10, 0x11,
+ 0x4c, 0x7a, 0x5c, 0x0b, 0x06, 0x30, 0xd4, 0x40, 0x7d, 0x23, 0xd4, 0xc5, 0x33, 0x0e, 0x53, 0x87,
+ 0x27, 0xa9, 0x00, 0x41, 0xa3, 0x9c, 0xa9, 0x69, 0xc7, 0x35, 0x70, 0x46, 0x87, 0xc3, 0x5a, 0x23,
+ 0xd4, 0x40, 0x6f, 0x19, 0xc7, 0x8c, 0x0d, 0x7d, 0x00, 0x87, 0x1b, 0x83, 0x05, 0xa1, 0x00, 0x0e,
+ 0x65, 0x41, 0x27, 0x08, 0x85, 0x41, 0x1b, 0x35, 0x5c, 0x01, 0x1e, 0x62, 0x0b, 0x46, 0x1e, 0x62,
+ 0x05, 0x39, 0x10, 0x0f, 0x20, 0xb3, 0x0a, 0x42, 0x4a, 0x0b, 0x07, 0x03, 0x19, 0x08, 0x28, 0x77,
+ 0x08, 0x4d, 0x35, 0x04, 0x08, 0x0d, 0x69, 0x0b, 0x46, 0x73, 0x58, 0x01, 0x62, 0x87, 0x01, 0x73,
+ 0x0c, 0x46, 0x3c, 0xaf, 0x6a, 0x03, 0x29, 0x08, 0x7a, 0x39, 0x09, 0x05, 0x2a, 0x8e, 0x7a, 0x4a,
+ 0x04, 0x7f, 0x60, 0x07, 0x42, 0x65, 0x73, 0x0a, 0x9d, 0x02, 0x5c, 0x92, 0xa9, 0x3d, 0x67, 0x05,
+ 0x02, 0x44, 0x80, 0x48, 0x59, 0x1e, 0x40, 0x5a, 0x69, 0x33, 0x0a, 0x0d, 0x0e, 0x5c, 0x0c, 0x09,
+ 0x03, 0x10, 0x0f, 0x5d, 0x9e, 0xcb, 0x2e, 0x51, 0xc7, 0x87, 0x2c, 0xae, 0xae, 0x10, 0x12, 0x4c,
+ 0xbf, 0x86, 0xbf, 0x86, 0x2e, 0x1e, 0x01, 0xba, 0x89, 0x30, 0x0d, 0x49, 0x27, 0x35, 0x4a, 0x30,
+ 0x0b, 0x46, 0x1b, 0xaf, 0x7d, 0x2b, 0xaf, 0x0f, 0x79, 0x1b, 0x63, 0x46, 0x3d, 0x0d, 0x39, 0x05,
+ 0x44, 0x8c, 0x0c, 0x4a, 0x69, 0x72, 0x40, 0x82, 0x19, 0x8f, 0xbd, 0xb2, 0x01, 0x10, 0x10, 0x5d,
+ 0x6c, 0x05, 0x2b, 0x05, 0x39, 0x25, 0xac, 0x53, 0x25, 0x89, 0x01, 0x62, 0x89, 0x01, 0x2b, 0x0b,
+ 0x53, 0x27, 0xaf, 0x7d, 0x23, 0x05, 0x39, 0x62, 0x6c, 0x05, 0x30, 0x0e, 0x65, 0x27, 0x03, 0x5c,
+ 0x3d, 0x09, 0x5a, 0x27, 0x08, 0x85, 0x3d, 0x03, 0x5c, 0x27, 0xc0, 0x69, 0x0d, 0x55, 0x3a, 0x76,
+ 0x4a, 0x19, 0x07, 0x3b, 0x22, 0x0a, 0x53, 0x69, 0x35, 0x86, 0x01, 0x2d, 0x01, 0xbb, 0x20, 0x0b,
+ 0x46, 0xaf, 0x7d, 0x1d, 0xa9, 0x2d, 0x0b, 0x46, 0x1d, 0x01, 0xbb, 0x02, 0xbe, 0x20, 0x09, 0x5a,
+ 0x07, 0x3b, 0x2a, 0x76, 0x4a, 0x0d, 0x55, 0x3c, 0x42, 0x4a, 0x29, 0x52, 0x5a, 0x10, 0x18, 0x00,
+ 0x5d, 0xc0, 0x27, 0x48, 0x3b, 0x27, 0x03, 0x4a, 0x3a, 0x0a, 0x46, 0x27, 0x6c, 0x4a, 0x22, 0xaf,
+ 0x3b, 0x00, 0xaf, 0x3b, 0xa3, 0xbb, 0x1b, 0x0a, 0x46, 0x2d, 0x35, 0x4a, 0x1b, 0x05, 0x7d, 0x36,
+ 0x05, 0x1b, 0x0d, 0x49, 0x22, 0xbb, 0x22, 0x08, 0x5a, 0x07, 0x85, 0x3a, 0x35, 0x5c, 0x1b, 0x0a,
+ 0x46, 0x22, 0x0c, 0x55, 0x04, 0x39, 0x2d, 0xaf, 0x3b, 0x3a, 0xaf, 0x85, 0x3a, 0x89, 0x01, 0x89,
+ 0x01, 0x3a, 0x09, 0x46, 0x1b, 0x03, 0x4a, 0x2d, 0x76, 0x39, 0x2d, 0x0c, 0x55, 0x3a, 0xc0, 0x27,
+ 0xbb, 0x2d, 0x70, 0x37, 0x52, 0x37, 0x02, 0x5c, 0xba, 0x36, 0x05, 0x2d, 0x36, 0x54, 0x7d, 0x2d,
+ 0x05, 0x7d, 0xba, 0x07, 0x85, 0x2d, 0x58, 0x01, 0x2d, 0x47, 0x2d, 0x09, 0x53, 0xba, 0x03, 0x4a,
+ 0x00, 0x03, 0x4a, 0x22, 0xc0, 0x00, 0xc0, 0x62, 0x58, 0x8f, 0x85, 0x22, 0x09, 0x53, 0x47, 0x25,
+ 0x36, 0x05, 0x0a, 0x46, 0x2d, 0xaf, 0x3b, 0x05, 0x7d, 0x25, 0x07, 0x85, 0xbb, 0x3a, 0x35, 0x5c,
+ 0x09, 0x53, 0x62, 0x76, 0x5c, 0x5c, 0x27, 0x58, 0x58, 0x57, 0x2e, 0x3b, 0x27, 0x0a, 0x7a, 0x23,
+ 0x36, 0x46, 0x27, 0x70, 0x7d, 0x10, 0x11, 0x2d, 0x5d, 0x0a, 0x7d, 0x62, 0x0b, 0x3b, 0x23, 0x4f,
+ 0x59, 0x1b, 0xab, 0x2b, 0xaf, 0xbe, 0x2d, 0x8b, 0x04, 0x69, 0x0b, 0x3b, 0x22, 0x0c, 0x5a, 0x19,
+ 0x83, 0x04, 0x2d, 0x08, 0x39, 0x1d, 0xab, 0x88, 0x03, 0x2a, 0x0c, 0x85, 0x0d, 0x53, 0x2a, 0x35,
+ 0x86, 0x7d, 0x29, 0x48, 0x49, 0x3c, 0x83, 0x5a, 0x3c, 0x36, 0x36, 0x65, 0x2a, 0xab, 0x08, 0x39,
+ 0x1d, 0x8b, 0x57, 0x63, 0x53, 0x20, 0x6c, 0x37, 0x76, 0x5c, 0x02, 0x69, 0x08, 0x39, 0x1b, 0x09,
+ 0x7d, 0x3d, 0x88, 0x03, 0x1b, 0x63, 0x46, 0x23, 0x63, 0x53, 0xba, 0x05, 0xbe, 0x62, 0x0a, 0x7d,
+ 0x25, 0x0a, 0x3b, 0x10, 0x0f, 0x5d, 0x0a, 0x3b, 0x62, 0x0a, 0x3b, 0x23, 0x83, 0x05, 0x27, 0x05,
+ 0x5c, 0x02, 0x2b, 0xaf, 0xbe, 0x2d, 0x4f, 0x46, 0x69, 0x0c, 0x85, 0x22, 0x09, 0x7d, 0x69, 0x35,
+ 0x86, 0x57, 0x76, 0x0f, 0x49, 0x20, 0x07, 0x4a, 0x2d, 0x0d, 0x53, 0x2a, 0x0d, 0x5a, 0x08, 0x4a,
+ 0x22, 0xb3, 0x7a, 0x65, 0x3c, 0x09, 0x6a, 0x29, 0x89, 0x01, 0x62, 0x87, 0xae, 0x10, 0x10, 0x5d,
+ 0xfe, 0x5b, 0xba, 0xd4, 0x5b, 0x29, 0x83, 0x07, 0x3c, 0x75, 0x0a, 0x29, 0x0a, 0x97, 0x3a, 0x75,
+ 0x0a, 0x29, 0x0a, 0x97, 0x3a, 0x63, 0x3b, 0x29, 0x0a, 0x0f, 0x6f, 0x3c, 0x07, 0x5c, 0x02, 0x1d,
+ 0xd4, 0x5b, 0xba, 0xd4, 0x5b, 0x10, 0x09, 0x4c, 0x7a, 0x7f, 0xc2, 0x3c, 0xa4, 0xb5, 0xae, 0x7a,
+ 0x7f, 0xc2, 0x10, 0x08, 0x5d, 0xc0, 0x73, 0x08, 0x5a, 0x29, 0x76, 0x39, 0x7e, 0xbb, 0x73, 0x0a,
+ 0x46, 0x3c, 0xaf, 0x9d, 0x47, 0x01, 0x73, 0x0c, 0x55, 0x73, 0x70, 0xbc, 0x03, 0x4a, 0x7e, 0xc0,
+ 0x73, 0x09, 0x53, 0x73, 0x05, 0x39, 0x73, 0x89, 0x01, 0xa8, 0x06, 0x3c, 0xaf, 0x3b, 0x29, 0x35,
+ 0x5c, 0x7e, 0x0c, 0x55, 0x73, 0x08, 0x5a, 0xba, 0xb3, 0x4a, 0x10, 0x09, 0x4c, 0x7a, 0x7f, 0xc2,
+ 0x9f, 0xae, 0xae, 0x7f, 0xc2, 0x7f, 0xc2, 0x10, 0x14, 0x3a, 0x18, 0x83, 0x0e, 0x02, 0x7f, 0x72,
+ 0x7a, 0x82, 0x1d, 0x63, 0x4a, 0x04, 0x42, 0x79, 0x19, 0x75, 0x82, 0x35, 0x42, 0x6f, 0x69, 0x36,
+ 0x82, 0x3a, 0x72, 0x7d, 0x3d, 0x0a, 0x0f, 0x6f, 0x1b, 0x75, 0x09, 0x23, 0x52, 0x6f, 0xba, 0x75,
+ 0x08, 0x10, 0x0c, 0x4b, 0x6b, 0x43, 0xd4, 0x9e, 0x25, 0xd4, 0x9e, 0x10, 0x0c, 0x22, 0xab, 0x73,
+ 0x07, 0x7d, 0x7e, 0x07, 0x3b, 0x7e, 0x07, 0x5a, 0x10, 0x0e, 0x3a, 0x6b, 0x03, 0x08, 0xbd, 0x0e,
+ 0x61, 0x1d, 0x40, 0x5a, 0x20, 0x0c, 0x06, 0x4d, 0x35, 0x70, 0x55, 0x3c, 0xaf, 0x3b, 0x73, 0x01,
+ 0x4a, 0x19, 0x8f, 0x0b, 0x2f, 0x69, 0x72, 0x28, 0x0a, 0x39, 0x05, 0x7b, 0x34, 0x69, 0xbb, 0x1b,
+ 0x8b, 0x87, 0x02, 0x1b, 0x0a, 0x86, 0x69, 0x0b, 0x39, 0x4d, 0x60, 0x0b, 0x7a, 0x69, 0x03, 0xc3,
+ 0x5a, 0x86, 0xb3, 0x0a, 0x0e, 0x5c, 0x0b, 0x04, 0x6e, 0x10, 0x0f, 0x98, 0x9f, 0x00, 0x05, 0xad,
+ 0xa2, 0xa3, 0x3d, 0x96, 0x03, 0x00, 0x41, 0x05, 0xad, 0x02, 0x10, 0x0d, 0x22, 0x6b, 0x8f, 0xbd,
+ 0x5e, 0x04, 0x20, 0x72, 0x40, 0x19, 0x63, 0x4a, 0x05, 0x01, 0x35, 0x05, 0x0b, 0x19, 0xab, 0x29,
+ 0x36, 0x05, 0x73, 0x58, 0x01, 0x62, 0x87, 0x7e, 0x58, 0x01, 0xa8, 0x05, 0x3c, 0xaf, 0x0f, 0x79,
+ 0x29, 0x63, 0x4a, 0x05, 0x01, 0x35, 0x05, 0x0b, 0x20, 0x72, 0x40, 0x1d, 0x8f, 0xbd, 0x5e, 0x04,
+ 0x10, 0x0f, 0x25, 0x4c, 0xb5, 0x19, 0xa5, 0x9a, 0x3d, 0x95, 0xa6, 0x61, 0x6e, 0x10, 0x0e, 0x3a,
+ 0x6b, 0xaf, 0x0b, 0x58, 0x5e, 0x03, 0x19, 0x35, 0x0c, 0xc3, 0x46, 0x19, 0x0c, 0x7d, 0x04, 0x7b,
+ 0x02, 0x52, 0x65, 0x23, 0xaf, 0x7d, 0x27, 0x08, 0x85, 0x3d, 0x0b, 0x55, 0x1b, 0x35, 0x4a, 0x3d,
+ 0x0e, 0x9e, 0x25, 0xd4, 0x9e, 0x3d, 0xbb, 0x73, 0x6c, 0x05, 0x73, 0xab, 0x29, 0x63, 0x39, 0x05,
+ 0x44, 0x80, 0x07, 0x0c, 0x69, 0x35, 0x42, 0x40, 0x20, 0x8f, 0x0b, 0x58, 0x66, 0x03, 0x10, 0x08,
+ 0x4b, 0x05, 0x0b, 0x0e, 0x86, 0x7f, 0x05, 0x24, 0x7f, 0x6c, 0xa7, 0x29, 0xc3, 0xc7, 0x87, 0xc3,
+ 0x7f, 0xa4, 0xb5, 0x10, 0x0f, 0x22, 0x6b, 0x6d, 0x42, 0x9a, 0x3d, 0x63, 0x39, 0x68, 0x60, 0x0c,
+ 0x7a, 0x3d, 0x07, 0x39, 0x27, 0x7c, 0x3d, 0x6c, 0x05, 0x27, 0x77, 0x3d, 0x58, 0x56, 0x64, 0x0f,
+ 0x56, 0x3d, 0x6c, 0x05, 0x27, 0x77, 0x3d, 0x07, 0x39, 0x27, 0x7c, 0x3d, 0x4f, 0x39, 0x68, 0x60,
+ 0x0c, 0x7a, 0xa6, 0x61, 0x47, 0x29, 0x76, 0x39, 0xa8, 0x08, 0x19, 0x61, 0x7b, 0x60, 0x0b, 0x5c,
+ 0x78, 0x87, 0xc3, 0x05, 0x20, 0x90, 0x0d, 0x58, 0x71, 0x03, 0x10, 0x0f, 0x98, 0x9f, 0x76, 0xad,
+ 0x9b, 0x86, 0xb8, 0x1f, 0x10, 0x07, 0x98, 0x81, 0x26, 0xb5, 0xae, 0x10, 0x07, 0x98, 0x81, 0xae,
+ 0xae, 0x1d, 0xa3, 0x29, 0x01, 0x08, 0x3b, 0x2a, 0xe0, 0x55, 0x3c, 0x5c, 0x0c, 0x04, 0x10, 0x0e,
+ 0x98, 0x9f, 0x22, 0x75, 0x59, 0x3d, 0xc7, 0x75, 0x59, 0x3d, 0xca, 0x75, 0x0e, 0x04, 0x3a, 0x41,
+ 0x72, 0x5c, 0x03, 0x3a, 0x87, 0x72, 0x5c, 0x03, 0x22, 0x87, 0x42, 0x82, 0x1b, 0x87, 0x58, 0x6f,
+ 0x19, 0xd4, 0x49, 0x42, 0x82, 0x1b, 0x41, 0x75, 0x0d, 0x03, 0x20, 0xca, 0x01, 0x0b, 0x5c, 0x03,
+ 0x30, 0xd4, 0xc5, 0x0a, 0x5c, 0x57, 0x87, 0x1b, 0x48, 0x46, 0x87, 0x27, 0x52, 0x53, 0x10, 0x06,
+ 0x27, 0xb5, 0xae, 0xae, 0x10, 0x18, 0x6b, 0x34, 0x76, 0xad, 0x78, 0x76, 0x0a, 0x58, 0x71, 0x01,
+ 0x2d, 0xd4, 0x5a, 0x24, 0x5c, 0x33, 0x24, 0x4a, 0x44, 0x1a, 0x7d, 0x68, 0x8c, 0x0e, 0x4a, 0x7d,
+ 0x68, 0x8c, 0x58, 0x37, 0xec, 0x3b, 0x1b, 0x77, 0x0a, 0x1b, 0x05, 0x39, 0x00, 0xd4, 0x65, 0x1b,
+ 0x89, 0x03, 0xa3, 0x3f, 0xb0, 0xb0, 0xb0, 0x3a, 0xd4, 0xc5, 0xca, 0x3f, 0x10, 0x0f, 0x6b, 0x34,
+ 0x76, 0xad, 0x9b, 0x86, 0xb8, 0x1f, 0x10, 0x0e, 0x22, 0x6b, 0x01, 0x08, 0x0c, 0x0e, 0x66, 0x44,
+ 0xb3, 0x2f, 0x0e, 0x03, 0x69, 0x63, 0x39, 0x68, 0x60, 0x6c, 0x79, 0x3d, 0xab, 0x22, 0x63, 0x53,
+ 0x3d, 0x6c, 0x05, 0x27, 0x05, 0x7d, 0x3d, 0x58, 0x44, 0xa3, 0x64, 0x0f, 0x44, 0xa3, 0x3d, 0x6c,
+ 0x05, 0x27, 0x05, 0x39, 0x3d, 0x70, 0x6f, 0x22, 0x63, 0x53, 0x3d, 0x4f, 0x39, 0x68, 0x60, 0x6c,
+ 0x79, 0x69, 0x03, 0x2f, 0x0e, 0x03, 0x20, 0x01, 0x08, 0x0d, 0x8a, 0x67, 0x01, 0x10, 0x0f, 0x00,
+ 0x6b, 0xd0, 0x05, 0xad, 0xa2, 0xa3, 0x3d, 0x96, 0x03, 0x00, 0x41, 0x05, 0xad, 0x78, 0x87, 0xb5,
+ 0x10, 0x0f, 0x22, 0x6b, 0xa5, 0x9a, 0x3d, 0x95, 0xa6, 0x61, 0x6e, 0x2c, 0xb5, 0x10, 0x0a, 0x6b,
+ 0x34, 0x76, 0x0a, 0x0d, 0xc7, 0x87, 0x08, 0x7a, 0xc7, 0x87, 0x7d, 0x68, 0x19, 0xd4, 0x9d, 0x0f,
+ 0x55, 0x62, 0x87, 0x01, 0x73, 0xa4, 0x10, 0x0c, 0x3a, 0x6b, 0x03, 0x0a, 0x42, 0x4a, 0x5f, 0x20,
+ 0x88, 0xc3, 0x20, 0x0c, 0x7d, 0x4d, 0x35, 0x06, 0x0b, 0x2d, 0x87, 0x44, 0xb9, 0x07, 0x73, 0x70,
+ 0x5c, 0x0b, 0x08, 0x04, 0x1d, 0xaf, 0x0d, 0x7a, 0x5c, 0x07, 0x2a, 0x35, 0x05, 0x08, 0x6c, 0x53,
+ 0x73, 0x05, 0x94, 0x47, 0x19, 0x74, 0x04, 0x44, 0x80, 0x0b, 0x39, 0x19, 0x40, 0x5c, 0x03, 0xb3,
+ 0x08, 0x0b, 0x58, 0x66, 0x01, 0x10, 0x09, 0x4b, 0xb5, 0x29, 0xc3, 0xc7, 0x87, 0xc3, 0x7f, 0xa4,
+ 0x7e, 0x58, 0x01, 0x73, 0x0c, 0x53, 0x01, 0x29, 0x07, 0x24, 0x3c, 0x07, 0x0d, 0x7a, 0x10, 0x0f,
+ 0x91, 0x5a, 0x86, 0x19, 0xa5, 0x0e, 0x0b, 0x04, 0x6e, 0x10, 0x0f, 0x2d, 0x6b, 0x6c, 0x05, 0xba,
+ 0x05, 0x39, 0x2b, 0xaf, 0x7d, 0xba, 0x0b, 0x46, 0x30, 0x89, 0x02, 0x22, 0x35, 0x86, 0x01, 0x3d,
+ 0x0a, 0x53, 0x1b, 0x07, 0x3b, 0x3d, 0x76, 0x4a, 0x1b, 0x0d, 0x55, 0x19, 0x0d, 0x55, 0x2d, 0x76,
+ 0x4a, 0x20, 0x07, 0x3b, 0x3a, 0x0a, 0x53, 0x19, 0x35, 0x86, 0x44, 0x89, 0x02, 0x1d, 0x0b, 0x46,
+ 0x00, 0x06, 0x7d, 0x2a, 0x05, 0x39, 0x00, 0x6c, 0x05, 0x7f, 0x0e, 0x46, 0x5c, 0x3c, 0x08, 0x5c,
+ 0x5a, 0x3c, 0x8b, 0x65, 0x10, 0x14, 0x2d, 0x6b, 0xc0, 0x22, 0x09, 0x6a, 0x22, 0x03, 0x4a, 0xba,
+ 0x09, 0x53, 0x22, 0x42, 0x4a, 0x22, 0x07, 0x85, 0xba, 0x05, 0x7d, 0x2d, 0x35, 0x5c, 0xbb, 0x3a,
+ 0x36, 0x05, 0xba, 0x89, 0x01, 0xaf, 0x3b, 0x0a, 0x46, 0x2d, 0x89, 0x01, 0x62, 0x0c, 0x55, 0x2d,
+ 0x0a, 0x46, 0x06, 0x3b, 0x00, 0x76, 0x39, 0x25, 0x52, 0x37, 0xbb, 0x02, 0x5c, 0x2d, 0x08, 0x5a,
+ 0x62, 0x76, 0x39, 0x00, 0x03, 0x4a, 0x2d, 0xc0, 0x00, 0x0c, 0x55, 0x2b, 0x58, 0x8f, 0x85, 0x2d,
+ 0x09, 0x53, 0x47, 0x23, 0x36, 0x05, 0x36, 0x54, 0x0f, 0x61, 0x7d, 0x25, 0xaf, 0x3b, 0x86, 0x01,
+ 0x2d, 0x89, 0x0a, 0x46, 0x2b, 0x35, 0x86, 0x39, 0x22, 0x7c, 0x49, 0x30, 0x42, 0x5a, 0x22, 0x52,
+ 0x4a, 0x3d, 0x48, 0x55, 0x3a, 0x76, 0x6a, 0x10, 0x0f, 0x2d, 0x6b, 0x48, 0x79, 0x1b, 0x63, 0x85,
+ 0x3d, 0x0b, 0x7d, 0x1b, 0x0b, 0x7d, 0x69, 0x63, 0x85, 0x3a, 0x48, 0x79, 0xb3, 0x0e, 0x46, 0x00,
+ 0x06, 0x5c, 0x03, 0x1d, 0x77, 0x70, 0x59, 0x2a, 0x08, 0x86, 0x5a, 0x3c, 0x8b, 0x49, 0x7f, 0x63,
+ 0x5c, 0x7d, 0x7f, 0x0a, 0x39, 0x72, 0x5a, 0x19, 0xaf, 0x5c, 0x78, 0x8b, 0x05, 0x19, 0x8b, 0x05,
+ 0x3a, 0x07, 0x5c, 0x02, 0x3d, 0x63, 0x85, 0x1b, 0x0a, 0x39, 0x3d, 0x09, 0x39, 0x27, 0x63, 0x85,
+ 0x10, 0x0f, 0x2d, 0x6b, 0x6c, 0x05, 0xba, 0xa9, 0x30, 0xa9, 0xba, 0x6c, 0x05, 0x30, 0x4f, 0x65,
+ 0x22, 0x76, 0x5c, 0x69, 0x08, 0x85, 0x1b, 0x0a, 0x5a, 0x3d, 0x35, 0xbe, 0x00, 0x89, 0x02, 0x19,
+ 0x0b, 0x46, 0x3a, 0x08, 0x3b, 0x20, 0x05, 0x4a, 0x3a, 0x0e, 0x55, 0x1d, 0x42, 0x57, 0x05, 0x39,
+ 0x2a, 0x07, 0x3b, 0x00, 0x0c, 0x46, 0x1d, 0x35, 0x0f, 0x55, 0xbe, 0x1d, 0x0a, 0x5c, 0x5a, 0x3c,
+ 0x88, 0x49, 0xb9, 0x0a, 0x73, 0x0d, 0x55, 0x3c, 0x76, 0x4a, 0x27, 0xb3, 0x0c, 0x46, 0x1d, 0xe0,
+ 0x39, 0x20, 0xd4, 0x5c, 0x09, 0x01, 0x10, 0x0d, 0x6b, 0x50, 0x28, 0x9e, 0x29, 0x88, 0x07, 0x1b,
+ 0xb3, 0x0e, 0x5a, 0x3c, 0x83, 0x0a, 0x3c, 0x63, 0x7d, 0x3c, 0x75, 0x6f, 0x3c, 0x36, 0x79, 0x3c,
+ 0x0a, 0x5c, 0x02, 0x3c, 0x08, 0x5c, 0x03, 0x3c, 0x70, 0x55, 0xba, 0x87, 0x28, 0x9e, 0x10, 0x0f,
+ 0x3a, 0x18, 0x07, 0xbd, 0x3c, 0x07, 0x31, 0x3c, 0x6c, 0xa7, 0x26, 0x73, 0x89, 0x29, 0x76, 0x4a,
+ 0x3c, 0x80, 0x0c, 0x85, 0x1d, 0xe0, 0x7d, 0x01, 0x1d, 0xe0, 0x3b, 0x01, 0x3c, 0x60, 0x6c, 0xbc,
+ 0x03, 0x4a, 0xb5, 0x7e, 0x58, 0x01, 0x73, 0x0c, 0x5a, 0x01, 0x29, 0x07, 0x31, 0x29, 0x07, 0xbd,
+ 0x10, 0x08, 0x00, 0x98, 0xae, 0xae, 0xae, 0x10, 0x0f, 0x5d, 0xec, 0xb2, 0x7f, 0xe0, 0x53, 0x29,
+ 0x01, 0x08, 0x39, 0x1d, 0xa3, 0xb5, 0x01, 0x73, 0xc0, 0x73, 0x0a, 0x39, 0x4d, 0x3c, 0x01, 0x0a,
+ 0x31, 0x7f, 0x01, 0x0a, 0x31, 0x7f, 0x09, 0x39, 0x68, 0x3c, 0xc0, 0x62, 0x87, 0x9f, 0x1d, 0xa3,
+ 0x29, 0x01, 0x08, 0x39, 0x2a, 0xe0, 0x53, 0x20, 0xd4, 0xb2, 0x10, 0x14, 0x23, 0x18, 0x81, 0x6b,
+ 0x01, 0x23, 0x6d, 0x42, 0x67, 0x02, 0x1b, 0x01, 0x0c, 0x62, 0xaf, 0x2f, 0x0a, 0x68, 0x01, 0x06,
+ 0x58, 0x2b, 0x39, 0x05, 0x01, 0x60, 0x0a, 0xc3, 0x46, 0x2b, 0x07, 0x27, 0x8e, 0x4a, 0x8d, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans24_aa_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x0015, 0x001d, 0x0077, 0x00d4, 0x0174, 0x01dd,
+ 0x01e1, 0x021d, 0x0251, 0x0282, 0x028f, 0x0299, 0x02a2, 0x02a7,
+ 0x02de, 0x0337, 0x034b, 0x0389, 0x03d2, 0x040b, 0x0440, 0x049d,
+ 0x04cf, 0x0539, 0x0598, 0x05a0, 0x05ad, 0x05d6, 0x05e5, 0x060c,
+ 0x063e, 0x06fc, 0x0757, 0x07a0, 0x07f0, 0x084a, 0x0859, 0x0867,
+ 0x08c2, 0x08d3, 0x08d9, 0x08ef, 0x093c, 0x0943, 0x09ae, 0x0a06,
+ 0x0a4b, 0x0a70, 0x0abf, 0x0b03, 0x0b52, 0x0b5e, 0x0b8e, 0x0bee,
+ 0x0c96, 0x0cf4, 0x0d2e, 0x0d56, 0x0d63, 0x0d9b, 0x0da8, 0x0dd2,
+ 0x0ddc, 0x0de9, 0x0e2a, 0x0e3b, 0x0e71, 0x0e7e, 0x0ebf, 0x0ed4,
+ 0x0f1b, 0x0f25, 0x0f2c, 0x0f3f, 0x0f7f, 0x0f85, 0x0fbd, 0x0fc7,
+ 0x100e, 0x1021, 0x102e, 0x1047, 0x1086, 0x109f, 0x10aa, 0x10f5,
+ 0x1168, 0x11b1, 0x1207, 0x122f, 0x1261, 0x1268, 0x129b,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans24_aa_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans24_aa_glyph_offsets_0, mf_rlefont_DejaVuSans24_aa_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans24_aa = {
+ {
+ "DejaVu Sans Book 24",
+ "DejaVuSans24_aa",
+ 25, /* width */
+ 25, /* height */
+ 6, /* min x advance */
+ 24, /* max x advance */
+ 2, /* baseline x */
+ 19, /* baseline y */
+ 28, /* line height */
+ 0, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans24_aa_dictionary_data,
+ mf_rlefont_DejaVuSans24_aa_dictionary_offsets,
+ 121, /* rle dict count */
+ 169, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans24_aa_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans24_aa_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans24_aa
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans24_aa_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans24_aa. */
+
diff --git a/src/gdisp/fonts/DejaVuSans32.c b/src/gdisp/fonts/DejaVuSans32.c
new file mode 100644
index 00000000..ca669582
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans32.c
@@ -0,0 +1,291 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans32. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans32_dictionary_data[578] = {
+ 0x06, 0x83, 0x1e, 0x82, 0x03, 0x0c, 0x80, 0x09, 0x8b, 0x84, 0x0e, 0x80, 0x82, 0x0c, 0x80, 0x05,
+ 0x83, 0x16, 0x83, 0x93, 0x0d, 0x87, 0x83, 0x11, 0x81, 0x1c, 0x87, 0x17, 0x80, 0x01, 0x1e, 0x82,
+ 0x1e, 0x82, 0x1b, 0x81, 0x07, 0x82, 0x06, 0x06, 0x82, 0x03, 0x0b, 0x82, 0x08, 0x03, 0x82, 0x85,
+ 0x08, 0x11, 0x83, 0x05, 0x11, 0x8f, 0x11, 0x80, 0x01, 0x82, 0x91, 0x0e, 0x92, 0x16, 0x1a, 0x82,
+ 0x10, 0x82, 0x80, 0x12, 0x04, 0x83, 0x8f, 0x18, 0x82, 0x11, 0x82, 0x0a, 0x82, 0x11, 0x82, 0x0a,
+ 0x82, 0x11, 0x82, 0x0a, 0x82, 0x15, 0x0f, 0x0a, 0x83, 0x12, 0x0d, 0x82, 0x03, 0x08, 0x83, 0x05,
+ 0x40, 0x07, 0x1e, 0x83, 0x11, 0x82, 0x05, 0x46, 0x05, 0x82, 0x0f, 0x04, 0x82, 0x0b, 0x8e, 0x0f,
+ 0x0b, 0x81, 0x1a, 0x83, 0x87, 0x1f, 0x81, 0x13, 0x88, 0x0d, 0x07, 0x83, 0x14, 0x83, 0x14, 0x82,
+ 0x81, 0x19, 0x89, 0x16, 0x89, 0x80, 0x14, 0x82, 0x81, 0x01, 0x82, 0x08, 0x82, 0x02, 0x80, 0x1f,
+ 0x82, 0x0d, 0x82, 0x0e, 0x82, 0x0d, 0x82, 0x0e, 0x80, 0x16, 0x82, 0x04, 0x04, 0x82, 0x81, 0x13,
+ 0x8c, 0x8a, 0x01, 0x01, 0x83, 0x17, 0x18, 0x8a, 0x16, 0x8b, 0x15, 0x81, 0x05, 0x13, 0x83, 0x17,
+ 0x01, 0x81, 0x41, 0x17, 0x1d, 0x19, 0x43, 0x08, 0x08, 0x82, 0x06, 0x81, 0x0f, 0x82, 0x0c, 0x82,
+ 0x0f, 0x82, 0x0c, 0x82, 0x0f, 0x82, 0x0a, 0x81, 0x14, 0x08, 0x82, 0x02, 0x86, 0x04, 0x80, 0x02,
+ 0x82, 0x80, 0x01, 0x80, 0x40, 0x28, 0x27, 0x27, 0x27, 0x27, 0x18, 0xd3, 0x21, 0x6a, 0x51, 0x5a,
+ 0x24, 0xeb, 0xa4, 0xd3, 0x3f, 0x3b, 0x3b, 0x1e, 0xcb, 0x3b, 0x56, 0x52, 0x2b, 0x64, 0x44, 0x30,
+ 0x2b, 0x64, 0x44, 0x30, 0x2b, 0x64, 0x44, 0x30, 0x2b, 0x64, 0x2a, 0x2b, 0x69, 0x68, 0xa7, 0x66,
+ 0x1d, 0xb3, 0x59, 0x34, 0x1d, 0x58, 0xcb, 0x33, 0x3e, 0x1b, 0x3e, 0x3e, 0x38, 0x38, 0x2e, 0x2c,
+ 0x34, 0x53, 0x34, 0x1d, 0x35, 0x59, 0x51, 0x23, 0xbf, 0x39, 0xc2, 0x2c, 0x39, 0x1c, 0x4d, 0xf4,
+ 0x33, 0xff, 0x3f, 0x41, 0x41, 0xf4, 0x32, 0x27, 0x61, 0x32, 0xeb, 0x48, 0x68, 0x67, 0xd2, 0x42,
+ 0xb4, 0x34, 0x67, 0x63, 0x55, 0x27, 0x19, 0x61, 0x63, 0x55, 0x27, 0x19, 0x66, 0x2b, 0x27, 0x27,
+ 0x27, 0x19, 0x40, 0x68, 0x27, 0x19, 0x40, 0x57, 0x32, 0x00, 0xc0, 0x2e, 0xdc, 0x34, 0xc3, 0x35,
+ 0xc5, 0x1e, 0x1c, 0x34, 0xd2, 0x6a, 0x66, 0xcb, 0xc2, 0x37, 0x2c, 0x37, 0x2c, 0xcb, 0x62, 0xc2,
+ 0x27, 0x27, 0x27, 0x0f, 0xc5, 0x32, 0x30, 0x2c, 0x67, 0x53, 0x67, 0x53, 0x67, 0x53, 0x67, 0x53,
+ 0x67, 0x53, 0xd2, 0x2a, 0x42, 0x6c, 0x4e, 0x20, 0xe4, 0x42, 0xcb, 0x4f, 0x69, 0xd2, 0x3d, 0x3b,
+ 0x67, 0x58, 0xc5, 0x3b, 0x3b, 0x3a, 0xc2, 0x18, 0x34, 0x1c, 0x66, 0x1c, 0x32, 0x5b, 0x6c, 0xc0,
+ 0x37, 0xdc, 0xc7, 0x4f, 0x35, 0xff, 0x5a, 0x3c, 0xc3, 0x35, 0x5d, 0x4d, 0x67, 0x3b, 0x64, 0x00,
+ 0x2b, 0xd2, 0x42, 0x58, 0x69, 0xc2, 0x39, 0xd2, 0x49, 0x51, 0x5a, 0x3c, 0xc3, 0x35, 0xc5, 0x1e,
+ 0x53, 0x67, 0x3b, 0x67, 0x27, 0x19, 0xff, 0x3f, 0x3b, 0x27, 0x27, 0x00, 0x39, 0x45, 0x1a, 0xc5,
+ 0xd2, 0x3f, 0x24, 0xa4, 0x34, 0x22, 0x1c, 0x4c, 0x4b, 0x23, 0xbf, 0x39, 0xc3, 0x2c, 0x25, 0x1a,
+ 0x52, 0xd2, 0xb4, 0xbd, 0xf4, 0x2d, 0x28, 0x1d, 0x68, 0x27, 0x27, 0x27, 0x27, 0xe4, 0x1f, 0xc7,
+ 0xd2, 0x6c, 0x34, 0x1d, 0x58, 0xc7, 0x33, 0x64, 0x3d, 0x44, 0x58, 0x64, 0x4c, 0x53, 0x4f, 0x20,
+ 0x21, 0x2d, 0x24, 0xd3, 0x5e, 0x1c, 0x4e, 0x18, 0x67, 0x2b, 0xeb, 0x38, 0x42, 0x44, 0xc0, 0x67,
+ 0xd3, 0x2e, 0x30, 0x34, 0x1f, 0x65, 0x6c, 0x3a, 0x51, 0x58, 0x66, 0xd2, 0xc0, 0x34, 0xb4, 0xbd,
+ 0xc7, 0x4f, 0x25, 0xc3, 0x62, 0xc2, 0xcb, 0x21, 0xc3, 0x37, 0xd3, 0x28, 0xe7, 0x62, 0x5b, 0xa4,
+ 0xcb, 0x48, 0xdc, 0x1c, 0x34, 0x46, 0x2c, 0x69, 0x5b, 0x32, 0x23, 0x3f, 0x66, 0x00, 0x1a, 0xbf,
+ 0x2d, 0x5f, 0x58, 0xf4, 0xd2, 0xb4, 0xc5, 0xcb, 0x3f, 0x52, 0x48, 0xb4, 0xa5, 0xc7, 0xd2, 0x25,
+ 0xd2, 0x5e,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans32_dictionary_offsets[141] = {
+ 0x0000, 0x0002, 0x0005, 0x0007, 0x0008, 0x0009, 0x000a, 0x000c,
+ 0x000f, 0x0011, 0x0013, 0x0016, 0x0017, 0x0019, 0x001a, 0x001e,
+ 0x0022, 0x0024, 0x0027, 0x002a, 0x002d, 0x002f, 0x0031, 0x0034,
+ 0x0038, 0x003a, 0x003e, 0x0040, 0x0042, 0x0044, 0x0046, 0x0047,
+ 0x0049, 0x0055, 0x0056, 0x0057, 0x0059, 0x005a, 0x005d, 0x005f,
+ 0x0060, 0x0062, 0x0064, 0x0067, 0x0068, 0x006b, 0x006e, 0x0070,
+ 0x0072, 0x0074, 0x0075, 0x0078, 0x0079, 0x007a, 0x007c, 0x007e,
+ 0x0080, 0x0085, 0x0088, 0x008a, 0x008d, 0x008f, 0x0091, 0x0099,
+ 0x009c, 0x009e, 0x00a1, 0x00a3, 0x00a6, 0x00ad, 0x00af, 0x00b0,
+ 0x00b2, 0x00b4, 0x00b5, 0x00b6, 0x00b8, 0x00bb, 0x00c7, 0x00c9,
+ 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00cf, 0x00d1, 0x00d4, 0x00d6,
+ 0x00da, 0x00fd, 0x011c, 0x011e, 0x0121, 0x0123, 0x0125, 0x0129,
+ 0x012c, 0x0132, 0x013c, 0x013e, 0x0142, 0x0149, 0x0159, 0x015d,
+ 0x0160, 0x0163, 0x0166, 0x0168, 0x0172, 0x017c, 0x018c, 0x0195,
+ 0x01a4, 0x01b4, 0x01b6, 0x01b9, 0x01bd, 0x01c9, 0x01cf, 0x01d4,
+ 0x01d6, 0x01d8, 0x01dd, 0x01e1, 0x01e3, 0x0204, 0x0208, 0x0212,
+ 0x0218, 0x021a, 0x0222, 0x0227, 0x0229, 0x022b, 0x022d, 0x0231,
+ 0x0233, 0x0239, 0x023b, 0x023f, 0x0242,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans32_glyph_data_0[2504] = {
+ 0x0a, 0x00, 0x10, 0x0d, 0x6e, 0x6c, 0x80, 0x6f, 0x25, 0x6e, 0x8b, 0x10, 0x0f, 0x6e, 0x68, 0x2c,
+ 0x7e, 0x7e, 0x7e, 0x7e, 0x10, 0x1b, 0x67, 0x6e, 0x52, 0x58, 0x5e, 0x74, 0xc7, 0x4f, 0x9d, 0x2c,
+ 0x8c, 0x5a, 0x24, 0x9d, 0x2c, 0x9d, 0x2c, 0x8c, 0x5a, 0x24, 0x9d, 0xb4, 0x9d, 0xdc, 0xa5, 0xc7,
+ 0x4f, 0x58, 0x5e, 0xc7, 0xd0, 0x57, 0x5f, 0x10, 0x14, 0x4c, 0x4a, 0x1a, 0xc5, 0x28, 0x4a, 0x1b,
+ 0x4b, 0x21, 0x6a, 0x59, 0xfd, 0x24, 0xcb, 0xc7, 0xca, 0x33, 0xb5, 0x37, 0xb4, 0x37, 0xb4, 0x37,
+ 0xe5, 0xc7, 0x21, 0xd1, 0x37, 0x6a, 0x62, 0x49, 0xc7, 0x21, 0x2d, 0x24, 0xc0, 0x67, 0x24, 0x9b,
+ 0x9f, 0x5e, 0x9f, 0x5e, 0x9f, 0x24, 0x3f, 0xb7, 0xcb, 0x3a, 0x46, 0x2c, 0x5a, 0x4f, 0x6a, 0x5e,
+ 0x9d, 0x47, 0x4a, 0x1a, 0xc5, 0x28, 0x10, 0x1e, 0x00, 0x6e, 0xc2, 0x2b, 0xa4, 0x2d, 0xf0, 0x3d,
+ 0xcb, 0x3f, 0xca, 0x47, 0xa7, 0xcb, 0x58, 0x3d, 0xf0, 0xc5, 0xd0, 0x3d, 0xf0, 0xc5, 0xca, 0x1b,
+ 0xa0, 0x67, 0xeb, 0x58, 0xb4, 0x33, 0xe4, 0x82, 0x33, 0xb4, 0xc7, 0x74, 0x3d, 0xcb, 0x9f, 0x52,
+ 0x3b, 0xcb, 0x82, 0xd3, 0x3b, 0xa5, 0xb5, 0xb5, 0x34, 0xa7, 0xcb, 0xd2, 0x3a, 0x82, 0x44, 0x9f,
+ 0x44, 0x68, 0x58, 0x44, 0x74, 0xeb, 0x45, 0xdc, 0x2a, 0x6c, 0x3d, 0x2c, 0xb5, 0xc7, 0x1b, 0xca,
+ 0x2a, 0xcb, 0x47, 0x3b, 0xcb, 0x2b, 0x69, 0xc2, 0x10, 0x19, 0x6e, 0x18, 0x50, 0xc5, 0x2e, 0xea,
+ 0x4f, 0x27, 0x55, 0x41, 0x25, 0xc3, 0x9c, 0xc7, 0x45, 0xf0, 0xb7, 0xcb, 0x58, 0x3d, 0xc2, 0x35,
+ 0x67, 0x58, 0xc5, 0xc2, 0x2c, 0x3d, 0x35, 0xc1, 0x3d, 0x20, 0xd3, 0x3d, 0x18, 0xff, 0xc5, 0x3b,
+ 0x67, 0xc2, 0x33, 0xc5, 0x8f, 0x67, 0x1d, 0x20, 0xd3, 0x3a, 0x1c, 0xc2, 0x33, 0xc3, 0xb5, 0xcb,
+ 0x3a, 0xc3, 0xc5, 0xc2, 0x10, 0x09, 0x6e, 0x91, 0x10, 0x0c, 0x40, 0x6b, 0xc7, 0x28, 0x19, 0x28,
+ 0x27, 0x76, 0x5f, 0x27, 0x7b, 0x25, 0xe7, 0x76, 0x6c, 0x19, 0x25, 0x7a, 0x5e, 0x7a, 0x10, 0x0c,
+ 0x40, 0xcb, 0x61, 0x7a, 0x39, 0xd0, 0x27, 0x69, 0x76, 0xd0, 0x27, 0x7b, 0x28, 0x89, 0x32, 0x19,
+ 0x28, 0x19, 0x28, 0x19, 0x10, 0x10, 0x6e, 0xb4, 0x61, 0xd0, 0x62, 0xa5, 0xc5, 0x51, 0xec, 0xb5,
+ 0x51, 0xf1, 0x5b, 0x49, 0x28, 0xc7, 0x48, 0x90, 0xe5, 0x4f, 0xb1, 0xcb, 0x3f, 0x3d, 0xa7, 0x66,
+ 0xa5, 0xa5, 0x39, 0x9d, 0x47, 0x10, 0x1b, 0x25, 0x60, 0x91, 0x72, 0x1d, 0xd3, 0x47, 0x36, 0x1f,
+ 0x23, 0x36, 0x39, 0x91, 0x10, 0x0a, 0x63, 0x43, 0x4f, 0x89, 0x28, 0x27, 0xf4, 0x28, 0x10, 0x0c,
+ 0x4c, 0x40, 0x43, 0x49, 0x62, 0x49, 0x62, 0x49, 0x10, 0x0a, 0x63, 0x43, 0x4f, 0x89, 0x10, 0x0b,
+ 0x67, 0x40, 0x19, 0x48, 0x76, 0x68, 0x27, 0x76, 0x23, 0xa3, 0x2a, 0x48, 0x76, 0x0f, 0x81, 0x19,
+ 0x48, 0xa3, 0x2a, 0x48, 0xa3, 0x10, 0x14, 0x6e, 0x35, 0x50, 0x52, 0x4e, 0x35, 0x4e, 0x18, 0xf4,
+ 0x33, 0x64, 0x3d, 0xe4, 0xd2, 0x38, 0x38, 0x38, 0x3c, 0x53, 0x00, 0x3c, 0x53, 0x5d, 0x18, 0x4e,
+ 0x35, 0x72, 0x21, 0xc3, 0x62, 0xc3, 0x10, 0x14, 0xf4, 0x6e, 0x98, 0x98, 0x98, 0xf4, 0x91, 0x6f,
+ 0xe4, 0x72, 0x51, 0x23, 0x2d, 0x1a, 0x1c, 0x10, 0x14, 0x6e, 0xc2, 0xcb, 0x72, 0x72, 0xe7, 0x24,
+ 0x3e, 0x41, 0x8b, 0x29, 0x5e, 0x99, 0x25, 0x99, 0x62, 0x9a, 0x1c, 0x10, 0x14, 0x67, 0x40, 0x90,
+ 0x5c, 0xc2, 0x8b, 0x18, 0x37, 0x1d, 0x62, 0xc3, 0x90, 0xc7, 0x32, 0x81, 0x00, 0x8b, 0x3f, 0x93,
+ 0xc7, 0x58, 0x59, 0x4f, 0x4b, 0x5e, 0x49, 0x10, 0x14, 0x25, 0x40, 0x1e, 0x7f, 0x28, 0x23, 0x28,
+ 0x30, 0x32, 0xd2, 0x37, 0x6c, 0x62, 0xa7, 0x66, 0x6b, 0xa7, 0xc7, 0x4f, 0x58, 0x5e, 0x74, 0xcb,
+ 0x4f, 0x44, 0x2a, 0x2c, 0x39, 0xc7, 0xb4, 0x51, 0x29, 0x3d, 0x44, 0xb4, 0x46, 0x5f, 0x46, 0x5f,
+ 0x46, 0x1a, 0x81, 0x89, 0x10, 0x14, 0x6e, 0x1c, 0x72, 0x72, 0x00, 0x4f, 0x8b, 0x67, 0x4b, 0x5c,
+ 0x30, 0x81, 0x41, 0x8b, 0x29, 0x4c, 0xc7, 0x58, 0x59, 0x4f, 0x4b, 0x5e, 0x49, 0x10, 0x14, 0x6e,
+ 0xa4, 0x98, 0x68, 0xd3, 0x39, 0x5a, 0x4f, 0xc7, 0xcc, 0x4f, 0x25, 0x5b, 0x2a, 0x48, 0xa3, 0x2a,
+ 0x2d, 0x9e, 0x1a, 0x49, 0x2d, 0x3b, 0xc7, 0x93, 0x1d, 0x4d, 0x2e, 0x58, 0x2e, 0xb4, 0x34, 0x78,
+ 0x23, 0x73, 0xfd, 0xb4, 0x66, 0x1c, 0x21, 0xc3, 0x62, 0xc3, 0x10, 0x14, 0x61, 0x40, 0x9a, 0x1c,
+ 0xa3, 0x20, 0xa3, 0x2a, 0x48, 0xa3, 0x20, 0xa3, 0x2a, 0x48, 0xa3, 0x20, 0xa3, 0x2a, 0x32, 0x19,
+ 0x48, 0xa3, 0x2a, 0x32, 0x10, 0x14, 0x6e, 0x35, 0x50, 0x66, 0x94, 0x00, 0x1c, 0x66, 0x1c, 0x5e,
+ 0x49, 0x10, 0x14, 0xe4, 0x6e, 0xc3, 0x62, 0xc3, 0xcb, 0x72, 0x4e, 0xa4, 0xcb, 0x2e, 0x93, 0x78,
+ 0xeb, 0x3e, 0x42, 0x35, 0x2e, 0x54, 0xd3, 0x2e, 0x1d, 0x34, 0x46, 0x35, 0x8d, 0x5b, 0x18, 0xa3,
+ 0x20, 0x61, 0xcb, 0x3f, 0x1e, 0x18, 0xc5, 0x24, 0x4b, 0x21, 0x98, 0x23, 0x10, 0x0b, 0x79, 0x10,
+ 0x0b, 0x79, 0x28, 0x27, 0xf4, 0x28, 0x10, 0x1b, 0x6e, 0x60, 0xe5, 0x48, 0x9c, 0x5e, 0x4b, 0x21,
+ 0xd3, 0x39, 0x4b, 0x39, 0x4b, 0x21, 0xd3, 0x5e, 0xc2, 0x25, 0x49, 0x90, 0xa1, 0x1d, 0x28, 0xc3,
+ 0x90, 0xa1, 0xcb, 0x62, 0x93, 0x1e, 0x10, 0x1b, 0x6e, 0x63, 0x22, 0x1c, 0x4c, 0x1d, 0x46, 0x6e,
+ 0x48, 0x36, 0x4c, 0x22, 0x1c, 0x10, 0x1b, 0x25, 0x6e, 0x6e, 0x34, 0x1e, 0xcb, 0x90, 0x90, 0xa1,
+ 0x23, 0x90, 0xa1, 0x1d, 0x28, 0x68, 0x7f, 0x62, 0x49, 0x21, 0x1d, 0x39, 0x4b, 0x21, 0xd3, 0x39,
+ 0x4b, 0x5e, 0x6a, 0x48, 0x3a, 0x1e, 0x10, 0x11, 0x69, 0x6e, 0xc3, 0x62, 0x4b, 0x5e, 0x49, 0xcb,
+ 0x4f, 0x20, 0x39, 0xc5, 0x58, 0x89, 0x32, 0xa3, 0x44, 0x00, 0x3d, 0x48, 0x76, 0xd2, 0x40, 0x37,
+ 0x89, 0x10, 0x20, 0x6e, 0x3b, 0xcb, 0x72, 0xfd, 0x24, 0x46, 0xc3, 0x4d, 0xc7, 0x1b, 0xc2, 0x47,
+ 0xeb, 0x3b, 0x3a, 0xd3, 0x3e, 0x42, 0x58, 0x18, 0xec, 0xa7, 0xc7, 0x58, 0x20, 0xb3, 0xa7, 0xc7,
+ 0xb4, 0xa5, 0x1c, 0x58, 0x20, 0x35, 0x58, 0xc7, 0xd2, 0x58, 0x35, 0x18, 0xa0, 0x30, 0xa0, 0x30,
+ 0xa0, 0x30, 0xa0, 0x82, 0x2a, 0xe2, 0x18, 0x2c, 0x18, 0x58, 0xa5, 0xb3, 0x53, 0x58, 0x1c, 0x74,
+ 0x58, 0x20, 0xd3, 0xc3, 0x3b, 0x18, 0xdc, 0xc7, 0x3b, 0x41, 0x1e, 0x3a, 0x1d, 0x2b, 0x4d, 0xc7,
+ 0xb4, 0xcb, 0x1e, 0x1c, 0x66, 0x1c, 0x5e, 0x6a, 0x10, 0x16, 0x6e, 0x2a, 0x1b, 0x24, 0x7f, 0x90,
+ 0x32, 0x30, 0x32, 0xd2, 0x37, 0xbd, 0x37, 0x69, 0xd2, 0x21, 0x2c, 0x5e, 0xeb, 0x58, 0x57, 0xd2,
+ 0x4e, 0x20, 0x4f, 0x29, 0x1e, 0xe7, 0x44, 0xb4, 0x1c, 0x34, 0x46, 0x54, 0x36, 0x33, 0x2b, 0x64,
+ 0x44, 0xd3, 0x3b, 0x1e, 0x74, 0x64, 0x64, 0x29, 0xf4, 0x45, 0x58, 0x10, 0x16, 0x6e, 0x1c, 0x72,
+ 0x59, 0x74, 0x3d, 0xe4, 0xc2, 0x38, 0x42, 0x44, 0x69, 0x53, 0x34, 0x1c, 0x59, 0x4e, 0x5a, 0x42,
+ 0x35, 0x42, 0x44, 0x6c, 0x2b, 0x64, 0x44, 0x30, 0x2b, 0x64, 0x44, 0x30, 0x3b, 0x3a, 0xd2, 0x3e,
+ 0x2f, 0x0f, 0x1c, 0x34, 0x1c, 0x10, 0x16, 0x6e, 0x4d, 0xcb, 0x72, 0xe5, 0x33, 0x1c, 0x24, 0xcb,
+ 0xa4, 0xcb, 0x1e, 0x1f, 0x3f, 0x3b, 0xa3, 0x2a, 0x32, 0x80, 0x00, 0x27, 0x75, 0x1a, 0x24, 0x68,
+ 0x4d, 0xe4, 0x1e, 0x1c, 0x59, 0x5e, 0x6a, 0x10, 0x19, 0x6e, 0x1c, 0x72, 0xeb, 0x2f, 0x74, 0x8f,
+ 0x64, 0x20, 0x3a, 0x1f, 0xeb, 0x3d, 0x1b, 0xd2, 0x3d, 0x3b, 0x56, 0xff, 0x56, 0xff, 0x56, 0x74,
+ 0x64, 0x64, 0x29, 0x4d, 0x3d, 0x69, 0x64, 0x64, 0x18, 0x4c, 0xd2, 0x3b, 0x67, 0x29, 0xec, 0xd3,
+ 0x3a, 0x36, 0x24, 0x1c, 0x34, 0x1c, 0x10, 0x14, 0x6e, 0x46, 0x9a, 0x80, 0x5a, 0x3c, 0x1c, 0x59,
+ 0xe5, 0x33, 0x7b, 0x00, 0x5e, 0x9a, 0x1c, 0x10, 0x12, 0x6e, 0x1c, 0x51, 0x49, 0x66, 0x1c, 0x51,
+ 0x80, 0x4b, 0x72, 0x72, 0x39, 0x91, 0x27, 0x10, 0x19, 0x6e, 0x18, 0xd3, 0x21, 0x6a, 0x59, 0xff,
+ 0x24, 0xcb, 0xa4, 0xcb, 0x1e, 0x1f, 0x3f, 0x3b, 0xa3, 0x20, 0xf4, 0x32, 0x27, 0x1b, 0x49, 0x3d,
+ 0x18, 0x23, 0x3d, 0x18, 0x23, 0x56, 0xc7, 0x3b, 0x56, 0x1f, 0x8a, 0x2b, 0x3e, 0xe5, 0x58, 0xc7,
+ 0x1e, 0x1c, 0x59, 0x21, 0x23, 0x10, 0x18, 0x6e, 0x95, 0x95, 0x1f, 0x8a, 0x1c, 0x8a, 0x1c, 0x8a,
+ 0x1c, 0x65, 0x6c, 0x3a, 0x95, 0x95, 0x10, 0x09, 0x6e, 0x91, 0x80, 0x6f, 0x10, 0x09, 0x6e, 0x91,
+ 0x6f, 0x7b, 0x32, 0xf5, 0x48, 0x9c, 0x77, 0x10, 0x15, 0x6e, 0x68, 0x3b, 0x3a, 0xd2, 0x3e, 0x42,
+ 0xec, 0xcb, 0x33, 0x73, 0x20, 0x96, 0xc2, 0x37, 0x23, 0x77, 0x68, 0x86, 0x57, 0xe2, 0x39, 0xcb,
+ 0x58, 0x51, 0x73, 0x3e, 0x3c, 0xeb, 0x3e, 0x42, 0x20, 0x3a, 0xd2, 0x3b, 0x10, 0x12, 0x6e, 0x91,
+ 0x6f, 0x89, 0x00, 0x5e, 0x9a, 0x1c, 0x10, 0x1c, 0x6e, 0x1d, 0x47, 0x1f, 0x1d, 0x1b, 0x2d, 0x35,
+ 0x74, 0x58, 0x1f, 0x1d, 0x1b, 0x2d, 0x58, 0xd2, 0x3f, 0xd2, 0x1f, 0xef, 0xc7, 0x58, 0xd2, 0x47,
+ 0xc1, 0x20, 0x30, 0x8e, 0x8e, 0x1a, 0xb7, 0xa7, 0xcb, 0x1f, 0xa7, 0xa7, 0xc7, 0x1f, 0xa7, 0xc7,
+ 0xcb, 0xd2, 0x47, 0xa5, 0xbf, 0x92, 0x68, 0x92, 0x68, 0x45, 0x30, 0xa4, 0xd3, 0x45, 0x30, 0xa4,
+ 0xd3, 0x45, 0xd2, 0x58, 0x74, 0x1f, 0x74, 0xd2, 0x3f, 0x95, 0x68, 0x10, 0x18, 0x6e, 0x68, 0x74,
+ 0x44, 0x68, 0x74, 0x44, 0x2d, 0xfe, 0x8a, 0x74, 0x6b, 0x8a, 0x53, 0x3a, 0xdb, 0xc7, 0x44, 0xdb,
+ 0xcb, 0x44, 0xcb, 0xcb, 0x44, 0xcb, 0xd2, 0x44, 0xeb, 0xc0, 0x44, 0x68, 0x58, 0x44, 0x68, 0x35,
+ 0x45, 0xa0, 0xe4, 0x58, 0x20, 0x2c, 0x4c, 0x6c, 0x2a, 0xcb, 0x3d, 0xb4, 0xbd, 0x3a, 0xcb, 0xa4,
+ 0xbb, 0xc5, 0x2b, 0xeb, 0xcb, 0x3d, 0xa4, 0x2d, 0x29, 0x8f, 0x29, 0x8f, 0x29, 0x35, 0xc5, 0x2b,
+ 0x00, 0xc2, 0x10, 0x19, 0x6e, 0x70, 0x85, 0x5e, 0x49, 0x10, 0x13, 0x6e, 0x5a, 0x72, 0x51, 0x4b,
+ 0xc7, 0x33, 0x73, 0x3e, 0x3c, 0x78, 0x78, 0x53, 0xf5, 0x33, 0x73, 0x4b, 0x59, 0x69, 0x3c, 0x5a,
+ 0x39, 0x91, 0x10, 0x19, 0x6e, 0x70, 0x85, 0x5e, 0x4b, 0x75, 0x75, 0x10, 0x16, 0x6e, 0x5a, 0x72,
+ 0x51, 0x4b, 0xc7, 0x33, 0x73, 0x67, 0xd3, 0x42, 0xb4, 0x34, 0x78, 0x53, 0xf5, 0x33, 0x73, 0x5a,
+ 0x3c, 0x1c, 0x72, 0x39, 0xcb, 0x58, 0x51, 0x73, 0x64, 0x3d, 0x2a, 0xe4, 0x2b, 0xd2, 0x38, 0x0f,
+ 0x33, 0x2b, 0x64, 0x20, 0x10, 0x14, 0xe4, 0x6e, 0x49, 0x21, 0x6a, 0x59, 0xf5, 0x2e, 0xdc, 0x67,
+ 0x3b, 0x76, 0x5f, 0x81, 0xe7, 0x90, 0x66, 0xa4, 0x4b, 0x9c, 0xe5, 0x32, 0x81, 0xfd, 0x76, 0xd3,
+ 0x3a, 0xca, 0x3f, 0x93, 0x46, 0xdc, 0x1c, 0x39, 0x4b, 0x10, 0x14, 0xe4, 0x40, 0x32, 0x36, 0x1e,
+ 0x31, 0x91, 0x6f, 0x89, 0x10, 0x17, 0x6e, 0x95, 0x95, 0x95, 0x95, 0x1f, 0x8a, 0x3b, 0x33, 0x1b,
+ 0xd2, 0x3a, 0xc2, 0x18, 0x34, 0x1c, 0x66, 0x1c, 0x5e, 0x49, 0x10, 0x16, 0x40, 0x19, 0x67, 0x45,
+ 0x6c, 0x56, 0xeb, 0x3b, 0x4c, 0x6c, 0x2b, 0x64, 0x44, 0x30, 0xc5, 0xa4, 0xcb, 0x3a, 0x78, 0x84,
+ 0x44, 0x69, 0x2a, 0xd3, 0x39, 0x82, 0x5e, 0x82, 0x4c, 0x1a, 0xbf, 0x32, 0x30, 0x9c, 0x28, 0x7f,
+ 0xa3, 0x10, 0x20, 0x40, 0x55, 0x3b, 0x1b, 0x82, 0x3f, 0x58, 0x53, 0xc5, 0x53, 0x53, 0x3f, 0x53,
+ 0x53, 0x3f, 0x53, 0x53, 0xa4, 0xcb, 0xb4, 0xbd, 0x18, 0x2a, 0xf4, 0xcb, 0xcb, 0x58, 0x29, 0xcb,
+ 0xcb, 0x58, 0x29, 0xcb, 0xcb, 0x58, 0x4d, 0x58, 0xb4, 0xa5, 0x53, 0xa2, 0xe4, 0xa2, 0xec, 0x74,
+ 0x58, 0xa2, 0x3e, 0x69, 0xcb, 0x58, 0xc0, 0x1b, 0xd2, 0xd2, 0x3f, 0xcb, 0xcb, 0x1b, 0xab, 0x74,
+ 0xd2, 0xd2, 0x1b, 0xb2, 0xcb, 0xb4, 0xbd, 0x1b, 0x8f, 0x2d, 0x20, 0x74, 0x8f, 0x20, 0x74, 0x8f,
+ 0x20, 0x74, 0x8f, 0x18, 0x67, 0xf0, 0x8a, 0x3b, 0x10, 0x16, 0x69, 0x40, 0x41, 0x3b, 0x33, 0xfd,
+ 0x3f, 0x93, 0x53, 0x5d, 0x18, 0x4e, 0x35, 0x57, 0xeb, 0x21, 0xc0, 0x37, 0x1d, 0x77, 0xe7, 0x48,
+ 0x61, 0xd3, 0x28, 0xd3, 0x62, 0x49, 0x62, 0xcb, 0xcb, 0x21, 0xc0, 0x21, 0x35, 0x39, 0xcb, 0x58,
+ 0x4e, 0x18, 0x67, 0x3b, 0x3e, 0x42, 0x44, 0xe2, 0x3b, 0x1e, 0xcb, 0x3b, 0x10, 0x14, 0x40, 0x41,
+ 0x47, 0x8a, 0x00, 0x3e, 0x42, 0x45, 0x4d, 0x73, 0xe5, 0x93, 0x2c, 0x44, 0x4d, 0x9b, 0x23, 0x5b,
+ 0x54, 0xbf, 0x9c, 0x28, 0x68, 0x76, 0x00, 0x91, 0x10, 0x16, 0x40, 0x55, 0x36, 0x1e, 0x31, 0x18,
+ 0x25, 0xd3, 0x28, 0xc7, 0x48, 0x25, 0x99, 0x61, 0x99, 0x25, 0x5b, 0x20, 0x25, 0xd3, 0x90, 0x1c,
+ 0x1e, 0x31, 0x10, 0x0c, 0x40, 0x6a, 0x9c, 0x9c, 0x32, 0x80, 0x6f, 0x6f, 0xf4, 0x90, 0x9c, 0x9c,
+ 0x10, 0x0b, 0x40, 0x27, 0x0f, 0x27, 0x41, 0x89, 0x69, 0x32, 0x27, 0x41, 0x27, 0x41, 0x89, 0x69,
+ 0x32, 0x27, 0x00, 0x89, 0x28, 0x81, 0x10, 0x0c, 0x40, 0x6a, 0x9c, 0x48, 0x91, 0x6f, 0x7b, 0x5e,
+ 0x6a, 0x9c, 0x9c, 0x10, 0x1b, 0x6e, 0x3e, 0x97, 0xc0, 0x21, 0x35, 0x4e, 0x18, 0x67, 0x3b, 0x3e,
+ 0x67, 0x3e, 0x3b, 0x1e, 0xcb, 0x3b, 0x10, 0x10, 0x62, 0x6e, 0x43, 0x43, 0x36, 0x2f, 0x46, 0x10,
+ 0x44, 0x33, 0x55, 0x4a, 0x4c, 0x7a, 0x10, 0x14, 0x63, 0x4d, 0x68, 0x5c, 0xc0, 0x61, 0xd2, 0x27,
+ 0x21, 0xc3, 0x51, 0x49, 0x59, 0xf5, 0x33, 0xc7, 0xb4, 0x34, 0x78, 0x53, 0x34, 0x23, 0x20, 0x59,
+ 0x51, 0x8d, 0x10, 0x14, 0x40, 0x68, 0x80, 0x88, 0x23, 0x38, 0x38, 0x2e, 0x7d, 0x10, 0x12, 0x63,
+ 0x3b, 0xeb, 0x21, 0x6a, 0x72, 0x4f, 0xe7, 0xa4, 0x4e, 0xa3, 0xa4, 0x81, 0x8b, 0xf4, 0x2a, 0x28,
+ 0xe7, 0x28, 0xcb, 0xb4, 0x72, 0x21, 0x6a, 0x62, 0x6a, 0x10, 0x14, 0x62, 0x25, 0x27, 0x8b, 0x71,
+ 0x10, 0x14, 0x00, 0x63, 0x3e, 0x50, 0x66, 0x1d, 0x20, 0x67, 0x2b, 0xcb, 0x42, 0x58, 0x42, 0x44,
+ 0x69, 0x36, 0x2f, 0x46, 0x6c, 0x27, 0xfd, 0x3c, 0x2b, 0xc8, 0x24, 0xeb, 0x44, 0xa4, 0x1c, 0x39,
+ 0x5a, 0x5e, 0x6a, 0x10, 0x0b, 0x40, 0x8f, 0x24, 0x98, 0x98, 0x34, 0x2b, 0x57, 0x5e, 0x5a, 0x39,
+ 0x5a, 0x39, 0x5a, 0x37, 0x80, 0x6f, 0x10, 0x14, 0x1b, 0x63, 0x71, 0x19, 0x48, 0x39, 0x64, 0x1e,
+ 0x4d, 0x51, 0x4b, 0x39, 0x5a, 0x5e, 0x6a, 0x10, 0x14, 0x40, 0x68, 0x80, 0x8f, 0x9e, 0x1a, 0x87,
+ 0x3c, 0x78, 0x78, 0x78, 0x78, 0x78, 0x10, 0x09, 0x7c, 0x6f, 0x6f, 0x10, 0x09, 0x7c, 0x80, 0x80,
+ 0x7b, 0x48, 0x77, 0xa1, 0x10, 0x13, 0x4c, 0x25, 0x7b, 0xa4, 0xcb, 0x33, 0x73, 0x20, 0x96, 0xe2,
+ 0x62, 0x6a, 0x77, 0x68, 0x86, 0x57, 0xe2, 0x39, 0xcb, 0x58, 0x51, 0x73, 0x67, 0x1d, 0x10, 0x09,
+ 0x40, 0x91, 0x6f, 0x7b, 0x10, 0x1f, 0xe4, 0x63, 0x82, 0x74, 0xc2, 0x47, 0xc1, 0xd3, 0xc0, 0xd3,
+ 0x1b, 0x1c, 0xc1, 0x2d, 0xc2, 0x35, 0x9f, 0xfd, 0x3e, 0x18, 0xfd, 0xa4, 0x53, 0x67, 0x53, 0x67,
+ 0x53, 0x67, 0x53, 0x67, 0x53, 0x83, 0x83, 0x83, 0x10, 0x14, 0x00, 0x63, 0x58, 0x8f, 0x9e, 0x1a,
+ 0x87, 0x3c, 0x78, 0x78, 0x78, 0x78, 0x78, 0x10, 0x14, 0x00, 0x63, 0x3e, 0x50, 0xff, 0x4e, 0xa5,
+ 0xd3, 0x3c, 0x53, 0x67, 0x3b, 0x3e, 0x38, 0x38, 0x2e, 0x00, 0x93, 0x53, 0x3c, 0xc2, 0x58, 0x66,
+ 0x1c, 0x21, 0xc3, 0x62, 0xc3, 0x10, 0x14, 0x00, 0x63, 0x58, 0x88, 0x23, 0x38, 0x38, 0x2e, 0x7d,
+ 0x69, 0x4f, 0x80, 0x10, 0x14, 0x1b, 0x63, 0x71, 0x7b, 0x10, 0x0d, 0x00, 0x63, 0x58, 0x9b, 0xbb,
+ 0xd3, 0x21, 0xc3, 0x5e, 0xc3, 0x28, 0xc7, 0x48, 0x76, 0x00, 0x91, 0x10, 0x11, 0x63, 0x4d, 0x23,
+ 0x5e, 0x5a, 0x39, 0x5a, 0x4f, 0xc5, 0xcc, 0x4f, 0x27, 0x7f, 0x23, 0x62, 0x4b, 0x90, 0x41, 0x27,
+ 0x3c, 0xe8, 0x64, 0x1e, 0xe7, 0xb4, 0x66, 0x1c, 0x21, 0xc3, 0x62, 0xc3, 0x10, 0x0d, 0x6e, 0x68,
+ 0x8b, 0x18, 0x6a, 0x21, 0x6a, 0x39, 0xc2, 0x98, 0x27, 0x6f, 0x75, 0x23, 0x62, 0x49, 0x28, 0x23,
+ 0x10, 0x14, 0x3f, 0x63, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x53, 0x34, 0x23, 0x4d, 0x5d, 0x35,
+ 0x59, 0x51, 0x8d, 0x10, 0x13, 0x63, 0x2c, 0x67, 0x2c, 0x42, 0xb4, 0x34, 0x78, 0x84, 0x44, 0x4d,
+ 0x9b, 0x68, 0x2c, 0x5e, 0x82, 0x4c, 0x1a, 0xbf, 0x32, 0x30, 0x32, 0x30, 0x28, 0xeb, 0x28, 0x7f,
+ 0x10, 0x1a, 0x63, 0xec, 0x74, 0xc2, 0x2a, 0x29, 0x1d, 0x2a, 0xe4, 0x58, 0xa4, 0xd3, 0x92, 0x68,
+ 0x92, 0x68, 0x92, 0x68, 0x45, 0x00, 0x82, 0x82, 0x1e, 0xb7, 0xb5, 0xbd, 0x1e, 0xb7, 0xb5, 0xbd,
+ 0x1e, 0xb7, 0xb5, 0xbd, 0x3a, 0xdb, 0xa7, 0xbf, 0x33, 0xcb, 0x8f, 0x3e, 0x74, 0xc3, 0x33, 0xcb,
+ 0x8f, 0x67, 0xc2, 0xa4, 0xd3, 0x2e, 0x93, 0x23, 0x4d, 0x67, 0x3b, 0x4d, 0x10, 0x13, 0x63, 0x35,
+ 0x3e, 0x67, 0x3b, 0x18, 0x4e, 0x35, 0x57, 0x23, 0x21, 0xc0, 0x37, 0x1d, 0x77, 0x52, 0x4c, 0x1e,
+ 0x7f, 0x97, 0x6c, 0x5e, 0xd3, 0xc0, 0x57, 0x30, 0x51, 0xf5, 0x58, 0x5d, 0x4d, 0x2e, 0x35, 0x10,
+ 0x13, 0x63, 0x2c, 0x2b, 0x1b, 0x78, 0x23, 0x73, 0x29, 0x1e, 0xeb, 0x44, 0x2a, 0x93, 0x2c, 0x44,
+ 0x69, 0x2a, 0xd3, 0x39, 0x82, 0x37, 0xbd, 0x62, 0xeb, 0xd3, 0x37, 0xd2, 0x77, 0xf5, 0x32, 0xc7,
+ 0x48, 0xa3, 0x2a, 0x32, 0x19, 0x48, 0x77, 0xa1, 0x10, 0x11, 0x63, 0x2c, 0x5a, 0x3c, 0x1c, 0x59,
+ 0xf5, 0x48, 0x61, 0x99, 0x61, 0x99, 0xf4, 0x48, 0x25, 0x1c, 0x59, 0xf5, 0x24, 0x1c, 0x10, 0x14,
+ 0x67, 0x40, 0xc2, 0x9c, 0x9c, 0x67, 0x2e, 0x37, 0x7b, 0x48, 0x62, 0x6a, 0x32, 0x52, 0x90, 0x19,
+ 0x25, 0x91, 0x75, 0x68, 0x48, 0x7f, 0x10, 0x0b, 0x4c, 0x61, 0x6f, 0x6f, 0x6f, 0x6f, 0x10, 0x14,
+ 0x40, 0xfe, 0xd3, 0x90, 0x9c, 0x41, 0x6f, 0x75, 0x7f, 0x9c, 0x32, 0x61, 0x91, 0xf4, 0x48, 0x62,
+ 0x6a, 0x9c, 0x62, 0xc2, 0x10, 0x1b, 0x60, 0x63, 0x21, 0xe7, 0x3f, 0xcc, 0x4c, 0x5a, 0x45, 0xc0,
+ 0x36, 0x3d, 0xf0, 0x4b, 0x1e, 0x3b, 0xff, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans32_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000c, 0x0015, 0x0038, 0x0077, 0x00c9, 0x0105,
+ 0x0109, 0x011f, 0x0135, 0x0156, 0x0165, 0x016f, 0x0179, 0x017f,
+ 0x0196, 0x01b7, 0x01c8, 0x01dc, 0x01f8, 0x0225, 0x023e, 0x026b,
+ 0x0285, 0x0292, 0x02bd, 0x02c0, 0x02c7, 0x02e7, 0x02f6, 0x0317,
+ 0x0332, 0x0389, 0x03bc, 0x03e6, 0x0408, 0x0437, 0x0448, 0x0458,
+ 0x0486, 0x0497, 0x049d, 0x04a8, 0x04cd, 0x04d7, 0x051c, 0x0563,
+ 0x056a, 0x0583, 0x058c, 0x05b5, 0x05da, 0x05e5, 0x05fb, 0x0622,
+ 0x0679, 0x06ad, 0x06c9, 0x06e3, 0x06f1, 0x0707, 0x0714, 0x0727,
+ 0x072f, 0x0737, 0x0753, 0x075e, 0x077a, 0x0781, 0x07a4, 0x07b7,
+ 0x07c8, 0x07d7, 0x07dc, 0x07e5, 0x07ff, 0x0805, 0x0829, 0x0838,
+ 0x0856, 0x0864, 0x086a, 0x087c, 0x089d, 0x08b1, 0x08c4, 0x08e1,
+ 0x091d, 0x0940, 0x0969, 0x097f, 0x0997, 0x099f, 0x09b5,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans32_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans32_glyph_offsets_0, mf_rlefont_DejaVuSans32_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans32 = {
+ {
+ "DejaVu Sans Book 32",
+ "DejaVuSans32",
+ 33, /* width */
+ 34, /* height */
+ 9, /* min x advance */
+ 32, /* max x advance */
+ 2, /* baseline x */
+ 26, /* baseline y */
+ 37, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans32_dictionary_data,
+ mf_rlefont_DejaVuSans32_dictionary_offsets,
+ 87, /* rle dict count */
+ 140, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans32_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans32_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans32
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans32_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans32. */
+
diff --git a/src/gdisp/fonts/DejaVuSans32_aa.c b/src/gdisp/fonts/DejaVuSans32_aa.c
new file mode 100644
index 00000000..8b8f6e8d
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSans32_aa.c
@@ -0,0 +1,569 @@
+
+
+/* Start of automatically generated font definition for DejaVuSans32_aa. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSans32_aa_dictionary_data[740] = {
+ 0x86, 0x1a, 0x86, 0x1a, 0x85, 0x1e, 0x82, 0x1e, 0x81, 0x12, 0x82, 0x08, 0x1a, 0x1d, 0x05, 0x85,
+ 0x13, 0x1c, 0x88, 0x0f, 0x81, 0xcb, 0x0a, 0x82, 0x0f, 0x80, 0x1e, 0x82, 0x1e, 0x82, 0x83, 0x08,
+ 0x0c, 0xce, 0x1d, 0x0d, 0x40, 0x07, 0x8d, 0x13, 0xc9, 0x85, 0x1e, 0x82, 0x15, 0x17, 0x8c, 0x01,
+ 0x18, 0x01, 0xc1, 0x11, 0x82, 0x09, 0x81, 0xcd, 0x1b, 0x0f, 0x16, 0x80, 0xcc, 0x80, 0xc5, 0x80,
+ 0xca, 0x1e, 0xc6, 0x81, 0x04, 0x81, 0x0d, 0x93, 0x0d, 0x93, 0x41, 0x11, 0x8b, 0xce, 0xcc, 0x03,
+ 0x84, 0x01, 0x02, 0xcd, 0xc2, 0xcd, 0xc9, 0x91, 0x06, 0x4f, 0x01, 0x8f, 0x11, 0x8f, 0x11, 0x8f,
+ 0x0b, 0xc9, 0x81, 0xc6, 0xcb, 0x81, 0xca, 0xc3, 0xc1, 0x01, 0x82, 0x01, 0xc8, 0x81, 0x80, 0xc7,
+ 0x0f, 0x82, 0x02, 0x0c, 0x82, 0x80, 0xcd, 0xce, 0x80, 0x11, 0x82, 0x09, 0x82, 0x12, 0x82, 0x09,
+ 0x82, 0x01, 0xc5, 0x81, 0xc9, 0xc4, 0x80, 0xce, 0xcd, 0xc1, 0xc6, 0xc2, 0xca, 0xcd, 0x80, 0xc8,
+ 0xc1, 0xc4, 0xca, 0xc5, 0xc8, 0xcd, 0xc1, 0xcd, 0x81, 0xcb, 0xc1, 0xc3, 0xc7, 0xce, 0xc1, 0x01,
+ 0xc9, 0xc1, 0x02, 0xc5, 0x01, 0xc2, 0xc7, 0x80, 0xc2, 0xcd, 0xca, 0xc4, 0x01, 0x42, 0x3b, 0x09,
+ 0xc7, 0xc2, 0x0e, 0xc2, 0xc8, 0xce, 0xc5, 0xc2, 0xce, 0x80, 0x10, 0xc4, 0xc1, 0x0a, 0x19, 0xc8,
+ 0xc2, 0xc2, 0x82, 0xc1, 0xc7, 0x07, 0x80, 0xc3, 0x01, 0xcd, 0xc3, 0x82, 0xc1, 0x01, 0xc2, 0xc6,
+ 0xc8, 0xc4, 0xca, 0x81, 0xcc, 0xc1, 0xc7, 0x81, 0xce, 0xc2, 0xc2, 0xcd, 0x81, 0xc1, 0x80, 0x40,
+ 0x28, 0x12, 0x82, 0xcb, 0xc6, 0xc2, 0xc1, 0x81, 0xc4, 0x01, 0x80, 0xcb, 0xcd, 0xca, 0xcc, 0x81,
+ 0x80, 0xc4, 0xc1, 0xc3, 0xc1, 0x82, 0xcb, 0x81, 0x01, 0xc2, 0xde, 0xce, 0x81, 0xc9, 0xcd, 0x80,
+ 0xc9, 0x81, 0x11, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82,
+ 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x07, 0xc4,
+ 0x81, 0xc4, 0xce, 0x01, 0x81, 0x01, 0x01, 0xc3, 0xc3, 0x81, 0xcd, 0xcb, 0xc9, 0xc2, 0xc7, 0xc1,
+ 0x14, 0xcb, 0xcd, 0x91, 0x01, 0x05, 0x0e, 0x9f, 0x97, 0x0e, 0x1d, 0xeb, 0xe0, 0x31, 0x92, 0x0f,
+ 0x40, 0x9e, 0x1f, 0x4d, 0x4e, 0xe3, 0x44, 0x76, 0x51, 0x49, 0xe3, 0x85, 0x9f, 0x4d, 0x0a, 0x1e,
+ 0x38, 0x02, 0x76, 0x51, 0x2c, 0x84, 0x58, 0x47, 0x51, 0x4b, 0x4c, 0x8c, 0x94, 0x24, 0x19, 0x24,
+ 0x83, 0x3f, 0x6f, 0x68, 0x02, 0x94, 0x28, 0x1c, 0x91, 0x84, 0x19, 0x24, 0x19, 0x24, 0x0f, 0x38,
+ 0x83, 0xe2, 0x5b, 0x4c, 0x9a, 0x7c, 0x39, 0x47, 0x51, 0x8b, 0x47, 0x0b, 0x4b, 0x36, 0xdc, 0x5b,
+ 0x76, 0x04, 0x34, 0x36, 0xdc, 0x77, 0x76, 0x81, 0x57, 0x1a, 0x4d, 0x54, 0x54, 0x54, 0x54, 0x54,
+ 0x9f, 0x2a, 0x2d, 0x2d, 0x19, 0x24, 0x51, 0x50, 0x23, 0x84, 0x51, 0x50, 0x23, 0x84, 0x51, 0x50,
+ 0x23, 0x84, 0x51, 0x41, 0x51, 0x51, 0x50, 0x23, 0x1c, 0x8e, 0x06, 0x1c, 0x06, 0x22, 0x1c, 0x0f,
+ 0x22, 0x26, 0x8a, 0x08, 0x6b, 0xdc, 0x39, 0x26, 0x05, 0x22, 0x6b, 0xdc, 0x66, 0x76, 0x8f, 0x34,
+ 0x33, 0xf2, 0x33, 0xf2, 0x6b, 0xdc, 0x66, 0x76, 0x8f, 0x34, 0x6b, 0xdc, 0x39, 0x26, 0x05, 0x22,
+ 0x29, 0xd4, 0x22, 0x26, 0x8a, 0x08, 0x1d, 0x51, 0x4f, 0x47, 0x7e, 0x66, 0x1d, 0x51, 0x4b, 0x4c,
+ 0x8c, 0x7c, 0x3a, 0x47, 0x51, 0x2c, 0x84, 0x58, 0x95, 0x4d, 0x0a, 0x1e, 0x38, 0x02, 0x3d, 0x50,
+ 0x05, 0x5a, 0x57, 0x85, 0x67, 0xf2, 0x83, 0x8f, 0x0c, 0xe3, 0x4b, 0xf2, 0x83, 0x5f, 0x1e, 0x93,
+ 0x84, 0x83, 0x7c, 0x3a, 0x4c, 0x8c, 0x0a, 0xe3, 0x95, 0x74, 0x07, 0x47, 0x07, 0x25, 0x95, 0x08,
+ 0x22, 0x26, 0x0c, 0x84, 0x95, 0x8e, 0x05, 0x26, 0x05, 0x84, 0x95, 0x53, 0x66, 0x26, 0x74, 0x33,
+ 0xf2, 0x33, 0xf2, 0x95, 0x53, 0x66, 0x26, 0x74, 0x95, 0x8e, 0x05, 0x26, 0x05, 0x84, 0x95, 0x08,
+ 0x22, 0x26, 0x0c, 0x84, 0x95, 0x74, 0x07, 0x47, 0x07, 0x25, 0x83, 0x7c, 0x3a, 0x4c, 0x8c, 0x0a,
+ 0xe3, 0x83, 0x5f, 0x1e, 0x93, 0x84, 0x83, 0x8f, 0x0c, 0xe3, 0x4b, 0xf2, 0x2e, 0x4a, 0x53, 0x89,
+ 0x64, 0x94, 0x24, 0x2d, 0x1c, 0x81, 0x1d, 0xe0, 0x0f, 0x57, 0x00, 0x51, 0x69, 0x2e, 0x1e, 0x57,
+ 0x00, 0x23, 0x4d, 0x71, 0x91, 0x01, 0x6b, 0x81, 0x57, 0x71, 0x78, 0x0f, 0x77, 0x29, 0x9a, 0x34,
+ 0x72, 0x1e, 0x00, 0x7c, 0x06, 0x6b, 0x06, 0x4b, 0x3d, 0x7c, 0x3a, 0x47, 0x51, 0x4f, 0x47, 0x7e,
+ 0x66, 0x6e, 0x52, 0x1c, 0x8a, 0x07, 0x20, 0x0b, 0x6b, 0x8e, 0x06, 0x71, 0x8f, 0x94, 0x8b, 0x43,
+ 0x43, 0xe7, 0x04, 0x0d, 0x38, 0x19, 0x24, 0x1d, 0x02, 0x22, 0x1c, 0x55, 0x05, 0x1c, 0x08, 0x57,
+ 0x3b, 0x0b, 0x93, 0x3b, 0x29, 0x51, 0x0f, 0x58, 0x19, 0xfd, 0x43, 0x55, 0x29, 0x6e, 0x52, 0x03,
+ 0x76, 0x9a, 0x0d, 0x94, 0x7f, 0x29, 0x7c, 0x7f, 0x71, 0x6e, 0x3a, 0x27, 0x74, 0x04, 0x27, 0x97,
+ 0x66, 0x00, 0x71, 0x07, 0x22, 0x6b, 0x4a, 0x53, 0x51, 0x50, 0x23, 0x84, 0x51, 0x29, 0x2e, 0x3f,
+ 0x01, 0x8e, 0x01, 0x91, 0x0f, 0x46, 0x71, 0xd4, 0x46, 0x41, 0x68, 0x50, 0x0c, 0x53, 0x35, 0x55,
+ 0x3b, 0x2a, 0x0c, 0x1c,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans32_aa_dictionary_offsets[188] = {
+ 0x0000, 0x0005, 0x0009, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
+ 0x0011, 0x0012, 0x0014, 0x0016, 0x0019, 0x001e, 0x001f, 0x0020,
+ 0x0021, 0x0023, 0x0024, 0x0026, 0x0028, 0x002a, 0x002c, 0x002d,
+ 0x002e, 0x0030, 0x0031, 0x0033, 0x0036, 0x0038, 0x0039, 0x003a,
+ 0x003b, 0x003d, 0x003f, 0x0041, 0x0042, 0x0044, 0x0045, 0x004c,
+ 0x004d, 0x004f, 0x0050, 0x0052, 0x0053, 0x0055, 0x0057, 0x0058,
+ 0x0059, 0x0061, 0x0063, 0x0065, 0x0067, 0x0069, 0x006c, 0x006e,
+ 0x0070, 0x0073, 0x0075, 0x0077, 0x0079, 0x0082, 0x0084, 0x0086,
+ 0x0088, 0x008a, 0x008c, 0x008e, 0x0090, 0x0092, 0x0094, 0x0096,
+ 0x0099, 0x009b, 0x009d, 0x00a0, 0x00a3, 0x00a5, 0x00a7, 0x00a9,
+ 0x00ad, 0x00af, 0x00b0, 0x00b2, 0x00b3, 0x00b5, 0x00b7, 0x00ba,
+ 0x00bb, 0x00bd, 0x00be, 0x00bf, 0x00c1, 0x00c3, 0x00c5, 0x00c6,
+ 0x00c8, 0x00ca, 0x00ce, 0x00d0, 0x00d2, 0x00d4, 0x00d6, 0x00d8,
+ 0x00da, 0x00dd, 0x00df, 0x00e1, 0x00e2, 0x00e3, 0x00e5, 0x00e7,
+ 0x00ea, 0x00ec, 0x00ee, 0x00f0, 0x00f2, 0x00f4, 0x00f6, 0x00f8,
+ 0x00fa, 0x00fb, 0x00fd, 0x00ff, 0x0101, 0x0102, 0x0103, 0x011f,
+ 0x0121, 0x0123, 0x0126, 0x0128, 0x012a, 0x012c, 0x012e, 0x0130,
+ 0x0131, 0x0133, 0x0135, 0x0137, 0x013b, 0x013e, 0x014b, 0x015c,
+ 0x0160, 0x0162, 0x0164, 0x0167, 0x0169, 0x016e, 0x0192, 0x0196,
+ 0x01a8, 0x01af, 0x01f4, 0x0251, 0x0254, 0x0256, 0x0258, 0x025a,
+ 0x025d, 0x025f, 0x0270, 0x0272, 0x0279, 0x0281, 0x0283, 0x0287,
+ 0x0290, 0x0295, 0x0298, 0x02a4, 0x02a6, 0x02a8, 0x02aa, 0x02ac,
+ 0x02c6, 0x02c8, 0x02ce, 0x02d0, 0x02d2, 0x02d4, 0x02d9, 0x02dc,
+ 0x02de, 0x02e0, 0x02e2, 0x02e4,
+};
+
+static const uint8_t mf_rlefont_DejaVuSans32_aa_glyph_data_0[6702] = {
+ 0x0a, 0x00, 0x10, 0x0d, 0x82, 0xe0, 0x3b, 0xac, 0x3b, 0x53, 0x28, 0x78, 0x0f, 0x28, 0x78, 0x52,
+ 0x3b, 0x0c, 0x38, 0x3b, 0x0b, 0x88, 0x20, 0x82, 0xc1, 0x10, 0x0f, 0x82, 0xa4, 0xa4, 0xa4, 0xa4,
+ 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0x10, 0x1b, 0x76, 0x82, 0x81, 0x4f, 0x3d, 0x0e, 0x93, 0x9f, 0xc6,
+ 0x03, 0x41, 0x9b, 0x05, 0x37, 0x09, 0x57, 0x3d, 0x7e, 0x01, 0x2e, 0x78, 0x3a, 0x3d, 0x0b, 0x38,
+ 0x2e, 0x8f, 0x94, 0x06, 0x41, 0x81, 0x4f, 0x37, 0x3c, 0x02, 0x00, 0xc6, 0x03, 0x6f, 0x9b, 0x46,
+ 0x27, 0x9b, 0x46, 0x27, 0x9b, 0x46, 0x95, 0x97, 0x04, 0x41, 0x9b, 0x05, 0x37, 0x08, 0x57, 0x3d,
+ 0x7e, 0x01, 0x37, 0x0c, 0x88, 0x3d, 0x0a, 0x52, 0x37, 0x81, 0x4f, 0x3d, 0x0e, 0x93, 0x9f, 0xc6,
+ 0x03, 0x41, 0x9b, 0x05, 0x29, 0xd4, 0x46, 0x77, 0x26, 0xd4, 0x46, 0x77, 0x26, 0xd4, 0x46, 0x77,
+ 0x6f, 0x9b, 0x05, 0x41, 0x81, 0x4f, 0x37, 0x7e, 0x01, 0x00, 0xc6, 0x03, 0x37, 0x0b, 0x38, 0x3d,
+ 0x09, 0x57, 0x37, 0x81, 0x5b, 0x41, 0x78, 0x3a, 0x37, 0x97, 0x04, 0x43, 0x8f, 0x0f, 0x39, 0x37,
+ 0x08, 0x57, 0x3d, 0x3c, 0x01, 0x10, 0x14, 0x27, 0x1c, 0xdc, 0x20, 0xdc, 0x20, 0xdc, 0x20, 0xdc,
+ 0x1b, 0x9a, 0x09, 0xcf, 0x34, 0x0c, 0x09, 0x05, 0x02, 0x83, 0x32, 0x0b, 0x3f, 0x95, 0x32, 0x0c,
+ 0x30, 0x95, 0x7e, 0x88, 0x70, 0x94, 0x01, 0x02, 0x04, 0x06, 0x5a, 0x83, 0x8a, 0x08, 0xdc, 0x31,
+ 0xa1, 0xdc, 0x31, 0x53, 0x66, 0xdc, 0x31, 0x0c, 0x4b, 0x01, 0xf0, 0x31, 0x3c, 0x57, 0x09, 0x55,
+ 0x72, 0x2c, 0x38, 0x09, 0x05, 0x01, 0x37, 0x05, 0x0d, 0x1e, 0xb6, 0x07, 0x2f, 0x61, 0x0a, 0xe3,
+ 0x4b, 0x37, 0xdc, 0x61, 0x0d, 0x84, 0x06, 0x9f, 0xd4, 0xe5, 0x7c, 0x0c, 0x31, 0xe7, 0x8f, 0xb6,
+ 0x31, 0xe7, 0x32, 0xb6, 0x9f, 0xd4, 0xe5, 0x4e, 0x0c, 0x95, 0x45, 0x05, 0x4c, 0xf8, 0x66, 0x05,
+ 0x8e, 0x4f, 0x1d, 0x51, 0xb6, 0x53, 0x1e, 0x7d, 0x95, 0x3f, 0x3a, 0x01, 0x95, 0x8f, 0x05, 0x08,
+ 0x0b, 0x0c, 0x0d, 0x91, 0x40, 0x08, 0x03, 0x31, 0xdc, 0x20, 0xdc, 0x20, 0xdc, 0x20, 0xdc, 0x20,
+ 0xdc, 0x10, 0x1e, 0x82, 0x8f, 0x5a, 0x52, 0x9d, 0x71, 0x0b, 0x93, 0x27, 0x98, 0x84, 0xb6, 0x04,
+ 0x26, 0x06, 0x0f, 0x62, 0x71, 0xcc, 0x05, 0x01, 0x55, 0x62, 0x3d, 0x32, 0x0e, 0x39, 0x27, 0x7e,
+ 0x08, 0x41, 0x49, 0x07, 0x47, 0x09, 0x88, 0x29, 0x8a, 0x03, 0x41, 0x97, 0x0c, 0x1d, 0x04, 0x0f,
+ 0x7f, 0x29, 0xa1, 0x43, 0x32, 0xb6, 0x3d, 0x78, 0x4f, 0x27, 0xf0, 0xe5, 0xe0, 0x3d, 0x08, 0x38,
+ 0x36, 0xa1, 0x43, 0x32, 0xb6, 0x41, 0x9b, 0x03, 0x36, 0x8a, 0x03, 0x41, 0x9b, 0x0c, 0x41, 0x0c,
+ 0x93, 0x6f, 0x4e, 0x08, 0x41, 0x49, 0x07, 0x43, 0x06, 0xc4, 0x6f, 0xcc, 0x64, 0x55, 0x62, 0x6e,
+ 0x64, 0x8f, 0x92, 0x0f, 0x89, 0x02, 0x69, 0x04, 0x25, 0xb6, 0x04, 0x43, 0x0a, 0x3a, 0x43, 0x98,
+ 0x84, 0xb6, 0x04, 0x26, 0x8f, 0x0a, 0x0e, 0x57, 0x0a, 0x02, 0x43, 0x05, 0x0f, 0x7f, 0x32, 0x53,
+ 0x39, 0x01, 0x55, 0x62, 0x6b, 0x32, 0x0d, 0x0f, 0x06, 0x43, 0x7e, 0x09, 0x41, 0x49, 0x07, 0x6f,
+ 0x08, 0x38, 0x41, 0x8a, 0x03, 0x41, 0x9b, 0x0c, 0x36, 0x9b, 0x03, 0x41, 0xa1, 0x43, 0x32, 0xb6,
+ 0x36, 0x0c, 0x5b, 0x00, 0xdc, 0xe5, 0xe0, 0x6b, 0x07, 0xc4, 0x3d, 0xa1, 0x43, 0x32, 0xb6, 0x29,
+ 0x6e, 0x04, 0x1d, 0x8a, 0x03, 0x41, 0x9b, 0x0c, 0x29, 0x0b, 0x3a, 0x47, 0x7e, 0x09, 0x41, 0x49,
+ 0x07, 0x27, 0x05, 0x57, 0x01, 0x47, 0xcc, 0x64, 0x55, 0x62, 0x69, 0x32, 0x53, 0x06, 0x26, 0x98,
+ 0x84, 0xb6, 0x04, 0x27, 0x09, 0x88, 0x69, 0x8f, 0x0a, 0x0e, 0x57, 0x0a, 0x02, 0x10, 0x19, 0x3d,
+ 0x82, 0x75, 0xcf, 0x0e, 0x89, 0x6a, 0x37, 0xa2, 0x21, 0x47, 0x9b, 0x21, 0x47, 0x0b, 0xb6, 0x08,
+ 0x86, 0x01, 0x02, 0x05, 0x92, 0x2e, 0x53, 0x8b, 0x1c, 0xa1, 0x1c, 0x8e, 0x05, 0x1c, 0x05, 0xb6,
+ 0x04, 0x20, 0x78, 0x84, 0x06, 0x1b, 0xcb, 0x94, 0x4f, 0x2f, 0x32, 0x0c, 0x84, 0x91, 0x5b, 0x1d,
+ 0x8f, 0xb6, 0x29, 0x0a, 0x84, 0x9e, 0x8a, 0x5b, 0x1d, 0x06, 0x22, 0x27, 0x04, 0x84, 0x06, 0x43,
+ 0x5f, 0x93, 0x3d, 0x8e, 0x07, 0x27, 0x0a, 0x4b, 0x3d, 0x80, 0x3a, 0x43, 0x74, 0x02, 0x27, 0x53,
+ 0x66, 0x1d, 0x6e, 0x4b, 0x00, 0x0a, 0x4b, 0x00, 0x51, 0x01, 0x1d, 0x9a, 0x53, 0x34, 0x94, 0x77,
+ 0x29, 0x53, 0x8b, 0x76, 0x98, 0x25, 0x5b, 0x6b, 0x8e, 0x0c, 0x26, 0x7e, 0x34, 0x36, 0x05, 0x84,
+ 0x60, 0x3d, 0x9a, 0x0e, 0x25, 0x39, 0x36, 0x8e, 0x57, 0x07, 0x4c, 0x75, 0x91, 0x53, 0xb6, 0x03,
+ 0x6b, 0x5f, 0x94, 0x1e, 0x77, 0x4e, 0xc4, 0x29, 0x32, 0x2c, 0xb6, 0x04, 0x43, 0x4e, 0x88, 0x6f,
+ 0x6c, 0x0b, 0x53, 0x40, 0x9e, 0x3d, 0x49, 0x93, 0x10, 0x09, 0x82, 0xac, 0x10, 0x0c, 0x3d, 0x2a,
+ 0x0b, 0x88, 0x1c, 0x97, 0x03, 0x1c, 0x0c, 0x88, 0x43, 0xd0, 0x04, 0x1c, 0x0c, 0x52, 0x1c, 0x9b,
+ 0x08, 0x1c, 0x49, 0x03, 0x1c, 0x53, 0x28, 0x03, 0x22, 0x1c, 0x7e, 0x08, 0x1c, 0x7c, 0x05, 0x1c,
+ 0x8a, 0x03, 0xab, 0x02, 0x1c, 0xa1, 0x3d, 0xc3, 0x3b, 0xa1, 0xab, 0x02, 0x1c, 0x8a, 0x03, 0x1c,
+ 0x49, 0x05, 0x1c, 0x3c, 0x08, 0x20, 0x9a, 0x22, 0x1c, 0x78, 0x57, 0x3b, 0x4e, 0x03, 0x1c, 0x9b,
+ 0x08, 0x3b, 0x0c, 0x52, 0x41, 0xd0, 0x04, 0x3b, 0x0c, 0x88, 0x3b, 0x97, 0x03, 0x3b, 0x0b, 0x88,
+ 0x10, 0x0c, 0x2a, 0x0b, 0x88, 0x3b, 0x9b, 0x04, 0x3b, 0x0b, 0x38, 0x41, 0xd0, 0x05, 0x3b, 0x0e,
+ 0x38, 0x3b, 0x4e, 0x03, 0x1c, 0x9b, 0x08, 0x3b, 0x0e, 0x52, 0x3b, 0x8e, 0x03, 0x1c, 0x4e, 0x06,
+ 0x43, 0xd0, 0x09, 0x1c, 0x9b, 0xd2, 0x02, 0x34, 0xb4, 0x57, 0x2d, 0xb4, 0x57, 0x20, 0x8f, 0x34,
+ 0x1c, 0x9b, 0xd2, 0x55, 0x09, 0x1c, 0x4e, 0x06, 0x1c, 0x8e, 0x03, 0x1c, 0x0e, 0x52, 0x1c, 0x9b,
+ 0x08, 0x1c, 0x4e, 0x03, 0x1c, 0x53, 0xd2, 0x55, 0x05, 0x1c, 0x0b, 0x0f, 0xd2, 0x9b, 0x04, 0x1c,
+ 0x0b, 0x88, 0x10, 0x10, 0x00, 0x82, 0xdc, 0x20, 0xdc, 0x72, 0x06, 0x63, 0x00, 0xe7, 0x32, 0x09,
+ 0x06, 0x1f, 0x0c, 0x52, 0x04, 0xc0, 0x83, 0x32, 0x49, 0x08, 0x99, 0x4e, 0x63, 0x83, 0x9a, 0x0c,
+ 0x52, 0x34, 0x38, 0x03, 0x72, 0x06, 0x0e, 0xb6, 0x06, 0x35, 0x06, 0x0e, 0xb6, 0x06, 0x31, 0x9a,
+ 0x0c, 0x52, 0x34, 0x38, 0x03, 0x9f, 0x32, 0x49, 0x08, 0x99, 0x4e, 0x63, 0x95, 0x0c, 0x52, 0x04,
+ 0xc0, 0x1f, 0x06, 0x63, 0x00, 0xe7, 0x32, 0x09, 0x06, 0x37, 0xdc, 0x20, 0xdc, 0x10, 0x1b, 0x3d,
+ 0x2a, 0x82, 0xac, 0x69, 0x51, 0x46, 0x51, 0x46, 0x51, 0x46, 0x2e, 0xac, 0x10, 0x0a, 0xd1, 0x82,
+ 0x68, 0x68, 0xc3, 0xc5, 0x20, 0xc2, 0x0e, 0x77, 0x10, 0x0c, 0x68, 0x68, 0x2d, 0xe3, 0xc3, 0xe3,
+ 0xc3, 0xe3, 0x10, 0x0a, 0x2f, 0x2a, 0x82, 0xa9, 0xa9, 0xb3, 0x10, 0x0b, 0x3d, 0x82, 0x04, 0x34,
+ 0x1c, 0x49, 0x08, 0x20, 0x78, 0x87, 0x35, 0x9b, 0x28, 0x07, 0x4b, 0x1c, 0x8a, 0x05, 0x20, 0x8d,
+ 0x01, 0x20, 0x06, 0x22, 0x1c, 0x8e, 0x06, 0x20, 0xcc, 0x02, 0x00, 0xd0, 0xd2, 0x49, 0x08, 0xab,
+ 0x03, 0x20, 0x9b, 0x28, 0x4e, 0x09, 0x1c, 0x8a, 0x05, 0x20, 0x74, 0x01, 0x20, 0x06, 0x22, 0x1c,
+ 0x8e, 0x06, 0x20, 0x8d, 0x02, 0x00, 0xd0, 0xd2, 0x7c, 0x07, 0xab, 0x03, 0x20, 0x04, 0x34, 0x1c,
+ 0x4e, 0x09, 0x20, 0x78, 0x87, 0x10, 0x14, 0x43, 0x82, 0x9a, 0x92, 0x90, 0x45, 0x03, 0x31, 0x4e,
+ 0xe3, 0x5b, 0x37, 0x08, 0x84, 0x1e, 0x5b, 0x9f, 0x97, 0x88, 0x70, 0x5c, 0x8e, 0x8b, 0x1f, 0x0c,
+ 0x22, 0x47, 0x8e, 0x0c, 0x83, 0x74, 0x02, 0x47, 0x74, 0x02, 0x95, 0x07, 0x4b, 0x26, 0x7c, 0x07,
+ 0x95, 0x7c, 0x06, 0x26, 0x06, 0x4b, 0x95, 0x8a, 0x03, 0x26, 0x9b, 0x0c, 0x95, 0xa1, 0x76, 0x32,
+ 0xb6, 0x95, 0xa1, 0x76, 0x32, 0xb6, 0x33, 0xf2, 0x95, 0xa1, 0x76, 0x32, 0xb6, 0x95, 0xa1, 0x76,
+ 0x32, 0xb6, 0x95, 0x8a, 0x03, 0x26, 0x9b, 0x0c, 0x95, 0x7c, 0x06, 0x26, 0x06, 0x4b, 0x95, 0x07,
+ 0x4b, 0x26, 0x7c, 0x07, 0x95, 0x74, 0x02, 0x47, 0x74, 0x02, 0x83, 0x0c, 0x22, 0x47, 0x8e, 0x0c,
+ 0x1f, 0x97, 0x88, 0x70, 0x5c, 0x8e, 0x8b, 0x9f, 0x08, 0x84, 0x1e, 0x5b, 0x37, 0x4e, 0xe3, 0x5b,
+ 0x2f, 0x9a, 0x92, 0x90, 0x45, 0x03, 0x10, 0x14, 0x82, 0x5c, 0x07, 0x09, 0xcf, 0x94, 0x31, 0x21,
+ 0x69, 0x21, 0x69, 0x0e, 0x0b, 0x09, 0x06, 0x70, 0xac, 0xae, 0xc5, 0x31, 0x30, 0x1f, 0x30, 0x1f,
+ 0x30, 0x10, 0x14, 0x00, 0xd1, 0x8f, 0x05, 0x08, 0xa0, 0x0e, 0x57, 0x9c, 0x9e, 0xb8, 0x84, 0xb6,
+ 0x07, 0x43, 0xa8, 0x5b, 0x1f, 0x89, 0x07, 0x04, 0x86, 0x43, 0x65, 0x91, 0x8b, 0x20, 0x80, 0x0b,
+ 0x1c, 0x97, 0x28, 0x8d, 0xb4, 0x52, 0x1c, 0x06, 0x4b, 0x20, 0x5f, 0x03, 0x20, 0x0b, 0x4b, 0x20,
+ 0x7c, 0x58, 0x35, 0x0a, 0xb6, 0x03, 0x1b, 0xcb, 0x0e, 0x03, 0x72, 0x32, 0x0c, 0xb6, 0x04, 0x1b,
+ 0x80, 0x0e, 0x04, 0x72, 0x9a, 0x0e, 0xb6, 0x04, 0x1b, 0x98, 0xb6, 0x03, 0x1b, 0x3c, 0x52, 0x03,
+ 0x1b, 0x07, 0x84, 0x44, 0x31, 0xdc, 0x3f, 0x66, 0x6b, 0xdc, 0x3f, 0x66, 0x6b, 0xdc, 0x3f, 0x66,
+ 0x10, 0x14, 0x82, 0x7a, 0x09, 0xcf, 0x0e, 0x89, 0x64, 0x71, 0x51, 0x1e, 0x38, 0x02, 0xb8, 0xe3,
+ 0x62, 0x1f, 0x45, 0x05, 0x4c, 0x8f, 0x04, 0x7c, 0x93, 0x1c, 0x07, 0x34, 0x1c, 0x8d, 0xb4, 0x0f,
+ 0x28, 0x7e, 0x09, 0x1b, 0x8c, 0x49, 0x7f, 0x2f, 0xe3, 0x22, 0x02, 0x2f, 0xe2, 0x4b, 0x02, 0xc3,
+ 0xe3, 0x63, 0x31, 0x8c, 0x08, 0x0e, 0x22, 0x1c, 0x80, 0x07, 0x43, 0xd0, 0xd2, 0x01, 0xb6, 0xb4,
+ 0x0f, 0x28, 0x05, 0x34, 0x20, 0x80, 0x08, 0x95, 0x78, 0x08, 0x05, 0x86, 0x43, 0x5c, 0x08, 0x91,
+ 0x7f, 0xa8, 0x39, 0x76, 0x51, 0x1e, 0x34, 0x04, 0x9f, 0x7a, 0x09, 0x0c, 0x91, 0x40, 0x09, 0x05,
+ 0x10, 0x14, 0x26, 0x82, 0x06, 0x25, 0x35, 0x6e, 0x84, 0x35, 0x0b, 0x52, 0x84, 0x1b, 0x3c, 0x04,
+ 0x84, 0x72, 0x6e, 0x09, 0xf2, 0x72, 0x0b, 0x57, 0x01, 0xf2, 0x31, 0x3c, 0x05, 0xe0, 0x2f, 0x6e,
+ 0x0a, 0x00, 0xe0, 0x2f, 0x0b, 0x0f, 0x62, 0xe0, 0x37, 0x3c, 0x06, 0x43, 0xe0, 0x2e, 0x6e, 0x0b,
+ 0x41, 0xe0, 0x2e, 0x0b, 0x0f, 0x7f, 0x41, 0xe0, 0x9f, 0x3c, 0x06, 0x3d, 0xe0, 0x1f, 0x6e, 0x0b,
+ 0xb5, 0x1f, 0x0b, 0x0f, 0x7f, 0xb5, 0x1f, 0xe3, 0x3f, 0x6f, 0xe3, 0x3f, 0x6f, 0xe3, 0x3f, 0x35,
+ 0xb3, 0x2d, 0x10, 0x14, 0x82, 0x3f, 0xca, 0xca, 0x2e, 0xb3, 0x2d, 0x2d, 0x92, 0x57, 0x0d, 0x5d,
+ 0x9f, 0xdc, 0x1e, 0x34, 0x03, 0xb8, 0x84, 0xb6, 0x03, 0x9f, 0x0c, 0x7b, 0x02, 0x00, 0x8f, 0x05,
+ 0x7c, 0xc4, 0x00, 0xd0, 0x4f, 0x1c, 0x08, 0x22, 0x1c, 0xaa, 0xf2, 0x1c, 0xaa, 0x08, 0x22, 0x00,
+ 0xd0, 0x4f, 0x95, 0x78, 0x08, 0x05, 0x4c, 0x00, 0x8f, 0x05, 0x7c, 0xc4, 0xa8, 0x0e, 0x03, 0x83,
+ 0xe2, 0x1e, 0x38, 0x03, 0x9f, 0x7a, 0x09, 0x0c, 0x91, 0x40, 0x56, 0x10, 0x14, 0x41, 0x82, 0x9a,
+ 0x08, 0xcf, 0x0e, 0x0b, 0x08, 0x03, 0x2e, 0x32, 0x2c, 0x84, 0x9f, 0x32, 0x0c, 0x25, 0x1e, 0x2e,
+ 0x8e, 0x88, 0x05, 0x01, 0x00, 0x5c, 0x5e, 0x9f, 0x3c, 0x5b, 0x35, 0x78, 0x4b, 0x20, 0x97, 0x66,
+ 0x20, 0x4e, 0xd2, 0x8e, 0x07, 0x20, 0x78, 0x0f, 0x39, 0x9a, 0x5a, 0x0f, 0x40, 0x73, 0x9f, 0x91,
+ 0x6c, 0x0f, 0x1e, 0x4f, 0x6f, 0xdc, 0x5b, 0x84, 0x1e, 0x4f, 0x83, 0x91, 0x34, 0x05, 0x01, 0x32,
+ 0x05, 0x0d, 0x94, 0x77, 0x95, 0x0e, 0x84, 0x7d, 0x3d, 0x32, 0x8a, 0x09, 0x95, 0x8a, 0x8b, 0x76,
+ 0x04, 0x34, 0x95, 0x0a, 0x84, 0x01, 0x47, 0x32, 0xb6, 0x95, 0x07, 0x84, 0x01, 0x47, 0x32, 0xb6,
+ 0x95, 0x74, 0x04, 0x76, 0x04, 0x34, 0x83, 0x8e, 0x7d, 0x3d, 0x32, 0x8a, 0x09, 0x83, 0x9b, 0x52,
+ 0x05, 0x01, 0x32, 0x05, 0x0d, 0x94, 0x66, 0x1f, 0x07, 0xe3, 0x1e, 0x06, 0x2e, 0x07, 0x1e, 0xb6,
+ 0x06, 0x2f, 0x6c, 0xcf, 0x0e, 0x0b, 0x9e, 0x10, 0x14, 0xd1, 0xe0, 0x3f, 0xa8, 0xb6, 0xa8, 0x0f,
+ 0x5b, 0x20, 0x74, 0x02, 0x20, 0x08, 0x22, 0xab, 0x64, 0xd0, 0x0d, 0x1c, 0x8e, 0x08, 0x20, 0x74,
+ 0x02, 0x20, 0x08, 0x4b, 0xab, 0x04, 0x20, 0x05, 0x34, 0x1c, 0x8e, 0x07, 0x20, 0x74, 0x01, 0x20,
+ 0x08, 0x4b, 0xab, 0x04, 0x20, 0x06, 0x34, 0xbe, 0x79, 0x35, 0x09, 0x4b, 0x20, 0xcc, 0x04, 0x20,
+ 0x06, 0x34, 0xbe, 0x10, 0x14, 0x00, 0x82, 0x32, 0x06, 0xa0, 0x34, 0x85, 0x01, 0x2e, 0x9a, 0x0d,
+ 0x1e, 0x34, 0x03, 0x9f, 0x6e, 0x84, 0x1e, 0x7f, 0x1f, 0x49, 0x93, 0x4c, 0x8c, 0x49, 0x93, 0x83,
+ 0x78, 0x0f, 0x4f, 0x47, 0x07, 0x34, 0x76, 0x51, 0x01, 0x47, 0x8d, 0x1f, 0xa1, 0x1d, 0x32, 0x34,
+ 0x1f, 0x49, 0x06, 0x47, 0x7e, 0x09, 0x1f, 0x80, 0x09, 0x4c, 0x8c, 0x49, 0x44, 0x1f, 0x8f, 0x0b,
+ 0x1e, 0x22, 0x02, 0x2e, 0x8f, 0x2c, 0x9d, 0x37, 0x08, 0x84, 0x1e, 0x93, 0x9f, 0x0a, 0x34, 0x59,
+ 0x43, 0x7a, 0x0e, 0x4b, 0x83, 0x3c, 0x58, 0x47, 0x5f, 0x06, 0x95, 0x8a, 0x04, 0x26, 0x97, 0x0c,
+ 0x95, 0xa1, 0x76, 0x32, 0xb6, 0x1d, 0x51, 0x01, 0x26, 0x8d, 0x6f, 0x78, 0x87, 0x76, 0x04, 0x34,
+ 0x95, 0x7c, 0x58, 0x47, 0x5f, 0x0a, 0x95, 0x97, 0x52, 0x59, 0x43, 0x65, 0x91, 0x8b, 0x83, 0x2c,
+ 0xe3, 0x93, 0x9f, 0x08, 0x84, 0x1e, 0x5b, 0x37, 0x6c, 0x0b, 0x0e, 0xb6, 0x0b, 0x73, 0x10, 0x14,
+ 0x43, 0x82, 0x75, 0x0b, 0x53, 0x40, 0x73, 0x2f, 0x05, 0x53, 0x1e, 0x4f, 0x2e, 0x06, 0x25, 0x1e,
+ 0x4f, 0x1f, 0x74, 0x0d, 0x05, 0x01, 0x32, 0x05, 0x0d, 0x94, 0x77, 0x83, 0x49, 0x7d, 0x3d, 0x32,
+ 0x0c, 0x22, 0x95, 0x78, 0x87, 0x47, 0x97, 0x66, 0x95, 0xa1, 0x76, 0x8d, 0x06, 0x95, 0xa1, 0x76,
+ 0x8d, 0x09, 0x6f, 0x78, 0x87, 0x47, 0x97, 0x38, 0x95, 0x49, 0x7d, 0x3d, 0x32, 0x8a, 0x52, 0x95,
+ 0x9b, 0x38, 0x05, 0x01, 0x32, 0x05, 0x0d, 0x94, 0xb6, 0x83, 0x08, 0x84, 0x1e, 0x5b, 0x84, 0x1f,
+ 0x7e, 0x1e, 0x73, 0xb6, 0x9f, 0x6c, 0xcf, 0x67, 0x05, 0x34, 0x1c, 0x08, 0x22, 0x1c, 0x8a, 0x08,
+ 0x20, 0x74, 0x04, 0x20, 0x0b, 0x34, 0x20, 0x08, 0x84, 0x06, 0x1f, 0x78, 0x08, 0x4c, 0x32, 0x05,
+ 0x8e, 0x88, 0xb8, 0x25, 0x7d, 0xb8, 0x84, 0x63, 0x1f, 0x9a, 0x08, 0x0b, 0x53, 0x40, 0x08, 0x03,
+ 0x10, 0x0b, 0x47, 0xa9, 0xc1, 0x2a, 0x68, 0xb3, 0x10, 0x0b, 0x47, 0xa9, 0xc1, 0x2a, 0x68, 0x94,
+ 0x24, 0x1c, 0xc2, 0x0e, 0x77, 0x10, 0x1b, 0x43, 0x68, 0x65, 0x0c, 0x1b, 0x32, 0x4a, 0x84, 0x72,
+ 0x04, 0x0a, 0x0e, 0xe3, 0x2e, 0x9a, 0x09, 0x0e, 0x1e, 0x85, 0x1f, 0x65, 0x0d, 0xe3, 0x38, 0x9e,
+ 0x95, 0x32, 0x06, 0x0c, 0x25, 0x34, 0x08, 0x03, 0x1f, 0x05, 0x0a, 0x25, 0xb6, 0x56, 0x2e, 0x0e,
+ 0x1e, 0x5d, 0x2f, 0xe2, 0x38, 0x02, 0x1b, 0x0e, 0x1e, 0x5d, 0x72, 0x05, 0x0a, 0x25, 0xb6, 0x56,
+ 0x2f, 0x32, 0x06, 0x0c, 0x25, 0x34, 0x08, 0x03, 0x31, 0x65, 0x0d, 0xe3, 0x38, 0x9e, 0x2f, 0x9a,
+ 0x09, 0x0e, 0x1e, 0x85, 0x72, 0x04, 0x0a, 0x0e, 0xe3, 0x1b, 0x32, 0x4a, 0x84, 0x3b, 0x65, 0x0c,
+ 0x10, 0x1b, 0xd1, 0xa9, 0x46, 0x3e, 0x46, 0x3e, 0x10, 0x1b, 0x20, 0x82, 0x82, 0x0c, 0x6a, 0x2d,
+ 0x85, 0x01, 0x43, 0xc3, 0xb6, 0x0a, 0x04, 0x72, 0x4a, 0x25, 0xb6, 0x09, 0x03, 0x31, 0x65, 0x0c,
+ 0x25, 0x34, 0x6a, 0x2f, 0x9a, 0x5e, 0x1e, 0x85, 0x01, 0x31, 0x04, 0x09, 0x0e, 0x1e, 0x5d, 0x72,
+ 0x05, 0x0b, 0x25, 0xb6, 0x72, 0x8f, 0x0c, 0xe3, 0x31, 0x05, 0x0a, 0x25, 0xb6, 0x2e, 0x04, 0x09,
+ 0x0e, 0x1e, 0x5d, 0x83, 0x9a, 0x5e, 0xe3, 0x38, 0x06, 0x01, 0x83, 0x75, 0x0c, 0x25, 0x34, 0x6a,
+ 0x1f, 0x4a, 0x25, 0xb6, 0x09, 0x03, 0x71, 0x51, 0xb6, 0x0a, 0x04, 0xc3, 0x85, 0x01, 0x35, 0x0c,
+ 0x6a, 0x10, 0x11, 0x00, 0x82, 0x05, 0x5a, 0x0f, 0x40, 0x73, 0x2f, 0x05, 0x0d, 0xe3, 0xb6, 0x04,
+ 0x2e, 0xe2, 0x1e, 0x66, 0x83, 0xdc, 0x5d, 0x01, 0x01, 0x6c, 0x0f, 0x4b, 0x2e, 0x0b, 0x02, 0x47,
+ 0x7e, 0x28, 0x8d, 0xb4, 0x52, 0x1c, 0x7e, 0x08, 0x20, 0x97, 0x62, 0x72, 0x9a, 0x0e, 0x57, 0x03,
+ 0x1b, 0x9a, 0x53, 0x8b, 0x35, 0xcc, 0x05, 0x20, 0x49, 0x08, 0x20, 0x78, 0x0f, 0x66, 0x1b, 0xdc,
+ 0x24, 0x72, 0x2a, 0xb3, 0x10, 0x20, 0x26, 0x82, 0x65, 0x5a, 0x0e, 0x57, 0x9c, 0x6a, 0x9f, 0x04,
+ 0x0b, 0x84, 0x1e, 0x22, 0x04, 0x6f, 0xcb, 0x3f, 0x3a, 0x01, 0x27, 0x9a, 0x91, 0x4b, 0x06, 0x4c,
+ 0x00, 0x8c, 0x4a, 0x25, 0x44, 0x00, 0x71, 0x04, 0x25, 0x63, 0x47, 0x8f, 0x7c, 0xc4, 0x69, 0xbd,
+ 0x03, 0x29, 0x04, 0x53, 0x38, 0x69, 0x8a, 0x44, 0x36, 0x04, 0x53, 0x4f, 0x1d, 0xc6, 0x77, 0x3d,
+ 0x06, 0x0c, 0x0e, 0x40, 0x06, 0xf8, 0xe7, 0x06, 0xb6, 0x47, 0x78, 0x0f, 0x4f, 0x43, 0x32, 0x0c,
+ 0x25, 0x4b, 0xfa, 0xe5, 0x8a, 0x05, 0x1d, 0x97, 0x62, 0x43, 0x7c, 0x1e, 0x49, 0xe5, 0x06, 0x4b,
+ 0x1d, 0x4e, 0x09, 0x41, 0x97, 0x88, 0x70, 0x5c, 0x8e, 0xe7, 0x8f, 0x34, 0x1d, 0x8a, 0x04, 0x41,
+ 0x0a, 0x22, 0x47, 0x8e, 0xf5, 0x32, 0xb6, 0x1d, 0x53, 0x66, 0x43, 0x78, 0x87, 0x1d, 0x97, 0xe5,
+ 0x4d, 0xd4, 0xe7, 0xe0, 0x01, 0x47, 0x81, 0xe7, 0x8f, 0x34, 0x41, 0xe0, 0x01, 0x00, 0xe0, 0x01,
+ 0x47, 0x8d, 0x41, 0x05, 0x22, 0x1d, 0x53, 0x66, 0x43, 0x78, 0x87, 0x1d, 0x97, 0xe5, 0x8e, 0x06,
+ 0x1d, 0x8a, 0x05, 0x41, 0x0a, 0x22, 0x47, 0x8e, 0xf5, 0x3c, 0x58, 0x1d, 0x49, 0x09, 0x41, 0x97,
+ 0x88, 0x70, 0x8c, 0x0b, 0x84, 0x66, 0x4e, 0x39, 0x3d, 0xc6, 0x62, 0x43, 0x8e, 0x1e, 0x4e, 0xe3,
+ 0x06, 0x26, 0x53, 0x5b, 0x43, 0x32, 0x0c, 0x25, 0x4b, 0xf2, 0x22, 0x03, 0x69, 0x3c, 0x77, 0x3d,
+ 0x07, 0x0c, 0x0e, 0x40, 0x06, 0x43, 0x0e, 0x9c, 0x08, 0x03, 0x27, 0x0d, 0x94, 0x7f, 0x20, 0x9b,
+ 0x57, 0x04, 0x27, 0x01, 0x0a, 0x03, 0x29, 0x05, 0x25, 0x9d, 0x69, 0x05, 0x0d, 0x38, 0x6b, 0x05,
+ 0x91, 0x4b, 0x06, 0x4c, 0x32, 0x61, 0x8a, 0x4f, 0x6b, 0x9a, 0x0d, 0x0f, 0x3f, 0x6d, 0x83, 0x06,
+ 0x0d, 0x25, 0x1e, 0x63, 0x1f, 0x04, 0x08, 0xcf, 0x57, 0x0b, 0x9e, 0x10, 0x16, 0x1d, 0x82, 0x7e,
+ 0x4f, 0x20, 0x8a, 0x52, 0x1b, 0x9a, 0x25, 0x77, 0x1b, 0x09, 0x25, 0x93, 0x1b, 0x53, 0x4f, 0xb6,
+ 0x72, 0x05, 0x34, 0x78, 0x0f, 0x39, 0x31, 0x8e, 0x07, 0x00, 0x07, 0x22, 0x2f, 0x74, 0x02, 0x8f,
+ 0x94, 0x66, 0x37, 0x07, 0x22, 0x41, 0x8e, 0x07, 0x2e, 0x78, 0x94, 0x64, 0xc6, 0x0d, 0x00, 0xa3,
+ 0x53, 0x8b, 0x9f, 0x49, 0x09, 0x1d, 0x49, 0x09, 0x1f, 0xcc, 0x03, 0x1d, 0x9b, 0x62, 0x95, 0x3c,
+ 0x0c, 0x76, 0x8a, 0x06, 0x83, 0x0c, 0x3f, 0x38, 0x95, 0x74, 0x3f, 0x02, 0x6f, 0x4e, 0x3f, 0x5b,
+ 0x36, 0x78, 0x0f, 0x39, 0x69, 0x04, 0x34, 0x36, 0x04, 0xb6, 0x00, 0x71, 0x53, 0x8b, 0x6b, 0x7c,
+ 0x08, 0x00, 0x71, 0x08, 0x4b, 0x29, 0x8d, 0x03, 0x00, 0x71, 0x74, 0x01, 0x27, 0x3c, 0x0c, 0x29,
+ 0x8a, 0x06, 0x27, 0x8a, 0x06, 0x29, 0x3c, 0x0c, 0x10, 0x16, 0x82, 0x84, 0x1e, 0x40, 0x5d, 0x43,
+ 0xa8, 0x38, 0x03, 0xa8, 0x94, 0x7f, 0x1d, 0x51, 0x47, 0x5c, 0x7c, 0x93, 0x33, 0x07, 0x34, 0x33,
+ 0x8d, 0x33, 0x01, 0x34, 0x33, 0x07, 0x4b, 0x1d, 0x51, 0x47, 0x5c, 0x49, 0x77, 0x95, 0x3f, 0x52,
+ 0x04, 0xa8, 0x0c, 0x04, 0x00, 0xa8, 0x4b, 0x01, 0x1d, 0x51, 0x47, 0x8c, 0x06, 0x0d, 0x22, 0x33,
+ 0x01, 0x8a, 0x06, 0x3d, 0x51, 0x71, 0x04, 0x22, 0x41, 0xb7, 0x32, 0xb6, 0x41, 0xb7, 0x32, 0xeb,
+ 0x50, 0x26, 0x04, 0x34, 0x41, 0xb7, 0x01, 0x0c, 0x4b, 0x3d, 0x51, 0x1d, 0x32, 0x61, 0x0d, 0x94,
+ 0x8b, 0x29, 0xdc, 0x3f, 0x93, 0x29, 0xd4, 0x3f, 0x4f, 0x6b, 0xd4, 0x1e, 0xb6, 0x9c, 0x9e, 0x10,
+ 0x16, 0x1d, 0x82, 0x7a, 0x5a, 0x0e, 0x57, 0x89, 0x6a, 0x1f, 0x8f, 0x2c, 0x84, 0x22, 0x04, 0x95,
+ 0x04, 0x91, 0x3f, 0x6f, 0x04, 0x25, 0x85, 0x4c, 0x32, 0x02, 0x05, 0x5e, 0x94, 0x36, 0xbd, 0x03,
+ 0x71, 0x04, 0x0b, 0x36, 0x7c, 0x58, 0x35, 0x74, 0x03, 0x20, 0x07, 0x22, 0x1c, 0x7c, 0x06, 0x20,
+ 0x78, 0x0f, 0x66, 0x1c, 0xa1, 0x3d, 0xc3, 0x3b, 0xa1, 0x20, 0x78, 0x0f, 0x66, 0x1c, 0x7c, 0x06,
+ 0x1c, 0x07, 0x22, 0x1c, 0x74, 0x03, 0x1c, 0x7c, 0x58, 0x20, 0xbd, 0x03, 0x71, 0x04, 0x0b, 0x6f,
+ 0x04, 0x25, 0x85, 0x4c, 0x32, 0x02, 0x05, 0x5e, 0x94, 0x95, 0x04, 0x91, 0x3f, 0x95, 0x8f, 0x0a,
+ 0x84, 0x1e, 0x22, 0x04, 0x9f, 0x65, 0x5a, 0x0e, 0x57, 0x89, 0x6a, 0x10, 0x19, 0x82, 0xe3, 0xb6,
+ 0x0d, 0x89, 0x7b, 0x43, 0xa8, 0x57, 0x63, 0x27, 0xec, 0x3f, 0xb6, 0x06, 0x3d, 0x51, 0x3d, 0x32,
+ 0x02, 0x05, 0x5e, 0x25, 0x06, 0x50, 0x26, 0x05, 0x91, 0x77, 0x29, 0x4d, 0x71, 0x80, 0x0b, 0x43,
+ 0x51, 0x27, 0x9b, 0x77, 0xb7, 0x3d, 0x8e, 0x07, 0xb7, 0x3d, 0x06, 0x22, 0xb7, 0x41, 0x8f, 0x34,
+ 0xb7, 0x41, 0x32, 0xb6, 0xb7, 0x3d, 0x4d, 0x51, 0x27, 0x32, 0xb6, 0xb7, 0x41, 0x9a, 0x34, 0xb7,
+ 0x3d, 0x06, 0x22, 0xb7, 0x3d, 0x8e, 0x07, 0xb7, 0x41, 0x9b, 0x77, 0xb7, 0x43, 0x80, 0x0b, 0x43,
+ 0x51, 0x71, 0x05, 0x91, 0x77, 0x43, 0x51, 0x3d, 0x32, 0x02, 0x05, 0x5e, 0x25, 0x06, 0x41, 0x51,
+ 0x3f, 0x6d, 0x6f, 0x3f, 0x57, 0x63, 0x27, 0xec, 0x1e, 0x90, 0x89, 0x7b, 0x10, 0x14, 0x82, 0x84,
+ 0x3f, 0xa8, 0x84, 0xa8, 0x84, 0x83, 0xb3, 0xc5, 0x1c, 0x2b, 0x2b, 0x2b, 0xac, 0x3f, 0xa8, 0x84,
+ 0xa8, 0x84, 0x10, 0x12, 0x82, 0x30, 0x1f, 0x30, 0x1f, 0x30, 0x1f, 0xa7, 0x84, 0x1e, 0xca, 0xca,
+ 0x2e, 0xac, 0xc5, 0x10, 0x19, 0x1d, 0x82, 0x61, 0xa0, 0x53, 0x40, 0x0a, 0x59, 0x1f, 0x9a, 0x0b,
+ 0x84, 0x1e, 0x22, 0x04, 0x95, 0x3c, 0x30, 0x36, 0x06, 0x25, 0x5d, 0x86, 0x32, 0x02, 0x05, 0x5e,
+ 0x94, 0x36, 0x9b, 0x38, 0x02, 0x71, 0x04, 0x0b, 0x36, 0x8e, 0x0c, 0x20, 0x74, 0x02, 0x20, 0x07,
+ 0x4b, 0x1c, 0x8e, 0x05, 0x20, 0x78, 0x0f, 0x66, 0x1c, 0xa1, 0x1d, 0xdc, 0x1e, 0xb7, 0x94, 0x1e,
+ 0x29, 0xa1, 0x1d, 0xdc, 0x1e, 0x27, 0x78, 0x0f, 0x66, 0xb7, 0x3d, 0x8e, 0x06, 0xb7, 0x3d, 0x07,
+ 0x4b, 0xb7, 0x3d, 0x74, 0x02, 0x51, 0x6b, 0x7c, 0x7d, 0x3d, 0xb5, 0x6b, 0x6e, 0x38, 0x03, 0x23,
+ 0x55, 0x4b, 0x06, 0x4c, 0x32, 0x02, 0x04, 0x5e, 0x84, 0x6f, 0x05, 0x53, 0x3f, 0x6d, 0x6f, 0x9a,
+ 0x7c, 0x1e, 0xb6, 0x08, 0x01, 0x9f, 0x65, 0xa0, 0x53, 0x40, 0x09, 0x06, 0x01, 0x10, 0x18, 0x82,
+ 0x84, 0xaf, 0x46, 0x36, 0x46, 0x36, 0x46, 0x50, 0x23, 0x84, 0xaf, 0x84, 0x51, 0x10, 0x09, 0x82,
+ 0xac, 0xae, 0xae, 0xc5, 0x10, 0x09, 0x82, 0xac, 0xc5, 0x1c, 0xac, 0x19, 0x28, 0xaa, 0x97, 0xd2,
+ 0x7c, 0x09, 0x1b, 0x9a, 0x7c, 0x8b, 0xba, 0x0b, 0x1b, 0xe3, 0x7d, 0x1b, 0xb6, 0x85, 0x10, 0x15,
+ 0x6f, 0x2a, 0x33, 0x80, 0x4f, 0x50, 0x1d, 0x9a, 0x91, 0x39, 0x3d, 0x51, 0x76, 0xa2, 0xb6, 0x04,
+ 0x1d, 0x51, 0x47, 0x3c, 0x57, 0x03, 0x47, 0x51, 0x1d, 0x08, 0x84, 0x44, 0x76, 0x51, 0x3d, 0x09,
+ 0x84, 0x7d, 0x1d, 0x50, 0xcb, 0x0f, 0x60, 0x69, 0x51, 0x32, 0x8a, 0x93, 0x6f, 0xb5, 0x80, 0x5b,
+ 0x9f, 0xd4, 0xb6, 0x84, 0x06, 0xba, 0x06, 0x00, 0xba, 0x7d, 0xc3, 0x07, 0x84, 0x7d, 0x2f, 0x4d,
+ 0x06, 0x84, 0x44, 0x26, 0x50, 0x05, 0x84, 0x44, 0x2e, 0x4d, 0xc6, 0x57, 0x03, 0x69, 0x51, 0x3d,
+ 0x98, 0xb6, 0x03, 0x26, 0x51, 0x3d, 0x9a, 0x0e, 0xb6, 0x04, 0x76, 0x51, 0x1d, 0x9a, 0x0e, 0xb6,
+ 0x04, 0x47, 0x51, 0x76, 0x80, 0x39, 0x1d, 0x51, 0x26, 0x80, 0x0f, 0x06, 0x41, 0xb7, 0x01, 0x0c,
+ 0x84, 0x06, 0x43, 0xb7, 0x32, 0x8a, 0x4f, 0x10, 0x12, 0x82, 0xac, 0xae, 0xae, 0x3f, 0xa8, 0x84,
+ 0xa8, 0x84, 0x10, 0x1c, 0x82, 0x25, 0x39, 0x69, 0x05, 0xe3, 0x51, 0x4b, 0x69, 0x0a, 0xe3, 0x27,
+ 0x1e, 0x01, 0x47, 0x32, 0x1e, 0x51, 0x8a, 0x06, 0x76, 0x3c, 0x0c, 0x84, 0x51, 0x3c, 0x0c, 0x76,
+ 0x8a, 0x06, 0x84, 0x51, 0x8d, 0x02, 0x3d, 0x9a, 0x84, 0x8d, 0x27, 0xeb, 0x7c, 0x08, 0x1d, 0x08,
+ 0x4b, 0x4d, 0x71, 0x4d, 0x04, 0x34, 0x3d, 0x78, 0x87, 0x84, 0x51, 0x43, 0x53, 0x8b, 0x41, 0x04,
+ 0xb6, 0xe0, 0x51, 0x43, 0x08, 0x4b, 0x41, 0x7c, 0x08, 0xe0, 0x51, 0x43, 0x9b, 0x62, 0xcc, 0x03,
+ 0xe0, 0x51, 0x41, 0x8a, 0x06, 0x00, 0x3c, 0x0c, 0x00, 0xe0, 0x51, 0x41, 0x07, 0x22, 0x00, 0x8e,
+ 0x07, 0x00, 0xe0, 0x51, 0x41, 0x74, 0x79, 0xe0, 0x51, 0x3d, 0x0b, 0x34, 0x22, 0x43, 0xe0, 0x51,
+ 0x3d, 0x05, 0x25, 0x39, 0x43, 0xe0, 0x51, 0x3d, 0xcc, 0x57, 0x01, 0x43, 0xe0, 0x51, 0x1d, 0x49,
+ 0x93, 0x41, 0xe0, 0x51, 0x1d, 0x97, 0x8b, 0x41, 0xe0, 0xc9, 0xe0, 0x51, 0x50, 0x10, 0x18, 0x82,
+ 0x84, 0x5b, 0x23, 0x25, 0x7f, 0x47, 0xdc, 0xe5, 0x51, 0x4b, 0x43, 0xb5, 0x36, 0xe3, 0x77, 0x1d,
+ 0xdc, 0xe5, 0x51, 0x7c, 0x0c, 0x1d, 0xdc, 0xe5, 0x51, 0x74, 0x05, 0xb5, 0x6b, 0x4d, 0x08, 0x34,
+ 0xb5, 0x6b, 0x4d, 0xcc, 0x07, 0x3d, 0xe0, 0x50, 0x3c, 0x62, 0x43, 0xe0, 0x50, 0x78, 0x0f, 0x93,
+ 0x41, 0xe0, 0x50, 0x00, 0x97, 0x77, 0x43, 0xe0, 0x50, 0x43, 0x0b, 0x22, 0x43, 0xe0, 0x50, 0x43,
+ 0x9b, 0x8b, 0xdc, 0xe5, 0x51, 0x1d, 0x09, 0x34, 0xdc, 0xe5, 0x51, 0x1d, 0xcc, 0x06, 0xe0, 0x50,
+ 0x3d, 0x7e, 0x62, 0x84, 0x50, 0x3d, 0x78, 0x0f, 0x5b, 0xf2, 0x50, 0x1d, 0x05, 0x84, 0x74, 0x50,
+ 0x47, 0x8a, 0x7c, 0xe5, 0x51, 0x76, 0x9a, 0x25, 0xe7, 0xb7, 0x0a, 0xe3, 0x50, 0x47, 0x8f, 0xe3,
+ 0x50, 0x26, 0x08, 0x25, 0x10, 0x19, 0x1d, 0x82, 0x61, 0xa0, 0x90, 0x9c, 0x07, 0x03, 0x9f, 0x8f,
+ 0x7c, 0x1e, 0x22, 0x02, 0x83, 0xa2, 0x3f, 0x6d, 0x6f, 0x04, 0x25, 0x5d, 0x86, 0x01, 0x02, 0x05,
+ 0x7c, 0x87, 0xc7, 0x8e, 0x06, 0x71, 0xbb, 0x47, 0x78, 0x0f, 0x77, 0x29, 0x9a, 0x34, 0x00, 0x71,
+ 0xa1, 0x6b, 0x81, 0xb9, 0x71, 0xbb, 0x76, 0x7e, 0xbf, 0x71, 0x97, 0x66, 0x27, 0x7c, 0x44, 0x71,
+ 0x6e, 0x3a, 0x29, 0xbd, 0x03, 0x76, 0x9a, 0x0d, 0x94, 0x7f, 0x6b, 0x05, 0x25, 0x5d, 0x86, 0x01,
+ 0x02, 0x05, 0x7c, 0x87, 0x36, 0xa2, 0x3f, 0x6d, 0x95, 0x9a, 0x8e, 0x1e, 0x22, 0x02, 0x2e, 0x61,
+ 0xa0, 0x90, 0x9c, 0x08, 0x03, 0x10, 0x13, 0xd1, 0xdc, 0x1e, 0x40, 0x73, 0xca, 0x09, 0x43, 0xa8,
+ 0x93, 0x76, 0x51, 0x1d, 0x7a, 0x0d, 0x94, 0x8b, 0x47, 0x51, 0x47, 0x32, 0x0c, 0x4b, 0x1a, 0x04,
+ 0x34, 0x1a, 0x01, 0xb6, 0x1a, 0x01, 0xb6, 0x1a, 0x04, 0x34, 0x47, 0x51, 0x47, 0x32, 0x0c, 0x4b,
+ 0x47, 0x51, 0x1d, 0x7a, 0x0d, 0x94, 0x8b, 0xa8, 0x3a, 0x00, 0xa8, 0x09, 0x95, 0xdc, 0x1e, 0x40,
+ 0x08, 0x03, 0x2e, 0xac, 0x10, 0x19, 0x1d, 0x82, 0x61, 0xa0, 0x90, 0x9c, 0x08, 0x03, 0x9f, 0x8f,
+ 0x7c, 0x1e, 0x22, 0x03, 0x83, 0xa2, 0x3f, 0x6d, 0x6f, 0x04, 0x25, 0x5d, 0x86, 0x01, 0x02, 0x05,
+ 0x0a, 0x25, 0x64, 0xc7, 0x8e, 0x07, 0x00, 0x71, 0x7c, 0x06, 0x6b, 0x06, 0x22, 0x71, 0x78, 0x0f,
+ 0x77, 0x29, 0x9a, 0x34, 0x00, 0x71, 0xa1, 0x6b, 0x81, 0xb9, 0x71, 0xbb, 0x76, 0x3c, 0xbf, 0x71,
+ 0x97, 0x66, 0x27, 0x7c, 0x44, 0x71, 0x6e, 0x93, 0x29, 0xbd, 0x03, 0x76, 0x9a, 0x0d, 0xb6, 0x01,
+ 0x6b, 0x04, 0x25, 0x5d, 0x86, 0x01, 0x02, 0x05, 0x7c, 0x87, 0x36, 0x98, 0x3f, 0x0e, 0x04, 0x95,
+ 0x8f, 0x0a, 0x25, 0x1e, 0x63, 0x1f, 0x61, 0xa0, 0x0e, 0x25, 0x77, 0x35, 0x32, 0x8a, 0x7f, 0x20,
+ 0x6e, 0xc4, 0x20, 0x9b, 0x88, 0x43, 0xd0, 0x93, 0x10, 0x16, 0xd1, 0xdc, 0x1e, 0x40, 0x56, 0xca,
+ 0x60, 0x00, 0xa8, 0x38, 0x76, 0x51, 0x3d, 0x32, 0x05, 0x8e, 0x4f, 0x1a, 0x7c, 0x0c, 0x1a, 0x02,
+ 0xb6, 0x1a, 0xf2, 0x1a, 0x02, 0x34, 0x1a, 0x0a, 0x4b, 0x47, 0x51, 0x3d, 0x32, 0x05, 0x8e, 0x77,
+ 0xa8, 0x0f, 0x06, 0x76, 0x51, 0x1e, 0x22, 0x03, 0x43, 0xa8, 0x06, 0x95, 0xdc, 0xe5, 0x8f, 0x05,
+ 0x8a, 0x8b, 0x76, 0x51, 0x76, 0x0b, 0x34, 0x76, 0x51, 0x76, 0xcc, 0x06, 0x1a, 0x07, 0x34, 0x1a,
+ 0xcc, 0x06, 0x33, 0x07, 0x34, 0x33, 0xcc, 0x64, 0x50, 0x26, 0x4e, 0x0c, 0x41, 0xb7, 0x32, 0x53,
+ 0x8b, 0x50, 0x69, 0x08, 0x22, 0x10, 0x14, 0x43, 0x82, 0x75, 0xa0, 0x0e, 0x57, 0x9c, 0x09, 0x59,
+ 0x9f, 0x07, 0x3f, 0x1f, 0x09, 0x30, 0x95, 0x97, 0x52, 0x06, 0x4c, 0x32, 0x02, 0x04, 0x06, 0x92,
+ 0x83, 0x0a, 0x22, 0xab, 0x02, 0x3d, 0xc3, 0x01, 0xab, 0x03, 0x1c, 0x7c, 0x44, 0x20, 0x04, 0x25,
+ 0x85, 0x4c, 0x72, 0x07, 0x1e, 0x38, 0x56, 0x37, 0x9a, 0x0b, 0x1e, 0x34, 0x05, 0x2f, 0x7a, 0x5a,
+ 0xe3, 0x4f, 0x1b, 0x5c, 0x08, 0x91, 0x77, 0x35, 0x32, 0x0c, 0x4b, 0x20, 0x9a, 0xb6, 0x2d, 0x20,
+ 0x9a, 0xb6, 0x20, 0xcb, 0x0b, 0x95, 0x89, 0x07, 0x04, 0x4c, 0x00, 0x32, 0x61, 0x0d, 0x94, 0x39,
+ 0x95, 0x3f, 0x4b, 0xa8, 0x5b, 0x83, 0x8f, 0x05, 0x08, 0x0b, 0xcf, 0x57, 0x89, 0x06, 0x01, 0x10,
+ 0x14, 0xd1, 0x0f, 0x46, 0x6b, 0xcd, 0x37, 0xac, 0xc5, 0x1c, 0xac, 0x10, 0x17, 0x82, 0x84, 0x51,
+ 0x50, 0x23, 0x84, 0xc9, 0xe0, 0xaf, 0xa1, 0x69, 0x32, 0xb6, 0x6b, 0x78, 0x0f, 0x77, 0x69, 0x9a,
+ 0x34, 0x36, 0x8e, 0x06, 0x71, 0x06, 0x22, 0x36, 0x7e, 0x0c, 0x71, 0x8a, 0x07, 0x36, 0x74, 0x08,
+ 0x26, 0x4e, 0x66, 0x6f, 0x49, 0x88, 0x05, 0x02, 0x00, 0x8f, 0x05, 0x8e, 0x93, 0x6f, 0x32, 0x0c,
+ 0x3f, 0x0c, 0x83, 0x32, 0x2c, 0x84, 0x93, 0x37, 0x6c, 0x0b, 0x0e, 0xb6, 0x0b, 0x73, 0x10, 0x16,
+ 0xd1, 0x8a, 0x06, 0x29, 0x3c, 0x0c, 0x27, 0x3c, 0x0c, 0x29, 0x8a, 0x06, 0x27, 0x8d, 0x02, 0x00,
+ 0x71, 0x74, 0x01, 0x29, 0x7c, 0x08, 0x00, 0x71, 0x08, 0x4b, 0x6b, 0x04, 0xb6, 0x00, 0x71, 0x53,
+ 0x8b, 0x6b, 0x78, 0x0f, 0x39, 0x69, 0x04, 0x34, 0x6f, 0x08, 0x4b, 0x69, 0x7c, 0x08, 0x6f, 0x74,
+ 0x01, 0x76, 0x8d, 0x02, 0x95, 0x8a, 0x07, 0x76, 0x7e, 0x0c, 0x83, 0x3c, 0x0c, 0x76, 0x8a, 0x06,
+ 0x83, 0xcc, 0x03, 0x1d, 0x9b, 0x62, 0x83, 0x49, 0x09, 0x1d, 0x49, 0x09, 0xa3, 0x53, 0x8b, 0x9f,
+ 0x78, 0x94, 0x64, 0xc6, 0x0d, 0x37, 0x07, 0x22, 0x41, 0x8e, 0x07, 0x37, 0x74, 0x02, 0x8f, 0x94,
+ 0x66, 0x2f, 0x8e, 0x07, 0x00, 0x07, 0x22, 0x31, 0x05, 0x34, 0x78, 0x0f, 0x39, 0x72, 0x91, 0x7e,
+ 0x62, 0x31, 0x09, 0x25, 0x93, 0x72, 0x9a, 0x25, 0x77, 0x35, 0x8a, 0x52, 0x20, 0x7e, 0x4f, 0x10,
+ 0x20, 0xd1, 0x78, 0x87, 0x76, 0x07, 0x84, 0x4f, 0x26, 0x04, 0x34, 0x41, 0x49, 0x07, 0x26, 0x7c,
+ 0x22, 0x26, 0x4e, 0x09, 0x41, 0x05, 0x22, 0x26, 0x91, 0xb6, 0x26, 0x8e, 0x05, 0x41, 0x8d, 0x01,
+ 0x1d, 0x9a, 0x34, 0x0d, 0x0f, 0x77, 0x47, 0x8d, 0x01, 0x41, 0x78, 0x87, 0x1d, 0x07, 0x4b, 0x49,
+ 0x07, 0x47, 0x04, 0x34, 0x1d, 0x49, 0x08, 0x47, 0x8e, 0x06, 0x06, 0x22, 0x47, 0x4e, 0x09, 0x41,
+ 0xc6, 0x0c, 0x47, 0x53, 0x66, 0x02, 0xb6, 0x47, 0x8a, 0x05, 0x1d, 0x8d, 0x01, 0x41, 0x9a, 0x34,
+ 0x00, 0x78, 0x0f, 0x77, 0x3d, 0x8d, 0x01, 0x47, 0x8a, 0x04, 0x3d, 0x7e, 0x09, 0x43, 0x49, 0x07,
+ 0x43, 0xc6, 0x0c, 0x76, 0x4e, 0x08, 0x3d, 0x8e, 0x06, 0x43, 0x06, 0x22, 0x3d, 0x49, 0x08, 0x76,
+ 0x97, 0x0c, 0x3d, 0x53, 0x66, 0x00, 0x8f, 0xb6, 0x3d, 0x8a, 0x04, 0x76, 0x8d, 0x01, 0x00, 0x9a,
+ 0x34, 0x41, 0x78, 0x0f, 0x77, 0x43, 0x8d, 0x01, 0x26, 0x8a, 0x05, 0x43, 0x7e, 0x09, 0x3d, 0x49,
+ 0x07, 0xc6, 0x0b, 0x69, 0x4e, 0x09, 0x43, 0x8e, 0x06, 0x3d, 0x05, 0x22, 0x43, 0x49, 0x08, 0x69,
+ 0x04, 0x34, 0x43, 0x53, 0x66, 0x41, 0x8f, 0xb6, 0x00, 0x78, 0x87, 0x47, 0xdc, 0x66, 0x04, 0x34,
+ 0x1d, 0x78, 0x0f, 0x8b, 0x02, 0xb6, 0x00, 0x71, 0x8e, 0x05, 0x7e, 0x09, 0x47, 0x49, 0x07, 0x06,
+ 0x22, 0x00, 0x71, 0x7e, 0x09, 0x8e, 0x05, 0x47, 0x05, 0x22, 0x7c, 0x07, 0x71, 0x9a, 0x34, 0x94,
+ 0x66, 0x1d, 0x8f, 0xb6, 0x53, 0x77, 0x27, 0x91, 0x34, 0x76, 0x78, 0x94, 0xb6, 0x29, 0x0b, 0x84,
+ 0x93, 0x26, 0x49, 0x4b, 0x29, 0x07, 0x84, 0x39, 0x26, 0x05, 0x84, 0x4f, 0x27, 0x9a, 0x25, 0x01,
+ 0x26, 0x74, 0x77, 0x10, 0x16, 0x43, 0xd1, 0x7c, 0x62, 0x76, 0xcc, 0x0a, 0x36, 0xcc, 0x0a, 0x26,
+ 0x7c, 0x62, 0x29, 0xc6, 0x39, 0x3d, 0xc6, 0x39, 0x83, 0x7c, 0x62, 0x41, 0xcc, 0x0a, 0x1f, 0xcc,
+ 0x0a, 0x3d, 0x7c, 0x62, 0x95, 0xc6, 0x39, 0xc6, 0x39, 0x37, 0x0a, 0xb6, 0x01, 0xcc, 0x0a, 0x2f,
+ 0xcc, 0x0a, 0x7c, 0x62, 0x2f, 0x05, 0xe3, 0x39, 0x1b, 0x7c, 0x4b, 0x35, 0xcc, 0x62, 0x1b, 0x05,
+ 0x84, 0x39, 0x1b, 0xcc, 0xb6, 0x01, 0x72, 0x7c, 0x90, 0x4b, 0x37, 0xc6, 0x39, 0x55, 0x39, 0x37,
+ 0xcc, 0x0a, 0x43, 0x7c, 0x62, 0x9f, 0x7c, 0x58, 0x43, 0xcc, 0x0a, 0x83, 0xc6, 0x8b, 0x43, 0xc6,
+ 0x39, 0x83, 0xcc, 0x09, 0x47, 0x7c, 0x62, 0x6f, 0x7c, 0x58, 0x47, 0xcc, 0x0a, 0x6b, 0xc6, 0x8b,
+ 0x47, 0xc6, 0x39, 0x6b, 0xcc, 0x09, 0x71, 0x7c, 0x62, 0x27, 0x7c, 0x58, 0x71, 0xcc, 0x0a, 0x10,
+ 0x14, 0xd1, 0x7c, 0x58, 0x69, 0x5f, 0x0a, 0x6b, 0xcc, 0x09, 0x69, 0x49, 0x62, 0x27, 0xc6, 0x8b,
+ 0x76, 0x97, 0x39, 0x95, 0x7c, 0x58, 0x1d, 0x5f, 0x0a, 0x83, 0xcc, 0x09, 0x1d, 0x49, 0x62, 0x6f,
+ 0xc6, 0x8b, 0x41, 0x97, 0x39, 0x2e, 0x7c, 0x58, 0x32, 0x0d, 0x4b, 0x37, 0xcc, 0x08, 0x00, 0x49,
+ 0x62, 0x37, 0x05, 0x84, 0x7e, 0x39, 0x72, 0x0a, 0x84, 0x4b, 0x1b, 0xcc, 0x57, 0x01, 0xd0, 0x39,
+ 0x1c, 0xac, 0xc5, 0x10, 0x16, 0x00, 0xd1, 0xcd, 0x6b, 0x46, 0x0c, 0x35, 0x5f, 0x7f, 0x35, 0x8e,
+ 0x77, 0x35, 0x09, 0x84, 0x06, 0x35, 0x3c, 0x5b, 0x35, 0x97, 0x88, 0x35, 0x6e, 0xc4, 0x72, 0x32,
+ 0x8a, 0x7f, 0x35, 0x7c, 0x8b, 0x35, 0x4e, 0x4f, 0xd0, 0x93, 0x1b, 0x9a, 0x53, 0x38, 0x35, 0x5f,
+ 0x58, 0x35, 0x0b, 0xb6, 0x03, 0x35, 0x49, 0x39, 0x35, 0x3c, 0x4f, 0x35, 0x97, 0x3a, 0x1b, 0x8f,
+ 0x91, 0x7d, 0x35, 0x0c, 0x46, 0x6b, 0xcd, 0x10, 0x0c, 0x2a, 0x18, 0x0f, 0x1b, 0xac, 0xae, 0xae,
+ 0xc5, 0x1c, 0x18, 0x0f, 0x10, 0x0b, 0xd1, 0x0d, 0x87, 0x20, 0x4e, 0x09, 0x1c, 0x04, 0x34, 0x3b,
+ 0x53, 0x77, 0x1c, 0x7c, 0x07, 0x43, 0xd0, 0xd2, 0x8d, 0x02, 0xb0, 0x74, 0x01, 0x1c, 0x8a, 0x05,
+ 0x1c, 0x4e, 0x09, 0x20, 0x9a, 0xb6, 0x3b, 0x53, 0x77, 0x1c, 0x49, 0x08, 0x43, 0xd0, 0xd2, 0xcc,
+ 0x02, 0xb0, 0x8d, 0x01, 0x1c, 0x8a, 0x05, 0x1c, 0x07, 0x4b, 0x1c, 0x9b, 0x28, 0x78, 0x87, 0x20,
+ 0x49, 0x08, 0x1c, 0x04, 0x34, 0x10, 0x0c, 0x2a, 0x18, 0x24, 0xae, 0xae, 0x3b, 0xac, 0x1b, 0x18,
+ 0x0f, 0x10, 0x1b, 0x76, 0x82, 0x80, 0x44, 0x1b, 0x5f, 0x0f, 0xc4, 0x2f, 0x32, 0x0c, 0xb6, 0x91,
+ 0x7d, 0x2e, 0x32, 0x8a, 0x44, 0x80, 0x7d, 0x2e, 0x8e, 0x44, 0x43, 0x80, 0x0b, 0x9f, 0x7c, 0x7d,
+ 0x41, 0x32, 0x0c, 0x4b, 0x83, 0x7c, 0x7d, 0x1d, 0x32, 0x0c, 0x4b, 0x6f, 0x49, 0x60, 0x26, 0xcb,
+ 0x09, 0x6b, 0x08, 0x4b, 0x27, 0x7c, 0x08, 0x10, 0x10, 0x48, 0x10, 0x10, 0x1d, 0x49, 0x03, 0x3b,
+ 0x0c, 0xc4, 0x1c, 0x6e, 0x09, 0x3b, 0x97, 0x04, 0x3b, 0x06, 0xc4, 0x3b, 0x0a, 0x3a, 0x10, 0x14,
+ 0x43, 0xa9, 0x7a, 0x09, 0xcf, 0x57, 0x0b, 0x9e, 0x2e, 0xe2, 0x1e, 0x6d, 0xca, 0x05, 0x1f, 0x78,
+ 0x08, 0x05, 0x4c, 0x32, 0x7a, 0x0d, 0xb6, 0x01, 0x35, 0x32, 0x8a, 0x06, 0x20, 0x9a, 0x4b, 0x3b,
+ 0x34, 0x2e, 0x05, 0x09, 0xcf, 0x25, 0xb6, 0x83, 0x9a, 0x0c, 0x3f, 0x83, 0x6e, 0x3f, 0x83, 0x09,
+ 0xb6, 0x7b, 0x86, 0x43, 0xe0, 0x95, 0x78, 0x0f, 0x39, 0x76, 0x74, 0x47, 0x51, 0x01, 0x76, 0x07,
+ 0x84, 0x83, 0x53, 0x8b, 0x1d, 0x9a, 0x0e, 0x84, 0x83, 0x0b, 0xb6, 0x6a, 0x00, 0x8c, 0x09, 0xe3,
+ 0x83, 0x04, 0x84, 0x1e, 0x93, 0x84, 0x1f, 0x3c, 0xe3, 0x93, 0xf2, 0x1f, 0x9a, 0x92, 0x57, 0x0d,
+ 0x56, 0xe0, 0x10, 0x14, 0x2a, 0xa7, 0x43, 0x04, 0x5a, 0x57, 0xa6, 0xbc, 0x95, 0xb1, 0x10, 0x12,
+ 0x1d, 0xa9, 0x75, 0xa0, 0x94, 0x9c, 0x08, 0x03, 0x37, 0x07, 0x0e, 0x21, 0x47, 0x7c, 0x21, 0x1d,
+ 0x7e, 0x52, 0x06, 0x86, 0x8f, 0x04, 0x08, 0x0c, 0x1f, 0xcc, 0x0a, 0x20, 0x07, 0x34, 0x1c, 0x8e,
+ 0x06, 0x20, 0x78, 0x0f, 0x66, 0x1c, 0xa1, 0x3d, 0xc3, 0x01, 0x20, 0x78, 0x0f, 0x66, 0x1c, 0x8e,
+ 0x06, 0x1c, 0x07, 0x34, 0x1c, 0xcc, 0x0a, 0x1c, 0x7e, 0x52, 0x06, 0x86, 0x00, 0x5c, 0x07, 0x0c,
+ 0x2e, 0x7c, 0x21, 0x76, 0x08, 0x25, 0x1e, 0x2f, 0x65, 0x0b, 0x91, 0x9c, 0x07, 0x03, 0x10, 0x14,
+ 0x2f, 0x3b, 0xae, 0x2e, 0xc8, 0xb2, 0xf2, 0x10, 0x14, 0x1d, 0xa9, 0x6c, 0xcf, 0x0e, 0x0b, 0x9e,
+ 0x2f, 0x08, 0x1e, 0xb6, 0x04, 0x2e, 0x0a, 0x25, 0x1e, 0x77, 0x1f, 0x7e, 0x93, 0x70, 0x00, 0x7a,
+ 0x0d, 0x34, 0x83, 0xcc, 0x04, 0x47, 0x5f, 0x05, 0x95, 0x7e, 0x08, 0x26, 0x05, 0x4b, 0x95, 0x8e,
+ 0x03, 0x76, 0x32, 0x34, 0x6f, 0x78, 0x3f, 0xb6, 0x95, 0x91, 0x30, 0x36, 0xe2, 0x3f, 0x95, 0xa1,
+ 0x1c, 0x8e, 0x04, 0x1c, 0x07, 0x22, 0x1c, 0x74, 0x08, 0x76, 0x8f, 0x0b, 0x1f, 0x4e, 0x38, 0x05,
+ 0x02, 0x32, 0x02, 0x05, 0x7c, 0x9f, 0x0a, 0x3f, 0x2e, 0x4e, 0xe3, 0x34, 0x04, 0x37, 0x65, 0x0b,
+ 0x0e, 0x57, 0x0d, 0x56, 0x10, 0x0b, 0x43, 0x2a, 0xc8, 0x84, 0x31, 0xcb, 0xe3, 0x31, 0x7e, 0x1e,
+ 0x31, 0x8a, 0x9d, 0x20, 0xa1, 0x6b, 0x50, 0xba, 0x42, 0xb8, 0x42, 0xb8, 0xe3, 0x72, 0xac, 0xae,
+ 0x10, 0x14, 0x1d, 0xa9, 0xc8, 0x67, 0xf2, 0x1f, 0x80, 0x84, 0x4b, 0xf2, 0x83, 0x5f, 0x1e, 0x93,
+ 0x84, 0x83, 0x7c, 0x93, 0x4c, 0x8c, 0x09, 0xe3, 0x95, 0x74, 0x06, 0x47, 0x06, 0x25, 0x95, 0x08,
+ 0x22, 0x26, 0x0b, 0x84, 0x95, 0x8e, 0x05, 0x26, 0x05, 0x84, 0x95, 0x53, 0x66, 0x26, 0x74, 0x33,
+ 0xf2, 0x33, 0xf2, 0x95, 0x53, 0x66, 0x26, 0x74, 0x95, 0x8e, 0x05, 0x26, 0x05, 0x84, 0x95, 0x08,
+ 0x22, 0x26, 0x0b, 0x84, 0x6f, 0x9a, 0x84, 0x06, 0x47, 0x06, 0x25, 0x83, 0x7c, 0x93, 0x4c, 0x8c,
+ 0x09, 0xe3, 0x83, 0x5f, 0x1e, 0x93, 0x84, 0x1f, 0x80, 0x84, 0x4b, 0x01, 0xb6, 0x2e, 0xc8, 0x67,
+ 0x02, 0x34, 0x1c, 0x05, 0x4b, 0xbe, 0x4e, 0x66, 0x1f, 0x0c, 0x7b, 0x86, 0x8f, 0x05, 0x8e, 0x3a,
+ 0x1f, 0xe2, 0x1e, 0xc4, 0x26, 0x51, 0x1e, 0x38, 0x02, 0x2e, 0x61, 0xa0, 0x0e, 0x57, 0x45, 0x05,
+ 0x10, 0x14, 0x2a, 0xa7, 0x00, 0x9a, 0xa5, 0xad, 0x10, 0x09, 0x2a, 0xb3, 0x72, 0x2a, 0xac, 0x3b,
+ 0xac, 0x10, 0x09, 0x2a, 0xb3, 0x72, 0x2a, 0xa7, 0xae, 0xae, 0xb4, 0x0f, 0x28, 0x97, 0x0c, 0x35,
+ 0x9a, 0x8a, 0x08, 0x1b, 0xe3, 0x66, 0x72, 0xe2, 0x4f, 0x31, 0xdc, 0x67, 0x10, 0x13, 0x2a, 0xa7,
+ 0x76, 0x98, 0x84, 0x06, 0x1d, 0x51, 0x47, 0x3c, 0x57, 0x04, 0x47, 0x51, 0x1d, 0x4e, 0x52, 0x03,
+ 0x3d, 0x50, 0x32, 0x7c, 0x38, 0x02, 0x1f, 0x4d, 0x32, 0x8a, 0x3a, 0x01, 0x69, 0x51, 0x9a, 0x0d,
+ 0x94, 0x5b, 0x6f, 0xb5, 0x98, 0x84, 0x06, 0x2f, 0xe2, 0xb6, 0x04, 0xba, 0x06, 0x37, 0xd4, 0x34,
+ 0x94, 0x8b, 0xc3, 0x80, 0x39, 0x2f, 0x4d, 0x80, 0x39, 0x26, 0x50, 0x80, 0x39, 0x76, 0x50, 0x32,
+ 0x0d, 0x84, 0x06, 0x83, 0xdc, 0xe5, 0x32, 0x0c, 0x84, 0x06, 0x26, 0x51, 0x3d, 0x32, 0x0c, 0x84,
+ 0x06, 0x76, 0x51, 0x1d, 0x32, 0x8a, 0x4f, 0x47, 0x51, 0x47, 0x32, 0x8a, 0x4f, 0x10, 0x09, 0x2a,
+ 0xac, 0xae, 0x3b, 0xac, 0x10, 0x1f, 0xce, 0x05, 0xa0, 0x52, 0x9d, 0x3d, 0x05, 0xa0, 0x52, 0x9d,
+ 0x69, 0x4d, 0x0a, 0x25, 0xb6, 0x03, 0x32, 0x0a, 0x25, 0xb6, 0x03, 0x43, 0xb5, 0x2c, 0x34, 0x00,
+ 0x7c, 0xe3, 0xc4, 0x1d, 0xdc, 0xb6, 0x6a, 0x8f, 0x4e, 0x88, 0x57, 0x6a, 0x00, 0x6c, 0x84, 0x06,
+ 0x3d, 0xd4, 0xb6, 0x03, 0x1d, 0x49, 0x57, 0x03, 0x1d, 0x09, 0x4b, 0x1d, 0xdc, 0x4f, 0x47, 0x9b,
+ 0x4f, 0x1d, 0x9a, 0x34, 0x1d, 0xdc, 0x66, 0x47, 0x8d, 0x02, 0x1d, 0x32, 0xb6, 0x00, 0xb5, 0x26,
+ 0x96, 0x4d, 0xb5, 0x26, 0x96, 0x4d, 0xb5, 0x10, 0x14, 0xce, 0x03, 0xa5, 0xad, 0x10, 0x14, 0x1d,
+ 0xa9, 0x04, 0x5a, 0x90, 0x67, 0x37, 0xcb, 0x1e, 0x60, 0x9f, 0x5f, 0x0f, 0x1e, 0xc4, 0x1f, 0x7c,
+ 0x3a, 0x4c, 0x8c, 0x7c, 0x3a, 0x83, 0x74, 0x07, 0x47, 0x7e, 0x66, 0x95, 0x4e, 0x0c, 0x26, 0x8a,
+ 0x08, 0x95, 0x8e, 0x05, 0x26, 0x06, 0x22, 0x95, 0x53, 0x66, 0x76, 0x8f, 0x34, 0x33, 0xf2, 0x33,
+ 0xf2, 0x95, 0x53, 0x66, 0x76, 0x8f, 0x34, 0x95, 0x8e, 0x05, 0x26, 0x05, 0x22, 0x95, 0x08, 0x22,
+ 0x26, 0x8a, 0x08, 0x95, 0x74, 0x07, 0x47, 0x7e, 0x66, 0x83, 0x7c, 0x3a, 0x4c, 0x8c, 0x7c, 0x3a,
+ 0x1f, 0x5f, 0x0f, 0x1e, 0xc4, 0x9f, 0xcb, 0x1e, 0x60, 0x2f, 0x05, 0x5a, 0x90, 0x67, 0x10, 0x14,
+ 0xce, 0x04, 0x5a, 0x57, 0xa6, 0xbc, 0x95, 0xb1, 0x2e, 0xa7, 0x10, 0x14, 0x1d, 0xa9, 0xc8, 0xb2,
+ 0xf2, 0x3b, 0xa7, 0x10, 0x0d, 0xce, 0x05, 0xa0, 0xf7, 0x71, 0x51, 0x01, 0x0a, 0x42, 0x71, 0x51,
+ 0x2c, 0x2f, 0xe3, 0x73, 0x00, 0xc3, 0x8b, 0x72, 0xdc, 0x93, 0x1b, 0xdc, 0x8b, 0x3d, 0xc3, 0x01,
+ 0x1c, 0xb3, 0xae, 0x10, 0x11, 0x43, 0xa9, 0x9a, 0x09, 0xcf, 0x0e, 0x9c, 0x08, 0x03, 0x37, 0x08,
+ 0x25, 0x1e, 0x2e, 0x3c, 0x21, 0x47, 0x0c, 0x34, 0x05, 0x02, 0x43, 0x5c, 0x07, 0x0c, 0x83, 0xdc,
+ 0x77, 0xab, 0x05, 0x1c, 0x0a, 0x84, 0x45, 0x05, 0x02, 0x72, 0x6e, 0x84, 0x34, 0x73, 0x37, 0x8f,
+ 0x09, 0x53, 0x1e, 0x06, 0x31, 0x5c, 0x08, 0x0b, 0x91, 0x87, 0x72, 0x32, 0x05, 0x0d, 0x22, 0x1c,
+ 0x97, 0x28, 0x8d, 0x9f, 0x0b, 0x02, 0x76, 0x04, 0xb6, 0x95, 0xdc, 0x85, 0x86, 0x01, 0x65, 0x0e,
+ 0x4b, 0x43, 0xa8, 0x03, 0x9f, 0x04, 0x0c, 0x1e, 0xb6, 0x04, 0x2f, 0x04, 0x92, 0x0e, 0x57, 0x85,
+ 0x01, 0x10, 0x0d, 0x82, 0xb3, 0x2d, 0x41, 0xba, 0x42, 0xb8, 0x42, 0xb8, 0xe3, 0x31, 0xb3, 0xae,
+ 0x3b, 0x53, 0x66, 0x1c, 0x0b, 0x22, 0x02, 0x20, 0x3c, 0x1e, 0x72, 0x8a, 0xe3, 0x1b, 0xc8, 0x84,
+ 0x10, 0x14, 0x68, 0x1a, 0x4d, 0x54, 0x54, 0x54, 0x54, 0x33, 0x84, 0x1a, 0x8d, 0x83, 0xa1, 0x47,
+ 0x9a, 0x84, 0x95, 0x78, 0x87, 0x47, 0x08, 0x84, 0x83, 0x0a, 0x22, 0x47, 0x04, 0x25, 0x6f, 0xc6,
+ 0x3a, 0x03, 0x00, 0x8c, 0x08, 0xe3, 0x1f, 0x8a, 0x1e, 0x5b, 0x84, 0x1f, 0x80, 0x25, 0x5b, 0xf2,
+ 0x9f, 0x75, 0xcf, 0x67, 0xf2, 0x10, 0x13, 0xa9, 0x8a, 0x06, 0x69, 0x3c, 0x0c, 0x6f, 0x07, 0x22,
+ 0x69, 0x8e, 0x07, 0x6f, 0x74, 0x02, 0x76, 0x74, 0x01, 0x95, 0x8e, 0x07, 0x76, 0x07, 0x22, 0x83,
+ 0x05, 0x34, 0x47, 0x78, 0x0f, 0x39, 0x83, 0xcc, 0x03, 0x1d, 0x9b, 0x62, 0x83, 0x7c, 0x08, 0x1d,
+ 0x08, 0x4b, 0xa3, 0x53, 0x8b, 0x2e, 0x53, 0x8b, 0x41, 0x04, 0x34, 0x37, 0x08, 0x4b, 0x41, 0x7c,
+ 0x08, 0x37, 0x9b, 0x62, 0xcc, 0x03, 0x2f, 0x8a, 0x06, 0x00, 0x3c, 0x0c, 0x31, 0x07, 0x22, 0x00,
+ 0x8e, 0x07, 0x31, 0x74, 0x79, 0x31, 0x0b, 0x34, 0x22, 0x1b, 0x05, 0x25, 0x39, 0x1b, 0xcc, 0x57,
+ 0x01, 0x35, 0x7c, 0x3a, 0x10, 0x1a, 0xa9, 0x0d, 0x0f, 0x77, 0x1d, 0x53, 0xb6, 0x3d, 0x9a, 0x34,
+ 0x71, 0x49, 0x07, 0x41, 0x8f, 0x25, 0x66, 0x3d, 0x7e, 0x09, 0x71, 0x06, 0x22, 0x3d, 0x06, 0xe3,
+ 0x06, 0x3d, 0x8e, 0x06, 0x69, 0x8f, 0xb6, 0x3d, 0x0a, 0x34, 0x4b, 0x3d, 0x53, 0x66, 0x71, 0x78,
+ 0x0f, 0x77, 0x41, 0x91, 0x06, 0xb6, 0x43, 0x9a, 0x34, 0x27, 0x7c, 0x07, 0x00, 0x8f, 0xb6, 0x00,
+ 0x53, 0x66, 0x43, 0x7e, 0x09, 0x27, 0x06, 0x22, 0x43, 0x06, 0x4b, 0x00, 0x7c, 0x06, 0x43, 0x8e,
+ 0x06, 0x27, 0x02, 0xb6, 0x43, 0x7c, 0x06, 0x00, 0x07, 0x4b, 0x43, 0x53, 0x66, 0x27, 0x78, 0x0f,
+ 0x77, 0x00, 0x53, 0x77, 0x9a, 0xb6, 0x9a, 0x34, 0x6b, 0x7c, 0x07, 0x03, 0xb6, 0x41, 0x91, 0x65,
+ 0x4b, 0x6b, 0x3c, 0x85, 0x4b, 0x41, 0x7c, 0x06, 0x8e, 0x06, 0x29, 0x8f, 0xb6, 0x7c, 0x06, 0x41,
+ 0x06, 0x4b, 0x53, 0x66, 0x6b, 0x78, 0x25, 0x77, 0x43, 0x9a, 0x84, 0x34, 0x6f, 0x7c, 0xb6, 0x1d,
+ 0x91, 0x4b, 0x6f, 0x3c, 0x4b, 0x1d, 0x0a, 0x25, 0x06, 0x36, 0x8f, 0x25, 0x06, 0x1d, 0x06, 0x84,
+ 0x66, 0x6f, 0x78, 0x94, 0x77, 0x1d, 0x9b, 0x52, 0x83, 0x0a, 0xb6, 0x76, 0x0e, 0x4b, 0x10, 0x13,
+ 0x00, 0xa9, 0x7c, 0x7f, 0x47, 0x6e, 0x3a, 0x95, 0x5f, 0x0c, 0x47, 0x8a, 0x58, 0x83, 0x9b, 0x5b,
+ 0x3d, 0x7e, 0x77, 0x9f, 0x7e, 0x8b, 0x43, 0x9b, 0x4f, 0x37, 0x8e, 0x58, 0x5f, 0x0b, 0x2f, 0x6e,
+ 0x3a, 0x7c, 0x7f, 0x31, 0x05, 0xe3, 0x39, 0x1b, 0x09, 0x84, 0x93, 0x35, 0xcc, 0x58, 0x35, 0x08,
+ 0x84, 0x77, 0x1b, 0x04, 0x25, 0xc4, 0x31, 0x6e, 0x88, 0x53, 0x93, 0x31, 0x8a, 0x58, 0x3c, 0x8b,
+ 0x37, 0x49, 0x77, 0x43, 0x7c, 0x58, 0x83, 0xc6, 0x4f, 0x41, 0xcc, 0x09, 0x1f, 0x6e, 0x3a, 0x41,
+ 0xc6, 0x8b, 0x6f, 0x32, 0x8a, 0x58, 0x47, 0x7c, 0x62, 0x36, 0x49, 0x77, 0x76, 0x5f, 0x0a, 0x10,
+ 0x13, 0xa9, 0x8a, 0x07, 0x69, 0x3c, 0x0c, 0x6f, 0x06, 0x34, 0x69, 0x8a, 0x06, 0x95, 0x53, 0x8b,
+ 0x76, 0x79, 0x6f, 0x08, 0x22, 0x76, 0x09, 0x4b, 0x83, 0x74, 0x02, 0x47, 0x53, 0x8b, 0x1f, 0x8e,
+ 0x08, 0x1d, 0x05, 0x34, 0xa3, 0x8e, 0x07, 0x9f, 0x78, 0x94, 0x06, 0x41, 0x74, 0x02, 0x2e, 0x7e,
+ 0x0c, 0x41, 0x08, 0x22, 0x37, 0x8d, 0x03, 0x00, 0x78, 0x0f, 0x39, 0x2f, 0x49, 0x09, 0x00, 0x04,
+ 0xb6, 0x2f, 0x9a, 0x84, 0x01, 0x7c, 0x08, 0x72, 0x8a, 0x4e, 0x77, 0x72, 0x06, 0x25, 0x38, 0x35,
+ 0x0e, 0x25, 0x06, 0x35, 0x4e, 0x57, 0x01, 0x35, 0x74, 0x09, 0x20, 0xcc, 0x04, 0x20, 0x05, 0x34,
+ 0x1c, 0x7c, 0x07, 0x20, 0x8d, 0x02, 0x1b, 0x8f, 0x0b, 0x4b, 0x1b, 0xe3, 0x77, 0x72, 0xe2, 0x93,
+ 0x2f, 0xd4, 0x34, 0x07, 0x10, 0x11, 0xa9, 0x2b, 0x2b, 0x3f, 0x57, 0x20, 0x4e, 0x8b, 0xd0, 0x5b,
+ 0x35, 0x6e, 0x88, 0x35, 0x5f, 0x58, 0x35, 0x8e, 0x77, 0x35, 0x08, 0x84, 0x06, 0xd0, 0x93, 0x35,
+ 0x6e, 0x38, 0x35, 0x5f, 0x7f, 0x35, 0x7c, 0x8b, 0x35, 0x7e, 0x4f, 0x35, 0x97, 0x3a, 0x20, 0x53,
+ 0x3f, 0x1f, 0x2b, 0x2b, 0x10, 0x14, 0x26, 0x2a, 0x06, 0x5a, 0x91, 0x1b, 0x0c, 0x1e, 0x72, 0x3c,
+ 0xe3, 0x72, 0x8e, 0x0c, 0x70, 0x35, 0x53, 0x77, 0x1c, 0xb3, 0x2d, 0xb4, 0x0f, 0x28, 0x3c, 0x0c,
+ 0x35, 0x7a, 0x53, 0x5b, 0xba, 0x60, 0x31, 0xe2, 0x5b, 0x1b, 0xe2, 0x4b, 0x35, 0x8f, 0x7e, 0x4f,
+ 0x1c, 0x7e, 0xd2, 0xaa, 0xf2, 0xc1, 0x72, 0xa1, 0x20, 0x78, 0x87, 0x20, 0x0b, 0x34, 0x70, 0x35,
+ 0x3c, 0xe3, 0x1b, 0x0b, 0x1e, 0x35, 0x05, 0x5a, 0x91, 0x10, 0x0b, 0x00, 0x2a, 0xac, 0xae, 0xae,
+ 0xc5, 0x1c, 0xac, 0x10, 0x14, 0x00, 0x2a, 0xb6, 0x89, 0x06, 0x35, 0xe3, 0x38, 0x37, 0xd4, 0x1e,
+ 0x06, 0x35, 0x5c, 0x0c, 0x22, 0x1c, 0x9b, 0x28, 0x8d, 0xc1, 0x72, 0xa1, 0x1c, 0x8a, 0x06, 0x1c,
+ 0x08, 0xb6, 0x59, 0x35, 0xcb, 0x25, 0x35, 0x08, 0xe3, 0x1b, 0x0a, 0x1e, 0x72, 0x07, 0x84, 0x6a,
+ 0x35, 0x8a, 0x07, 0xab, 0x02, 0x1c, 0xb3, 0x2d, 0xb4, 0x0f, 0x28, 0x04, 0x34, 0x35, 0x5c, 0x0c,
+ 0x22, 0xc3, 0x25, 0x06, 0xba, 0x0b, 0x1b, 0xb6, 0x0d, 0x5d, 0x10, 0x1b, 0x83, 0x3b, 0x82, 0xa9,
+ 0x32, 0x6b, 0x9a, 0x92, 0x0e, 0x40, 0x56, 0x26, 0xa2, 0x27, 0x32, 0x2c, 0xb6, 0x56, 0x02, 0x00,
+ 0x7a, 0x8a, 0x27, 0x78, 0x46, 0x0d, 0x69, 0xd4, 0x38, 0x59, 0x8f, 0x05, 0x09, 0x0e, 0x1e, 0x4b,
+ 0x01, 0x29, 0x0e, 0x06, 0x26, 0x04, 0x09, 0x0c, 0x90, 0x45, 0x03, 0x6b, 0x8f, 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSans32_aa_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x001a, 0x0026, 0x00a6, 0x0132, 0x020e, 0x02a9,
+ 0x02ad, 0x0301, 0x0353, 0x039e, 0x03ad, 0x03b9, 0x03c3, 0x03cb,
+ 0x0416, 0x0497, 0x04b2, 0x0511, 0x0571, 0x05c3, 0x060c, 0x0698,
+ 0x06d4, 0x075f, 0x07e1, 0x07e9, 0x07f6, 0x0851, 0x0859, 0x08b2,
+ 0x08f5, 0x09fc, 0x0a79, 0x0ae0, 0x0b4c, 0x0bbd, 0x0bd3, 0x0be4,
+ 0x0c5e, 0x0c6e, 0x0c75, 0x0c8f, 0x0d08, 0x0d13, 0x0d9e, 0x0e15,
+ 0x0e76, 0x0eb5, 0x0f29, 0x0f86, 0x0ff0, 0x0ffc, 0x103f, 0x10c0,
+ 0x11b4, 0x1230, 0x1274, 0x12b8, 0x12c5, 0x1306, 0x1312, 0x1348,
+ 0x134b, 0x135f, 0x13c3, 0x13cf, 0x141f, 0x1428, 0x1485, 0x14a1,
+ 0x1521, 0x1529, 0x1532, 0x154d, 0x15ae, 0x15b5, 0x1608, 0x160e,
+ 0x166f, 0x167b, 0x1684, 0x16a4, 0x1702, 0x1721, 0x1756, 0x17b5,
+ 0x185f, 0x18c0, 0x1935, 0x1965, 0x19aa, 0x19b4, 0x19fb,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans32_aa_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSans32_aa_glyph_offsets_0, mf_rlefont_DejaVuSans32_aa_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSans32_aa = {
+ {
+ "DejaVu Sans Book 32",
+ "DejaVuSans32_aa",
+ 33, /* width */
+ 34, /* height */
+ 9, /* min x advance */
+ 32, /* max x advance */
+ 2, /* baseline x */
+ 26, /* baseline y */
+ 37, /* line height */
+ 0, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSans32_aa_dictionary_data,
+ mf_rlefont_DejaVuSans32_aa_dictionary_offsets,
+ 137, /* rle dict count */
+ 187, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSans32_aa_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSans32_aa_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSans32_aa
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans32_aa_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSans32_aa. */
+
diff --git a/src/gdisp/fonts/DejaVuSansBold12.c b/src/gdisp/fonts/DejaVuSansBold12.c
new file mode 100644
index 00000000..b2581760
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSansBold12.c
@@ -0,0 +1,186 @@
+
+
+/* Start of automatically generated font definition for DejaVuSansBold12. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_DejaVuSansBold12_glyph_data_0[1540] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, 0x7e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00,
+ 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc8, 0x03, 0xf8, 0x01, 0x4e, 0x00,
+ 0xc8, 0x03, 0x7c, 0x00, 0x4e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x02, 0x7c, 0x02,
+ 0x74, 0x02, 0xfe, 0x0f, 0xe4, 0x02, 0xe4, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00,
+ 0x22, 0x00, 0x22, 0x00, 0x22, 0x03, 0xdc, 0x00, 0x70, 0x00, 0xd8, 0x01, 0x26, 0x02, 0x20, 0x02,
+ 0x20, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xec, 0x03, 0x3e, 0x02, 0x72, 0x02,
+ 0xe2, 0x02, 0xc4, 0x03, 0x80, 0x01, 0xe0, 0x03, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xff, 0x07, 0x07, 0x07, 0x01, 0x04, 0x00, 0x00, 0x01, 0x04,
+ 0x07, 0x07, 0xff, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x18, 0x00, 0x7e, 0x00,
+ 0x18, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf8, 0x03,
+ 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x07, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0xc0, 0x03, 0x3c, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf8, 0x00, 0xfc, 0x01, 0x06, 0x03, 0x02, 0x02, 0x06, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0xfe, 0x03, 0xfe, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x02, 0x02, 0x03, 0x82, 0x03, 0xc2, 0x02, 0x62, 0x02, 0x3e, 0x02, 0x1c, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x02, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xfe, 0x03,
+ 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xb0, 0x00, 0x8c, 0x00, 0x86, 0x00, 0xfe, 0x03,
+ 0xfe, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x02, 0x1e, 0x02, 0x12, 0x02, 0x12, 0x02,
+ 0x32, 0x03, 0xf2, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xfc, 0x01, 0x16, 0x02,
+ 0x12, 0x02, 0x12, 0x02, 0xf2, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02,
+ 0x82, 0x03, 0xe2, 0x01, 0x7a, 0x00, 0x1e, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01,
+ 0xde, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0xde, 0x03, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x3c, 0x00, 0x7e, 0x02, 0x42, 0x02, 0x42, 0x02, 0x42, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x18, 0x03, 0x18, 0x03, 0x00, 0x00, 0x00, 0x08, 0x18, 0x07, 0x18, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x40, 0x00, 0xe0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xb0, 0x01, 0x10, 0x01, 0x10, 0x01,
+ 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00,
+ 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x10, 0x01, 0x10, 0x01,
+ 0xb0, 0x01, 0xa0, 0x00, 0xa0, 0x00, 0xe0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x62, 0x03, 0x72, 0x03, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x08, 0x02,
+ 0x04, 0x04, 0xe2, 0x08, 0x12, 0x09, 0x12, 0x09, 0xf2, 0x09, 0x04, 0x0d, 0x8c, 0x09, 0xf0, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0xc0, 0x03, 0xf8, 0x01, 0xbe, 0x00, 0x86, 0x00, 0xbe, 0x00, 0xf8, 0x01,
+ 0xc0, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x22, 0x02, 0x22, 0x02,
+ 0x22, 0x02, 0xfe, 0x03, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xfc, 0x01, 0x06, 0x03,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x06, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x03, 0xfe, 0x03, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x03, 0xfe, 0x03, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf8, 0x00, 0xfc, 0x01, 0x06, 0x03, 0x02, 0x02, 0x02, 0x02, 0x22, 0x02, 0xe2, 0x03, 0xe6, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,
+ 0xfe, 0x03, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x00, 0x08, 0x00, 0x08,
+ 0xfe, 0x0f, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x20, 0x00, 0x70, 0x00,
+ 0xd8, 0x00, 0x8c, 0x01, 0x06, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03,
+ 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03,
+ 0x0e, 0x00, 0x38, 0x00, 0xe0, 0x00, 0xe0, 0x00, 0x38, 0x00, 0x0e, 0x00, 0xfe, 0x03, 0xfe, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x0e, 0x00, 0x38, 0x00, 0xe0, 0x00, 0x80, 0x03,
+ 0xfe, 0x03, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xfc, 0x01, 0x06, 0x03, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0x06, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03,
+ 0xfe, 0x03, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf8, 0x00, 0xfc, 0x01, 0x06, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x06, 0x06, 0x0f, 0xfc, 0x09,
+ 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x22, 0x00, 0x22, 0x00, 0x62, 0x00,
+ 0xfe, 0x01, 0x9c, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x3e, 0x02, 0x32, 0x02,
+ 0x32, 0x02, 0x62, 0x02, 0xe6, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,
+ 0xfe, 0x03, 0xfe, 0x03, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01,
+ 0xfe, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0xfe, 0x03, 0xfe, 0x01, 0x00, 0x00,
+ 0x02, 0x00, 0x1e, 0x00, 0xfc, 0x00, 0xe0, 0x03, 0x00, 0x03, 0xe0, 0x03, 0xfc, 0x00, 0x1e, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x7e, 0x00, 0xf8, 0x03, 0xc0, 0x03, 0xf8, 0x00,
+ 0x1e, 0x00, 0x1e, 0x00, 0xf8, 0x00, 0xc0, 0x03, 0xf8, 0x03, 0x7e, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x06, 0x03, 0xdc, 0x01, 0xf8, 0x00, 0x20, 0x00, 0xf8, 0x00, 0xdc, 0x01, 0x06, 0x03,
+ 0x02, 0x02, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0xf0, 0x03, 0xf0, 0x03, 0x1c, 0x00,
+ 0x0e, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x82, 0x03, 0xc2, 0x02, 0x62, 0x02,
+ 0x32, 0x02, 0x1a, 0x02, 0x0e, 0x02, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0xff, 0x07,
+ 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x06, 0x00, 0x3c, 0x00, 0xc0, 0x03, 0x00, 0x06, 0x00, 0x00,
+ 0x01, 0x04, 0x01, 0x04, 0xff, 0x07, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10,
+ 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xd0, 0x03, 0x48, 0x02, 0x48, 0x02, 0x48, 0x02,
+ 0xf8, 0x03, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xff, 0x03, 0x08, 0x02, 0x08, 0x02,
+ 0x08, 0x02, 0xf8, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x18, 0x03,
+ 0x08, 0x02, 0x08, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xf8, 0x03, 0x08, 0x02,
+ 0x08, 0x02, 0x08, 0x02, 0xff, 0x03, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01,
+ 0x58, 0x03, 0x48, 0x02, 0x48, 0x02, 0x78, 0x02, 0x60, 0x01, 0x00, 0x00, 0x08, 0x00, 0xfe, 0x03,
+ 0xff, 0x03, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xf8, 0x0b, 0x18, 0x12,
+ 0x08, 0x12, 0x18, 0x13, 0xf8, 0x1f, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xff, 0x03,
+ 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf8, 0x03, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x03,
+ 0xfb, 0x03, 0x00, 0x00, 0x00, 0x10, 0xfb, 0x1f, 0xfb, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
+ 0xff, 0x03, 0x60, 0x00, 0xf0, 0x00, 0x98, 0x01, 0x08, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0x03, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xf8, 0x03, 0x08, 0x00, 0x08, 0x00,
+ 0xf8, 0x03, 0xf8, 0x03, 0x08, 0x00, 0x08, 0x00, 0xf8, 0x03, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00,
+ 0xf8, 0x03, 0xf8, 0x03, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf8, 0x03, 0xf0, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0xf0, 0x01, 0xf8, 0x03, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xf8, 0x03, 0xf0, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0x1f, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02, 0xf8, 0x03,
+ 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xf8, 0x03, 0x08, 0x02, 0x08, 0x02, 0x08, 0x02,
+ 0xf8, 0x1f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xf8, 0x03, 0x18, 0x00, 0x08, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x78, 0x02, 0x48, 0x02, 0x48, 0x02, 0xc8, 0x03,
+ 0x90, 0x01, 0x00, 0x00, 0x08, 0x00, 0xfe, 0x03, 0xfe, 0x03, 0x08, 0x02, 0x08, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0xf8, 0x01, 0xf8, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0xf8, 0x03, 0xf8, 0x03,
+ 0x00, 0x00, 0x18, 0x00, 0xf8, 0x00, 0xe0, 0x03, 0x00, 0x03, 0xe0, 0x03, 0xf8, 0x00, 0x18, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xf8, 0x01, 0x80, 0x03, 0xe0, 0x03, 0x78, 0x00, 0x78, 0x00,
+ 0xe0, 0x03, 0x80, 0x03, 0xf8, 0x01, 0x38, 0x00, 0x00, 0x00, 0x08, 0x02, 0x18, 0x03, 0xf0, 0x01,
+ 0xe0, 0x00, 0xf0, 0x01, 0x18, 0x03, 0x08, 0x02, 0x00, 0x00, 0x18, 0x00, 0x78, 0x10, 0xe0, 0x19,
+ 0x80, 0x0f, 0xe0, 0x07, 0xf8, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x88, 0x03,
+ 0xc8, 0x02, 0x68, 0x02, 0x38, 0x02, 0x18, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00,
+ 0xfe, 0x03, 0xdf, 0x07, 0x01, 0x04, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x04, 0xdf, 0x07, 0xfe, 0x03, 0x20, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00,
+ 0x40, 0x00, 0x20, 0x00,
+};
+
+static const uint16_t mf_bwfont_DejaVuSansBold12_glyph_offsets_0[96] = {
+ 0x0000, 0x0000, 0x0005, 0x000a, 0x0014, 0x001d, 0x002a, 0x0035,
+ 0x0038, 0x003e, 0x0043, 0x004a, 0x0053, 0x0057, 0x005d, 0x0061,
+ 0x0066, 0x006f, 0x0077, 0x0080, 0x0089, 0x0092, 0x009b, 0x00a4,
+ 0x00ad, 0x00b6, 0x00bf, 0x00c3, 0x00c7, 0x00d1, 0x00db, 0x00e5,
+ 0x00ec, 0x00f8, 0x0102, 0x010b, 0x0114, 0x011e, 0x0126, 0x012e,
+ 0x0138, 0x0142, 0x0146, 0x014a, 0x0154, 0x015c, 0x0168, 0x0172,
+ 0x017d, 0x0186, 0x0191, 0x019b, 0x01a4, 0x01ad, 0x01b7, 0x01c1,
+ 0x01cf, 0x01d9, 0x01e2, 0x01ec, 0x01f2, 0x01f7, 0x01fc, 0x0205,
+ 0x020c, 0x0211, 0x021a, 0x0223, 0x022b, 0x0234, 0x023d, 0x0243,
+ 0x024c, 0x0255, 0x0259, 0x025d, 0x0266, 0x026a, 0x0276, 0x027f,
+ 0x0288, 0x0291, 0x029a, 0x02a1, 0x02a9, 0x02af, 0x02b8, 0x02c0,
+ 0x02cc, 0x02d4, 0x02dc, 0x02e4, 0x02ec, 0x02f0, 0x02f8, 0x0302,
+};
+
+static const uint8_t mf_bwfont_DejaVuSansBold12_glyph_widths_0[95] = {
+ 0x04, 0x05, 0x06, 0x0a, 0x08, 0x0c, 0x0a, 0x04, 0x05, 0x05, 0x06, 0x0a, 0x05, 0x05, 0x05, 0x04,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x05, 0x05, 0x0a, 0x0a, 0x0a, 0x07,
+ 0x0c, 0x09, 0x09, 0x09, 0x0a, 0x08, 0x08, 0x0a, 0x0a, 0x04, 0x04, 0x09, 0x08, 0x0c, 0x0a, 0x0b,
+ 0x09, 0x0a, 0x09, 0x09, 0x08, 0x0a, 0x09, 0x0e, 0x09, 0x08, 0x0a, 0x05, 0x04, 0x05, 0x0a, 0x06,
+ 0x06, 0x09, 0x09, 0x07, 0x09, 0x09, 0x05, 0x09, 0x09, 0x04, 0x04, 0x08, 0x04, 0x0c, 0x09, 0x09,
+ 0x09, 0x09, 0x06, 0x08, 0x06, 0x09, 0x07, 0x0c, 0x07, 0x08, 0x08, 0x09, 0x04, 0x09, 0x0a,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_DejaVuSansBold12_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 2, /* height in bytes */
+ 13, /* height in pixels */
+ 0, /* width */
+ mf_bwfont_DejaVuSansBold12_glyph_widths_0, /* glyph widths */
+ mf_bwfont_DejaVuSansBold12_glyph_offsets_0, /* glyph offsets */
+ mf_bwfont_DejaVuSansBold12_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_DejaVuSansBold12 = {
+ {
+ "DejaVu Sans Bold 12",
+ "DejaVuSansBold12",
+ 14, /* width */
+ 13, /* height */
+ 4, /* min x advance */
+ 14, /* max x advance */
+ 1, /* baseline x */
+ 10, /* baseline y */
+ 14, /* line height */
+ 2, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_DejaVuSansBold12_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_DejaVuSansBold12_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_DejaVuSansBold12
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_DejaVuSansBold12_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSansBold12. */
+
diff --git a/src/gdisp/fonts/DejaVuSansBold12_aa.c b/src/gdisp/fonts/DejaVuSansBold12_aa.c
new file mode 100644
index 00000000..bab54f58
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSansBold12_aa.c
@@ -0,0 +1,257 @@
+
+
+/* Start of automatically generated font definition for DejaVuSansBold12_aa. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_DejaVuSansBold12_aa_dictionary_data[295] = {
+ 0x09, 0x06, 0xce, 0x80, 0xc2, 0x02, 0x11, 0x80, 0xc5, 0x07, 0x0a, 0x03, 0x0b, 0x02, 0x01, 0xc2,
+ 0x06, 0x81, 0x81, 0x0c, 0x81, 0x86, 0x04, 0x81, 0x2c, 0x83, 0x05, 0x2b, 0x80, 0xc3, 0x80, 0xcb,
+ 0x0f, 0x40, 0x07, 0xce, 0xcb, 0x80, 0xc6, 0x0c, 0xd9, 0x0c, 0x01, 0xca, 0x84, 0x1a, 0xc5, 0xc1,
+ 0xcb, 0x80, 0x2d, 0xc7, 0x80, 0xc8, 0xc2, 0x01, 0x0b, 0xc5, 0x07, 0x81, 0x02, 0x01, 0x80, 0x10,
+ 0xc4, 0xce, 0xc3, 0x80, 0x80, 0xca, 0xc3, 0xca, 0x04, 0x80, 0xcc, 0xce, 0xca, 0x07, 0x81, 0xc5,
+ 0xcd, 0xc3, 0xcc, 0xc2, 0x81, 0xce, 0x80, 0x80, 0xc2, 0x01, 0x81, 0x82, 0x80, 0xce, 0xc1, 0xc5,
+ 0x80, 0xc9, 0x0c, 0x01, 0xc5, 0x80, 0x08, 0xcd, 0x80, 0xcd, 0xc9, 0x80, 0xc7, 0x85, 0x08, 0xce,
+ 0xc9, 0xd1, 0xc1, 0x01, 0xce, 0x81, 0xc1, 0xc6, 0x80, 0xc4, 0xcc, 0xc6, 0xc3, 0xce, 0x07, 0xcd,
+ 0x80, 0xce, 0xc1, 0x81, 0xde, 0x80, 0xcd, 0xce, 0xcd, 0xc4, 0xcb, 0xc1, 0xc9, 0xc5, 0xcc, 0x80,
+ 0xc8, 0xcd, 0xc5, 0xc2, 0xc9, 0x0e, 0x0c, 0x06, 0x2c, 0x24, 0x50, 0x24, 0x05, 0x0f, 0x45, 0xdc,
+ 0x1a, 0x18, 0x0f, 0x52, 0xa4, 0x18, 0x94, 0x42, 0x09, 0x30, 0x1f, 0x06, 0x4f, 0x29, 0x1a, 0x22,
+ 0x63, 0x21, 0x9c, 0x26, 0x29, 0x1a, 0x22, 0x4d, 0x29, 0x09, 0x30, 0x1f, 0x06, 0x0f, 0x4f, 0x66,
+ 0x55, 0x45, 0x02, 0x22, 0x63, 0x19, 0x8a, 0x4d, 0x45, 0x02, 0x22, 0x63, 0x45, 0x09, 0x66, 0x55,
+ 0x29, 0xc0, 0x57, 0x00, 0x01, 0x01, 0x20, 0x24, 0x50, 0x24, 0x50, 0x24, 0x50, 0x24, 0x50, 0x09,
+ 0x0e, 0x28, 0x1d, 0x38, 0x66, 0x61, 0x5f, 0x39, 0x48, 0x45, 0xdc, 0x5f, 0x39, 0x48, 0x1d, 0x38,
+ 0x66, 0x61, 0x52, 0x09, 0x0c, 0x03, 0x45, 0x09, 0x4e, 0x63, 0x45, 0x24, 0x20, 0x02, 0x62, 0x04,
+ 0x01, 0x01, 0x4d, 0x21, 0x90, 0xb7, 0x5f, 0x39, 0x01, 0x63, 0x2a, 0x24, 0x3a, 0x1c, 0x20, 0x0c,
+ 0x07, 0x26, 0x23, 0x02, 0x1e, 0x1e, 0x01, 0x07, 0x20, 0x51, 0x0a, 0x1d, 0x0f, 0x1c, 0x18, 0x1d,
+ 0x36, 0x0b, 0x1c, 0x0d, 0x63, 0x0a, 0x49,
+};
+
+static const uint16_t mf_rlefont_DejaVuSansBold12_aa_dictionary_offsets[115] = {
+ 0x0000, 0x0001, 0x0002, 0x0006, 0x0007, 0x0009, 0x000a, 0x000b,
+ 0x000c, 0x000d, 0x000e, 0x0010, 0x0012, 0x0015, 0x0016, 0x0018,
+ 0x0019, 0x001a, 0x001b, 0x001c, 0x001e, 0x0020, 0x0021, 0x0023,
+ 0x0025, 0x0027, 0x002a, 0x002c, 0x002d, 0x002e, 0x0030, 0x0032,
+ 0x0033, 0x0036, 0x0038, 0x003a, 0x003d, 0x003f, 0x0040, 0x0042,
+ 0x0044, 0x0046, 0x0048, 0x0049, 0x004b, 0x004d, 0x004f, 0x0051,
+ 0x0053, 0x0055, 0x0057, 0x0059, 0x005b, 0x005c, 0x005e, 0x0060,
+ 0x0062, 0x0063, 0x0066, 0x0067, 0x0069, 0x006b, 0x006d, 0x006f,
+ 0x0071, 0x0072, 0x0074, 0x0076, 0x0078, 0x007a, 0x007c, 0x007e,
+ 0x0081, 0x0083, 0x0084, 0x0085, 0x0087, 0x0089, 0x008b, 0x008d,
+ 0x008f, 0x0091, 0x0093, 0x0095, 0x0097, 0x0099, 0x009c, 0x009e,
+ 0x00a0, 0x00a2, 0x00a7, 0x00bd, 0x00d3, 0x00d5, 0x00d7, 0x00df,
+ 0x00f4, 0x00fb, 0x00fd, 0x0101, 0x0103, 0x0106, 0x0108, 0x010a,
+ 0x0111, 0x0113, 0x0115, 0x0117, 0x0119, 0x011c, 0x011f, 0x0121,
+ 0x0123, 0x0125, 0x0127,
+};
+
+static const uint8_t mf_rlefont_DejaVuSansBold12_aa_glyph_data_0[2289] = {
+ 0x04, 0x00, 0x10, 0x05, 0x1b, 0x6d, 0x50, 0x0d, 0x0d, 0x50, 0x0c, 0x0c, 0x34, 0x24, 0x10, 0x06,
+ 0x2d, 0xee, 0x52, 0xac, 0x52, 0xac, 0x10, 0x0a, 0x52, 0x82, 0x4a, 0x06, 0x0d, 0x18, 0x46, 0x32,
+ 0x09, 0x19, 0x51, 0x56, 0x69, 0x3f, 0x01, 0x1d, 0x74, 0x4a, 0x06, 0x0d, 0x52, 0xc3, 0x1c, 0x1d,
+ 0x08, 0x0b, 0x00, 0x5d, 0x18, 0x0b, 0x08, 0x00, 0x2b, 0x18, 0x69, 0x3f, 0x01, 0x10, 0x08, 0x2d,
+ 0xd4, 0x82, 0x89, 0xf7, 0x86, 0x3f, 0x1e, 0x0e, 0x4f, 0x0f, 0x01, 0x18, 0x0c, 0x4c, 0x43, 0x03,
+ 0x1d, 0x03, 0x0d, 0x4c, 0x43, 0x18, 0x03, 0x2c, 0x4d, 0x1e, 0x4a, 0x2c, 0x29, 0xc0, 0x44, 0x81,
+ 0x0f, 0x52, 0xa4, 0x10, 0x0c, 0x3d, 0x47, 0x6b, 0x03, 0x21, 0x0c, 0x05, 0x29, 0x5d, 0x5b, 0x0c,
+ 0x00, 0x06, 0x0b, 0x19, 0x60, 0x74, 0x60, 0x0d, 0x03, 0x19, 0x5d, 0x5b, 0x0c, 0x08, 0x09, 0x1d,
+ 0x47, 0x6b, 0x3e, 0x04, 0x0c, 0x6b, 0x03, 0x19, 0x32, 0x08, 0x5d, 0x5b, 0x0c, 0x19, 0x03, 0x0d,
+ 0x01, 0x60, 0x74, 0x0e, 0x19, 0x0b, 0x06, 0x00, 0x5d, 0x5b, 0x0c, 0x29, 0x67, 0x21, 0x47, 0x6b,
+ 0x03, 0x10, 0x0a, 0x1b, 0x47, 0x64, 0x06, 0x18, 0x0d, 0x2b, 0x6a, 0x18, 0x0e, 0x5c, 0x20, 0x09,
+ 0x63, 0x01, 0x18, 0x06, 0x61, 0x2c, 0x22, 0x4d, 0x29, 0x0d, 0x1c, 0x0e, 0x68, 0x08, 0x40, 0x29,
+ 0x49, 0x01, 0x04, 0x4c, 0x5c, 0x29, 0x09, 0x68, 0x01, 0x0a, 0x0f, 0x43, 0x29, 0x74, 0x08, 0x88,
+ 0x0a, 0x06, 0x0e, 0x08, 0x10, 0x04, 0x3d, 0x71, 0x10, 0x05, 0x1f, 0x08, 0x40, 0x82, 0x49, 0x81,
+ 0x06, 0x40, 0x20, 0x87, 0x20, 0x49, 0x75, 0x61, 0x50, 0x49, 0x75, 0x87, 0x20, 0x07, 0x40, 0x00,
+ 0x82, 0x70, 0x08, 0x40, 0x10, 0x05, 0x32, 0x68, 0x1e, 0x22, 0x4d, 0x75, 0x0a, 0x30, 0x3a, 0x2c,
+ 0x20, 0x7b, 0x29, 0x45, 0x20, 0x7b, 0x3a, 0x2c, 0x1e, 0x32, 0x30, 0x18, 0x22, 0x0f, 0x60, 0x18,
+ 0x32, 0x68, 0x10, 0x06, 0x2d, 0xec, 0x1e, 0x32, 0x3f, 0x41, 0x18, 0x04, 0x88, 0x04, 0x18, 0x04,
+ 0x88, 0x04, 0x52, 0x32, 0x3f, 0x41, 0x19, 0xa4, 0x10, 0x0a, 0x21, 0x37, 0x71, 0x18, 0x25, 0x1e,
+ 0x71, 0x10, 0x05, 0x2e, 0x7f, 0x10, 0x05, 0x2d, 0x2e, 0x28, 0x52, 0xc0, 0x10, 0x05, 0x2a, 0x2e,
+ 0x24, 0x10, 0x04, 0x1b, 0x46, 0x31, 0x0d, 0x04, 0x20, 0x3f, 0x75, 0x07, 0x0b, 0x50, 0x0b, 0x83,
+ 0x01, 0x2b, 0x20, 0x04, 0x0d, 0x31, 0x69, 0x10, 0x08, 0x19, 0x3a, 0x53, 0x69, 0x52, 0x04, 0x4f,
+ 0x66, 0x2b, 0x86, 0x02, 0x22, 0x40, 0x5f, 0x21, 0x7e, 0x6f, 0x5f, 0x21, 0x7e, 0x86, 0x02, 0x22,
+ 0x40, 0x1d, 0x04, 0x4f, 0x66, 0x5c, 0x52, 0x05, 0x53, 0x69, 0x10, 0x08, 0x18, 0x45, 0x6d, 0x50,
+ 0x6d, 0x1e, 0xc3, 0x10, 0x08, 0x3d, 0x41, 0x0e, 0x63, 0x08, 0x01, 0x1d, 0x0b, 0x05, 0x58, 0x08,
+ 0x4f, 0x20, 0x7b, 0x20, 0x04, 0x63, 0x1e, 0x5e, 0x1c, 0x18, 0x3e, 0x30, 0x18, 0x05, 0x85, 0x07,
+ 0x4d, 0x04, 0x1e, 0x25, 0x10, 0x08, 0x3d, 0x65, 0x62, 0x54, 0x01, 0x1d, 0x0b, 0x04, 0x58, 0x08,
+ 0x2c, 0x20, 0x7b, 0x82, 0x07, 0x40, 0x21, 0x45, 0x63, 0x02, 0x82, 0x07, 0x2c, 0x00, 0x82, 0x61,
+ 0x1d, 0x0b, 0x04, 0x58, 0x08, 0x2c, 0x1d, 0x05, 0x36, 0x64, 0x08, 0x01, 0x10, 0x08, 0x21, 0x1b,
+ 0x0c, 0x61, 0x1e, 0x08, 0x0a, 0x61, 0x18, 0x03, 0x60, 0x61, 0x1d, 0x74, 0x69, 0x4b, 0x52, 0x09,
+ 0x09, 0xf0, 0x52, 0x0d, 0x01, 0xf0, 0x52, 0x25, 0x20, 0x24, 0x10, 0x08, 0x3d, 0x56, 0x79, 0x3c,
+ 0x4d, 0x6b, 0x83, 0x02, 0x0a, 0x68, 0x20, 0x7b, 0x20, 0x7b, 0x82, 0x0a, 0x68, 0x45, 0x4d, 0x5d,
+ 0x10, 0x08, 0x1b, 0x03, 0x0b, 0x4c, 0x52, 0x03, 0x2c, 0x81, 0x0a, 0x2b, 0x20, 0x0e, 0x43, 0x0e,
+ 0x57, 0x01, 0x45, 0x07, 0x01, 0x07, 0x4f, 0x5f, 0x59, 0x7b, 0x86, 0x59, 0x7e, 0x1d, 0x04, 0x55,
+ 0x01, 0x38, 0x52, 0x05, 0x88, 0x07, 0x10, 0x08, 0x3d, 0x25, 0x20, 0x04, 0x63, 0x20, 0x0c, 0x30,
+ 0x1e, 0x04, 0x63, 0x20, 0x87, 0x1e, 0x03, 0x43, 0x1e, 0x32, 0x5c, 0x18, 0x22, 0x43, 0x20, 0x09,
+ 0x5c, 0x10, 0x08, 0x2d, 0x22, 0x89, 0x44, 0x02, 0x86, 0x06, 0x01, 0x6c, 0x1d, 0x49, 0x59, 0x7b,
+ 0x19, 0x32, 0x30, 0x5b, 0x40, 0x19, 0x74, 0x0c, 0x61, 0x43, 0x01, 0x86, 0x06, 0x01, 0x6c, 0x1d,
+ 0x49, 0x59, 0x7b, 0x86, 0x06, 0x01, 0x6c, 0x19, 0x22, 0x89, 0x44, 0x02, 0x10, 0x08, 0x1b, 0x07,
+ 0x0d, 0x43, 0x05, 0x52, 0x08, 0x55, 0x01, 0x07, 0x2b, 0x5f, 0x01, 0x74, 0x2c, 0x1d, 0x49, 0x59,
+ 0x7e, 0x1d, 0x09, 0x55, 0x01, 0x07, 0x61, 0x1d, 0x66, 0x0e, 0x6b, 0x4d, 0x20, 0x03, 0x40, 0x18,
+ 0x22, 0x0b, 0x2b, 0x00, 0x45, 0x2c, 0x03, 0x10, 0x05, 0x27, 0x79, 0x2a, 0x24, 0x10, 0x05, 0x27,
+ 0x79, 0x7f, 0x10, 0x0a, 0x1f, 0x37, 0x22, 0x07, 0x0c, 0x52, 0x5b, 0x0c, 0x0f, 0x44, 0x19, 0x06,
+ 0x36, 0x44, 0x35, 0x45, 0x0a, 0x01, 0x1e, 0x06, 0x36, 0x44, 0x35, 0x18, 0x5b, 0x0c, 0x0f, 0x44,
+ 0x1e, 0x22, 0x07, 0x0c, 0x10, 0x0a, 0x2e, 0x3c, 0x25, 0x2d, 0xa4, 0x25, 0x10, 0x0a, 0x27, 0x0c,
+ 0x07, 0x02, 0x20, 0x89, 0x5d, 0x01, 0x18, 0x4e, 0x89, 0x0b, 0x06, 0x82, 0x0a, 0x61, 0x1d, 0x4e,
+ 0x89, 0x0b, 0x06, 0x19, 0x89, 0x5d, 0x01, 0x52, 0x0c, 0x07, 0x02, 0x10, 0x07, 0x18, 0x45, 0x43,
+ 0x04, 0x20, 0x03, 0x63, 0x20, 0x07, 0x63, 0x1e, 0x04, 0x0f, 0x5c, 0x1e, 0x0c, 0x30, 0x42, 0x45,
+ 0x01, 0x52, 0x1b, 0x24, 0x10, 0x0c, 0x00, 0x1b, 0x41, 0x62, 0x5d, 0x1d, 0x06, 0x0e, 0x06, 0x02,
+ 0x01, 0x65, 0x0a, 0x29, 0x5e, 0x02, 0x29, 0x0b, 0x06, 0x1f, 0x32, 0x07, 0x00, 0x04, 0x44, 0xfd,
+ 0x47, 0x42, 0x0e, 0x39, 0x0d, 0x04, 0x6e, 0x74, 0x0e, 0xd4, 0xa8, 0x22, 0x0d, 0x42, 0x0d, 0x39,
+ 0x0d, 0x04, 0x05, 0x4a, 0x0b, 0x07, 0x42, 0x09, 0x06, 0x00, 0x04, 0x2f, 0x63, 0x07, 0x42, 0x22,
+ 0x0d, 0x02, 0x50, 0x46, 0x35, 0x4e, 0x5d, 0x1d, 0x6a, 0x53, 0x44, 0x03, 0x10, 0x09, 0x1d, 0x82,
+ 0x49, 0x60, 0x52, 0x51, 0x85, 0x0b, 0x43, 0x40, 0x1d, 0x74, 0x61, 0x48, 0x01, 0x1d, 0x06, 0x40,
+ 0x00, 0x0b, 0x30, 0x1d, 0x87, 0x51, 0x0b, 0x29, 0x22, 0xc3, 0x4a, 0x29, 0x07, 0x40, 0x21, 0x32,
+ 0x55, 0x29, 0x0c, 0x1c, 0x1f, 0x05, 0x43, 0x10, 0x09, 0x2d, 0xe2, 0x44, 0x02, 0x3b, 0x6c, 0x3b,
+ 0x7b, 0x3b, 0x6c, 0x19, 0xc2, 0x2b, 0x3b, 0x05, 0x43, 0x6f, 0x3b, 0x05, 0x43, 0x29, 0xc0, 0x2f,
+ 0x03, 0x10, 0x09, 0x1b, 0x6a, 0x49, 0x2f, 0x19, 0x22, 0x62, 0x35, 0x41, 0x1d, 0x09, 0x30, 0x20,
+ 0x70, 0x61, 0x50, 0x70, 0x09, 0x30, 0x20, 0x7a, 0x41, 0x52, 0x6a, 0x49, 0x2f, 0x10, 0x0a, 0x2d,
+ 0xf2, 0x6b, 0x08, 0x01, 0x45, 0x22, 0x06, 0x64, 0x01, 0x29, 0x8a, 0x07, 0x4f, 0x42, 0x90, 0x22,
+ 0x63, 0x23, 0x80, 0x21, 0x22, 0x63, 0x29, 0x8a, 0x07, 0x4f, 0x1f, 0x9c, 0x5b, 0x64, 0x01, 0x1f,
+ 0xbc, 0x6b, 0x08, 0x01, 0x10, 0x08, 0x3d, 0x56, 0x6d, 0x28, 0x52, 0x6d, 0x28, 0x10, 0x08, 0x3d,
+ 0x56, 0x6d, 0x28, 0x52, 0x6d, 0x10, 0x0a, 0x1d, 0x82, 0x08, 0x53, 0x64, 0x0b, 0x29, 0x74, 0x0d,
+ 0x0e, 0x06, 0x58, 0x65, 0x19, 0x09, 0x55, 0x42, 0x7d, 0x1f, 0x45, 0xbc, 0x19, 0x1a, 0x4b, 0x19,
+ 0x09, 0x30, 0xdc, 0x29, 0x22, 0x62, 0x35, 0x48, 0x1d, 0x6a, 0x53, 0x6b, 0x09, 0x10, 0x0a, 0x18,
+ 0x45, 0x80, 0x80, 0x80, 0x80, 0xc3, 0x23, 0x80, 0x80, 0x80, 0x26, 0x10, 0x04, 0x3d, 0x76, 0x61,
+ 0x10, 0x04, 0x3d, 0x76, 0x4d, 0x20, 0x07, 0x2c, 0x29, 0xa4, 0x54, 0x01, 0x10, 0x09, 0x2d, 0x8a,
+ 0x03, 0x0d, 0x30, 0x1f, 0x90, 0x04, 0x62, 0x04, 0x23, 0x51, 0x0d, 0x03, 0x45, 0x06, 0x43, 0x59,
+ 0x45, 0x85, 0x0f, 0x30, 0x0f, 0x1c, 0x00, 0x45, 0x51, 0x1c, 0x3b, 0x3e, 0x30, 0x29, 0x8a, 0x3e,
+ 0x55, 0x10, 0x08, 0x3d, 0x76, 0xc3, 0x10, 0x0c, 0x20, 0xa4, 0x4f, 0x42, 0x09, 0xf7, 0xbc, 0x39,
+ 0x22, 0x4c, 0x26, 0x54, 0x21, 0x09, 0x53, 0xa5, 0x55, 0x4a, 0x02, 0x55, 0x61, 0x26, 0x01, 0x57,
+ 0x09, 0x60, 0xf7, 0x9c, 0x07, 0x0f, 0x55, 0x4b, 0x26, 0x74, 0x0e, 0x60, 0x4b, 0x80, 0x80, 0x10,
+ 0x0a, 0x20, 0xa4, 0x43, 0xdc, 0x23, 0x5c, 0xd0, 0xa4, 0x43, 0x0c, 0xd0, 0xa4, 0x5c, 0x1c, 0x8a,
+ 0x9c, 0x0b, 0x0c, 0x8a, 0x9c, 0x04, 0x0f, 0x6e, 0xc5, 0x90, 0x0b, 0x0c, 0x0f, 0xc5, 0x90, 0x03,
+ 0x61, 0xc5, 0x90, 0x32, 0x61, 0x10, 0x0b, 0x1b, 0x6a, 0x49, 0x54, 0x02, 0x19, 0x7a, 0x04, 0x62,
+ 0x39, 0x72, 0x4f, 0x29, 0x7a, 0x04, 0x62, 0x02, 0x19, 0x6a, 0x49, 0x57, 0x02, 0x10, 0x09, 0x2d,
+ 0xe2, 0x54, 0x01, 0x3b, 0x08, 0x4f, 0x3b, 0x7b, 0x3b, 0x7b, 0x3b, 0x08, 0x4f, 0x29, 0xc0, 0x54,
+ 0x01, 0x45, 0x50, 0x24, 0x10, 0x0a, 0x1b, 0x6a, 0x49, 0x57, 0x02, 0x19, 0x7a, 0x04, 0x62, 0x39,
+ 0x72, 0x40, 0x29, 0x7a, 0x3e, 0x2b, 0x19, 0x6a, 0x0d, 0x61, 0x5c, 0x82, 0x0d, 0x30, 0x20, 0x03,
+ 0x4d, 0x02, 0x10, 0x09, 0x2d, 0xe2, 0x2f, 0x02, 0x3b, 0x06, 0x43, 0x3b, 0x7b, 0x3b, 0x6c, 0x29,
+ 0xc0, 0x63, 0x01, 0x45, 0x22, 0x0b, 0x30, 0x3b, 0x7e, 0x3b, 0x32, 0x1c, 0x29, 0x8a, 0x05, 0x43,
+ 0x10, 0x09, 0x19, 0x82, 0x89, 0x6b, 0x1d, 0x32, 0x1c, 0x00, 0x41, 0x52, 0x70, 0x53, 0x57, 0x06,
+ 0x01, 0x52, 0x04, 0x0d, 0x61, 0x85, 0x03, 0x07, 0x88, 0x1e, 0x22, 0x4d, 0x1d, 0x0b, 0x35, 0x84,
+ 0x0a, 0x0d, 0x49, 0x54, 0x01, 0x10, 0x08, 0x1e, 0xa4, 0x25, 0x18, 0x76, 0x10, 0x0a, 0x18, 0x45,
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x26, 0x19, 0x53, 0x01, 0x21, 0x7e, 0x19, 0x08, 0x4f, 0x01, 0x66,
+ 0x68, 0x1d, 0x07, 0x53, 0x63, 0x07, 0x10, 0x09, 0x2d, 0x0c, 0x1c, 0x1f, 0x05, 0x43, 0x29, 0x07,
+ 0x40, 0x21, 0x32, 0x55, 0x42, 0x22, 0x0f, 0x60, 0x74, 0x1a, 0x42, 0x87, 0x51, 0x0b, 0x1d, 0x6c,
+ 0x00, 0x0b, 0x30, 0x19, 0x74, 0x0f, 0x2b, 0x61, 0x59, 0x86, 0x0c, 0x40, 0x52, 0x51, 0x85, 0x01,
+ 0x49, 0x60, 0x10, 0x0e, 0x3d, 0x0d, 0x2b, 0x74, 0x61, 0x59, 0x03, 0x63, 0x00, 0x32, 0x55, 0x51,
+ 0x1c, 0x00, 0x07, 0x40, 0x21, 0x06, 0x40, 0x00, 0x09, 0x0e, 0x44, 0x32, 0x30, 0x00, 0x22, 0x4d,
+ 0x00, 0x57, 0x09, 0x0e, 0x00, 0x1a, 0x00, 0x0e, 0x30, 0x1c, 0x05, 0x30, 0x4d, 0x1f, 0x32, 0x0f,
+ 0x49, 0x01, 0x7b, 0x40, 0x42, 0x07, 0x0f, 0x2c, 0x21, 0x36, 0x55, 0x42, 0x3f, 0x55, 0x21, 0x06,
+ 0x0f, 0x2b, 0x29, 0x1a, 0x02, 0x4d, 0x10, 0x09, 0x2d, 0x0a, 0x30, 0x1f, 0x06, 0x40, 0x42, 0x74,
+ 0x0d, 0x0e, 0x02, 0x22, 0x64, 0x01, 0x19, 0x04, 0x2c, 0x00, 0x0b, 0x5c, 0x52, 0x08, 0x43, 0x68,
+ 0x18, 0x48, 0x4a, 0x52, 0x32, 0x4f, 0x40, 0x52, 0x05, 0x40, 0x32, 0x1c, 0x29, 0x74, 0x0e, 0x60,
+ 0x74, 0x0e, 0x60, 0x42, 0x32, 0x1c, 0x21, 0x84, 0x10, 0x08, 0x2d, 0x0b, 0x2b, 0x21, 0x03, 0x2c,
+ 0x29, 0x22, 0x2c, 0x21, 0x0b, 0x4a, 0x1d, 0x08, 0x5c, 0x04, 0x68, 0x1d, 0x74, 0x6b, 0x0c, 0x60,
+ 0x18, 0x06, 0x0f, 0x30, 0x20, 0x6d, 0x10, 0x0a, 0x20, 0xa4, 0x25, 0x3a, 0x4d, 0x1e, 0x05, 0x4d,
+ 0x03, 0x18, 0x04, 0x4d, 0x03, 0x18, 0x5e, 0x5c, 0x18, 0x5e, 0x1c, 0x18, 0x5e, 0x30, 0x1e, 0x49,
+ 0x83, 0x0f, 0x25, 0x10, 0x05, 0xc0, 0x1e, 0x76, 0x24, 0x61, 0x10, 0x04, 0x2d, 0x69, 0x31, 0x04,
+ 0x0d, 0x21, 0x82, 0x2b, 0x50, 0x0b, 0x07, 0x50, 0x07, 0x0b, 0x50, 0x3f, 0x01, 0x50, 0x0d, 0x04,
+ 0x31, 0x46, 0x10, 0x05, 0x4b, 0x76, 0x24, 0x52, 0xc0, 0x10, 0x0a, 0x1d, 0x3a, 0x85, 0x06, 0x40,
+ 0x0a, 0x30, 0x1d, 0x07, 0x0e, 0x05, 0x21, 0x05, 0x0e, 0x07, 0x10, 0x06, 0x00, 0x34, 0x2e, 0x2e,
+ 0xc3, 0x10, 0x06, 0x21, 0x08, 0x0d, 0x01, 0x50, 0x08, 0x09, 0x10, 0x09, 0x37, 0x07, 0x61, 0x57,
+ 0x01, 0x52, 0x08, 0x03, 0x00, 0x06, 0x4f, 0x50, 0x63, 0x1d, 0x03, 0x0b, 0x0e, 0x28, 0x5f, 0x04,
+ 0x74, 0x61, 0x5f, 0x04, 0x66, 0x61, 0x1d, 0x04, 0x0c, 0x33, 0x10, 0x09, 0x21, 0x6d, 0x61, 0x57,
+ 0x52, 0x73, 0x10, 0x07, 0x37, 0x67, 0x64, 0x06, 0x52, 0x6c, 0x02, 0x66, 0x00, 0x7d, 0x1f, 0x45,
+ 0x29, 0x7d, 0x1e, 0x6c, 0x02, 0x01, 0x08, 0x18, 0x67, 0x64, 0x06, 0x10, 0x09, 0x45, 0x50, 0x24,
+ 0x52, 0x77, 0x0e, 0x28, 0x10, 0x09, 0x37, 0x06, 0x0c, 0x64, 0x06, 0x52, 0x06, 0x40, 0x01, 0x08,
+ 0x30, 0x7d, 0x7e, 0x1d, 0x25, 0x7d, 0x1e, 0x07, 0x40, 0x58, 0x65, 0x52, 0x67, 0x0e, 0x2f, 0x04,
+ 0x10, 0x05, 0x21, 0x46, 0xc7, 0x5f, 0x03, 0x42, 0x45, 0x1e, 0xc2, 0x1e, 0x24, 0x50, 0x6d, 0x10,
+ 0x09, 0x37, 0x08, 0x0e, 0x28, 0x1d, 0x07, 0x4f, 0x66, 0x61, 0x7d, 0x48, 0x6f, 0x7d, 0x48, 0x1d,
+ 0x38, 0x66, 0x61, 0x52, 0x08, 0x0e, 0x28, 0x20, 0x7b, 0x52, 0x09, 0x02, 0x01, 0x08, 0x4f, 0x52,
+ 0x06, 0x88, 0x07, 0x10, 0x09, 0x21, 0x6d, 0x4c, 0x78, 0x02, 0xf0, 0x6f, 0x6f, 0x6f, 0x6f, 0x10,
+ 0x04, 0x21, 0x24, 0x34, 0x79, 0x4b, 0x50, 0x6d, 0x10, 0x04, 0x21, 0x24, 0x34, 0x6d, 0x50, 0x6d,
+ 0x1e, 0x22, 0x43, 0x20, 0x63, 0x04, 0x10, 0x08, 0x21, 0x6d, 0x22, 0x0d, 0x55, 0x45, 0x02, 0x0d,
+ 0x55, 0x1f, 0xa4, 0x63, 0x55, 0x42, 0xa4, 0x4d, 0x60, 0x42, 0xa4, 0x5c, 0x43, 0x59, 0x45, 0x84,
+ 0xca, 0x38, 0x10, 0x04, 0x21, 0x76, 0x24, 0x10, 0x0c, 0x2a, 0xe2, 0x6b, 0x88, 0x04, 0xd4, 0x55,
+ 0x3f, 0x55, 0x03, 0x63, 0x26, 0x01, 0x4b, 0x01, 0x4b, 0x7c, 0x7c, 0x7c, 0x7c, 0x10, 0x09, 0x2a,
+ 0xc2, 0x78, 0x02, 0xf0, 0x6f, 0x6f, 0x6f, 0x6f, 0x10, 0x09, 0x37, 0x06, 0x0d, 0x64, 0x06, 0x52,
+ 0x38, 0x66, 0x30, 0x7d, 0x02, 0x63, 0x1d, 0x0e, 0xe5, 0x4d, 0x7d, 0x02, 0x63, 0x1d, 0x38, 0x66,
+ 0x55, 0x52, 0x07, 0x0d, 0x64, 0x07, 0x10, 0x09, 0x2a, 0xe2, 0x57, 0x52, 0x73, 0x52, 0x79, 0x4b,
+ 0x10, 0x09, 0x37, 0x77, 0x5a, 0x6d, 0x10, 0x06, 0x2a, 0xe2, 0xc5, 0xa4, 0x4f, 0x01, 0x1f, 0x45,
+ 0x75, 0x6d, 0x10, 0x08, 0x27, 0x03, 0x0b, 0x0e, 0x2f, 0x04, 0x00, 0x5f, 0x35, 0x65, 0x52, 0x0e,
+ 0x1c, 0x81, 0x06, 0x5a, 0x69, 0x1e, 0x03, 0x07, 0x63, 0x1d, 0x32, 0x03, 0x00, 0x03, 0x63, 0x52,
+ 0x65, 0x0e, 0x2f, 0x03, 0x10, 0x06, 0x3d, 0x79, 0x33, 0x1e, 0x6d, 0x50, 0x70, 0x06, 0x5a, 0x10,
+ 0x09, 0x20, 0x34, 0x6f, 0x6f, 0x6f, 0x6f, 0x3b, 0x48, 0x5f, 0x05, 0x66, 0x61, 0x1d, 0x47, 0x33,
+ 0x10, 0x07, 0x19, 0x34, 0x82, 0x43, 0x00, 0x74, 0x61, 0x01, 0x29, 0x32, 0x2b, 0x84, 0x04, 0x68,
+ 0x32, 0x5c, 0x52, 0x62, 0x7b, 0x18, 0x08, 0x40, 0x68, 0x52, 0x22, 0x4c, 0x81, 0x0c, 0x43, 0x10,
+ 0x0c, 0x2a, 0x03, 0x43, 0x74, 0x61, 0x59, 0x0c, 0x2b, 0x1f, 0x62, 0x51, 0x1c, 0x00, 0x4d, 0x42,
+ 0x09, 0x0f, 0x41, 0x0c, 0x0c, 0x09, 0x03, 0x4f, 0x42, 0x04, 0x30, 0x0e, 0x08, 0x08, 0x0e, 0x06,
+ 0x5c, 0x29, 0x6b, 0x5c, 0x04, 0x43, 0x0e, 0x29, 0x32, 0x61, 0x58, 0x0f, 0x40, 0x19, 0x05, 0x2c,
+ 0x21, 0x87, 0x10, 0x07, 0x2a, 0x0a, 0x5c, 0x00, 0x04, 0x40, 0x19, 0x74, 0x62, 0x02, 0x0e, 0x60,
+ 0x1d, 0x51, 0x85, 0x00, 0x88, 0x1e, 0x06, 0x4d, 0x30, 0x1d, 0x74, 0x64, 0x01, 0x0d, 0x60, 0x19,
+ 0x32, 0x5c, 0x00, 0x03, 0x40, 0x10, 0x08, 0x2d, 0x34, 0x22, 0x0f, 0x60, 0x22, 0x63, 0x86, 0x07,
+ 0x00, 0x38, 0x1d, 0x04, 0x63, 0x00, 0x0c, 0x2b, 0x52, 0x0c, 0x68, 0x4d, 0x18, 0x05, 0x61, 0x4f,
+ 0x1f, 0x5f, 0x5c, 0x1e, 0x07, 0x4d, 0x20, 0x03, 0x40, 0x82, 0x0c, 0x5c, 0x1e, 0x4d, 0x06, 0x10,
+ 0x08, 0x27, 0xc3, 0x3a, 0x61, 0x18, 0x51, 0x5c, 0x18, 0x04, 0x85, 0x04, 0x0f, 0x30, 0x1f, 0x45,
+ 0x83, 0xc3, 0x10, 0x09, 0x42, 0x46, 0x61, 0x1e, 0x0e, 0x5c, 0x20, 0x79, 0x06, 0x63, 0x1f, 0x45,
+ 0x1c, 0x20, 0x07, 0x63, 0x00, 0x82, 0x24, 0x50, 0x0e, 0x5c, 0x20, 0x46, 0x61, 0x10, 0x04, 0x1b,
+ 0x71, 0x50, 0x71, 0x50, 0x71, 0x50, 0x71, 0x10, 0x09, 0xf0, 0x69, 0x20, 0x04, 0x4d, 0x50, 0x24,
+ 0x50, 0x0d, 0x30, 0x3a, 0x8b, 0x5f, 0x83, 0x61, 0x75, 0x61, 0x20, 0x04, 0x4d, 0x1f, 0x45, 0x69,
+ 0x10, 0x0a, 0x00, 0x2e, 0x67, 0x2f, 0x35, 0x02, 0x0b, 0x19, 0x09, 0x02, 0x4e, 0x0b, 0x6b, 0x05,
+ 0x10,
+};
+
+static const uint16_t mf_rlefont_DejaVuSansBold12_aa_glyph_offsets_0[95] = {
+ 0x0000, 0x0003, 0x000f, 0x0017, 0x003e, 0x0064, 0x00a2, 0x00d5,
+ 0x00d9, 0x00f5, 0x0113, 0x0129, 0x0132, 0x0136, 0x013d, 0x0142,
+ 0x0158, 0x017b, 0x0184, 0x01a5, 0x01cd, 0x01eb, 0x0201, 0x0227,
+ 0x0242, 0x026d, 0x0298, 0x029e, 0x02a3, 0x02c5, 0x02cd, 0x02ec,
+ 0x0305, 0x034d, 0x0378, 0x0392, 0x03ae, 0x03d5, 0x03de, 0x03e6,
+ 0x040e, 0x041c, 0x0421, 0x042d, 0x0452, 0x0457, 0x0480, 0x04a6,
+ 0x04be, 0x04d5, 0x04f3, 0x0511, 0x0536, 0x053d, 0x0557, 0x0583,
+ 0x05c7, 0x05f9, 0x0617, 0x0634, 0x063b, 0x0653, 0x065a, 0x066b,
+ 0x0672, 0x067b, 0x069b, 0x06a3, 0x06bc, 0x06c5, 0x06e1, 0x06f0,
+ 0x0714, 0x0720, 0x0729, 0x0737, 0x0753, 0x0758, 0x076e, 0x0779,
+ 0x0797, 0x07a1, 0x07a7, 0x07b3, 0x07d5, 0x07e0, 0x07f1, 0x0810,
+ 0x0843, 0x0866, 0x0890, 0x08a3, 0x08be, 0x08c8, 0x08e1,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSansBold12_aa_char_ranges[] = {
+ {32, 95, mf_rlefont_DejaVuSansBold12_aa_glyph_offsets_0, mf_rlefont_DejaVuSansBold12_aa_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_DejaVuSansBold12_aa = {
+ {
+ "DejaVu Sans Bold 12",
+ "DejaVuSansBold12_aa",
+ 14, /* width */
+ 13, /* height */
+ 4, /* min x advance */
+ 14, /* max x advance */
+ 1, /* baseline x */
+ 10, /* baseline y */
+ 14, /* line height */
+ 0, /* flags */
+ 63, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_DejaVuSansBold12_aa_dictionary_data,
+ mf_rlefont_DejaVuSansBold12_aa_dictionary_offsets,
+ 83, /* rle dict count */
+ 114, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_DejaVuSansBold12_aa_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_DejaVuSansBold12_aa_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_DejaVuSansBold12_aa
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSansBold12_aa_listentry)
+#endif
+
+
+/* End of automatically generated font definition for DejaVuSansBold12_aa. */
+
diff --git a/src/gdisp/fonts/DejaVuSerif.license b/src/gdisp/fonts/DejaVuSerif.license
new file mode 100644
index 00000000..710b32c6
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSerif.license
@@ -0,0 +1,58 @@
+This package was debianized by Peter Cernak <pce@users.sourceforge.net> on
+Sun, 5 Sep 2004 17:10:26 +0200.
+
+It was downloaded from http://dejavu.sourceforge.net/
+
+Upstream Authors: Stepan Roh <src@users.sourceforge.net> (original author),
+ see /usr/share/doc/ttf-dejavu/AUTHORS for full list
+
+Copyright:
+
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
diff --git a/src/gdisp/fonts/DejaVuSerif.ttf b/src/gdisp/fonts/DejaVuSerif.ttf
new file mode 100644
index 00000000..0dfeb882
--- /dev/null
+++ b/src/gdisp/fonts/DejaVuSerif.ttf
Binary files differ
diff --git a/src/gdisp/fonts/LargeNumbers.c b/src/gdisp/fonts/LargeNumbers.c
new file mode 100644
index 00000000..08517248
--- /dev/null
+++ b/src/gdisp/fonts/LargeNumbers.c
@@ -0,0 +1,127 @@
+
+
+/* Start of automatically generated font definition for LargeNumbers. */
+
+#ifndef MF_RLEFONT_INTERNALS
+#define MF_RLEFONT_INTERNALS
+#endif
+#include "mf_rlefont.h"
+
+#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_rlefont_LargeNumbers_dictionary_data[141] = {
+ 0x82, 0x11, 0x85, 0x11, 0x82, 0x0f, 0x10, 0x82, 0x02, 0x82, 0x10, 0x82, 0x02, 0x82, 0x16, 0x0d,
+ 0x04, 0x15, 0x81, 0x8c, 0x0b, 0x8c, 0x03, 0x86, 0x11, 0x86, 0x80, 0x14, 0x82, 0x84, 0x0a, 0x1a,
+ 0x82, 0x08, 0x03, 0x81, 0x89, 0x80, 0x0c, 0x44, 0x10, 0x09, 0x82, 0x81, 0x13, 0x83, 0x13, 0x84,
+ 0x13, 0x83, 0x13, 0x84, 0x13, 0x83, 0x14, 0x83, 0x13, 0x82, 0x05, 0x82, 0x81, 0x0b, 0x8b, 0x0c,
+ 0x8a, 0x0f, 0x81, 0x09, 0x8e, 0x04, 0x84, 0x03, 0x82, 0x02, 0x80, 0x8f, 0x08, 0x8f, 0x08, 0x85,
+ 0x01, 0x81, 0x83, 0x01, 0x0b, 0x1d, 0x14, 0x82, 0x11, 0x40, 0x01, 0x82, 0x81, 0x0c, 0x83, 0x0d,
+ 0x89, 0x3d, 0x75, 0x84, 0x2c, 0x1f, 0xfd, 0x39, 0x9c, 0x19, 0x67, 0x2a, 0x28, 0x75, 0xc7, 0x2c,
+ 0x33, 0x83, 0x23, 0x23, 0x23, 0x23, 0x0f, 0x00, 0x2c, 0x85, 0xa2, 0x27, 0xa2, 0x64, 0x00, 0x83,
+ 0x3c, 0x65, 0x39, 0x23, 0x23, 0x00, 0x2e, 0x25, 0x2c, 0x3d, 0x2a, 0x23, 0x0f,
+};
+
+static const uint16_t mf_rlefont_LargeNumbers_dictionary_offsets[55] = {
+ 0x0000, 0x0005, 0x0006, 0x000c, 0x000e, 0x000f, 0x0010, 0x0011,
+ 0x0013, 0x0016, 0x0018, 0x001a, 0x001d, 0x001e, 0x001f, 0x0021,
+ 0x0022, 0x0024, 0x0025, 0x0027, 0x0029, 0x002b, 0x003a, 0x003c,
+ 0x0043, 0x0045, 0x0047, 0x0049, 0x004b, 0x0050, 0x0052, 0x0054,
+ 0x0055, 0x0056, 0x0058, 0x0059, 0x005b, 0x005c, 0x005d, 0x005e,
+ 0x0061, 0x0065, 0x0068, 0x006e, 0x0070, 0x0072, 0x0077, 0x007e,
+ 0x0080, 0x0082, 0x0085, 0x0087, 0x0089, 0x008b, 0x008d,
+};
+
+static const uint8_t mf_rlefont_LargeNumbers_glyph_data_0[630] = {
+ 0x08, 0x00, 0x10, 0x0b, 0x00, 0x26, 0x45, 0x49, 0x45, 0x3b, 0x7c, 0x49, 0x0f, 0x10, 0x0d, 0x26,
+ 0x1b, 0x1a, 0x1b, 0x1a, 0x1b, 0x1a, 0x1b, 0x10, 0x14, 0x37, 0x1f, 0x75, 0x19, 0x40, 0x42, 0x37,
+ 0x34, 0x29, 0x27, 0xd4, 0x75, 0x19, 0x40, 0xec, 0x2a, 0x34, 0x29, 0x37, 0x40, 0x42, 0x10, 0x11,
+ 0x1e, 0x9c, 0x1f, 0x1c, 0xe7, 0x22, 0x2a, 0xf0, 0x29, 0x25, 0x44, 0x93, 0x2c, 0x9f, 0x90, 0x2c,
+ 0x9d, 0x19, 0x53, 0x2a, 0x31, 0x36, 0x1d, 0x44, 0x4c, 0x44, 0x4c, 0x31, 0x36, 0x1d, 0x70, 0x4c,
+ 0xd4, 0x7d, 0x25, 0x87, 0x77, 0x85, 0x64, 0x83, 0xa3, 0x2c, 0x29, 0x25, 0x7c, 0xa3, 0x19, 0x9c,
+ 0x1f, 0x1c, 0xf7, 0x1f, 0x10, 0x18, 0x00, 0x1c, 0x31, 0x27, 0x8a, 0x31, 0x87, 0x9c, 0x84, 0x73,
+ 0x87, 0x92, 0xa4, 0xa7, 0x87, 0x8a, 0xa4, 0x67, 0x65, 0x2c, 0x28, 0x75, 0x2c, 0xec, 0x67, 0x25,
+ 0x73, 0x77, 0x27, 0x21, 0x9c, 0x80, 0x2e, 0x67, 0x21, 0x37, 0x6b, 0x7f, 0x25, 0x67, 0x75, 0x2c,
+ 0xf4, 0x8b, 0x8b, 0x64, 0x65, 0x75, 0x27, 0x87, 0x92, 0x92, 0x64, 0x85, 0x73, 0x87, 0x9c, 0x4a,
+ 0x93, 0xa4, 0x85, 0x31, 0x10, 0x15, 0xc4, 0x26, 0x4c, 0x31, 0x36, 0x1d, 0x29, 0xc4, 0x2c, 0x85,
+ 0x85, 0x2c, 0x23, 0x23, 0xf7, 0x3a, 0x82, 0x22, 0x75, 0x85, 0x21, 0xab, 0x8b, 0x31, 0x82, 0x92,
+ 0x4a, 0xb5, 0x83, 0x27, 0x36, 0x21, 0x2c, 0xc5, 0x82, 0x2c, 0xf7, 0x31, 0x25, 0x29, 0xa3, 0x30,
+ 0x84, 0xa4, 0xa3, 0x82, 0x10, 0x07, 0x26, 0x41, 0x41, 0x41, 0x10, 0x0b, 0xf4, 0x26, 0x23, 0x39,
+ 0x23, 0x49, 0x49, 0x45, 0x41, 0x4d, 0x41, 0x0f, 0x41, 0x0f, 0x10, 0x0b, 0x26, 0x0f, 0x41, 0x0f,
+ 0x41, 0x4d, 0x41, 0x45, 0x49, 0x49, 0x39, 0x23, 0x3a, 0x7c, 0x10, 0x0d, 0x38, 0xf7, 0x1f, 0x3a,
+ 0xc6, 0xa7, 0x27, 0x64, 0x5f, 0x4c, 0x44, 0x3a, 0xa2, 0x22, 0x2a, 0xf0, 0x5f, 0x4c, 0xc6, 0xa7,
+ 0x19, 0x9c, 0x1f, 0x10, 0x14, 0xfc, 0x3a, 0x3b, 0x41, 0x41, 0x41, 0x84, 0x30, 0x30, 0x30, 0x1d,
+ 0xa0, 0x39, 0x41, 0x41, 0x10, 0x09, 0x2b, 0x1b, 0x45, 0x39, 0x39, 0x23, 0x10, 0x0a, 0x38, 0x3b,
+ 0x3b, 0x3b, 0x22, 0x22, 0x22, 0x10, 0x09, 0x2b, 0x1b, 0x45, 0x10, 0x09, 0x00, 0x27, 0x41, 0x1f,
+ 0x41, 0x1f, 0x41, 0x1f, 0x41, 0x1f, 0x41, 0x1f, 0x41, 0x1f, 0x41, 0x10, 0x11, 0x38, 0xc3, 0x19,
+ 0x44, 0x19, 0x29, 0x1d, 0x48, 0x43, 0xe5, 0xa2, 0x46, 0x3d, 0x46, 0x3d, 0x46, 0x3d, 0x46, 0x3d,
+ 0x37, 0x48, 0x43, 0xc5, 0x3f, 0x1d, 0x44, 0x3a, 0xc3, 0x10, 0x11, 0xf4, 0x26, 0x4c, 0x31, 0x4c,
+ 0x74, 0xa3, 0x19, 0x77, 0x45, 0x49, 0x45, 0x00, 0x19, 0x29, 0x43, 0xc3, 0x4c, 0x3d, 0x29, 0x10,
+ 0x11, 0x37, 0x22, 0x3e, 0x21, 0x3f, 0x43, 0x00, 0x31, 0x37, 0x85, 0x7c, 0x49, 0x0f, 0x19, 0x31,
+ 0x1d, 0x64, 0x18, 0x18, 0x18, 0x29, 0x37, 0x20, 0x10, 0x11, 0x37, 0x22, 0x3e, 0x21, 0x3f, 0x3d,
+ 0x25, 0x88, 0x7c, 0x23, 0x4d, 0x4b, 0x2a, 0x21, 0x2a, 0x74, 0xa3, 0x1d, 0x44, 0x4d, 0x23, 0x23,
+ 0x4d, 0x84, 0x64, 0x4a, 0x2f, 0x24, 0x10, 0x11, 0x84, 0x1c, 0x31, 0x3a, 0x82, 0x22, 0x22, 0x3e,
+ 0x31, 0x4c, 0x7c, 0xa2, 0x1d, 0x52, 0x4c, 0xf0, 0x77, 0x85, 0x2c, 0x7c, 0x27, 0x64, 0xa7, 0x4c,
+ 0x48, 0x43, 0xa4, 0x8b, 0x30, 0x30, 0x30, 0x27, 0x2c, 0x23, 0x4d, 0x10, 0x11, 0x25, 0x22, 0x3f,
+ 0x2a, 0xfe, 0x29, 0x25, 0x7c, 0x49, 0x3c, 0x4c, 0x21, 0x4c, 0x44, 0x4c, 0xc6, 0x7c, 0x45, 0x84,
+ 0x64, 0x4a, 0x2f, 0x24, 0x10, 0x11, 0x1d, 0x22, 0x19, 0xc3, 0x3f, 0xe5, 0x2c, 0x87, 0x88, 0x2c,
+ 0x23, 0x39, 0xf1, 0x3f, 0x43, 0x29, 0x25, 0xc2, 0x31, 0x46, 0xf7, 0x2c, 0xe5, 0x7c, 0x37, 0x8b,
+ 0x7c, 0x84, 0x64, 0x87, 0x3f, 0x2a, 0xf0, 0x83, 0x19, 0x82, 0x10, 0x11, 0x26, 0x29, 0x37, 0x20,
+ 0x4b, 0x2d, 0x2d, 0x3d, 0x10, 0x11, 0x37, 0x22, 0x2a, 0xf0, 0x29, 0x27, 0x7c, 0x29, 0x84, 0x31,
+ 0x31, 0x46, 0xe7, 0x2c, 0xa5, 0x93, 0x2c, 0xc3, 0x4c, 0x1b, 0xa3, 0x1d, 0x29, 0x43, 0xe5, 0xa2,
+ 0x46, 0xf7, 0x2c, 0x85, 0xa2, 0x2c, 0x87, 0xa3, 0x27, 0x44, 0x3f, 0x1d, 0x44, 0x10, 0x11, 0x38,
+ 0xc3, 0x19, 0x82, 0x4c, 0x44, 0x4c, 0xa2, 0x7c, 0x84, 0x64, 0x87, 0xa0, 0x46, 0xf7, 0x2c, 0xe5,
+ 0x7c, 0x84, 0x31, 0x31, 0x37, 0x29, 0x4c, 0x29, 0x87, 0x2c, 0x7b, 0x23, 0x39, 0x2a, 0xf5, 0x31,
+ 0x37, 0x47, 0x3f, 0x3e, 0x21, 0x10,
+};
+
+static const uint16_t mf_rlefont_LargeNumbers_glyph_offsets_0[26] = {
+ 0x0000, 0x0003, 0x000e, 0x0018, 0x002f, 0x0065, 0x00a5, 0x00d5,
+ 0x00db, 0x00eb, 0x00fb, 0x0114, 0x0125, 0x012d, 0x0136, 0x013b,
+ 0x014c, 0x016a, 0x0180, 0x0199, 0x01b7, 0x01dc, 0x01f5, 0x021b,
+ 0x0225, 0x024e,
+};
+
+static const struct mf_rlefont_char_range_s mf_rlefont_LargeNumbers_char_ranges[] = {
+ {32, 26, mf_rlefont_LargeNumbers_glyph_offsets_0, mf_rlefont_LargeNumbers_glyph_data_0},
+};
+
+const struct mf_rlefont_s mf_rlefont_LargeNumbers = {
+ {
+ "DejaVu Sans Bold 24",
+ "LargeNumbers",
+ 24, /* width */
+ 23, /* height */
+ 7, /* min x advance */
+ 24, /* max x advance */
+ 0, /* baseline x */
+ 19, /* baseline y */
+ 28, /* line height */
+ 2, /* flags */
+ 32, /* fallback character */
+ &mf_rlefont_character_width,
+ &mf_rlefont_render_character,
+ },
+ 4, /* version */
+ mf_rlefont_LargeNumbers_dictionary_data,
+ mf_rlefont_LargeNumbers_dictionary_offsets,
+ 40, /* rle dict count */
+ 54, /* total dict count */
+ 1, /* char range count */
+ mf_rlefont_LargeNumbers_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_rlefont_LargeNumbers_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_rlefont_LargeNumbers
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_rlefont_LargeNumbers_listentry)
+#endif
+
+
+/* End of automatically generated font definition for LargeNumbers. */
+
diff --git a/src/gdisp/fonts/build_fonts.sh b/src/gdisp/fonts/build_fonts.sh
new file mode 100644
index 00000000..8b434e6e
--- /dev/null
+++ b/src/gdisp/fonts/build_fonts.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+set -x -e
+
+# Path to the mcufont encoder program
+MCUFONT=mcufont
+
+# Character ranges to include in the fonts.
+# Default: ASCII only
+CHARS=32-127
+
+# Number of iterations in optimization
+# Higher numbers compress better
+ITERS=25
+
+function build {
+ infile=`basename $1`
+ outfile=$2
+ fmt=$3
+ size=$4
+ bw=$5
+ ext="${infile##*.}"
+ noext="${infile%.*}"
+ if [ $ext = 'ttf' ]; then
+ dat=$noext$size$bw.dat
+ $MCUFONT import_ttf $1 $size $bw
+ else
+ dat=$noext.dat
+ $MCUFONT import_bdf $1
+ fi
+
+ $MCUFONT filter $dat $CHARS
+
+ if [ $outfile = 'LargeNumbers' ]; then
+ $MCUFONT filter $dat 0x20-0x39
+ fi
+
+ if [ $fmt = 'rlefont' ]; then
+ $MCUFONT rlefont_optimize $dat $ITERS
+ $MCUFONT rlefont_export $dat $outfile.c
+ else
+ $MCUFONT bwfont_export $dat $outfile.c
+ fi
+}
+
+# Commands are of form: build <input_file> <output_file> <output_format> [size] [bw]
+# If bw is not given, builds an antialiased font.
+
+rm -f *.c
+build DejaVuSans.ttf DejaVuSans10 bwfont 10 bw
+build DejaVuSans.ttf DejaVuSans12 bwfont 12 bw
+build DejaVuSans.ttf DejaVuSans16 rlefont 16 bw
+build DejaVuSans.ttf DejaVuSans24 rlefont 24 bw
+build DejaVuSans.ttf DejaVuSans32 rlefont 32 bw
+build DejaVuSans.ttf DejaVuSans12_aa rlefont 12
+build DejaVuSans.ttf DejaVuSans16_aa rlefont 16
+build DejaVuSans.ttf DejaVuSans24_aa rlefont 24
+build DejaVuSans.ttf DejaVuSans32_aa rlefont 32
+build DejaVuSans-Bold.ttf DejaVuSansBold12 bwfont 12 bw
+build DejaVuSans-Bold.ttf DejaVuSansBold12_aa rlefont 12
+build DejaVuSans-Bold.ttf LargeNumbers rlefont 24 bw
+build fixed_10x20.bdf fixed_10x20 bwfont
+build fixed_7x14.bdf fixed_7x14 bwfont
+build fixed_5x8.bdf fixed_5x8 bwfont
+
+echo > fonts.h
+echo '#include <gfx.h>' >> fonts.h
+for file in *.c; do
+ echo >> fonts.h
+ noext="${file%.*}"
+ upper=${noext^^}
+ defname='GDISP_INCLUDE_FONT_'$upper
+ echo '#if defined('$defname') && '$defname >> fonts.h
+ echo '#include "'$file'"' >> fonts.h
+ echo '#endif' >> fonts.h
+done
+
diff --git a/src/gdisp/fonts/fixed_10x20.bdf b/src/gdisp/fonts/fixed_10x20.bdf
new file mode 100644
index 00000000..20134133
--- /dev/null
+++ b/src/gdisp/fonts/fixed_10x20.bdf
@@ -0,0 +1,6279 @@
+STARTFONT 2.1
+FONT -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-15
+SIZE 20 75 75
+FONTBOUNDINGBOX 10 20 0 -4
+
+STARTPROPERTIES 24
+FONTNAME_REGISTRY ""
+FOUNDRY "Misc"
+FAMILY_NAME "Fixed"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 20
+POINT_SIZE 200
+RESOLUTION_X 75
+RESOLUTION_Y 75
+SPACING "C"
+AVERAGE_WIDTH 100
+CHARSET_REGISTRY "ISO8859"
+CHARSET_ENCODING "15"
+X_HEIGHT 8
+CAP_HEIGHT 13
+COPYRIGHT "Public domain font. Share and enjoy."
+_GBDFED_INFO "Edited with gbdfed 1.3."
+WEIGHT 10
+QUAD_WIDTH 10
+DEFAULT_CHAR 0
+FONT_DESCENT 4
+FONT_ASCENT 16
+ENDPROPERTIES
+
+CHARS 223
+
+STARTCHAR defaultchar
+ENCODING 0
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7380
+4080
+4080
+0000
+0000
+4080
+4080
+4080
+0000
+0000
+4080
+4080
+7380
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni25C6
+ENCODING 1
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1E00
+3F00
+7F80
+7F80
+3F00
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR shade
+ENCODING 2
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+5540
+AA80
+ENDCHAR
+
+STARTCHAR uni2409
+ENCODING 3
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+6600
+6600
+6600
+7E00
+6600
+6600
+6600
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240C
+ENCODING 4
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+7C00
+6000
+6000
+7800
+6000
+6000
+6000
+0F80
+0C00
+0C00
+0F00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240D
+ENCODING 5
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+3C00
+6600
+6000
+6000
+6600
+3C00
+0000
+1F00
+1980
+1980
+1F00
+1E00
+1B00
+1980
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240A
+ENCODING 6
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+3000
+3000
+3000
+3000
+3000
+3E00
+0000
+0F80
+0C00
+0C00
+0F00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 7
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1E00
+3300
+3300
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 8
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+7F80
+0C00
+0C00
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni2424
+ENCODING 9
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+6600
+7600
+7E00
+7E00
+6E00
+6600
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni240B
+ENCODING 10
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+6600
+6600
+6600
+3C00
+3C00
+1800
+1800
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF040000
+ENCODING 11
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF030000
+ENCODING 12
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF010000
+ENCODING 13
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FC0
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF020000
+ENCODING 14
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF050000
+ENCODING 15
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FFC0
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR uni23BA
+ENCODING 16
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+FFC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni23BB
+ENCODING 17
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+FFC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF100000
+ENCODING 18
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni23BC
+ENCODING 19
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFC0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uni23BD
+ENCODING 20
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFC0
+ENDCHAR
+
+STARTCHAR SF080000
+ENCODING 21
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0FC0
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF090000
+ENCODING 22
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+F800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF070000
+ENCODING 23
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+FFC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR SF060000
+ENCODING 24
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFC0
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR SF110000
+ENCODING 25
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+0800
+ENDCHAR
+
+STARTCHAR lessequal
+ENCODING 26
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0380
+0E00
+3800
+E000
+3800
+0E00
+0380
+0000
+0000
+FF80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR greaterequal
+ENCODING 27
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+E000
+3800
+0E00
+0380
+0E00
+3800
+E000
+0000
+0000
+FF80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR pi
+ENCODING 28
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F80
+3300
+3300
+3300
+3300
+3300
+3300
+3300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR notequal
+ENCODING 29
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0300
+0300
+0600
+7F80
+0C00
+0C00
+7F80
+1800
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 30
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0F00
+1980
+1980
+1800
+1800
+7E00
+1800
+1800
+1800
+7C00
+56C0
+7380
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 31
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+0E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR space
+ENCODING 32
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3300
+3300
+3300
+1200
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0D80
+0D80
+0D80
+3FC0
+1B00
+1B00
+1B00
+7F80
+3600
+3600
+3600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+3F00
+6D80
+6C00
+6C00
+6C00
+3F00
+0D80
+0D80
+0D80
+6D80
+3F00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR percent
+ENCODING 37
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3980
+6D80
+6F00
+3B00
+0600
+0600
+0C00
+0C00
+1B80
+1EC0
+36C0
+3380
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1C00
+3600
+3600
+3600
+3C00
+1800
+3800
+6C00
+66C0
+6380
+6300
+7780
+3CC0
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0300
+0600
+0C00
+0C00
+1800
+1800
+1800
+1800
+1800
+0C00
+0C00
+0600
+0300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3000
+1800
+0C00
+0C00
+0600
+0600
+0600
+0600
+0600
+0C00
+0C00
+1800
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+1E00
+7F80
+1E00
+3300
+3300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR plus
+ENCODING 43
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0C00
+7F80
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR comma
+ENCODING 44
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR period
+ENCODING 46
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+0E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR slash
+ENCODING 47
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1800
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zero
+ENCODING 48
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1E00
+3300
+3300
+6180
+6180
+6180
+6180
+6180
+3300
+3300
+1E00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR one
+ENCODING 49
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1C00
+3C00
+6C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR two
+ENCODING 50
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+0180
+0180
+0300
+0E00
+1800
+3000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR three
+ENCODING 51
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+0180
+0300
+0E00
+0300
+0180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR four
+ENCODING 52
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0100
+0300
+0700
+0F00
+1B00
+3300
+6300
+6300
+7F80
+0300
+0300
+0300
+0300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR five
+ENCODING 53
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+6000
+6000
+6000
+6000
+6E00
+7300
+0180
+0180
+0180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR six
+ENCODING 54
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6100
+6000
+6000
+6E00
+7300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR seven
+ENCODING 55
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1800
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eight
+ENCODING 56
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+3300
+1E00
+3300
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR nine
+ENCODING 57
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3380
+1D80
+0180
+0180
+2180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR colon
+ENCODING 58
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+0000
+0000
+0000
+0000
+0E00
+0E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+0000
+0000
+0000
+0000
+0E00
+0E00
+1C00
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR less
+ENCODING 60
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0100
+0300
+0600
+0C00
+1800
+3000
+6000
+3000
+1800
+0C00
+0600
+0300
+0100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR equal
+ENCODING 61
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F80
+0000
+0000
+0000
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR greater
+ENCODING 62
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+2000
+3000
+1800
+0C00
+0600
+0300
+0180
+0300
+0600
+0C00
+1800
+3000
+2000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR question
+ENCODING 63
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+0300
+0600
+0C00
+0C00
+0C00
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR at
+ENCODING 64
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6780
+6F80
+6D80
+6D80
+6D80
+6F00
+6600
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR A
+ENCODING 65
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1E00
+3300
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR B
+ENCODING 66
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7C00
+6600
+6300
+6300
+6300
+6600
+7E00
+6300
+6180
+6180
+6180
+6300
+7E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR C
+ENCODING 67
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR D
+ENCODING 68
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7E00
+6300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6300
+7E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR E
+ENCODING 69
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+6000
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR F
+ENCODING 70
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+6000
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+6000
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR G
+ENCODING 71
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6000
+6000
+6000
+6780
+6180
+6180
+6180
+6180
+3380
+1E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR H
+ENCODING 72
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR I
+ENCODING 73
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR J
+ENCODING 74
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0FC0
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+6300
+6300
+3600
+1C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR K
+ENCODING 75
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+6300
+6300
+6600
+6600
+7C00
+6600
+6600
+6300
+6300
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR L
+ENCODING 76
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR M
+ENCODING 77
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+7380
+7380
+7F80
+6D80
+6D80
+6D80
+6D80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR N
+ENCODING 78
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+7180
+7180
+7980
+7980
+6D80
+6D80
+6780
+6780
+6380
+6380
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR O
+ENCODING 79
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR P
+ENCODING 80
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7E00
+6300
+6180
+6180
+6180
+6180
+6300
+7E00
+6000
+6000
+6000
+6000
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Q
+ENCODING 81
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6D80
+6780
+3300
+1F00
+0180
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR R
+ENCODING 82
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7E00
+6300
+6180
+6180
+6180
+6180
+6300
+7E00
+6600
+6300
+6300
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR S
+ENCODING 83
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6000
+6000
+3000
+1E00
+0300
+0180
+0180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR T
+ENCODING 84
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR U
+ENCODING 85
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR V
+ENCODING 86
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+3300
+3300
+3300
+1E00
+1E00
+1E00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR W
+ENCODING 87
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+6180
+6D80
+6D80
+6D80
+6D80
+7380
+7380
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR X
+ENCODING 88
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+3300
+3300
+1E00
+1E00
+0C00
+1E00
+1E00
+3300
+3300
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Y
+ENCODING 89
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6180
+6180
+3300
+3300
+1E00
+1E00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Z
+ENCODING 90
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7F80
+0180
+0180
+0300
+0600
+0600
+0C00
+1800
+1800
+3000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3F00
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3000
+3000
+1800
+1800
+0C00
+0C00
+0600
+0600
+0300
+0300
+0180
+0180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3F00
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1E00
+3300
+6180
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FC0
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR grave
+ENCODING 96
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1800
+0C00
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR a
+ENCODING 97
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F00
+3180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR b
+ENCODING 98
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6000
+6000
+6000
+6000
+6000
+6E00
+7300
+6180
+6180
+6180
+6180
+7300
+6E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR c
+ENCODING 99
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F00
+3180
+6000
+6000
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR d
+ENCODING 100
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0180
+0180
+0180
+0180
+0180
+1D80
+3380
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR e
+ENCODING 101
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1E00
+3300
+6180
+7F80
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR f
+ENCODING 102
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0F00
+1980
+1980
+1800
+1800
+7E00
+1800
+1800
+1800
+1800
+1800
+1800
+1800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR g
+ENCODING 103
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3E80
+6380
+6300
+6300
+6300
+3E00
+6000
+3F00
+6180
+6180
+6180
+3F00
+ENDCHAR
+
+STARTCHAR h
+ENCODING 104
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6000
+6000
+6000
+6000
+6000
+6E00
+7300
+6180
+6180
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR i
+ENCODING 105
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR j
+ENCODING 106
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0180
+0180
+0000
+0780
+0180
+0180
+0180
+0180
+0180
+0180
+0180
+3180
+3180
+3180
+1F00
+ENDCHAR
+
+STARTCHAR k
+ENCODING 107
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+6000
+6000
+6000
+6000
+6000
+6300
+6600
+6C00
+7800
+7C00
+6600
+6300
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR l
+ENCODING 108
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR m
+ENCODING 109
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+5B00
+7F80
+6D80
+6D80
+6D80
+6D80
+6D80
+6D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR n
+ENCODING 110
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6E00
+7300
+6180
+6180
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR o
+ENCODING 111
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR p
+ENCODING 112
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6E00
+7300
+6180
+6180
+6180
+6180
+7300
+6E00
+6000
+6000
+6000
+6000
+ENDCHAR
+
+STARTCHAR q
+ENCODING 113
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1D80
+3380
+6180
+6180
+6180
+6180
+3380
+1D80
+0180
+0180
+0180
+0180
+ENDCHAR
+
+STARTCHAR r
+ENCODING 114
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6F00
+3980
+3000
+3000
+3000
+3000
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR s
+ENCODING 115
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3F00
+6180
+6000
+3F00
+0180
+0180
+6180
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR t
+ENCODING 116
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1800
+1800
+1800
+7E00
+1800
+1800
+1800
+1800
+1800
+1980
+0F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR u
+ENCODING 117
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR v
+ENCODING 118
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6180
+6180
+3300
+3300
+1E00
+1E00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR w
+ENCODING 119
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6180
+6180
+6180
+6D80
+6D80
+6D80
+7F80
+3300
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR x
+ENCODING 120
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6180
+3300
+1E00
+0C00
+0C00
+1E00
+3300
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR y
+ENCODING 121
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0180
+6180
+3300
+1E00
+ENDCHAR
+
+STARTCHAR z
+ENCODING 122
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3F80
+0180
+0300
+0600
+0C00
+1800
+3000
+3F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0780
+0C00
+0C00
+0C00
+0C00
+0C00
+7800
+0C00
+0C00
+0C00
+0C00
+0C00
+0780
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR bar
+ENCODING 124
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7800
+0C00
+0C00
+0C00
+0C00
+0C00
+0780
+0C00
+0C00
+0C00
+0C00
+0C00
+7800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3980
+6D80
+6700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR space
+ENCODING 160
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0000
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR cent
+ENCODING 162
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+0C00
+1E00
+3300
+6100
+6000
+6000
+6100
+3300
+1E00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0F00
+1980
+1980
+1800
+1800
+7E00
+1800
+1800
+1800
+7C00
+56C0
+7380
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Euro
+ENCODING 164
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0F00
+1980
+3000
+3000
+7F00
+3000
+7E00
+3000
+3000
+1980
+0F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR yen
+ENCODING 165
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4080
+6180
+3300
+1E00
+3F00
+0C00
+3F00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Scaron
+ENCODING 166
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+1E00
+0C00
+0000
+1E00
+3300
+6180
+6000
+3000
+1E00
+0300
+0180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR section
+ENCODING 167
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6300
+3000
+3C00
+6600
+3300
+1980
+0F00
+0300
+3180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR scaron
+ENCODING 168
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3300
+1E00
+0C00
+0000
+3F00
+6180
+6000
+3F00
+0180
+0180
+6180
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E00
+3300
+6180
+5E80
+5280
+5080
+5280
+5E80
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1F00
+2180
+0180
+3F80
+6180
+6180
+3E80
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0480
+0D80
+1B00
+3600
+6C00
+D800
+6C00
+3600
+1B00
+0D80
+0480
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7F80
+7F80
+0180
+0180
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR registered
+ENCODING 174
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+1E00
+3300
+6180
+5E80
+5280
+5E80
+5480
+5680
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR macron
+ENCODING 175
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 176
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+1E00
+3300
+3300
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+7F80
+0C00
+0C00
+0000
+7F80
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1C00
+3600
+0600
+0C00
+1800
+3000
+3E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1C00
+3600
+0600
+0C00
+0600
+3600
+1C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Zcaron
+ENCODING 180
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+1E00
+0C00
+0000
+7F80
+0180
+0300
+0600
+0600
+0C00
+1800
+1800
+3000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR mu
+ENCODING 181
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6300
+6300
+6300
+6300
+6300
+7700
+7D00
+6000
+6000
+6000
+0000
+ENDCHAR
+
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3F80
+7F80
+7D80
+7D80
+7D80
+3D80
+0D80
+0D80
+0D80
+0D80
+0D80
+0D80
+0D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0E00
+0E00
+0E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR zcaron
+ENCODING 184
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3300
+1E00
+0C00
+0000
+3F80
+0180
+0300
+0600
+0C00
+1800
+3000
+3F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1800
+3800
+1800
+1800
+1800
+1800
+3C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1C00
+3600
+6300
+6300
+6300
+3600
+1C00
+0000
+7F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+4800
+6C00
+3600
+1B00
+0D80
+06C0
+0D80
+1B00
+3600
+6C00
+4800
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR OE
+ENCODING 188
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1F80
+3600
+6600
+6600
+6600
+6600
+6780
+6600
+6600
+6600
+6600
+3600
+1F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oe
+ENCODING 189
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3F00
+6D80
+6D80
+6F80
+6C00
+6C00
+6D80
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ydieresis
+ENCODING 190
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+6180
+6180
+3300
+3300
+1E00
+1E00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0C00
+0C00
+0000
+0C00
+0C00
+0C00
+1800
+3000
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3000
+1800
+0C00
+0000
+0C00
+1E00
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0300
+0600
+0C00
+0000
+0C00
+1E00
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0C00
+1E00
+3300
+0000
+0C00
+1E00
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1900
+3F00
+2600
+0000
+0C00
+1E00
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+0C00
+1E00
+3300
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+1E00
+3300
+3300
+1E00
+0000
+0C00
+1E00
+3300
+6180
+6180
+6180
+7F80
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR AE
+ENCODING 198
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0F80
+1E00
+3600
+3600
+6600
+6600
+7F80
+6600
+6600
+6600
+6600
+6600
+6780
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+6180
+6000
+6000
+6000
+6000
+6000
+6000
+6000
+6180
+3300
+1E00
+0C00
+0600
+3600
+1C00
+ENDCHAR
+
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3000
+1800
+0C00
+0000
+7F80
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0600
+0C00
+1800
+0000
+7F80
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0C00
+1E00
+3300
+0000
+7F80
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+0000
+7F80
+6000
+6000
+6000
+6000
+7E00
+6000
+6000
+6000
+6000
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1800
+0C00
+0600
+0000
+3F00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0600
+0C00
+1800
+0000
+3F00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0C00
+1E00
+3300
+0000
+3F00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+3F00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+3F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+7E00
+6300
+6180
+6180
+6180
+6180
+F980
+6180
+6180
+6180
+6180
+6300
+7E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1900
+3F00
+2600
+0000
+6180
+7180
+7980
+7980
+6D80
+6D80
+6780
+6780
+6380
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1800
+0C00
+0600
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0600
+0C00
+1800
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0C00
+1E00
+3300
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1900
+3F00
+2600
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+4100
+6300
+3600
+1C00
+1C00
+3600
+6300
+4100
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0080
+1F00
+3300
+6380
+6380
+6580
+6580
+6580
+6980
+6980
+6980
+7180
+3300
+3E00
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+1800
+0C00
+0600
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0600
+0C00
+1800
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0C00
+1E00
+3300
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+3300
+3300
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0600
+0C00
+1800
+0000
+6180
+6180
+3300
+3300
+1E00
+1E00
+0C00
+0C00
+0C00
+0C00
+0C00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3000
+3000
+3000
+3F00
+3180
+3180
+3180
+3180
+3180
+3F00
+3000
+3000
+3000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0E00
+1B00
+3180
+3180
+3300
+7600
+3600
+3300
+3180
+3180
+3180
+3300
+3600
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+1800
+0C00
+0600
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0C00
+1800
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1E00
+3300
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+1900
+3F00
+2600
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR aring
+ENCODING 229
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+1E00
+3300
+3300
+1E00
+0000
+3F00
+6180
+0180
+3F80
+6180
+6180
+6180
+3E80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ae
+ENCODING 230
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3B00
+4D80
+0D80
+0F00
+3C00
+6C00
+6C80
+3700
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F00
+3180
+6000
+6000
+6000
+6000
+3180
+1F00
+0C00
+0600
+3600
+1C00
+ENDCHAR
+
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3000
+1800
+0C00
+0000
+1E00
+3300
+6180
+7F80
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+1E00
+3300
+6180
+7F80
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1E00
+3300
+0000
+1E00
+3300
+6180
+7F80
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+1E00
+3300
+6180
+7F80
+6000
+6000
+3180
+1F00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3000
+1800
+0C00
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0C00
+1800
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1E00
+3300
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+7F80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR eth
+ENCODING 240
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+4400
+6C00
+3800
+3800
+6C00
+4600
+1F00
+3380
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+1900
+3F00
+2600
+0000
+6E00
+7300
+6180
+6180
+6180
+6180
+6180
+6180
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+3000
+1800
+0C00
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1E00
+3300
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+1900
+3F00
+2600
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+1E00
+3300
+6180
+6180
+6180
+6180
+3300
+1E00
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR divide
+ENCODING 247
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0C00
+0C00
+0000
+0000
+7F80
+7F80
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0080
+1F00
+3300
+6580
+6580
+6980
+6980
+3300
+3E00
+4000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+1800
+0C00
+0600
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0C00
+1E00
+3300
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0000
+0000
+0000
+0000
+ENDCHAR
+
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0C00
+1800
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0180
+6180
+3300
+1E00
+ENDCHAR
+
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+3000
+3000
+3000
+3000
+3000
+3000
+3E00
+3300
+3180
+3180
+3180
+3300
+3E00
+3000
+3000
+3000
+3000
+ENDCHAR
+
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 480 0
+DWIDTH 10 0
+BBX 10 20 0 -4
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3300
+3300
+0000
+6180
+6180
+6180
+6180
+6180
+6180
+3380
+1D80
+0180
+6180
+3300
+1E00
+ENDCHAR
+
+ENDFONT
diff --git a/src/gdisp/fonts/fixed_10x20.c b/src/gdisp/fonts/fixed_10x20.c
new file mode 100644
index 00000000..6c6fc416
--- /dev/null
+++ b/src/gdisp/fonts/fixed_10x20.c
@@ -0,0 +1,227 @@
+
+
+/* Start of automatically generated font definition for fixed_10x20. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_fixed_10x20_glyph_data_0[2193] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1b, 0x00, 0xff, 0x1b, 0x00, 0x00,
+ 0x00, 0x00, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
+ 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x0f, 0x00, 0xf0, 0x0f, 0x00, 0xfe, 0x01, 0x00,
+ 0x1e, 0x0f, 0x00, 0xf0, 0x0f, 0x00, 0xfe, 0x01, 0x00, 0x1e, 0x01, 0x00, 0x10, 0x00, 0x00, 0x3c,
+ 0x04, 0x00, 0x7e, 0x0c, 0x00, 0x42, 0x08, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x42, 0x08,
+ 0x00, 0xc6, 0x0f, 0x00, 0x84, 0x07, 0x00, 0x0c, 0x00, 0x00, 0x1e, 0x18, 0x00, 0x12, 0x1e, 0x00,
+ 0x9e, 0x07, 0x00, 0xec, 0x0d, 0x00, 0x78, 0x1e, 0x00, 0x1e, 0x12, 0x00, 0x06, 0x1e, 0x00, 0x00,
+ 0x0c, 0x00, 0x80, 0x0f, 0x00, 0xde, 0x1f, 0x00, 0x7f, 0x18, 0x00, 0xf1, 0x10, 0x00, 0x9f, 0x19,
+ 0x00, 0x0e, 0x0f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xf0, 0x01, 0x00, 0xfc, 0x07, 0x00, 0x0e, 0x0e, 0x00, 0x03, 0x18, 0x00, 0x01, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x03, 0x18, 0x00, 0x0e, 0x0e, 0x00, 0xfc, 0x07, 0x00,
+ 0xf0, 0x01, 0x00, 0x40, 0x00, 0x00, 0x58, 0x03, 0x00, 0xf8, 0x03, 0x00, 0xe0, 0x00, 0x00, 0xe0,
+ 0x00, 0x00, 0xf8, 0x03, 0x00, 0x58, 0x03, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00,
+ 0x00, 0x40, 0x00, 0x00, 0xf8, 0x03, 0x00, 0xf8, 0x03, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x38, 0x00, 0x00,
+ 0x38, 0x00, 0x00, 0x18, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00,
+ 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x1c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x07, 0x00, 0xe0, 0x01, 0x00, 0x78, 0x00,
+ 0x00, 0x1e, 0x00, 0x00, 0x06, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xfc, 0x07, 0x00, 0x0e, 0x0e, 0x00,
+ 0x03, 0x18, 0x00, 0x03, 0x18, 0x00, 0x0e, 0x0e, 0x00, 0xfc, 0x07, 0x00, 0xf0, 0x01, 0x00, 0x08,
+ 0x10, 0x00, 0x0c, 0x10, 0x00, 0x06, 0x10, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x0c, 0x1c, 0x00, 0x0e, 0x1e, 0x00, 0x03, 0x13, 0x00,
+ 0x81, 0x11, 0x00, 0x81, 0x10, 0x00, 0xc3, 0x10, 0x00, 0x7e, 0x10, 0x00, 0x3c, 0x10, 0x00, 0x0c,
+ 0x06, 0x00, 0x0e, 0x0e, 0x00, 0x03, 0x18, 0x00, 0x41, 0x10, 0x00, 0x41, 0x10, 0x00, 0xe3, 0x18,
+ 0x00, 0xbe, 0x0f, 0x00, 0x1c, 0x07, 0x00, 0xc0, 0x01, 0x00, 0xe0, 0x01, 0x00, 0x30, 0x01, 0x00,
+ 0x18, 0x01, 0x00, 0x0c, 0x01, 0x00, 0xfe, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x01, 0x00, 0x7f,
+ 0x04, 0x00, 0x7f, 0x0c, 0x00, 0x41, 0x18, 0x00, 0x21, 0x10, 0x00, 0x21, 0x10, 0x00, 0x61, 0x18,
+ 0x00, 0xc1, 0x0f, 0x00, 0x81, 0x07, 0x00, 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x43, 0x18, 0x00,
+ 0x21, 0x10, 0x00, 0x21, 0x10, 0x00, 0x63, 0x18, 0x00, 0xc6, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x01,
+ 0x00, 0x00, 0x01, 0x18, 0x00, 0x01, 0x1e, 0x00, 0x81, 0x07, 0x00, 0xe1, 0x01, 0x00, 0x79, 0x00,
+ 0x00, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1c, 0x07, 0x00, 0xbe, 0x0f, 0x00, 0xe3, 0x18, 0x00,
+ 0x41, 0x10, 0x00, 0x41, 0x10, 0x00, 0xe3, 0x18, 0x00, 0xbe, 0x0f, 0x00, 0x1c, 0x07, 0x00, 0x3c,
+ 0x00, 0x00, 0x7e, 0x0c, 0x00, 0xc3, 0x18, 0x00, 0x81, 0x10, 0x00, 0x81, 0x10, 0x00, 0x43, 0x18,
+ 0x00, 0xfe, 0x0f, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x00, 0x60, 0x38, 0x00, 0x60, 0x38, 0x00, 0x60, 0x18, 0x00, 0x40, 0x00, 0x00, 0xe0, 0x00,
+ 0x00, 0xb0, 0x01, 0x00, 0x18, 0x03, 0x00, 0x0c, 0x06, 0x00, 0x06, 0x0c, 0x00, 0x03, 0x18, 0x00,
+ 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x10,
+ 0x02, 0x00, 0x10, 0x02, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x18, 0x00, 0x06, 0x0c,
+ 0x00, 0x0c, 0x06, 0x00, 0x18, 0x03, 0x00, 0xb0, 0x01, 0x00, 0xe0, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x1c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x03, 0x00, 0x00, 0x81, 0x1b, 0x00, 0xc1, 0x1b, 0x00, 0x63,
+ 0x00, 0x00, 0x3e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x03, 0x18,
+ 0x00, 0xf1, 0x11, 0x00, 0xf9, 0x13, 0x00, 0x1b, 0x13, 0x00, 0xfe, 0x19, 0x00, 0xfc, 0x08, 0x00,
+ 0xf0, 0x1f, 0x00, 0xfc, 0x1f, 0x00, 0x8e, 0x00, 0x00, 0x83, 0x00, 0x00, 0x83, 0x00, 0x00, 0x8e,
+ 0x00, 0x00, 0xfc, 0x1f, 0x00, 0xf0, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x41, 0x10,
+ 0x00, 0x41, 0x10, 0x00, 0x63, 0x10, 0x00, 0xfe, 0x18, 0x00, 0x9c, 0x0f, 0x00, 0x00, 0x07, 0x00,
+ 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x03, 0x18, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x03,
+ 0x18, 0x00, 0x06, 0x0c, 0x00, 0x04, 0x04, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x01, 0x10,
+ 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x03, 0x18, 0x00, 0xfe, 0x0f, 0x00, 0xfc, 0x07, 0x00,
+ 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x41, 0x10, 0x00, 0x41, 0x10, 0x00, 0x41, 0x10, 0x00, 0x41,
+ 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x41, 0x00,
+ 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x41, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x03, 0x18, 0x00, 0x01, 0x10, 0x00, 0x41, 0x10, 0x00, 0x43,
+ 0x18, 0x00, 0xc6, 0x0f, 0x00, 0xc4, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x40, 0x00,
+ 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00,
+ 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x01,
+ 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x18,
+ 0x00, 0x01, 0x10, 0x00, 0x01, 0x18, 0x00, 0xff, 0x0f, 0x00, 0xff, 0x07, 0x00, 0x01, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0xf0,
+ 0x01, 0x00, 0xbc, 0x07, 0x00, 0x0f, 0x1e, 0x00, 0x03, 0x18, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x10, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x1c, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xf0,
+ 0x01, 0x00, 0x1c, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x1e, 0x00, 0x00, 0x78, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x80, 0x07, 0x00, 0xff, 0x1f, 0x00,
+ 0xff, 0x1f, 0x00, 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x03, 0x18, 0x00, 0x01, 0x10, 0x00, 0x01,
+ 0x10, 0x00, 0x03, 0x18, 0x00, 0xfe, 0x0f, 0x00, 0xfc, 0x07, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x81, 0x00, 0x00, 0x81, 0x00, 0x00, 0x81, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x7e, 0x00, 0x00,
+ 0x3c, 0x00, 0x00, 0xfc, 0x07, 0x00, 0xfe, 0x0f, 0x00, 0x03, 0x18, 0x00, 0x01, 0x12, 0x00, 0x01,
+ 0x16, 0x00, 0x03, 0x1c, 0x00, 0xfe, 0x3f, 0x00, 0xfc, 0x27, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x81, 0x00, 0x00, 0x81, 0x00, 0x00, 0x81, 0x01, 0x00, 0xc3, 0x07, 0x00, 0x7e, 0x1e, 0x00,
+ 0x3c, 0x18, 0x00, 0x1c, 0x04, 0x00, 0x3e, 0x0c, 0x00, 0x63, 0x18, 0x00, 0x41, 0x10, 0x00, 0x41,
+ 0x10, 0x00, 0xc3, 0x18, 0x00, 0x86, 0x0f, 0x00, 0x04, 0x07, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x10, 0x00, 0x00, 0x18, 0x00, 0xff, 0x0f, 0x00, 0xff, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x7f, 0x00,
+ 0x00, 0xf0, 0x03, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x1f, 0x00, 0xf0, 0x03, 0x00, 0x7f, 0x00, 0x00,
+ 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x06, 0x00, 0xe0, 0x01, 0x00, 0xe0,
+ 0x01, 0x00, 0x00, 0x06, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x03, 0x18, 0x00, 0x0f, 0x1e,
+ 0x00, 0xbc, 0x07, 0x00, 0xf0, 0x01, 0x00, 0xf0, 0x01, 0x00, 0xbc, 0x07, 0x00, 0x0f, 0x1e, 0x00,
+ 0x03, 0x18, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x3c, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0xf0,
+ 0x1f, 0x00, 0x3c, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x1c, 0x00, 0x01, 0x1e,
+ 0x00, 0x81, 0x13, 0x00, 0xc1, 0x11, 0x00, 0x71, 0x10, 0x00, 0x39, 0x10, 0x00, 0x0f, 0x10, 0x00,
+ 0x07, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x01, 0x10, 0x00, 0x01,
+ 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x1e, 0x00,
+ 0x00, 0x78, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x18, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0xff,
+ 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x08, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x40, 0x1f, 0x00,
+ 0x60, 0x11, 0x00, 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0xe0, 0x0f, 0x00, 0xc0,
+ 0x1f, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x40, 0x08, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10,
+ 0x00, 0x60, 0x18, 0x00, 0xc0, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x80, 0x07, 0x00, 0xc0, 0x0f, 0x00,
+ 0x60, 0x18, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x60, 0x18, 0x00, 0x40,
+ 0x08, 0x00, 0x80, 0x07, 0x00, 0xc0, 0x0f, 0x00, 0x60, 0x18, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10,
+ 0x00, 0x40, 0x08, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x80, 0x07, 0x00, 0xc0, 0x0f, 0x00,
+ 0x60, 0x19, 0x00, 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0x60, 0x11, 0x00, 0xc0, 0x19, 0x00, 0x80,
+ 0x09, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x21, 0x00,
+ 0x00, 0x21, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0xc0, 0xeb, 0x00, 0xe0, 0xff, 0x01,
+ 0x20, 0x14, 0x01, 0x20, 0x14, 0x01, 0x20, 0x14, 0x01, 0xe0, 0x17, 0x01, 0xc0, 0xf3, 0x01, 0x60,
+ 0xe0, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x60, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x10, 0x00, 0x20, 0x10, 0x00,
+ 0x20, 0x10, 0x00, 0xec, 0x1f, 0x00, 0xec, 0x1f, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x01, 0x20, 0x00,
+ 0x01, 0x20, 0x00, 0x01, 0xec, 0xff, 0x01, 0xec, 0xff, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f, 0x00,
+ 0x00, 0x03, 0x00, 0x80, 0x03, 0x00, 0xc0, 0x06, 0x00, 0x60, 0x0c, 0x00, 0x20, 0x18, 0x00, 0x00,
+ 0x10, 0x00, 0x00, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0xe0, 0x1f, 0x00, 0xc0, 0x1f, 0x00,
+ 0x60, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xc0, 0x1f, 0x00, 0x60, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xc0,
+ 0x1f, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1f, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x60, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x07, 0x00, 0xc0, 0x0f, 0x00,
+ 0x60, 0x18, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x60, 0x18, 0x00, 0xc0, 0x0f, 0x00, 0x80,
+ 0x07, 0x00, 0xe0, 0xff, 0x01, 0xe0, 0xff, 0x01, 0x40, 0x08, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10,
+ 0x00, 0x60, 0x18, 0x00, 0xc0, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x80, 0x07, 0x00, 0xc0, 0x0f, 0x00,
+ 0x60, 0x18, 0x00, 0x20, 0x10, 0x00, 0x20, 0x10, 0x00, 0x40, 0x08, 0x00, 0xe0, 0xff, 0x01, 0xe0,
+ 0xff, 0x01, 0x20, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xc0, 0x1f, 0x00, 0x60, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x20, 0x00, 0x00, 0x60, 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0, 0x08, 0x00, 0xe0, 0x19, 0x00,
+ 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0x20, 0x11, 0x00, 0x60, 0x1f, 0x00, 0x40,
+ 0x0e, 0x00, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0xfc, 0x1f, 0x00, 0x20, 0x10,
+ 0x00, 0x20, 0x10, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x00, 0xe0, 0x07, 0x00, 0xe0, 0x0f, 0x00,
+ 0x00, 0x18, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0xe0, 0x1f, 0x00, 0xe0,
+ 0x1f, 0x00, 0x60, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1e,
+ 0x00, 0x80, 0x07, 0x00, 0xe0, 0x01, 0x00, 0x60, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0xe0, 0x1f, 0x00,
+ 0x00, 0x18, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x18, 0x00, 0xe0, 0x1f, 0x00, 0xe0,
+ 0x0f, 0x00, 0x20, 0x10, 0x00, 0x60, 0x18, 0x00, 0xc0, 0x0c, 0x00, 0x80, 0x07, 0x00, 0x80, 0x07,
+ 0x00, 0xc0, 0x0c, 0x00, 0x60, 0x18, 0x00, 0x20, 0x10, 0x00, 0xe0, 0x47, 0x00, 0xe0, 0xcf, 0x00,
+ 0x00, 0x98, 0x01, 0x00, 0x10, 0x01, 0x00, 0x10, 0x01, 0x00, 0x88, 0x01, 0xe0, 0xff, 0x00, 0xe0,
+ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x18, 0x00, 0x20, 0x1c, 0x00, 0x20, 0x16, 0x00, 0x20, 0x13,
+ 0x00, 0xa0, 0x11, 0x00, 0xe0, 0x10, 0x00, 0x60, 0x10, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x40, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0xbf, 0x1f, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01,
+ 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0xff, 0x1f,
+ 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0x10, 0x00, 0xbf, 0x1f, 0x00, 0xfe, 0x0f, 0x00,
+ 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x00,
+ 0x00,
+};
+
+static const uint16_t mf_bwfont_fixed_10x20_glyph_offsets_0[96] = {
+ 0x0000, 0x0000, 0x0005, 0x000c, 0x0015, 0x001d, 0x0026, 0x002f,
+ 0x0034, 0x003b, 0x0041, 0x0049, 0x0051, 0x0057, 0x005f, 0x0065,
+ 0x006d, 0x0075, 0x007d, 0x0085, 0x008d, 0x0095, 0x009d, 0x00a5,
+ 0x00ad, 0x00b5, 0x00bd, 0x00c3, 0x00c9, 0x00d0, 0x00d8, 0x00e0,
+ 0x00e8, 0x00f0, 0x00f8, 0x0100, 0x0108, 0x0110, 0x0118, 0x0120,
+ 0x0128, 0x0130, 0x0138, 0x0141, 0x0149, 0x0151, 0x0159, 0x0161,
+ 0x0169, 0x0171, 0x0179, 0x0181, 0x0189, 0x0191, 0x0199, 0x01a1,
+ 0x01a9, 0x01b1, 0x01b9, 0x01c1, 0x01c8, 0x01d0, 0x01d7, 0x01df,
+ 0x01e8, 0x01ee, 0x01f6, 0x01fe, 0x0206, 0x020e, 0x0216, 0x021e,
+ 0x0226, 0x022e, 0x0236, 0x023e, 0x0246, 0x024e, 0x0256, 0x025e,
+ 0x0266, 0x026e, 0x0276, 0x027e, 0x0286, 0x028e, 0x0296, 0x029e,
+ 0x02a6, 0x02ae, 0x02b6, 0x02be, 0x02c6, 0x02cb, 0x02d3, 0x02db,
+};
+
+static const uint8_t mf_bwfont_fixed_10x20_glyph_widths_0[95] = {
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+ 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_fixed_10x20_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 3, /* height in bytes */
+ 17, /* height in pixels */
+ 0, /* width */
+ mf_bwfont_fixed_10x20_glyph_widths_0, /* glyph widths */
+ mf_bwfont_fixed_10x20_glyph_offsets_0, /* glyph offsets */
+ mf_bwfont_fixed_10x20_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_fixed_10x20 = {
+ {
+ "-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-15",
+ "fixed_10x20",
+ 9, /* width */
+ 17, /* height */
+ 10, /* min x advance */
+ 10, /* max x advance */
+ -1, /* baseline x */
+ 13, /* baseline y */
+ 20, /* line height */
+ 3, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_fixed_10x20_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_fixed_10x20_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_fixed_10x20
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_fixed_10x20_listentry)
+#endif
+
+
+/* End of automatically generated font definition for fixed_10x20. */
+
diff --git a/src/gdisp/fonts/fixed_5x8.bdf b/src/gdisp/fonts/fixed_5x8.bdf
new file mode 100644
index 00000000..a44d3bfa
--- /dev/null
+++ b/src/gdisp/fonts/fixed_5x8.bdf
@@ -0,0 +1,3602 @@
+STARTFONT 2.1
+FONT -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-15
+SIZE 8 75 75
+FONTBOUNDINGBOX 5 8 0 -1
+
+STARTPROPERTIES 23
+FONTNAME_REGISTRY ""
+FOUNDRY "Misc"
+FAMILY_NAME "Fixed"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 8
+POINT_SIZE 80
+RESOLUTION_X 75
+RESOLUTION_Y 75
+SPACING "C"
+AVERAGE_WIDTH 50
+CHARSET_REGISTRY "ISO8859"
+CHARSET_ENCODING "15"
+COPYRIGHT "Public domain font. Share and enjoy."
+CAP_HEIGHT 6
+X_HEIGHT 4
+WEIGHT 10
+QUAD_WIDTH 5
+DEFAULT_CHAR 0
+FONT_DESCENT 1
+FONT_ASCENT 7
+ENDPROPERTIES
+
+CHARS 223
+
+STARTCHAR defaultchar
+ENCODING 0
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+A0
+10
+80
+10
+80
+50
+00
+ENDCHAR
+
+STARTCHAR uni25C6
+ENCODING 1
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+70
+F8
+70
+20
+00
+ENDCHAR
+
+STARTCHAR shade
+ENCODING 2
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A8
+50
+A8
+50
+A8
+50
+A8
+ENDCHAR
+
+STARTCHAR uni2409
+ENCODING 3
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+A0
+A0
+E0
+A0
+A0
+70
+20
+20
+ENDCHAR
+
+STARTCHAR uni240C
+ENCODING 4
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+E0
+80
+C0
+B8
+A0
+30
+20
+20
+ENDCHAR
+
+STARTCHAR uni240D
+ENCODING 5
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+80
+80
+60
+30
+28
+30
+28
+ENDCHAR
+
+STARTCHAR uni240A
+ENCODING 6
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+80
+80
+80
+E0
+38
+20
+30
+20
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 7
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+20
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 8
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+70
+20
+00
+70
+00
+ENDCHAR
+
+STARTCHAR uni2424
+ENCODING 9
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+D0
+B0
+90
+20
+20
+20
+38
+ENDCHAR
+
+STARTCHAR uni240B
+ENCODING 10
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+A0
+A0
+A0
+40
+38
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF040000
+ENCODING 11
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+E0
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF030000
+ENCODING 12
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+E0
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR SF010000
+ENCODING 13
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+38
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR SF020000
+ENCODING 14
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+38
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF050000
+ENCODING 15
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+F8
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR uni23BA
+ENCODING 16
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+F8
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR uni23BB
+ENCODING 17
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F8
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF100000
+ENCODING 18
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F8
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR uni23BC
+ENCODING 19
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+F8
+00
+ENDCHAR
+
+STARTCHAR uni23BD
+ENCODING 20
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+F8
+ENDCHAR
+
+STARTCHAR SF080000
+ENCODING 21
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+38
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR SF090000
+ENCODING 22
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+E0
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR SF070000
+ENCODING 23
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+F8
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF060000
+ENCODING 24
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F8
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR SF110000
+ENCODING 25
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+20
+20
+20
+20
+20
+20
+20
+ENDCHAR
+
+STARTCHAR lessequal
+ENCODING 26
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+10
+20
+40
+20
+10
+70
+00
+ENDCHAR
+
+STARTCHAR greaterequal
+ENCODING 27
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+20
+10
+20
+40
+70
+00
+ENDCHAR
+
+STARTCHAR pi
+ENCODING 28
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F8
+50
+50
+50
+00
+ENDCHAR
+
+STARTCHAR notequal
+ENCODING 29
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+F0
+60
+F0
+40
+00
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 30
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+E0
+40
+50
+A0
+00
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 31
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+20
+00
+00
+00
+ENDCHAR
+
+STARTCHAR space
+ENCODING 32
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+20
+20
+20
+00
+20
+00
+ENDCHAR
+
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+50
+50
+50
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+50
+F8
+50
+F8
+50
+50
+00
+ENDCHAR
+
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+70
+A0
+70
+28
+70
+20
+00
+ENDCHAR
+
+STARTCHAR percent
+ENCODING 37
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+50
+20
+50
+10
+00
+00
+ENDCHAR
+
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+A0
+A0
+40
+A0
+A0
+50
+00
+ENDCHAR
+
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+20
+20
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+40
+40
+40
+40
+20
+00
+ENDCHAR
+
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+20
+20
+20
+20
+40
+00
+ENDCHAR
+
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+90
+60
+F0
+60
+90
+00
+ENDCHAR
+
+STARTCHAR plus
+ENCODING 43
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+20
+F8
+20
+20
+00
+ENDCHAR
+
+STARTCHAR comma
+ENCODING 44
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+30
+20
+40
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+F0
+00
+00
+00
+ENDCHAR
+
+STARTCHAR period
+ENCODING 46
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+20
+70
+20
+ENDCHAR
+
+STARTCHAR slash
+ENCODING 47
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+10
+10
+20
+40
+80
+80
+00
+ENDCHAR
+
+STARTCHAR zero
+ENCODING 48
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+50
+50
+50
+20
+00
+ENDCHAR
+
+STARTCHAR one
+ENCODING 49
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+60
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR two
+ENCODING 50
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+10
+60
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR three
+ENCODING 51
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+20
+60
+10
+90
+60
+00
+ENDCHAR
+
+STARTCHAR four
+ENCODING 52
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+60
+A0
+F0
+20
+20
+00
+ENDCHAR
+
+STARTCHAR five
+ENCODING 53
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+80
+E0
+10
+90
+60
+00
+ENDCHAR
+
+STARTCHAR six
+ENCODING 54
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+80
+E0
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR seven
+ENCODING 55
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+10
+20
+20
+40
+40
+00
+ENDCHAR
+
+STARTCHAR eight
+ENCODING 56
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR nine
+ENCODING 57
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+90
+70
+10
+60
+00
+ENDCHAR
+
+STARTCHAR colon
+ENCODING 58
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+60
+60
+00
+60
+60
+00
+ENDCHAR
+
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+30
+30
+00
+30
+20
+40
+ENDCHAR
+
+STARTCHAR less
+ENCODING 60
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+10
+20
+40
+40
+20
+10
+00
+ENDCHAR
+
+STARTCHAR equal
+ENCODING 61
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F0
+00
+F0
+00
+00
+ENDCHAR
+
+STARTCHAR greater
+ENCODING 62
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+20
+10
+10
+20
+40
+00
+ENDCHAR
+
+STARTCHAR question
+ENCODING 63
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+10
+20
+00
+20
+00
+ENDCHAR
+
+STARTCHAR at
+ENCODING 64
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+30
+48
+98
+A8
+A8
+90
+40
+30
+ENDCHAR
+
+STARTCHAR A
+ENCODING 65
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR B
+ENCODING 66
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+E0
+90
+E0
+90
+90
+E0
+00
+ENDCHAR
+
+STARTCHAR C
+ENCODING 67
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+80
+80
+90
+60
+00
+ENDCHAR
+
+STARTCHAR D
+ENCODING 68
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+E0
+90
+90
+90
+90
+E0
+00
+ENDCHAR
+
+STARTCHAR E
+ENCODING 69
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+80
+E0
+80
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR F
+ENCODING 70
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+80
+E0
+80
+80
+80
+00
+ENDCHAR
+
+STARTCHAR G
+ENCODING 71
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+80
+B0
+90
+60
+00
+ENDCHAR
+
+STARTCHAR H
+ENCODING 72
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+90
+F0
+90
+90
+90
+00
+ENDCHAR
+
+STARTCHAR I
+ENCODING 73
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+20
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR J
+ENCODING 74
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+20
+20
+20
+A0
+40
+00
+ENDCHAR
+
+STARTCHAR K
+ENCODING 75
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+A0
+C0
+A0
+A0
+90
+00
+ENDCHAR
+
+STARTCHAR L
+ENCODING 76
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+80
+80
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR M
+ENCODING 77
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+F0
+F0
+90
+90
+90
+00
+ENDCHAR
+
+STARTCHAR N
+ENCODING 78
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+D0
+F0
+B0
+B0
+90
+00
+ENDCHAR
+
+STARTCHAR O
+ENCODING 79
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR P
+ENCODING 80
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+E0
+90
+90
+E0
+80
+80
+00
+ENDCHAR
+
+STARTCHAR Q
+ENCODING 81
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+90
+D0
+B0
+60
+10
+ENDCHAR
+
+STARTCHAR R
+ENCODING 82
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+E0
+90
+90
+E0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR S
+ENCODING 83
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+40
+20
+90
+60
+00
+ENDCHAR
+
+STARTCHAR T
+ENCODING 84
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+20
+20
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR U
+ENCODING 85
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR V
+ENCODING 86
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+90
+90
+90
+60
+60
+00
+ENDCHAR
+
+STARTCHAR W
+ENCODING 87
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+90
+90
+F0
+F0
+90
+00
+ENDCHAR
+
+STARTCHAR X
+ENCODING 88
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+90
+60
+60
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Y
+ENCODING 89
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+88
+88
+50
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR Z
+ENCODING 90
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+F0
+10
+20
+40
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+40
+40
+40
+40
+70
+00
+ENDCHAR
+
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+40
+20
+10
+10
+00
+ENDCHAR
+
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+10
+10
+10
+10
+70
+00
+ENDCHAR
+
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+F0
+ENDCHAR
+
+STARTCHAR grave
+ENCODING 96
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+20
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR a
+ENCODING 97
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR b
+ENCODING 98
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+E0
+90
+90
+E0
+00
+ENDCHAR
+
+STARTCHAR c
+ENCODING 99
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+30
+40
+40
+30
+00
+ENDCHAR
+
+STARTCHAR d
+ENCODING 100
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+10
+10
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR e
+ENCODING 101
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+60
+B0
+C0
+60
+00
+ENDCHAR
+
+STARTCHAR f
+ENCODING 102
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+40
+E0
+40
+40
+00
+ENDCHAR
+
+STARTCHAR g
+ENCODING 103
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+60
+90
+70
+10
+60
+ENDCHAR
+
+STARTCHAR h
+ENCODING 104
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+E0
+90
+90
+90
+00
+ENDCHAR
+
+STARTCHAR i
+ENCODING 105
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+00
+60
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR j
+ENCODING 106
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+10
+00
+10
+10
+10
+50
+20
+ENDCHAR
+
+STARTCHAR k
+ENCODING 107
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+90
+E0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR l
+ENCODING 108
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+20
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR m
+ENCODING 109
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+D0
+A8
+A8
+A8
+00
+ENDCHAR
+
+STARTCHAR n
+ENCODING 110
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+E0
+90
+90
+90
+00
+ENDCHAR
+
+STARTCHAR o
+ENCODING 111
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR p
+ENCODING 112
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+E0
+90
+E0
+80
+80
+ENDCHAR
+
+STARTCHAR q
+ENCODING 113
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+70
+90
+70
+10
+10
+ENDCHAR
+
+STARTCHAR r
+ENCODING 114
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+A0
+D0
+80
+80
+00
+ENDCHAR
+
+STARTCHAR s
+ENCODING 115
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+30
+60
+10
+60
+00
+ENDCHAR
+
+STARTCHAR t
+ENCODING 116
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+40
+40
+E0
+40
+50
+20
+00
+ENDCHAR
+
+STARTCHAR u
+ENCODING 117
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+90
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR v
+ENCODING 118
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+50
+50
+50
+20
+00
+ENDCHAR
+
+STARTCHAR w
+ENCODING 119
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+88
+A8
+A8
+50
+00
+ENDCHAR
+
+STARTCHAR x
+ENCODING 120
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+90
+60
+60
+90
+00
+ENDCHAR
+
+STARTCHAR y
+ENCODING 121
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+90
+90
+70
+90
+60
+ENDCHAR
+
+STARTCHAR z
+ENCODING 122
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F0
+20
+40
+F0
+00
+ENDCHAR
+
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+30
+40
+20
+C0
+20
+40
+30
+00
+ENDCHAR
+
+STARTCHAR bar
+ENCODING 124
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+20
+20
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+C0
+20
+40
+30
+40
+20
+C0
+00
+ENDCHAR
+
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+50
+A0
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR space
+ENCODING 160
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+00
+20
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR cent
+ENCODING 162
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+70
+A0
+A0
+70
+20
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+E0
+40
+50
+A0
+00
+ENDCHAR
+
+STARTCHAR Euro
+ENCODING 164
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+30
+40
+E0
+40
+E0
+40
+30
+00
+ENDCHAR
+
+STARTCHAR yen
+ENCODING 165
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+88
+50
+F8
+20
+F8
+20
+00
+ENDCHAR
+
+STARTCHAR Scaron
+ENCODING 166
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+60
+70
+80
+60
+10
+E0
+00
+ENDCHAR
+
+STARTCHAR section
+ENCODING 167
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+70
+80
+E0
+90
+70
+10
+E0
+00
+ENDCHAR
+
+STARTCHAR scaron
+ENCODING 168
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+20
+00
+30
+60
+10
+60
+00
+ENDCHAR
+
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+A8
+C8
+C8
+A8
+70
+00
+ENDCHAR
+
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+30
+50
+30
+00
+70
+00
+00
+00
+ENDCHAR
+
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+50
+A0
+50
+00
+00
+ENDCHAR
+
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+70
+10
+10
+00
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+70
+00
+00
+00
+ENDCHAR
+
+STARTCHAR registered
+ENCODING 174
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+E8
+D8
+E8
+D8
+70
+00
+ENDCHAR
+
+STARTCHAR macron
+ENCODING 175
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 176
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+50
+20
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+70
+20
+00
+70
+00
+ENDCHAR
+
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+50
+10
+20
+70
+00
+00
+00
+ENDCHAR
+
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+10
+60
+10
+60
+00
+00
+00
+ENDCHAR
+
+STARTCHAR Zcaron
+ENCODING 180
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+60
+F0
+20
+40
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR mu
+ENCODING 181
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+90
+90
+90
+E0
+80
+ENDCHAR
+
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+78
+E8
+E8
+68
+28
+28
+00
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+20
+00
+00
+00
+ENDCHAR
+
+STARTCHAR zcaron
+ENCODING 184
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+60
+00
+F0
+20
+40
+F0
+00
+ENDCHAR
+
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+60
+20
+20
+70
+00
+00
+00
+ENDCHAR
+
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+50
+20
+00
+70
+00
+00
+00
+ENDCHAR
+
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+A0
+50
+A0
+00
+00
+ENDCHAR
+
+STARTCHAR OE
+ENCODING 188
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+A0
+B0
+A0
+A0
+70
+00
+ENDCHAR
+
+STARTCHAR oe
+ENCODING 189
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+70
+A8
+B0
+78
+00
+ENDCHAR
+
+STARTCHAR Ydieresis
+ENCODING 190
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+00
+88
+50
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+20
+00
+20
+40
+50
+20
+00
+ENDCHAR
+
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+00
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+60
+90
+F0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR AE
+ENCODING 198
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+A0
+A0
+F0
+A0
+B0
+00
+ENDCHAR
+
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+80
+80
+90
+60
+40
+ENDCHAR
+
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+F0
+80
+E0
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+F0
+80
+E0
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+F0
+80
+E0
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+00
+F0
+80
+E0
+80
+F0
+00
+ENDCHAR
+
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+70
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+10
+20
+70
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+50
+70
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+00
+70
+20
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+48
+E8
+48
+48
+70
+00
+ENDCHAR
+
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+90
+D0
+B0
+90
+90
+00
+ENDCHAR
+
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+60
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+60
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+60
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+60
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+00
+60
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+00
+50
+20
+50
+00
+ENDCHAR
+
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+70
+B0
+B0
+D0
+D0
+E0
+00
+ENDCHAR
+
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+90
+00
+90
+90
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+10
+20
+88
+50
+20
+20
+20
+00
+ENDCHAR
+
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+E0
+90
+90
+E0
+80
+00
+ENDCHAR
+
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+60
+90
+A0
+A0
+90
+A0
+00
+ENDCHAR
+
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+50
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+50
+00
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR aring
+ENCODING 229
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+60
+70
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR ae
+ENCODING 230
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+F0
+68
+B0
+78
+00
+ENDCHAR
+
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+30
+40
+40
+30
+20
+ENDCHAR
+
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+00
+60
+B0
+C0
+60
+00
+ENDCHAR
+
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+00
+60
+B0
+C0
+60
+00
+ENDCHAR
+
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+00
+60
+B0
+C0
+60
+00
+ENDCHAR
+
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+50
+00
+60
+B0
+C0
+60
+00
+ENDCHAR
+
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+00
+60
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+10
+20
+00
+60
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+50
+00
+60
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+50
+00
+60
+20
+20
+70
+00
+ENDCHAR
+
+STARTCHAR eth
+ENCODING 240
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+A0
+40
+A0
+10
+70
+90
+60
+00
+ENDCHAR
+
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+00
+E0
+90
+90
+90
+00
+ENDCHAR
+
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+50
+A0
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+00
+60
+90
+90
+60
+00
+ENDCHAR
+
+STARTCHAR divide
+ENCODING 247
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+20
+00
+70
+00
+20
+00
+ENDCHAR
+
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+00
+00
+70
+B0
+D0
+E0
+00
+ENDCHAR
+
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+40
+20
+00
+90
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+00
+90
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+60
+90
+00
+90
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+00
+90
+90
+90
+70
+00
+ENDCHAR
+
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+20
+40
+00
+90
+90
+70
+90
+60
+ENDCHAR
+
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+80
+80
+E0
+90
+E0
+80
+80
+ENDCHAR
+
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 436 0
+DWIDTH 5 0
+BBX 5 8 0 -1
+BITMAP
+00
+90
+00
+90
+90
+70
+90
+60
+ENDCHAR
+
+ENDFONT
diff --git a/src/gdisp/fonts/fixed_5x8.c b/src/gdisp/fonts/fixed_5x8.c
new file mode 100644
index 00000000..d65d58bf
--- /dev/null
+++ b/src/gdisp/fonts/fixed_5x8.c
@@ -0,0 +1,95 @@
+
+
+/* Start of automatically generated font definition for fixed_5x8. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_fixed_5x8_glyph_data_0[475] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, 0x00, 0x14,
+ 0x7f, 0x14, 0x7f, 0x14, 0x04, 0x2a, 0x7f, 0x2a, 0x10, 0x00, 0x16, 0x08, 0x34, 0x00, 0x36, 0x49,
+ 0x36, 0x40, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3c, 0x42, 0x00, 0x00, 0x00, 0x42, 0x3c,
+ 0x00, 0x00, 0x54, 0x38, 0x38, 0x54, 0x00, 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00, 0x80, 0x60, 0x20,
+ 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x40, 0xe0, 0x40, 0x00, 0x60, 0x10, 0x08, 0x06, 0x00,
+ 0x00, 0x3c, 0x42, 0x3c, 0x00, 0x00, 0x44, 0x7e, 0x40, 0x00, 0x64, 0x52, 0x52, 0x4c, 0x00, 0x22,
+ 0x4a, 0x4e, 0x32, 0x00, 0x18, 0x14, 0x7e, 0x10, 0x00, 0x2e, 0x4a, 0x4a, 0x32, 0x00, 0x3c, 0x4a,
+ 0x4a, 0x30, 0x00, 0x02, 0x62, 0x1a, 0x06, 0x00, 0x34, 0x4a, 0x4a, 0x34, 0x00, 0x0c, 0x52, 0x52,
+ 0x3c, 0x00, 0x00, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x80, 0x6c, 0x2c, 0x00, 0x00, 0x18, 0x24, 0x42,
+ 0x00, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, 0x42, 0x24, 0x18, 0x00, 0x00, 0x04, 0x52, 0x0c, 0x00,
+ 0x3c, 0x42, 0x99, 0xa5, 0x1e, 0x7c, 0x12, 0x12, 0x7c, 0x00, 0x7e, 0x4a, 0x4a, 0x34, 0x00, 0x3c,
+ 0x42, 0x42, 0x24, 0x00, 0x7e, 0x42, 0x42, 0x3c, 0x00, 0x7e, 0x4a, 0x4a, 0x42, 0x00, 0x7e, 0x0a,
+ 0x0a, 0x02, 0x00, 0x3c, 0x42, 0x52, 0x34, 0x00, 0x7e, 0x08, 0x08, 0x7e, 0x00, 0x00, 0x42, 0x7e,
+ 0x42, 0x00, 0x20, 0x42, 0x3e, 0x02, 0x00, 0x7e, 0x08, 0x34, 0x42, 0x00, 0x7e, 0x40, 0x40, 0x40,
+ 0x00, 0x7e, 0x0c, 0x0c, 0x7e, 0x00, 0x7e, 0x0c, 0x38, 0x7e, 0x00, 0x3c, 0x42, 0x42, 0x3c, 0x00,
+ 0x7e, 0x12, 0x12, 0x0c, 0x00, 0x3c, 0x52, 0x62, 0xbc, 0x00, 0x7e, 0x12, 0x12, 0x6c, 0x00, 0x24,
+ 0x4a, 0x52, 0x24, 0x00, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x3e, 0x40, 0x40, 0x3e, 0x00, 0x1e, 0x60,
+ 0x60, 0x1e, 0x00, 0x7e, 0x30, 0x30, 0x7e, 0x00, 0x66, 0x18, 0x18, 0x66, 0x00, 0x06, 0x08, 0x70,
+ 0x08, 0x06, 0x62, 0x52, 0x4a, 0x46, 0x00, 0x00, 0x7e, 0x42, 0x42, 0x00, 0x06, 0x08, 0x10, 0x60,
+ 0x00, 0x00, 0x42, 0x42, 0x7e, 0x00, 0x00, 0x04, 0x02, 0x04, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00,
+ 0x00, 0x02, 0x04, 0x00, 0x00, 0x30, 0x48, 0x48, 0x78, 0x00, 0x7e, 0x48, 0x48, 0x30, 0x00, 0x00,
+ 0x30, 0x48, 0x48, 0x00, 0x30, 0x48, 0x48, 0x7e, 0x00, 0x30, 0x68, 0x58, 0x10, 0x00, 0x10, 0x7c,
+ 0x12, 0x04, 0x00, 0x10, 0xa8, 0xa8, 0x70, 0x00, 0x7e, 0x08, 0x08, 0x70, 0x00, 0x00, 0x48, 0x7a,
+ 0x40, 0x00, 0x00, 0x40, 0x80, 0x7a, 0x00, 0x7e, 0x10, 0x10, 0x68, 0x00, 0x00, 0x42, 0x7e, 0x40,
+ 0x00, 0x78, 0x08, 0x70, 0x08, 0x70, 0x78, 0x08, 0x08, 0x70, 0x00, 0x30, 0x48, 0x48, 0x30, 0x00,
+ 0xf8, 0x28, 0x28, 0x10, 0x00, 0x10, 0x28, 0x28, 0xf8, 0x00, 0x78, 0x10, 0x08, 0x10, 0x00, 0x00,
+ 0x50, 0x58, 0x28, 0x00, 0x08, 0x3e, 0x48, 0x20, 0x00, 0x38, 0x40, 0x40, 0x78, 0x00, 0x00, 0x38,
+ 0x40, 0x38, 0x00, 0x38, 0x40, 0x30, 0x40, 0x38, 0x48, 0x30, 0x30, 0x48, 0x00, 0x58, 0xa0, 0xa0,
+ 0x78, 0x00, 0x48, 0x68, 0x58, 0x48, 0x00, 0x08, 0x2a, 0x55, 0x41, 0x00, 0x00, 0x00, 0x7e, 0x00,
+ 0x00, 0x41, 0x55, 0x2a, 0x08, 0x00, 0x04, 0x02, 0x04, 0x02, 0x00,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_fixed_5x8_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 1, /* height in bytes */
+ 8, /* height in pixels */
+ 5, /* width */
+ 0, /* glyph widths */
+ 0, /* glyph offsets */
+ mf_bwfont_fixed_5x8_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_fixed_5x8 = {
+ {
+ "-Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO8859-15",
+ "fixed_5x8",
+ 5, /* width */
+ 8, /* height */
+ 5, /* min x advance */
+ 5, /* max x advance */
+ 0, /* baseline x */
+ 7, /* baseline y */
+ 8, /* line height */
+ 3, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_fixed_5x8_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_fixed_5x8_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_fixed_5x8
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_fixed_5x8_listentry)
+#endif
+
+
+/* End of automatically generated font definition for fixed_5x8. */
+
diff --git a/src/gdisp/fonts/fixed_7x14.bdf b/src/gdisp/fonts/fixed_7x14.bdf
new file mode 100644
index 00000000..674a5ebd
--- /dev/null
+++ b/src/gdisp/fonts/fixed_7x14.bdf
@@ -0,0 +1,4940 @@
+STARTFONT 2.1
+FONT -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO8859-15
+SIZE 14 75 75
+FONTBOUNDINGBOX 7 14 0 -2
+
+STARTPROPERTIES 23
+FONTNAME_REGISTRY ""
+FOUNDRY "Misc"
+FAMILY_NAME "Fixed"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 14
+POINT_SIZE 130
+RESOLUTION_X 75
+RESOLUTION_Y 75
+SPACING "C"
+AVERAGE_WIDTH 70
+CHARSET_REGISTRY "ISO8859"
+CHARSET_ENCODING "15"
+COPYRIGHT "Public domain font. Share and enjoy."
+CAP_HEIGHT 10
+X_HEIGHT 7
+WEIGHT 10
+QUAD_WIDTH 7
+DEFAULT_CHAR 0
+FONT_DESCENT 2
+FONT_ASCENT 12
+ENDPROPERTIES
+
+CHARS 223
+
+STARTCHAR defaultchar
+ENCODING 0
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+B4
+84
+00
+84
+84
+00
+84
+84
+00
+84
+B4
+00
+00
+ENDCHAR
+
+STARTCHAR uni25C6
+ENCODING 1
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+30
+78
+78
+FC
+FC
+78
+78
+30
+30
+00
+00
+ENDCHAR
+
+STARTCHAR shade
+ENCODING 2
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+54
+AA
+54
+AA
+54
+AA
+54
+AA
+54
+AA
+54
+AA
+54
+AA
+ENDCHAR
+
+STARTCHAR uni2409
+ENCODING 3
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+90
+90
+F0
+90
+90
+00
+7C
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR uni240C
+ENCODING 4
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+E0
+80
+80
+E0
+80
+9C
+90
+10
+1C
+10
+10
+10
+00
+ENDCHAR
+
+STARTCHAR uni240D
+ENCODING 5
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+70
+80
+80
+80
+70
+00
+38
+24
+24
+38
+24
+24
+00
+ENDCHAR
+
+STARTCHAR uni240A
+ENCODING 6
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+80
+80
+80
+80
+F0
+00
+3C
+20
+38
+20
+20
+00
+00
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 7
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+48
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 8
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+10
+10
+7C
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR uni2424
+ENCODING 9
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+90
+D0
+B0
+90
+90
+20
+20
+20
+20
+3C
+00
+00
+ENDCHAR
+
+STARTCHAR uni240B
+ENCODING 10
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+88
+88
+88
+50
+20
+00
+7C
+10
+10
+10
+10
+10
+00
+ENDCHAR
+
+STARTCHAR SF040000
+ENCODING 11
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+F0
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF030000
+ENCODING 12
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+F0
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF010000
+ENCODING 13
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+1E
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF020000
+ENCODING 14
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+1E
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF050000
+ENCODING 15
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+FE
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR uni23BA
+ENCODING 16
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR uni23BB
+ENCODING 17
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+FE
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF100000
+ENCODING 18
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FE
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR uni23BC
+ENCODING 19
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FE
+00
+00
+00
+ENDCHAR
+
+STARTCHAR uni23BD
+ENCODING 20
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FE
+ENDCHAR
+
+STARTCHAR SF080000
+ENCODING 21
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+1E
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF090000
+ENCODING 22
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+F0
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF070000
+ENCODING 23
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+FE
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR SF060000
+ENCODING 24
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+FE
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR SF110000
+ENCODING 25
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR lessequal
+ENCODING 26
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+0C
+30
+C0
+30
+0C
+00
+FC
+00
+00
+00
+ENDCHAR
+
+STARTCHAR greaterequal
+ENCODING 27
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+C0
+30
+0C
+30
+C0
+00
+FC
+00
+00
+00
+ENDCHAR
+
+STARTCHAR pi
+ENCODING 28
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+FC
+48
+48
+48
+48
+48
+48
+00
+00
+ENDCHAR
+
+STARTCHAR notequal
+ENCODING 29
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+08
+08
+FC
+10
+10
+FC
+20
+20
+00
+00
+00
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 30
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+18
+24
+20
+20
+78
+20
+20
+78
+24
+00
+00
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 31
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+10
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR space
+ENCODING 32
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+10
+10
+10
+10
+10
+10
+00
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+28
+28
+28
+28
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+28
+28
+28
+7C
+28
+28
+7C
+28
+28
+28
+00
+00
+ENDCHAR
+
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+78
+94
+94
+50
+38
+14
+94
+94
+78
+10
+00
+ENDCHAR
+
+STARTCHAR percent
+ENCODING 37
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+64
+94
+98
+70
+10
+20
+38
+64
+A4
+98
+00
+00
+ENDCHAR
+
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+48
+48
+30
+64
+94
+88
+98
+64
+00
+00
+ENDCHAR
+
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+10
+10
+10
+10
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+04
+08
+10
+10
+20
+20
+20
+20
+20
+10
+10
+08
+04
+ENDCHAR
+
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+40
+20
+10
+10
+08
+08
+08
+08
+08
+10
+10
+20
+40
+ENDCHAR
+
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+10
+54
+38
+10
+38
+54
+10
+00
+00
+00
+ENDCHAR
+
+STARTCHAR plus
+ENCODING 43
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+10
+10
+10
+7C
+10
+10
+10
+00
+00
+00
+ENDCHAR
+
+STARTCHAR comma
+ENCODING 44
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+30
+10
+10
+20
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+7C
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR period
+ENCODING 46
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+10
+38
+10
+00
+ENDCHAR
+
+STARTCHAR slash
+ENCODING 47
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+04
+04
+08
+08
+10
+10
+10
+20
+20
+40
+40
+80
+80
+ENDCHAR
+
+STARTCHAR zero
+ENCODING 48
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+84
+84
+84
+84
+84
+84
+48
+30
+00
+00
+ENDCHAR
+
+STARTCHAR one
+ENCODING 49
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+30
+50
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR two
+ENCODING 50
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+04
+08
+08
+10
+20
+40
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR three
+ENCODING 51
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+04
+08
+10
+38
+04
+04
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR four
+ENCODING 52
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+08
+18
+28
+28
+48
+48
+88
+FC
+08
+08
+00
+00
+ENDCHAR
+
+STARTCHAR five
+ENCODING 53
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+80
+80
+F8
+84
+04
+04
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR six
+ENCODING 54
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+38
+40
+80
+80
+B8
+C4
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR seven
+ENCODING 55
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+04
+08
+08
+10
+10
+20
+20
+40
+40
+00
+00
+ENDCHAR
+
+STARTCHAR eight
+ENCODING 56
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+48
+30
+48
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR nine
+ENCODING 57
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+84
+8C
+74
+04
+84
+88
+70
+00
+00
+ENDCHAR
+
+STARTCHAR colon
+ENCODING 58
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+10
+38
+10
+00
+00
+10
+38
+10
+00
+00
+ENDCHAR
+
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+30
+30
+00
+00
+30
+10
+10
+20
+00
+ENDCHAR
+
+STARTCHAR less
+ENCODING 60
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+04
+08
+10
+20
+40
+20
+10
+08
+04
+00
+00
+ENDCHAR
+
+STARTCHAR equal
+ENCODING 61
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+FC
+00
+00
+FC
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR greater
+ENCODING 62
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+40
+20
+10
+08
+04
+08
+10
+20
+40
+00
+00
+ENDCHAR
+
+STARTCHAR question
+ENCODING 63
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+08
+10
+10
+10
+00
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR at
+ENCODING 64
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+38
+44
+9C
+A4
+A4
+A4
+A4
+9C
+40
+3C
+00
+00
+ENDCHAR
+
+STARTCHAR A
+ENCODING 65
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+84
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR B
+ENCODING 66
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+F0
+88
+84
+88
+F0
+88
+84
+84
+88
+F0
+00
+00
+ENDCHAR
+
+STARTCHAR C
+ENCODING 67
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+80
+80
+80
+80
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR D
+ENCODING 68
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+F0
+88
+84
+84
+84
+84
+84
+84
+88
+F0
+00
+00
+ENDCHAR
+
+STARTCHAR E
+ENCODING 69
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+80
+80
+80
+F0
+80
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR F
+ENCODING 70
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+80
+80
+80
+F0
+80
+80
+80
+80
+80
+00
+00
+ENDCHAR
+
+STARTCHAR G
+ENCODING 71
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+80
+80
+9C
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR H
+ENCODING 72
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+84
+84
+84
+FC
+84
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR I
+ENCODING 73
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+7C
+10
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR J
+ENCODING 74
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+1C
+08
+08
+08
+08
+08
+08
+88
+88
+70
+00
+00
+ENDCHAR
+
+STARTCHAR K
+ENCODING 75
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+88
+90
+A0
+C0
+A0
+90
+88
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR L
+ENCODING 76
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+80
+80
+80
+80
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR M
+ENCODING 77
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+CC
+CC
+B4
+B4
+84
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR N
+ENCODING 78
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+84
+C4
+C4
+A4
+94
+8C
+8C
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR O
+ENCODING 79
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR P
+ENCODING 80
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+F8
+84
+84
+84
+84
+F8
+80
+80
+80
+80
+00
+00
+ENDCHAR
+
+STARTCHAR Q
+ENCODING 81
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+84
+84
+84
+E4
+94
+8C
+78
+08
+04
+ENDCHAR
+
+STARTCHAR R
+ENCODING 82
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+F8
+84
+84
+84
+84
+F8
+90
+88
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR S
+ENCODING 83
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+80
+60
+18
+04
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR T
+ENCODING 84
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FE
+10
+10
+10
+10
+10
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR U
+ENCODING 85
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR V
+ENCODING 86
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+84
+84
+84
+48
+48
+48
+30
+30
+30
+00
+00
+ENDCHAR
+
+STARTCHAR W
+ENCODING 87
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+44
+44
+44
+44
+44
+44
+54
+54
+54
+28
+00
+00
+ENDCHAR
+
+STARTCHAR X
+ENCODING 88
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+84
+84
+48
+48
+30
+30
+48
+48
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Y
+ENCODING 89
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+44
+44
+44
+28
+28
+10
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR Z
+ENCODING 90
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+FC
+04
+08
+10
+10
+20
+40
+40
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+3C
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+3C
+ENDCHAR
+
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+80
+80
+40
+40
+20
+20
+20
+10
+10
+08
+08
+04
+04
+ENDCHAR
+
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+78
+08
+08
+08
+08
+08
+08
+08
+08
+08
+08
+08
+78
+ENDCHAR
+
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+84
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+FC
+ENDCHAR
+
+STARTCHAR grave
+ENCODING 96
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+20
+10
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR a
+ENCODING 97
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR b
+ENCODING 98
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+80
+B8
+C4
+84
+84
+84
+C4
+B8
+00
+00
+ENDCHAR
+
+STARTCHAR c
+ENCODING 99
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+80
+80
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR d
+ENCODING 100
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+04
+04
+04
+74
+8C
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR e
+ENCODING 101
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+84
+FC
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR f
+ENCODING 102
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+18
+24
+20
+20
+F8
+20
+20
+20
+20
+20
+00
+00
+ENDCHAR
+
+STARTCHAR g
+ENCODING 103
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+74
+88
+88
+88
+70
+40
+B8
+84
+78
+ENDCHAR
+
+STARTCHAR h
+ENCODING 104
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+80
+B8
+C4
+84
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR i
+ENCODING 105
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+10
+00
+30
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR j
+ENCODING 106
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+04
+04
+00
+0C
+04
+04
+04
+04
+04
+44
+44
+38
+ENDCHAR
+
+STARTCHAR k
+ENCODING 107
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+80
+88
+90
+A0
+E0
+90
+88
+84
+00
+00
+ENDCHAR
+
+STARTCHAR l
+ENCODING 108
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+10
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR m
+ENCODING 109
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+68
+54
+54
+54
+54
+54
+44
+00
+00
+ENDCHAR
+
+STARTCHAR n
+ENCODING 110
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+B8
+C4
+84
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR o
+ENCODING 111
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR p
+ENCODING 112
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+B8
+C4
+84
+84
+84
+C4
+B8
+80
+80
+ENDCHAR
+
+STARTCHAR q
+ENCODING 113
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+74
+8C
+84
+84
+84
+8C
+74
+04
+04
+ENDCHAR
+
+STARTCHAR r
+ENCODING 114
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+B8
+C4
+84
+80
+80
+80
+80
+00
+00
+ENDCHAR
+
+STARTCHAR s
+ENCODING 115
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+40
+30
+08
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR t
+ENCODING 116
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+20
+20
+F8
+20
+20
+20
+20
+24
+18
+00
+00
+ENDCHAR
+
+STARTCHAR u
+ENCODING 117
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+84
+84
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR v
+ENCODING 118
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+44
+44
+44
+28
+28
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR w
+ENCODING 119
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+44
+44
+54
+54
+54
+54
+28
+00
+00
+ENDCHAR
+
+STARTCHAR x
+ENCODING 120
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+84
+84
+48
+30
+48
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR y
+ENCODING 121
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+84
+84
+84
+84
+8C
+74
+04
+84
+78
+ENDCHAR
+
+STARTCHAR z
+ENCODING 122
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+FC
+08
+10
+20
+20
+40
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+0C
+10
+10
+10
+10
+10
+20
+10
+10
+10
+10
+10
+0C
+ENDCHAR
+
+STARTCHAR bar
+ENCODING 124
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+10
+ENDCHAR
+
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+60
+10
+10
+10
+10
+10
+08
+10
+10
+10
+10
+10
+60
+ENDCHAR
+
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+40
+A4
+94
+08
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR space
+ENCODING 160
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+10
+00
+10
+10
+10
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR cent
+ENCODING 162
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+20
+78
+A4
+A0
+A0
+A0
+A4
+78
+20
+00
+ENDCHAR
+
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+18
+24
+20
+20
+78
+20
+20
+78
+24
+00
+00
+ENDCHAR
+
+STARTCHAR Euro
+ENCODING 164
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+38
+44
+40
+E0
+40
+E0
+40
+44
+38
+00
+00
+ENDCHAR
+
+STARTCHAR yen
+ENCODING 165
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+44
+28
+28
+10
+7C
+10
+7C
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR Scaron
+ENCODING 166
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+48
+30
+00
+78
+84
+84
+60
+18
+04
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR section
+ENCODING 167
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+78
+84
+40
+30
+48
+84
+48
+30
+08
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR scaron
+ENCODING 168
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+48
+30
+00
+78
+84
+40
+30
+08
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+78
+84
+B4
+CC
+C4
+C4
+C4
+CC
+B4
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+38
+44
+3C
+44
+4C
+34
+00
+7C
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+14
+28
+50
+A0
+50
+28
+14
+00
+00
+ENDCHAR
+
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+7C
+04
+04
+04
+00
+00
+ENDCHAR
+
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+78
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR registered
+ENCODING 174
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+78
+84
+F4
+CC
+CC
+F4
+CC
+CC
+CC
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR macron
+ENCODING 175
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+7C
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR degree
+ENCODING 176
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+48
+30
+00
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+10
+10
+7C
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+08
+10
+20
+40
+78
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+08
+30
+08
+48
+30
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR Zcaron
+ENCODING 180
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+48
+30
+00
+FC
+08
+10
+10
+20
+40
+40
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR mu
+ENCODING 181
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+44
+44
+44
+44
+6C
+54
+40
+40
+ENDCHAR
+
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+3C
+54
+54
+54
+54
+34
+14
+14
+14
+14
+14
+1C
+ENDCHAR
+
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+10
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR zcaron
+ENCODING 184
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+48
+30
+00
+FC
+08
+10
+20
+20
+40
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+10
+30
+10
+10
+10
+10
+38
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+48
+30
+00
+78
+00
+00
+00
+00
+00
+00
+ENDCHAR
+
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+A0
+50
+28
+14
+28
+50
+A0
+00
+00
+ENDCHAR
+
+STARTCHAR OE
+ENCODING 188
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+7C
+90
+90
+90
+9C
+90
+90
+90
+90
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR oe
+ENCODING 189
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+94
+94
+9C
+90
+90
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR Ydieresis
+ENCODING 190
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+28
+28
+00
+44
+44
+28
+28
+10
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+20
+20
+00
+20
+20
+20
+20
+40
+84
+84
+78
+ENDCHAR
+
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+20
+10
+00
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+20
+00
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+30
+48
+00
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+64
+98
+00
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+48
+00
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+30
+48
+84
+84
+FC
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR AE
+ENCODING 198
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+3C
+50
+90
+90
+FC
+90
+90
+90
+90
+9C
+00
+00
+ENDCHAR
+
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+84
+84
+80
+80
+80
+80
+84
+84
+78
+10
+20
+ENDCHAR
+
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+20
+10
+00
+FC
+80
+80
+80
+F8
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+20
+00
+FC
+80
+80
+80
+F8
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+30
+48
+00
+FC
+80
+80
+80
+F8
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+48
+00
+FC
+80
+80
+80
+F8
+80
+80
+80
+FC
+00
+00
+ENDCHAR
+
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+20
+10
+00
+7C
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+08
+10
+00
+7C
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+28
+00
+7C
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+28
+00
+7C
+10
+10
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+78
+44
+42
+42
+F2
+42
+42
+42
+44
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+64
+98
+00
+C4
+C4
+A4
+A4
+94
+94
+94
+8C
+8C
+00
+00
+ENDCHAR
+
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+20
+10
+00
+78
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+20
+00
+78
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+30
+48
+00
+78
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+64
+98
+00
+78
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+48
+00
+78
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+82
+44
+28
+10
+28
+44
+82
+00
+00
+ENDCHAR
+
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+04
+04
+78
+8C
+94
+94
+94
+A4
+A4
+A4
+C4
+78
+80
+80
+ENDCHAR
+
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+20
+10
+00
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+10
+20
+00
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+30
+48
+00
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+48
+00
+84
+84
+84
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+08
+10
+00
+44
+44
+28
+28
+10
+10
+10
+10
+10
+00
+00
+ENDCHAR
+
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+F8
+84
+84
+84
+84
+F8
+80
+80
+00
+00
+ENDCHAR
+
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+48
+48
+70
+48
+44
+44
+44
+F8
+00
+00
+ENDCHAR
+
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+10
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+08
+10
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+64
+98
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+48
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR aring
+ENCODING 229
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+30
+48
+30
+00
+78
+84
+04
+7C
+84
+84
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR ae
+ENCODING 230
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+7C
+92
+32
+5E
+90
+92
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+78
+84
+80
+80
+80
+84
+78
+10
+20
+ENDCHAR
+
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+10
+00
+78
+84
+84
+FC
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+20
+00
+78
+84
+84
+FC
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+00
+78
+84
+84
+FC
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+48
+00
+78
+84
+84
+FC
+80
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+10
+00
+30
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+08
+10
+00
+30
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+00
+30
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+28
+00
+30
+10
+10
+10
+10
+10
+7C
+00
+00
+ENDCHAR
+
+STARTCHAR eth
+ENCODING 240
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+28
+10
+28
+04
+3C
+44
+44
+44
+44
+44
+38
+00
+00
+ENDCHAR
+
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+64
+98
+00
+B8
+C4
+84
+84
+84
+84
+84
+00
+00
+ENDCHAR
+
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+10
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+20
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+64
+98
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+48
+00
+78
+84
+84
+84
+84
+84
+78
+00
+00
+ENDCHAR
+
+STARTCHAR divide
+ENCODING 247
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+30
+00
+FC
+00
+30
+00
+00
+ENDCHAR
+
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+04
+08
+78
+94
+94
+A4
+A4
+C4
+78
+80
+80
+ENDCHAR
+
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+20
+10
+00
+84
+84
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+20
+00
+84
+84
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+30
+48
+00
+84
+84
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+48
+00
+84
+84
+84
+84
+84
+8C
+74
+00
+00
+ENDCHAR
+
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+10
+20
+00
+84
+84
+44
+48
+28
+38
+10
+90
+60
+ENDCHAR
+
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+80
+80
+80
+B8
+C4
+84
+84
+84
+C4
+B8
+80
+80
+ENDCHAR
+
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 960 0
+DWIDTH 7 0
+BBX 7 14 0 -2
+BITMAP
+00
+00
+00
+48
+00
+84
+84
+44
+48
+28
+38
+10
+90
+60
+ENDCHAR
+
+ENDFONT
diff --git a/src/gdisp/fonts/fixed_7x14.c b/src/gdisp/fonts/fixed_7x14.c
new file mode 100644
index 00000000..28b05608
--- /dev/null
+++ b/src/gdisp/fonts/fixed_7x14.c
@@ -0,0 +1,149 @@
+
+
+/* Start of automatically generated font definition for fixed_7x14. */
+
+#ifndef MF_BWFONT_INTERNALS
+#define MF_BWFONT_INTERNALS
+#endif
+#include "mf_bwfont.h"
+
+#ifndef MF_BWFONT_VERSION_4_SUPPORTED
+#error The font file is not compatible with this version of mcufont.
+#endif
+
+static const uint8_t mf_bwfont_fixed_7x14_glyph_data_0[1330] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xfe, 0x07,
+ 0x90, 0x00, 0xfe, 0x07, 0x90, 0x00, 0x00, 0x00, 0x18, 0x03, 0x24, 0x04, 0x44, 0x04, 0xfe, 0x0f,
+ 0x44, 0x04, 0x98, 0x03, 0x00, 0x00, 0x0c, 0x06, 0x12, 0x01, 0xd2, 0x03, 0xbc, 0x04, 0x88, 0x04,
+ 0x06, 0x03, 0x00, 0x00, 0x80, 0x03, 0x5c, 0x04, 0x62, 0x04, 0xa2, 0x02, 0x1c, 0x03, 0xc0, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x0c, 0x06, 0x02, 0x08, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x10, 0x02, 0x08, 0x0c, 0x06, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01,
+ 0xa0, 0x00, 0xf8, 0x03, 0xa0, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,
+ 0xf8, 0x03, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x0e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x80, 0x01, 0x70, 0x00, 0x0c, 0x00, 0x03, 0x00, 0x00, 0x00,
+ 0xf8, 0x01, 0x04, 0x02, 0x02, 0x04, 0x02, 0x04, 0x04, 0x02, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x04, 0x04, 0x04, 0xfe, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x0c, 0x04, 0x02, 0x06,
+ 0x02, 0x05, 0x82, 0x04, 0x62, 0x04, 0x1c, 0x04, 0x00, 0x00, 0x02, 0x03, 0x02, 0x04, 0x22, 0x04,
+ 0x32, 0x04, 0x2a, 0x04, 0xc6, 0x03, 0x00, 0x00, 0x80, 0x01, 0x60, 0x01, 0x18, 0x01, 0x04, 0x01,
+ 0xfe, 0x07, 0x00, 0x01, 0x00, 0x00, 0x3e, 0x03, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04, 0x12, 0x04,
+ 0xe2, 0x03, 0x00, 0x00, 0xf8, 0x03, 0x44, 0x04, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0xc0, 0x03,
+ 0x00, 0x00, 0x02, 0x00, 0x02, 0x06, 0x82, 0x01, 0x62, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x00, 0x00,
+ 0x8c, 0x03, 0x52, 0x04, 0x22, 0x04, 0x22, 0x04, 0x52, 0x04, 0x8c, 0x03, 0x00, 0x00, 0x3c, 0x03,
+ 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x22, 0x02, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x02, 0x38, 0x07, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x09,
+ 0x30, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x10, 0x01,
+ 0x08, 0x02, 0x04, 0x04, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00,
+ 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x02, 0x10, 0x01, 0xa0, 0x00, 0x40, 0x00,
+ 0x00, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x02, 0x00, 0xe2, 0x06, 0x12, 0x00, 0x0c, 0x00, 0x00, 0x00,
+ 0xf8, 0x01, 0x04, 0x02, 0xf2, 0x04, 0x0a, 0x05, 0x0a, 0x05, 0xfc, 0x05, 0x00, 0x00, 0xf8, 0x07,
+ 0x44, 0x00, 0x42, 0x00, 0x42, 0x00, 0x44, 0x00, 0xf8, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x22, 0x04,
+ 0x22, 0x04, 0x22, 0x04, 0x54, 0x02, 0x88, 0x01, 0x00, 0x00, 0xfc, 0x03, 0x02, 0x04, 0x02, 0x04,
+ 0x02, 0x04, 0x02, 0x04, 0x0c, 0x03, 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04,
+ 0x04, 0x02, 0xf8, 0x01, 0x00, 0x00, 0xfe, 0x07, 0x22, 0x04, 0x22, 0x04, 0x22, 0x04, 0x02, 0x04,
+ 0x02, 0x04, 0x00, 0x00, 0xfe, 0x07, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x02, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0xfc, 0x03, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0x42, 0x02, 0xcc, 0x07, 0x00, 0x00,
+ 0xfe, 0x07, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x04, 0x02, 0x04, 0xfe, 0x03, 0x02, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x20, 0x00, 0x50, 0x00,
+ 0x88, 0x00, 0x04, 0x01, 0x02, 0x06, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,
+ 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0xfe, 0x07, 0x0c, 0x00, 0x30, 0x00, 0x30, 0x00, 0x0c, 0x00,
+ 0xfe, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x18, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0xfe, 0x07,
+ 0x00, 0x00, 0xfc, 0x03, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0xfc, 0x03, 0x00, 0x00,
+ 0xfe, 0x07, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xfc, 0x03,
+ 0x82, 0x04, 0x82, 0x04, 0x02, 0x05, 0x02, 0x0e, 0xfc, 0x13, 0x00, 0x00, 0xfe, 0x07, 0x42, 0x00,
+ 0x42, 0x00, 0xc2, 0x00, 0x42, 0x01, 0x3c, 0x06, 0x00, 0x00, 0x1c, 0x03, 0x22, 0x04, 0x22, 0x04,
+ 0x42, 0x04, 0x42, 0x04, 0x8c, 0x03, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x07,
+ 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xfe, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,
+ 0xfe, 0x03, 0x00, 0x00, 0x1e, 0x00, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x07, 0xe0, 0x00, 0x1e, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x04, 0x80, 0x03, 0x00, 0x04, 0xfe, 0x03, 0x00, 0x00,
+ 0x06, 0x06, 0x98, 0x01, 0x60, 0x00, 0x60, 0x00, 0x98, 0x01, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00,
+ 0x0e, 0x00, 0x30, 0x00, 0xc0, 0x07, 0x30, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x05,
+ 0x42, 0x04, 0x32, 0x04, 0x0a, 0x04, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f,
+ 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0x00, 0x00, 0x03, 0x00, 0x0c, 0x00, 0x70, 0x00, 0x80, 0x01,
+ 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0x10, 0x01, 0x10, 0xff, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03,
+ 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0xe0, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x20, 0x02,
+ 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x10, 0x04, 0x10, 0x04,
+ 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0x00, 0x00, 0xe0, 0x03, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04,
+ 0x20, 0x02, 0xfe, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04,
+ 0xe0, 0x02, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xfc, 0x07, 0x22, 0x00, 0x22, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0xe0, 0x0c, 0x10, 0x13, 0x10, 0x15, 0x10, 0x15, 0xe0, 0x14, 0x10, 0x08, 0x00, 0x00,
+ 0xfe, 0x07, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x10, 0x04, 0xf6, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+ 0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0xf6, 0x0f, 0x00, 0x00, 0xfe, 0x07, 0x80, 0x00, 0xc0, 0x00,
+ 0x20, 0x01, 0x10, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x04, 0xfe, 0x07,
+ 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x10, 0x00, 0xe0, 0x03, 0x10, 0x00,
+ 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xe0, 0x07,
+ 0x00, 0x00, 0xe0, 0x03, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0xe0, 0x03, 0x00, 0x00,
+ 0xf0, 0x1f, 0x20, 0x02, 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03,
+ 0x10, 0x04, 0x10, 0x04, 0x10, 0x04, 0x20, 0x02, 0xf0, 0x1f, 0x00, 0x00, 0xf0, 0x07, 0x20, 0x00,
+ 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x02, 0x50, 0x04, 0x90, 0x04,
+ 0x90, 0x04, 0x10, 0x05, 0x20, 0x02, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x03, 0x10, 0x04,
+ 0x10, 0x04, 0x00, 0x02, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02,
+ 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x80, 0x01, 0x00, 0x06, 0x80, 0x01, 0x70, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x04, 0xc0, 0x03, 0x00, 0x04, 0xf0, 0x03, 0x00, 0x00,
+ 0x30, 0x06, 0x40, 0x01, 0x80, 0x00, 0x80, 0x00, 0x40, 0x01, 0x30, 0x06, 0x00, 0x00, 0xf0, 0x09,
+ 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x11, 0xf0, 0x0f, 0x00, 0x00, 0x10, 0x04, 0x10, 0x06,
+ 0x90, 0x05, 0x50, 0x04, 0x30, 0x04, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
+ 0xbe, 0x0f, 0x01, 0x10, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0x10, 0xbe, 0x0f, 0x40, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x06, 0x00,
+ 0x00, 0x00,
+};
+
+static const struct mf_bwfont_char_range_s mf_bwfont_fixed_7x14_char_ranges[] = {
+ {
+ 32, /* first char */
+ 95, /* char count */
+ 0, /* offset x */
+ 0, /* offset y */
+ 2, /* height in bytes */
+ 13, /* height in pixels */
+ 7, /* width */
+ 0, /* glyph widths */
+ 0, /* glyph offsets */
+ mf_bwfont_fixed_7x14_glyph_data_0, /* glyph data */
+ },
+};
+
+const struct mf_bwfont_s mf_bwfont_fixed_7x14 = {
+ {
+ "-Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO8859-15",
+ "fixed_7x14",
+ 7, /* width */
+ 13, /* height */
+ 7, /* min x advance */
+ 7, /* max x advance */
+ 0, /* baseline x */
+ 11, /* baseline y */
+ 14, /* line height */
+ 3, /* flags */
+ 63, /* fallback character */
+ &mf_bwfont_character_width,
+ &mf_bwfont_render_character,
+ },
+ 4, /* version */
+ 1, /* char range count */
+ mf_bwfont_fixed_7x14_char_ranges,
+};
+
+#ifdef MF_INCLUDED_FONTS
+/* List entry for searching fonts by name. */
+static const struct mf_font_list_s mf_bwfont_fixed_7x14_listentry = {
+ MF_INCLUDED_FONTS,
+ (struct mf_font_s*)&mf_bwfont_fixed_7x14
+};
+#undef MF_INCLUDED_FONTS
+#define MF_INCLUDED_FONTS (&mf_bwfont_fixed_7x14_listentry)
+#endif
+
+
+/* End of automatically generated font definition for fixed_7x14. */
+
diff --git a/src/gdisp/fonts/fonts.h b/src/gdisp/fonts/fonts.h
new file mode 100644
index 00000000..3b67de84
--- /dev/null
+++ b/src/gdisp/fonts/fonts.h
@@ -0,0 +1,62 @@
+
+#include <gfx.h>
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS10) && GDISP_INCLUDE_FONT_DEJAVUSANS10
+#include "DejaVuSans10.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS12_AA) && GDISP_INCLUDE_FONT_DEJAVUSANS12_AA
+#include "DejaVuSans12_aa.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS12) && GDISP_INCLUDE_FONT_DEJAVUSANS12
+#include "DejaVuSans12.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS16_AA) && GDISP_INCLUDE_FONT_DEJAVUSANS16_AA
+#include "DejaVuSans16_aa.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS16) && GDISP_INCLUDE_FONT_DEJAVUSANS16
+#include "DejaVuSans16.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS24_AA) && GDISP_INCLUDE_FONT_DEJAVUSANS24_AA
+#include "DejaVuSans24_aa.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS24) && GDISP_INCLUDE_FONT_DEJAVUSANS24
+#include "DejaVuSans24.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS32_AA) && GDISP_INCLUDE_FONT_DEJAVUSANS32_AA
+#include "DejaVuSans32_aa.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANS32) && GDISP_INCLUDE_FONT_DEJAVUSANS32
+#include "DejaVuSans32.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA) && GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA
+#include "DejaVuSansBold12_aa.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12) && GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12
+#include "DejaVuSansBold12.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_FIXED_10X20) && GDISP_INCLUDE_FONT_FIXED_10X20
+#include "fixed_10x20.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_FIXED_5X8) && GDISP_INCLUDE_FONT_FIXED_5X8
+#include "fixed_5x8.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_FIXED_7X14) && GDISP_INCLUDE_FONT_FIXED_7X14
+#include "fixed_7x14.c"
+#endif
+
+#if defined(GDISP_INCLUDE_FONT_LARGENUMBERS) && GDISP_INCLUDE_FONT_LARGENUMBERS
+#include "LargeNumbers.c"
+#endif
diff --git a/src/gdisp/gdisp.c b/src/gdisp/gdisp.c
index 4c005079..f7a94a60 100644
--- a/src/gdisp/gdisp.c
+++ b/src/gdisp/gdisp.c
@@ -17,7 +17,7 @@
#if GFX_USE_GDISP
#ifdef GDISP_NEED_TEXT
- #include "gdisp/fonts.h"
+ #include "mcufont.h"
#endif
/* Include the low level driver information */
@@ -400,13 +400,13 @@ void gdispFillRoundedBox(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t r
#endif
#if (GDISP_NEED_TEXT && GDISP_NEED_MULTITHREAD)
- void gdispDrawChar(coord_t x, coord_t y, char c, font_t font, color_t color) {
+ void gdispDrawChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color) {
gfxMutexEnter(&gdispMutex);
gdisp_lld_draw_char(x, y, c, font, color);
gfxMutexExit(&gdispMutex);
}
#elif GDISP_NEED_TEXT && GDISP_NEED_ASYNC
- void gdispDrawChar(coord_t x, coord_t y, char c, font_t font, color_t color) {
+ void gdispDrawChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color) {
gdisp_lld_msg_t *p = gdispAllocMsg(GDISP_LLD_MSG_DRAWCHAR);
p->drawchar.x = x;
p->drawchar.y = y;
@@ -418,13 +418,13 @@ void gdispFillRoundedBox(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t r
#endif
#if (GDISP_NEED_TEXT && GDISP_NEED_MULTITHREAD)
- void gdispFillChar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor) {
+ void gdispFillChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color, color_t bgcolor) {
gfxMutexEnter(&gdispMutex);
gdisp_lld_fill_char(x, y, c, font, color, bgcolor);
gfxMutexExit(&gdispMutex);
}
#elif GDISP_NEED_TEXT && GDISP_NEED_ASYNC
- void gdispFillChar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor) {
+ void gdispFillChar(coord_t x, coord_t y, uint16_t c, font_t font, color_t color, color_t bgcolor) {
gdisp_lld_msg_t *p = gdispAllocMsg(GDISP_LLD_MSG_FILLCHAR);
p->fillchar.x = x;
p->fillchar.y = y;
@@ -619,321 +619,206 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
}
#endif
- #if GDISP_NEED_TEXT
+#if GDISP_NEED_TEXT
+ typedef struct
+ {
+ font_t font;
+ color_t color;
+ } gdispDrawString_state_t;
+
+ /* Callback to render characters. */
+ static uint8_t gdispDrawString_callback(int16_t x, int16_t y,
+ mf_char character, void *state)
+ {
+ gdispDrawString_state_t *s = state;
+ uint8_t w;
+
+ gdispDrawChar(x, y, character, s->font, s->color);
+ w = mf_character_width(s->font, character);
+ return w;
+ }
+
void gdispDrawString(coord_t x, coord_t y, const char *str, font_t font, color_t color) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w, p;
- char c;
- int first;
+ gdispDrawString_state_t state;
+
+ state.font = font;
+ state.color = color;
- if (!str) return;
+ mf_render_aligned(font, x, y, MF_ALIGN_LEFT, str, 0,
+ gdispDrawString_callback, &state);
+ }
+#endif
+
+#if GDISP_NEED_TEXT
+ typedef struct
+ {
+ coord_t y0;
+ coord_t prev_x;
+ font_t font;
+ color_t color;
+ color_t bgcolor;
+ bool_t rightalign;
+ } gdispFillString_state_t;
+
+ /* Callback to render characters. */
+ static uint8_t gdispFillString_callback(int16_t x, int16_t y,
+ mf_char character, void *state)
+ {
+ gdispFillString_state_t *s = state;
+ uint8_t w;
+ int16_t right_edge;
+ w = mf_character_width(s->font, character);
+ right_edge = x + w + s->font->baseline_x;
- first = 1;
- p = font->charPadding * font->xscale;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
+ if (!s->rightalign)
+ {
+ if (s->prev_x < x)
+ {
+ /* Fill any space between characters */
+ gdispFillArea(s->prev_x, s->y0, x - s->prev_x, s->font->height,
+ s->bgcolor);
+ }
+ else if (s->prev_x > x)
+ {
+ /* Uh, looks like there is some kerning going on. If we would
+ * just call gdispFillChar() here, it would overwrite part of
+ * the previous character. Instead, fill background separately.
+ */
+ gdispFillArea(s->prev_x, s->y0, right_edge - s->prev_x,
+ s->font->height, s->bgcolor);
+ gdispDrawChar(x, y, character, s->font, s->color);
+ s->prev_x = right_edge;
+ return w;
+ }
- /* Handle inter-character padding */
- if (p) {
- if (!first)
- x += p;
- else
- first = 0;
+ s->prev_x = right_edge;
+ }
+ else
+ {
+ /* When rendering right-aligned text, the characters are drawn
+ * from right to left. */
+ if (s->prev_x > right_edge)
+ {
+ /* Fill any space between characters */
+ gdispFillArea(right_edge, s->y0, s->prev_x - right_edge,
+ s->font->height, s->bgcolor);
+ }
+ else if (s->prev_x < right_edge)
+ {
+ gdispFillArea(x, s->y0, s->prev_x - x,
+ s->font->height, s->bgcolor);
+ gdispDrawChar(x, y, character, s->font, s->color);
+ s->prev_x = x;
+ return w;
}
- /* Print the character */
- gdispDrawChar(x, y, c, font, color);
- x += w;
+ s->prev_x = x;
}
+
+ gdispFillChar(x, y, character, s->font, s->color, s->bgcolor);
+
+ return w;
}
-#endif
-
-#if GDISP_NEED_TEXT
+
void gdispFillString(coord_t x, coord_t y, const char *str, font_t font, color_t color, color_t bgcolor) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w, h, p;
- char c;
- int first;
+ gdispFillString_state_t state;
- if (!str) return;
+ state.y0 = y;
+ state.prev_x = x;
+ state.font = font;
+ state.color = color;
+ state.bgcolor = bgcolor;
+ state.rightalign = false;
- first = 1;
- h = font->height * font->yscale;
- p = font->charPadding * font->xscale;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- gdispFillArea(x, y, p, h, bgcolor);
- x += p;
- } else
- first = 0;
- }
-
- /* Print the character */
- gdispFillChar(x, y, c, font, color, bgcolor);
- x += w;
- }
+ x += font->baseline_x;
+ mf_render_aligned(font, x, y, MF_ALIGN_LEFT, str, 0,
+ gdispFillString_callback, &state);
}
#endif
#if GDISP_NEED_TEXT
void gdispDrawStringBox(coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, font_t font, color_t color, justify_t justify) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w, h, p, ypos, xpos;
- char c;
- int first;
- const char *rstr;
-
- if (!str) str = "";
-
- h = font->height * font->yscale;
- p = font->charPadding * font->xscale;
-
- /* Oops - font too large for the area */
- if (h > cy) return;
-
- /* See if we need to fill above the font */
- ypos = (cy - h + 1)/2;
- if (ypos > 0) {
- y += ypos;
- cy -= ypos;
- }
-
- /* See if we need to fill below the font */
- ypos = cy - h;
- if (ypos > 0)
- cy -= ypos;
+ gdispDrawString_state_t state;
- /* get the start of the printable string and the xpos */
- switch(justify) {
- case justifyCenter:
- /* Get the length of the entire string */
- w = gdispGetStringWidth(str, font);
- if (w <= cx)
- xpos = x + (cx - w)/2;
- else {
- /* Calculate how much of the string we need to get rid of */
- ypos = (w - cx)/2;
- xpos = 0;
- first = 1;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- xpos += p;
- if (xpos > ypos) break;
- } else
- first = 0;
- }
-
- /* Print the character */
- xpos += w;
- if (xpos > ypos) break;
- }
- xpos = ypos - xpos + x;
- }
- break;
- case justifyRight:
- /* Find the end of the string */
- for(rstr = str; *str; str++);
- xpos = x+cx - 2;
- first = 1;
- for(str--; str >= rstr; str--) {
- /* Get the next printable character */
- c = *str;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- if (xpos - p < x) break;
- xpos -= p;
- } else
- first = 0;
- }
-
- /* Print the character */
- if (xpos - w < x) break;
- xpos -= w;
- }
- str++;
- break;
- case justifyLeft:
- /* Fall through */
- default:
- xpos = x+1;
- break;
- }
+ state.font = font;
+ state.color = color;
- /* Print characters until we run out of room */
- first = 1;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- if (xpos + p > x+cx) break;
- xpos += p;
- } else
- first = 0;
- }
+ /* Select the anchor position */
+ if (justify == justifyLeft)
+ x += font->baseline_x;
+ else if (justify == justifyCenter)
+ x += (cx + 1) / 2;
+ else if (justify == justifyRight)
+ x += cx;
- /* Print the character */
- if (xpos + w > x+cx) break;
- gdispDrawChar(xpos, y, c, font, color);
- xpos += w;
- }
+ mf_render_aligned(font, x, y, justify, str, 0,
+ gdispDrawString_callback, &state);
}
#endif
#if GDISP_NEED_TEXT
void gdispFillStringBox(coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, font_t font, color_t color, color_t bgcolor, justify_t justify) {
/* No mutex required as we only call high level functions which have their own mutex */
- coord_t w, h, p, ypos, xpos;
- char c;
- int first;
- const char *rstr;
+ gdispFillString_state_t state;
+ int16_t min_x, max_x;
- if (!str) str = "";
-
- h = font->height * font->yscale;
- p = font->charPadding * font->xscale;
-
- /* Oops - font too large for the area */
- if (h > cy) return;
-
- /* See if we need to fill above the font */
- ypos = (cy - h + 1)/2;
- if (ypos > 0) {
- gdispFillArea(x, y, cx, ypos, bgcolor);
- y += ypos;
- cy -= ypos;
+ min_x = x;
+ max_x = x + cx;
+
+ state.y0 = y + (cy - font->height + 1) / 2;
+ state.prev_x = x;
+ state.font = font;
+ state.color = color;
+ state.bgcolor = bgcolor;
+ state.rightalign = false;
+
+ /* Fill above the text */
+ if (state.y0 > y)
+ {
+ gdispFillArea(x, y, cx, state.y0 - y, bgcolor);
}
- /* See if we need to fill below the font */
- ypos = cy - h;
- if (ypos > 0) {
- gdispFillArea(x, y+cy-ypos, cx, ypos, bgcolor);
- cy -= ypos;
+ /* Fill below the text */
+ if (state.y0 + font->height < y + cy)
+ {
+ gdispFillArea(x, state.y0 + font->height, cx,
+ (y + cy) - (state.y0 + font->height), bgcolor);
}
- /* get the start of the printable string and the xpos */
- switch(justify) {
- case justifyCenter:
- /* Get the length of the entire string */
- w = gdispGetStringWidth(str, font);
- if (w <= cx)
- xpos = x + (cx - w)/2;
- else {
- /* Calculate how much of the string we need to get rid of */
- ypos = (w - cx)/2;
- xpos = 0;
- first = 1;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- xpos += p;
- if (xpos > ypos) break;
- } else
- first = 0;
- }
-
- /* Print the character */
- xpos += w;
- if (xpos > ypos) break;
- }
- xpos = ypos - xpos + x;
- }
- break;
- case justifyRight:
- /* Find the end of the string */
- for(rstr = str; *str; str++);
- xpos = x+cx - 2;
- first = 1;
- for(str--; str >= rstr; str--) {
- /* Get the next printable character */
- c = *str;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- if (xpos - p < x) break;
- xpos -= p;
- } else
- first = 0;
- }
-
- /* Print the character */
- if (xpos - w < x) break;
- xpos -= w;
- }
- str++;
- break;
- case justifyLeft:
- /* Fall through */
- default:
- xpos = x+1;
- break;
+ /* Select the anchor position */
+ if (justify == justifyLeft)
+ {
+ x += font->baseline_x;
+ }
+ else if (justify == justifyCenter)
+ {
+ x += (cx + 1) / 2;
+ }
+ else if (justify == justifyRight)
+ {
+ state.rightalign = true;
+ state.prev_x = x + cx;
+ x += cx;
}
- /* Fill any space to the left */
- if (x < xpos)
- gdispFillArea(x, y, xpos-x, cy, bgcolor);
+ /* Render */
+ mf_render_aligned(font, x, state.y0, justify, str, 0,
+ gdispFillString_callback, &state);
- /* Print characters until we run out of room */
- first = 1;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first) {
- if (xpos + p > x+cx) break;
- gdispFillArea(xpos, y, p, cy, bgcolor);
- xpos += p;
- } else
- first = 0;
- }
-
- /* Print the character */
- if (xpos + w > x+cx) break;
- gdispFillChar(xpos, y, c, font, color, bgcolor);
- xpos += w;
+ /* Fill any space left */
+ if (!state.rightalign && state.prev_x < max_x)
+ {
+ gdispFillArea(state.prev_x, state.y0, max_x - state.prev_x,
+ state.font->height, bgcolor);
+ }
+ else if (state.rightalign && state.prev_x > min_x)
+ {
+ gdispFillArea(min_x, state.y0, state.prev_x - min_x,
+ state.font->height, bgcolor);
}
-
- /* Fill any space to the right */
- if (xpos < x+cx)
- gdispFillArea(xpos, y, x+cx-xpos, cy, bgcolor);
}
#endif
@@ -941,12 +826,12 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
coord_t gdispGetFontMetric(font_t font, fontmetric_t metric) {
/* No mutex required as we only read static data */
switch(metric) {
- case fontHeight: return font->height * font->yscale;
- case fontDescendersHeight: return font->descenderHeight * font->yscale;
- case fontLineSpacing: return font->lineSpacing * font->yscale;
- case fontCharPadding: return font->charPadding * font->xscale;
- case fontMinWidth: return font->minWidth * font->xscale;
- case fontMaxWidth: return font->maxWidth * font->xscale;
+ case fontHeight: return font->height;
+ case fontDescendersHeight: return font->height - font->baseline_y;
+ case fontLineSpacing: return font->line_height;
+ case fontCharPadding: return 0;
+ case fontMinWidth: return font->min_x_advance;
+ case fontMaxWidth: return font->max_x_advance;
}
return 0;
}
@@ -955,41 +840,38 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
#if GDISP_NEED_TEXT
coord_t gdispGetCharWidth(char c, font_t font) {
/* No mutex required as we only read static data */
- return _getCharWidth(font, c) * font->xscale;
+ return mf_character_width(font, c);
}
#endif
#if GDISP_NEED_TEXT
coord_t gdispGetStringWidth(const char* str, font_t font) {
/* No mutex required as we only read static data */
- coord_t w, p, x;
- char c;
- int first;
-
- first = 1;
- x = 0;
- p = font->charPadding * font->xscale;
- while(*str) {
- /* Get the next printable character */
- c = *str++;
- w = _getCharWidth(font, c) * font->xscale;
- if (!w) continue;
-
- /* Handle inter-character padding */
- if (p) {
- if (!first)
- x += p;
- else
- first = 0;
- }
-
- /* Add the character width */
- x += w;
- }
- return x;
+ return mf_get_string_width(font, str, 0, 0);
}
#endif
+color_t gdispBlendColor(color_t fg, color_t bg, uint8_t alpha)
+{
+ uint16_t fg_ratio = alpha + 1;
+ uint16_t bg_ratio = 256 - alpha;
+ uint16_t r, g, b;
+
+ r = RED_OF(fg) * fg_ratio;
+ g = GREEN_OF(fg) * fg_ratio;
+ b = BLUE_OF(fg) * fg_ratio;
+
+ r += RED_OF(bg) * bg_ratio;
+ g += GREEN_OF(bg) * bg_ratio;
+ b += BLUE_OF(bg) * bg_ratio;
+
+ r /= 256;
+ g /= 256;
+ b /= 256;
+
+ return RGB2COLOR(r, g, b);
+}
+
#if (!defined(gdispPackPixels) && !defined(GDISP_PIXELFORMAT_CUSTOM))
void gdispPackPixels(pixel_t *buf, coord_t cx, coord_t x, coord_t y, color_t color) {
/* No mutex required as we only read static data */
diff --git a/src/gdisp/gdisp.mk b/src/gdisp/gdisp.mk
index caa5f65d..a93394e8 100644
--- a/src/gdisp/gdisp.mk
+++ b/src/gdisp/gdisp.mk
@@ -7,3 +7,9 @@ GFXSRC += $(GFXLIB)/src/gdisp/gdisp.c \
$(GFXLIB)/src/gdisp/image_jpg.c \
$(GFXLIB)/src/gdisp/image_png.c
+MFDIR = $(GFXLIB)/src/gdisp/mcufont
+include $(GFXLIB)/src/gdisp/mcufont/mcufont.mk
+GFXINC += $(MFDIR)
+GFXSRC += $(MFSRC)
+
+GFXINC += $(GFXLIB)/src/gdisp/fonts
diff --git a/src/gdisp/mcufont/mcufont.h b/src/gdisp/mcufont/mcufont.h
new file mode 100644
index 00000000..8a81ff42
--- /dev/null
+++ b/src/gdisp/mcufont/mcufont.h
@@ -0,0 +1,14 @@
+/* Tiny library for rendering compressed bitmap fonts on microcontrollers. */
+
+#ifndef _MCUFONT_H_
+#define _MCUFONT_H_
+
+#include "mf_config.h"
+#include "mf_encoding.h"
+#include "mf_justify.h"
+#include "mf_kerning.h"
+#include "mf_rlefont.h"
+#include "mf_scaledfont.h"
+#include "mf_wordwrap.h"
+
+#endif
diff --git a/src/gdisp/mcufont/mcufont.mk b/src/gdisp/mcufont/mcufont.mk
new file mode 100644
index 00000000..0b402877
--- /dev/null
+++ b/src/gdisp/mcufont/mcufont.mk
@@ -0,0 +1,19 @@
+# Makefile fragment listing the source files for the mcufont decoder.
+
+# Directory where the decoder source code recides
+# Usually you'll want to set this in your own Makefile.
+MFDIR ?= mcufont/decoder
+
+# Name of the include directory
+MFINC = $(MFDIR)
+
+# Source code files to include
+MFSRC = \
+ $(MFDIR)/mf_encoding.c \
+ $(MFDIR)/mf_font.c \
+ $(MFDIR)/mf_justify.c \
+ $(MFDIR)/mf_kerning.c \
+ $(MFDIR)/mf_rlefont.c \
+ $(MFDIR)/mf_bwfont.c \
+ $(MFDIR)/mf_scaledfont.c \
+ $(MFDIR)/mf_wordwrap.c
diff --git a/src/gdisp/mcufont/mf_bwfont.c b/src/gdisp/mcufont/mf_bwfont.c
new file mode 100644
index 00000000..918fbb29
--- /dev/null
+++ b/src/gdisp/mcufont/mf_bwfont.c
@@ -0,0 +1,134 @@
+#include "mf_bwfont.h"
+#include <stdbool.h>
+
+/* Find the character range and index that contains a given glyph.. */
+static const struct mf_bwfont_char_range_s *find_char_range(
+ const struct mf_bwfont_s *font, uint16_t character, uint16_t *index_ret)
+{
+ unsigned i, index;
+ const struct mf_bwfont_char_range_s *range;
+ for (i = 0; i < font->char_range_count; i++)
+ {
+ range = &font->char_ranges[i];
+ index = character - range->first_char;
+ if (character >= range->first_char && index < range->char_count)
+ {
+ *index_ret = index;
+ return range;
+ }
+ }
+
+ return 0;
+}
+
+static uint8_t get_width(const struct mf_bwfont_char_range_s *r, uint16_t index)
+{
+ if (r->width)
+ {
+ return r->width + r->offset_x;
+ }
+ else
+ {
+ return r->glyph_widths[index];
+ }
+}
+
+static uint8_t render_char(const struct mf_bwfont_char_range_s *r,
+ int16_t x0, int16_t y0, uint16_t index,
+ mf_pixel_callback_t callback,
+ void *state)
+{
+ const uint8_t *data, *p;
+ uint8_t stride, runlen;
+ uint8_t x, y, height, num_cols;
+ uint8_t bit, byte, mask;
+ bool oldstate, newstate;
+
+ if (r->width)
+ {
+ data = r->glyph_data + r->width * index * r->height_bytes;
+ num_cols = r->width;
+ }
+ else
+ {
+ data = r->glyph_data + r->glyph_offsets[index] * r->height_bytes;
+ num_cols = r->glyph_offsets[index + 1] - r->glyph_offsets[index];
+ }
+
+ stride = r->height_bytes;
+ height = r->height_pixels;
+ y0 += r->offset_y;
+ x0 += r->offset_x;
+ bit = 0;
+ byte = 0;
+
+ for (y = 0; y < height; y++)
+ {
+ mask = (1 << bit);
+
+ oldstate = false;
+ runlen = 0;
+ p = data + byte;
+ for (x = 0; x < num_cols; x++, p += stride)
+ {
+ newstate = *p & mask;
+ if (newstate != oldstate)
+ {
+ if (oldstate && runlen)
+ {
+ callback(x0 + x - runlen, y0 + y, runlen, 255, state);
+ }
+
+ oldstate = newstate;
+ runlen = 0;
+ }
+
+ runlen++;
+ }
+
+ if (oldstate && runlen)
+ {
+ callback(x0 + x - runlen, y0 + y, runlen, 255, state);
+ }
+
+ bit++;
+ if (bit > 7)
+ {
+ bit = 0;
+ byte++;
+ }
+ }
+
+ return get_width(r, index);
+}
+
+uint8_t mf_bwfont_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ uint16_t character,
+ mf_pixel_callback_t callback,
+ void *state)
+{
+ const struct mf_bwfont_s *bwfont = (const struct mf_bwfont_s*)font;
+ const struct mf_bwfont_char_range_s *range;
+ uint16_t index;
+
+ range = find_char_range(bwfont, character, &index);
+ if (!range)
+ return 0;
+
+ return render_char(range, x0, y0, index, callback, state);
+}
+
+uint8_t mf_bwfont_character_width(const struct mf_font_s *font,
+ uint16_t character)
+{
+ const struct mf_bwfont_s *bwfont = (const struct mf_bwfont_s*)font;
+ const struct mf_bwfont_char_range_s *range;
+ uint16_t index;
+
+ range = find_char_range(bwfont, character, &index);
+ if (!range)
+ return 0;
+
+ return get_width(range, index);
+}
diff --git a/src/gdisp/mcufont/mf_bwfont.h b/src/gdisp/mcufont/mf_bwfont.h
new file mode 100644
index 00000000..9aea2ac9
--- /dev/null
+++ b/src/gdisp/mcufont/mf_bwfont.h
@@ -0,0 +1,77 @@
+/* Uncompressed font format for storing black & white fonts. Very efficient
+ * to decode and works well for small font sizes.
+ */
+
+#ifndef _MF_BWFONT_H_
+#define _MF_BWFONT_H_
+
+#include "mf_font.h"
+
+/* Versions of the BW font format that are supported. */
+#define MF_BWFONT_VERSION_4_SUPPORTED 1
+
+/* Structure for a range of characters. */
+struct mf_bwfont_char_range_s
+{
+ /* The number of the first character in this range. */
+ uint16_t first_char;
+
+ /* The total count of characters in this range. */
+ uint16_t char_count;
+
+ /* The left and top skips of the characters in this range.
+ * This is the number of empty rows at left and at top. */
+ uint8_t offset_x;
+ uint8_t offset_y;
+
+ /* Column height for glyphs in this range, in bytes and pixels. */
+ uint8_t height_bytes;
+ uint8_t height_pixels;
+
+ /* Positive value if the width of all glyphs in this range is the
+ * same, or zero if it is not. */
+ uint8_t width;
+
+ /* Lookup table for the character widths. NULL if width is specified. */
+ const uint8_t *glyph_widths;
+
+ /* Lookup table for the character offsets. Multiply by height_bytes
+ * to get the byte offset. Also allows lookup of the number of columns.
+ * NULL if width is specified. */
+ const uint16_t *glyph_offsets;
+
+ /* Table for the glyph data.
+ * The data for each glyph is column-by-column, with N bytes per each
+ * column. The LSB of the first byte is the top left pixel.
+ */
+ const uint8_t *glyph_data;
+};
+
+/* Structure for the font */
+struct mf_bwfont_s
+{
+ struct mf_font_s font;
+
+ /* Version of the font format. */
+ const uint8_t version;
+
+ /* Number of character ranges. */
+ const uint8_t char_range_count;
+
+ /* Array of the character ranges */
+ const struct mf_bwfont_char_range_s *char_ranges;
+};
+
+#ifdef MF_BWFONT_INTERNALS
+/* Internal functions, don't use these directly. */
+MF_EXTERN uint8_t mf_bwfont_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state);
+
+MF_EXTERN uint8_t mf_bwfont_character_width(const struct mf_font_s *font,
+ mf_char character);
+#endif
+
+#endif
diff --git a/src/gdisp/mcufont/mf_config.h b/src/gdisp/mcufont/mf_config.h
new file mode 100644
index 00000000..7e58c8f6
--- /dev/null
+++ b/src/gdisp/mcufont/mf_config.h
@@ -0,0 +1,148 @@
+/* Configuration constants for mcufont. */
+
+#ifndef _MF_CONFIG_H_
+#define _MF_CONFIG_H_
+
+#include <gfx.h>
+
+/* Mapping from uGFX settings to mcufont settings */
+#if GDISP_NEED_UTF8
+#define MF_ENCODING MF_ENCODING_UTF8
+#else
+#define MF_ENCODING MF_ENCODING_ASCII
+#endif
+
+#define MF_USE_KERNING GDISP_NEED_TEXT_KERNING
+
+/* These are not used for now */
+#define MF_USE_ADVANCED_WORDWRAP 0
+#define MF_USE_JUSTIFY 0
+
+
+/*******************************************************
+ * Configuration settings related to build environment *
+ *******************************************************/
+
+/* Name of the file that contains all the included fonts. */
+#ifndef MF_FONT_FILE_NAME
+#define MF_FONT_FILE_NAME "fonts.h"
+#endif
+
+
+/*****************************************
+ * Configuration settings related to API *
+ *****************************************/
+
+/* Encoding for the input data.
+ * With the unicode encodings, the library supports the range of unicode
+ * characters 0x0000-0xFFFF (the Basic Multilingual Plane).
+ *
+ * ASCII: Plain ascii (somewhat works with ISO8859-1 also)
+ * UTF8: UTF8 encoding (variable number of bytes)
+ * UTF16: UTF16 encoding (2 bytes per character, compatible with UCS-2)
+ * WCHAR: Use compiler's wchar_t (usually same as UTF16)
+ */
+#define MF_ENCODING_ASCII 0
+#define MF_ENCODING_UTF8 1
+#define MF_ENCODING_UTF16 2
+#define MF_ENCODING_WCHAR 3
+#ifndef MF_ENCODING
+#define MF_ENCODING MF_ENCODING_UTF8
+#endif
+
+
+/************************************************************************
+ * Configuration settings related to visual appearance of rendered text *
+ ************************************************************************/
+
+/* Minimum space between characters, in percents of the glyph width.
+ * Increasing this causes the kerning module to leave more space between
+ * characters.
+ */
+#ifndef MF_KERNING_SPACE_PERCENT
+#define MF_KERNING_SPACE_PERCENT 15
+#endif
+
+/* Minimum space between characters, in pixels. Added to the percentual
+ * spacing. This pixel-based value guarantees enough space even with small
+ * fonts.
+ */
+#ifndef MF_KERNING_SPACE_PIXELS
+#define MF_KERNING_SPACE_PIXELS 3
+#endif
+
+/* Maximum adjustment done by the kerning algorithm, as percent of the
+ * glyph width.
+ */
+#ifndef MF_KERNING_LIMIT
+#define MF_KERNING_LIMIT 20
+#endif
+
+/* Spacing of tabulator stops. The value is multiplied by the width of the
+ * 'm' character in the current font.
+ */
+#ifndef MF_TABSIZE
+#define MF_TABSIZE 8
+#endif
+
+
+/*************************************************************************
+ * Configuration settings to strip down library to reduce resource usage *
+ *************************************************************************/
+
+/* Enable or disable the kerning module.
+ * Disabling it saves some code size and run time, but causes the spacing
+ * between characters to be less consistent.
+ */
+#ifndef MF_USE_KERNING
+#define MF_USE_KERNING 1
+#endif
+
+/* Enable or disable the advanced word wrap algorithm.
+ * If disabled, uses a simpler algorithm.
+ */
+#ifndef MF_USE_ADVANCED_WORDWRAP
+#define MF_USE_ADVANCED_WORDWRAP 1
+#endif
+
+/* Enable of disable the justification algorithm.
+ * If disabled, mf_render_justified renders just left-aligned.
+ */
+#ifndef MF_USE_JUSTIFY
+#define MF_USE_JUSTIFY 1
+#endif
+
+/* Enable or disable the center and right alignment code.
+ * If disabled, any alignment results in MF_ALIGN_LEFT.
+ */
+#ifndef MF_USE_ALIGN
+#define MF_USE_ALIGN 1
+#endif
+
+/* Enable or disable the support for tab alignment.
+ * If disabled, tabs will be rendered as regular space character.
+ */
+#ifndef MF_USE_TABS
+#define MF_USE_TABS 1
+#endif
+
+/* Number of vertical zones to use when computing kerning.
+ * Larger values give more accurate kerning, but are slower and use somewhat
+ * more memory. There is no point to increase this beyond the height of the
+ * font.
+ */
+#ifndef MF_KERNING_ZONES
+#define MF_KERNING_ZONES 16
+#endif
+
+
+
+/* Add extern "C" when used from C++. */
+#ifdef __cplusplus
+#define MF_EXTERN extern "C"
+#else
+#define MF_EXTERN extern
+#endif
+
+#endif
+
diff --git a/src/gdisp/mcufont/mf_encoding.c b/src/gdisp/mcufont/mf_encoding.c
new file mode 100644
index 00000000..4e3975ae
--- /dev/null
+++ b/src/gdisp/mcufont/mf_encoding.c
@@ -0,0 +1,69 @@
+#include "mf_encoding.h"
+
+#if MF_ENCODING == MF_ENCODING_UTF8
+
+mf_char mf_getchar(mf_str *str)
+{
+ uint8_t c;
+ uint8_t tmp, seqlen;
+ uint16_t result;
+
+ c = **str;
+ if (!c)
+ return 0;
+
+ (*str)++;
+
+ if ((c & 0x80) == 0)
+ {
+ /* Just normal ASCII character. */
+ return c;
+ }
+ else if ((c & 0xC0) == 0x80)
+ {
+ /* Dangling piece of corrupted multibyte sequence.
+ * Did you cut the string in the wrong place?
+ */
+ return c;
+ }
+ else if ((**str & 0xC0) == 0xC0)
+ {
+ /* Start of multibyte sequence without any following bytes.
+ * Silly. Maybe you are using the wrong encoding.
+ */
+ return c;
+ }
+ else
+ {
+ /* Beginning of a multi-byte sequence.
+ * Find out how many characters and combine them.
+ */
+ seqlen = 2;
+ tmp = 0x20;
+ result = 0;
+ while ((c & tmp) && (seqlen < 5))
+ {
+ seqlen++;
+ tmp >>= 1;
+
+ result = (result << 6) | (**str & 0x3F);
+ (*str)++;
+ }
+
+ result = (result << 6) | (**str & 0x3F);
+ (*str)++;
+
+ result |= (c & (tmp - 1)) << ((seqlen - 1) * 6);
+ return result;
+ }
+}
+
+void mf_rewind(mf_str *str)
+{
+ (*str)--;
+
+ while ((**str & 0x80) != 0x00 && (**str & 0xC0) != 0xC0)
+ (*str)--;
+}
+
+#endif
diff --git a/src/gdisp/mcufont/mf_encoding.h b/src/gdisp/mcufont/mf_encoding.h
new file mode 100644
index 00000000..e96718b7
--- /dev/null
+++ b/src/gdisp/mcufont/mf_encoding.h
@@ -0,0 +1,53 @@
+/* Simple UTF-8 decoder. Also implements the much simpler ASCII and UTF16
+ * input encodings.
+ */
+
+#ifndef _MF_ENCODING_H_
+#define _MF_ENCODING_H_
+
+#include "mf_config.h"
+#include <stdint.h>
+
+/* Type used to represent characters internally. */
+#if MF_ENCODING == MF_ENCODING_ASCII
+typedef char mf_char;
+#else
+typedef uint16_t mf_char;
+#endif
+
+/* Type used to represent input strings. */
+#if MF_ENCODING == MF_ENCODING_ASCII
+typedef const char * mf_str;
+#elif MF_ENCODING == MF_ENCODING_UTF8
+typedef const char * mf_str;
+#elif MF_ENCODING == MF_ENCODING_UTF16
+typedef const uint16_t * mf_str;
+#elif MF_ENCODING == MF_ENCODING_WCHAR
+#include <stddef.h>
+typedef const wchar_t * mf_str;
+#endif
+
+/* Returns the next character in the string and advances the pointer.
+ * When the string ends, returns 0 and leaves the pointer at the 0 byte.
+ *
+ * str: Pointer to variable holding current location in string.
+ * Initialize it to the start of the string.
+ *
+ * Returns: The next character, as unicode codepoint.
+ */
+#if MF_ENCODING == MF_ENCODING_UTF8
+MF_EXTERN mf_char mf_getchar(mf_str *str);
+#else
+static mf_char mf_getchar(mf_str *str) { return *(*str)++; }
+#endif
+
+/* Moves back the pointer to the beginning of the previous character.
+ * Be careful not to go beyond the start of the string.
+ */
+#if MF_ENCODING == MF_ENCODING_UTF8
+MF_EXTERN void mf_rewind(mf_str *str);
+#else
+static void mf_rewind(mf_str *str) { (*str)--; }
+#endif
+
+#endif
diff --git a/src/gdisp/mcufont/mf_font.c b/src/gdisp/mcufont/mf_font.c
new file mode 100644
index 00000000..698a3d8e
--- /dev/null
+++ b/src/gdisp/mcufont/mf_font.c
@@ -0,0 +1,77 @@
+#include "mf_font.h"
+#include <stdbool.h>
+
+/* This will be made into a list of included fonts using macro magic. */
+#define MF_INCLUDED_FONTS 0
+
+/* Included fonts begin here */
+#include MF_FONT_FILE_NAME
+/* Include fonts end here */
+
+uint8_t mf_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state)
+{
+ uint8_t width;
+ width = font->render_character(font, x0, y0, character, callback, state);
+
+ if (!width)
+ {
+ width = font->render_character(font, x0, y0, font->fallback_character,
+ callback, state);
+ }
+
+ return width;
+}
+
+uint8_t mf_character_width(const struct mf_font_s *font,
+ mf_char character)
+{
+ uint8_t width;
+ width = font->character_width(font, character);
+
+ if (!width)
+ {
+ width = font->character_width(font, font->fallback_character);
+ }
+
+ return width;
+}
+
+/* Avoids a dependency on libc */
+static bool strequals(const char *a, const char *b)
+{
+ while (*a)
+ {
+ if (*a++ != *b++)
+ return false;
+ }
+ return (!*b);
+}
+
+const struct mf_font_s *mf_find_font(const char *name)
+{
+ const struct mf_font_list_s *f;
+ f = MF_INCLUDED_FONTS;
+
+ while (f)
+ {
+ if (strequals(f->font->full_name, name) ||
+ strequals(f->font->short_name, name))
+ {
+ return f->font;
+ }
+
+ f = f->next;
+ }
+
+ return 0;
+}
+
+const struct mf_font_list_s *mf_get_font_list()
+{
+ return MF_INCLUDED_FONTS;
+}
+
diff --git a/src/gdisp/mcufont/mf_font.h b/src/gdisp/mcufont/mf_font.h
new file mode 100644
index 00000000..591ebab6
--- /dev/null
+++ b/src/gdisp/mcufont/mf_font.h
@@ -0,0 +1,118 @@
+/* Generic font type that supports fonts with multiple kinds of compression.
+ * Provides an interface for decoding and rendering single characters.
+ */
+
+#ifndef _MF_FONT_H_
+#define _MF_FONT_H_
+
+#include "mf_encoding.h"
+
+/* Callback function that writes pixels to screen / buffer / whatever.
+ *
+ * x: X coordinate of the first pixel to write.
+ * y: Y coordinate of the first pixel to write.
+ * count: Number of pixels to fill (horizontally).
+ * alpha: The "opaqueness" of the pixels, 0 for background, 255 for text.
+ * state: Free variable that was passed to render_character().
+ */
+typedef void (*mf_pixel_callback_t) (int16_t x, int16_t y, uint8_t count,
+ uint8_t alpha, void *state);
+
+/* General information about a font. */
+struct mf_font_s
+{
+ /* Full name of the font, comes from the original font file. */
+ const char *full_name;
+
+ /* Short name of the font, comes from file name. */
+ const char *short_name;
+
+ /* Width and height of the character bounding box. */
+ uint8_t width;
+ uint8_t height;
+
+ /* Minimum and maximum tracking width of characters. */
+ uint8_t min_x_advance;
+ uint8_t max_x_advance;
+
+ /* Location of the text baseline relative to character. */
+ uint8_t baseline_x;
+ uint8_t baseline_y;
+
+ /* Line height of the font (vertical advance). */
+ uint8_t line_height;
+
+ /* Flags identifying various aspects of the font. */
+ uint8_t flags;
+
+ /* Fallback character to use for missing glyphs. */
+ mf_char fallback_character;
+
+ /* Function to get character width. Should return 0 if character is
+ * not found. */
+ uint8_t (*character_width)(const struct mf_font_s *font, mf_char character);
+
+ /* Function to render a character. Returns the character width or 0 if
+ * character is not found. */
+ uint8_t (*render_character)(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state);
+};
+
+/* The flag definitions for the font.flags field. */
+#define MF_FONT_FLAG_MONOSPACE 0x01
+#define MF_FONT_FLAG_BW 0x02
+
+/* Lookup structure for searching fonts by name. */
+struct mf_font_list_s
+{
+ const struct mf_font_list_s *next;
+ const struct mf_font_s *font;
+};
+
+
+/* Function to decode and render a single character.
+ *
+ * font: Pointer to the font definition.
+ * x0, y0: Upper left corner of the target area.
+ * character: The character code (unicode) to render.
+ * callback: Callback function to write out the pixels.
+ * state: Free variable for caller to use (can be NULL).
+ *
+ * Returns width of the character.
+ */
+MF_EXTERN uint8_t mf_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state);
+
+/* Function to get the width of a single character.
+ * This is not necessarily the bounding box of the character
+ * data, but rather the tracking width.
+ *
+ * font: Pointer to the font definition.
+ * character: The character code (unicode) to render.
+ *
+ * Returns width of the character in pixels.
+ */
+MF_EXTERN uint8_t mf_character_width(const struct mf_font_s *font,
+ mf_char character);
+
+/* Find a font based on name. The name can be either short name or full name.
+ * Note: You can pass MF_INCLUDED_FONTS to search among all the included .h
+ * files.
+ *
+ * name: Font name to search for.
+ * fonts: Pointer to the first font search entry.
+ *
+ * Returns a pointer to the font or NULL if not found.
+ */
+MF_EXTERN const struct mf_font_s *mf_find_font(const char *name);
+
+/* Get the list of included fonts */
+MF_EXTERN const struct mf_font_list_s *mf_get_font_list();
+
+#endif \ No newline at end of file
diff --git a/src/gdisp/mcufont/mf_justify.c b/src/gdisp/mcufont/mf_justify.c
new file mode 100644
index 00000000..1938bb6a
--- /dev/null
+++ b/src/gdisp/mcufont/mf_justify.c
@@ -0,0 +1,321 @@
+#include "mf_justify.h"
+#include "mf_kerning.h"
+
+#if MF_USE_TABS
+/* Round the X coordinate up to the nearest tab stop. */
+static int16_t mf_round_to_tab(const struct mf_font_s *font,
+ int16_t x0, int16_t x)
+{
+ int16_t tabw, dx;
+
+ tabw = mf_character_width(font, 'm') * MF_TABSIZE;
+
+ /* Always atleast 1 space */
+ x += mf_character_width(font, ' ');
+
+ /* Round to next tab stop */
+ dx = x - x0 + font->baseline_x;
+ x += tabw - (dx % tabw);
+
+ return x;
+}
+
+/* Round the X coordinate down to the nearest tab stop. */
+static int16_t mf_round_to_prev_tab(const struct mf_font_s *font,
+ int16_t x0, int16_t x)
+{
+ int16_t tabw, dx;
+
+ tabw = mf_character_width(font, 'm') * MF_TABSIZE;
+
+ /* Always atleast 1 space */
+ x -= mf_character_width(font, ' ');
+
+ /* Round to previous tab stop */
+ dx = x0 - x + font->baseline_x;
+ x -= tabw - (dx % tabw);
+
+ return x;
+}
+#endif
+
+int16_t mf_get_string_width(const struct mf_font_s *font, mf_str text,
+ uint16_t count, bool kern)
+{
+ int16_t result = 0;
+ uint16_t c1 = 0, c2;
+
+ if (!count)
+ count = 0xFFFF;
+
+ while (count-- && *text)
+ {
+ c2 = mf_getchar(&text);
+
+ if (kern && c1 != 0)
+ result += mf_compute_kerning(font, c1, c2);
+
+ result += mf_character_width(font, c2);
+ c1 = c2;
+ }
+
+ return result;
+}
+
+/* Return the length of the string without trailing spaces. */
+static uint16_t strip_spaces(mf_str text, uint16_t count, mf_char *last_char)
+{
+ uint16_t i = 0, result = 0;
+ mf_char tmp = 0;
+
+ if (!count)
+ count = 0xFFFF;
+
+ while (count-- && *text)
+ {
+ i++;
+ tmp = mf_getchar(&text);
+ if (tmp != ' ' && tmp != 0xA0 && tmp != '\n' &&
+ tmp != '\r' && tmp != '\t')
+ {
+ result = i;
+ }
+ }
+
+ if (last_char)
+ {
+ if (!*text)
+ *last_char = 0;
+ else
+ *last_char = tmp;
+ }
+
+ return result;
+}
+
+/* Render left-aligned string, left edge at x0. */
+static void render_left(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ int16_t x;
+ mf_char c1 = 0, c2;
+
+ x = x0 - font->baseline_x;
+ while (count--)
+ {
+ c2 = mf_getchar(&text);
+
+ if (c2 == '\t')
+ {
+#if MF_USE_TABS
+ x = mf_round_to_tab(font, x0, x);
+ c1 = ' ';
+ continue;
+#else
+ c2 = ' ';
+#endif
+ }
+
+ if (c1 != 0)
+ x += mf_compute_kerning(font, c1, c2);
+
+ x += callback(x, y0, c2, state);
+ c1 = c2;
+ }
+}
+
+#if !MF_USE_ALIGN
+
+void mf_render_aligned(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ enum mf_align_t align,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ int16_t string_width;
+ count = strip_spaces(text, count, 0);
+ render_left(font, x0, y0, text, count, callback, state);
+}
+
+#else
+
+/* Render right-aligned string, right edge at x0. */
+static void render_right(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ int16_t x;
+ uint16_t i;
+ mf_char c1, c2 = 0;
+ mf_str tmp;
+
+ /* Go to the end of the line. */
+ for (i = 0; i < count; i++)
+ mf_getchar(&text);
+
+ x = x0 - font->baseline_x;
+ for (i = 0; i < count; i++)
+ {
+ mf_rewind(&text);
+ tmp = text;
+ c1 = mf_getchar(&tmp);
+
+ /* Perform tab alignment */
+ if (c1 == '\t')
+ {
+#if MF_USE_TABS
+ x = mf_round_to_prev_tab(font, x0, x);
+ c2 = ' ';
+ continue;
+#else
+ c1 = ' ';
+#endif
+ }
+
+ /* Apply the nominal character width */
+ x -= mf_character_width(font, c1);
+
+ /* Apply kerning */
+ if (c2 != 0)
+ x -= mf_compute_kerning(font, c1, c2);
+
+ callback(x, y0, c1, state);
+ c2 = c1;
+ }
+}
+
+void mf_render_aligned(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ enum mf_align_t align,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ int16_t string_width;
+ count = strip_spaces(text, count, 0);
+
+ if (align == MF_ALIGN_LEFT)
+ {
+ render_left(font, x0, y0, text, count, callback, state);
+ }
+ if (align == MF_ALIGN_CENTER)
+ {
+ string_width = mf_get_string_width(font, text, count, false);
+ x0 -= string_width / 2;
+ render_left(font, x0, y0, text, count, callback, state);
+ }
+ else if (align == MF_ALIGN_RIGHT)
+ {
+ render_right(font, x0, y0, text, count, callback, state);
+ }
+}
+
+#endif
+
+
+#if !MF_USE_JUSTIFY
+
+void mf_render_justified(const struct mf_font_s *font,
+ int16_t x0, int16_t y0, int16_t width,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ mf_render_aligned(font, x0, y0, MF_ALIGN_LEFT, text, count, callback, state);
+}
+
+#else
+
+/* Returns true if the character is a justification point, i.e. expands
+ * when the text is being justified. */
+static bool is_justify_space(uint16_t c)
+{
+ return c == ' ' || c == 0xA0;
+}
+
+/* Count the number of space characters in string */
+static uint16_t count_spaces(mf_str text, uint16_t count)
+{
+ uint16_t spaces = 0;
+ while (count-- && *text)
+ {
+ if (is_justify_space(mf_getchar(&text)))
+ spaces++;
+ }
+ return spaces;
+}
+
+void mf_render_justified(const struct mf_font_s *font,
+ int16_t x0, int16_t y0, int16_t width,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state)
+{
+ int16_t string_width, adjustment;
+ uint16_t num_spaces;
+ mf_char last_char;
+
+ count = strip_spaces(text, count, &last_char);
+
+ if (last_char == '\n' || last_char == 0)
+ {
+ /* Line ends in linefeed, do not justify. */
+ render_left(font, x0, y0, text, count, callback, state);
+ return;
+ }
+
+ string_width = mf_get_string_width(font, text, count, false);
+ adjustment = width - string_width;
+ num_spaces = count_spaces(text, count);
+
+ {
+ int16_t x, tmp;
+ uint16_t c1 = 0, c2;
+
+ x = x0 - font->baseline_x;
+ while (count--)
+ {
+ c2 = mf_getchar(&text);
+
+ if (c2 == '\t')
+ {
+#if MF_USE_TABS
+ tmp = x;
+ x = mf_round_to_tab(font, x0, x);
+ adjustment -= x - tmp - mf_character_width(font, '\t');
+ c1 = c2;
+ continue;
+#else
+ c2 = ' ';
+#endif
+ }
+
+ if (is_justify_space(c2))
+ {
+ tmp = (adjustment + num_spaces / 2) / num_spaces;
+ adjustment -= tmp;
+ num_spaces--;
+ x += tmp;
+ }
+
+ if (c1 != 0)
+ {
+ tmp = mf_compute_kerning(font, c1, c2);
+ x += tmp;
+ adjustment -= tmp;
+ }
+
+ x += callback(x, y0, c2, state);
+ c1 = c2;
+ }
+ }
+}
+
+#endif
+
diff --git a/src/gdisp/mcufont/mf_justify.h b/src/gdisp/mcufont/mf_justify.h
new file mode 100644
index 00000000..c3e8ba75
--- /dev/null
+++ b/src/gdisp/mcufont/mf_justify.h
@@ -0,0 +1,74 @@
+/* Text alignment and justification algorithm. Supports left, right, center
+ * alignment and justify. Supports tab stops and kerning.
+ */
+
+#ifndef _MF_JUSTIFY_H_
+#define _MF_JUSTIFY_H_
+
+#include "mf_rlefont.h"
+#include <stdbool.h>
+
+enum mf_align_t
+{
+ MF_ALIGN_LEFT = 0,
+ MF_ALIGN_CENTER,
+ MF_ALIGN_RIGHT
+};
+
+/* Callback for rendering a single character.
+ * x0: Left edge of the target position of character.
+ * y0: Upper edge of the target position of character.
+ * character: Character to render.
+ * state: Free state variable for use by the callback.
+ * Returns the width of the character.
+ */
+typedef uint8_t (*mf_character_callback_t) (int16_t x0, int16_t y0,
+ mf_char character, void *state);
+
+/* Get width of a string in pixels.
+ *
+ * font: Pointer to the font definition.
+ * text: Pointer to start of the text to measure.
+ * count: Number of characters on the line or 0 to read until end of string.
+ * kern: True to consider kerning (slower).
+ */
+MF_EXTERN int16_t mf_get_string_width(const struct mf_font_s *font,
+ mf_str text, uint16_t count, bool kern);
+
+/* Render a single line of aligned text.
+ *
+ * font: Pointer to the font definition.
+ * x0: Depending on aligned, either left, center or right edge of target.
+ * y0: Upper edge of the target area.
+ * align: Type of alignment.
+ * text: Pointer to start of the text to render.
+ * count: Number of characters on the line or 0 to read until end of string.
+ * callback: Callback to call for each character.
+ * state: Free variable for use in the callback.
+ */
+MF_EXTERN void mf_render_aligned(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ enum mf_align_t align,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state);
+
+/* Render a single line of justified text.
+ *
+ * font: Pointer to the font definition.
+ * x0: Left edge of the target area.
+ * y0: Upper edge of the target area.
+ * width: Width of the target area.
+ * text: Pointer to start of the text to render.
+ * count: Number of characters on the line or 0 to read until end of string.
+ * callback: Callback to call for each character.
+ * state: Free variable for use in the callback.
+ */
+MF_EXTERN void mf_render_justified(const struct mf_font_s *font,
+ int16_t x0, int16_t y0, int16_t width,
+ mf_str text, uint16_t count,
+ mf_character_callback_t callback,
+ void *state);
+
+
+#endif
diff --git a/src/gdisp/mcufont/mf_kerning.c b/src/gdisp/mcufont/mf_kerning.c
new file mode 100644
index 00000000..bd5afc1a
--- /dev/null
+++ b/src/gdisp/mcufont/mf_kerning.c
@@ -0,0 +1,118 @@
+#include "mf_kerning.h"
+#include <stdbool.h>
+
+#if MF_USE_KERNING
+
+/* Structure for keeping track of the edge of the glyph as it is rendered. */
+struct kerning_state_s
+{
+ uint8_t edgepos[MF_KERNING_ZONES];
+ uint8_t zoneheight;
+};
+
+/* Pixel callback for analyzing the left edge of a glyph. */
+static void fit_leftedge(int16_t x, int16_t y, uint8_t count, uint8_t alpha,
+ void *state)
+{
+ struct kerning_state_s *s = state;
+
+ if (alpha > 7)
+ {
+ uint8_t zone = y / s->zoneheight;
+ if (x < s->edgepos[zone])
+ s->edgepos[zone] = x;
+ }
+}
+
+/* Pixel callback for analyzing the right edge of a glyph. */
+static void fit_rightedge(int16_t x, int16_t y, uint8_t count, uint8_t alpha,
+ void *state)
+{
+ struct kerning_state_s *s = state;
+
+ if (alpha > 7)
+ {
+ uint8_t zone = y / s->zoneheight;
+ x += count - 1;
+ if (x > s->edgepos[zone])
+ s->edgepos[zone] = x;
+ }
+}
+
+/* Should kerning be done against this character? */
+static bool do_kerning(mf_char c)
+{
+ /* Just a speed optimization, spaces would be ignored anyway. */
+ if (c == ' ' || c == '\n' || c == '\r' || c == '\t')
+ return false;
+
+ /* Do not kern against digits, in order to keep values in tables nicely
+ * aligned. Most fonts have constant width for digits. */
+ if (c >= '0' && c <= '9')
+ return false;
+
+ return true;
+}
+
+static int16_t min16(int16_t a, int16_t b) { return (a < b) ? a : b; }
+static int16_t max16(int16_t a, int16_t b) { return (a > b) ? a : b; }
+static int16_t avg16(int16_t a, int16_t b) { return (a + b) / 2; }
+
+int8_t mf_compute_kerning(const struct mf_font_s *font,
+ mf_char c1, mf_char c2)
+{
+ struct kerning_state_s leftedge, rightedge;
+ uint8_t w1, w2, i, min_space;
+ int16_t normal_space, adjust, max_adjust;
+
+ if (font->flags & MF_FONT_FLAG_MONOSPACE)
+ return 0; /* No kerning for monospace fonts */
+
+ if (!do_kerning(c1) || !do_kerning(c2))
+ return 0;
+
+ /* Compute the height of one kerning zone in pixels */
+ i = (font->height + MF_KERNING_ZONES - 1) / MF_KERNING_ZONES;
+ if (i < 1) i = 1;
+
+ /* Initialize structures */
+ leftedge.zoneheight = rightedge.zoneheight = i;
+ for (i = 0; i < MF_KERNING_ZONES; i++)
+ {
+ leftedge.edgepos[i] = 255;
+ rightedge.edgepos[i] = 0;
+ }
+
+ /* Analyze the edges of both glyphs. */
+ w1 = mf_render_character(font, 0, 0, c1, fit_rightedge, &rightedge);
+ w2 = mf_render_character(font, 0, 0, c2, fit_leftedge, &leftedge);
+
+ /* Find the minimum horizontal space between the glyphs. */
+ min_space = 255;
+ for (i = 0; i < MF_KERNING_ZONES; i++)
+ {
+ uint8_t space;
+ if (leftedge.edgepos[i] == 255 || rightedge.edgepos[i] == 0)
+ continue; /* Outside glyph area. */
+
+ space = w1 - rightedge.edgepos[i] + leftedge.edgepos[i];
+ if (space < min_space)
+ min_space = space;
+ }
+
+ if (min_space == 255)
+ return 0; /* One of the characters is space, or both are punctuation. */
+
+ /* Compute the adjustment of the glyph position. */
+ normal_space = avg16(w1, w2) * MF_KERNING_SPACE_PERCENT / 100;
+ normal_space += MF_KERNING_SPACE_PIXELS;
+ adjust = normal_space - min_space;
+ max_adjust = -max16(w1, w2) * MF_KERNING_LIMIT / 100;
+
+ if (adjust > 0) adjust = 0;
+ if (adjust < max_adjust) adjust = max_adjust;
+
+ return adjust;
+}
+
+#endif
diff --git a/src/gdisp/mcufont/mf_kerning.h b/src/gdisp/mcufont/mf_kerning.h
new file mode 100644
index 00000000..ed885162
--- /dev/null
+++ b/src/gdisp/mcufont/mf_kerning.h
@@ -0,0 +1,29 @@
+/* Automatic kerning for font rendering. This solves the issue where some
+ * fonts (especially serif fonts) have too much space between specific
+ * character pairs, like WA or L'.
+ */
+
+#ifndef _MF_KERNING_H_
+#define _MF_KERNING_H_
+
+#include "mf_config.h"
+#include "mf_rlefont.h"
+
+/* Compute the kerning adjustment when c1 is followed by c2.
+ *
+ * font: Pointer to the font definition.
+ * c1: The previous character.
+ * c2: The next character to render.
+ *
+ * Returns the offset to add to the x position for c2.
+ */
+#if MF_USE_KERNING
+MF_EXTERN int8_t mf_compute_kerning(const struct mf_font_s *font,
+ mf_char c1, mf_char c2);
+#else
+static int8_t mf_compute_kerning(const struct mf_font_s *font,
+ mf_char c1, mf_char c2)
+{ return 0; }
+#endif
+
+#endif \ No newline at end of file
diff --git a/src/gdisp/mcufont/mf_rlefont.c b/src/gdisp/mcufont/mf_rlefont.c
new file mode 100644
index 00000000..8afaa9c2
--- /dev/null
+++ b/src/gdisp/mcufont/mf_rlefont.c
@@ -0,0 +1,282 @@
+#include "mf_rlefont.h"
+
+/* Number of reserved codes before the dictionary entries. */
+#define DICT_START 24
+
+/* Special reference to mean "fill with zeros to the end of the glyph" */
+#define REF_FILLZEROS 16
+
+/* RLE codes */
+#define RLE_CODEMASK 0xC0
+#define RLE_VALMASK 0x3F
+#define RLE_ZEROS 0x00
+#define RLE_64ZEROS 0x40
+#define RLE_ONES 0x80
+#define RLE_SHADE 0xC0
+
+/* Dictionary "fill entries" for encoding bits directly. */
+#define DICT_START7BIT 4
+#define DICT_START6BIT 132
+#define DICT_START5BIT 196
+#define DICT_START4BIT 228
+#define DICT_START3BIT 244
+#define DICT_START2BIT 252
+
+/* Find a pointer to the glyph matching a given character by searching
+ * through the character ranges. If the character is not found, return
+ * pointer to the default glyph.
+ */
+static const uint8_t *find_glyph(const struct mf_rlefont_s *font,
+ uint16_t character)
+{
+ unsigned i, index;
+ const struct mf_rlefont_char_range_s *range;
+ for (i = 0; i < font->char_range_count; i++)
+ {
+ range = &font->char_ranges[i];
+ index = character - range->first_char;
+ if (character >= range->first_char && index < range->char_count)
+ {
+ uint16_t offset = range->glyph_offsets[index];
+ return &range->glyph_data[offset];
+ }
+ }
+
+ return 0;
+}
+
+/* Structure to keep track of coordinates of the next pixel to be written,
+ * and also the bounds of the character. */
+struct renderstate_r
+{
+ int16_t x_begin;
+ int16_t x_end;
+ int16_t x;
+ int16_t y;
+ int16_t y_end;
+ mf_pixel_callback_t callback;
+ void *state;
+};
+
+/* Call the callback to write one pixel to screen, and advance to next
+ * pixel position. */
+static void write_pixels(struct renderstate_r *rstate, uint16_t count,
+ uint8_t alpha)
+{
+ uint8_t rowlen;
+
+ /* Write row-by-row if the run spans multiple rows. */
+ while (rstate->x + count >= rstate->x_end)
+ {
+ rowlen = rstate->x_end - rstate->x;
+ rstate->callback(rstate->x, rstate->y, rowlen, alpha, rstate->state);
+ count -= rowlen;
+ rstate->x = rstate->x_begin;
+ rstate->y++;
+ }
+
+ /* Write the remaining part */
+ if (count)
+ {
+ rstate->callback(rstate->x, rstate->y, count, alpha, rstate->state);
+ rstate->x += count;
+ }
+}
+
+/* Skip the given number of pixels (0 alpha) */
+static void skip_pixels(struct renderstate_r *rstate, uint16_t count)
+{
+ rstate->x += count;
+ while (rstate->x >= rstate->x_end)
+ {
+ rstate->x -= rstate->x_end - rstate->x_begin;
+ rstate->y++;
+ }
+}
+
+/* Decode and write out a RLE-encoded dictionary entry. */
+static void write_rle_dictentry(const struct mf_rlefont_s *font,
+ struct renderstate_r *rstate,
+ uint8_t index)
+{
+ uint16_t offset = font->dictionary_offsets[index];
+ uint16_t length = font->dictionary_offsets[index + 1] - offset;
+ uint16_t i;
+
+ for (i = 0; i < length; i++)
+ {
+ uint8_t code = font->dictionary_data[offset + i];
+ if ((code & RLE_CODEMASK) == RLE_ZEROS)
+ {
+ skip_pixels(rstate, code & RLE_VALMASK);
+ }
+ else if ((code & RLE_CODEMASK) == RLE_64ZEROS)
+ {
+ skip_pixels(rstate, ((code & RLE_VALMASK) + 1) * 64);
+ }
+ else if ((code & RLE_CODEMASK) == RLE_ONES)
+ {
+ write_pixels(rstate, (code & RLE_VALMASK) + 1, 255);
+ }
+ else if ((code & RLE_CODEMASK) == RLE_SHADE)
+ {
+ uint8_t count, alpha;
+ count = ((code & RLE_VALMASK) >> 4) + 1;
+ alpha = ((code & RLE_VALMASK) & 0xF) * 0x11;
+ write_pixels(rstate, count, alpha);
+ }
+ }
+}
+
+/* Get bit count for the "fill entries" */
+static uint8_t fillentry_bitcount(uint8_t index)
+{
+ if (index >= DICT_START2BIT)
+ return 2;
+ else if (index >= DICT_START3BIT)
+ return 3;
+ else if (index >= DICT_START4BIT)
+ return 4;
+ else if (index >= DICT_START5BIT)
+ return 5;
+ else if (index >= DICT_START6BIT)
+ return 6;
+ else
+ return 7;
+}
+
+/* Decode and write out a direct binary codeword */
+static void write_bin_codeword(const struct mf_rlefont_s *font,
+ struct renderstate_r *rstate,
+ uint8_t code)
+{
+ uint8_t bitcount = fillentry_bitcount(code);
+ uint8_t byte = code - DICT_START7BIT;
+ uint8_t runlen = 0;
+
+ while (bitcount--)
+ {
+ if (byte & 1)
+ {
+ runlen++;
+ }
+ else
+ {
+ if (runlen)
+ {
+ write_pixels(rstate, runlen, 255);
+ runlen = 0;
+ }
+
+ skip_pixels(rstate, 1);
+ }
+
+ byte >>= 1;
+ }
+
+ if (runlen)
+ write_pixels(rstate, runlen, 255);
+}
+
+/* Decode and write out a reference codeword */
+static void write_ref_codeword(const struct mf_rlefont_s *font,
+ struct renderstate_r *rstate,
+ uint8_t code)
+{
+ if (code <= 15)
+ {
+ write_pixels(rstate, 1, 0x11 * code);
+ }
+ else if (code == REF_FILLZEROS)
+ {
+ /* Fill with zeroes to end */
+ rstate->y = rstate->y_end;
+ }
+ else if (code < DICT_START)
+ {
+ /* Reserved */
+ }
+ else if (code < DICT_START + font->rle_entry_count)
+ {
+ write_rle_dictentry(font, rstate, code - DICT_START);
+ }
+ else
+ {
+ write_bin_codeword(font, rstate, code);
+ }
+}
+
+/* Decode and write out a reference encoded dictionary entry. */
+static void write_ref_dictentry(const struct mf_rlefont_s *font,
+ struct renderstate_r *rstate,
+ uint8_t index)
+{
+ uint16_t offset = font->dictionary_offsets[index];
+ uint16_t length = font->dictionary_offsets[index + 1] - offset;
+ uint16_t i;
+
+ for (i = 0; i < length; i++)
+ {
+ uint8_t code = font->dictionary_data[offset + i];
+ write_ref_codeword(font, rstate, code);
+ }
+}
+
+/* Decode and write out an arbitrary glyph codeword */
+static void write_glyph_codeword(const struct mf_rlefont_s *font,
+ struct renderstate_r *rstate,
+ uint8_t code)
+{
+ if (code >= DICT_START + font->rle_entry_count &&
+ code < DICT_START + font->dict_entry_count)
+ {
+ write_ref_dictentry(font, rstate, code - DICT_START);
+ }
+ else
+ {
+ write_ref_codeword(font, rstate, code);
+ }
+}
+
+
+uint8_t mf_rlefont_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ uint16_t character,
+ mf_pixel_callback_t callback,
+ void *state)
+{
+ const uint8_t *p;
+ uint8_t width;
+
+ struct renderstate_r rstate;
+ rstate.x_begin = x0;
+ rstate.x_end = x0 + font->width;
+ rstate.x = x0;
+ rstate.y = y0;
+ rstate.y_end = y0 + font->height;
+ rstate.callback = callback;
+ rstate.state = state;
+
+ p = find_glyph((struct mf_rlefont_s*)font, character);
+ if (!p)
+ return 0;
+
+ width = *p++;
+ while (rstate.y < rstate.y_end)
+ {
+ write_glyph_codeword((struct mf_rlefont_s*)font, &rstate, *p++);
+ }
+
+ return width;
+}
+
+uint8_t mf_rlefont_character_width(const struct mf_font_s *font,
+ uint16_t character)
+{
+ const uint8_t *p;
+ p = find_glyph((struct mf_rlefont_s*)font, character);
+ if (!p)
+ return 0;
+
+ return *p;
+}
diff --git a/src/gdisp/mcufont/mf_rlefont.h b/src/gdisp/mcufont/mf_rlefont.h
new file mode 100644
index 00000000..d8275d5c
--- /dev/null
+++ b/src/gdisp/mcufont/mf_rlefont.h
@@ -0,0 +1,74 @@
+/* A compressed font format based on run length encoding and dictionary
+ * compression.
+ */
+
+#ifndef _MF_RLEFONT_H_
+#define _MF_RLEFONT_H_
+
+#include "mf_font.h"
+
+/* Versions of the RLE font format that are supported. */
+#define MF_RLEFONT_VERSION_4_SUPPORTED 1
+
+/* Structure for a range of characters. This implements a sparse storage of
+ * character indices, so that you can e.g. pick a 100 characters in the middle
+ * of the UTF16 range and just store them. */
+struct mf_rlefont_char_range_s
+{
+ /* The number of the first character in this range. */
+ uint16_t first_char;
+
+ /* The total count of characters in this range. */
+ uint16_t char_count;
+
+ /* Lookup table with the start indices into glyph_data. */
+ const uint16_t *glyph_offsets;
+
+ /* The encoded glyph data for glyphs in this range. */
+ const uint8_t *glyph_data;
+};
+
+/* Structure for a single encoded font. */
+struct mf_rlefont_s
+{
+ struct mf_font_s font;
+
+ /* Version of the font definition used. */
+ const uint8_t version;
+
+ /* Big array of the data for all the dictionary entries. */
+ const uint8_t *dictionary_data;
+
+ /* Lookup table with the start indices into dictionary_data.
+ * Contains N+1 entries, so that the length of the entry can
+ * be determined by subtracting from the next offset. */
+ const uint16_t *dictionary_offsets;
+
+ /* Number of dictionary entries using the RLE encoding.
+ * Entries starting at this index use the dictionary encoding. */
+ const uint8_t rle_entry_count;
+
+ /* Total number of dictionary entries.
+ * Entries after this are nonexistent. */
+ const uint8_t dict_entry_count;
+
+ /* Number of discontinuous character ranges */
+ const uint8_t char_range_count;
+
+ /* Array of the character ranges */
+ const struct mf_rlefont_char_range_s *char_ranges;
+};
+
+#ifdef MF_RLEFONT_INTERNALS
+/* Internal functions, don't use these directly. */
+MF_EXTERN uint8_t mf_rlefont_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state);
+
+MF_EXTERN uint8_t mf_rlefont_character_width(const struct mf_font_s *font,
+ mf_char character);
+#endif
+
+#endif
diff --git a/src/gdisp/mcufont/mf_scaledfont.c b/src/gdisp/mcufont/mf_scaledfont.c
new file mode 100644
index 00000000..da2b31fe
--- /dev/null
+++ b/src/gdisp/mcufont/mf_scaledfont.c
@@ -0,0 +1,83 @@
+#include "mf_scaledfont.h"
+
+struct scaled_renderstate
+{
+ mf_pixel_callback_t orig_callback;
+ void *orig_state;
+ uint8_t x_scale;
+ uint8_t y_scale;
+ int16_t x0;
+ int16_t y0;
+};
+
+static void scaled_pixel_callback(int16_t x, int16_t y, uint8_t count,
+ uint8_t alpha, void *state)
+{
+ struct scaled_renderstate *rstate = state;
+ uint8_t dy;
+
+ count *= rstate->x_scale;
+ x = rstate->x0 + x * rstate->x_scale;
+ y = rstate->y0 + y * rstate->y_scale;
+
+ for (dy = 0; dy < rstate->y_scale; dy++)
+ {
+ rstate->orig_callback(x, y + dy, count, alpha, rstate->orig_state);
+ }
+}
+
+static uint8_t scaled_character_width(const struct mf_font_s *font,
+ mf_char character)
+{
+ struct mf_scaledfont_s *sfont = (struct mf_scaledfont_s*)font;
+ uint8_t basewidth;
+
+ basewidth = sfont->basefont->character_width(sfont->basefont, character);
+
+ return sfont->x_scale * basewidth;
+}
+
+static uint8_t scaled_render_character(const struct mf_font_s *font,
+ int16_t x0, int16_t y0,
+ mf_char character,
+ mf_pixel_callback_t callback,
+ void *state)
+{
+ struct mf_scaledfont_s *sfont = (struct mf_scaledfont_s*)font;
+ struct scaled_renderstate rstate;
+ uint8_t basewidth;
+
+ rstate.orig_callback = callback;
+ rstate.orig_state = state;
+ rstate.x_scale = sfont->x_scale;
+ rstate.y_scale = sfont->y_scale;
+ rstate.x0 = x0;
+ rstate.y0 = y0;
+
+ basewidth = sfont->basefont->render_character(sfont->basefont, 0, 0,
+ character, scaled_pixel_callback, &rstate);
+
+ return sfont->x_scale * basewidth;
+}
+
+void mf_scale_font(struct mf_scaledfont_s *newfont,
+ const struct mf_font_s *basefont,
+ uint8_t x_scale, uint8_t y_scale)
+{
+ newfont->font = *basefont;
+ newfont->basefont = basefont;
+
+ newfont->font.width *= x_scale;
+ newfont->font.height *= y_scale;
+ newfont->font.baseline_x *= x_scale;
+ newfont->font.baseline_y *= y_scale;
+ newfont->font.min_x_advance *= x_scale;
+ newfont->font.max_x_advance *= x_scale;
+ newfont->font.line_height *= y_scale;
+ newfont->font.character_width = &scaled_character_width;
+ newfont->font.render_character = &scaled_render_character;
+
+ newfont->x_scale = x_scale;
+ newfont->y_scale = y_scale;
+}
+
diff --git a/src/gdisp/mcufont/mf_scaledfont.h b/src/gdisp/mcufont/mf_scaledfont.h
new file mode 100644
index 00000000..f6607010
--- /dev/null
+++ b/src/gdisp/mcufont/mf_scaledfont.h
@@ -0,0 +1,23 @@
+/* Generate scaled (nearest-neighbor) fonts. This can be used for displaying
+ * larger text without spending the memory required for including larger fonts.
+ */
+
+#ifndef _MF_SCALEDFONT_H_
+#define _MF_SCALEDFONT_H_
+
+#include "mf_font.h"
+
+struct mf_scaledfont_s
+{
+ struct mf_font_s font;
+
+ const struct mf_font_s *basefont;
+ uint8_t x_scale;
+ uint8_t y_scale;
+};
+
+MF_EXTERN void mf_scale_font(struct mf_scaledfont_s *newfont,
+ const struct mf_font_s *basefont,
+ uint8_t x_scale, uint8_t y_scale);
+
+#endif
diff --git a/src/gdisp/mcufont/mf_wordwrap.c b/src/gdisp/mcufont/mf_wordwrap.c
new file mode 100644
index 00000000..cc735a4e
--- /dev/null
+++ b/src/gdisp/mcufont/mf_wordwrap.c
@@ -0,0 +1,290 @@
+#include "mf_wordwrap.h"
+
+/* Returns true if the line can be broken at this character. */
+static bool is_wrap_space(uint16_t c)
+{
+ return c == ' ' || c == '\n' || c == '\t' || c == '\r' || c == '-';
+}
+
+#if MF_USE_ADVANCED_WORDWRAP
+
+/* Represents a single word and the whitespace after it. */
+struct wordlen_s
+{
+ int16_t word; /* Length of the word in pixels. */
+ int16_t space; /* Length of the whitespace in pixels. */
+ uint16_t chars; /* Number of characters in word + space, combined. */
+};
+
+/* Take the next word from the string and compute its width.
+ * Returns true if the word ends in a linebreak. */
+static bool get_wordlen(const struct mf_font_s *font, mf_str *text,
+ struct wordlen_s *result)
+{
+ mf_char c;
+ mf_str prev;
+
+ result->word = 0;
+ result->space = 0;
+ result->chars = 0;
+
+ c = mf_getchar(text);
+ while (c && !is_wrap_space(c))
+ {
+ result->chars++;
+ result->word += mf_character_width(font, c);
+ c = mf_getchar(text);
+ }
+
+ prev = *text;
+ while (c && is_wrap_space(c))
+ {
+ result->chars++;
+
+ if (c == ' ')
+ result->space += mf_character_width(font, c);
+ else if (c == '\t')
+ result->space += mf_character_width(font, 'm') * MF_TABSIZE;
+ else if (c == '\n')
+ break;
+
+ prev = *text;
+ c = mf_getchar(text);
+ }
+
+ /* The last loop reads the first character of next word, put it back. */
+ if (c)
+ *text = prev;
+
+ return (c == '\0' || c == '\n');
+}
+
+/* Represents the rendered length for a single line. */
+struct linelen_s
+{
+ mf_str start; /* Start of the text for line. */
+ uint16_t chars; /* Total number of characters on the line. */
+ int16_t width; /* Total length of all words + whitespace on the line in pixels. */
+ bool linebreak; /* True if line ends in a linebreak */
+ struct wordlen_s last_word; /* Last word on the line. */
+ struct wordlen_s last_word_2; /* Second to last word on the line. */
+};
+
+/* Append word onto the line if it fits. If it would overflow, don't add and
+ * return false. */
+static bool append_word(const struct mf_font_s *font, int16_t width,
+ struct linelen_s *current, mf_str *text)
+{
+ mf_str tmp = *text;
+ struct wordlen_s wordlen;
+ bool linebreak;
+
+ linebreak = get_wordlen(font, &tmp, &wordlen);
+
+ if (current->width + wordlen.word <= width)
+ {
+ *text = tmp;
+ current->last_word_2 = current->last_word;
+ current->last_word = wordlen;
+ current->linebreak = linebreak;
+ current->chars += wordlen.chars;
+ current->width += wordlen.word + wordlen.space;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+/* Append a character to the line if it fits. */
+static bool append_char(const struct mf_font_s *font, int16_t width,
+ struct linelen_s *current, mf_str *text)
+{
+ mf_str tmp = *text;
+ mf_char c;
+ uint16_t w;
+
+ c = mf_getchar(&tmp);
+ w = mf_character_width(font, c);
+
+ if (current->width + w <= width)
+ {
+ *text = tmp;
+ current->chars++;
+ current->width += w;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+static int16_t abs16(int16_t x) { return (x > 0) ? x : -x; }
+static int32_t sq16(int16_t x) { return (int32_t)x * x; }
+
+/* Try to balance the lines by potentially moving one word from the previous
+ * line to the the current one. */
+static void tune_lines(struct linelen_s *current, struct linelen_s *previous,
+ int16_t max_width)
+{
+ int16_t curw1, prevw1;
+ int16_t curw2, prevw2;
+ int32_t delta1, delta2;
+
+ /* If the lines are rendered as is */
+ curw1 = current->width - current->last_word.space;
+ prevw1 = previous->width - previous->last_word.space;
+ delta1 = sq16(max_width - prevw1) + sq16(max_width - curw1);
+
+ /* If the last word is moved */
+ curw2 = current->width + previous->last_word.word;
+ prevw2 = previous->width - previous->last_word.word
+ - previous->last_word.space
+ - previous->last_word_2.space;
+ delta2 = sq16(max_width - prevw2) + sq16(max_width - curw2);
+
+ if (delta1 > delta2 && curw2 <= max_width)
+ {
+ /* Do the change. */
+ uint16_t chars;
+
+ chars = previous->last_word.chars;
+ previous->chars -= chars;
+ current->chars += chars;
+ previous->width -= previous->last_word.word + previous->last_word.space;
+ current->width += previous->last_word.word + previous->last_word.space;
+ previous->last_word = previous->last_word_2;
+
+ while (chars--) mf_rewind(&current->start);
+ }
+}
+
+void mf_wordwrap(const struct mf_font_s *font, int16_t width,
+ mf_str text, mf_line_callback_t callback, void *state)
+{
+ struct linelen_s current = {};
+ struct linelen_s previous = {};
+ bool full;
+
+ current.start = text;
+
+ while (*text)
+ {
+ full = !append_word(font, width, &current, &text);
+
+ if (full || current.linebreak)
+ {
+ if (!current.chars)
+ {
+ /* We have a very long word. We must just cut it off at some
+ * point. */
+ while (append_char(font, width, &current, &text));
+ }
+
+ if (previous.chars)
+ {
+ /* Tune the length and dispatch the previous line. */
+ if (!previous.linebreak && !current.linebreak)
+ tune_lines(&current, &previous, width);
+
+ if (!callback(previous.start, previous.chars, state))
+ return;
+ }
+
+ previous = current;
+ current.start = text;
+ current.chars = 0;
+ current.width = 0;
+ current.linebreak = false;
+ current.last_word.word = 0;
+ current.last_word.space = 0;
+ current.last_word.chars = 0;
+ }
+ }
+
+ /* Dispatch the last lines. */
+ if (previous.chars)
+ {
+ if (!callback(previous.start, previous.chars, state))
+ return;
+ }
+
+ if (current.chars)
+ callback(current.start, current.chars, state);
+}
+
+#else
+
+void mf_wordwrap(const struct mf_font_s *font, int16_t width,
+ mf_str text, mf_line_callback_t callback, void *state)
+{
+ mf_str orig = text;
+ mf_str linestart;
+
+ /* Current line width and character count */
+ int16_t lw_cur = 0, cc_cur = 0;
+
+ /* Previous wrap point */
+ int16_t cc_prev;
+ mf_str ls_prev;
+
+ linestart = text;
+
+ while (*text)
+ {
+ cc_prev = 0;
+ ls_prev = text;
+
+ while (*text)
+ {
+ mf_char c;
+ int16_t new_width;
+ mf_str tmp;
+
+ tmp = text;
+ c = mf_getchar(&text);
+ new_width = lw_cur + mf_character_width(font, c);
+
+ if (c == '\n')
+ {
+ cc_prev = cc_cur + 1;
+ ls_prev = text;
+ break;
+ }
+
+ if (new_width > width)
+ {
+ text = tmp;
+ break;
+ }
+
+ cc_cur++;
+ lw_cur = new_width;
+
+ if (is_wrap_space(c))
+ {
+ cc_prev = cc_cur;
+ ls_prev = text;
+ }
+ }
+
+ /* Handle unbreakable words */
+ if (cc_prev == 0)
+ {
+ cc_prev = cc_cur;
+ ls_prev = text;
+ }
+
+ if (!callback(linestart, cc_prev, state))
+ return;
+
+ linestart = ls_prev;
+ text = linestart;
+ lw_cur = 0;
+ cc_cur = 0;
+ }
+}
+
+#endif
diff --git a/src/gdisp/mcufont/mf_wordwrap.h b/src/gdisp/mcufont/mf_wordwrap.h
new file mode 100644
index 00000000..bf3dbcb7
--- /dev/null
+++ b/src/gdisp/mcufont/mf_wordwrap.h
@@ -0,0 +1,32 @@
+/* Word wrapping algorithm with UTF-8 support. More than just a basic greedy
+ * word-wrapper: it attempts to balance consecutive lines as pairs.
+ */
+
+#ifndef _MF_WORDWRAP_H_
+#define _MF_WORDWRAP_H_
+
+#include "mf_rlefont.h"
+#include <stdbool.h>
+
+/* Callback function for handling each line.
+ *
+ * line: Pointer to the beginning of the string for this line.
+ * count: Number of characters on the line.
+ * state: Free variable that was passed to wordwrap().
+ *
+ * Returns: true to continue, false to stop after this line.
+ */
+typedef bool (*mf_line_callback_t) (mf_str line, uint16_t count,
+ void *state);
+
+/* Word wrap a piece of text. Calls the callback function for each line.
+ *
+ * font: Font to use for metrics.
+ * width: Maximum line width in pixels.
+ * text: Pointer to the start of the text to process.
+ * state: Free variable for caller to use (can be NULL).
+ */
+MF_EXTERN void mf_wordwrap(const struct mf_font_s *font, int16_t width,
+ mf_str text, mf_line_callback_t callback, void *state);
+
+#endif