This commit is contained in:
olikraus
2016-08-15 22:59:23 +02:00
parent 2a8564bf47
commit b6a4c832f0
8 changed files with 255 additions and 37891 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
name=U8g2
version=2.2.3
version=2.2.4
author=oliver <olikraus@gmail.com>
maintainer=oliver <olikraus@gmail.com>
sentence=Library for monochrome LCDs and OLEDs. Successor of U8glib.
+28
View File
@@ -185,6 +185,7 @@ typedef void (*u8g2_update_dimension_cb)(u8g2_t *u8g2);
typedef void (*u8g2_draw_l90_cb)(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t len, uint8_t dir);
typedef void (*u8g2_draw_ll_hvline_cb)(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t len, uint8_t dir);
typedef uint8_t (*u8g2_get_kerning_cb)(u8g2_t *u8g2, uint16_t e1, uint16_t e2);
/* from ucglib... */
@@ -249,6 +250,17 @@ struct _u8g2_font_decode_t
};
typedef struct _u8g2_font_decode_t u8g2_font_decode_t;
struct _u8g2_kerning_t
{
uint16_t first_table_cnt;
uint16_t second_table_cnt;
const uint16_t *first_encoding_table;
const uint16_t *index_to_second_table;
const uint16_t *second_encoding_table;
const uint8_t *kerning_values;
};
typedef struct _u8g2_kerning_t u8g2_kerning_t;
struct u8g2_cb_struct
{
@@ -296,6 +308,9 @@ struct u8g2_struct
/* information about the current font */
const uint8_t *font; /* current font for all text procedures */
// removed: const u8g2_kerning_t *kerning; /* can be NULL */
// removed: u8g2_get_kerning_cb get_kerning_cb;
u8g2_font_calc_vref_fnptr font_calc_vref;
u8g2_font_decode_t font_decode; /* new font decode structure */
u8g2_font_info_t font_info; /* new font info structure */
@@ -303,6 +318,9 @@ struct u8g2_struct
uint8_t font_height_mode;
int8_t font_ref_ascent;
int8_t font_ref_descent;
int8_t glyph_x_offset; /* set by u8g2_GetGlyphWidth as a side effect */
uint8_t draw_color; /* 0: clear pixel, 1: set pixel, modified and restored by font procedures */
/* draw_color can be used also directly by the user API */
@@ -573,6 +591,13 @@ void u8g2_DrawPolygon(u8g2_t *u8g2);
void u8g2_DrawTriangle(u8g2_t *u8g2, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2);
/*==========================================*/
/* u8g2_kerning.c */
//uint8_t u8g2_GetNullKerning(u8g2_t *u8g2, uint16_t e1, uint16_t e2);
uint8_t u8g2_GetKerning(u8g2_t *u8g2, u8g2_kerning_t *kerning, uint16_t e1, uint16_t e2);
/*==========================================*/
/* u8g2_font.c */
@@ -592,11 +617,14 @@ u8g2_uint_t u8g2_DrawGlyph(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, uint16_t
void u8g2_SetFontDirection(u8g2_t *u8g2, uint8_t dir);
u8g2_uint_t u8g2_DrawStr(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const char *str);
u8g2_uint_t u8g2_DrawUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const char *str);
u8g2_uint_t u8g2_DrawExtendedUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, uint8_t to_left, u8g2_kerning_t *kerning, const char *str);
#define u8g2_GetMaxCharHeight(u8g2) ((u8g2)->font_info.max_char_height)
#define u8g2_GetMaxCharWidth(u8g2) ((u8g2)->font_info.max_char_width)
#define u8g2_GetAscent(u8g2) ((u8g2)->font_ref_ascent)
#define u8g2_GetDescent(u8g2) ((u8g2)->font_ref_descent)
#define u8g2_GetFontAscent(u8g2) ((u8g2)->font_ref_ascent)
#define u8g2_GetFontDescent(u8g2) ((u8g2)->font_ref_descent)
u8g2_uint_t u8g2_GetStrWidth(u8g2_t *u8g2, const char *s);
u8g2_uint_t u8g2_GetUTF8Width(u8g2_t *u8g2, const char *str);
+140 -62
View File
@@ -658,7 +658,7 @@ uint8_t u8g2_IsGlyph(u8g2_t *u8g2, uint16_t requested_encoding)
return 0;
}
/* side effect: updates u8g2->font_decode */
/* side effect: updates u8g2->font_decode and u8g2->glyph_x_offset */
int8_t u8g2_GetGlyphWidth(u8g2_t *u8g2, uint16_t requested_encoding)
{
const uint8_t *glyph_data = u8g2_font_get_glyph_data(u8g2, requested_encoding);
@@ -666,15 +666,15 @@ int8_t u8g2_GetGlyphWidth(u8g2_t *u8g2, uint16_t requested_encoding)
return 0;
u8g2_font_setup_decode(u8g2, glyph_data);
u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_char_x);
u8g2->glyph_x_offset = u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_char_x);
u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_char_y);
/* glyph width is here: u8g2->font_decode.glyph_width */
return u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_delta_x);
}
/*
set one of:
U8G2_FONT_MODE_TRANSPARENT
@@ -746,7 +746,8 @@ static u8g2_uint_t u8g2_draw_string(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y,
}
#else
x += delta;
#endif
#endif
sum += delta;
}
}
@@ -776,56 +777,56 @@ u8g2_uint_t u8g2_DrawUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const char
}
#ifdef OBSOLETE
/* UTF-8 version */
u8g2_uint_t u8g2_DrawStr(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, const char *str)
u8g2_uint_t u8g2_DrawExtendedUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, uint8_t to_left, u8g2_kerning_t *kerning, const char *str)
{
u8g2->u8x8.next_cb = u8x8_utf8_next;
uint16_t e_prev = 0x0ffff;
uint16_t e;
u8g2_uint_t delta, sum;
u8g2_uint_t delta, sum, k;
u8x8_utf8_init(u8g2_GetU8x8(u8g2));
sum = 0;
/*
source: https://en.wikipedia.org/wiki/UTF-8
Bits from to bytes Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
7 U+0000 U+007F 1 0xxxxxxx
11 U+0080 U+07FF 2 110xxxxx 10xxxxxx
16 U+0800 U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
21 U+10000 U+1FFFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+200000 U+3FFFFFF 5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+4000000 U+7FFFFFFF 6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
*/
for(;;)
{
e = u8x8_get_encoding_from_utf8_string(&str);
if ( e == 0 )
e = u8g2->u8x8.next_cb(u8g2_GetU8x8(u8g2), (uint8_t)*str);
if ( e == 0x0ffff )
break;
delta = u8g2_DrawGlyph(u8g2, x, y, e);
#ifdef U8G2_WITH_FONT_ROTATION
switch(u8g2->font_decode.dir)
str++;
if ( e != 0x0fffe )
{
case 0:
x += delta;
break;
case 1:
y += delta;
break;
case 2:
delta = u8g2_GetGlyphWidth(u8g2, e);
if ( to_left )
{
k = u8g2_GetKerning(u8g2, kerning, e, e_prev);
delta -= k;
x -= delta;
break;
case 3:
y -= delta;
break;
}
else
{
k = u8g2_GetKerning(u8g2, kerning, e_prev, e);
delta -= k;
}
e_prev = e;
u8g2_DrawGlyph(u8g2, x, y, e);
if ( to_left )
{
}
else
{
x += delta;
x -= k;
}
sum += delta;
}
#else
x += delta;
#endif
sum += delta;
}
return sum;
}
#endif
/*===============================================*/
@@ -942,6 +943,7 @@ void u8g2_SetFont(u8g2_t *u8g2, const uint8_t *font)
/*===============================================*/
/* string calculation is stilll not 100% perfect as it addes the initial string offset to the overall size */
static u8g2_uint_t u8g2_string_width(u8g2_t *u8g2, const char *str) U8G2_NOINLINE;
static u8g2_uint_t u8g2_string_width(u8g2_t *u8g2, const char *str)
{
@@ -975,18 +977,114 @@ static u8g2_uint_t u8g2_string_width(u8g2_t *u8g2, const char *str)
{
w -= dx;
w += u8g2->font_decode.glyph_width; /* the real pixel width of the glyph, sideeffect of GetGlyphWidth */
/* issue #46: we have to add the x offset also */
w += u8g2->glyph_x_offset; /* this value is set as a side effect of u8g2_GetGlyphWidth() */
}
// printf("w=%d \n", w);
return w;
}
static void u8g2_GetGlyphHorizontalProperties(u8g2_t *u8g2, uint16_t requested_encoding, uint8_t *w, int8_t *ox, int8_t *dx)
{
const uint8_t *glyph_data = u8g2_font_get_glyph_data(u8g2, requested_encoding);
if ( glyph_data == NULL )
return;
u8g2_font_setup_decode(u8g2, glyph_data);
*w = u8g2->font_decode.glyph_width;
*ox = u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_char_x);
u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_char_y);
*dx = u8g2_font_decode_get_signed_bits(&(u8g2->font_decode), u8g2->font_info.bits_per_delta_x);
}
static u8g2_uint_t u8g2_calculate_exact_string_width(u8g2_t *u8g2, const char *str)
{
u8g2_uint_t w;
uint16_t enc;
uint8_t gw;
int8_t ox, dx;
/* reset the total minimal width to zero, this will be expanded during calculation */
w = 0;
/* check for empty string, width is already 0 */
do
{
enc = u8g2->u8x8.next_cb(u8g2_GetU8x8(u8g2), (uint8_t)*str);
str++;
} while( enc == 0x0fffe );
if ( enc== 0x0ffff )
return w;
/* get the glyph information of the first char. This must be valid, because we already checked for the empty string */
/* if *s is not inside the font, then the cached parameters of the glyph are all zero */
u8g2_GetGlyphHorizontalProperties(u8g2, enc, &gw, &ox, &dx);
/* strlen(s) == 1: width = width(s[0]) */
/* strlen(s) == 2: width = - offx(s[0]) + deltax(s[0]) + offx(s[1]) + width(s[1]) */
/* strlen(s) == 3: width = - offx(s[0]) + deltax(s[0]) + deltax(s[1]) + offx(s[2]) + width(s[2]) */
/* assume that the string has size 2 or more, than start with negative offset-x */
/* for string with size 1, this will be nullified after the loop */
w = -ox;
for(;;)
{
/* check and stop if the end of the string is reached */
do
{
enc = u8g2->u8x8.next_cb(u8g2_GetU8x8(u8g2), (uint8_t)*str);
str++;
} while( enc == 0x0fffe );
if ( enc== 0x0ffff )
break;
u8g2_GetGlyphHorizontalProperties(u8g2, enc, &gw, &ox, &dx);
/* if there are still more characters, add the delta to the next glyph */
w += dx;
}
/* finally calculate the width of the last char */
/* here is another exception, if the last char is a black, use the dx value instead */
if ( enc != ' ' )
{
/* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */
w += gw;
w += ox;
}
else
{
w += dx;
}
return w;
}
u8g2_uint_t u8g2_GetStrWidth(u8g2_t *u8g2, const char *s)
{
u8g2->u8x8.next_cb = u8x8_ascii_next;
return u8g2_string_width(u8g2, s);
}
u8g2_uint_t u8g2_GetExactStrWidth(u8g2_t *u8g2, const char *s)
{
u8g2->u8x8.next_cb = u8x8_ascii_next;
return u8g2_calculate_exact_string_width(u8g2, s);
}
/*
source: https://en.wikipedia.org/wiki/UTF-8
Bits from to bytes Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
@@ -1004,26 +1102,6 @@ u8g2_uint_t u8g2_GetUTF8Width(u8g2_t *u8g2, const char *str)
}
#ifdef OBSOLETE
u8g2_uint_t u8g2_GetStrWidth(u8g2_t *u8g2, const char *s)
{
uint16_t e;
u8g2_uint_t w;
/* reset the total width to zero, this will be expanded during calculation */
w = 0;
for(;;)
{
e = u8x8_get_encoding_from_utf8_string(&s);
if ( e == 0 )
break;
w += u8g2_GetGlyphWidth(u8g2, e);
}
return w;
}
#endif
void u8g2_SetFontDirection(u8g2_t *u8g2, uint8_t dir)
{
-37156
View File
File diff suppressed because it is too large Load Diff
+77
View File
@@ -0,0 +1,77 @@
/*
u8g2_kerning.c
Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)
Copyright (c) 2016, olikraus@gmail.com
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "u8g2.h"
/* this function is used as "u8g2_get_kerning_cb" */
/*
uint8_t u8g2_GetNullKerning(u8g2_t *u8g2, uint16_t e1, uint16_t e2)
{
return 0;
}
*/
/* this function is used as "u8g2_get_kerning_cb" */
uint8_t u8g2_GetKerning(u8g2_t *u8g2, u8g2_kerning_t *kerning, uint16_t e1, uint16_t e2)
{
uint16_t i1, i2, cnt, end;
if ( kerning == NULL )
return 0;
/* search for the encoding in the first table */
cnt = kerning->first_table_cnt;
cnt--; /* ignore the last element of the table, which is 0x0ffff */
for( i1 = 0; i1 < cnt; i1++ )
{
if ( kerning->first_encoding_table[i1] == e1 )
break;
}
if ( i1 >= cnt )
return 0; /* e1 not part of the kerning table, return 0 */
/* get the upper index for i2 */
end = kerning->index_to_second_table[i1+1];
for( i2 = kerning->index_to_second_table[i1]; i2 < end; i2++ )
{
if ( kerning->second_encoding_table[i2] == e2 )
break;
}
if ( i2 >= end )
return 0; /* e2 not part of any pair with e1, return 0 */
return kerning->kerning_values[i2];
}
+8 -1
View File
@@ -37,9 +37,16 @@
#include <string.h>
/*============================================*/
/*
This procedure is called after setting up the display (u8x8 structure).
--> This is the central init procedure for u8g2 object
*/
void u8g2_SetupBuffer(u8g2_t *u8g2, uint8_t *buf, uint8_t tile_buf_height, u8g2_draw_ll_hvline_cb ll_hvline_cb, const u8g2_cb_t *u8g2_cb)
{
u8g2->font = NULL;
//u8g2->kerning = NULL;
//u8g2->get_kerning_cb = u8g2_GetNullKerning;
//u8g2->ll_hvline = u8g2_ll_hvline_vertical_top_lsb;
u8g2->ll_hvline = ll_hvline_cb;
+1 -1
View File
@@ -137,7 +137,7 @@ static const u8x8_display_info_t u8x8_sed1330_240x128_display_info =
/* pixel_height = */ 128
};
/* 240x128 */
/* 240x128 Seiko G242C */
static const uint8_t u8x8_d_sed1330_240x128_init_seq[] = {
U8X8_DLY(100),
U8X8_START_TRANSFER(), /* enable chip, delay is part of the transfer start */
-670
View File
@@ -811,673 +811,3 @@ const uint8_t u8x8_font_victoriamedium8_u[515] U8X8_FONT_SECTION("u8x8_font_vict
"\0\0\0c\24\10\24c\0\0\0\7\10p\10\7\0\0\0aQIEC\0\0\0\0AA\0"
"\0\0\0\2\4\10\20 @\0\0\0\0AA\0\0\0\0\4\2\1\2\4\0\200\200\200\200\200\200"
"\200\200";
/*
Fontname: -FreeType-Press Start 2P-Medium-R-Normal--8-80-72-72-P-69-ISO10646-1
Copyright: (c) 2011 Cody
Glyphs: 192/556
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pressstart2p_f[1794] U8X8_FONT_SECTION("u8x8_font_pressstart2p_f") =
" \377\0\0\0\0\0\0\0\0\0\0__\7\0\0\0\0\7\7\0\7\7\0\0\42\42"
"\42\0$.**:\20\0F%\23\10dR\61\0\66I_v`P\0\0\0\7\7\0\0"
"\0\0\0\0\34>cA\0\0\0Ac>\34\0\0\0\10*>\34>*\10\0\0\10\10>>\10"
"\10\0\0\200\340`\0\0\0\0\0\10\10\10\10\10\10\0\0\0``\0\0\0\0@ \20\10\4\2"
"\1\0\34>aAC>\34\0\0@B@@\0bsyY]OF\0 aIMO{"
"\61\0\30\34\26\23\20\0'gEEE}\70\0<~KIIy\60\0\3\3qy\15\7"
"\3\0\66OMYYv\60\0\6OIIi?\36\0\0\0\66\66\0\0\0\0\0@v\66\0\0"
"\0\0\0\10\34\66cA\0\0\24\24\24\24\24\24\24\0\0Ac\66\34\10\0\0\6\7SS[\17"
"\6\0>A]U]Q\36\0|~\23\21\23~|\0III\66\0\34>cAAc"
"\42\0AAc>\34\0IIIIA\0\11\11\11\11\1\0\34>cAIy"
"y\0\10\10\10\0\0AAAA\0 `@@@?\0\30<vc"
"A\0\0@@@@\0\16\34\16\0\16\34\70\0>AAA"
">\0\21\21\21\37\16\0>AQq?^\0\21\61yoN\0&oIIKz"
"\60\0\0\1\1\1\1\0?@@@?\0\17\37\70p\70\37\17\0\70\34\70"
"\0cw>\34>wc\0\0\7\17xx\17\7\0aqy]OGC\0\0\0AA"
"\0\0\1\2\4\10\20 @\0\0AA\0\0\0\0\2\3\1\3\2\0\0\200\200\200\200\200\200"
"\200\0\0\0\0\1\2\0\0\0 tTTT|x\0?DDD|\70\0\70|DDDD"
"D\0\70|DDD\0\70|TTT\134\30\0\0\4\4~\5\5\0\30\274\244\244\244\374"
"|\0\4\4\4|x\0\0@D}}@@\0\0\200\200\204\375}\0\0\30\70|l"
"D\0\0@A@@\0|\4||\4|x\0||\4\4\4|x\0\70|DDD|"
"\70\0\374\374$$$<\30\0\30<$$$\374\374\0\0||\10\4\4\4\0H\134TTTt"
" \0\0\4\4\4\4\0<|@@@||\0\0\34<``<\34\0<@||@|"
"|\0ll\70\70\70ll\0\34\274\240\240\240\374|\0Ddt|\134LD\0\0\0\10>wA"
"\0\0\0\0\0\0\0\0\0Aw>\10\0\0\0\10\4\14\34\30\20\10\0\0``\0``"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0p}}\0\0\0\34>\42\42\66\24\0H~IIK"
"B\0\0\42\34\42\42\34\42\0\0+/||/+\0\0\0\0ww\0\0\0\0&oUU{"
"\62\0\0\1\1\0\1\1\0\0<B\231\245\245\201B<\0\5\17\13\17\16\0\0\10\34\66*\34\66"
"\42\0\0\4\4\4\4\34\34\0\0\10\10\10\10\10\10\0<B\275\225\225\251B<\0\1\1\1\1\1"
"\0\0\0\0\2\5\2\0\0\0\0DD__DD\0\0\0\11\15\17\12\0\0\0\0\11\13\17\5"
"\0\0\0\0\0\2\1\0\0\0\374\374@@<|@\0\0\16\33\21\21\0\0\0\30\30\0\0"
"\0\0\0\0\200\200@\0\0\0\0\0\12\17\17\10\0\0\0\6\17\11\17\6\0\0\42\66\34*\66\34"
"\10\0B/\20\10$\62y\0B/\20\10DjY\0I+\25\10$\62y\0\60xmeep"
"\60\0px-&,xp\0px,&-xp\0pz/%/zp\0pz-'.y"
"p\0py-$-yp\0px.%.xp\0|~\23II\0\14\36\263\241a\63"
"\22\0||UVTTD\0||TVUTD\0|~WUWVD\0|}UTUU"
"D\0\0DD}~DD\0\0DD~}DD\0\0DFFD\0\0EE||E"
"E\0\10Ic>\34\0|~\35;r}|\0\70|EFD|\70\0\70|DFE|"
"\70\0\70~GEG~\70\0\70~EGF}\70\0\70}EDE}\70\0\0\42\24\10\24\42"
"\0\0>QIE>\0<|AB@|<\0<|@BA|<\0\70zCACz"
"\70\0<}A@A}<\0\0\14\34rq\34\14\0\42\42\42>\34\0\0~!I"
"\66\0 tUVT|x\0 tTVU|x\0 vWUW~x\0 vUWV}"
"x\0 uUTU}x\0 tVUV|x\0 tT|T\134\30\0\30<\244\244d$"
"$\0\70|UVT\134\30\0\70|TVU\134\30\0\70~WUW^\30\0\70}UTU]"
"\30\0\0@Izx@@\0\0@Hzy@@\0\0BKy{B@\0\0AE|}A"
"@\0\64{KNNy\60\0|~\5\7\6}x\0\70|EFD|\70\0\70|DFE|"
"\70\0\70~GEG~\70\0\70~EGF}\70\0\70}EDE}\70\0\0\10\10**\10"
"\10\0\70|dTL|\70\0<|AB@||\0<|@BA||\0\70zCACz"
"x\0<}A@A}|\0\34\274\240\242\241\374|\0\377\377$$$<\30\0\34\275\241\240\241\375"
"|";
/*
Fontname: -FreeType-Press Start 2P-Medium-R-Normal--8-80-72-72-P-69-ISO10646-1
Copyright: (c) 2011 Cody
Glyphs: 96/556
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pressstart2p_r[770] U8X8_FONT_SECTION("u8x8_font_pressstart2p_r") =
" \0\0\0\0\0\0\0\0\0\0__\7\0\0\0\0\7\7\0\7\7\0\0\42\42"
"\42\0$.**:\20\0F%\23\10dR\61\0\66I_v`P\0\0\0\7\7\0\0"
"\0\0\0\0\34>cA\0\0\0Ac>\34\0\0\0\10*>\34>*\10\0\0\10\10>>\10"
"\10\0\0\200\340`\0\0\0\0\0\10\10\10\10\10\10\0\0\0``\0\0\0\0@ \20\10\4\2"
"\1\0\34>aAC>\34\0\0@B@@\0bsyY]OF\0 aIMO{"
"\61\0\30\34\26\23\20\0'gEEE}\70\0<~KIIy\60\0\3\3qy\15\7"
"\3\0\66OMYYv\60\0\6OIIi?\36\0\0\0\66\66\0\0\0\0\0@v\66\0\0"
"\0\0\0\10\34\66cA\0\0\24\24\24\24\24\24\24\0\0Ac\66\34\10\0\0\6\7SS[\17"
"\6\0>A]U]Q\36\0|~\23\21\23~|\0III\66\0\34>cAAc"
"\42\0AAc>\34\0IIIIA\0\11\11\11\11\1\0\34>cAIy"
"y\0\10\10\10\0\0AAAA\0 `@@@?\0\30<vc"
"A\0\0@@@@\0\16\34\16\0\16\34\70\0>AAA"
">\0\21\21\21\37\16\0>AQq?^\0\21\61yoN\0&oIIKz"
"\60\0\0\1\1\1\1\0?@@@?\0\17\37\70p\70\37\17\0\70\34\70"
"\0cw>\34>wc\0\0\7\17xx\17\7\0aqy]OGC\0\0\0AA"
"\0\0\1\2\4\10\20 @\0\0AA\0\0\0\0\2\3\1\3\2\0\0\200\200\200\200\200\200"
"\200\0\0\0\0\1\2\0\0\0 tTTT|x\0?DDD|\70\0\70|DDDD"
"D\0\70|DDD\0\70|TTT\134\30\0\0\4\4~\5\5\0\30\274\244\244\244\374"
"|\0\4\4\4|x\0\0@D}}@@\0\0\200\200\204\375}\0\0\30\70|l"
"D\0\0@A@@\0|\4||\4|x\0||\4\4\4|x\0\70|DDD|"
"\70\0\374\374$$$<\30\0\30<$$$\374\374\0\0||\10\4\4\4\0H\134TTTt"
" \0\0\4\4\4\4\0<|@@@||\0\0\34<``<\34\0<@||@|"
"|\0ll\70\70\70ll\0\34\274\240\240\240\374|\0Ddt|\134LD\0\0\0\10>wA"
"\0\0\0\0\0\0\0\0\0Aw>\10\0\0\0\10\4\14\34\30\20\10\0\0``\0``"
"\0";
/*
Fontname: -FreeType-Press Start 2P-Medium-R-Normal--8-80-72-72-P-69-ISO10646-1
Copyright: (c) 2011 Cody
Glyphs: 18/556
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pressstart2p_n[218] U8X8_FONT_SECTION("u8x8_font_pressstart2p_n") =
" :\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10*>\34>*\10\0\0\10\10>>\10"
"\10\0\0\200\340`\0\0\0\0\0\10\10\10\10\10\10\0\0\0``\0\0\0\0@ \20\10\4\2"
"\1\0\34>aAC>\34\0\0@B@@\0bsyY]OF\0 aIMO{"
"\61\0\30\34\26\23\20\0'gEEE}\70\0<~KIIy\60\0\3\3qy\15\7"
"\3\0\66OMYYv\60\0\6OIIi?\36\0\0\0\66\66\0\0\0";
/*
Fontname: -FreeType-Press Start 2P-Medium-R-Normal--8-80-72-72-P-69-ISO10646-1
Copyright: (c) 2011 Cody
Glyphs: 64/556
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pressstart2p_u[514] U8X8_FONT_SECTION("u8x8_font_pressstart2p_u") =
" _\0\0\0\0\0\0\0\0\0\0__\7\0\0\0\0\7\7\0\7\7\0\0\42\42"
"\42\0$.**:\20\0F%\23\10dR\61\0\66I_v`P\0\0\0\7\7\0\0"
"\0\0\0\0\34>cA\0\0\0Ac>\34\0\0\0\10*>\34>*\10\0\0\10\10>>\10"
"\10\0\0\200\340`\0\0\0\0\0\10\10\10\10\10\10\0\0\0``\0\0\0\0@ \20\10\4\2"
"\1\0\34>aAC>\34\0\0@B@@\0bsyY]OF\0 aIMO{"
"\61\0\30\34\26\23\20\0'gEEE}\70\0<~KIIy\60\0\3\3qy\15\7"
"\3\0\66OMYYv\60\0\6OIIi?\36\0\0\0\66\66\0\0\0\0\0@v\66\0\0"
"\0\0\0\10\34\66cA\0\0\24\24\24\24\24\24\24\0\0Ac\66\34\10\0\0\6\7SS[\17"
"\6\0>A]U]Q\36\0|~\23\21\23~|\0III\66\0\34>cAAc"
"\42\0AAc>\34\0IIIIA\0\11\11\11\11\1\0\34>cAIy"
"y\0\10\10\10\0\0AAAA\0 `@@@?\0\30<vc"
"A\0\0@@@@\0\16\34\16\0\16\34\70\0>AAA"
">\0\21\21\21\37\16\0>AQq?^\0\21\61yoN\0&oIIKz"
"\60\0\0\1\1\1\1\0?@@@?\0\17\37\70p\70\37\17\0\70\34\70"
"\0cw>\34>wc\0\0\7\17xx\17\7\0aqy]OGC\0\0\0AA"
"\0\0\1\2\4\10\20 @\0\0AA\0\0\0\0\2\3\1\3\2\0\0\200\200\200\200\200\200"
"\200";
/*
Fontname: -FreeType-PC Senior-Medium-R-Normal--8-80-72-72-P-48-ISO10646-1
Copyright: TrueType conversion © 2001 codeman38.
Glyphs: 192/260
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pcsenior_f[1794] U8X8_FONT_SECTION("u8x8_font_pcsenior_f") =
" \377\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIof\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0&oMYs\62"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\3\7\4\0\0\0 tTT<x@\0A?HHx\60\0\70|DDl("
"\0\0\60xHI?@\0\70|TT\134\30\0\0H~I\3\2\0\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0D}}@\0\0\0`\340\200\200\375}\0\0A\20\70l"
"D\0\0A@\0\0\0||\30\70\34|x\0||\4\4|x\0\0\70|DD|\70"
"\0\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\34\30\0H\134TTt$"
"\0\0\0\4>D$\0\0<|@@<|@\0\34<``<\34\0\0<|p\70p|"
"<\0Dl\70\20\70lD\0\234\274\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wAA"
"\0\0\0\0\0ww\0\0\0AAw>\10\10\0\0\2\3\1\3\2\3\1\0pxLFLx"
"p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0{{\0\0\0\30<$\347\347$$\0h~ICf"
" \0\0\0\0\0\0\0\0\0+/\374\374/+\0\0\0\0\0ww\0\0\0@\332\277\245\375Y"
"\3\2\0\0\0\0\0\0\0\0~\201\225\261\261\225\201~\0&/)//(\0\10\34\66\42\10\34"
"\66\42\10\10\10\10\70\70\0\0\10\10\10\10\10\10\0\0\300\377\5\5e?\0\0\0\0\0\0"
"\0\0\0\6\17\11\17\6\0\0DD__DD\0\0\0\31\35\27\22\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\200\376~ >\36\0\6\17\11\1\0\0\0\30\30\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0&/)/&\0\0\42\66\34\10\42\66"
"\34\10Oo\60\30lv\373\371o_(\324\262\325\253\221\0\0\0\0\0\0\0\0\60xME` "
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0y}\26\22\26}y\0px++xp\0\0|~\13\11I\0\16\237\221\261\373J"
"\0\0\0\0\0\0\0\0\0\0D||UUE\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0}}\31\61}}\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\31<ff<\31\1\42\66\34\10\34\66"
"\42\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0=}@@}=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\374\376**>\24"
"\0\0!uUT|x@\0 tTU}y@\0\2#uUU}{B\0\0\0\0\0\0"
"\0\0!uTT}y@\0 tWW|x@\0 tTT||TT\30<\244\244\344@"
"\0\0\71}UT\134\30\0\0\70|TU]\31\0\0\2;}UU]\33\2\71}TT]\31"
"\0\0\1E}|@\0\0\0\0D}}A\0\0\0\2\3E}}C\2\0\1E||A\1"
"\0\0\0\0\0\0\0\0\0\0zz\12\12zp\0\0\62zJHx\60\0\0\60xHJz\62"
"\0\0\62{II{\62\0\0\0\0\0\0\0\0\0\0\62zHHz\62\0\0\10\10kk\10\10"
"\0\0\0\0\0\0\0\0\0\0:zB@xx@\0\70x@Bzz@\0:{AA{z"
"@\0:z@@zz@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\232\272\240\240\372z"
"\0";
/*
Fontname: -FreeType-PC Senior-Medium-R-Normal--8-80-72-72-P-48-ISO10646-1
Copyright: TrueType conversion © 2001 codeman38.
Glyphs: 96/260
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pcsenior_r[770] U8X8_FONT_SECTION("u8x8_font_pcsenior_r") =
" \0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIof\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0&oMYs\62"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\3\7\4\0\0\0 tTT<x@\0A?HHx\60\0\70|DDl("
"\0\0\60xHI?@\0\70|TT\134\30\0\0H~I\3\2\0\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0D}}@\0\0\0`\340\200\200\375}\0\0A\20\70l"
"D\0\0A@\0\0\0||\30\70\34|x\0||\4\4|x\0\0\70|DD|\70"
"\0\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\34\30\0H\134TTt$"
"\0\0\0\4>D$\0\0<|@@<|@\0\34<``<\34\0\0<|p\70p|"
"<\0Dl\70\20\70lD\0\234\274\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wAA"
"\0\0\0\0\0ww\0\0\0AAw>\10\10\0\0\2\3\1\3\2\3\1\0pxLFLx"
"p";
/*
Fontname: -FreeType-PC Senior-Medium-R-Normal--8-80-72-72-P-48-ISO10646-1
Copyright: TrueType conversion © 2001 codeman38.
Glyphs: 18/260
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pcsenior_n[218] U8X8_FONT_SECTION("u8x8_font_pcsenior_n") =
" :\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIof\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0";
/*
Fontname: -FreeType-PC Senior-Medium-R-Normal--8-80-72-72-P-48-ISO10646-1
Copyright: TrueType conversion © 2001 codeman38.
Glyphs: 64/260
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pcsenior_u[515] U8X8_FONT_SECTION("u8x8_font_pcsenior_u") =
" _\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIof\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0&oMYs\62"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200";
/*
Fontname: -FreeType-PxPlus IBM CGAthin-Medium-R-Normal--8-80-72-72-P-64-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 192/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcgathin_f[1794] U8X8_FONT_SECTION("u8x8_font_pxplusibmcgathin_f") =
" \377\0\0\0\0\0\0\0\0\0\0\6_\6\0\0\0\0\0\7\0\0\7\0\0\0\24\24\24"
"\24\0\0$*kk*\22\0\0F&\20\10db\0\60JEM\62HH\0\0\0\4\3\0\0"
"\0\0\0\34\42A\0\0\0\0\0\0A\42\34\0\0\0\10*\34\34\34*\10\0\0\10\10>\10\10"
"\0\0\0\0\200`\0\0\0\0\0\10\10\10\10\10\10\0\0\0\0`\0\0\0\0\0@ \20\10\4"
"\2\0\0>aQIE>\0\0DB@@\0\0\0bQQIIf\0\0\42AIII"
"\66\0\20\30\24RP\20\0\0'EEEE\71\0\0<JIII\60\0\0\3\1q\11\5"
"\3\0\0\66IIII\66\0\0\6III)\36\0\0\0\0f\0\0\0\0\0\0\200f\0\0"
"\0\0\0\10\24\42A\0\0\0\0$$$$$$\0\0\0\0A\42\24\10\0\0\2\1\1Q\11"
"\6\0\0>A]UU\36\0\0|\22\21\21\22|\0\0AIII\66\0\0\34\42AAA"
"\42\0\0AAA\42\34\0\0AI]Ac\0\0AI\35\1\3\0\0\34\42AQQ"
"r\0\0\10\10\10\10\0\0\0AA\0\0\0\0\60@@A?\1\0\0A\10\24\42"
"A@\0AA@@`\0\0\1\2\4\2\1\0\1\2\4\10\0\0\34\42AA\42"
"\34\0\0AI\11\11\6\0\0\36!!\61!^@\0AI\31)F\0\0&IIII"
"\62\0\0\3\1AA\1\3\0?@@@@?\0\0\17\20 @ \20\17\0?@@\70@"
"@?\0A\42\24\10\24\42A\0\1\2DxD\2\1\0CaQIECa\0AAA\0"
"\0\0\1\2\4\10\20 @\0\0AAA\0\0\0\10\4\2\1\2\4\10\0\200\200\200\200\200\200"
"\200\200\0\0\0\3\4\0\0\0\0 TTTTx@\0\1\60HHH\60\0\70DDDD"
"(\0\0\60HHH\61@\0\70TTTT\30\0\0\0H~I\1\2\0\0\230\244\244\244\244"
"x\4\0A\10\4\4x\0\0\0D}@\0\0\0\0`\200\200\200\204}\0\0\1\20(D"
"@\0\0\0A@\0\0\0\0|\4\4x\4\4x\0|\10\4\4\4x\0\0\70DDDD"
"\70\0\0\204\374\230$$\30\0\0\30$$\230\374\204\0\0D|H\4\4\30\0\0HTTTT"
"$\0\0\4\4?DD \0\0<@@@ |\0\0\14\20 @ \20\14\0<@@\70@"
"@<\0D(\20(D\0\0\0\234\240\240\240\240|\0\0DdTLD\0\0\0\10\10\66AA"
"\0\0\0\0\0w\0\0\0\0\0\0AA\66\10\10\0\0\2\1\1\2\2\1\0\0pHDBD"
"Hp\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0z\0\0\0\0\0\30$$\347$$\0\0h^IAB"
" \0BZ$$$ZB\0\0\25\26|\26\25\0\0\0\0\0w\0\0\0\0@\332\247\245\345Y"
"\3\2\0\1\0\0\0\1\0\0~\201\231\245\245\201~\0\0&)))/(\0\0\10\24\42\10\24"
"\42\0\0\10\10\10\10\10\70\0\0\10\10\10\10\10\10\0~\201\275\225\251\201~\0\1\1\1\1\1\1"
"\1\1\0\6\11\11\6\0\0\0\0DD_DD\0\0\0\22\31\25\22\0\0\0\0\12\21\25\12\0"
"\0\0\0\0\0\2\1\0\0\0\200~\20\20\20\16\20\0\6\11\11\1\1\1\0\0\0\20\20\0"
"\0\0\0\0\200\200\240@\0\0\0\22\37\20\0\0\0\0\0&)))&\0\0\0\42\24\10\42\24"
"\10\0J/\30(\64*\375 J/\30\210\324\312\251\260\225U*PhT\372@\0\60HE@@"
" \0\1y\24\22\22\24x\0\0x\24\22\22\24y\1\0r)%%)r\0\0y\25\25\25\25"
"y\0\0y\24\22\22\24y\0\0p(++(p\0\0|\12\11\11II\0\16\221\221\261\261"
"J\0\0E}TTD\0\0\0D|TUE\0\0\2E}UUE\2\0\0E|TTE"
"\0\0\0\1E|D\0\0\0\0\0D|E\1\0\0\2\1E}E\1\2\0\0\1D|D\1"
"\0\0\0IIA\42\34\0\0z\11\21\42Cx\0\1\31$BB$\30\0\0\30$BB$"
"\31\1\22)EEE)\22\0\0\21)EEE)\21\0\31$BB$\31\0\0\42\24\10\24\42"
"\0\0>qYIMG>\0\0=A@@@<\0\0<@@@A=\0\0:AAAA"
":\0\0=@@@@=\0\0\4HpH\5\1\0\0AU\24\24\10\0\0~\1\1IV"
" \0\0 UUTx@\0\0 TTUy@\0\0\42UUUyB\0\0!UUUU"
"y@\0!TTTxA\0\0 TUTx@\0\0 TTx\70TT\0\30$\244\244\344"
"@\0\0\70UUTT\30\0\0\70TTUU\30\0\0:UUUU\32\0\0\71TTTT"
"\31\0\0\0\1E|@\0\0\0\0\0D}A\0\0\2\1E}A\2\0\0\0\0\1D|A"
"\0\0\0\60JJK>\2\0\0z\11\11\12\12q\0\0\60IJHH\60\0\0\60HHJI"
"\60\0\0\60JIIJ\60\0\0\62JJJJ\62\0\0\62HHHH\62\0\0\10\10kk\10"
"\10\0\270DdTLD:\0\0\70AB@@\70\0\0\70@@DB\70\0\0\70BAAB"
"\70\0\0:@@@z@\0\0\30\240\240\240\242z\0\0\201\377\244$$\30\0\0\32\240\240\240\240"
"z";
/*
Fontname: -FreeType-PxPlus IBM CGAthin-Medium-R-Normal--8-80-72-72-P-64-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 96/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcgathin_r[771] U8X8_FONT_SECTION("u8x8_font_pxplusibmcgathin_r") =
" \0\0\0\0\0\0\0\0\0\0\6_\6\0\0\0\0\0\7\0\0\7\0\0\0\24\24\24"
"\24\0\0$*kk*\22\0\0F&\20\10db\0\60JEM\62HH\0\0\0\4\3\0\0"
"\0\0\0\34\42A\0\0\0\0\0\0A\42\34\0\0\0\10*\34\34\34*\10\0\0\10\10>\10\10"
"\0\0\0\0\200`\0\0\0\0\0\10\10\10\10\10\10\0\0\0\0`\0\0\0\0\0@ \20\10\4"
"\2\0\0>aQIE>\0\0DB@@\0\0\0bQQIIf\0\0\42AIII"
"\66\0\20\30\24RP\20\0\0'EEEE\71\0\0<JIII\60\0\0\3\1q\11\5"
"\3\0\0\66IIII\66\0\0\6III)\36\0\0\0\0f\0\0\0\0\0\0\200f\0\0"
"\0\0\0\10\24\42A\0\0\0\0$$$$$$\0\0\0\0A\42\24\10\0\0\2\1\1Q\11"
"\6\0\0>A]UU\36\0\0|\22\21\21\22|\0\0AIII\66\0\0\34\42AAA"
"\42\0\0AAA\42\34\0\0AI]Ac\0\0AI\35\1\3\0\0\34\42AQQ"
"r\0\0\10\10\10\10\0\0\0AA\0\0\0\0\60@@A?\1\0\0A\10\24\42"
"A@\0AA@@`\0\0\1\2\4\2\1\0\1\2\4\10\0\0\34\42AA\42"
"\34\0\0AI\11\11\6\0\0\36!!\61!^@\0AI\31)F\0\0&IIII"
"\62\0\0\3\1AA\1\3\0?@@@@?\0\0\17\20 @ \20\17\0?@@\70@"
"@?\0A\42\24\10\24\42A\0\1\2DxD\2\1\0CaQIECa\0AAA\0"
"\0\0\1\2\4\10\20 @\0\0AAA\0\0\0\10\4\2\1\2\4\10\0\200\200\200\200\200\200"
"\200\200\0\0\0\3\4\0\0\0\0 TTTTx@\0\1\60HHH\60\0\70DDDD"
"(\0\0\60HHH\61@\0\70TTTT\30\0\0\0H~I\1\2\0\0\230\244\244\244\244"
"x\4\0A\10\4\4x\0\0\0D}@\0\0\0\0`\200\200\200\204}\0\0\1\20(D"
"@\0\0\0A@\0\0\0\0|\4\4x\4\4x\0|\10\4\4\4x\0\0\70DDDD"
"\70\0\0\204\374\230$$\30\0\0\30$$\230\374\204\0\0D|H\4\4\30\0\0HTTTT"
"$\0\0\4\4?DD \0\0<@@@ |\0\0\14\20 @ \20\14\0<@@\70@"
"@<\0D(\20(D\0\0\0\234\240\240\240\240|\0\0DdTLD\0\0\0\10\10\66AA"
"\0\0\0\0\0w\0\0\0\0\0\0AA\66\10\10\0\0\2\1\1\2\2\1\0\0pHDBD"
"Hp";
/*
Fontname: -FreeType-PxPlus IBM CGAthin-Medium-R-Normal--8-80-72-72-P-64-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 18/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcgathin_n[218] U8X8_FONT_SECTION("u8x8_font_pxplusibmcgathin_n") =
" :\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10*\34\34\34*\10\0\0\10\10>\10\10"
"\0\0\0\0\200`\0\0\0\0\0\10\10\10\10\10\10\0\0\0\0`\0\0\0\0\0@ \20\10\4"
"\2\0\0>aQIE>\0\0DB@@\0\0\0bQQIIf\0\0\42AIII"
"\66\0\20\30\24RP\20\0\0'EEEE\71\0\0<JIII\60\0\0\3\1q\11\5"
"\3\0\0\66IIII\66\0\0\6III)\36\0\0\0\0f\0\0\0";
/*
Fontname: -FreeType-PxPlus IBM CGAthin-Medium-R-Normal--8-80-72-72-P-64-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 64/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcgathin_u[515] U8X8_FONT_SECTION("u8x8_font_pxplusibmcgathin_u") =
" _\0\0\0\0\0\0\0\0\0\0\6_\6\0\0\0\0\0\7\0\0\7\0\0\0\24\24\24"
"\24\0\0$*kk*\22\0\0F&\20\10db\0\60JEM\62HH\0\0\0\4\3\0\0"
"\0\0\0\34\42A\0\0\0\0\0\0A\42\34\0\0\0\10*\34\34\34*\10\0\0\10\10>\10\10"
"\0\0\0\0\200`\0\0\0\0\0\10\10\10\10\10\10\0\0\0\0`\0\0\0\0\0@ \20\10\4"
"\2\0\0>aQIE>\0\0DB@@\0\0\0bQQIIf\0\0\42AIII"
"\66\0\20\30\24RP\20\0\0'EEEE\71\0\0<JIII\60\0\0\3\1q\11\5"
"\3\0\0\66IIII\66\0\0\6III)\36\0\0\0\0f\0\0\0\0\0\0\200f\0\0"
"\0\0\0\10\24\42A\0\0\0\0$$$$$$\0\0\0\0A\42\24\10\0\0\2\1\1Q\11"
"\6\0\0>A]UU\36\0\0|\22\21\21\22|\0\0AIII\66\0\0\34\42AAA"
"\42\0\0AAA\42\34\0\0AI]Ac\0\0AI\35\1\3\0\0\34\42AQQ"
"r\0\0\10\10\10\10\0\0\0AA\0\0\0\0\60@@A?\1\0\0A\10\24\42"
"A@\0AA@@`\0\0\1\2\4\2\1\0\1\2\4\10\0\0\34\42AA\42"
"\34\0\0AI\11\11\6\0\0\36!!\61!^@\0AI\31)F\0\0&IIII"
"\62\0\0\3\1AA\1\3\0?@@@@?\0\0\17\20 @ \20\17\0?@@\70@"
"@?\0A\42\24\10\24\42A\0\1\2DxD\2\1\0CaQIECa\0AAA\0"
"\0\0\1\2\4\10\20 @\0\0AAA\0\0\0\10\4\2\1\2\4\10\0\200\200\200\200\200\200"
"\200\200";
/*
Fontname: -FreeType-PxPlus IBM CGA-Medium-R-Normal--8-80-72-72-P-68-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 192/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcga_f[1794] U8X8_FONT_SECTION("u8x8_font_pxplusibmcga_f") =
" \377\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIOf\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0@v\66\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0\42gMYs\42"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\3\7\4\0\0\0 tTT<x@\0A?HHx\60\0\70|DDl("
"\0\0\60xHI?@\0\70|TT\134\30\0\0H~I\3\2\0\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0D}}@\0\0\0`\340\200\200\375}\0\0A\20\70l"
"D\0\0A@\0\0\0||\30\70\34|x\0||\4\4|x\0\0\70|DD|\70"
"\0\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\34\30\0H\134TTt$"
"\0\0\0\4>D$\0\0<|@@<|@\0\34<``<\34\0\0<|p\70p|"
"<\0Dl\70\20\70lD\0\234\274\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wAA"
"\0\0\0\0\0ww\0\0\0AAw>\10\10\0\0\2\3\1\3\2\3\1\0pxLFLx"
"p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0{{\0\0\0\30<$\347\347$$\0h~ICf"
" \0Z~$$$~Z\0+/\374\374/+\0\0\0\0\0ww\0\0\0@\332\277\245\375Y"
"\3\2\1\1\0\0\0\1\1\0~\201\231\245\245\201~\0\0&/)//(\0\10\34\66\42\10\34"
"\66\42\10\10\10\10\70\70\0\0\0\10\10\10\10\10\10\0~\201\275\225\251\201~\0\1\1\1\1\1\1"
"\1\1\0\6\17\11\17\6\0\0DD__DD\0\0\0\31\35\27\22\0\0\0\0\21\25\37\12\0"
"\0\0\0\0\2\3\1\0\0\0\200\376~ >\36\0\6\17\11\1\0\0\0\20\20\0"
"\0\0\0\0\200\240\340@\0\0\0\22\37\37\20\0\0\0\0&/)/&\0\0\42\66\34\10\42\66"
"\34\10Oo\60\30lv\373\371Oo\60\30\314\356\273\221\221\325:Xl\366\362\60xME` "
"\0\0y}\26\22\26|x\0x|\26\22\26}y\0r{)){r\0\0y}\25\25}y"
"\0\0y}\26\22\26}y\0px++xp\0\0|~\13\11I\0\16\237\221\261\373J"
"\0\0E}}TTD\0\0D||UUE\0\0F}UWF\0\0E}|TUE"
"\0\0\1E}|D\0\0\0\0D|}E\1\0\0\2KyyK\2\0\0\1E||E\1"
"\0\0IIc>\34\0}}\31\61}}\0\0\1\31<ff<\30\0\30<ff<\31"
"\1\0\22;mEm;\22\0\21\71mEm\71\21\0\1\31<ff<\31\1\42\66\34\10\34\66"
"\42\0>qYM>\0=}A@|<\0\0<|@A}=\0\0:{AA{:"
"\0\0=}@@}=\0\0\14\134pq]\15\0\0AU\24\34\10\0~\1\11_v"
" \0!uUT|x@\0 tTU}y@\0\2#uUU}{B!uUU}y"
"@\0!uTT}y@\0 tWW|x@\0 tTT||TT\30<\244\244\344@"
"\0\0\71}UT\134\30\0\0\70|TU]\31\0\0\2;}UU]\33\2\71}TT]\31"
"\0\0\1E}|@\0\0\0\0D}}A\0\0\0\2\3E}}C\2\0\1E||A\1"
"\0\0\60xJK>\2\0zz\12\12zp\0\0\62zJHx\60\0\0\60xHJz\62"
"\0\0\62{II{\62\0\0\62zJJz\62\0\0\62zHHz\62\0\0\10\10kk\10\10"
"\0\0\270|dTL|:\0:zB@xx@\0\70x@Bzz@\0:{AA{z"
"@\0:z@@zz@\0\30\270\240\242\372z\0\0\201\377\377\244$<\30\0\232\272\240\240\372z"
"\0";
/*
Fontname: -FreeType-PxPlus IBM CGA-Medium-R-Normal--8-80-72-72-P-68-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 96/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcga_r[770] U8X8_FONT_SECTION("u8x8_font_pxplusibmcga_r") =
" \0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIOf\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0@v\66\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0\42gMYs\42"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\3\7\4\0\0\0 tTT<x@\0A?HHx\60\0\70|DDl("
"\0\0\60xHI?@\0\70|TT\134\30\0\0H~I\3\2\0\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0D}}@\0\0\0`\340\200\200\375}\0\0A\20\70l"
"D\0\0A@\0\0\0||\30\70\34|x\0||\4\4|x\0\0\70|DD|\70"
"\0\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\34\30\0H\134TTt$"
"\0\0\0\4>D$\0\0<|@@<|@\0\34<``<\34\0\0<|p\70p|"
"<\0Dl\70\20\70lD\0\234\274\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wAA"
"\0\0\0\0\0ww\0\0\0AAw>\10\10\0\0\2\3\1\3\2\3\1\0pxLFLx"
"p";
/*
Fontname: -FreeType-PxPlus IBM CGA-Medium-R-Normal--8-80-72-72-P-68-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 18/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcga_n[218] U8X8_FONT_SECTION("u8x8_font_pxplusibmcga_n") =
" :\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIOf\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0";
/*
Fontname: -FreeType-PxPlus IBM CGA-Medium-R-Normal--8-80-72-72-P-68-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 64/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplusibmcga_u[515] U8X8_FONT_SECTION("u8x8_font_pxplusibmcga_u") =
" _\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\0\7\7\0\7\7\0\0\24\24"
"\24\0$.kk:\22\0\0Ff\60\30\14fb\0\60zO]\67zH\0\4\7\3\0\0\0"
"\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\0\10*>\34\34>*\10\10\10>>\10\10"
"\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0\0`\60\30\14\6\3"
"\1\0>qYM>\0@B@@\0\0bsYIOf\0\0\42cII\66"
"\0\0\30\34\26SP\0'gEE}\71\0\0<~KIy\60\0\0\3\3qy\17\7"
"\0\0\66II\66\0\0\6OIi?\36\0\0\0\0ff\0\0\0\0\0@v\66\0\0"
"\0\0\10\34\66cA\0\0\0$$$$$$\0\0\0Ac\66\34\10\0\0\2\3QY\17\6"
"\0\0>A]]\37\36\0|~\23\23~|\0\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQs"
"r\0\10\10\0\0\0AA\0\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0\34>cAc>"
"\34\0AI\11\17\6\0\36?!q^\0\0A\11\31f\0\42gMYs\42"
"\0\0\3AA\3\0\0@@\0\0\37?``?\37\0\0\60\30\60"
"\0Cg<\30<gC\0\7OxxO\7\0\0GcqYMgs\0\0AA\0"
"\0\0\1\3\6\14\30\60`\0\0AA\0\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200";
/*
Fontname: -FreeType-PxPlus TandyNew TV-Medium-R-Normal--8-80-72-72-P-70-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 192/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplustandynewtv_f[1794] U8X8_FONT_SECTION("u8x8_font_pxplustandynewtv_f") =
" \377\0\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\3\7\0\0\7\3\0\24\24"
"\24\0\0$.kk:\22\0Ff\60\30\14fb\0\60zO]\67zH\0\0\0\4\7\3\0"
"\0\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\10*>\34\34>*\10\0\10\10>>\10"
"\10\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0`\60\30\14\6\3"
"\1\0\34>cIc>\34\0\0@B@@\0BcqYIof\0\42cIII"
"\66\0\30\34\26SP\0/oIIIy\61\0<~KIIx\60\0\3\3qy\15\7"
"\3\0\66III\66\0\6OIIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0"
"\0\0\0\0\10\34\66cA\0\0$$$$$$\0\0\0Ac\66\34\10\0\2\3\1Y]\7"
"\2\0>A]]\37\36\0|~\13\11\13~|\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQ\63"
"r\0\10\10\10\0\0\0AA\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0>AAA"
">\0AI\11\17\6\0>AA\341\377\276\0A\11\31wf\0\0\42gMYs"
"\42\0\0\3AA\3\0?@@@?\0\37?`@`?\37\0?`\70`"
"?\0cw\34\10\34wc\0\0\7OxxO\7\0GcqYMgs\0\0\0AA"
"\0\0\1\3\6\14\30\60`\0\0\0AA\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\1\3\6\4\0\0 tTT<x@\0A?DD|\70\0\70|DDDl"
"(\0\70|DE?@\0\70|TTT\134\30\0H~I\11\3\2\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0\0D}}@\0\0\0`\340\200\200\375}\0A\20\70l"
"D\0\0\0A@\0\0||\14x\14|x\0\4|x\4\4|x\0\70|DDD|"
"\70\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\14\10\0H\134TTTt"
"$\0\4\4?Dd \0<|@@<|@\0\34<`@`<\34\0<|`\70`|"
"<\0Dl\70\20\70lD\0\234\274\240\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wA"
"A\0\0\0\0\357\357\0\0\0\0AAw>\10\10\0\2\3\1\3\2\3\1\0pxLFLx"
"p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\60}}\60\0\0\30<$\347\347$$\0\0h~IC"
"f Z~$$$~Z\0\0+/\374\374/+\0\0\0\0\357\357\0\0\0@\232\277\245\245\375"
"Y\2\2\2\0\0\0\2\2\0~\201\231\245\245\245\201~\0&/)//(\0\10\34\66\42\10\34"
"\66\42\0\10\10\10\10\70\70\0\0\10\10\10\10\10\10\0~\201\275\225\225\251\201~\1\1\1\1\1\1"
"\1\1\0\6\17\11\17\6\0\0\0DD__DD\0\0\21\31\35\27\22\0\0\0\21\25\25\37\12"
"\0\0\0\0\4\6\3\1\0\0\0\200\376~ >\36\6\17\11\1\0\0\0\20\20\0"
"\0\0\0\0\200\240\340@\0\0\0\0\22\37\37\20\0\0\0&/)/&\0\0\42\66\34\10\42\66"
"\34\10Bo?Xl\326\373ABo?\30\314\356\273\221\225U?Zh\324\372A\0 p]M@"
"` px,%/zp\0pz/%,xp\0pz-%-zp\0r{-'.{"
"q\0y}\26\22\26}y\0x|\27\23\27|x\0|~\13\11I\0<~B\302\302f"
"$\0||UWVTD\0||VWUDD\0|~UUUVD\0}}TTTU"
"E\0\0\0E~D\0\0\0\0D~E\0\0\0\2E}}E\2\0\0\1E||E"
"\1\0IIc>\34\0~\11\23\42}\0\70|EGF|\70\0\70|FGE|"
"\70\0\70~EEE~\70\0:EGF\71\0=BBB=\0\42\66\34\10\34\66"
"\42\0\134>sIg>\35\0<}CB@|<\0<|BCA|<\0\70zAAAz"
"\70\0=}@@@}=\0\0\14\134rs]\14\0AU\24\34\10\0~\1\11_v"
" \0 tUW>x@\0 tVW=x@\0 vUU>x@\0\42wUW>{"
"A\0!uTT<yA\0 tWW<x@\0 TT|TTX\0\70|D\304\304l"
"(\0\70|UWV\134\30\0\70|TVW]\30\0\70~UUU^\30\0\71}TTT]"
"\31\0\0\0D}B\0\0\0\0F}@\0\0\0\2E}}B\0\0\0\1E||A"
"\1\0\60zKK~>\2\0\12{q\13\12{q\0\60xIKJx\60\0\60xJKIx"
"\60\0\60zIIIz\60\0\62{IKJ{\61\0\61yHHHy\61\0\0\10\10**\10"
"\10\0\270|dTL|:\0<}CB<|@\0<|BC=|@\0\70zAA:x"
"@\0=}@@=}@\0\234\274\242\243\241\374|\0\201\377\377\244$<\30\0\235\275\240\240\240\375"
"}";
/*
Fontname: -FreeType-PxPlus TandyNew TV-Medium-R-Normal--8-80-72-72-P-70-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 96/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplustandynewtv_r[770] U8X8_FONT_SECTION("u8x8_font_pxplustandynewtv_r") =
" \0\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\3\7\0\0\7\3\0\24\24"
"\24\0\0$.kk:\22\0Ff\60\30\14fb\0\60zO]\67zH\0\0\0\4\7\3\0"
"\0\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\10*>\34\34>*\10\0\10\10>>\10"
"\10\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0`\60\30\14\6\3"
"\1\0\34>cIc>\34\0\0@B@@\0BcqYIof\0\42cIII"
"\66\0\30\34\26SP\0/oIIIy\61\0<~KIIx\60\0\3\3qy\15\7"
"\3\0\66III\66\0\6OIIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0"
"\0\0\0\0\10\34\66cA\0\0$$$$$$\0\0\0Ac\66\34\10\0\2\3\1Y]\7"
"\2\0>A]]\37\36\0|~\13\11\13~|\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQ\63"
"r\0\10\10\10\0\0\0AA\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0>AAA"
">\0AI\11\17\6\0>AA\341\377\276\0A\11\31wf\0\0\42gMYs"
"\42\0\0\3AA\3\0?@@@?\0\37?`@`?\37\0?`\70`"
"?\0cw\34\10\34wc\0\0\7OxxO\7\0GcqYMgs\0\0\0AA"
"\0\0\1\3\6\14\30\60`\0\0\0AA\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200\0\0\1\3\6\4\0\0 tTT<x@\0A?DD|\70\0\70|DDDl"
"(\0\70|DE?@\0\70|TTT\134\30\0H~I\11\3\2\0\230\274\244\244\370|"
"\4\0A\10\4|x\0\0\0D}}@\0\0\0`\340\200\200\375}\0A\20\70l"
"D\0\0\0A@\0\0||\14x\14|x\0\4|x\4\4|x\0\70|DDD|"
"\70\0\204\374\370\244$<\30\0\30<$\244\370\374\204\0D|xL\4\14\10\0H\134TTTt"
"$\0\4\4?Dd \0<|@@<|@\0\34<`@`<\34\0<|`\70`|"
"<\0Dl\70\20\70lD\0\234\274\240\240\240\374|\0\0Ldt\134Ld\0\0\10\10>wA"
"A\0\0\0\0\357\357\0\0\0\0AAw>\10\10\0\2\3\1\3\2\3\1\0pxLFLx"
"p";
/*
Fontname: -FreeType-PxPlus TandyNew TV-Medium-R-Normal--8-80-72-72-P-70-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 18/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplustandynewtv_n[218] U8X8_FONT_SECTION("u8x8_font_pxplustandynewtv_n") =
" :\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10*>\34\34>*\10\0\10\10>>\10"
"\10\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0`\60\30\14\6\3"
"\1\0\34>cIc>\34\0\0@B@@\0BcqYIof\0\42cIII"
"\66\0\30\34\26SP\0/oIIIy\61\0<~KIIx\60\0\3\3qy\15\7"
"\3\0\66III\66\0\6OIIi?\36\0\0\0\0ff\0\0";
/*
Fontname: -FreeType-PxPlus TandyNew TV-Medium-R-Normal--8-80-72-72-P-70-ISO10646-1
Copyright: Outline (vector) version (c) 2015 VileR
Glyphs: 64/781
BBX Build Mode: 3
*/
const uint8_t u8x8_font_pxplustandynewtv_u[515] U8X8_FONT_SECTION("u8x8_font_pxplustandynewtv_u") =
" _\0\0\0\0\0\0\0\0\0\0\6__\6\0\0\0\3\7\0\0\7\3\0\24\24"
"\24\0\0$.kk:\22\0Ff\60\30\14fb\0\60zO]\67zH\0\0\0\4\7\3\0"
"\0\0\0\0\34>cA\0\0\0\0Ac>\34\0\0\10*>\34\34>*\10\0\10\10>>\10"
"\10\0\0\0\200\340`\0\0\0\0\10\10\10\10\10\10\0\0\0\0``\0\0\0`\60\30\14\6\3"
"\1\0\34>cIc>\34\0\0@B@@\0BcqYIof\0\42cIII"
"\66\0\30\34\26SP\0/oIIIy\61\0<~KIIx\60\0\3\3qy\15\7"
"\3\0\66III\66\0\6OIIi?\36\0\0\0\0ff\0\0\0\0\0\200\346f\0"
"\0\0\0\0\10\34\66cA\0\0$$$$$$\0\0\0Ac\66\34\10\0\2\3\1Y]\7"
"\2\0>A]]\37\36\0|~\13\11\13~|\0AII\66\0\34>cAAc"
"\42\0AAc>\34\0AI]Ac\0AI\35\1\3\0\34>cAQ\63"
"r\0\10\10\10\0\0\0AA\0\0\60p@A?\1\0A\10\34w"
"c\0AA@`p\0\16\34\16\0\6\14\30\0>AAA"
">\0AI\11\17\6\0>AA\341\377\276\0A\11\31wf\0\0\42gMYs"
"\42\0\0\3AA\3\0?@@@?\0\37?`@`?\37\0?`\70`"
"?\0cw\34\10\34wc\0\0\7OxxO\7\0GcqYMgs\0\0\0AA"
"\0\0\1\3\6\14\30\60`\0\0\0AA\0\0\10\14\6\3\6\14\10\0\200\200\200\200\200\200"
"\200\200";