First cut - beautiful new font handling by PetteriAimonen

ugfx_release_2.6
inmarket 2013-07-28 17:08:45 +10:00
parent f84bc2a3f6
commit 3977ee687f
57 changed files with 21190 additions and 1265 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ build
*.lst *.lst
*.o *.o
*.map *.map
src/gdisp/fonts/*.dat

View File

@ -57,11 +57,8 @@
#define GDISP_NEED_MSGAPI FALSE #define GDISP_NEED_MSGAPI FALSE
/* Builtin Fonts */ /* Builtin Fonts */
#define GDISP_INCLUDE_FONT_SMALL FALSE #define GDISP_INCLUDE_FONT_DEJAVUSANS12 TRUE
#define GDISP_INCLUDE_FONT_LARGER FALSE #define GDISP_INCLUDE_FONT_DEJAVUSANS24 TRUE
#define GDISP_INCLUDE_FONT_UI1 FALSE
#define GDISP_INCLUDE_FONT_UI2 TRUE
#define GDISP_INCLUDE_FONT_LARGENUMBERS TRUE
/* Features for the GINPUT sub-system. */ /* Features for the GINPUT sub-system. */
#define GINPUT_NEED_MOUSE TRUE #define GINPUT_NEED_MOUSE TRUE

View File

@ -46,8 +46,8 @@ void drawScreen(void) {
char *msg = "ChibiOS/GFX"; char *msg = "ChibiOS/GFX";
font_t font1, font2; font_t font1, font2;
font1 = gdispOpenFont("UI2 Double"); font1 = gdispOpenFont("DejaVuSans24");
font2 = gdispOpenFont("LargeNumbers"); font2 = gdispOpenFont("DejaVuSans12");
gdispClear(White); gdispClear(White);
gdispDrawString(gdispGetWidth()-gdispGetStringWidth(msg, font1)-3, 3, msg, font1, Black); 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 */ gdispDrawBox (5 * COLOR_SIZE + 3, 3, COLOR_SIZE, COLOR_SIZE, Black); /* White */
/* pens */ /* pens */
gdispDrawString(OFFSET * 2, DRAW_PEN(1), "1", font2, Black); gdispFillStringBox(OFFSET * 2, DRAW_PEN(1), PEN_SIZE, PEN_SIZE, "1", font2, White, Black, justifyCenter);
gdispDrawString(OFFSET * 2, DRAW_PEN(2), "2", font2, Black); gdispFillStringBox(OFFSET * 2, DRAW_PEN(2), PEN_SIZE, PEN_SIZE, "2", font2, White, Black, justifyCenter);
gdispDrawString(OFFSET * 2, DRAW_PEN(3), "3", font2, Black); gdispFillStringBox(OFFSET * 2, DRAW_PEN(3), PEN_SIZE, PEN_SIZE, "3", font2, White, Black, justifyCenter);
gdispDrawString(OFFSET * 2, DRAW_PEN(4), "4", font2, Black); gdispFillStringBox(OFFSET * 2, DRAW_PEN(4), PEN_SIZE, PEN_SIZE, "4", font2, White, Black, justifyCenter);
gdispDrawString(OFFSET * 2, DRAW_PEN(5), "5", font2, Black); gdispFillStringBox(OFFSET * 2, DRAW_PEN(5), PEN_SIZE, PEN_SIZE, "5", font2, White, Black, justifyCenter);
gdispCloseFont(font1); gdispCloseFont(font1);
gdispCloseFont(font2); gdispCloseFont(font2);
} }

View File

@ -50,12 +50,17 @@
#define GDISP_NEED_ASYNC FALSE #define GDISP_NEED_ASYNC FALSE
#define GDISP_NEED_MSGAPI FALSE #define GDISP_NEED_MSGAPI FALSE
/* GDISP - builtin fonts */ /* GDISP - fonts to include */
#define GDISP_INCLUDE_FONT_SMALL FALSE #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE
#define GDISP_INCLUDE_FONT_LARGER FALSE #define GDISP_INCLUDE_FONT_DEJAVUSANS12 TRUE
#define GDISP_INCLUDE_FONT_UI1 FALSE #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE
#define GDISP_INCLUDE_FONT_UI2 TRUE #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE
#define GDISP_INCLUDE_FONT_LARGENUMBERS 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 */ /* GDISP image decoders */
#define GDISP_NEED_IMAGE_NATIVE FALSE #define GDISP_NEED_IMAGE_NATIVE FALSE
@ -124,7 +129,9 @@
/* Optional Parameters for various subsystems */ /* 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_MAXIMUM_SIZE 32
#define GEVENT_MAX_SOURCE_LISTENERS 32 #define GEVENT_MAX_SOURCE_LISTENERS 32
#define GTIMER_THREAD_WORKAREA_SIZE 512 #define GTIMER_THREAD_WORKAREA_SIZE 512

View File

@ -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 */
/** @} */

View File

@ -55,7 +55,11 @@ typedef struct point_t {
/** /**
* @brief Type for the text justification. * @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. * @brief Type for the font metric.
*/ */
@ -63,7 +67,7 @@ typedef enum fontmetric {fontHeight, fontDescendersHeight, fontLineSpacing, font
/** /**
* @brief The type of a 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. * @brief Type for the screen orientation.
*/ */
@ -489,7 +493,7 @@ extern "C" {
* *
* @api * @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. * @brief Draw a text character with a filled background.
@ -502,7 +506,7 @@ extern "C" {
* *
* @api * @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 #endif
/* Read a pixel Function */ /* Read a pixel Function */
@ -761,6 +765,17 @@ void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
*/ */
void gdispCloseFont(font_t font); 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. * @brief Get the name of the specified font.
* @returns The name of the 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); const char *gdispGetFontName(font_t font);
#endif #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 */ /* Extra Arc Functions */
#if GDISP_NEED_ARC || defined(__DOXYGEN__) #if GDISP_NEED_ARC || defined(__DOXYGEN__)

View File

@ -462,180 +462,130 @@ GDISPDriver GDISP;
#endif #endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT #if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT
#include "gdisp/fonts.h" #include "mcufont.h"
#endif #endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT #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) { static void gdisp_lld_draw_char_callback(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state) {
const fontcolumn_t *ptr; color_t color = *(color_t*)state;
fontcolumn_t column; if (alpha == 255)
coord_t width, height, xscale, yscale; {
coord_t i, j, xs, ys; if (count == 1)
gdisp_lld_draw_pixel(x, y, color);
/* Check we actually have something to print */ else
width = _getCharWidth(font, c); gdisp_lld_fill_area(x, y, count, 1, color);
if (!width) return; }
#if GDISP_NEED_ANTIALIAS
xscale = font->xscale; else
yscale = font->yscale; {
height = font->height * yscale; while (count--)
width *= xscale; {
color_t oldColor;
ptr = _getCharData(font, c);
oldColor = gdisp_lld_get_pixel_color(x, y);
/* Loop through the data and display. The font data is LSBit first, down the column */ oldColor = gdispBlendColor(color, oldColor, alpha);
for(i=0; i < width; i+=xscale) { gdisp_lld_draw_pixel(x, y, oldColor);
/* Get the font bitmap data for the column */
column = *ptr++; x++;
/* 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);
}
} }
} }
#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 #endif
#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXTFILLS #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) { typedef struct {
coord_t width, height; int16_t x0;
coord_t xscale, yscale; 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 */ if (y > s->y && s->x != s->x0)
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
{ {
const fontcolumn_t *ptr; /* Fill background to the end of current line */
fontcolumn_t column; gdisp_lld_fill_area(s->x, s->y, s->x1 - s->x, 1, s->bg);
coord_t i, j, xs, ys; s->y++;
s->x = s->x0;
/* 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. if (y > s->y)
*/ {
static pixel_t buf[sizeof(fontcolumn_t)*8*2]; /* 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);
#if GDISP_NEED_VALIDATION s->y = y;
/* Check our buffer is big enough */ }
if ((unsigned)height > sizeof(buf)/sizeof(buf[0])) return;
#endif if (x > s->x)
{
ptr = _getCharData(font, c); /* Fill background from previous X position */
gdisp_lld_fill_area(s->x, s->y, x - s->x, 1, s->bg);
/* Loop through the data and display. The font data is LSBit first, down the column */ s->x = x;
for(i = 0; i < width; i+=xscale) { }
/* Get the font bitmap data for the column */
column = *ptr++; if (!count)
return;
/* Draw each pixel */
for(j = 0; j < height; j+=yscale, column >>= 1) { if (y == s->y)
if (column & 0x01) { {
for(ys=0; ys < yscale; ys++) s->x += count;
gdispPackPixels(buf, 1, j+ys, 0, color);
} else { if (s->x == s->x1)
for(ys=0; ys < yscale; ys++) {
gdispPackPixels(buf, 1, j+ys, 0, bgcolor); s->x = s->x0;
} s->y++;
}
for(xs=0; xs < xscale; xs++)
gdisp_lld_blit_area_ex(x+i+xs, y, 1, height, 0, 0, 1, buf);
} }
} }
/* Method 3: Create a character bitmap and then blit it */ /* Draw the foreground */
#elif GDISP_HARDWARE_BITFILLS if (alpha == 255 || alpha == 0)
{ {
const fontcolumn_t *ptr; if (count == 1)
fontcolumn_t column; gdisp_lld_draw_pixel(x, y, alpha ? s->fg : s->bg);
coord_t i, j, xs, ys; else
gdisp_lld_fill_area(x, y, count, 1, alpha ? s->fg : s->bg);
/* 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);
}
}
}
/* [Patch by Badger] Write all in one stroke */
gdisp_lld_blit_area_ex(x, y, width, height, 0, 0, width, buf);
} }
#if GDISP_NEED_ANTIALIAS
/* Method 4: Draw pixel by pixel */ else
#else
{ {
const fontcolumn_t *ptr; while (count--)
fontcolumn_t column; {
coord_t i, j, xs, ys; color_t color;
color = gdispBlendColor(s->fg, s->bg, alpha);
ptr = _getCharData(font, c); gdisp_lld_draw_pixel(x, y, color);
/* 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 */ x++;
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);
}
}
} }
} }
#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 #endif

View File

@ -281,8 +281,8 @@ extern "C" {
/* Text Rendering Functions */ /* Text Rendering Functions */
#if GDISP_NEED_TEXT #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_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, char c, font_t font, color_t color, color_t bgcolor); 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 #endif
/* Pixel readback */ /* Pixel readback */

View File

@ -155,7 +155,7 @@ typedef union gdisp_lld_msg {
gfxQueueItem qi; gfxQueueItem qi;
gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWCHAR gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWCHAR
coord_t x, y; coord_t x, y;
char c; uint16_t c;
font_t font; font_t font;
color_t color; color_t color;
} drawchar; } drawchar;
@ -163,7 +163,7 @@ typedef union gdisp_lld_msg {
gfxQueueItem qi; gfxQueueItem qi;
gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLCHAR gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLCHAR
coord_t x, y; coord_t x, y;
char c; uint16_t c;
font_t font; font_t font;
color_t color; color_t color;
color_t bgcolor; color_t bgcolor;

View File

@ -180,6 +180,36 @@
#ifndef GDISP_NEED_IMAGE_ACCOUNTING #ifndef GDISP_NEED_IMAGE_ACCOUNTING
#define GDISP_NEED_IMAGE_ACCOUNTING FALSE #define GDISP_NEED_IMAGE_ACCOUNTING FALSE
#endif #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
/** /**
* @} * @}
* *
@ -220,21 +250,6 @@
* @brief Predefined built in fonts * @brief Predefined built in fonts
* @note Turning off the ones you are not using can save program size. * @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 * @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
/** /**
* @} * @}
* *

View File

@ -17,673 +17,10 @@
#if GFX_USE_GDISP && GDISP_NEED_TEXT #if GFX_USE_GDISP && GDISP_NEED_TEXT
#include "gdisp/fonts.h" #include "mcufont.h"
/* fontSmall - for side buttons */ /* Custom flag to indicate dynamically allocated font */
#if GDISP_INCLUDE_FONT_SMALL #define FONT_FLAG_DYNAMIC 0x80
/* 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
};
/** /**
* Match a pattern against the font name. * 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) { font_t gdispOpenFont(const char *name) {
const struct font **p; const struct mf_font_list_s *fp;
int i;
for(p = BuiltinFontTable; p < BuiltinFontTable+sizeof(BuiltinFontTable)/sizeof(BuiltinFontTable[0]); p++) {
if (matchfont(name, p[0]->name)) fp = mf_get_font_list();
return p[0];
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 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) { const char *gdispGetFontName(font_t font) {
return font->name; return font->short_name;
} }
#endif /* GFX_USE_GDISP && GDISP_NEED_TEXT */ #endif /* GFX_USE_GDISP && GDISP_NEED_TEXT */

Binary file not shown.

View File

@ -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.

Binary file not shown.

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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. */

View File

@ -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.

Binary file not shown.

View File

@ -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. */

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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. */

File diff suppressed because it is too large Load Diff

View File

@ -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. */

File diff suppressed because it is too large Load Diff

View File

@ -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. */

View File

@ -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

View File

@ -17,7 +17,7 @@
#if GFX_USE_GDISP #if GFX_USE_GDISP
#ifdef GDISP_NEED_TEXT #ifdef GDISP_NEED_TEXT
#include "gdisp/fonts.h" #include "mcufont.h"
#endif #endif
/* Include the low level driver information */ /* 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 #endif
#if (GDISP_NEED_TEXT && GDISP_NEED_MULTITHREAD) #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); gfxMutexEnter(&gdispMutex);
gdisp_lld_draw_char(x, y, c, font, color); gdisp_lld_draw_char(x, y, c, font, color);
gfxMutexExit(&gdispMutex); gfxMutexExit(&gdispMutex);
} }
#elif GDISP_NEED_TEXT && GDISP_NEED_ASYNC #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); gdisp_lld_msg_t *p = gdispAllocMsg(GDISP_LLD_MSG_DRAWCHAR);
p->drawchar.x = x; p->drawchar.x = x;
p->drawchar.y = y; 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 #endif
#if (GDISP_NEED_TEXT && GDISP_NEED_MULTITHREAD) #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); gfxMutexEnter(&gdispMutex);
gdisp_lld_fill_char(x, y, c, font, color, bgcolor); gdisp_lld_fill_char(x, y, c, font, color, bgcolor);
gfxMutexExit(&gdispMutex); gfxMutexExit(&gdispMutex);
} }
#elif GDISP_NEED_TEXT && GDISP_NEED_ASYNC #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); gdisp_lld_msg_t *p = gdispAllocMsg(GDISP_LLD_MSG_FILLCHAR);
p->fillchar.x = x; p->fillchar.x = x;
p->fillchar.y = y; 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 #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) { 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 */ /* No mutex required as we only call high level functions which have their own mutex */
coord_t w, p; gdispDrawString_state_t state;
char c;
int first;
if (!str) return; state.font = font;
state.color = color;
first = 1; mf_render_aligned(font, x, y, MF_ALIGN_LEFT, str, 0,
p = font->charPadding * font->xscale; gdispDrawString_callback, &state);
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;
}
/* Print the character */
gdispDrawChar(x, y, c, font, color);
x += w;
}
} }
#endif #endif
#if GDISP_NEED_TEXT #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;
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;
}
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;
}
s->prev_x = x;
}
gdispFillChar(x, y, character, s->font, s->color, s->bgcolor);
return w;
}
void gdispFillString(coord_t x, coord_t y, const char *str, font_t font, color_t color, color_t bgcolor) { 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 */ /* No mutex required as we only call high level functions which have their own mutex */
coord_t w, h, p; gdispFillString_state_t state;
char c;
int first;
if (!str) return; state.y0 = y;
state.prev_x = x;
state.font = font;
state.color = color;
state.bgcolor = bgcolor;
state.rightalign = false;
first = 1; x += font->baseline_x;
h = font->height * font->yscale; mf_render_aligned(font, x, y, MF_ALIGN_LEFT, str, 0,
p = font->charPadding * font->xscale; gdispFillString_callback, &state);
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;
}
} }
#endif #endif
#if GDISP_NEED_TEXT #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) { 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 */ /* No mutex required as we only call high level functions which have their own mutex */
coord_t w, h, p, ypos, xpos; gdispDrawString_state_t state;
char c;
int first;
const char *rstr;
if (!str) str = ""; state.font = font;
state.color = color;
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 */ /* Select the anchor position */
ypos = cy - h; if (justify == justifyLeft)
if (ypos > 0) x += font->baseline_x;
cy -= ypos; else if (justify == justifyCenter)
x += (cx + 1) / 2;
/* get the start of the printable string and the xpos */ else if (justify == justifyRight)
switch(justify) { x += cx;
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 */ mf_render_aligned(font, x, y, justify, str, 0,
xpos += w; gdispDrawString_callback, &state);
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;
}
/* 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;
}
/* Print the character */
if (xpos + w > x+cx) break;
gdispDrawChar(xpos, y, c, font, color);
xpos += w;
}
} }
#endif #endif
#if GDISP_NEED_TEXT #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) { 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 */ /* No mutex required as we only call high level functions which have their own mutex */
coord_t w, h, p, ypos, xpos; gdispFillString_state_t state;
char c; int16_t min_x, max_x;
int first;
const char *rstr;
if (!str) str = ""; min_x = x;
max_x = x + cx;
h = font->height * font->yscale;
p = font->charPadding * font->xscale; state.y0 = y + (cy - font->height + 1) / 2;
state.prev_x = x;
/* Oops - font too large for the area */ state.font = font;
if (h > cy) return; state.color = color;
state.bgcolor = bgcolor;
/* See if we need to fill above the font */ state.rightalign = false;
ypos = (cy - h + 1)/2;
if (ypos > 0) { /* Fill above the text */
gdispFillArea(x, y, cx, ypos, bgcolor); if (state.y0 > y)
y += ypos; {
cy -= ypos; gdispFillArea(x, y, cx, state.y0 - y, bgcolor);
} }
/* See if we need to fill below the font */ /* Fill below the text */
ypos = cy - h; if (state.y0 + font->height < y + cy)
if (ypos > 0) { {
gdispFillArea(x, y+cy-ypos, cx, ypos, bgcolor); gdispFillArea(x, state.y0 + font->height, cx,
cy -= ypos; (y + cy) - (state.y0 + font->height), bgcolor);
} }
/* get the start of the printable string and the xpos */ /* Select the anchor position */
switch(justify) { if (justify == justifyLeft)
case justifyCenter: {
/* Get the length of the entire string */ x += font->baseline_x;
w = gdispGetStringWidth(str, font); }
if (w <= cx) else if (justify == justifyCenter)
xpos = x + (cx - w)/2; {
else { x += (cx + 1) / 2;
/* Calculate how much of the string we need to get rid of */ }
ypos = (w - cx)/2; else if (justify == justifyRight)
xpos = 0; {
first = 1; state.rightalign = true;
while(*str) { state.prev_x = x + cx;
/* Get the next printable character */ x += cx;
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;
} }
/* Fill any space to the left */ /* Render */
if (x < xpos) mf_render_aligned(font, x, state.y0, justify, str, 0,
gdispFillArea(x, y, xpos-x, cy, bgcolor); gdispFillString_callback, &state);
/* Print characters until we run out of room */ /* Fill any space left */
first = 1; if (!state.rightalign && state.prev_x < max_x)
while(*str) { {
/* Get the next printable character */ gdispFillArea(state.prev_x, state.y0, max_x - state.prev_x,
c = *str++; state.font->height, bgcolor);
w = _getCharWidth(font, c) * font->xscale; }
if (!w) continue; else if (state.rightalign && state.prev_x > min_x)
{
/* Handle inter-character padding */ gdispFillArea(min_x, state.y0, state.prev_x - min_x,
if (p) { state.font->height, bgcolor);
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 to the right */
if (xpos < x+cx)
gdispFillArea(xpos, y, x+cx-xpos, cy, bgcolor);
} }
#endif #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) { coord_t gdispGetFontMetric(font_t font, fontmetric_t metric) {
/* No mutex required as we only read static data */ /* No mutex required as we only read static data */
switch(metric) { switch(metric) {
case fontHeight: return font->height * font->yscale; case fontHeight: return font->height;
case fontDescendersHeight: return font->descenderHeight * font->yscale; case fontDescendersHeight: return font->height - font->baseline_y;
case fontLineSpacing: return font->lineSpacing * font->yscale; case fontLineSpacing: return font->line_height;
case fontCharPadding: return font->charPadding * font->xscale; case fontCharPadding: return 0;
case fontMinWidth: return font->minWidth * font->xscale; case fontMinWidth: return font->min_x_advance;
case fontMaxWidth: return font->maxWidth * font->xscale; case fontMaxWidth: return font->max_x_advance;
} }
return 0; 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 #if GDISP_NEED_TEXT
coord_t gdispGetCharWidth(char c, font_t font) { coord_t gdispGetCharWidth(char c, font_t font) {
/* No mutex required as we only read static data */ /* No mutex required as we only read static data */
return _getCharWidth(font, c) * font->xscale; return mf_character_width(font, c);
} }
#endif #endif
#if GDISP_NEED_TEXT #if GDISP_NEED_TEXT
coord_t gdispGetStringWidth(const char* str, font_t font) { coord_t gdispGetStringWidth(const char* str, font_t font) {
/* No mutex required as we only read static data */ /* No mutex required as we only read static data */
coord_t w, p, x; return mf_get_string_width(font, str, 0, 0);
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;
} }
#endif #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)) #if (!defined(gdispPackPixels) && !defined(GDISP_PIXELFORMAT_CUSTOM))
void gdispPackPixels(pixel_t *buf, coord_t cx, coord_t x, coord_t y, color_t color) { 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 */ /* No mutex required as we only read static data */

View File

@ -7,3 +7,9 @@ GFXSRC += $(GFXLIB)/src/gdisp/gdisp.c \
$(GFXLIB)/src/gdisp/image_jpg.c \ $(GFXLIB)/src/gdisp/image_jpg.c \
$(GFXLIB)/src/gdisp/image_png.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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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